Added PermissionAttachment::unsetPermissions(), PermissionAttachment::clearPermissions()

This commit is contained in:
Shoghi Cervantes 2014-09-11 12:43:53 +02:00
parent 0328b4c5f5
commit 78b4223795
2 changed files with 18 additions and 2 deletions

View File

@ -66,7 +66,6 @@ interface Permissible extends ServerOperator{
public function recalculatePermissions();
/**
* TODO: Check this
* @return Permission[]
*/
public function getEffectivePermissions();

View File

@ -88,17 +88,34 @@ class PermissionAttachment{
return $this->permissions;
}
/**
* @return bool[]
*/
public function clearPermissions(){
$this->permissions = [];
$this->permissible->recalculatePermissions();
}
/**
* @param bool[] $permissions
*/
public function setPermissions(array $permissions){
$this->permissions = [];
foreach($permissions as $key => $value){
$this->permissions[$key] = (bool) $value;
}
$this->permissible->recalculatePermissions();
}
/**
* @param string[] $permissions
*/
public function unsetPermissions(array $permissions){
foreach($permissions as $node){
unset($this->permissions[$node]);
}
$this->permissible->recalculatePermissions();
}
/**
* @param string|Permission $name
* @param bool $value