add new user mark in validate

pull/21891/head
ytqh 1 year ago
parent 9eaa112620
commit 8edf88d071

@ -4,13 +4,13 @@ import flask_login # type: ignore
from configs import dify_config from configs import dify_config
from constants.languages import languages from constants.languages import languages
from controllers.service_api_with_auth import api from controllers.service_api_with_auth import api
from controllers.service_api_with_auth.auth.error import EmailCodeError, InvalidEmailError, InvalidTokenError from controllers.service_api_with_auth.auth.error import (EmailCodeError,
from controllers.service_api_with_auth.error import ( InvalidEmailError,
AccountInFreezeError, InvalidTokenError)
AccountNotFound, from controllers.service_api_with_auth.error import (AccountInFreezeError,
EmailSendIpLimitError, AccountNotFound,
TenantNotFoundError, EmailSendIpLimitError,
) TenantNotFoundError)
from flask import request from flask import request
from flask_restful import Resource, reqparse # type: ignore from flask_restful import Resource, reqparse # type: ignore
from libs.helper import email, extract_remote_ip from libs.helper import email, extract_remote_ip
@ -197,16 +197,23 @@ class EmailCodeLoginApi(Resource):
name=user_email, name=user_email,
interface_language=languages[0], interface_language=languages[0],
) )
is_new_user = True
except AccountRegisterError as are: except AccountRegisterError as are:
raise AccountInFreezeError() raise AccountInFreezeError()
else: else:
is_new_user = False
connected_tenant = TenantService.get_join_tenants(account) connected_tenant = TenantService.get_join_tenants(account)
if connected_tenant is None or tenant not in connected_tenant: if connected_tenant is None or tenant not in connected_tenant:
TenantService.create_tenant_member(tenant, account, role="end_user") TenantService.create_tenant_member(tenant, account, role="end_user")
token_pair = AccountService.login(account, ip_address=extract_remote_ip(request)) token_pair = AccountService.login(account, ip_address=extract_remote_ip(request))
AccountService.reset_login_error_rate_limit(args["email"]) AccountService.reset_login_error_rate_limit(args["email"])
return {"result": "success", "data": token_pair.model_dump()}
# Add is_new_user field to response data
response_data = token_pair.model_dump()
response_data["is_new_user"] = is_new_user
return {"result": "success", "data": response_data}
class RefreshTokenApi(Resource): class RefreshTokenApi(Resource):

Loading…
Cancel
Save