]> BookStack Code Mirror - bookstack/blobdiff - tests/Helpers/PermissionsProvider.php
Started new permission-caching/querying model
[bookstack] / tests / Helpers / PermissionsProvider.php
index 1406cf4cff5e00dd3c5e7f5128314886088fc6b8..bebb5bada9af1c1fb815b7751c8810bef4d0fbe2 100644 (file)
@@ -34,8 +34,6 @@ class PermissionsProvider
      */
     public function removeUserRolePermissions(User $user, array $permissions): void
     {
-        $permissionBuilder = app()->make(JointPermissionBuilder::class);
-
         foreach ($permissions as $permissionName) {
             /** @var RolePermission $permission */
             $permission = RolePermission::query()
@@ -49,13 +47,22 @@ class PermissionsProvider
             /** @var Role $role */
             foreach ($roles as $role) {
                 $role->detachPermission($permission);
-                $permissionBuilder->rebuildForRole($role);
             }
 
             $user->clearPermissionCache();
         }
     }
 
+    /**
+     * Change the owner of the given entity to the given user.
+     */
+    public function changeEntityOwner(Entity $entity, User $newOwner): void
+    {
+        $entity->owned_by = $newOwner->id;
+        $entity->save();
+        $entity->rebuildPermissions();
+    }
+
     /**
      * Regenerate the permission for an entity.
      * Centralised to manage clearing of cached elements between requests.