mirror of
https://github.com/HamzaSha1/zod-backend.git
synced 2025-07-16 18:36:18 +00:00
some changes in admin password reset related api
This commit is contained in:
@ -36,9 +36,9 @@ class AdminOTPSerializer(serializers.ModelSerializer):
|
|||||||
""" used to validate the incoming data """
|
""" used to validate the incoming data """
|
||||||
user = USER.objects.filter(email=attrs.get('email')).first()
|
user = USER.objects.filter(email=attrs.get('email')).first()
|
||||||
if not user:
|
if not user:
|
||||||
raise serializers.ValidationError(ERROR_CODE['2004'])
|
raise serializers.ValidationError({'details': ERROR_CODE['2004']})
|
||||||
elif not user.is_superuser:
|
elif not user.is_superuser:
|
||||||
raise serializers.ValidationError(ERROR_CODE['2063'])
|
raise serializers.ValidationError({'details': ERROR_CODE['2063']})
|
||||||
attrs.update({'user': user})
|
attrs.update({'user': user})
|
||||||
return attrs
|
return attrs
|
||||||
|
|
||||||
@ -87,11 +87,11 @@ class AdminVerifyOTPSerializer(serializers.Serializer):
|
|||||||
# fetch email otp object of the user
|
# fetch email otp object of the user
|
||||||
user_otp_details = UserEmailOtp.objects.filter(email=email, otp=otp).last()
|
user_otp_details = UserEmailOtp.objects.filter(email=email, otp=otp).last()
|
||||||
if not user_otp_details:
|
if not user_otp_details:
|
||||||
raise serializers.ValidationError(ERROR_CODE['2064'])
|
raise serializers.ValidationError({'details': ERROR_CODE['2064']})
|
||||||
if user_otp_details.user_type != dict(USER_TYPE).get('3'):
|
if user_otp_details.user_type != dict(USER_TYPE).get('3'):
|
||||||
raise serializers.ValidationError(ERROR_CODE['2063'])
|
raise serializers.ValidationError({'details': ERROR_CODE['2063']})
|
||||||
if user_otp_details.expired_at.replace(tzinfo=None) < datetime.utcnow():
|
if user_otp_details.expired_at.replace(tzinfo=None) < datetime.utcnow():
|
||||||
raise serializers.ValidationError(ERROR_CODE['2029'])
|
raise serializers.ValidationError({'details': ERROR_CODE['2029']})
|
||||||
user_otp_details.is_verified = True
|
user_otp_details.is_verified = True
|
||||||
user_otp_details.save()
|
user_otp_details.save()
|
||||||
return attrs
|
return attrs
|
||||||
@ -123,14 +123,14 @@ class AdminCreatePasswordSerializer(serializers.ModelSerializer):
|
|||||||
|
|
||||||
# matching password
|
# matching password
|
||||||
if new_password != confirm_password:
|
if new_password != confirm_password:
|
||||||
raise serializers.ValidationError(ERROR_CODE['2065'])
|
raise serializers.ValidationError({'details': ERROR_CODE['2065']})
|
||||||
|
|
||||||
user_otp_details = UserEmailOtp.objects.filter(email=email).last()
|
user_otp_details = UserEmailOtp.objects.filter(email=email).last()
|
||||||
if not user_otp_details:
|
if not user_otp_details:
|
||||||
raise serializers.ValidationError(ERROR_CODE['2064'])
|
raise serializers.ValidationError({'details': ERROR_CODE['2064']})
|
||||||
if user_otp_details.user_type != dict(USER_TYPE).get('3'):
|
if user_otp_details.user_type != dict(USER_TYPE).get('3'):
|
||||||
raise serializers.ValidationError(ERROR_CODE['2063'])
|
raise serializers.ValidationError({'details': ERROR_CODE['2063']})
|
||||||
if not user_otp_details.is_verified:
|
if not user_otp_details.is_verified:
|
||||||
raise serializers.ValidationError(ERROR_CODE['2064'])
|
raise serializers.ValidationError({'details': ERROR_CODE['2064']})
|
||||||
user_otp_details.delete()
|
user_otp_details.delete()
|
||||||
return attrs
|
return attrs
|
||||||
|
@ -4,11 +4,12 @@ web_admin auth views file
|
|||||||
# django imports
|
# django imports
|
||||||
from rest_framework.viewsets import GenericViewSet
|
from rest_framework.viewsets import GenericViewSet
|
||||||
from rest_framework.decorators import action
|
from rest_framework.decorators import action
|
||||||
|
from rest_framework import status
|
||||||
from django.contrib.auth import get_user_model
|
from django.contrib.auth import get_user_model
|
||||||
|
|
||||||
# local imports
|
# local imports
|
||||||
from account.utils import custom_response
|
from account.utils import custom_response, custom_error_response
|
||||||
from base.messages import SUCCESS_CODE
|
from base.messages import SUCCESS_CODE, ERROR_CODE
|
||||||
from web_admin.serializers.auth_serializer import (AdminOTPSerializer, AdminVerifyOTPSerializer,
|
from web_admin.serializers.auth_serializer import (AdminOTPSerializer, AdminVerifyOTPSerializer,
|
||||||
AdminCreatePasswordSerializer)
|
AdminCreatePasswordSerializer)
|
||||||
|
|
||||||
@ -29,9 +30,10 @@ class ForgotAndResetPasswordViewSet(GenericViewSet):
|
|||||||
:return: success message
|
:return: success message
|
||||||
"""
|
"""
|
||||||
serializer = self.serializer_class(data=request.data)
|
serializer = self.serializer_class(data=request.data)
|
||||||
serializer.is_valid(raise_exception=True)
|
if serializer.is_valid():
|
||||||
serializer.save()
|
serializer.save()
|
||||||
return custom_response(SUCCESS_CODE['3015'])
|
return custom_response(SUCCESS_CODE['3015'])
|
||||||
|
return custom_error_response(ERROR_CODE['2063'], status.HTTP_400_BAD_REQUEST)
|
||||||
|
|
||||||
@action(methods=['post'], url_name='verify-otp', url_path='verify-otp',
|
@action(methods=['post'], url_name='verify-otp', url_path='verify-otp',
|
||||||
detail=False, serializer_class=AdminVerifyOTPSerializer)
|
detail=False, serializer_class=AdminVerifyOTPSerializer)
|
||||||
@ -41,8 +43,9 @@ class ForgotAndResetPasswordViewSet(GenericViewSet):
|
|||||||
:return: success message
|
:return: success message
|
||||||
"""
|
"""
|
||||||
serializer = self.serializer_class(data=request.data)
|
serializer = self.serializer_class(data=request.data)
|
||||||
serializer.is_valid(raise_exception=True)
|
if serializer.is_valid():
|
||||||
return custom_response(SUCCESS_CODE['3011'])
|
return custom_response(SUCCESS_CODE['3011'])
|
||||||
|
return custom_error_response(ERROR_CODE['2063'], status.HTTP_400_BAD_REQUEST)
|
||||||
|
|
||||||
@action(methods=['post'], url_name='create-password', url_path='create-password',
|
@action(methods=['post'], url_name='create-password', url_path='create-password',
|
||||||
detail=False, serializer_class=AdminCreatePasswordSerializer)
|
detail=False, serializer_class=AdminCreatePasswordSerializer)
|
||||||
@ -52,8 +55,9 @@ class ForgotAndResetPasswordViewSet(GenericViewSet):
|
|||||||
:return: success message
|
:return: success message
|
||||||
"""
|
"""
|
||||||
serializer = self.serializer_class(data=request.data)
|
serializer = self.serializer_class(data=request.data)
|
||||||
serializer.is_valid(raise_exception=True)
|
if serializer.is_valid():
|
||||||
user = USER.objects.filter(email=serializer.validated_data.get('email')).first()
|
user = USER.objects.filter(email=serializer.validated_data.get('email')).first()
|
||||||
user.set_password(serializer.validated_data.get('new_password'))
|
user.set_password(serializer.validated_data.get('new_password'))
|
||||||
user.save()
|
user.save()
|
||||||
return custom_response(SUCCESS_CODE['3007'])
|
return custom_response(SUCCESS_CODE['3007'])
|
||||||
|
return custom_error_response(ERROR_CODE['2064'], status.HTTP_400_BAD_REQUEST)
|
||||||
|
Reference in New Issue
Block a user