From de28bb1075f7934433eb3d75781021905581fa38 Mon Sep 17 00:00:00 2001 From: zyssyz123 <916125788@qq.com> Date: Mon, 28 Jul 2025 16:32:25 +0800 Subject: [PATCH] fix: changed email login use oauth will create an new account (#23057) --- api/controllers/console/workspace/account.py | 2 +- api/services/account_service.py | 11 +++++++++++ 2 files changed, 12 insertions(+), 1 deletion(-) diff --git a/api/controllers/console/workspace/account.py b/api/controllers/console/workspace/account.py index 45513c368d..3670bac139 100644 --- a/api/controllers/console/workspace/account.py +++ b/api/controllers/console/workspace/account.py @@ -496,7 +496,7 @@ class ChangeEmailResetApi(Resource): if current_user.email != old_email: raise AccountNotFound() - updated_account = AccountService.update_account(current_user, email=args["new_email"]) + updated_account = AccountService.update_account_email(current_user, email=args["new_email"]) AccountService.send_change_email_completed_notify_email( email=args["new_email"], diff --git a/api/services/account_service.py b/api/services/account_service.py index 34b3ce0543..1cce8e67a4 100644 --- a/api/services/account_service.py +++ b/api/services/account_service.py @@ -355,6 +355,17 @@ class AccountService: db.session.commit() return account + @staticmethod + def update_account_email(account: Account, email: str) -> Account: + """Update account email""" + account.email = email + account_integrate = db.session.query(AccountIntegrate).filter_by(account_id=account.id).first() + if account_integrate: + db.session.delete(account_integrate) + db.session.add(account) + db.session.commit() + return account + @staticmethod def update_login_info(account: Account, *, ip_address: str) -> None: """Update last login time and ip"""