Merge branch 'release/3.2' into release/3.3

This commit is contained in:
Dylan K. Taylor 2018-09-14 17:09:51 +01:00
commit 0d65f9c4b8
3 changed files with 23 additions and 3 deletions

View File

@ -166,9 +166,7 @@ class PermissibleBase implements Permissible{
public function clearPermissions(){
$permManager = PermissionManager::getInstance();
foreach(array_keys($this->permissions) as $name){
$permManager->unsubscribeFromPermission($name, $this->parent ?? $this);
}
$permManager->unsubscribeFromAllPermissions($this->parent ?? $this);
$permManager->unsubscribeFromDefaultPerms(false, $this->parent ?? $this);
$permManager->unsubscribeFromDefaultPerms(true, $this->parent ?? $this);

View File

@ -160,6 +160,18 @@ class PermissionManager{
}
}
/**
* @param Permissible $permissible
*/
public function unsubscribeFromAllPermissions(Permissible $permissible) : void{
foreach($this->permSubs as $permission => &$subs){
unset($subs[spl_object_hash($permissible)]);
if(empty($subs)){
unset($this->permSubs[$permission]);
}
}
}
/**
* @param string $permission
*

View File

@ -475,6 +475,16 @@ class PluginManager{
PermissionManager::getInstance()->unsubscribeFromPermission($permission, $permissible);
}
/**
* @deprecated
* @see PermissionManager::unsubscribeFromAllPermissions()
*
* @param Permissible $permissible
*/
public function unsubscribeFromAllPermissions(Permissible $permissible) : void{
PermissionManager::getInstance()->unsubscribeFromAllPermissions($permissible);
}
/**
* @deprecated
* @see PermissionManager::getPermissionSubscriptions()