refactored permissions for simpler customizations (#808)

This commit is contained in:
Kevin Papst
2019-05-25 17:23:15 +02:00
committed by GitHub
parent d18019159b
commit ebff4a765a
24 changed files with 299 additions and 161 deletions

View File

@@ -16,13 +16,10 @@ class RolePermissionManager
*/
protected $permissions = [];
/**
* @var array
* @var string[]
*/
protected $knownPermissions = [];
/**
* @param array $permissions
*/
public function __construct(array $permissions)
{
$this->permissions = $permissions;
@@ -33,30 +30,12 @@ class RolePermissionManager
$this->knownPermissions = array_unique($this->knownPermissions);
}
/**
* @param string $permission
* @return bool
*/
public function isRegisteredPermission($permission)
public function isRegisteredPermission(string $permission): bool
{
return in_array($permission, $this->knownPermissions);
}
/**
* @param string $role
* @return bool
*/
public function roleHasPermission($role)
{
return isset($this->permissions[$role]);
}
/**
* @param string $role
* @param string $permission
* @return bool
*/
public function hasPermission($role, $permission)
public function hasPermission(string $role, string $permission): bool
{
if (!isset($this->permissions[$role])) {
return false;
@@ -64,4 +43,19 @@ class RolePermissionManager
return in_array($permission, $this->permissions[$role]);
}
public function getRoles(): array
{
return array_keys($this->permissions);
}
public function roleHasPermission(string $role): bool
{
return isset($this->permissions[$role]);
}
public function getPermissions(): array
{
return $this->knownPermissions;
}
}