API endpoint for updating privacy

This commit is contained in:
Eliot Berriot 2018-03-03 11:20:21 +01:00
parent 7f7a62cfa2
commit 1800f7ad17
No known key found for this signature in database
GPG key ID: DD6965E2476E5C27
4 changed files with 65 additions and 5 deletions

View file

@ -1,4 +1,5 @@
from rest_framework.response import Response
from rest_framework import mixins
from rest_framework import viewsets
from rest_framework.decorators import list_route
@ -23,12 +24,25 @@ class RegisterView(BaseRegisterView):
return get_adapter().is_open_for_signup(request)
class UserViewSet(viewsets.GenericViewSet):
class UserViewSet(
mixins.UpdateModelMixin,
viewsets.GenericViewSet):
queryset = models.User.objects.all()
serializer_class = serializers.UserSerializer
serializer_class = serializers.UserWriteSerializer
lookup_field = 'username'
@list_route(methods=['get'])
def me(self, request, *args, **kwargs):
"""Return information about the current user"""
serializer = self.serializer_class(request.user)
serializer = serializers.UserReadSerializer(request.user)
return Response(serializer.data)
def update(self, request, *args, **kwargs):
if not self.request.user.username == kwargs.get('username'):
return Response(status=403)
return super().update(request, *args, **kwargs)
def partial_update(self, request, *args, **kwargs):
if not self.request.user.username == kwargs.get('username'):
return Response(status=403)
return super().partial_update(request, *args, **kwargs)