mirror of
https://github.com/encode/django-rest-framework.git
synced 2025-08-05 13:00:12 +03:00
Add Permission 'code' attribute
This commit is contained in:
parent
176831e22b
commit
b903f4ac98
|
@ -161,13 +161,13 @@ class APIView(View):
|
||||||
"""
|
"""
|
||||||
raise exceptions.MethodNotAllowed(request.method)
|
raise exceptions.MethodNotAllowed(request.method)
|
||||||
|
|
||||||
def permission_denied(self, request, message=None):
|
def permission_denied(self, request, message=None, code=None):
|
||||||
"""
|
"""
|
||||||
If request is not permitted, determine what kind of exception to raise.
|
If request is not permitted, determine what kind of exception to raise.
|
||||||
"""
|
"""
|
||||||
if request.authenticators and not request.successful_authenticator:
|
if request.authenticators and not request.successful_authenticator:
|
||||||
raise exceptions.NotAuthenticated()
|
raise exceptions.NotAuthenticated()
|
||||||
raise exceptions.PermissionDenied(detail=message)
|
raise exceptions.PermissionDenied(detail=message, code=code)
|
||||||
|
|
||||||
def throttled(self, request, wait):
|
def throttled(self, request, wait):
|
||||||
"""
|
"""
|
||||||
|
@ -326,7 +326,9 @@ class APIView(View):
|
||||||
for permission in self.get_permissions():
|
for permission in self.get_permissions():
|
||||||
if not permission.has_permission(request, self):
|
if not permission.has_permission(request, self):
|
||||||
self.permission_denied(
|
self.permission_denied(
|
||||||
request, message=getattr(permission, 'message', None)
|
request,
|
||||||
|
message=getattr(permission, 'message', None),
|
||||||
|
code=getattr(permission, 'code', None)
|
||||||
)
|
)
|
||||||
|
|
||||||
def check_object_permissions(self, request, obj):
|
def check_object_permissions(self, request, obj):
|
||||||
|
@ -337,7 +339,9 @@ class APIView(View):
|
||||||
for permission in self.get_permissions():
|
for permission in self.get_permissions():
|
||||||
if not permission.has_object_permission(request, self, obj):
|
if not permission.has_object_permission(request, self, obj):
|
||||||
self.permission_denied(
|
self.permission_denied(
|
||||||
request, message=getattr(permission, 'message', None)
|
request,
|
||||||
|
message=getattr(permission, 'message', None),
|
||||||
|
code=getattr(permission, 'code', None)
|
||||||
)
|
)
|
||||||
|
|
||||||
def check_throttles(self, request):
|
def check_throttles(self, request):
|
||||||
|
|
Loading…
Reference in New Issue
Block a user