1
0
mirror of https://github.com/BookStackApp/BookStack.git synced 2025-08-07 23:03:00 +03:00

Extracted permission building out of permission service

This commit is contained in:
Dan Brown
2022-07-12 19:38:11 +01:00
parent c5e9dfa168
commit 2d4f708c79
8 changed files with 463 additions and 500 deletions

View File

@@ -2,7 +2,7 @@
namespace Tests;
use BookStack\Auth\Permissions\PermissionService;
use BookStack\Auth\Permissions\JointPermissionBuilder;
use BookStack\Auth\Permissions\RolePermission;
use BookStack\Auth\Role;
use BookStack\Auth\User;
@@ -89,7 +89,7 @@ class PublicActionTest extends TestCase
foreach (RolePermission::all() as $perm) {
$publicRole->attachPermission($perm);
}
$this->app[PermissionService::class]->buildJointPermissionForRole($publicRole);
$this->app->make(JointPermissionBuilder::class)->buildJointPermissionForRole($publicRole);
/** @var Chapter $chapter */
$chapter = Chapter::query()->first();

View File

@@ -2,6 +2,7 @@
namespace Tests;
use BookStack\Auth\Permissions\JointPermissionBuilder;
use BookStack\Auth\Permissions\PermissionService;
use BookStack\Auth\Permissions\PermissionsRepo;
use BookStack\Auth\Permissions\RolePermission;
@@ -176,7 +177,7 @@ trait SharedTestHelpers
$entity->save();
$entity->load('permissions');
$this->app[PermissionService::class]->buildJointPermissionsForEntity($entity);
$this->app->make(JointPermissionBuilder::class)->buildJointPermissionsForEntity($entity);
$entity->load('jointPermissions');
}
@@ -196,7 +197,7 @@ trait SharedTestHelpers
*/
protected function removePermissionFromUser(User $user, string $permissionName)
{
$permissionService = app()->make(PermissionService::class);
$permissionBuilder = app()->make(JointPermissionBuilder::class);
/** @var RolePermission $permission */
$permission = RolePermission::query()->where('name', '=', $permissionName)->firstOrFail();
@@ -208,7 +209,7 @@ trait SharedTestHelpers
/** @var Role $role */
foreach ($roles as $role) {
$role->detachPermission($permission);
$permissionService->buildJointPermissionForRole($role);
$permissionBuilder->buildJointPermissionForRole($role);
}
$user->clearPermissionCache();
@@ -241,8 +242,8 @@ trait SharedTestHelpers
$book = Book::factory()->create($userAttrs);
$chapter = Chapter::factory()->create(array_merge(['book_id' => $book->id], $userAttrs));
$page = Page::factory()->create(array_merge(['book_id' => $book->id, 'chapter_id' => $chapter->id], $userAttrs));
$restrictionService = $this->app[PermissionService::class];
$restrictionService->buildJointPermissionsForEntity($book);
$this->app->make(JointPermissionBuilder::class)->buildJointPermissionsForEntity($book);
return compact('book', 'chapter', 'page');
}