class UserViewSet(viewsets.ModelViewSet):
queryset = User.objects.all()
serializer_class = UserSerializer
def get_permissions(self):
if permissions.IsAuthenticated in self.permission_classes:
return (permissions.IsAuthenticated(),)
if self.request.method in permissions.SAFE_METHODS:
return (permissions.AllowAny(),)
if self.request.method == 'POST':
return (permissions.AllowAny(),)
return (permissions.IsAuthenticated(),)
@permission_classes([permissions.IsAuthenticated,])
def list(self, request, *args, **kwargs):
user = request.user
if user.is_admin:
return super(UserViewSet, self).list(request, *args, **kwargs)
serialized_user = self.serializer_class(user)
return Response(serialized_user.data, status=status.HTTP_200_OK)