from rest_framework.views import APIView from rest_framework.response import Response from rest_framework import permissions, status from django.http import HttpRequest from django.contrib.auth import login from rest_framework.authentication import SessionAuthentication from django.contrib.auth.models import User from ..serializers.change_password import ChangePasswordSerializer class ChangePasswordView(APIView): permission_classes = (permissions.IsAuthenticated,) authentication_classes = (SessionAuthentication,) def post(self, request: HttpRequest): data = request.data serializer = ChangePasswordSerializer(data=data) if serializer.is_valid(raise_exception=True): user: User = request.user if (user.check_password(data['current_password']) == 0): return Response({'current_password': "The password is not right."}, status=status.HTTP_200_OK) user.set_password(data["new_password"]) return Response('password changed', status=status.HTTP_200_OK)