Advertisement
Guest User

Untitled

a guest
Mar 12th, 2017
88
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 1.63 KB | None | 0 0
  1. def get_permission_level(request, obj):
  2. try:
  3. level = PasswordListACL.objects.get(list=obj, user=request.user)
  4. except PasswordListACL.DoesNotExist:
  5. level = None
  6. return level
  7.  
  8.  
  9. class IsPasswordListOwner(permissions.DjangoObjectPermissions):
  10.  
  11. def has_permission(self, request, view):
  12. return True
  13.  
  14. def has_object_permission(self, request, view, obj):
  15. print(get_permission_level(request, obj))
  16. if get_permission_level(request, obj) == None:
  17. print('false')
  18. return False
  19. else:
  20. level = AccessLevel.objects.get(pk=get_permission_level(request, obj).level_id).name
  21. if level == 'Owner':
  22. return True
  23. else:
  24. return False
  25.  
  26. class PasswordListViewSet(viewsets.ModelViewSet):
  27. queryset = PasswordList.objects.all()
  28. serializer_class = PasswordListSerializer
  29. permission_classes = (IsPasswordListOwner,)
  30.  
  31. def list(self, request):
  32. self.permission_classes = [IsPasswordListOwner, ]
  33. queryset = self.get_queryset().filter(passwordlistacl__user=request.user)
  34. serializer = PasswordListSerializer(queryset, many=True, context={'request': request})
  35. return Response(serializer.data)
  36.  
  37. def retrieve(self, request, pk=None):
  38. self.permission_classes = [IsPasswordListOwner, ]
  39. queryset = self.get_queryset()
  40. if get_object_or_404(queryset, pk=pk):
  41. password = get_object_or_404(queryset, pk=pk)
  42. else:
  43. pass
  44. serializer = PasswordListSerializer(password, context={'request': request})
  45. return Response(serializer.data)
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement