Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- # Пермишены
- class isInstanceOwnerPermission(permissions.BasePermission):
- def __init__(self):
- if not hasattr(self, 'get_owner'):
- raise NotImplementedError(
- "{} : not implemented get_owner() method".format(self.__class__.__name__ )
- )
- def has_object_permission(self, request, view, obj):
- return self.get_owner(obj) == request.user
- class isEntryOwner(isInstanceOwnerPermission):
- def get_owner(self, obj):
- return obj.entry.sheet.user
- class isCategoryOwner(isInstanceOwnerPermission):
- def get_owner(self, obj):
- return obj.category.sheet.user
- # Вьюсет
- class EntryRowViewSet(viewsets.ModelViewSet):
- model = EntryRow
- serializer_class = EntryRowApiSerializer
- permission_classes = [isEntryOwner, isCategoryOwner, IsAuthenticated]
- def get_queryset(self):
- return EntryRow.objects.all()
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement