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

1import re 

2 

3ALLOCATE_QUESTIONS = "allocateQuestions" 

4ANSWER_QUESTIONS_ALLOCATED_TO_ANYONE = "answerQuestionsAllocatedToAnyone" 

5APPROVE_ANSWERS = "approveAnswers" 

6 

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" 

28 

29LIST_AUDIT_EVENTS = "listAuditEvents" 

30 

31 

32MANAGE_ORGANISATION = "manageOrganisation" 

33MANAGE_PRIVATE_ADDRESS_BOOK = "managePrivateAddressBook" 

34MANAGE_ROLES = "manageRoles" 

35MANAGE_USERS = "manageUsers" 

36 

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" 

57 

58 

59def _is_perm(key, value): 

60 if not isinstance(value, str): 

61 return False 

62 if key.startswith("_"): 

63 return False 

64 

65 return True 

66 

67 

68ALL_PERMISSIONS = {v for k, v in locals().items() if _is_perm(k, v)} 

69 

70 

71def title_cased(perm): 

72 return re.sub(r"([A-Z])", r" \1", perm).title()