aboutsummaryrefslogtreecommitdiffstats
path: root/rest_framework/views.py
diff options
context:
space:
mode:
authorTom Christie2012-09-27 21:51:46 +0100
committerTom Christie2012-09-27 21:51:46 +0100
commitee36e4ab0c0508a590c6b73a23ec82b7f1e49bd0 (patch)
tree8c74086caf32984fe5adb9776558f04e5e56dc76 /rest_framework/views.py
parent4d906938a9304be119a9b15f6540a8cbab6f1154 (diff)
downloaddjango-rest-framework-ee36e4ab0c0508a590c6b73a23ec82b7f1e49bd0.tar.bz2
Only display forms when user has permissions. #159
Diffstat (limited to 'rest_framework/views.py')
-rw-r--r--rest_framework/views.py10
1 files changed, 6 insertions, 4 deletions
diff --git a/rest_framework/views.py b/rest_framework/views.py
index 3605b1ee..c1a066d3 100644
--- a/rest_framework/views.py
+++ b/rest_framework/views.py
@@ -169,13 +169,14 @@ class APIView(View):
conneg = self.content_negotiation_class()
return conneg.negotiate(request, renderers, self.format, force)
- def check_permissions(self, request, obj=None):
+ def has_permission(self, request, obj=None):
"""
- Check if request should be permitted.
+ Return `True` if the request should be permitted.
"""
for permission in self.get_permissions():
if not permission.has_permission(request, obj):
- self.permission_denied(request)
+ return False
+ return True
def check_throttles(self, request):
"""
@@ -197,7 +198,8 @@ class APIView(View):
Runs anything that needs to occur prior to calling the method handlers.
"""
self.format = self.get_format_suffix(**kwargs)
- self.check_permissions(request)
+ if not self.has_permission(request):
+ self.permission_denied(request)
self.check_throttles(request)
self.renderer, self.accepted_media_type = self.perform_content_negotiation(request)