From 78b42237950b926d20e20735b5cf125e3f71742f Mon Sep 17 00:00:00 2001 From: Shoghi Cervantes Date: Thu, 11 Sep 2014 12:43:53 +0200 Subject: [PATCH] Added PermissionAttachment::unsetPermissions(), PermissionAttachment::clearPermissions() --- src/pocketmine/permission/Permissible.php | 1 - .../permission/PermissionAttachment.php | 19 ++++++++++++++++++- 2 files changed, 18 insertions(+), 2 deletions(-) diff --git a/src/pocketmine/permission/Permissible.php b/src/pocketmine/permission/Permissible.php index 777337fb8..7b59a2ac0 100644 --- a/src/pocketmine/permission/Permissible.php +++ b/src/pocketmine/permission/Permissible.php @@ -66,7 +66,6 @@ interface Permissible extends ServerOperator{ public function recalculatePermissions(); /** - * TODO: Check this * @return Permission[] */ public function getEffectivePermissions(); diff --git a/src/pocketmine/permission/PermissionAttachment.php b/src/pocketmine/permission/PermissionAttachment.php index be5eb80e4..585afbcda 100644 --- a/src/pocketmine/permission/PermissionAttachment.php +++ b/src/pocketmine/permission/PermissionAttachment.php @@ -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