Django Rest Framework
Custom Permissions
drf - generics
으로 permissions
를 사용하여 superuser
일 경우만 조회 권한을 주는 기능을 구현하였다.
참고 : http://www.django-rest-framework.org/api-guide/permissions/
class IsOwnerOrReadOnly(permissions.BasePermission): def has_permission(self, request, view): ip_addr = request.META[‘REMOTE_ADDR’] blacklisted = Blacklist.objects.filter(ip_addr=ip_addr).exists() return not blacklisted
def has_object_permission(self, request, view, obj): if request.method in permissions.SAFE_METHODS): return true return obj.owner == request.user ```
- has_permission(self, request, view) : obj와는 관계 없이 has_permission 내의 조건이 true일 경우에만 허용하게 하는 기능
- has_object_permission(self, request, view, obj) : obj가 접근 권한이 있는지 없는지 검사 후 권한을 부여
이것만 봐서는 이해가 잘 되지않아서 ctrl+클릭
으로 다른 isAdminUser
같은 예를 참고하여 작성하였다