Create account using api
Registration and change_email is backed by ldap
This commit is contained in:
parent
ecc9e6f734
commit
4845ab1e39
6 changed files with 362 additions and 16 deletions
|
|
@ -1,9 +1,11 @@
|
|||
from rest_framework import viewsets, permissions, status
|
||||
from .serializers import *
|
||||
from django_auth_ldap.backend import LDAPBackend
|
||||
from rest_framework import mixins, permissions, status, viewsets
|
||||
from rest_framework.decorators import action
|
||||
from rest_framework.response import Response
|
||||
|
||||
from .serializers import *
|
||||
|
||||
|
||||
class UserViewSet(viewsets.GenericViewSet):
|
||||
permission_classes = [permissions.IsAuthenticated]
|
||||
serializer_class = UserSerializer
|
||||
|
|
@ -19,19 +21,29 @@ class UserViewSet(viewsets.GenericViewSet):
|
|||
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)
|
||||
@action(detail=False, methods=['post'])
|
||||
def change_email(self, request):
|
||||
serializer = self.get_serializer(
|
||||
request.user, data=request.data, context={'request': request}
|
||||
)
|
||||
serializer.is_valid(raise_exception=True)
|
||||
serializer.save()
|
||||
return Response(serializer.data)
|
||||
|
||||
|
||||
class AccountManagementViewSet(mixins.CreateModelMixin, viewsets.GenericViewSet):
|
||||
serializer_class = UserRegistrationSerializer
|
||||
|
||||
def create(self, request, *args, **kwargs):
|
||||
serializer = self.get_serializer(data=request.data)
|
||||
serializer.is_valid(raise_exception=True)
|
||||
self.perform_create(serializer)
|
||||
headers = self.get_success_headers(serializer.data)
|
||||
return Response(
|
||||
serializer.data, status=status.HTTP_201_CREATED, headers=headers
|
||||
)
|
||||
|
||||
|
||||
class AdminUserViewSet(viewsets.ReadOnlyModelViewSet):
|
||||
permission_classes = [permissions.IsAdminUser]
|
||||
|
||||
|
|
|
|||
Loading…
Add table
Add a link
Reference in a new issue