From 33a082dfb385af7a28116cbae041d9fba105d1c2 Mon Sep 17 00:00:00 2001 From: Mike0001-droid Date: Thu, 20 Jun 2024 12:16:59 +0500 Subject: [PATCH] =?UTF-8?q?=D0=B4=D0=BE=D0=B4=D0=B5=D0=BB=D0=B0=D0=BB=20?= =?UTF-8?q?=D0=B2=D1=81=D1=8E=20=D0=B2=D0=B0=D0=BB=D0=B8=D0=B4=D0=B0=D1=86?= =?UTF-8?q?=D0=B8=D1=8E?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- server/proj/account/views.py | 42 +++++++++++------- server/proj/conf/settings/__init__.py | 1 - .../__pycache__/__init__.cpython-310.pyc | Bin 196 -> 196 bytes 3 files changed, 27 insertions(+), 16 deletions(-) diff --git a/server/proj/account/views.py b/server/proj/account/views.py index 0912ecd..afe6cbf 100644 --- a/server/proj/account/views.py +++ b/server/proj/account/views.py @@ -11,9 +11,15 @@ from account.serializers import MyUserSerializer, MyTokenObtainPairSerializer from account.models import MyUser from .schemas import UpdateUserSchema from conf.settings.base import MIN_LEN_PASSWORD +from django.core.exceptions import ValidationError +from django.core.validators import validate_email PermissionClass = IsAuthenticated if not settings.DEBUG else AllowAny + + + + class MyTokenObtainPairView(TokenObtainPairView): permission_classes = [AllowAny] serializer_class = MyTokenObtainPairSerializer @@ -59,24 +65,30 @@ class MyUserViewSet(ViewSet): @action(detail=False, methods=['post'], schema=UpdateUserSchema()) def update_user(self, request): password = request.user.password - - if request.data['password'] == request.data['email']: - return Response( - {'detail': 'Почта не может являться паролем', 'error': {'email': 'Почта не может являться паролем'}}, - status=status.HTTP_400_BAD_REQUEST) - - if len(request.data['password']) < MIN_LEN_PASSWORD: - return Response( - {'detail': 'Минимальная длина - 8 символов', 'error': {'email': 'Минимальная длина - 8 символов'}}, - status=status.HTTP_400_BAD_REQUEST) - - if check_password(request.data['password'], password): - return Response( - {'detail': 'Пароли одинаковые', 'error': {'email': 'Пароли одинаковые'}}, - status=status.HTTP_400_BAD_REQUEST) if check_password(request.data['old_password'], password): + try: + validate_email(request.data['password']) + except ValidationError as e: + pass + else: + return Response( + {'detail': 'Почта не может являться паролем', 'error': {'email': 'Почта не может являться паролем'}}, + status=status.HTTP_400_BAD_REQUEST) + + if len(request.data['password']) < MIN_LEN_PASSWORD: + return Response( + {'detail': 'Минимальная длина - 8 символов', 'error': {'email': 'Минимальная длина - 8 символов'}}, + status=status.HTTP_400_BAD_REQUEST) + + + if check_password(request.data['password'], password): + return Response( + {'detail': 'Пароли одинаковые', 'error': {'email': 'Пароли одинаковые'}}, + + + status=status.HTTP_400_BAD_REQUEST) if 'email' in request.data: del request.data['email'] if 'password' in request.data: diff --git a/server/proj/conf/settings/__init__.py b/server/proj/conf/settings/__init__.py index af012d0..ac5e714 100644 --- a/server/proj/conf/settings/__init__.py +++ b/server/proj/conf/settings/__init__.py @@ -1,4 +1,3 @@ - from .local import * diff --git a/server/proj/conf/settings/__pycache__/__init__.cpython-310.pyc b/server/proj/conf/settings/__pycache__/__init__.cpython-310.pyc index e00d72953a6b93384508abfaa40f2494e0e4c784..10a15ecee7db715d15edf9b3448c21d05eb1c716 100644 GIT binary patch delta 23 dcmX@Yc!ZHRpO=@50SNA0Do#_H$h(b^0RTy21}gvn delta 23 dcmX@Yc!ZHRpO=@50SKa36sM_7