class UserRolesAccessPolicy
Same name in other branches
- 11.x core/lib/Drupal/Core/Session/UserRolesAccessPolicy.php \Drupal\Core\Session\UserRolesAccessPolicy
Grants permissions based on a user's roles.
Hierarchy
- class \Drupal\Core\Session\AccessPolicyBase implements \Drupal\Core\Session\AccessPolicyInterface
- class \Drupal\Core\Session\UserRolesAccessPolicy extends \Drupal\Core\Session\AccessPolicyBase
Expanded class hierarchy of UserRolesAccessPolicy
1 file declares its use of UserRolesAccessPolicy
- UserRolesAccessPolicyTest.php in core/
tests/ Drupal/ Tests/ Core/ Session/ UserRolesAccessPolicyTest.php
1 string reference to 'UserRolesAccessPolicy'
- core.services.yml in core/
core.services.yml - core/core.services.yml
1 service uses UserRolesAccessPolicy
File
-
core/
lib/ Drupal/ Core/ Session/ UserRolesAccessPolicy.php, line 12
Namespace
Drupal\Core\SessionView source
final class UserRolesAccessPolicy extends AccessPolicyBase {
public function __construct(EntityTypeManagerInterface $entityTypeManager) {
}
/**
* {@inheritdoc}
*/
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;
}
/**
* {@inheritdoc}
*/
public function getPersistentCacheContexts() : array {
return [
'user.roles',
];
}
}
Members
Title Sort descending | Modifiers | Object type | Summary | Overriden Title | Overrides |
---|---|---|---|---|---|
AccessPolicyBase::alterPermissions | public | function | Alter the permissions after all policies have finished building them. | Overrides AccessPolicyInterface::alterPermissions | 2 |
AccessPolicyBase::applies | public | function | Checks whether this access policy applies to a given scope. | Overrides AccessPolicyInterface::applies | 7 |
AccessPolicyInterface::SCOPE_DRUPAL | constant | Scope ID for general Drupal access. | |||
UserRolesAccessPolicy::calculatePermissions | public | function | Calculates the permissions for an account within a given scope. | Overrides AccessPolicyBase::calculatePermissions | |
UserRolesAccessPolicy::getPersistentCacheContexts | public | function | Gets the persistent cache contexts. | Overrides AccessPolicyBase::getPersistentCacheContexts | |
UserRolesAccessPolicy::__construct | public | function |
Buggy or inaccurate documentation? Please file an issue. Need support? Need help programming? Connect with the Drupal community.