Add support for primary address in user.

Closes #35

Fixes #35
This commit is contained in:
Nico Schottelius 2020-05-10 21:47:44 +02:00
commit ec447e0dc4
8 changed files with 106 additions and 13 deletions

View file

@ -3,24 +3,37 @@ from .serializers import *
from django_auth_ldap.backend import LDAPBackend
from rest_framework.decorators import action
from rest_framework.response import Response
from rest_framework import mixins
class UserViewSet(mixins.ListModelMixin, viewsets.GenericViewSet):
class UserViewSet(viewsets.GenericViewSet):
permission_classes = [permissions.IsAuthenticated]
serializer_class = UserSerializer
def get_queryset(self):
return self.request.user
def list(self, request, format=None):
# This is a bit stupid: we have a user, we create a queryset by
# matching on the username. But I don't know a "nicer" way.
# Nico, 2020-03-18
user = get_user_model().objects.get(
username=self.request.user.username)
user = request.user
serializer = self.get_serializer(user, context = {'request': request})
return Response(serializer.data)
def create(self, request):
"""
Modify existing user data
"""
user = request.user
serializer = self.get_serializer(user,
context = {'request': request},
data=request.data)
serializer.is_valid(raise_exception=True)
serializer.save()
return Response(serializer.data)
class AdminUserViewSet(viewsets.ReadOnlyModelViewSet):
# FIXME: make this admin
permission_classes = [permissions.IsAuthenticated]
permission_classes = [permissions.IsAdminUser]
def get_serializer_class(self):
if self.action == 'import_from_ldap':