Advertisement
Guest User

Untitled

a guest
May 19th, 2020
49
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
Python 0.92 KB | None | 0 0
  1. # Пермишены
  2. class isInstanceOwnerPermission(permissions.BasePermission):
  3.  
  4.     def __init__(self):
  5.         if not hasattr(self, 'get_owner'):
  6.             raise NotImplementedError(
  7.                 "{} : not implemented get_owner() method".format(self.__class__.__name__ )
  8.             )
  9.  
  10.     def has_object_permission(self, request, view, obj):
  11.         return self.get_owner(obj) == request.user
  12.  
  13. class isEntryOwner(isInstanceOwnerPermission):
  14.  
  15.     def get_owner(self, obj):
  16.         return obj.entry.sheet.user
  17.  
  18. class isCategoryOwner(isInstanceOwnerPermission):
  19.  
  20.     def get_owner(self, obj):
  21.         return obj.category.sheet.user
  22.  
  23. # Вьюсет
  24. class EntryRowViewSet(viewsets.ModelViewSet):
  25.     model = EntryRow
  26.     serializer_class = EntryRowApiSerializer
  27.     permission_classes = [isEntryOwner, isCategoryOwner, IsAuthenticated]
  28.    
  29.     def get_queryset(self):
  30.         return EntryRow.objects.all()
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement