
| Current Path : /var/www/html/recommended-project/web/core/lib/Drupal/Core/Session/ |
Linux ift1.ift-informatik.de 5.4.0-216-generic #236-Ubuntu SMP Fri Apr 11 19:53:21 UTC 2025 x86_64 |
| Current File : /var/www/html/recommended-project/web/core/lib/Drupal/Core/Session/CalculatedPermissionsItem.php |
<?php
namespace Drupal\Core\Session;
/**
* Represents a single entry for the calculated permissions.
*
* @see \Drupal\Core\Session\ChainPermissionCalculator
*/
class CalculatedPermissionsItem implements CalculatedPermissionsItemInterface {
/**
* Constructs a new CalculatedPermissionsItem.
*
* @param string[] $permissions
* The permission names.
* @param bool $isAdmin
* (optional) Whether the item grants admin privileges.
* @param string $scope
* (optional) The scope name, defaults to 'drupal'.
* @param string|int $identifier
* (optional) The identifier within the scope, defaults to 'drupal'.
*/
public function __construct(
protected array $permissions,
protected bool $isAdmin = FALSE,
protected string $scope = AccessPolicyInterface::SCOPE_DRUPAL,
protected string|int $identifier = AccessPolicyInterface::SCOPE_DRUPAL,
) {
$this->permissions = $isAdmin ? [] : array_unique($permissions);
}
/**
* {@inheritdoc}
*/
public function getScope(): string {
return $this->scope;
}
/**
* {@inheritdoc}
*/
public function getIdentifier(): string|int {
return $this->identifier;
}
/**
* {@inheritdoc}
*/
public function getPermissions(): array {
return $this->permissions;
}
/**
* {@inheritdoc}
*/
public function isAdmin(): bool {
return $this->isAdmin;
}
/**
* {@inheritdoc}
*/
public function hasPermission(string $permission): bool {
return $this->isAdmin() || in_array($permission, $this->permissions, TRUE);
}
}