1 # Permission Scenario Testing
3 Due to complexity that can arise in the various combinations of permissions, this document details scenarios and their expected results.
5 Test cases are written ability abstract, since all abilities should act the same in theory. Functional test cases may test abilities separate due to implementation differences.
7 Tests are categorised by the most specific element involved in the scenario, where the below list is most specific to least:
9 - Role entity permissions.
10 - Fallback entity permissions.
13 ## General Permission Logical Rules
15 The below are some general rules we follow to standardise the behaviour of permissions in the platform:
17 - Most specific permission application (as above) take priority and can deny less specific permissions.
18 - 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.
19 - Where both grant and deny exist at the same specificity, we side towards grant.
23 ### Content Role Permissions
25 These are tests related to item/entity permissions that are set only at a role level.
29 - Role A has role all-page permission.
32 User granted page permission.
36 - Role A has no page permission.
39 User denied page permission.
41 #### test_10_allow_on_own_with_own
43 - Role A has role own-page permission.
45 - User is owner of page.
47 User granted page permission.
49 #### test_11_deny_on_other_with_own
51 - Role A has role own-page permission.
53 - User is not owner of page.
55 User denied page permission.
57 #### test_20_multiple_role_conflicting_all
59 - Role A has role all-page permission.
60 - Role B has no page permission.
61 - User has Role A & B.
63 User granted page permission.
65 #### test_21_multiple_role_conflicting_own
67 - Role A has role own-page permission.
68 - Role B has no page permission.
69 - User has Role A & B.
70 - User is owner of page.
72 User granted page permission.
76 ### Entity Role Permissions
78 These are tests related to entity-level role-specific permission overrides.
80 #### test_01_explicit_allow
82 - Page permissions have inherit disabled.
83 - Role A has entity allow page permission.
86 User granted page permission.
88 #### test_02_explicit_deny
90 - Page permissions have inherit disabled.
91 - Role A has entity deny page permission.
94 User denied page permission.
96 #### test_03_same_level_conflicting
98 - Page permissions have inherit disabled.
99 - Role A has entity allow page permission.
100 - Role B has entity deny page permission.
101 - User has both Role A & B.
103 User granted page permission.
104 Explicit grant overrides entity deny at same level.
106 #### test_20_inherit_allow
108 - Page permissions have inherit enabled.
109 - Chapter permissions has inherit disabled.
110 - Role A has entity allow chapter permission.
113 User granted page permission.
115 #### test_21_inherit_deny
117 - Page permissions have inherit enabled.
118 - Chapter permissions has inherit disabled.
119 - Role A has entity deny chapter permission.
122 User denied page permission.
124 #### test_22_same_level_conflict_inherit
126 - Page permissions have inherit enabled.
127 - Chapter permissions has inherit disabled.
128 - Role A has entity deny chapter permission.
129 - Role B has entity allow chapter permission.
130 - User has both Role A & B.
132 User granted page permission.
134 #### test_30_child_inherit_override_allow
136 - Page permissions have inherit enabled.
137 - Chapter permissions has inherit disabled.
138 - Role A has entity deny chapter permission.
139 - Role A has entity allow page permission.
142 User granted page permission.
144 #### test_31_child_inherit_override_deny
146 - Page permissions have inherit enabled.
147 - Chapter permissions has inherit disabled.
148 - Role A has entity allow chapter permission.
149 - Role A has entity deny page permission.
152 User denied page permission.
154 #### test_40_multi_role_inherit_conflict_override_deny
156 - Page permissions have inherit enabled.
157 - Chapter permissions has inherit disabled.
158 - Role A has entity deny page permission.
159 - Role B has entity allow chapter permission.
160 - User has Role A & B.
162 User granted page permission.
164 #### test_41_multi_role_inherit_conflict_retain_allow
166 - Page permissions have inherit enabled.
167 - Chapter permissions has inherit disabled.
168 - Role A has entity allow page permission.
169 - Role B has entity deny chapter permission.
170 - User has Role A & B.
172 User granted page permission.
174 #### test_50_role_override_allow
176 - Page permissions have inherit enabled.
177 - Role A has no page role permission.
178 - Role A has entity allow page permission.
181 User granted page permission.
183 #### test_51_role_override_deny
185 - Page permissions have inherit enabled.
186 - Role A has no page-view-all role permission.
187 - Role A has entity deny page permission.
190 User denied page permission.
192 #### test_60_inherited_role_override_allow
194 - Page permissions have inherit enabled.
195 - Chapter permissions have inherit enabled.
196 - Role A has no page role permission.
197 - Role A has entity allow chapter permission.
200 User granted page permission.
202 #### test_61_inherited_role_override_deny
204 - Page permissions have inherit enabled.
205 - Chapter permissions have inherit enabled.
206 - Role A has page role permission.
207 - Role A has entity denied chapter permission.
210 User denied page permission.
212 #### test_62_inherited_role_override_deny_on_own
214 - Page permissions have inherit enabled.
215 - Chapter permissions have inherit enabled.
216 - Role A has own-page role permission.
217 - Role A has entity denied chapter permission.
221 User denied page permission.
223 #### test_70_multi_role_inheriting_deny
225 - Page permissions have inherit enabled.
226 - Role A has all page role permission.
227 - Role B has entity denied page permission.
228 - User has Role A and B.
230 User denied page permission.
232 #### test_75_multi_role_inherited_deny_via_parent
234 - Page permissions have inherit enabled.
235 - Chapter permissions have inherit enabled.
236 - Role A has all-pages role permission.
237 - Role B has entity denied chapter permission.
238 - User has Role A & B.
240 User denied page permission.
242 #### test_80_fallback_override_allow
244 - Page permissions have inherit disabled.
245 - Page fallback has entity deny permission.
246 - Role A has entity allow page permission.
249 User granted page permission.
251 #### test_81_fallback_override_deny
253 - Page permissions have inherit disabled.
254 - Page fallback has entity allow permission.
255 - Role A has entity deny page permission.
258 User denied page permission.
260 #### test_84_fallback_override_allow_multi_role
262 - Page permissions have inherit disabled.
263 - Page fallback has entity deny permission.
264 - Role A has entity allow page permission.
265 - Role B has no entity page permissions.
266 - User has Role A & B.
268 User granted page permission.
270 #### test_85_fallback_override_deny_multi_role
272 - Page permissions have inherit disabled.
273 - Page fallback has entity allow permission.
274 - Role A has entity deny page permission.
275 - Role B has no entity page permissions.
276 - User has Role A & B.
278 User denied page permission.
280 #### test_86_fallback_override_allow_inherit
282 - Chapter permissions have inherit disabled.
283 - Page permissions have inherit enabled.
284 - Chapter fallback has entity deny permission.
285 - Role A has entity allow chapter permission.
288 User granted page permission.
290 #### test_87_fallback_override_deny_inherit
292 - Chapter permissions have inherit disabled.
293 - Page permissions have inherit enabled.
294 - Chapter fallback has entity allow permission.
295 - Role A has entity deny chapter permission.
298 User denied page permission.
300 #### test_88_fallback_override_allow_multi_role_inherit
302 - Chapter permissions have inherit disabled.
303 - Page permissions have inherit enabled.
304 - Chapter fallback has entity deny permission.
305 - Role A has entity allow chapter permission.
306 - Role B has no entity chapter permissions.
307 - User has Role A & B.
309 User granted page permission.
311 #### test_89_fallback_override_deny_multi_role_inherit
313 - Chapter permissions have inherit disabled.
314 - Page permissions have inherit enabled.
315 - Chapter fallback has entity allow permission.
316 - Role A has entity deny chapter permission.
317 - Role B has no entity chapter permissions.
318 - User has Role A & B.
320 User denied page permission.
322 #### test_90_fallback_overrides_parent_entity_role_deny
324 - Chapter permissions have inherit disabled.
325 - Page permissions have inherit disabled.
326 - Chapter fallback has entity deny permission.
327 - Page fallback has entity deny permission.
328 - Role A has entity allow chapter permission.
331 User denied page permission.
333 #### test_91_fallback_overrides_parent_entity_role_inherit
335 - Book permissions have inherit disabled.
336 - Chapter permissions have inherit disabled.
337 - Page permissions have inherit enabled.
338 - Book fallback has entity deny permission.
339 - Chapter fallback has entity deny permission.
340 - Role A has entity allow book permission.
343 User denied page permission.