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(); public function recalculatePermissions();
/** /**
* TODO: Check this
* @return Permission[] * @return Permission[]
*/ */
public function getEffectivePermissions(); public function getEffectivePermissions();

View File

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