care.security.permissions.base module

class PermissionHandler

Bases: object

class PermissionController

Bases: object

This class defines all permissions used within care. This class is used to abstract all operations related to permissions

override_permission_handlers = []
internal_permission_handlers = [<enum 'FacilityPermissions'>, <enum 'QuestionnairePermissions'>, <enum 'OrganizationPermissions'>, <enum 'FacilityOrganizationPermissions'>, <enum 'EncounterPermissions'>, <enum 'PatientPermissions'>, <enum 'UserPermissions'>, <enum 'FacilityLocationPermissions'>, <enum 'ObservationDefinitionPermissions'>, <enum 'DevicePermissions'>, <enum 'SpecimenDefinitionPermissions'>, <enum 'ActivityDefinitionPermissions'>, <enum 'ServiceRequestPermissions'>, <enum 'HealthcareServicePermissions'>, <enum 'SpecimenPermissions'>, <enum 'DiagnosticReportPermissions'>, <enum 'ChargeItemDefinitionPermissions'>, <enum 'ChargeItemPermissions'>, <enum 'AccountPermissions'>, <enum 'PaymentReconciliationPermissions'>, <enum 'InvoicePermissions'>, <enum 'MedicationPermissions'>, <enum 'ProductKnowledgePermissions'>, <enum 'ProductPermissions'>, <enum 'SupplyDeliveryPermissions'>, <enum 'SupplyRequestPermissions'>, <enum 'InventoryItemPermissions'>, <enum 'TagConfigPermissions'>, <enum 'PatientIdentifierConfigPermissions'>, <enum 'MedicationPermissions'>, <enum 'TokenPermissions'>, <enum 'SchedulePermissions'>, <enum 'ResourceCategoryPermissions'>]
cache = {'can_apply_tag_config': Permission(name='Can Apply Tag Config to Resources', description='', context=<PermissionContext.FACILITY: 'FACILITY'>, roles=[Role(name='Facility Admin', description='Administrator of a facility, associated to the person creating the facility.'), Role(name='Admin', description='Administrator'), Role(name='Staff', description='Staff at some facility'), Role(name='Doctor', description='Doctor at some facility'), Role(name='Nurse', description='Nurse at some facility'), Role(name='Pharmacist', description='Pharmacist at some facility')]), 'can_archive_questionnaire': Permission(name='Can Archive Questionnaires', description='', context=<PermissionContext.QUESTIONNAIRE: 'QUESTIONNAIRE'>, roles=[Role(name='Admin', description='Administrator'), Role(name='Facility Admin', description='Administrator of a facility, associated to the person creating the facility.')]), 'can_create_account': Permission(name='Can Create Account', description='', context=<PermissionContext.FACILITY: 'FACILITY'>, roles=[Role(name='Facility Admin', description='Administrator of a facility, associated to the person creating the facility.'), Role(name='Admin', description='Administrator')]), 'can_create_charge_item': Permission(name='Can Create Charge Item', description='', context=<PermissionContext.FACILITY: 'FACILITY'>, roles=[Role(name='Facility Admin', description='Administrator of a facility, associated to the person creating the facility.'), Role(name='Admin', description='Administrator'), Role(name='Staff', description='Staff at some facility'), Role(name='Doctor', description='Doctor at some facility'), Role(name='Nurse', description='Nurse at some facility'), Role(name='Pharmacist', description='Pharmacist at some facility')]), 'can_create_encounter': Permission(name='Can write encounter', description='', context=<PermissionContext.ENCOUNTER: 'ENCOUNTER'>, roles=[Role(name='Admin', description='Administrator'), Role(name='Doctor', description='Doctor at some facility'), Role(name='Nurse', description='Nurse at some facility'), Role(name='Staff', description='Staff at some facility'), Role(name='Facility Admin', description='Administrator of a facility, associated to the person creating the facility.')]), 'can_create_facility': Permission(name='Can Create on Facility', description='Something Here', context=<PermissionContext.FACILITY: 'FACILITY'>, roles=[Role(name='Administrator', description='Administrator at a given boundary'), Role(name='Admin', description='Administrator'), Role(name='Facility Admin', description='Administrator of a facility, associated to the person creating the facility.')]), 'can_create_facility_location_organizations': Permission(name='Can Create/Update Facility Location Organizations', description='', context=<PermissionContext.FACILITY: 'FACILITY'>, roles=[Role(name='Facility Admin', description='Administrator of a facility, associated to the person creating the facility.'), Role(name='Admin', description='Administrator'), Role(name='Staff', description='Staff at some facility')]), 'can_create_facility_organization': Permission(name='Can Create Facility Organizations', description='', context=<PermissionContext.FACILITY_ORGANIZATION: 'FACILITY_ORGANIZATION'>, roles=[Role(name='Facility Admin', description='Administrator of a facility, associated to the person creating the facility.')]), 'can_create_facility_organization_root': Permission(name='Can Create Facility Organizations Root', description='', context=<PermissionContext.FACILITY_ORGANIZATION: 'FACILITY_ORGANIZATION'>, roles=[Role(name='Facility Admin', description='Administrator of a facility, associated to the person creating the facility.')]), 'can_create_organization': Permission(name='Can Create Organizations', description='', context=<PermissionContext.ORGANIZATION: 'ORGANIZATION'>, roles=[Role(name='Admin', description='Administrator')]), 'can_create_patient': Permission(name='Can Create Patient', description='', context=<PermissionContext.PATIENT: 'PATIENT'>, roles=[Role(name='Staff', description='Staff at some facility'), Role(name='Doctor', description='Doctor at some facility'), Role(name='Nurse', description='Nurse at some facility'), Role(name='Administrator', description='Administrator at a given boundary'), Role(name='Admin', description='Administrator'), Role(name='Facility Admin', description='Administrator of a facility, associated to the person creating the facility.')]), 'can_create_user': Permission(name='Can create User in care', description='', context=<PermissionContext.FACILITY: 'FACILITY'>, roles=[Role(name='Admin', description='Administrator'), Role(name='Facility Admin', description='Administrator of a facility, associated to the person creating the facility.'), Role(name='Administrator', description='Administrator at a given boundary')]), 'can_delete_facility_organization': Permission(name='Can Delete Facility Organizations', description='', context=<PermissionContext.FACILITY_ORGANIZATION: 'FACILITY_ORGANIZATION'>, roles=[Role(name='Facility Admin', description='Administrator of a facility, associated to the person creating the facility.')]), 'can_delete_organization': Permission(name='Can Delete Organizations', description='', context=<PermissionContext.ORGANIZATION: 'ORGANIZATION'>, roles=[Role(name='Admin', description='Administrator')]), 'can_destroy_invoice': Permission(name='Can Destroy Invoice', description='', context=<PermissionContext.FACILITY: 'FACILITY'>, roles=[Role(name='Facility Admin', description='Administrator of a facility, associated to the person creating the facility.'), Role(name='Admin', description='Administrator')]), 'can_destroy_payment_reconciliation': Permission(name='Can Destroy Payment Reconciliation', description='', context=<PermissionContext.FACILITY: 'FACILITY'>, roles=[Role(name='Facility Admin', description='Administrator of a facility, associated to the person creating the facility.'), Role(name='Admin', description='Administrator')]), 'can_list_booking': Permission(name='Can list bookings on Object', description='', context=<PermissionContext.FACILITY: 'FACILITY'>, roles=[Role(name='Admin', description='Administrator'), Role(name='Staff', description='Staff at some facility'), Role(name='Facility Admin', description='Administrator of a facility, associated to the person creating the facility.'), Role(name='Doctor', description='Doctor at some facility'), Role(name='Nurse', description='Nurse at some facility'), Role(name='Administrator', description='Administrator at a given boundary')]), 'can_list_devices': Permission(name='Can List Devices on Facility', description='', context=<PermissionContext.FACILITY: 'FACILITY'>, roles=[Role(name='Staff', description='Staff at some facility'), Role(name='Admin', description='Administrator'), Role(name='Doctor', description='Doctor at some facility'), Role(name='Nurse', description='Nurse at some facility'), Role(name='Facility Admin', description='Administrator of a facility, associated to the person creating the facility.'), Role(name='Pharmacist', description='Pharmacist at some facility')]), 'can_list_encounter': Permission(name='Can list encounters', description='Clinical data is not associated with this permission', context=<PermissionContext.ENCOUNTER: 'ENCOUNTER'>, roles=[Role(name='Admin', description='Administrator'), Role(name='Doctor', description='Doctor at some facility'), Role(name='Nurse', description='Nurse at some facility'), Role(name='Staff', description='Staff at some facility'), Role(name='Facility Admin', description='Administrator of a facility, associated to the person creating the facility.')]), 'can_list_facility_location_organizations': Permission(name='Can List Facility Location Organizations', description='', context=<PermissionContext.FACILITY: 'FACILITY'>, roles=[Role(name='Facility Admin', description='Administrator of a facility, associated to the person creating the facility.'), Role(name='Admin', description='Administrator'), Role(name='Staff', description='Staff at some facility')]), 'can_list_facility_locations': Permission(name='Can List Facility Locations', description='', context=<PermissionContext.FACILITY: 'FACILITY'>, roles=[Role(name='Admin', description='Administrator'), Role(name='Doctor', description='Doctor at some facility'), Role(name='Facility Admin', description='Administrator of a facility, associated to the person creating the facility.'), Role(name='Administrator', description='Administrator at a given boundary'), Role(name='Nurse', description='Nurse at some facility'), Role(name='Staff', description='Staff at some facility'), Role(name='Pharmacist', description='Pharmacist at some facility')]), 'can_list_facility_organization_users': Permission(name='Can List Users in a Facility Organizations', description='', context=<PermissionContext.FACILITY_ORGANIZATION: 'FACILITY_ORGANIZATION'>, roles=[Role(name='Facility Admin', description='Administrator of a facility, associated to the person creating the facility.'), Role(name='Admin', description='Administrator'), Role(name='Staff', description='Staff at some facility'), Role(name='Doctor', description='Doctor at some facility'), Role(name='Administrator', description='Administrator at a given boundary'), Role(name='Nurse', description='Nurse at some facility')]), 'can_list_organization_users': Permission(name='Can List Users in an Organizations', description='', context=<PermissionContext.ORGANIZATION: 'ORGANIZATION'>, roles=[Role(name='Facility Admin', description='Administrator of a facility, associated to the person creating the facility.'), Role(name='Admin', description='Administrator'), Role(name='Staff', description='Staff at some facility'), Role(name='Doctor', description='Doctor at some facility'), Role(name='Administrator', description='Administrator at a given boundary'), Role(name='Nurse', description='Nurse at some facility'), Role(name='Volunteer', description='Volunteer at some facility'), Role(name='Pharmacist', description='Pharmacist at some facility')]), 'can_list_patients': Permission(name='Can list patients', description='', context=<PermissionContext.PATIENT: 'PATIENT'>, roles=[Role(name='Staff', description='Staff at some facility'), Role(name='Doctor', description='Doctor at some facility'), Role(name='Nurse', description='Nurse at some facility'), Role(name='Administrator', description='Administrator at a given boundary'), Role(name='Admin', description='Administrator'), Role(name='Facility Admin', description='Administrator of a facility, associated to the person creating the facility.'), Role(name='Volunteer', description='Volunteer at some facility'), Role(name='Pharmacist', description='Pharmacist at some facility')]), 'can_list_schedule': Permission(name='Can list schedule on Object', description='', context=<PermissionContext.FACILITY: 'FACILITY'>, roles=[Role(name='Admin', description='Administrator'), Role(name='Staff', description='Staff at some facility'), Role(name='Facility Admin', description='Administrator of a facility, associated to the person creating the facility.'), Role(name='Doctor', description='Doctor at some facility'), Role(name='Nurse', description='Nurse at some facility'), Role(name='Administrator', description='Administrator at a given boundary')]), 'can_list_token': Permission(name='Can list token on Object', description='', context=<PermissionContext.FACILITY: 'FACILITY'>, roles=[Role(name='Admin', description='Administrator'), Role(name='Staff', description='Staff at some facility'), Role(name='Facility Admin', description='Administrator of a facility, associated to the person creating the facility.'), Role(name='Doctor', description='Doctor at some facility'), Role(name='Nurse', description='Nurse at some facility'), Role(name='Administrator', description='Administrator at a given boundary')]), 'can_list_token_category': Permission(name='Can list token category on Facility', description='', context=<PermissionContext.FACILITY: 'FACILITY'>, roles=[Role(name='Admin', description='Administrator'), Role(name='Staff', description='Staff at some facility'), Role(name='Facility Admin', description='Administrator of a facility, associated to the person creating the facility.'), Role(name='Doctor', description='Doctor at some facility'), Role(name='Nurse', description='Nurse at some facility'), Role(name='Administrator', description='Administrator at a given boundary')]), 'can_list_user': Permission(name='Can list Users in Care', description='', context=<PermissionContext.FACILITY: 'FACILITY'>, roles=[Role(name='Admin', description='Administrator'), Role(name='Doctor', description='Doctor at some facility'), Role(name='Nurse', description='Nurse at some facility'), Role(name='Administrator', description='Administrator at a given boundary'), Role(name='Staff', description='Staff at some facility'), Role(name='Facility Admin', description='Administrator of a facility, associated to the person creating the facility.'), Role(name='Volunteer', description='Volunteer at some facility'), Role(name='Pharmacist', description='Pharmacist at some facility')]), 'can_manage_device_associations_to_encounters': Permission(name='Can Manage Device Associations to Encounters', description='', context=<PermissionContext.FACILITY: 'FACILITY'>, roles=[Role(name='Staff', description='Staff at some facility'), Role(name='Admin', description='Administrator'), Role(name='Doctor', description='Doctor at some facility'), Role(name='Nurse', description='Nurse at some facility'), Role(name='Facility Admin', description='Administrator of a facility, associated to the person creating the facility.')]), 'can_manage_devices': Permission(name='Can Manage Devices on Facility', description='', context=<PermissionContext.FACILITY: 'FACILITY'>, roles=[Role(name='Staff', description='Staff at some facility'), Role(name='Admin', description='Administrator'), Role(name='Facility Admin', description='Administrator of a facility, associated to the person creating the facility.'), Role(name='Pharmacist', description='Pharmacist at some facility')]), 'can_manage_facility_organization': Permission(name='Can Manage Facility Organizations', description='This includes changing names, descriptions, metadata, etc..', context=<PermissionContext.FACILITY_ORGANIZATION: 'FACILITY_ORGANIZATION'>, roles=[Role(name='Facility Admin', description='Administrator of a facility, associated to the person creating the facility.'), Role(name='Administrator', description='Administrator at a given boundary')]), 'can_manage_facility_organization_users': Permission(name='Can Manage Users in an Organizations', description='', context=<PermissionContext.FACILITY_ORGANIZATION: 'FACILITY_ORGANIZATION'>, roles=[Role(name='Facility Admin', description='Administrator of a facility, associated to the person creating the facility.'), Role(name='Administrator', description='Administrator at a given boundary')]), 'can_manage_organization': Permission(name='Can Manage Organizations', description='This includes changing names, descriptions, metadata, etc..', context=<PermissionContext.ORGANIZATION: 'ORGANIZATION'>, roles=[Role(name='Admin', description='Administrator')]), 'can_manage_organization_users': Permission(name='Can Manage Users in an Organizations', description='', context=<PermissionContext.ORGANIZATION: 'ORGANIZATION'>, roles=[Role(name='Admin', description='Administrator'), Role(name='Administrator', description='Administrator at a given boundary'), Role(name='Facility Admin', description='Administrator of a facility, associated to the person creating the facility.')]), 'can_manage_questionnaire': Permission(name='Can Manage Questionnaires', description='Allows users to add or remove organizations from questionnaires, ie control Access Management', context=<PermissionContext.QUESTIONNAIRE: 'QUESTIONNAIRE'>, roles=[Role(name='Admin', description='Administrator'), Role(name='Facility Admin', description='Administrator of a facility, associated to the person creating the facility.')]), 'can_read_account': Permission(name='Can Read Charge Item', description='', context=<PermissionContext.FACILITY: 'FACILITY'>, roles=[Role(name='Facility Admin', description='Administrator of a facility, associated to the person creating the facility.'), Role(name='Administrator', description='Administrator at a given boundary'), Role(name='Admin', description='Administrator'), Role(name='Staff', description='Staff at some facility'), Role(name='Doctor', description='Doctor at some facility'), Role(name='Nurse', description='Nurse at some facility'), Role(name='Volunteer', description='Volunteer at some facility'), Role(name='Pharmacist', description='Pharmacist at some facility')]), 'can_read_activity_definition': Permission(name='Can Read Activity Definition', description='', context=<PermissionContext.FACILITY: 'FACILITY'>, roles=[Role(name='Facility Admin', description='Administrator of a facility, associated to the person creating the facility.'), Role(name='Administrator', description='Administrator at a given boundary'), Role(name='Admin', description='Administrator'), Role(name='Staff', description='Staff at some facility'), Role(name='Doctor', description='Doctor at some facility'), Role(name='Nurse', description='Nurse at some facility'), Role(name='Volunteer', description='Volunteer at some facility')]), 'can_read_charge_item': Permission(name='Can Read Charge Item', description='', context=<PermissionContext.FACILITY: 'FACILITY'>, roles=[Role(name='Facility Admin', description='Administrator of a facility, associated to the person creating the facility.'), Role(name='Administrator', description='Administrator at a given boundary'), Role(name='Admin', description='Administrator'), Role(name='Staff', description='Staff at some facility'), Role(name='Doctor', description='Doctor at some facility'), Role(name='Nurse', description='Nurse at some facility'), Role(name='Volunteer', description='Volunteer at some facility'), Role(name='Pharmacist', description='Pharmacist at some facility')]), 'can_read_charge_item_definition': Permission(name='Can Read Charge Item Definition', description='', context=<PermissionContext.FACILITY: 'FACILITY'>, roles=[Role(name='Facility Admin', description='Administrator of a facility, associated to the person creating the facility.'), Role(name='Administrator', description='Administrator at a given boundary'), Role(name='Admin', description='Administrator'), Role(name='Staff', description='Staff at some facility'), Role(name='Doctor', description='Doctor at some facility'), Role(name='Nurse', description='Nurse at some facility'), Role(name='Volunteer', description='Volunteer at some facility'), Role(name='Pharmacist', description='Pharmacist at some facility')]), 'can_read_diagnostic_report': Permission(name='Can Read Diagnostic Report', description='', context=<PermissionContext.FACILITY: 'FACILITY'>, roles=[Role(name='Facility Admin', description='Administrator of a facility, associated to the person creating the facility.'), Role(name='Administrator', description='Administrator at a given boundary'), Role(name='Admin', description='Administrator'), Role(name='Staff', description='Staff at some facility'), Role(name='Doctor', description='Doctor at some facility'), Role(name='Nurse', description='Nurse at some facility'), Role(name='Volunteer', description='Volunteer at some facility')]), 'can_read_encounter': Permission(name='Can Read encounter and related data', description='', context=<PermissionContext.ENCOUNTER: 'ENCOUNTER'>, roles=[Role(name='Admin', description='Administrator'), Role(name='Doctor', description='Doctor at some facility'), Role(name='Nurse', description='Nurse at some facility'), Role(name='Staff', description='Staff at some facility'), Role(name='Facility Admin', description='Administrator of a facility, associated to the person creating the facility.')]), 'can_read_facility': Permission(name='Can Read on Facility', description='Something Here', context=<PermissionContext.FACILITY: 'FACILITY'>, roles=[Role(name='Facility Admin', description='Administrator of a facility, associated to the person creating the facility.'), Role(name='Administrator', description='Administrator at a given boundary'), Role(name='Admin', description='Administrator'), Role(name='Staff', description='Staff at some facility'), Role(name='Doctor', description='Doctor at some facility'), Role(name='Nurse', description='Nurse at some facility'), Role(name='Volunteer', description='Volunteer at some facility')]), 'can_read_healthcare_service': Permission(name='Can Read Healthcare Service', description='', context=<PermissionContext.FACILITY: 'FACILITY'>, roles=[Role(name='Facility Admin', description='Administrator of a facility, associated to the person creating the facility.'), Role(name='Administrator', description='Administrator at a given boundary'), Role(name='Admin', description='Administrator'), Role(name='Staff', description='Staff at some facility'), Role(name='Doctor', description='Doctor at some facility'), Role(name='Nurse', description='Nurse at some facility'), Role(name='Volunteer', description='Volunteer at some facility'), Role(name='Pharmacist', description='Pharmacist at some facility')]), 'can_read_inventory_item': Permission(name='Can Read Inventory Item', description='', context=<PermissionContext.FACILITY: 'FACILITY'>, roles=[Role(name='Facility Admin', description='Administrator of a facility, associated to the person creating the facility.'), Role(name='Administrator', description='Administrator at a given boundary'), Role(name='Admin', description='Administrator'), Role(name='Staff', description='Staff at some facility'), Role(name='Doctor', description='Doctor at some facility'), Role(name='Nurse', description='Nurse at some facility'), Role(name='Volunteer', description='Volunteer at some facility'), Role(name='Pharmacist', description='Pharmacist at some facility')]), 'can_read_invoice': Permission(name='Can Read Invoice', description='', context=<PermissionContext.FACILITY: 'FACILITY'>, roles=[Role(name='Facility Admin', description='Administrator of a facility, associated to the person creating the facility.'), Role(name='Administrator', description='Administrator at a given boundary'), Role(name='Admin', description='Administrator'), Role(name='Staff', description='Staff at some facility'), Role(name='Doctor', description='Doctor at some facility'), Role(name='Nurse', description='Nurse at some facility'), Role(name='Volunteer', description='Volunteer at some facility'), Role(name='Pharmacist', description='Pharmacist at some facility')]), 'can_read_observation_definition': Permission(name='Can Read Observation Definition', description='', context=<PermissionContext.FACILITY: 'FACILITY'>, roles=[Role(name='Facility Admin', description='Administrator of a facility, associated to the person creating the facility.'), Role(name='Administrator', description='Administrator at a given boundary'), Role(name='Admin', description='Administrator'), Role(name='Staff', description='Staff at some facility'), Role(name='Doctor', description='Doctor at some facility'), Role(name='Nurse', description='Nurse at some facility'), Role(name='Volunteer', description='Volunteer at some facility'), Role(name='Pharmacist', description='Pharmacist at some facility')]), 'can_read_patient_identifier_config': Permission(name='Can Read Patient Identifier Config', description='', context=<PermissionContext.FACILITY: 'FACILITY'>, roles=[Role(name='Facility Admin', description='Administrator of a facility, associated to the person creating the facility.'), Role(name='Administrator', description='Administrator at a given boundary'), Role(name='Admin', description='Administrator'), Role(name='Staff', description='Staff at some facility'), Role(name='Doctor', description='Doctor at some facility'), Role(name='Nurse', description='Nurse at some facility'), Role(name='Volunteer', description='Volunteer at some facility'), Role(name='Pharmacist', description='Pharmacist at some facility')]), 'can_read_payment_reconciliation': Permission(name='Can Read Payment Reconciliation', description='', context=<PermissionContext.FACILITY: 'FACILITY'>, roles=[Role(name='Facility Admin', description='Administrator of a facility, associated to the person creating the facility.'), Role(name='Administrator', description='Administrator at a given boundary'), Role(name='Admin', description='Administrator'), Role(name='Staff', description='Staff at some facility'), Role(name='Doctor', description='Doctor at some facility'), Role(name='Nurse', description='Nurse at some facility'), Role(name='Volunteer', description='Volunteer at some facility'), Role(name='Pharmacist', description='Pharmacist at some facility')]), 'can_read_product': Permission(name='Can Read Product', description='', context=<PermissionContext.FACILITY: 'FACILITY'>, roles=[Role(name='Facility Admin', description='Administrator of a facility, associated to the person creating the facility.'), Role(name='Administrator', description='Administrator at a given boundary'), Role(name='Admin', description='Administrator'), Role(name='Staff', description='Staff at some facility'), Role(name='Doctor', description='Doctor at some facility'), Role(name='Nurse', description='Nurse at some facility'), Role(name='Volunteer', description='Volunteer at some facility'), Role(name='Pharmacist', description='Pharmacist at some facility')]), 'can_read_product_knowledge': Permission(name='Can Read Product Knowledge', description='', context=<PermissionContext.FACILITY: 'FACILITY'>, roles=[Role(name='Facility Admin', description='Administrator of a facility, associated to the person creating the facility.'), Role(name='Administrator', description='Administrator at a given boundary'), Role(name='Admin', description='Administrator'), Role(name='Staff', description='Staff at some facility'), Role(name='Doctor', description='Doctor at some facility'), Role(name='Nurse', description='Nurse at some facility'), Role(name='Volunteer', description='Volunteer at some facility'), Role(name='Pharmacist', description='Pharmacist at some facility')]), 'can_read_questionnaire': Permission(name='Can Read Questionnaires', description='', context=<PermissionContext.QUESTIONNAIRE: 'QUESTIONNAIRE'>, roles=[Role(name='Admin', description='Administrator'), Role(name='Doctor', description='Doctor at some facility'), Role(name='Nurse', description='Nurse at some facility'), Role(name='Administrator', description='Administrator at a given boundary'), Role(name='Staff', description='Staff at some facility'), Role(name='Facility Admin', description='Administrator of a facility, associated to the person creating the facility.'), Role(name='Volunteer', description='Volunteer at some facility'), Role(name='Pharmacist', description='Pharmacist at some facility')]), 'can_read_resource_category': Permission(name='Can Read Resource Category', description='', context=<PermissionContext.FACILITY: 'FACILITY'>, roles=[Role(name='Facility Admin', description='Administrator of a facility, associated to the person creating the facility.'), Role(name='Administrator', description='Administrator at a given boundary'), Role(name='Admin', description='Administrator'), Role(name='Staff', description='Staff at some facility'), Role(name='Doctor', description='Doctor at some facility'), Role(name='Nurse', description='Nurse at some facility'), Role(name='Volunteer', description='Volunteer at some facility'), Role(name='Pharmacist', description='Pharmacist at some facility')]), 'can_read_service_request': Permission(name='Can Read Service Request', description='', context=<PermissionContext.FACILITY: 'FACILITY'>, roles=[Role(name='Facility Admin', description='Administrator of a facility, associated to the person creating the facility.'), Role(name='Administrator', description='Administrator at a given boundary'), Role(name='Admin', description='Administrator'), Role(name='Staff', description='Staff at some facility'), Role(name='Doctor', description='Doctor at some facility'), Role(name='Nurse', description='Nurse at some facility'), Role(name='Volunteer', description='Volunteer at some facility'), Role(name='Pharmacist', description='Pharmacist at some facility')]), 'can_read_specimen': Permission(name='Can Read Specimen', description='', context=<PermissionContext.FACILITY: 'FACILITY'>, roles=[Role(name='Facility Admin', description='Administrator of a facility, associated to the person creating the facility.'), Role(name='Administrator', description='Administrator at a given boundary'), Role(name='Admin', description='Administrator'), Role(name='Staff', description='Staff at some facility'), Role(name='Doctor', description='Doctor at some facility'), Role(name='Nurse', description='Nurse at some facility'), Role(name='Pharmacist', description='Pharmacist at some facility')]), 'can_read_specimen_definition': Permission(name='Can Read Specimen Definition', description='', context=<PermissionContext.FACILITY: 'FACILITY'>, roles=[Role(name='Facility Admin', description='Administrator of a facility, associated to the person creating the facility.'), Role(name='Administrator', description='Administrator at a given boundary'), Role(name='Admin', description='Administrator'), Role(name='Staff', description='Staff at some facility'), Role(name='Doctor', description='Doctor at some facility'), Role(name='Nurse', description='Nurse at some facility'), Role(name='Volunteer', description='Volunteer at some facility'), Role(name='Pharmacist', description='Pharmacist at some facility')]), 'can_read_supply_delivery': Permission(name='Can Read Supply Delivery', description='', context=<PermissionContext.FACILITY: 'FACILITY'>, roles=[Role(name='Facility Admin', description='Administrator of a facility, associated to the person creating the facility.'), Role(name='Administrator', description='Administrator at a given boundary'), Role(name='Admin', description='Administrator'), Role(name='Staff', description='Staff at some facility'), Role(name='Doctor', description='Doctor at some facility'), Role(name='Nurse', description='Nurse at some facility'), Role(name='Volunteer', description='Volunteer at some facility'), Role(name='Pharmacist', description='Pharmacist at some facility')]), 'can_read_supply_request': Permission(name='Can Read Supply Request', description='', context=<PermissionContext.FACILITY: 'FACILITY'>, roles=[Role(name='Facility Admin', description='Administrator of a facility, associated to the person creating the facility.'), Role(name='Administrator', description='Administrator at a given boundary'), Role(name='Admin', description='Administrator'), Role(name='Staff', description='Staff at some facility'), Role(name='Doctor', description='Doctor at some facility'), Role(name='Nurse', description='Nurse at some facility'), Role(name='Volunteer', description='Volunteer at some facility'), Role(name='Pharmacist', description='Pharmacist at some facility')]), 'can_read_tag_config': Permission(name='Can Read Tag Config', description='', context=<PermissionContext.FACILITY: 'FACILITY'>, roles=[Role(name='Facility Admin', description='Administrator of a facility, associated to the person creating the facility.'), Role(name='Administrator', description='Administrator at a given boundary'), Role(name='Admin', description='Administrator'), Role(name='Staff', description='Staff at some facility'), Role(name='Doctor', description='Doctor at some facility'), Role(name='Nurse', description='Nurse at some facility'), Role(name='Volunteer', description='Volunteer at some facility'), Role(name='Pharmacist', description='Pharmacist at some facility')]), 'can_reschedule_booking': Permission(name='Can reschedule bookings on Object', description='', context=<PermissionContext.FACILITY: 'FACILITY'>, roles=[Role(name='Doctor', description='Doctor at some facility'), Role(name='Staff', description='Staff at some facility'), Role(name='Nurse', description='Nurse at some facility'), Role(name='Administrator', description='Administrator at a given boundary'), Role(name='Facility Admin', description='Administrator of a facility, associated to the person creating the facility.'), Role(name='Admin', description='Administrator')]), 'can_set_charge_item_definition': Permission(name='Can Set Charge Item Definition on Facility', description='', context=<PermissionContext.FACILITY: 'FACILITY'>, roles=[Role(name='Facility Admin', description='Administrator of a facility, associated to the person creating the facility.'), Role(name='Admin', description='Administrator')]), 'can_submit_encounter_questionnaire': Permission(name='Can submit questionnaire about patient encounters', description='', context=<PermissionContext.PATIENT: 'PATIENT'>, roles=[Role(name='Staff', description='Staff at some facility'), Role(name='Doctor', description='Doctor at some facility'), Role(name='Nurse', description='Nurse at some facility'), Role(name='Admin', description='Administrator'), Role(name='Facility Admin', description='Administrator of a facility, associated to the person creating the facility.')]), 'can_submit_patient_questionnaire': Permission(name='Can submit questionnaire about patients', description='', context=<PermissionContext.PATIENT: 'PATIENT'>, roles=[Role(name='Volunteer', description='Volunteer at some facility'), Role(name='Staff', description='Staff at some facility'), Role(name='Doctor', description='Doctor at some facility'), Role(name='Nurse', description='Nurse at some facility'), Role(name='Admin', description='Administrator'), Role(name='Facility Admin', description='Administrator of a facility, associated to the person creating the facility.'), Role(name='Administrator', description='Administrator at a given boundary')]), 'can_submit_questionnaire': Permission(name='Can Submit Questionnaires', description='', context=<PermissionContext.QUESTIONNAIRE: 'QUESTIONNAIRE'>, roles=[Role(name='Admin', description='Administrator'), Role(name='Doctor', description='Doctor at some facility'), Role(name='Nurse', description='Nurse at some facility'), Role(name='Administrator', description='Administrator at a given boundary'), Role(name='Staff', description='Staff at some facility'), Role(name='Facility Admin', description='Administrator of a facility, associated to the person creating the facility.'), Role(name='Volunteer', description='Volunteer at some facility')]), 'can_update_account': Permission(name='Can Update Account', description='', context=<PermissionContext.FACILITY: 'FACILITY'>, roles=[Role(name='Facility Admin', description='Administrator of a facility, associated to the person creating the facility.'), Role(name='Admin', description='Administrator')]), 'can_update_charge_item': Permission(name='Can Update Charge Item', description='', context=<PermissionContext.FACILITY: 'FACILITY'>, roles=[Role(name='Facility Admin', description='Administrator of a facility, associated to the person creating the facility.'), Role(name='Admin', description='Administrator')]), 'can_update_facility': Permission(name='Can Update on Facility', description='Something Here', context=<PermissionContext.FACILITY: 'FACILITY'>, roles=[Role(name='Facility Admin', description='Administrator of a facility, associated to the person creating the facility.'), Role(name='Administrator', description='Administrator at a given boundary'), Role(name='Admin', description='Administrator'), Role(name='Staff', description='Staff at some facility')]), 'can_view_clinical_data': Permission(name='Can view clinical data about patients', description='', context=<PermissionContext.PATIENT: 'PATIENT'>, roles=[Role(name='Staff', description='Staff at some facility'), Role(name='Doctor', description='Doctor at some facility'), Role(name='Nurse', description='Nurse at some facility'), Role(name='Admin', description='Administrator'), Role(name='Facility Admin', description='Administrator of a facility, associated to the person creating the facility.')]), 'can_view_facility_organization': Permission(name='Can View Facility Organizations', description='', context=<PermissionContext.FACILITY_ORGANIZATION: 'FACILITY_ORGANIZATION'>, roles=[Role(name='Facility Admin', description='Administrator of a facility, associated to the person creating the facility.'), Role(name='Admin', description='Administrator'), Role(name='Staff', description='Staff at some facility'), Role(name='Doctor', description='Doctor at some facility'), Role(name='Administrator', description='Administrator at a given boundary'), Role(name='Nurse', description='Nurse at some facility'), Role(name='Volunteer', description='Volunteer at some facility')]), 'can_view_organization': Permission(name='Can View Organizations', description='', context=<PermissionContext.ORGANIZATION: 'ORGANIZATION'>, roles=[Role(name='Facility Admin', description='Administrator of a facility, associated to the person creating the facility.'), Role(name='Admin', description='Administrator'), Role(name='Staff', description='Staff at some facility'), Role(name='Doctor', description='Doctor at some facility'), Role(name='Administrator', description='Administrator at a given boundary'), Role(name='Nurse', description='Nurse at some facility'), Role(name='Volunteer', description='Volunteer at some facility'), Role(name='Pharmacist', description='Pharmacist at some facility')]), 'can_view_questionnaire_responses': Permission(name='Can view questionnaire responses on patient', description='', context=<PermissionContext.PATIENT: 'PATIENT'>, roles=[Role(name='Volunteer', description='Volunteer at some facility'), Role(name='Staff', description='Staff at some facility'), Role(name='Doctor', description='Doctor at some facility'), Role(name='Nurse', description='Nurse at some facility'), Role(name='Admin', description='Administrator'), Role(name='Facility Admin', description='Administrator of a facility, associated to the person creating the facility.'), Role(name='Administrator', description='Administrator at a given boundary'), Role(name='Pharmacist', description='Pharmacist at some facility')]), 'can_write_activity_definition': Permission(name='Can Create Activity Definition on Facility', description='', context=<PermissionContext.FACILITY: 'FACILITY'>, roles=[Role(name='Facility Admin', description='Administrator of a facility, associated to the person creating the facility.'), Role(name='Admin', description='Administrator')]), 'can_write_booking': Permission(name='Can update bookings on Object', description='', context=<PermissionContext.FACILITY: 'FACILITY'>, roles=[Role(name='Admin', description='Administrator'), Role(name='Staff', description='Staff at some facility'), Role(name='Facility Admin', description='Administrator of a facility, associated to the person creating the facility.'), Role(name='Doctor', description='Doctor at some facility'), Role(name='Nurse', description='Nurse at some facility')]), 'can_write_charge_item_definition': Permission(name='Can Create Charge Item Definition on Facility', description='', context=<PermissionContext.FACILITY: 'FACILITY'>, roles=[Role(name='Facility Admin', description='Administrator of a facility, associated to the person creating the facility.'), Role(name='Admin', description='Administrator')]), 'can_write_diagnostic_report': Permission(name='Can Create Diagnostic Report on Facility', description='', context=<PermissionContext.FACILITY: 'FACILITY'>, roles=[Role(name='Facility Admin', description='Administrator of a facility, associated to the person creating the facility.'), Role(name='Admin', description='Administrator'), Role(name='Doctor', description='Doctor at some facility'), Role(name='Nurse', description='Nurse at some facility')]), 'can_write_encounter': Permission(name='Update Encounter and Create all associated datapoints', description='', context=<PermissionContext.ENCOUNTER: 'ENCOUNTER'>, roles=[Role(name='Admin', description='Administrator'), Role(name='Doctor', description='Doctor at some facility'), Role(name='Nurse', description='Nurse at some facility'), Role(name='Staff', description='Staff at some facility'), Role(name='Facility Admin', description='Administrator of a facility, associated to the person creating the facility.')]), 'can_write_facility_locations': Permission(name='Can Create/Update Facility Locations', description='', context=<PermissionContext.FACILITY: 'FACILITY'>, roles=[Role(name='Facility Admin', description='Administrator of a facility, associated to the person creating the facility.'), Role(name='Admin', description='Administrator'), Role(name='Staff', description='Staff at some facility')]), 'can_write_healthcare_service': Permission(name='Can Create Healthcare Service on Facility', description='', context=<PermissionContext.FACILITY: 'FACILITY'>, roles=[Role(name='Facility Admin', description='Administrator of a facility, associated to the person creating the facility.'), Role(name='Admin', description='Administrator')]), 'can_write_invoice': Permission(name='Can Write Invoice', description='', context=<PermissionContext.FACILITY: 'FACILITY'>, roles=[Role(name='Facility Admin', description='Administrator of a facility, associated to the person creating the facility.'), Role(name='Admin', description='Administrator'), Role(name='Staff', description='Staff at some facility'), Role(name='Doctor', description='Doctor at some facility'), Role(name='Nurse', description='Nurse at some facility'), Role(name='Pharmacist', description='Pharmacist at some facility')]), 'can_write_observation_definition': Permission(name='Can Create Observation Definition on Facility', description='', context=<PermissionContext.FACILITY: 'FACILITY'>, roles=[Role(name='Facility Admin', description='Administrator of a facility, associated to the person creating the facility.'), Role(name='Admin', description='Administrator')]), 'can_write_patient': Permission(name="Can Update a Patient's data", description='', context=<PermissionContext.PATIENT: 'PATIENT'>, roles=[Role(name='Staff', description='Staff at some facility'), Role(name='Doctor', description='Doctor at some facility'), Role(name='Nurse', description='Nurse at some facility'), Role(name='Administrator', description='Administrator at a given boundary'), Role(name='Admin', description='Administrator'), Role(name='Facility Admin', description='Administrator of a facility, associated to the person creating the facility.')]), 'can_write_patient_identifier_config': Permission(name='Can Create Patient Identifier Config on Facility', description='', context=<PermissionContext.FACILITY: 'FACILITY'>, roles=[Role(name='Facility Admin', description='Administrator of a facility, associated to the person creating the facility.'), Role(name='Admin', description='Administrator')]), 'can_write_payment_reconciliation': Permission(name='Can Write Payment Reconciliation', description='', context=<PermissionContext.FACILITY: 'FACILITY'>, roles=[Role(name='Facility Admin', description='Administrator of a facility, associated to the person creating the facility.'), Role(name='Admin', description='Administrator'), Role(name='Staff', description='Staff at some facility'), Role(name='Doctor', description='Doctor at some facility'), Role(name='Nurse', description='Nurse at some facility'), Role(name='Pharmacist', description='Pharmacist at some facility')]), 'can_write_product': Permission(name='Can Create Product on Facility', description='', context=<PermissionContext.FACILITY: 'FACILITY'>, roles=[Role(name='Facility Admin', description='Administrator of a facility, associated to the person creating the facility.'), Role(name='Admin', description='Administrator')]), 'can_write_product_knowledge': Permission(name='Can Create Product Knowledge on Facility', description='', context=<PermissionContext.FACILITY: 'FACILITY'>, roles=[Role(name='Facility Admin', description='Administrator of a facility, associated to the person creating the facility.'), Role(name='Admin', description='Administrator')]), 'can_write_questionnaire': Permission(name='Can Create/Update Questionnaires', description='', context=<PermissionContext.QUESTIONNAIRE: 'QUESTIONNAIRE'>, roles=[Role(name='Admin', description='Administrator'), Role(name='Facility Admin', description='Administrator of a facility, associated to the person creating the facility.')]), 'can_write_resource_category': Permission(name='Can Create Resource Category on Facility', description='', context=<PermissionContext.FACILITY: 'FACILITY'>, roles=[Role(name='Facility Admin', description='Administrator of a facility, associated to the person creating the facility.'), Role(name='Admin', description='Administrator')]), 'can_write_schedule': Permission(name='Can Create on Schedule', description='', context=<PermissionContext.FACILITY: 'FACILITY'>, roles=[Role(name='Admin', description='Administrator'), Role(name='Staff', description='Staff at some facility'), Role(name='Facility Admin', description='Administrator of a facility, associated to the person creating the facility.'), Role(name='Doctor', description='Doctor at some facility'), Role(name='Nurse', description='Nurse at some facility')]), 'can_write_service_request': Permission(name='Can Create Service Request on Facility', description='', context=<PermissionContext.FACILITY: 'FACILITY'>, roles=[Role(name='Facility Admin', description='Administrator of a facility, associated to the person creating the facility.'), Role(name='Admin', description='Administrator'), Role(name='Doctor', description='Doctor at some facility'), Role(name='Nurse', description='Nurse at some facility')]), 'can_write_specimen': Permission(name='Can Create Specimen on Facility', description='', context=<PermissionContext.FACILITY: 'FACILITY'>, roles=[Role(name='Facility Admin', description='Administrator of a facility, associated to the person creating the facility.'), Role(name='Admin', description='Administrator'), Role(name='Doctor', description='Doctor at some facility'), Role(name='Nurse', description='Nurse at some facility')]), 'can_write_specimen_definition': Permission(name='Can Create Specimen Definition on Facility', description='', context=<PermissionContext.FACILITY: 'FACILITY'>, roles=[Role(name='Facility Admin', description='Administrator of a facility, associated to the person creating the facility.'), Role(name='Admin', description='Administrator')]), 'can_write_supply_delivery': Permission(name='Can Create Supply Delivery on Facility', description='', context=<PermissionContext.FACILITY: 'FACILITY'>, roles=[Role(name='Facility Admin', description='Administrator of a facility, associated to the person creating the facility.'), Role(name='Admin', description='Administrator')]), 'can_write_supply_request': Permission(name='Can Create Supply Request on Facility', description='', context=<PermissionContext.FACILITY: 'FACILITY'>, roles=[Role(name='Facility Admin', description='Administrator of a facility, associated to the person creating the facility.'), Role(name='Admin', description='Administrator'), Role(name='Staff', description='Staff at some facility'), Role(name='Doctor', description='Doctor at some facility'), Role(name='Nurse', description='Nurse at some facility')]), 'can_write_tag_config': Permission(name='Can Create Tag Config on Facility', description='', context=<PermissionContext.FACILITY: 'FACILITY'>, roles=[Role(name='Facility Admin', description='Administrator of a facility, associated to the person creating the facility.'), Role(name='Admin', description='Administrator')]), 'can_write_token': Permission(name='Can Create on Token', description='', context=<PermissionContext.FACILITY: 'FACILITY'>, roles=[Role(name='Admin', description='Administrator'), Role(name='Staff', description='Staff at some facility'), Role(name='Facility Admin', description='Administrator of a facility, associated to the person creating the facility.'), Role(name='Doctor', description='Doctor at some facility'), Role(name='Nurse', description='Nurse at some facility'), Role(name='Administrator', description='Administrator at a given boundary')]), 'can_write_token_category': Permission(name='Can Create on Token Category', description='', context=<PermissionContext.FACILITY: 'FACILITY'>, roles=[Role(name='Admin', description='Administrator'), Role(name='Staff', description='Staff at some facility'), Role(name='Facility Admin', description='Administrator of a facility, associated to the person creating the facility.')]), 'is_pharmacist': Permission(name='Pharmacist in Care', description='Pharmacists in Care have access to all medication requests and can create dispenses for patients', context=<PermissionContext.FACILITY: 'FACILITY'>, roles=[Role(name='Facility Admin', description='Administrator of a facility, associated to the person creating the facility.'), Role(name='Admin', description='Administrator'), Role(name='Pharmacist', description='Pharmacist at some facility')]), 'read_medication_dispense': Permission(name='Medication Dispense Read', description='Users can read medication dispenses', context=<PermissionContext.FACILITY: 'FACILITY'>, roles=[Role(name='Facility Admin', description='Administrator of a facility, associated to the person creating the facility.'), Role(name='Admin', description='Administrator'), Role(name='Staff', description='Staff at some facility'), Role(name='Doctor', description='Doctor at some facility'), Role(name='Nurse', description='Nurse at some facility'), Role(name='Pharmacist', description='Pharmacist at some facility')]), 'write_medication_dispense': Permission(name='Write Medication Dispense', description='Users can write medication dispenses', context=<PermissionContext.FACILITY: 'FACILITY'>, roles=[Role(name='Facility Admin', description='Administrator of a facility, associated to the person creating the facility.'), Role(name='Admin', description='Administrator'), Role(name='Staff', description='Staff at some facility'), Role(name='Doctor', description='Doctor at some facility'), Role(name='Nurse', description='Nurse at some facility'), Role(name='Pharmacist', description='Pharmacist at some facility')])}
classmethod build_cache()

Iterate through the entire permission library and create a list of permissions and associated Metadata

classmethod get_permissions()
classmethod get_enum()
classmethod register_permission_handler(handler)