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):
"""