X-Git-Url: https://git.mdrn.pl/wolnelektury.git/blobdiff_plain/f9a95412f4923ce7b1b5b8844f314bed9a22142e..102acc0b6eb715826f26b5082611604cf6ebe240:/src/api/views.py?ds=sidebyside diff --git a/src/api/views.py b/src/api/views.py index 011161e52..5a77bd8fe 100644 --- a/src/api/views.py +++ b/src/api/views.py @@ -334,3 +334,36 @@ class RequestConfirmView(APIView): UserConfirmation.request(user) return Response({}) + +class DeleteAccountView(GenericAPIView): + permission_classes = [IsAuthenticated] + serializer_class = serializers.DeleteAccountSerializer + + def post(self, request): + u = request.user + serializer = self.get_serializer( + data=request.data, + context={'user': u} + ) + serializer.is_valid(raise_exception=True) + d = serializer.validated_data + u.is_active = False + u.save() + return Response({}) + + +class PasswordView(GenericAPIView): + permission_classes = [IsAuthenticated] + serializer_class = serializers.PasswordSerializer + + def post(self, request): + u = request.user + serializer = self.get_serializer( + data=request.data, + context={'user': u} + ) + serializer.is_valid(raise_exception=True) + d = serializer.validated_data + u.set_password(d['new_password']) + u.save() + return Response({})