瀏覽代碼

Feat/optimize login (#9642)

tags/0.10.1
Joe 1 年之前
父節點
當前提交
22bdfb7e56
No account linked to committer's email address
共有 2 個文件被更改,包括 9 次插入11 次删除
  1. 3
    5
      api/controllers/console/auth/oauth.py
  2. 6
    6
      api/services/account_service.py

+ 3
- 5
api/controllers/console/auth/oauth.py 查看文件

@@ -94,17 +94,15 @@ class OAuthCallback(Resource):
account = _generate_account(provider, user_info)
except AccountNotFoundError:
return redirect(f"{dify_config.CONSOLE_WEB_URL}/signin?message=Account not found.")
except WorkSpaceNotFoundError:
return redirect(f"{dify_config.CONSOLE_WEB_URL}/signin?message=Workspace not found.")
except WorkSpaceNotAllowedCreateError:
except (WorkSpaceNotFoundError, WorkSpaceNotAllowedCreateError):
return redirect(
f"{dify_config.CONSOLE_WEB_URL}/signin"
"?message=Workspace not found, please contact system admin to invite you to join in a workspace."
)

# Check account status
if account.status in {AccountStatus.BANNED.value, AccountStatus.CLOSED.value}:
return {"error": "Account is banned or closed."}, 403
if account.status == AccountStatus.BANNED.value:
return redirect(f"{dify_config.CONSOLE_WEB_URL}/signin?message=Account is banned.")

if account.status == AccountStatus.PENDING.value:
account.status = AccountStatus.ACTIVE.value

+ 6
- 6
api/services/account_service.py 查看文件

@@ -98,8 +98,8 @@ class AccountService:
if not account:
return None

if account.status in {AccountStatus.BANNED.value, AccountStatus.CLOSED.value}:
raise Unauthorized("Account is banned or closed.")
if account.status == AccountStatus.BANNED.value:
raise Unauthorized("Account is banned.")

current_tenant = TenantAccountJoin.query.filter_by(account_id=account.id, current=True).first()
if current_tenant:
@@ -143,8 +143,8 @@ class AccountService:
if not account:
raise AccountNotFoundError()

if account.status in {AccountStatus.BANNED.value, AccountStatus.CLOSED.value}:
raise AccountLoginError("Account is banned or closed.")
if account.status == AccountStatus.BANNED.value:
raise AccountLoginError("Account is banned.")

if password and invite_token and account.password is None:
# if invite_token is valid, set password and password_salt
@@ -408,8 +408,8 @@ class AccountService:
if not account:
return None

if account.status in {AccountStatus.BANNED.value, AccountStatus.CLOSED.value}:
raise Unauthorized("Account is banned or closed.")
if account.status == AccountStatus.BANNED.value:
raise Unauthorized("Account is banned.")

return account


Loading…
取消
儲存