3 namespace Tests\Permissions\Scenarios;
5 class EntityUserPermissions extends PermissionScenarioTestCase
7 public function test_01_explicit_allow()
9 $user = $this->users->newUser();
10 $page = $this->entities->page();
11 $this->permissions->disableEntityInheritedPermissions($page);
12 $this->permissions->addEntityPermission($page, ['view'], null, $user);
14 $this->assertVisibleToUser($page, $user);
17 public function test_02_explicit_deny()
19 $user = $this->users->newUser();
20 $page = $this->entities->page();
21 $this->permissions->disableEntityInheritedPermissions($page);
22 $this->permissions->addEntityPermission($page, [], null, $user);
24 $this->assertNotVisibleToUser($page, $user);
27 public function test_10_allow_inherit()
29 $user = $this->users->newUser();
30 $page = $this->entities->pageWithinChapter();
31 $chapter = $page->chapter;
32 $this->permissions->disableEntityInheritedPermissions($chapter);
33 $this->permissions->addEntityPermission($chapter, ['view'], null, $user);
35 $this->assertVisibleToUser($page, $user);
38 public function test_11_deny_inherit()
40 $user = $this->users->newUser();
41 $page = $this->entities->pageWithinChapter();
42 $chapter = $page->chapter;
43 $this->permissions->disableEntityInheritedPermissions($chapter);
44 $this->permissions->addEntityPermission($chapter, [], null, $user);
46 $this->assertNotVisibleToUser($page, $user);
49 public function test_12_allow_inherit_override()
51 $user = $this->users->newUser();
52 $page = $this->entities->pageWithinChapter();
53 $chapter = $page->chapter;
54 $this->permissions->disableEntityInheritedPermissions($chapter);
55 $this->permissions->addEntityPermission($chapter, [], null, $user);
56 $this->permissions->addEntityPermission($page, ['view'], null, $user);
58 $this->assertVisibleToUser($page, $user);
61 public function test_13_deny_inherit_override()
63 $user = $this->users->newUser();
64 $page = $this->entities->pageWithinChapter();
65 $chapter = $page->chapter;
66 $this->permissions->disableEntityInheritedPermissions($chapter);
67 $this->permissions->addEntityPermission($chapter, ['view'], null, $user);
68 $this->permissions->addEntityPermission($page, ['deny'], null, $user);
70 $this->assertNotVisibleToUser($page, $user);
73 public function test_40_entity_role_override_allow()
75 [$user, $role] = $this->users->newUserWithRole();
76 $page = $this->entities->page();
77 $this->permissions->disableEntityInheritedPermissions($page);
78 $this->permissions->addEntityPermission($page, ['view'], null, $user);
79 $this->permissions->addEntityPermission($page, [], $role);
81 $this->assertVisibleToUser($page, $user);
84 public function test_41_entity_role_override_deny()
86 [$user, $role] = $this->users->newUserWithRole();
87 $page = $this->entities->page();
88 $this->permissions->disableEntityInheritedPermissions($page);
89 $this->permissions->addEntityPermission($page, [], null, $user);
90 $this->permissions->addEntityPermission($page, ['view'], $role);
92 $this->assertNotVisibleToUser($page, $user);
95 public function test_42_entity_role_override_allow_via_inherit()
97 [$user, $role] = $this->users->newUserWithRole();
98 $page = $this->entities->pageWithinChapter();
99 $chapter = $page->chapter;
100 $this->permissions->disableEntityInheritedPermissions($chapter);
101 $this->permissions->addEntityPermission($chapter, ['view'], null, $user);
102 $this->permissions->addEntityPermission($page, [], $role);
104 $this->assertVisibleToUser($page, $user);
107 public function test_43_entity_role_override_deny_via_inherit()
109 [$user, $role] = $this->users->newUserWithRole();
110 $page = $this->entities->pageWithinChapter();
111 $chapter = $page->chapter;
112 $this->permissions->disableEntityInheritedPermissions($chapter);
113 $this->permissions->addEntityPermission($chapter, [], null, $user);
114 $this->permissions->addEntityPermission($page, ['view'], $role);
116 $this->assertNotVisibleToUser($page, $user);