diff --git a/core/modules/menu/lib/Drupal/menu/MenuListController.php b/core/modules/menu/lib/Drupal/menu/MenuListController.php index f5d5167..a9db41e 100644 --- a/core/modules/menu/lib/Drupal/menu/MenuListController.php +++ b/core/modules/menu/lib/Drupal/menu/MenuListController.php @@ -49,11 +49,6 @@ public function getOperations(EntityInterface $entity) { if (isset($operations['edit'])) { $operations['edit']['title'] = t('Edit menu'); - } - if (isset($operations['delete'])) { - $operations['delete']['title'] = t('Delete menu'); - } - if ($entity->access('edit')) { $operations['add'] = array( 'title' => t('Add link'), 'href' => $uri['path'] . '/add', @@ -61,6 +56,9 @@ public function getOperations(EntityInterface $entity) { 'weight' => 20, ); } + if (isset($operations['delete'])) { + $operations['delete']['title'] = t('Delete menu'); + } return $operations; } diff --git a/core/modules/menu/menu.routing.yml b/core/modules/menu/menu.routing.yml index cdaa87a..c5a0d10 100644 --- a/core/modules/menu/menu.routing.yml +++ b/core/modules/menu/menu.routing.yml @@ -24,7 +24,7 @@ menu_link_add: defaults: _content: '\Drupal\menu\Controller\MenuController::addLink' requirements: - _entity_access: 'menu.update' + _entity_create_access: 'menu_link' menu_link_edit: pattern: '/admin/structure/menu/item/{menu_link}/edit' diff --git a/core/modules/menu_link/lib/Drupal/menu_link/MenuLinkAccessController.php b/core/modules/menu_link/lib/Drupal/menu_link/MenuLinkAccessController.php index f859fe8..664e7da 100644 --- a/core/modules/menu_link/lib/Drupal/menu_link/MenuLinkAccessController.php +++ b/core/modules/menu_link/lib/Drupal/menu_link/MenuLinkAccessController.php @@ -38,4 +38,11 @@ protected function checkAccess(EntityInterface $entity, $operation, $langcode, A return $access; } + /** + * {@inheritdoc} + */ + protected function checkCreateAccess(AccountInterface $account, array $context, $entity_bundle = NULL) { + return $account->hasPermission('administer menu'); + } + }