diff --git a/api/controllers/console/auth/forgot_password.py b/api/controllers/console/auth/forgot_password.py index 04999b60eb..005f38b8e5 100644 --- a/api/controllers/console/auth/forgot_password.py +++ b/api/controllers/console/auth/forgot_password.py @@ -31,19 +31,20 @@ class ForgotPasswordSendEmailApi(Resource): parser.add_argument("language", type=str, required=False, location="json") args = parser.parse_args() + if args["language"] is not None and args["language"] == "zh-Hans": + language = "zh-Hans" + else: + language = "en-US" + account = Account.query.filter_by(email=args["email"]).first() token = None if account is None: if dify_config.ALLOW_REGISTER: - token = AccountService.send_reset_password_email( - email=args["email"], language=args["language"] or "en-US" - ) + token = AccountService.send_reset_password_email(email=args["email"], language=language) else: raise NotAllowedRegister() else: - token = AccountService.send_reset_password_email( - account=account, email=args["email"], language=args["language"] or "en-US" - ) + token = AccountService.send_reset_password_email(account=account, email=args["email"], language=language) return {"result": "success", "data": token} diff --git a/api/controllers/console/auth/login.py b/api/controllers/console/auth/login.py index a419561d42..601449af2e 100644 --- a/api/controllers/console/auth/login.py +++ b/api/controllers/console/auth/login.py @@ -84,16 +84,19 @@ class ResetPasswordSendEmailApi(Resource): parser.add_argument("language", type=str, required=False, location="json") args = parser.parse_args() + if args["language"] is not None and args["language"] == "zh-Hans": + language = "zh-Hans" + else: + language = "en-US" + account = AccountService.get_user_through_email(args["email"]) if account is None: if dify_config.ALLOW_REGISTER: - token = AccountService.send_reset_password_email( - email=args["email"], language=args["language"] or "en-US" - ) + token = AccountService.send_reset_password_email(email=args["email"], language=language) else: raise NotAllowedRegister() else: - token = AccountService.send_reset_password_email(account=account, language=args["language"]) + token = AccountService.send_reset_password_email(account=account, language=language) return {"result": "success", "data": token} @@ -106,16 +109,19 @@ class EmailCodeLoginSendEmailApi(Resource): parser.add_argument("language", type=str, required=False, location="json") args = parser.parse_args() + if args["language"] is not None and args["language"] == "zh-Hans": + language = "zh-Hans" + else: + language = "en-US" + account = AccountService.get_user_through_email(args["email"]) if account is None: if dify_config.ALLOW_REGISTER: - token = AccountService.send_email_code_login_email( - email=args["email"], language=args["language"] or "en-US" - ) + token = AccountService.send_email_code_login_email(email=args["email"], language=language) else: raise NotAllowedRegister() else: - token = AccountService.send_email_code_login_email(account=account, language=args["language"]) + token = AccountService.send_email_code_login_email(account=account, language=language) return {"result": "success", "data": token} diff --git a/api/services/account_service.py b/api/services/account_service.py index 65d9959818..59aded2292 100644 --- a/api/services/account_service.py +++ b/api/services/account_service.py @@ -258,7 +258,6 @@ class AccountService: cls, account: Optional[Account] = None, email: Optional[str] = None, language: Optional[str] = "en-US" ): account_email = account.email if account else email - account_language = account.interface_language if account else language if cls.reset_password_rate_limiter.is_rate_limited(account_email): from controllers.console.auth.error import PasswordResetRateLimitExceededError @@ -270,7 +269,7 @@ class AccountService: account=account, email=email, token_type="reset_password", additional_data={"code": code} ) send_reset_password_mail_task.delay( - language=account_language, + language=language, to=account_email, code=code, ) @@ -299,7 +298,7 @@ class AccountService: account=account, email=email, token_type="email_code_login", additional_data={"code": code} ) send_email_code_login_mail_task.delay( - language=account.interface_language if account else language, + language=language, to=account.email if account else email, code=code, )