function shortcut_set_switch_access

shortcut_set_switch_access($account = NULL)

Access callback for switching the shortcut set assigned to a user account.

Parameters

object $account: (optional) The user account whose shortcuts will be switched. If not set, permissions will be checked for switching the logged-in user's own shortcut set.

Return value

\Drupal\Core\Access\AccessResultInterface The access result.

File

core/modules/shortcut/shortcut.module, line 82
Allows users to manage customizable lists of shortcut links.

Code

function shortcut_set_switch_access($account = NULL) {
  $user = \Drupal::currentUser();

  if ($user->hasPermission('administer shortcuts')) {
    // Administrators can switch anyone's shortcut set.
    return AccessResult::allowed()->cachePerPermissions();
  }

  if (!$user->hasPermission('access shortcuts')) {
    // The user has no permission to use shortcuts.
    return AccessResult::neutral()->cachePerPermissions();
  }

  if (!$user->hasPermission('switch shortcut sets')) {
    // The user has no permission to switch anyone's shortcut set.
    return AccessResult::neutral()->cachePerPermissions();
  }

  // Users with the 'switch shortcut sets' permission can switch their own
  // shortcuts sets.
  if (!isset($account)) {
    return AccessResult::allowed()->cachePerPermissions();
  }
  elseif ($user->id() == $account->id()) {
    return AccessResult::allowed()->cachePerPermissions()->cachePerUser();
  }

  // No opinion.
  return AccessResult::neutral()->cachePerPermissions();
}

© 2001–2016 by the original authors
Licensed under the GNU General Public License, version 2 and later.
Drupal is a registered trademark of Dries Buytaert.
https://api.drupal.org/api/drupal/core!modules!shortcut!shortcut.module/function/shortcut_set_switch_access/8.1.x