mirror of
https://gitlab.unicamp.br/infimecc_drupal11_modules/site_tools.git
synced 2026-05-03 22:40:41 -03:00
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:
@@ -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();
|
||||
|
||||
Reference in New Issue
Block a user