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

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 

61 if not isinstance(value, str): 

62 return False 

63 if key.startswith('_'): 

64 return False 

65 

66 return True 

67 

68 

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

70 

71 

72def title_cased(perm): 

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