Corrige condição de bloco para rotas sem parâmetro 'user'

Em rotas de nós exibidos como páginas do microsite (/user/{id}/...),
a rota não carrega o parâmetro 'user'. A condição agora usa o autor
do nó como fallback, permitindo que o bloco apareça corretamente
nessas páginas.

Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
This commit is contained in:
2026-03-22 08:53:14 -03:00
parent acda09c277
commit 41378004a2

View File

@@ -7,6 +7,7 @@ use Drupal\Core\Form\FormStateInterface;
use Drupal\Core\Plugin\ContainerFactoryPluginInterface;
use Drupal\Core\Routing\RouteMatchInterface;
use Drupal\Core\Session\AccountInterface;
use Drupal\node\NodeInterface;
use Drupal\user\UserInterface;
use Symfony\Component\DependencyInjection\ContainerInterface;
@@ -89,7 +90,13 @@ class PageUserIsCurrentUser extends ConditionPluginBase implements ContainerFact
$page_uid = (int) $param;
}
else {
return FALSE;
// Rotas sem parâmetro 'user' (e.g., nós do microsite em /user/{id}/...):
// usa o autor do nó como usuário da página.
$node = $this->routeMatch->getParameter('node');
if (!($node instanceof NodeInterface)) {
return FALSE;
}
$page_uid = (int) $node->getOwnerId();
}
return $page_uid === (int) $this->currentUser->id();