Ejemplo n.º 1
0
def login_view(request):
    """REST API login view."""
    if not request.user.is_authenticated():
        username = request.data.get('username')
        password = request.data.get('password')
        user = authenticate(username=username, password=password)

        if user is None or not user.is_active:
            return Response(None, status=status.HTTP_401_UNAUTHORIZED)

        login(request, user)

        return Response(
            serializers.UserSerializer(user, context={
                'request': request
            }).data,
            status=status.HTTP_200_OK,
        )

    return Response(
        serializers.UserSerializer(request.user, context={
            'request': request
        }).data,
        status=status.HTTP_400_BAD_REQUEST,
    )
Ejemplo n.º 2
0
 def post(self, request):
     """Updates current user."""
     serializer = serializers.UserSerializer(
         request.user,
         data=request.data,
     )
     if serializer.is_valid(raise_exception=True):
         user = serializer.save()
         return Response(
             serializers.UserSerializer(user).data,
             status=status.HTTP_200_OK,
         )
Ejemplo n.º 3
0
 def get(self, request):
     """Gets current user."""
     return Response(
         serializers.UserSerializer(
             request.user,
             context={'request': request}
         ).data,
         status=status.HTTP_200_OK,
     )
Ejemplo n.º 4
0
def current_user(request):
    """REST API view for current user."""
    if request.user.is_authenticated():
        return Response(
            serializers.UserSerializer(request.user).data,
            status=status.HTTP_200_OK,
        )

    return Response(None, status=status.HTTP_200_OK)
Ejemplo n.º 5
0
 def get(self, request):
     """Gets current user."""
     if request.user.is_authenticated():
         return Response(
             serializers.UserSerializer(request.user,
                                        context={
                                            'request': request
                                        }).data,
             status=status.HTTP_200_OK,
         )
     return Response(
         None,
         status=status.HTTP_200_OK,
     )
Ejemplo n.º 6
0
def login_view(request):
    """REST API login view."""
    if not request.user.is_authenticated():
        username = request.data.get('username')
        password = request.data.get('password')
        user = authenticate(username=username, password=password)

        if user is None or not user.is_active:
            return Response({
                'success': False,
                'user': None,
            })

        login(request, user)

    return Response({
        'success': True,
        'user': serializers.UserSerializer(request.user).data,
    })