From 8d009d12a6ec830a245c86cb64a0a3a0bd45dc56 Mon Sep 17 00:00:00 2001 From: Janfrancisco Date: Tue, 27 May 2025 19:37:40 -0400 Subject: [PATCH] refactor permissions: replace DjangoModelPermissions with CustomDjangoModelPermission for improved API access control --- app/permissions.py | 13 +++++++++++++ app/settings.py | 2 +- 2 files changed, 14 insertions(+), 1 deletion(-) create mode 100644 app/permissions.py diff --git a/app/permissions.py b/app/permissions.py new file mode 100644 index 0000000..8762be8 --- /dev/null +++ b/app/permissions.py @@ -0,0 +1,13 @@ +from rest_framework import permissions + +class CustomDjangoModelPermission(permissions.DjangoModelPermissions): + # Override to improve the permissions on API + perms_map = { + 'GET': ['%(app_label)s.view_%(model_name)s'], + 'OPTIONS': [], + 'HEAD': [], + 'POST': ['%(app_label)s.add_%(model_name)s'], + 'PUT': ['%(app_label)s.change_%(model_name)s'], + 'PATCH': ['%(app_label)s.change_%(model_name)s'], + 'DELETE': ['%(app_label)s.delete_%(model_name)s'], + } diff --git a/app/settings.py b/app/settings.py index df2d2dc..a120c08 100644 --- a/app/settings.py +++ b/app/settings.py @@ -155,7 +155,7 @@ ), 'DEFAULT_PERMISSION_CLASSES': ( 'rest_framework.permissions.IsAuthenticated', - 'rest_framework.permissions.DjangoModelPermissions', + 'app.permissions.CustomDjangoModelPermission' # Improve permissions to view in DRF ), }