server/authentication/views.py
changeset 108 4a152f5f4a09
parent 87 7b43de480a11
child 112 53dc561c38d1
equal deleted inserted replaced
107:1e18c880021e 108:4a152f5f4a09
     3 
     3 
     4 from django.contrib.auth import get_user_model
     4 from django.contrib.auth import get_user_model
     5 import requests
     5 import requests
     6 from rest_framework import serializers, status, permissions, parsers, renderers
     6 from rest_framework import serializers, status, permissions, parsers, renderers
     7 from rest_framework.authtoken.models import Token
     7 from rest_framework.authtoken.models import Token
     8 from rest_framework.authtoken.serializers import AuthTokenSerializer
       
     9 from rest_framework.response import Response
     8 from rest_framework.response import Response
    10 from rest_framework.views import APIView
     9 from rest_framework.views import APIView
    11 
    10 
       
    11 from ammico.views import populateVisit
    12 from config import URL_JAMESPOT
    12 from config import URL_JAMESPOT
    13 from ammico.views import populateVisit
       
    14 
    13 
    15 
    14 
    16 class UserSerializer(serializers.ModelSerializer):
    15 class UserSerializer(serializers.ModelSerializer):
    17     class Meta:
    16     class Meta:
    18         model = get_user_model()
    17         model = get_user_model()
    29         serializer = UserSerializer(user, many=True)
    28         serializer = UserSerializer(user, many=True)
    30         return Response(serializer.data)
    29         return Response(serializer.data)
    31         
    30         
    32     def post(self, request):
    31     def post(self, request):
    33         VALID_USER_FIELDS = [f.name for f in get_user_model()._meta.fields]
    32         VALID_USER_FIELDS = [f.name for f in get_user_model()._meta.fields]
    34         DEFAULTS = {
       
    35             "groups":"",
       
    36             "user_permissions":""
       
    37         }
       
    38         request.data.update(DEFAULTS)
       
    39         serialized = UserSerializer(data=request.data)
    33         serialized = UserSerializer(data=request.data)
    40         
    34         
    41         if serialized.is_valid():
    35         if serialized.is_valid():
    42             user_data = {field: data for (field, data) in request.DATA.items() if field in VALID_USER_FIELDS}
    36             user_data = {field: data for (field, data) in request.DATA.items() if field in VALID_USER_FIELDS}
    43             
    37             
    58     permission_classes = ()
    52     permission_classes = ()
    59     parser_classes = (parsers.FormParser, parsers.MultiPartParser, parsers.JSONParser,)
    53     parser_classes = (parsers.FormParser, parsers.MultiPartParser, parsers.JSONParser,)
    60     renderer_classes = (renderers.JSONRenderer,)
    54     renderer_classes = (renderers.JSONRenderer,)
    61 
    55 
    62     def post(self, request):
    56     def post(self, request):
    63         serializer = AuthTokenSerializer(data=request.data)
    57         user = get_user_model().objects.get(email = request.data['email'], password = request.data['password'])
    64         serializer.is_valid(raise_exception=True)
       
    65         user = serializer.validated_data['user']
       
    66         if (user.idUser):
    58         if (user.idUser):
    67             populateVisit(user)
    59             populateVisit(user)
    68         token, created = Token.objects.get_or_create(user=user)
    60         token, _ = Token.objects.get_or_create(user=user)
    69         return Response({'token': token.key})
    61         return Response({'token': token.key})