diff --git a/core/modules/shortcut/lib/Drupal/shortcut/ShortcutSetAccessController.php b/core/modules/shortcut/lib/Drupal/shortcut/ShortcutSetAccessController.php index 3c56353..c3d5ceb 100644 --- a/core/modules/shortcut/lib/Drupal/shortcut/ShortcutSetAccessController.php +++ b/core/modules/shortcut/lib/Drupal/shortcut/ShortcutSetAccessController.php @@ -20,24 +20,35 @@ class ShortcutSetAccessController extends EntityAccessController { * {@inheritdoc} */ protected function checkAccess(EntityInterface $entity, $operation, $langcode, AccountInterface $account) { + $account = $this->prepareUser($account); switch ($operation) { - case 'create': case 'update': - if (user_access('administer shortcuts', $account)) { + if ($account->hasPermission('administer shortcuts', $account)) { return TRUE; } - if (user_access('customize shortcut links', $account)) { - return !isset($entity) || $entity == shortcut_current_displayed_set($account); + if ($account->hasPermission('customize shortcut links', $account)) { + return $entity == shortcut_current_displayed_set($account); } - return FALSE; break; + case 'delete': - if (!user_access('administer shortcuts', $account)) { + if (!$account->hasPermission('administer shortcuts', $account)) { return FALSE; } - return $entity->id() != 'default'; + else { + return $entity->id() != 'default'; + } break; + } } + /** + * {@inheritdoc} + */ + public function createAccess($entity_bundle = NULL, AccountInterface $account = NULL, array $context = array()) { + $account = $this->prepareUser($account); + return $account->hasPermission('administer shortcuts') || $account->hasPermission('customize shortcut links'); + } + }