Custom Permission Class
사용자 정의 Permission Class
Posted on 2021-08-30 by GKSRUDTN99
Django Rest Framework
DRF
Permission Class
Permisssion Class에 대하여
has_permission(self, request, view)
는 해당 View 자체에 접근할 권한을 설정한다.has_object_permission(self, request, view, obj)
는 해당 View에서 특정 객체에 접근할 권한을 설정한다.
Custom Permission Class 정의하기.
from rest_framework import permissions
를 임포트한다.permissions.BasePermission
을 확장하는 클래스를 정의한다.- 위의 두 함수를 override하여 구현한다.
Custom Permission Class 예시
해당 객체에 소유자만 CRUD가 모두 가능하고, 나머지는 Read만 가능하도록 하고 싶다면, IsOwnerOrReadOnly 클래스를 다음과 같이 정의할 수 있다.
class IsOwnerOrReadOnly(permissions.BasePermission):
def has_object_permission(self, request, view, obj):
if request.method in permissions.SAFE_METHODS:
return True
else:
return obj.user == request.user