aboutsummaryrefslogtreecommitdiffstats
path: root/djangorestframework/permissions.py
diff options
context:
space:
mode:
Diffstat (limited to 'djangorestframework/permissions.py')
-rw-r--r--djangorestframework/permissions.py22
1 files changed, 11 insertions, 11 deletions
diff --git a/djangorestframework/permissions.py b/djangorestframework/permissions.py
index 03d78c2e..335a7213 100644
--- a/djangorestframework/permissions.py
+++ b/djangorestframework/permissions.py
@@ -6,7 +6,7 @@ class to your view by setting your View's :attr:`permissions` class attribute.
from django.core.cache import cache
from djangorestframework import status
-from djangorestframework.response import ErrorResponse
+from djangorestframework.response import ImmediateResponse
import time
__all__ = (
@@ -23,14 +23,14 @@ __all__ = (
SAFE_METHODS = ['GET', 'HEAD', 'OPTIONS']
-_403_FORBIDDEN_RESPONSE = ErrorResponse(
- status.HTTP_403_FORBIDDEN,
+_403_FORBIDDEN_RESPONSE = ImmediateResponse(
{'detail': 'You do not have permission to access this resource. ' +
- 'You may need to login or otherwise authenticate the request.'})
+ 'You may need to login or otherwise authenticate the request.'},
+ status=status.HTTP_403_FORBIDDEN)
-_503_SERVICE_UNAVAILABLE = ErrorResponse(
- status.HTTP_503_SERVICE_UNAVAILABLE,
- {'detail': 'request was throttled'})
+_503_SERVICE_UNAVAILABLE = ImmediateResponse(
+ {'detail': 'request was throttled'},
+ status=status.HTTP_503_SERVICE_UNAVAILABLE)
class BasePermission(object):
@@ -45,7 +45,7 @@ class BasePermission(object):
def check_permission(self, auth):
"""
- Should simply return, or raise an :exc:`response.ErrorResponse`.
+ Should simply return, or raise an :exc:`response.ImmediateResponse`.
"""
pass
@@ -164,7 +164,7 @@ class BaseThrottle(BasePermission):
def check_permission(self, auth):
"""
Check the throttling.
- Return `None` or raise an :exc:`.ErrorResponse`.
+ Return `None` or raise an :exc:`.ImmediateResponse`.
"""
num, period = getattr(self.view, self.attr_name, self.default).split('/')
self.num_requests = int(num)
@@ -200,7 +200,7 @@ class BaseThrottle(BasePermission):
self.history.insert(0, self.now)
cache.set(self.key, self.history, self.duration)
header = 'status=SUCCESS; next=%s sec' % self.next()
- self.view.add_header('X-Throttle', header)
+ self.view.headers['X-Throttle'] = header
def throttle_failure(self):
"""
@@ -208,7 +208,7 @@ class BaseThrottle(BasePermission):
Raises a '503 service unavailable' response.
"""
header = 'status=FAILURE; next=%s sec' % self.next()
- self.view.add_header('X-Throttle', header)
+ self.view.headers['X-Throttle'] = header
raise _503_SERVICE_UNAVAILABLE
def next(self):