From 7ba12caf0b6fe78e3a105d7ce871f5e0433c6eec Mon Sep 17 00:00:00 2001 From: "CHIEFSOFT\\ameye" Date: Wed, 24 Sep 2025 06:49:17 -0400 Subject: [PATCH] blocked duplicate emsil --- .env | 1 + .env.live | 1 + .env.local.example | 1 + app/api/routes/routes.py | 2 +- app/api/services/register.py | 15 +++++++++++++-- app/config.py | 2 ++ app/models/members.py | 7 +++++++ 7 files changed, 26 insertions(+), 3 deletions(-) diff --git a/.env b/.env index 83a17c2..41fdbe9 100644 --- a/.env +++ b/.env @@ -20,6 +20,7 @@ DATABASE_HOST=10.20.30.60 DATABASE_PORT=5432 DATABASE_NAME=merms_panel +ALLOWED_SIGNUP_EMAIL_RESUSE=0 KAFKA_BROKER = '10.10.10.120:9092' SIMBRELLA_BASE_URL00="http://10.10.11.17:6337" diff --git a/.env.live b/.env.live index ca23952..cc1de5e 100644 --- a/.env.live +++ b/.env.live @@ -20,6 +20,7 @@ DATABASE_HOST=10.13.3.60 DATABASE_PORT=5432 DATABASE_NAME=merms_panel +ALLOWED_SIGNUP_EMAIL_RESUSE=0 KAFKA_BROKER = '10.10.10.120:9092' SIMBRELLA_BASE_URL00="http://10.10.11.17:6337" diff --git a/.env.local.example b/.env.local.example index 5a9f764..c42556c 100644 --- a/.env.local.example +++ b/.env.local.example @@ -31,6 +31,7 @@ SIMBRELLA_BASE_URL="https://bank-emulator.dev.simbrellang.net" VALID_APP_ID=app1 VALID_API_KEY=test-api-key-12345 +ALLOWED_SIGNUP_EMAIL_RESUSE=0 START_URL_PATTERN =".devprov.mermsemr.com" # Event Bus Broker Configuration diff --git a/app/api/routes/routes.py b/app/api/routes/routes.py index af1628f..1b73e8e 100644 --- a/app/api/routes/routes.py +++ b/app/api/routes/routes.py @@ -86,7 +86,7 @@ def merms_login(): @jwt_required() def merms_register(): data = request.get_json() - response = RegisterService.process_request(data) + response = RegisterService.start_account_register(data) return response diff --git a/app/api/services/register.py b/app/api/services/register.py index c30614b..115413b 100644 --- a/app/api/services/register.py +++ b/app/api/services/register.py @@ -31,6 +31,7 @@ class RegisterService(BaseService): SEND_EMAIL_FROM = Config.SEND_EMAIL_FROM SEND_EMAIL_PASS = Config.SEND_EMAIL_PASS THIS_SITE_URL = Config.THIS_SITE_URL + ALLOWED_SIGNUP_EMAIL_RESUSE = Config.ALLOWED_SIGNUP_EMAIL_RESUSE @staticmethod def encrypt_password(self, password): @@ -156,7 +157,7 @@ class RegisterService(BaseService): @staticmethod - def process_request(data): + def start_account_register(data): try: with db.session.begin(): @@ -164,7 +165,17 @@ class RegisterService(BaseService): # Simulate processing firstname = validated_data.get('firstname') lastname = validated_data.get('lastname') - email = validated_data.get('email') + email = str(validated_data.get('email')).lower() + + if RegisterService.ALLOWED_SIGNUP_EMAIL_RESUSE== '0': + logger.info(f"RegisterService.ALLOWED_SIGNUP_EMAIL_RESUSE=0") + if Members.get_member_by_email(email) != None: + return { + "message": "Please use another email", + "error_message": "Please use another email or reset password", + "data": None, + "error": f"Please use another email." + }, 400 regData = MembersPending.add_members_pending( firstname, lastname, email) BaseService.send_verify_signup_mail(regData.email, regData.uid, regData.id, firstname, lastname) diff --git a/app/config.py b/app/config.py index 55bd79c..f6aff51 100644 --- a/app/config.py +++ b/app/config.py @@ -39,6 +39,8 @@ class Config: "JWT_REFRESH_TOKEN_EXPIRES", timedelta(days=30) ) + ALLOWED_SIGNUP_EMAIL_RESUSE = os.getenv("ALLOWED_SIGNUP_EMAIL_RESUSE", '0') + # KAFKA_BROKER = 'dev-events.simbrellang.net:9085' KAFKA_BROKER = os.getenv("KAFKA_BROKER", "10.10.10.120:9092") diff --git a/app/models/members.py b/app/models/members.py index a5f961d..50099ce 100644 --- a/app/models/members.py +++ b/app/models/members.py @@ -52,6 +52,13 @@ class Members(db.Model): def __repr__(self): return f'' + @classmethod + def get_member_by_email(cls, email): + member = cls.query.filter_by(email=str(email)).first() + if not member: + return None + return member + @classmethod def get_member_by_username(cls, username): member = cls.query.filter_by(username=str(username)).first()