mirror of
https://github.com/fawney19/Aether.git
synced 2026-09-02 01:10:23 +08:00
fix: 统一 OAuth 重复账号检查逻辑,活跃账号一律拒绝覆盖
移除 Kiro 活跃重复账号的特殊放行,所有 Provider 类型行为一致: 失效账号允许覆盖,活跃重复账号拒绝并提示已存在。
This commit is contained in:
@@ -431,7 +431,7 @@ def _check_duplicate_oauth_account(
|
|||||||
is_duplicate = True
|
is_duplicate = True
|
||||||
|
|
||||||
if is_duplicate:
|
if is_duplicate:
|
||||||
# 如果已有账号已失效(is_active=False),允许覆盖
|
# 失效账号允许覆盖
|
||||||
if not existing_key.is_active:
|
if not existing_key.is_active:
|
||||||
logger.info(
|
logger.info(
|
||||||
"重复 OAuth 账号已失效,将覆盖更新(key_id={}, name={})",
|
"重复 OAuth 账号已失效,将覆盖更新(key_id={}, name={})",
|
||||||
@@ -440,26 +440,12 @@ def _check_duplicate_oauth_account(
|
|||||||
)
|
)
|
||||||
return existing_key
|
return existing_key
|
||||||
|
|
||||||
# Kiro 类型:活跃的重复账号也允许覆盖(用户可能重新导入同一账号)
|
# 活跃的重复账号,拒绝添加
|
||||||
is_kiro = new_provider_type == "kiro" or existing_provider_type == "kiro"
|
identifier = new_email or new_user_id or ""
|
||||||
if is_kiro:
|
raise InvalidRequestException(
|
||||||
logger.info(
|
f"该 OAuth 账号 ({identifier}) 已存在于当前 Provider 中"
|
||||||
"Kiro 重复账号将覆盖更新(key_id={}, name={})",
|
f"(名称: {existing_key.name})"
|
||||||
existing_key.id,
|
)
|
||||||
existing_key.name,
|
|
||||||
)
|
|
||||||
return existing_key
|
|
||||||
|
|
||||||
# 非 Kiro 的活跃重复账号,拒绝添加
|
|
||||||
if new_email:
|
|
||||||
raise InvalidRequestException(
|
|
||||||
f"该 OAuth 账号 ({new_email}) 已存在于当前 Provider 中"
|
|
||||||
f"(名称: {existing_key.name})"
|
|
||||||
)
|
|
||||||
else:
|
|
||||||
raise InvalidRequestException(
|
|
||||||
f"该 OAuth 账号已存在于当前 Provider 中(名称: {existing_key.name})"
|
|
||||||
)
|
|
||||||
except InvalidRequestException:
|
except InvalidRequestException:
|
||||||
raise
|
raise
|
||||||
except Exception:
|
except Exception:
|
||||||
|
|||||||
Reference in New Issue
Block a user