feat: change email language

This commit is contained in:
Joe 2024-09-26 16:15:23 +08:00
parent 8059706e18
commit 456e7a4abd
3 changed files with 23 additions and 17 deletions

View File

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

View File

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

View File

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