diff --git a/src/permission/Permissible.php b/src/permission/Permissible.php index 926ecb026..5fca2b14f 100644 --- a/src/permission/Permissible.php +++ b/src/permission/Permissible.php @@ -66,7 +66,11 @@ interface Permissible{ public function removeAttachment(PermissionAttachment $attachment) : void; - public function recalculatePermissions() : void; + /** + * @return bool[] changed permission name => old value + * @phpstan-return array + */ + public function recalculatePermissions() : array; /** * @return Set|\Closure[] diff --git a/src/permission/PermissibleBase.php b/src/permission/PermissibleBase.php index 646d8db11..b65fcf78c 100644 --- a/src/permission/PermissibleBase.php +++ b/src/permission/PermissibleBase.php @@ -129,7 +129,7 @@ class PermissibleBase implements Permissible{ } - public function recalculatePermissions() : void{ + public function recalculatePermissions() : array{ Timings::$permissibleCalculationTimer->startTiming(); $permManager = PermissionManager::getInstance(); @@ -179,6 +179,7 @@ class PermissibleBase implements Permissible{ }); Timings::$permissibleCalculationTimer->stopTiming(); + return $diff; } /** diff --git a/src/permission/PermissibleDelegateTrait.php b/src/permission/PermissibleDelegateTrait.php index 2988ad160..e38762efe 100644 --- a/src/permission/PermissibleDelegateTrait.php +++ b/src/permission/PermissibleDelegateTrait.php @@ -67,8 +67,8 @@ trait PermissibleDelegateTrait{ $this->perm->removeAttachment($attachment); } - public function recalculatePermissions() : void{ - $this->perm->recalculatePermissions(); + public function recalculatePermissions() : array{ + return $this->perm->recalculatePermissions(); } /**