]> BookStack Code Mirror - bookstack/blob - dev/docs/permission-scenario-testing.md
5797ee3625e0d2cd1684fd67dbb13d44ca5197e6
[bookstack] / dev / docs / permission-scenario-testing.md
1 # Permission Scenario Testing
2
3 Due to complexity that can arise in the various combinations of permissions, this document details scenarios and their expected results.
4
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.
6
7 ## Cases
8
9 TODO - User permissions
10 TODO - Role & entity-role interplay
11 TODO - entity-user permissions
12 TODO - entity-user & entity-role interplay
13
14 ### Content Role Permissions
15
16 These are tests related to item/entity permissions that are set only at a role level.
17
18 #### test_01_allow
19
20 - Role A has role all-page permission.
21 - User has Role A.
22
23 User granted page permission.
24
25 #### test_02_deny
26
27 - Role A has no page permission.
28 - User has Role A.
29
30 User denied page permission.
31
32 #### test_10_allow_on_own_with_own
33
34 - Role A has role own-page permission.
35 - User has Role A.
36 - User is owner of page.
37
38 User granted page permission.
39
40 #### test_11_deny_on_other_with_own
41
42 - Role A has role own-page permission.
43 - User has Role A.
44 - User is not owner of page.
45
46 User denied page permission.
47
48 #### test_20_multiple_role_conflicting_all
49
50 - Role A has role all-page permission.
51 - Role B has no page permission.
52 - User has Role A & B.
53
54 User granted page permission.
55
56 #### test_21_multiple_role_conflicting_own
57
58 - Role A has role own-page permission.
59 - Role B has no page permission.
60 - User has Role A & B.
61 - User is owner of page.
62
63 User granted page permission.
64
65 ---
66
67 ### Entity Role Permissions
68
69 These are tests related to entity-level role-specific permission overrides.
70
71 #### test_01_explicit_allow
72
73 - Page permissions have inherit disabled.
74 - Role A has entity allow page permission.
75 - User has Role A.
76
77 User granted page permission.
78
79 #### test_02_explicit_deny
80
81 - Page permissions have inherit disabled.
82 - Role A has entity deny page permission.
83 - User has Role A.
84
85 User denied page permission.
86
87 #### test_03_same_level_conflicting
88
89 - Page permissions have inherit disabled.
90 - Role A has entity allow page permission.
91 - Role B has entity deny page permission.
92 - User has both Role A & B.
93
94 User granted page permission. 
95 Explicit grant overrides entity deny at same level.
96
97 #### test_20_inherit_allow
98
99 - Page permissions have inherit enabled.
100 - Chapter permissions has inherit disabled.
101 - Role A has entity allow chapter permission.
102 - User has Role A.
103
104 User granted page permission.
105
106 #### test_21_inherit_deny
107
108 - Page permissions have inherit enabled.
109 - Chapter permissions has inherit disabled.
110 - Role A has entity deny chapter permission.
111 - User has Role A.
112
113 User denied page permission.
114
115 #### test_22_same_level_conflict_inherit 
116
117 - Page permissions have inherit enabled.
118 - Chapter permissions has inherit disabled.
119 - Role A has entity deny chapter permission.
120 - Role B has entity allow chapter permission.
121 - User has both Role A & B.
122
123 User granted page permission.
124
125 #### test_30_child_inherit_override_allow
126
127 - Page permissions have inherit enabled.
128 - Chapter permissions has inherit disabled.
129 - Role A has entity deny chapter permission.
130 - Role A has entity allow page permission.
131 - User has Role A.
132
133 User granted page permission.
134
135 #### test_31_child_inherit_override_deny
136
137 - Page permissions have inherit enabled.
138 - Chapter permissions has inherit disabled.
139 - Role A has entity allow chapter permission.
140 - Role A has entity deny page permission.
141 - User has Role A.
142
143 User denied page permission.