X-Git-Url: https://git.mdrn.pl/wolnelektury.git/blobdiff_plain/c1c30568a2ecc705db04d7f0c94749e55cb41b47..2d078acd77305c073bff9cd402e7a83138cc9471:/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({})