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_71_multi_role_inheriting_deny_on_own
234 - Page permissions have inherit enabled.
235 - Role A has own page role permission.
236 - Role B has entity denied page permission.
237 - User has Role A and B.
240 User denied page permission.
242 #### test_75_multi_role_inherited_deny_via_parent
244 - Page permissions have inherit enabled.
245 - Chapter permissions have inherit enabled.
246 - Role A has all-pages role permission.
247 - Role B has entity denied chapter permission.
248 - User has Role A & B.
250 User denied page permission.
252 #### test_76_multi_role_inherited_deny_via_parent_on_own
254 - Page permissions have inherit enabled.
255 - Chapter permissions have inherit enabled.
256 - Role A has own page role permission.
257 - Role B has entity denied chapter permission.
258 - User has Role A & B.
260 User denied page permission.
262 #### test_80_fallback_override_allow
264 - Page permissions have inherit disabled.
265 - Page fallback has entity deny permission.
266 - Role A has entity allow page permission.
269 User granted page permission.
271 #### test_81_fallback_override_deny
273 - Page permissions have inherit disabled.
274 - Page fallback has entity allow permission.
275 - Role A has entity deny page permission.
278 User denied page permission.
280 #### test_84_fallback_override_allow_multi_role
282 - Page permissions have inherit disabled.
283 - Page fallback has entity deny permission.
284 - Role A has entity allow page permission.
285 - Role B has no entity page permissions.
286 - User has Role A & B.
288 User granted page permission.
290 #### test_85_fallback_override_deny_multi_role
292 - Page permissions have inherit disabled.
293 - Page fallback has entity allow permission.
294 - Role A has entity deny page permission.
295 - Role B has no entity page permissions.
296 - User has Role A & B.
298 User denied page permission.
300 #### test_86_fallback_override_allow_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.
308 User granted page permission.
310 #### test_87_fallback_override_deny_inherit
312 - Chapter permissions have inherit disabled.
313 - Page permissions have inherit enabled.
314 - Chapter fallback has entity allow permission.
315 - Role A has entity deny chapter permission.
318 User denied page permission.
320 #### test_88_fallback_override_allow_multi_role_inherit
322 - Chapter permissions have inherit disabled.
323 - Page permissions have inherit enabled.
324 - Chapter fallback has entity deny permission.
325 - Role A has entity allow chapter permission.
326 - Role B has no entity chapter permissions.
327 - User has Role A & B.
329 User granted page permission.
331 #### test_89_fallback_override_deny_multi_role_inherit
333 - Chapter permissions have inherit disabled.
334 - Page permissions have inherit enabled.
335 - Chapter fallback has entity allow permission.
336 - Role A has entity deny chapter permission.
337 - Role B has no entity chapter permissions.
338 - User has Role A & B.
340 User denied page permission.
342 #### test_90_fallback_overrides_parent_entity_role_deny
344 - Chapter permissions have inherit disabled.
345 - Page permissions have inherit disabled.
346 - Chapter fallback has entity deny permission.
347 - Page fallback has entity deny permission.
348 - Role A has entity allow chapter permission.
351 User denied page permission.
353 #### test_91_fallback_overrides_parent_entity_role_inherit
355 - Book permissions have inherit disabled.
356 - Chapter permissions have inherit disabled.
357 - Page permissions have inherit enabled.
358 - Book fallback has entity deny permission.
359 - Chapter fallback has entity deny permission.
360 - Role A has entity allow book permission.
363 User denied page permission.