Coverage for rfpy/auth/perms.py: 100%
59 statements
« prev ^ index » next coverage.py v7.0.1, created at 2022-12-31 16:00 +0000
« prev ^ index » next coverage.py v7.0.1, created at 2022-12-31 16:00 +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):
61 if not isinstance(value, str):
62 return False
63 if key.startswith('_'):
64 return False
66 return True
69ALL_PERMISSIONS = {v for k, v in locals().items() if _is_perm(k, v)}
72def title_cased(perm):
73 return re.sub(r'([A-Z])', r' \1', perm).title()