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, )
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, )
def get(self, request): """Gets current user.""" return Response( serializers.UserSerializer( request.user, context={'request': request} ).data, status=status.HTTP_200_OK, )
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)
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, )
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, })