Coverage for postrfp/authorisation/actions.py: 100%
7 statements
« prev ^ index » next coverage.py v7.11.0, created at 2025-10-22 21:34 +0000
« prev ^ index » next coverage.py v7.11.0, created at 2025-10-22 21:34 +0000
1from postrfp.authorisation import perms
3ADMIN_ACTIONS = {
4 perms.MANAGE_ORGANISATION,
5 perms.MANAGE_PRIVATE_ADDRESS_BOOK,
6 perms.MANAGE_ROLES,
7 perms.MANAGE_USERS,
8}
10PROJECT_ACTIONS = {
11 perms.ISSUE_SAVE_AGREED_SCORES,
12 perms.ISSUE_SAVE_SCORES,
13 perms.ISSUE_VIEW_AGREED_SCORES,
14 perms.ISSUE_VIEW_ANSWERS,
15 perms.ISSUE_VIEW_SCORES,
16 perms.ISSUE_CREATE,
17 perms.PROJECT_ACCESS,
18 perms.PROJECT_ADD_NOTE,
19 perms.PROJECT_APPROVE,
20 perms.PROJECT_CLOSE,
21 perms.PROJECT_CREATE,
22 perms.PROJECT_CREATE_ON_BEHALF,
23 perms.PROJECT_DELETE,
24 perms.PROJECT_EDIT,
25 perms.PROJECT_EDIT_COSMETIC,
26 perms.PROJECT_EXPORT_COMPLETE,
27 perms.PROJECT_IMPORT_COMPLETE,
28 perms.PROJECT_MANAGE_ROLES,
29 perms.PROJECT_PUBLISH,
30 perms.PROJECT_REVERT_TO_DRAFT,
31 perms.PROJECT_SAVE_QUESTIONNAIRE,
32 perms.PROJECT_VIEW_QUESTIONNAIRE,
33 perms.PROJECT_VIEW_WEIGHTING,
34}
36# N.B. These are now merely the default permissions for the statuses
37# of the default project workflow. Custom workflows may have
38# different statuses with different permissions.
39PROJECT_STATUS_ACTIONS = {
40 "Draft": {
41 perms.ISSUE_CREATE,
42 perms.PROJECT_ACCESS,
43 perms.PROJECT_APPROVE,
44 perms.PROJECT_ADD_NOTE,
45 perms.PROJECT_CLOSE,
46 perms.PROJECT_DELETE,
47 perms.PROJECT_EDIT,
48 perms.PROJECT_EDIT_COSMETIC,
49 perms.PROJECT_EXPORT_COMPLETE,
50 perms.PROJECT_MANAGE_ROLES,
51 perms.PROJECT_PUBLISH,
52 perms.PROJECT_SAVE_QUESTIONNAIRE,
53 perms.PROJECT_VIEW_QUESTIONNAIRE,
54 perms.PROJECT_VIEW_WEIGHTING,
55 },
56 "Live": {
57 perms.ISSUE_CREATE,
58 perms.ISSUE_SAVE_AGREED_SCORES,
59 perms.ISSUE_SAVE_SCORES,
60 perms.ISSUE_VIEW_AGREED_SCORES,
61 perms.ISSUE_VIEW_ANSWERS,
62 perms.ISSUE_VIEW_SCORES,
63 perms.PROJECT_ACCESS,
64 perms.PROJECT_APPROVE,
65 perms.PROJECT_ADD_NOTE,
66 perms.PROJECT_CLOSE,
67 perms.PROJECT_EDIT_COSMETIC,
68 perms.PROJECT_EDIT,
69 perms.PROJECT_EXPORT_COMPLETE,
70 perms.PROJECT_MANAGE_ROLES,
71 perms.PROJECT_SAVE_QUESTIONNAIRE,
72 perms.PROJECT_VIEW_QUESTIONNAIRE,
73 perms.PROJECT_VIEW_WEIGHTING,
74 },
75 "Closed": {
76 perms.ISSUE_VIEW_AGREED_SCORES,
77 perms.ISSUE_VIEW_ANSWERS,
78 perms.ISSUE_VIEW_SCORES,
79 perms.PROJECT_ACCESS,
80 perms.PROJECT_DELETE,
81 perms.PROJECT_EXPORT_COMPLETE,
82 perms.PROJECT_VIEW_QUESTIONNAIRE,
83 perms.PROJECT_VIEW_WEIGHTING,
84 },
85}
87ISSUE_ACTIONS = {
88 perms.ISSUE_CREATE,
89 perms.ISSUE_DELETE,
90 perms.ISSUE_PUBLISH,
91 perms.ISSUE_RETRACT,
92 perms.ISSUE_SAVE_AGREED_SCORES,
93 perms.ISSUE_SAVE_SCORES,
94 perms.ISSUE_UPDATE,
95 perms.ISSUE_UPDATE_WORKFLOW,
96 perms.ISSUE_VIEW_AGREED_SCORES,
97 perms.ISSUE_VIEW_ANSWERS,
98 perms.ISSUE_VIEW_SCORES,
99 perms.ISSUE_VIEW_WINLOSS,
100}
102ISSUE_STATUS_ACTIONS = {
103 "__new__": {perms.ISSUE_CREATE},
104 "Not Sent": {
105 perms.ISSUE_DELETE,
106 perms.ISSUE_PUBLISH,
107 perms.ISSUE_UPDATE,
108 },
109 "Accepted": {
110 perms.ISSUE_DECLINE,
111 perms.ISSUE_RETRACT,
112 perms.ISSUE_SUBMIT,
113 perms.ISSUE_UPDATE,
114 },
115 "Opportunity": {perms.ISSUE_RETRACT, perms.ISSUE_UPDATE},
116 "Submitted": {
117 perms.ISSUE_SAVE_AGREED_SCORES,
118 perms.ISSUE_SAVE_SCORES,
119 perms.ISSUE_UPDATE,
120 perms.ISSUE_VIEW_AGREED_SCORES,
121 perms.ISSUE_VIEW_ANSWERS,
122 perms.ISSUE_VIEW_SCORES,
123 },
124 "Updateable": {
125 perms.ISSUE_RETRACT,
126 perms.ISSUE_SAVE_AGREED_SCORES,
127 perms.ISSUE_SAVE_SCORES,
128 perms.ISSUE_UPDATE,
129 perms.ISSUE_VIEW_AGREED_SCORES,
130 perms.ISSUE_VIEW_ANSWERS,
131 perms.ISSUE_VIEW_SCORES,
132 },
133 "Declined": {
134 perms.ISSUE_DELETE,
135 },
136 "Retracted": {perms.ISSUE_DELETE},
137}
139QUESTIONNAIRE_ACTIONS = {
140 perms.ISSUE_SAVE_AGREED_SCORES,
141 perms.ISSUE_SAVE_SCORES,
142 perms.ISSUE_VIEW_AGREED_SCORES,
143 perms.ISSUE_VIEW_ANSWERS,
144 perms.ISSUE_VIEW_SCORES,
145 perms.ISSUE_VIEW_AGREED_SCORES,
146 perms.PROJECT_EDIT,
147 perms.PROJECT_EDIT_COSMETIC,
148 perms.PROJECT_EDIT_WEIGHTING,
149 perms.PROJECT_VIEW_QUESTIONNAIRE,
150}