Coverage for rfpy/auth/perms.py: 100%
59 statements
« prev ^ index » next coverage.py v7.8.0, created at 2025-04-24 10:52 +0000
« prev ^ index » next coverage.py v7.8.0, created at 2025-04-24 10:52 +0000
1import re
3ALLOCATE_QUESTIONS = "allocateQuestions"
4ANSWER_QUESTIONS_ALLOCATED_TO_ANYONE = "answerQuestionsAllocatedToAnyone"
5APPROVE_ANSWERS = "approveAnswers"
7ISSUE_ACCEPT = "acceptIssue"
8ISSUE_ADD_ANSWER_COMMENT = "addAnswerComment"
9ISSUE_CREATE = "createIssue"
10ISSUE_DECLINE = "declineIssue"
11ISSUE_DELETE = "deleteIssue"
12ISSUE_MANAGE_ISSUER_ATTACHMENTS = "manageIssuerIssueAttachments"
13ISSUE_MANAGE_RESPONDENT_ATTACHMENTS = "manageRespondentIssueAttachments"
14ISSUE_PUBLISH = "publishIssue"
15ISSUE_RETRACT = "retractIssue"
16ISSUE_SAVE_AGREED_SCORES = "saveAgreedScore"
17ISSUE_SAVE_QUESTION_RESPONSE = "saveQuestionResponse"
18ISSUE_SAVE_SCORES = "saveScore"
19ISSUE_SELF_ISSUE = "addSelfIssue"
20ISSUE_SET_AWARD_STATUS = "setIssueAwardStatus"
21ISSUE_SUBMIT = "submitIssue"
22ISSUE_UPDATE = "updateIssue"
23ISSUE_UPDATE_WORKFLOW = "updateIssueWorkflow"
24ISSUE_VIEW_ANSWERS = "viewAnswers"
25ISSUE_VIEW_AGREED_SCORES = "viewAgreedScore"
26ISSUE_VIEW_SCORES = "viewScore"
27ISSUE_VIEW_WINLOSS = "viewWinloss"
29LIST_AUDIT_EVENTS = "listAuditEvents"
32MANAGE_ORGANISATION = "manageOrganisation"
33MANAGE_PRIVATE_ADDRESS_BOOK = "managePrivateAddressBook"
34MANAGE_ROLES = "manageRoles"
35MANAGE_USERS = "manageUsers"
37PROJECT_ACCESS = "accessProject"
38PROJECT_ADD_NOTE = "addProjectNote"
39PROJECT_ADD_RESPONDENT_NOTE = "addProjectRespondentNote"
40PROJECT_CLOSE = "closeProject"
41PROJECT_CREATE = "createProject"
42PROJECT_CREATE_ON_BEHALF = "createProjectOnBehalf"
43PROJECT_DELETE = "deleteProject"
44PROJECT_EDIT = "editProject"
45PROJECT_EDIT_COSMETIC = "editProjectCosmetic"
46PROJECT_EDIT_WEIGHTING = "questionWeighting"
47PROJECT_EXPORT_COMPLETE = "exportCompleteProject"
48PROJECT_IMPORT_COMPLETE = "importCompleteProject"
49PROJECT_LOCK_QUESTIONNAIRE = "lockQuestionnaire"
50PROJECT_MANAGE_ROLES = "manageProjectRoles"
51PROJECT_PUBLISH = "publishProject"
52PROJECT_REVERT_TO_DRAFT = "revertProjectToDraft"
53PROJECT_SAVE_QUESTIONNAIRE = "saveQuestionnaire"
54PROJECT_VIEW_QUESTIONNAIRE = "viewQuestionnaire"
55PROJECT_VIEW_WEIGHTING = "viewWeighting"
56PROJECT_UNLOCK_ISSUES = "unlockIssues"
59def _is_perm(key, value):
60 if not isinstance(value, str):
61 return False
62 if key.startswith("_"):
63 return False
65 return True
68ALL_PERMISSIONS = {v for k, v in locals().items() if _is_perm(k, v)}
71def title_cased(perm):
72 return re.sub(r"([A-Z])", r" \1", perm).title()