From 3849756993bfd4c4b51146c1eb9737442514d628 Mon Sep 17 00:00:00 2001 From: "Dylan K. Taylor" Date: Fri, 27 Nov 2020 20:28:36 +0000 Subject: [PATCH] Do not mutate the result of Permission->getChildren() --- src/permission/DefaultPermissions.php | 2 +- src/permission/Permission.php | 5 +++++ 2 files changed, 6 insertions(+), 1 deletion(-) diff --git a/src/permission/DefaultPermissions.php b/src/permission/DefaultPermissions.php index 5fa38c9e9..f6de4ec07 100644 --- a/src/permission/DefaultPermissions.php +++ b/src/permission/DefaultPermissions.php @@ -28,7 +28,7 @@ abstract class DefaultPermissions{ public static function registerPermission(Permission $perm, ?Permission $parent = null) : Permission{ if($parent instanceof Permission){ - $parent->getChildren()[$perm->getName()] = true; + $parent->addChild($perm->getName(), true); } PermissionManager::getInstance()->addPermission($perm); diff --git a/src/permission/Permission.php b/src/permission/Permission.php index 02066b26d..ad28f7d55 100644 --- a/src/permission/Permission.php +++ b/src/permission/Permission.php @@ -116,4 +116,9 @@ class Permission{ $p->recalculatePermissions(); } } + + public function addChild(string $name, bool $value) : void{ + $this->children[$name] = $value; + $this->recalculatePermissibles(); + } }