Skip to content

Commit fb2bc00

Browse files
committed
Added HasPermission
1 parent 2e24385 commit fb2bc00

File tree

2 files changed

+25
-0
lines changed

2 files changed

+25
-0
lines changed

README.md

Lines changed: 11 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -54,6 +54,17 @@ Usage:
5454
from djangorestframework_ext.permissions import IsSuperuser
5555
```
5656

57+
## HasPermission
58+
59+
Mainly used for providing permission validation to `@api_view`.
60+
61+
```
62+
@api_view(['GET'])
63+
@permission_classes([HasPermission('user.change_user')])
64+
def change_user(request):
65+
...
66+
```
67+
5768
# Serializers
5869

5970
## RecursiveSerializer

rest_framework_ext/permissions.py

Lines changed: 14 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -11,6 +11,20 @@ def has_permission(self, request, view):
1111
return bool(request.user and request.user.is_superuser)
1212

1313

14+
class HasPermission(BasePermission):
15+
permission_codename = ''
16+
17+
def __init__(self, permission_codename):
18+
super().__init__()
19+
self.permission_codename = permission_codename
20+
21+
def __call__(self):
22+
return self
23+
24+
def has_permission(self, request, view):
25+
return request.user.has_perm(self.permission_codename)
26+
27+
1428
class ExportPermission(BasePermission):
1529
def has_permission(self, request, view):
1630
if view.action == 'export':

0 commit comments

Comments
 (0)