class UserRolesCacheContext in Drupal 8
Same name and namespace in other branches
- 9 core/lib/Drupal/Core/Cache/Context/UserRolesCacheContext.php \Drupal\Core\Cache\Context\UserRolesCacheContext
Defines the UserRolesCacheContext service, for "per role" caching.
Only use this cache context when checking explicitly for certain roles. Use user.permissions for anything that checks permissions.
Cache context ID: 'user.roles' (to vary by all roles of the current user). Calculated cache context ID: 'user.roles:%role', e.g. 'user.roles:anonymous' (to vary by the presence/absence of a specific role).
Hierarchy
- class \Drupal\Core\Cache\Context\UserCacheContextBase
- class \Drupal\Core\Cache\Context\UserRolesCacheContext implements CalculatedCacheContextInterface
Expanded class hierarchy of UserRolesCacheContext
1 string reference to 'UserRolesCacheContext'
- core.services.yml in core/
core.services.yml - core/core.services.yml
1 service uses UserRolesCacheContext
File
- core/
lib/ Drupal/ Core/ Cache/ Context/ UserRolesCacheContext.php, line 17
Namespace
Drupal\Core\Cache\ContextView source
class UserRolesCacheContext extends UserCacheContextBase implements CalculatedCacheContextInterface {
/**
* {@inheritdoc}
*/
public static function getLabel() {
return t("User's roles");
}
/**
* {@inheritdoc}
*/
public function getContext($role = NULL) {
// User 1 does not actually have any special behavior for roles; this is
// added as additional security and backwards compatibility protection for
// SA-CORE-2015-002.
// @todo Remove in Drupal 9.0.0.
if ($this->user
->id() == 1) {
return 'is-super-user';
}
if ($role === NULL) {
return implode(',', $this->user
->getRoles());
}
else {
return in_array($role, $this->user
->getRoles()) ? '0' : '1';
}
}
/**
* {@inheritdoc}
*/
public function getCacheableMetadata($role = NULL) {
return (new CacheableMetadata())
->setCacheTags([
'user:' . $this->user
->id(),
]);
}
}
Members
Name | Modifiers | Type | Description | Overrides |
---|---|---|---|---|
UserCacheContextBase:: |
protected | property | The account object. | |
UserCacheContextBase:: |
public | function | Constructs a new UserCacheContextBase class. | 1 |
UserRolesCacheContext:: |
public | function |
Gets the cacheability metadata for the context based on the parameter value. Overrides CalculatedCacheContextInterface:: |
|
UserRolesCacheContext:: |
public | function |
Returns the string representation of the cache context. Overrides CalculatedCacheContextInterface:: |
|
UserRolesCacheContext:: |
public static | function |
Returns the label of the cache context. Overrides CalculatedCacheContextInterface:: |