->selectRaw('max(status) as status')
->whereIn('role_id', $this->getCurrentUserRoleIds())
->groupBy(['entity_type', 'entity_id'])
- ->havingRaw('(status IN (1, 3) or owner_id = ?)', [$this->currentUser()->id]);
+ ->havingRaw('(status IN (1, 3) or (owner_id = ? and status != 2))', [$this->currentUser()->id]);
});
});
}
User denied page permission.
+#### test_71_multi_role_inheriting_deny_on_own
+
+- Page permissions have inherit enabled.
+- Role A has own page role permission.
+- Role B has entity denied page permission.
+- User has Role A and B.
+- Use owns Page.
+
+User denied page permission.
+
#### test_75_multi_role_inherited_deny_via_parent
- Page permissions have inherit enabled.
User denied page permission.
+#### test_76_multi_role_inherited_deny_via_parent_on_own
+
+- Page permissions have inherit enabled.
+- Chapter permissions have inherit enabled.
+- Role A has own page role permission.
+- Role B has entity denied chapter permission.
+- User has Role A & B.
+
+User denied page permission.
+
#### test_80_fallback_override_allow
- Page permissions have inherit disabled.
$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']);
$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();