Issue #3444745 by fjgarlin, plopesc, m4olivei: Navigation Top Bar hides entity local tasks even if the user has no access to the bar
parent
431532d69a
commit
a49ba33853
|
@ -158,7 +158,9 @@ function navigation_menu_links_discovered_alter(&$links) {
|
|||
function navigation_block_build_local_tasks_block_alter(array &$build, BlockPluginInterface $block) {
|
||||
$navigation_renderer = \Drupal::service('navigation.renderer');
|
||||
assert($navigation_renderer instanceof NavigationRenderer);
|
||||
$navigation_renderer->removeLocalTasks($build, $block);
|
||||
if (\Drupal::currentUser()->hasPermission('access navigation')) {
|
||||
$navigation_renderer->removeLocalTasks($build, $block);
|
||||
}
|
||||
}
|
||||
|
||||
/**
|
||||
|
|
|
@ -99,6 +99,15 @@ class NavigationTopBarTest extends BrowserTestBase {
|
|||
$this->assertSession()->elementTextEquals('xpath', "//div[contains(@class, 'top-bar__content')]/button/span", 'More actions');
|
||||
$this->assertSession()->elementNotExists('xpath', '//div[@id="block-tabs"]');
|
||||
}
|
||||
|
||||
// Regular tabs are visible for user that cannot access to navigation.
|
||||
$this->drupalLogin($this->drupalCreateUser([
|
||||
'bypass node access',
|
||||
]));
|
||||
|
||||
$this->drupalGet($this->node->toUrl());
|
||||
$this->assertSession()->elementNotExists('xpath', "//div[contains(@class, 'top-bar__content')]/div[contains(@class, 'top-bar__actions')]/button/span");
|
||||
$this->assertSession()->elementExists('xpath', '//div[@id="block-tabs"]');
|
||||
}
|
||||
|
||||
}
|
||||
|
|
Loading…
Reference in New Issue