function UserRolesAccessPolicy::calculatePermissions

Same name and namespace in other branches
  1. 11.x core/lib/Drupal/Core/Session/UserRolesAccessPolicy.php \Drupal\Core\Session\UserRolesAccessPolicy::calculatePermissions()

Overrides AccessPolicyBase::calculatePermissions

File

core/lib/Drupal/Core/Session/UserRolesAccessPolicy.php, line 19

Class

UserRolesAccessPolicy
Grants permissions based on a user's roles.

Namespace

Drupal\Core\Session

Code

public function calculatePermissions(AccountInterface $account, string $scope) : RefinableCalculatedPermissionsInterface {
  $calculated_permissions = parent::calculatePermissions($account, $scope);
  /** @var \Drupal\user\RoleInterface[] $user_roles */
  $user_roles = $this->entityTypeManager
    ->getStorage('user_role')
    ->loadMultiple($account->getRoles());
  foreach ($user_roles as $user_role) {
    $calculated_permissions->addItem(new CalculatedPermissionsItem($user_role->getPermissions(), $user_role->isAdmin()))
      ->addCacheableDependency($user_role);
  }
  return $calculated_permissions;
}

Buggy or inaccurate documentation? Please file an issue. Need support? Need help programming? Connect with the Drupal community.