some changes in admin password reset related api

This commit is contained in:
abutalib-kiwi
2023-07-27 19:29:12 +05:30
parent 83c66ab3b6
commit 151a177e76
2 changed files with 25 additions and 21 deletions

View File

@ -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

View File

@ -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)