From a9b3c8a68bd048819ed3d89b2b1d08788678b181 Mon Sep 17 00:00:00 2001 From: Pawel Morawian Date: Sat, 9 Nov 2019 11:19:59 +0100 Subject: [PATCH] Add additional_permission_classes attribute on APIView This attributes allows adding specific permissions to a view without overriding the default permissions in the settings --- rest_framework/views.py | 4 +++- 1 file changed, 3 insertions(+), 1 deletion(-) diff --git a/rest_framework/views.py b/rest_framework/views.py index bec10560a..6a9952b9f 100644 --- a/rest_framework/views.py +++ b/rest_framework/views.py @@ -109,6 +109,7 @@ class APIView(View): authentication_classes = api_settings.DEFAULT_AUTHENTICATION_CLASSES throttle_classes = api_settings.DEFAULT_THROTTLE_CLASSES permission_classes = api_settings.DEFAULT_PERMISSION_CLASSES + additional_permission_classes = [] content_negotiation_class = api_settings.DEFAULT_CONTENT_NEGOTIATION_CLASS metadata_class = api_settings.DEFAULT_METADATA_CLASS versioning_class = api_settings.DEFAULT_VERSIONING_CLASS @@ -275,7 +276,8 @@ class APIView(View): """ Instantiates and returns the list of permissions that this view requires. """ - return [permission() for permission in self.permission_classes] + permissions = self.permission_classes + self.additional_permission_classes + return [permission() for permission in permissions] def get_throttles(self): """