]> BookStack Code Mirror - bookstack/blobdiff - dev/docs/permission-scenario-testing.md
Opensearch: Fixed XML declaration when php short tags enabled
[bookstack] / dev / docs / permission-scenario-testing.md
index 6d0935f09ae0befc79ee0cf7a8205d01bd205062..0a910d2033666db9c8324d8c287e436dbb03f1a0 100644 (file)
@@ -6,19 +6,16 @@ Test cases are written ability abstract, since all abilities should act the same
 
 Tests are categorised by the most specific element involved in the scenario, where the below list is most specific to least:
 
-- User entity permissions.
 - Role entity permissions.
 - Fallback entity permissions.
 - Role permissions.
 
-- TODO - Test fallback in the context of the above.
-
 ## General Permission Logical Rules
 
 The below are some general rules we follow to standardise the behaviour of permissions in the platform:
 
 - Most specific permission application (as above) take priority and can deny less specific permissions.
-- Parent user/role entity permissions that may be inherited, are considered to essentially be applied on the item they are inherited to unless a lower level has its own permission rule for an already specific role/user.
+- Parent role entity permissions that may be inherited, are considered to essentially be applied on the item they are inherited to unless a lower level has its own permission rule for an already specific role.
 - Where both grant and deny exist at the same specificity, we side towards grant.
 
 ## Cases
@@ -232,190 +229,135 @@ User denied page permission.
 
 User denied page permission.
 
-#### test_80_multi_role_inherited_deny_via_parent
+#### test_71_multi_role_inheriting_deny_on_own
 
 - Page permissions have inherit enabled.
-- Chapter permissions have inherit enabled.
-- Role A has all-pages role permission.
-- Role B has entity denied chapter permission.
-- User has Role A & B.
-
-User denied page permission.
-
----
-
-### Entity User Permissions
-
-These are tests related to entity-level user-specific permission overrides.
-
-#### test_01_explicit_allow
-
-- Page permissions have inherit disabled.
-- User has entity allow page permission.
-
-User granted page permission.
-
-#### test_02_explicit_deny
-
-- Page permissions have inherit disabled.
-- User has entity deny page permission.
+- 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_10_allow_inherit
+#### test_75_multi_role_inherited_deny_via_parent
 
 - Page permissions have inherit enabled.
-- Chapter permissions have inherit disabled.
-- User has entity allow chapter permission.
-
-User granted page permission.
-
-#### test_11_deny_inherit
-
-- Page permissions have inherit enabled.
-- Chapter permissions have inherit disabled.
-- User has entity deny chapter permission.
+- Chapter permissions have inherit enabled.
+- Role A has all-pages role permission.
+- Role B has entity denied chapter permission.
+- User has Role A & B.
 
 User denied page permission.
 
-#### test_12_allow_inherit_override
-
-- Page permissions have inherit enabled.
-- Chapter permissions have inherit disabled.
-- User has entity deny chapter permission.
-- User has entity allow page permission.
-
-User granted page permission.
-
-#### test_13_deny_inherit_override
+#### test_76_multi_role_inherited_deny_via_parent_on_own
 
 - Page permissions have inherit enabled.
-- Chapter permissions have inherit disabled.
-- User has entity allow chapter permission.
-- User has entity deny page permission.
+- 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_40_entity_role_override_allow
+#### test_80_fallback_override_allow
 
 - Page permissions have inherit disabled.
-- User has entity allow page permission.
-- Role A has entity deny page permission.
-- User has role A.
+- Page fallback has entity deny permission.
+- Role A has entity allow page permission.
+- User has Role A.
 
 User granted page permission.
 
-#### test_41_entity_role_override_deny
+#### test_81_fallback_override_deny
 
 - Page permissions have inherit disabled.
-- User has entity deny page permission.
-- Role A has entity allow page permission.
-- User has role A.
-
-User denied page permission.
-
-#### test_42_entity_role_override_allow_via_inherit
-
-- Page permissions have inherit enabled.
-- Chapter permissions have inherit disabled.
-- User has entity allow chapter permission.
+- Page fallback has entity allow permission.
 - Role A has entity deny page permission.
-- User has role A.
-
-User granted page permission.
-
-#### test_43_entity_role_override_deny_via_inherit
-
-- Page permissions have inherit enabled.
-- Chapter permissions have inherit disabled.
-- User has entity deny chapter permission.
-- Role A has entity allow page permission.
-- User has role A.
+- User has Role A.
 
 User denied page permission.
 
-#### test_50_role_override_allow
+#### test_84_fallback_override_allow_multi_role
 
-- Page permissions have inherit enabled.
-- Role A has no page role permission.
-- User has entity allow page permission.
-- User has Role A.
+- Page permissions have inherit disabled.
+- Page fallback has entity deny permission.
+- Role A has entity allow page permission.
+- Role B has no entity page permissions.
+- User has Role A & B.
 
 User granted page permission.
 
-#### test_51_role_override_deny
+#### test_85_fallback_override_deny_multi_role
 
-- Page permissions have inherit enabled.
-- Role A has all-page role permission.
-- User has entity deny page permission.
-- User has Role A.
+- Page permissions have inherit disabled.
+- Page fallback has entity allow permission.
+- Role A has entity deny page permission.
+- Role B has no entity page permissions.
+- User has Role A & B.
 
 User denied page permission.
 
-#### test_60_inherited_role_override_allow
+#### test_86_fallback_override_allow_inherit
 
+- Chapter permissions have inherit disabled.
 - Page permissions have inherit enabled.
-- Role A has no page role permission.
-- User has entity allow chapter permission.
+- Chapter fallback has entity deny permission.
+- Role A has entity allow chapter permission.
 - User has Role A.
 
 User granted page permission.
 
-#### test_61_inherited_role_override_deny
-
-- Page permissions have inherit enabled.
-- Role A has view-all page role permission.
-- User has entity deny chapter permission.
-- User has Role A.
-
-User denied page permission.
-
-#### test_61_inherited_role_override_deny_on_own
+#### test_87_fallback_override_deny_inherit
 
+- Chapter permissions have inherit disabled.
 - Page permissions have inherit enabled.
-- Role A has view-own page role permission.
-- User has entity deny chapter permission.
+- Chapter fallback has entity allow permission.
+- Role A has entity deny chapter permission.
 - User has Role A.
-- User owns Page.
 
 User denied page permission.
 
-#### test_70_all_override_allow
+#### test_88_fallback_override_allow_multi_role_inherit
 
+- Chapter permissions have inherit disabled.
 - Page permissions have inherit enabled.
-- Role A has no page role permission.
-- Role A has entity deny page permission.
-- User has entity allow page permission.
-- User has Role A.
+- Chapter fallback has entity deny permission.
+- Role A has entity allow chapter permission.
+- Role B has no entity chapter permissions.
+- User has Role A & B.
 
 User granted page permission.
 
-#### test_71_all_override_deny
+#### test_89_fallback_override_deny_multi_role_inherit
 
+- Chapter permissions have inherit disabled.
 - Page permissions have inherit enabled.
-- Role A has page-all role permission.
-- Role A has entity allow page permission.
-- User has entity deny page permission.
-- User has Role A.
+- Chapter fallback has entity allow permission.
+- Role A has entity deny chapter permission.
+- Role B has no entity chapter permissions.
+- User has Role A & B.
 
 User denied page permission.
 
-#### test_80_inherited_all_override_allow
+#### test_90_fallback_overrides_parent_entity_role_deny
 
-- Page permissions have inherit enabled.
-- Role A has no page role permission.
-- Role A has entity deny chapter permission.
-- User has entity allow chapter permission.
+- Chapter permissions have inherit disabled.
+- Page permissions have inherit disabled.
+- Chapter fallback has entity deny permission.
+- Page fallback has entity deny permission.
+- Role A has entity allow chapter permission.
 - User has Role A.
 
-User granted page permission.
+User denied page permission.
 
-#### test_81_inherited_all_override_deny
+#### test_91_fallback_overrides_parent_entity_role_inherit
 
+- Book permissions have inherit disabled.
+- Chapter permissions have inherit disabled. 
 - Page permissions have inherit enabled.
-- Role A has view-all page role permission.
-- Role A has entity allow chapter permission.
-- User has entity deny chapter permission.
+- Book fallback has entity deny permission.
+- Chapter fallback has entity deny permission.
+- Role A has entity allow book permission.
 - User has Role A.
 
 User denied page permission.
\ No newline at end of file