You can not select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
 
 
 
 
 
 

31 lines
846 B

from rest_framework.permissions import BasePermission
class CanEditAnnotation(BasePermission):
def __init__(self, queryset):
super().__init__()
self.queryset = queryset
def has_permission(self, request, view):
if request.user.is_superuser:
return True
annotation_id = view.kwargs.get('annotation_id')
return self.queryset.filter(id=annotation_id, user=request.user).exists()
class IsOwnComment(BasePermission):
@classmethod
def has_object_permission(cls, request, view, obj):
if request.user.is_superuser:
return True
return obj.user.id == request.user.id
class IsStaff(BasePermission):
def has_permission(self, request, view):
if request.user.is_superuser or request.user.is_staff:
return True
return False