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

Added and addressed multi-role/own-role-perm/inheretance scenario

Found during manual testing.
Have checked against relation queries manually too.
This commit is contained in:
Dan Brown
2023-01-26 12:53:25 +00:00
parent 48df8725d8
commit f6a6b11ec5
3 changed files with 47 additions and 1 deletions

View File

@@ -187,6 +187,19 @@ class EntityRolePermissionsTest extends PermissionScenarioTestCase
$this->assertNotVisibleToUser($page, $user);
}
public function test_71_multi_role_inheriting_deny_on_own()
{
[$user, $roleA] = $this->users->newUserWithRole([], ['page-view-own']);
$roleB = $this->users->attachNewRole($user);
$page = $this->entities->page();
$this->permissions->changeEntityOwner($page, $user);
$this->permissions->addEntityPermission($page, [], $roleB);
$this->assertNotVisibleToUser($page, $user);
}
public function test_75_multi_role_inherited_deny_via_parent()
{
[$user, $roleA] = $this->users->newUserWithRole([], ['page-view-all']);
@@ -199,6 +212,19 @@ class EntityRolePermissionsTest extends PermissionScenarioTestCase
$this->assertNotVisibleToUser($page, $user);
}
public function test_76_multi_role_inherited_deny_via_parent_on_own()
{
[$user, $roleA] = $this->users->newUserWithRole([], ['page-view-own']);
$roleB = $this->users->attachNewRole($user);
$page = $this->entities->pageWithinChapter();
$chapter = $page->chapter;
$this->permissions->changeEntityOwner($page, $user);
$this->permissions->addEntityPermission($chapter, [], $roleB);
$this->assertNotVisibleToUser($page, $user);
}
public function test_80_fallback_override_allow()
{
[$user, $roleA] = $this->users->newUserWithRole();