aboutsummaryrefslogtreecommitdiffstats
path: root/rest_framework/views.py
diff options
context:
space:
mode:
authorTom Christie2013-02-28 17:58:58 +0000
committerTom Christie2013-02-28 17:58:58 +0000
commit13b3af0d22bdbae5be0eb39ea50219c1fb83e28f (patch)
tree26faec0481b8bb82e726ac4fc109b5f65d292a82 /rest_framework/views.py
parent4e14b26fa9727a79f8ae7c7ef25d1339500fa26c (diff)
downloaddjango-rest-framework-13b3af0d22bdbae5be0eb39ea50219c1fb83e28f.tar.bz2
Auth is no longer lazy. Closes #667.
More consistent auth failure behavior.
Diffstat (limited to 'rest_framework/views.py')
-rw-r--r--rest_framework/views.py11
1 files changed, 11 insertions, 0 deletions
diff --git a/rest_framework/views.py b/rest_framework/views.py
index fa742582..81cbdcbb 100644
--- a/rest_framework/views.py
+++ b/rest_framework/views.py
@@ -257,6 +257,16 @@ class APIView(View):
return (renderers[0], renderers[0].media_type)
raise
+ def perform_authentication(self, request):
+ """
+ Perform authentication on the incoming request.
+
+ Note that if you override this and simply 'pass', then authentication
+ will instead be performed lazily, the first time either
+ `request.user` or `request.auth` is accessed.
+ """
+ request.user
+
def check_permissions(self, request):
"""
Check if the request should be permitted.
@@ -305,6 +315,7 @@ class APIView(View):
self.format_kwarg = self.get_format_suffix(**kwargs)
# Ensure that the incoming request is permitted
+ self.perform_authentication(request)
self.check_permissions(request)
self.check_throttles(request)