Coverage for rfpy/auth/vendor_actions.py: 100%
8 statements
« prev ^ index » next coverage.py v7.8.0, created at 2025-04-29 13:25 +0000
« prev ^ index » next coverage.py v7.8.0, created at 2025-04-29 13:25 +0000
1from rfpy.auth import perms
4ADMIN_ACTIONS = {perms.MANAGE_ORGANISATION, perms.MANAGE_USERS}
6ISSUE_ACTIONS = {
7 perms.ISSUE_ACCEPT,
8 perms.ISSUE_DECLINE,
9 perms.ISSUE_SUBMIT,
10 perms.APPROVE_ANSWERS,
11 perms.ISSUE_VIEW_WINLOSS,
12 perms.ISSUE_VIEW_ANSWERS,
13 perms.ISSUE_UPDATE_WORKFLOW,
14 perms.ISSUE_SAVE_QUESTION_RESPONSE,
15 perms.ISSUE_MANAGE_RESPONDENT_ATTACHMENTS,
16}
18ISSUE_STATUS_ACTIONS = {
19 "Not Sent": {},
20 "Opportunity": {perms.ISSUE_ACCEPT, perms.ISSUE_DECLINE, perms.ISSUE_VIEW_ANSWERS},
21 "Accepted": {
22 perms.ISSUE_DECLINE,
23 perms.ISSUE_SUBMIT,
24 perms.APPROVE_ANSWERS,
25 perms.ISSUE_VIEW_ANSWERS,
26 perms.ISSUE_SAVE_QUESTION_RESPONSE,
27 perms.ISSUE_MANAGE_RESPONDENT_ATTACHMENTS,
28 perms.ISSUE_UPDATE_WORKFLOW,
29 },
30 "Submitted": {perms.ISSUE_VIEW_ANSWERS, perms.ISSUE_VIEW_WINLOSS},
31 "Updateable": {
32 perms.ISSUE_DECLINE,
33 perms.APPROVE_ANSWERS,
34 perms.ISSUE_VIEW_ANSWERS,
35 perms.ISSUE_SAVE_QUESTION_RESPONSE,
36 perms.ISSUE_VIEW_WINLOSS,
37 perms.ISSUE_MANAGE_RESPONDENT_ATTACHMENTS,
38 perms.ISSUE_UPDATE_WORKFLOW,
39 },
40 "Declined": {
41 perms.ISSUE_VIEW_ANSWERS,
42 },
43 "Retracted": {},
44}
46ILLEGAL_AFTER_DEADLINE = {
47 perms.ISSUE_SUBMIT,
48 perms.ISSUE_SAVE_QUESTION_RESPONSE,
49 perms.ISSUE_MANAGE_RESPONDENT_ATTACHMENTS,
50 perms.ISSUE_UPDATE_WORKFLOW,
51 perms.ANSWER_QUESTIONS_ALLOCATED_TO_ANYONE,
52 perms.APPROVE_ANSWERS,
53}
55ANSWERING_ACTIONS = {
56 perms.ISSUE_SAVE_QUESTION_RESPONSE,
57 perms.ANSWER_QUESTIONS_ALLOCATED_TO_ANYONE,
58 perms.APPROVE_ANSWERS,
59}
61for status_actions in ISSUE_STATUS_ACTIONS.values():
62 for action in status_actions:
63 if action not in ISSUE_ACTIONS: # pragma: no cover
64 raise Exception(f"Invalid configuration - {action} not in ISSUE_ACTIONS")