X-Git-Url: http://source.bookstackapp.com/bookstack/blobdiff_plain/8d7febe482f92a34093127c60c6e2dda342b4223..refs/pull/3556/head:/tests/SharedTestHelpers.php diff --git a/tests/SharedTestHelpers.php b/tests/SharedTestHelpers.php index cbf49bf71..ce57d56f5 100644 --- a/tests/SharedTestHelpers.php +++ b/tests/SharedTestHelpers.php @@ -194,13 +194,23 @@ trait SharedTestHelpers /** * Completely remove the given permission name from the given user. */ - protected function removePermissionFromUser(User $user, string $permission) + protected function removePermissionFromUser(User $user, string $permissionName) { - $permission = RolePermission::query()->where('name', '=', $permission)->first(); + $permissionService = app()->make(PermissionService::class); + + /** @var RolePermission $permission */ + $permission = RolePermission::query()->where('name', '=', $permissionName)->firstOrFail(); + + $roles = $user->roles()->whereHas('permissions', function ($query) use ($permission) { + $query->where('id', '=', $permission->id); + })->get(); + /** @var Role $role */ - foreach ($user->roles as $role) { + foreach ($roles as $role) { $role->detachPermission($permission); + $permissionService->buildJointPermissionForRole($role); } + $user->clearPermissionCache(); }