diff --git a/core/modules/menu/lib/Drupal/menu/MenuAccessController.php b/core/modules/menu/lib/Drupal/menu/MenuAccessController.php index b7128c0..48ef135 100644 --- a/core/modules/menu/lib/Drupal/menu/MenuAccessController.php +++ b/core/modules/menu/lib/Drupal/menu/MenuAccessController.php @@ -32,7 +32,7 @@ protected function checkAccess(EntityInterface $entity, $operation, $langcode, A } if (in_array($operation, array('update', 'delete'))) { - return user_access('administer menu', $account); + return $account->hasPermission('administer menu'); } } @@ -40,7 +40,7 @@ protected function checkAccess(EntityInterface $entity, $operation, $langcode, A * {@inheritdoc} */ protected function checkCreateAccess(AccountInterface $account, array $context, $entity_bundle = NULL) { - return user_access('administer menu', $account); + return $account->hasPermission('administer menu'); } } diff --git a/core/modules/menu/lib/Drupal/menu/MenuListController.php b/core/modules/menu/lib/Drupal/menu/MenuListController.php index 2f4ed8b..567f8c2 100644 --- a/core/modules/menu/lib/Drupal/menu/MenuListController.php +++ b/core/modules/menu/lib/Drupal/menu/MenuListController.php @@ -51,7 +51,12 @@ public function getOperations(EntityInterface $entity) { $operations['edit']['title'] = t('Edit menu'); } if (isset($operations['delete'])) { - $operations['delete']['title'] = t('Delete menu'); + if ($entity->access('delete')) { + $operations['delete']['title'] = t('Delete menu'); + } + else { + unset($operations['delete']); + } } $operations['add'] = array( 'title' => t('Add link'), @@ -59,12 +64,6 @@ public function getOperations(EntityInterface $entity) { 'options' => $uri['options'], 'weight' => 20, ); - if ($entity->access('delete')) { - $operations['delete']['title'] = t('Delete menu'); - } - else { - unset($operations['delete']); - } return $operations; } 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 c3fec7c..291d4a3 100644 --- a/core/modules/menu_link/lib/Drupal/menu_link/MenuLinkAccessController.php +++ b/core/modules/menu_link/lib/Drupal/menu_link/MenuLinkAccessController.php @@ -22,10 +22,11 @@ class MenuLinkAccessController extends EntityAccessController { * {@inheritdoc} */ protected function checkAccess(EntityInterface $entity, $operation, $langcode, AccountInterface $account) { - $access = user_access('administer menu', $account); + $access = $account->hasPermission('administer menu'); if ($access && $operation == 'delete') { - // Only items created by the menu module can be deleted. - return $entity->module == 'menu'; + // Links defined via hook_menu may not be deleted. Updated items are an + // exception, as they can be broken. + return $entity->module !== 'system' || $entity->updated; } return $access; }