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 - User entity permissions.
10 - Role 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 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.
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_80_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.
244 ### Entity User Permissions
246 These are tests related to entity-level user-specific permission overrides.
248 #### test_01_explicit_allow
250 - Page permissions have inherit disabled.
251 - User has entity allow page permission.
253 User granted page permission.
255 #### test_02_explicit_deny
257 - Page permissions have inherit disabled.
258 - User has entity deny page permission.
260 User denied page permission.
262 #### test_10_allow_inherit
264 - Page permissions have inherit enabled.
265 - Chapter permissions have inherit disabled.
266 - User has entity allow chapter permission.
268 User granted page permission.
270 #### test_11_deny_inherit
272 - Page permissions have inherit enabled.
273 - Chapter permissions have inherit disabled.
274 - User has entity deny chapter permission.
276 User denied page permission.
278 #### test_12_allow_inherit_override
280 - Page permissions have inherit enabled.
281 - Chapter permissions have inherit disabled.
282 - User has entity deny chapter permission.
283 - User has entity allow page permission.
285 User granted page permission.
287 #### test_13_deny_inherit_override
289 - Page permissions have inherit enabled.
290 - Chapter permissions have inherit disabled.
291 - User has entity allow chapter permission.
292 - User has entity deny page permission.
294 User denied page permission.
296 #### test_40_entity_role_override_allow
298 - Page permissions have inherit disabled.
299 - User has entity allow page permission.
300 - Role A has entity deny page permission.
303 User granted page permission.
305 #### test_41_entity_role_override_deny
307 - Page permissions have inherit disabled.
308 - User has entity deny page permission.
309 - Role A has entity allow page permission.
312 User denied page permission.
314 #### test_42_entity_role_override_allow_via_inherit
316 - Page permissions have inherit enabled.
317 - Chapter permissions have inherit disabled.
318 - User has entity allow chapter permission.
319 - Role A has entity deny page permission.
322 User granted page permission.
324 #### test_43_entity_role_override_deny_via_inherit
326 - Page permissions have inherit enabled.
327 - Chapter permissions have inherit disabled.
328 - User has entity deny chapter permission.
329 - Role A has entity allow page permission.
332 User denied page permission.
334 #### test_50_role_override_allow
336 - Page permissions have inherit enabled.
337 - Role A has no page role permission.
338 - User has entity allow page permission.
341 User granted page permission.
343 #### test_51_role_override_deny
345 - Page permissions have inherit enabled.
346 - Role A has all-page role permission.
347 - User has entity deny page permission.
350 User denied page permission.
352 #### test_60_inherited_role_override_allow
354 - Page permissions have inherit enabled.
355 - Role A has no page role permission.
356 - User has entity allow chapter permission.
359 User granted page permission.
361 #### test_61_inherited_role_override_deny
363 - Page permissions have inherit enabled.
364 - Role A has view-all page role permission.
365 - User has entity deny chapter permission.
368 User denied page permission.
370 #### test_61_inherited_role_override_deny_on_own
372 - Page permissions have inherit enabled.
373 - Role A has view-own page role permission.
374 - User has entity deny chapter permission.
378 User denied page permission.
380 #### test_70_all_override_allow
382 - Page permissions have inherit enabled.
383 - Role A has no page role permission.
384 - Role A has entity deny page permission.
385 - User has entity allow page permission.
388 User granted page permission.
390 #### test_71_all_override_deny
392 - Page permissions have inherit enabled.
393 - Role A has page-all role permission.
394 - Role A has entity allow page permission.
395 - User has entity deny page permission.
398 User denied page permission.
400 #### test_80_inherited_all_override_allow
402 - Page permissions have inherit enabled.
403 - Role A has no page role permission.
404 - Role A has entity deny chapter permission.
405 - User has entity allow chapter permission.
408 User granted page permission.
410 #### test_81_inherited_all_override_deny
412 - Page permissions have inherit enabled.
413 - Role A has view-all page role permission.
414 - Role A has entity allow chapter permission.
415 - User has entity deny chapter permission.
418 User denied page permission.