mirror of
https://github.com/HamzaSha1/zod-backend.git
synced 2025-07-15 18:07:02 +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 """
|
||||
user = USER.objects.filter(email=attrs.get('email')).first()
|
||||
if not user:
|
||||
raise serializers.ValidationError(ERROR_CODE['2004'])
|
||||
raise serializers.ValidationError({'details': ERROR_CODE['2004']})
|
||||
elif not user.is_superuser:
|
||||
raise serializers.ValidationError(ERROR_CODE['2063'])
|
||||
raise serializers.ValidationError({'details': ERROR_CODE['2063']})
|
||||
attrs.update({'user': user})
|
||||
return attrs
|
||||
|
||||
@ -87,11 +87,11 @@ class AdminVerifyOTPSerializer(serializers.Serializer):
|
||||
# fetch email otp object of the user
|
||||
user_otp_details = UserEmailOtp.objects.filter(email=email, otp=otp).last()
|
||||
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'):
|
||||
raise serializers.ValidationError(ERROR_CODE['2063'])
|
||||
raise serializers.ValidationError({'details': ERROR_CODE['2063']})
|
||||
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.save()
|
||||
return attrs
|
||||
@ -123,14 +123,14 @@ class AdminCreatePasswordSerializer(serializers.ModelSerializer):
|
||||
|
||||
# matching 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()
|
||||
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'):
|
||||
raise serializers.ValidationError(ERROR_CODE['2063'])
|
||||
raise serializers.ValidationError({'details': ERROR_CODE['2063']})
|
||||
if not user_otp_details.is_verified:
|
||||
raise serializers.ValidationError(ERROR_CODE['2064'])
|
||||
raise serializers.ValidationError({'details': ERROR_CODE['2064']})
|
||||
user_otp_details.delete()
|
||||
return attrs
|
||||
|
@ -4,11 +4,12 @@ web_admin auth views file
|
||||
# django imports
|
||||
from rest_framework.viewsets import GenericViewSet
|
||||
from rest_framework.decorators import action
|
||||
from rest_framework import status
|
||||
from django.contrib.auth import get_user_model
|
||||
|
||||
# local imports
|
||||
from account.utils import custom_response
|
||||
from base.messages import SUCCESS_CODE
|
||||
from account.utils import custom_response, custom_error_response
|
||||
from base.messages import SUCCESS_CODE, ERROR_CODE
|
||||
from web_admin.serializers.auth_serializer import (AdminOTPSerializer, AdminVerifyOTPSerializer,
|
||||
AdminCreatePasswordSerializer)
|
||||
|
||||
@ -29,9 +30,10 @@ class ForgotAndResetPasswordViewSet(GenericViewSet):
|
||||
:return: success message
|
||||
"""
|
||||
serializer = self.serializer_class(data=request.data)
|
||||
serializer.is_valid(raise_exception=True)
|
||||
serializer.save()
|
||||
return custom_response(SUCCESS_CODE['3015'])
|
||||
if serializer.is_valid():
|
||||
serializer.save()
|
||||
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',
|
||||
detail=False, serializer_class=AdminVerifyOTPSerializer)
|
||||
@ -41,8 +43,9 @@ class ForgotAndResetPasswordViewSet(GenericViewSet):
|
||||
:return: success message
|
||||
"""
|
||||
serializer = self.serializer_class(data=request.data)
|
||||
serializer.is_valid(raise_exception=True)
|
||||
return custom_response(SUCCESS_CODE['3011'])
|
||||
if serializer.is_valid():
|
||||
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',
|
||||
detail=False, serializer_class=AdminCreatePasswordSerializer)
|
||||
@ -52,8 +55,9 @@ class ForgotAndResetPasswordViewSet(GenericViewSet):
|
||||
:return: success message
|
||||
"""
|
||||
serializer = self.serializer_class(data=request.data)
|
||||
serializer.is_valid(raise_exception=True)
|
||||
user = USER.objects.filter(email=serializer.validated_data.get('email')).first()
|
||||
user.set_password(serializer.validated_data.get('new_password'))
|
||||
user.save()
|
||||
return custom_response(SUCCESS_CODE['3007'])
|
||||
if serializer.is_valid():
|
||||
user = USER.objects.filter(email=serializer.validated_data.get('email')).first()
|
||||
user.set_password(serializer.validated_data.get('new_password'))
|
||||
user.save()
|
||||
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