From 41761f22e82c2ba9a205450aaa62340f30229cef Mon Sep 17 00:00:00 2001 From: jain Date: Tue, 11 Jul 2023 11:52:07 +0530 Subject: [PATCH] sonar issue --- account/admin.py | 9 ++++++++- account/serializers.py | 21 ++++----------------- account/utils.py | 21 +++++++++++++++++++++ account/views.py | 2 -- guardian/serializers.py | 4 ---- junior/serializers.py | 5 ----- 6 files changed, 33 insertions(+), 29 deletions(-) diff --git a/account/admin.py b/account/admin.py index 2614bdb..e1decdd 100644 --- a/account/admin.py +++ b/account/admin.py @@ -2,9 +2,16 @@ from django.contrib import admin """Import django app""" -from .models import UserEmailOtp, UserPhoneOtp, DefaultTaskImages, UserNotification +from .models import UserEmailOtp, UserPhoneOtp, DefaultTaskImages, UserNotification, UserDelete # Register your models here. +@admin.register(UserDelete) +class UserDeleteAdmin(admin.ModelAdmin): + """User profile admin""" + list_display = ['user', 'old_email', 'd_email'] + + def __str__(self): + return self.user @admin.register(UserNotification) class UserNotificationAdmin(admin.ModelAdmin): """User profile admin""" diff --git a/account/serializers.py b/account/serializers.py index 47472c0..21a8d41 100644 --- a/account/serializers.py +++ b/account/serializers.py @@ -10,7 +10,7 @@ from junior.models import Junior from account.models import UserEmailOtp, DefaultTaskImages, UserDelete, UserNotification, UserPhoneOtp from base.constants import GUARDIAN, JUNIOR, SUPERUSER from base.messages import ERROR_CODE_REQUIRED, ERROR_CODE, SUCCESS_CODE, STATUS_CODE_ERROR - +from .utils import junior_account_update, guardian_account_update class GoogleLoginSerializer(serializers.Serializer): """google login serializer""" @@ -236,25 +236,11 @@ class UserDeleteSerializer(serializers.ModelSerializer): if user_tb and user_tb.check_password(passwd): user_type_data = UserEmailOtp.objects.filter(email=user.email).last() if user_type == '1' and user_type_data.user_type == '1': - junior_data = Junior.objects.filter(auth__email=user_tb.email).first() - if junior_data: - junior_data.is_active = False - junior_data.is_verified = False - junior_data.guardian_code = '{}' - junior_data.save() + junior_account_update(user_tb) elif user_type == '2' and user_type_data.user_type == '2': - guardian_data = Guardian.objects.filter(user__email=user_tb.email).first() - if guardian_data: - guardian_data.is_active = False - guardian_data.is_verified = False - guardian_data.save() - jun_data = Junior.objects.filter(guardian_code__icontains=str(guardian_data.guardian_code)) - for data in jun_data: - data.guardian_code.remove(guardian_data.guardian_code) - data.save() + guardian_account_update(user_tb) else: raise serializers.ValidationError({"details":ERROR_CODE['2030'],"code":"400", "status":"failed"}) - user_tb.email = str(random_num) + str('@D_') + '{}'.format(user_tb.username).lower() user_tb.username = str(random_num) + str('@D_') + '{}'.format(user_tb.username).lower() user_tb.password = 'None' @@ -295,5 +281,6 @@ class UpdateUserNotificationSerializer(serializers.ModelSerializer): class UserPhoneOtpSerializer(serializers.ModelSerializer): """User Phone serializers""" class Meta(object): + """Meta info""" model = UserPhoneOtp fields = '__all__' diff --git a/account/utils.py b/account/utils.py index 4412e62..af9f86b 100644 --- a/account/utils.py +++ b/account/utils.py @@ -10,7 +10,28 @@ from datetime import datetime from calendar import timegm from uuid import uuid4 import secrets +from junior.models import Junior +from guardian.models import Guardian +def junior_account_update(user_tb): + """junior account delete""" + junior_data = Junior.objects.filter(auth__email=user_tb.email).first() + if junior_data: + junior_data.is_active = False + junior_data.is_verified = False + junior_data.guardian_code = '{}' + junior_data.save() +def guardian_account_update(user_tb): + """update guardian account after delete the user account""" + guardian_data = Guardian.objects.filter(user__email=user_tb.email).first() + if guardian_data: + guardian_data.is_active = False + guardian_data.is_verified = False + guardian_data.save() + jun_data = Junior.objects.filter(guardian_code__icontains=str(guardian_data.guardian_code)) + for data in jun_data: + data.guardian_code.remove(guardian_data.guardian_code) + data.save() def send_otp_email(recipient_email, otp): """Send otp on email with template""" from_email = settings.EMAIL_FROM_ADDRESS diff --git a/account/views.py b/account/views.py index ded9a74..b5c0d26 100644 --- a/account/views.py +++ b/account/views.py @@ -109,8 +109,6 @@ class SigninWithApple(views.APIView): def post(self, request): token = request.data.get("access_token") user_type = request.data.get("user_type") - if not token: - return custom_error_response(ERROR_CODE['2027'], response_status=status.HTTP_400_BAD_REQUEST) try: decoded_data = jwt.decode(token, options={"verify_signature": False}) user_data = {"email": decoded_data.get('email'), "username": decoded_data.get('email'), "is_active": True} diff --git a/guardian/serializers.py b/guardian/serializers.py index dd79ed7..2c1c3dc 100644 --- a/guardian/serializers.py +++ b/guardian/serializers.py @@ -95,12 +95,8 @@ class CreateGuardianSerializer(serializers.ModelSerializer): """Save first and last name of guardian""" if self.context.get('first_name') != '' and self.context.get('first_name') is not None: user.first_name = self.context.get('first_name') - else: - user.first_name = user.first_name if self.context.get('last_name') != '' and self.context.get('last_name') is not None: user.last_name = self.context.get('last_name') - else: - user.last_name = user.last_name user.save() """Create guardian data""" guardian, created = Guardian.objects.get_or_create(user=self.context['user']) diff --git a/junior/serializers.py b/junior/serializers.py index 28bbdc4..df7a40a 100644 --- a/junior/serializers.py +++ b/junior/serializers.py @@ -59,19 +59,14 @@ class CreateJuniorSerializer(serializers.ModelSerializer): def create(self, validated_data): """Create junior profile""" - image = validated_data.get('image', None) guardian_code = validated_data.get('guardian_code',None) user = User.objects.filter(username=self.context['user']).last() if user: """Save first and last name of junior""" if self.context.get('first_name') != '' and self.context.get('first_name') is not None: user.first_name = self.context.get('first_name') - else: - user.first_name = user.first_name if self.context.get('last_name') != '' and self.context.get('last_name') is not None: user.last_name = self.context.get('last_name') - else: - user.last_name = user.last_name user.save() """Create junior data""" junior, created = Junior.objects.get_or_create(auth=self.context['user'])