FHRI API permissions check
Description
The FHIR API permissions check is based on the python DjangoModelPermissions
.
More information can be found here:
https://www.django-rest-framework.org/api-guide/permissions/#permissions)(https://www.django-rest-framework.org/api-guide/permissions/#permissions
Implementation details:
The API_FHIR module has created FHIRApiPermissions
class which extend the DjangoModelPermissions
(from rest_framework.permissions
).
from rest_framework.permissions import DjangoModelPermissions
class FHIRApiPermissions(DjangoModelPermissions):
permissions_get = ['%(app_label)s.view_%(model_name)s']
permissions_post = ['%(app_label)s.add_%(model_name)s']
permissions_put = ['%(app_label)s.change_%(model_name)s']
permissions_patch = ['%(app_label)s.change_%(model_name)s']
permissions_delete = ['%(app_label)s.delete_%(model_name)s']
def __init__(self):
self.perms_map['GET'] = self.permissions_get
self.perms_map['POST'] = self.permissions_post
self.perms_map['PUT'] = self.permissions_put
self.perms_map['PATCH'] = self.permissions_patch
self.perms_map['DELETE'] = self.permissions_delete
The following attributes can be used to specify the list of required permissions (split by HTTP operation):
permissions_get
permissions_post
permissions_put
permissions_patch
permissions_delete
For instance, to execute GET on the Patient endpoint (OpenIMIS Insuree model) user needs to have the following permission:
insuree.view_insurees
The mentioned FHIRApiPermissions class is injected to FHIR API views using the permission_classes attribute.
Did you encounter a problem or do you have a suggestion?
Please contact our Service Desk
This work is licensed under a Creative Commons Attribution-ShareAlike 4.0 International License. https://creativecommons.org/licenses/by-sa/4.0/