You are here

public function PermissionAccessCheck::access in Zircon Profile 8.0

Same name and namespace in other branches
  1. 8 core/modules/user/src/Access/PermissionAccessCheck.php \Drupal\user\Access\PermissionAccessCheck::access()

Checks access.

Parameters

\Symfony\Component\Routing\Route $route: The route to check against.

\Drupal\Core\Session\AccountInterface $account: The currently logged in account.

Return value

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

File

core/modules/user/src/Access/PermissionAccessCheck.php, line 32
Contains \Drupal\user\Access\PermissionAccessCheck.

Class

PermissionAccessCheck
Determines access to routes based on permissions defined via $module.permissions.yml files.

Namespace

Drupal\user\Access

Code

public function access(Route $route, AccountInterface $account) {
  $permission = $route
    ->getRequirement('_permission');
  if ($permission === NULL) {
    return AccessResult::neutral();
  }

  // Allow to conjunct the permissions with OR ('+') or AND (',').
  $split = explode(',', $permission);
  if (count($split) > 1) {
    return AccessResult::allowedIfHasPermissions($account, $split, 'AND');
  }
  else {
    $split = explode('+', $permission);
    return AccessResult::allowedIfHasPermissions($account, $split, 'OR');
  }
}