mirror of
https://github.com/fawney19/Aether.git
synced 2026-09-02 09:20:22 +08:00
fix: Hub 连接清理顺序修复、OAuth 类型常量提取、disassociate 逻辑优化
- Hub proxy/worker 连接关闭时先 unregister 再延迟 abort writer,确保缓冲消息排空 - 提取 OAUTH_AUTH_TYPES 常量,替代各处硬编码的 OAuth 类型列表 - auto-disassociate 跳过 OAuth Key,避免其动态 allowed_models 干扰判定 - 删除 Key 时传入 skip_disassociate=True,跳过不必要的解关联检查 - ModelMapper 缓存命中时将 ORM 实例脱离 Session,修复 DetachedInstanceError
This commit is contained in:
@@ -41,6 +41,7 @@ from src.database import create_session
|
||||
from src.database.database import get_db
|
||||
from src.models.database import Provider, ProviderAPIKey, User
|
||||
from src.services.provider.pool.config import parse_pool_config
|
||||
from src.services.provider_keys.auth_type import OAUTH_AUTH_TYPES
|
||||
from src.utils.auth_utils import require_admin
|
||||
|
||||
router = APIRouter(prefix="/api/admin/provider-oauth", tags=["Provider OAuth"])
|
||||
@@ -550,7 +551,7 @@ def _check_duplicate_oauth_account(
|
||||
# 查询该 Provider 下所有 OAuth 类型的 Keys
|
||||
query = db.query(ProviderAPIKey).filter(
|
||||
ProviderAPIKey.provider_id == provider_id,
|
||||
ProviderAPIKey.auth_type.in_(["oauth", "kiro"]), # kiro 也是 OAuth 类型
|
||||
ProviderAPIKey.auth_type.in_(OAUTH_AUTH_TYPES),
|
||||
)
|
||||
if exclude_key_id:
|
||||
query = query.filter(ProviderAPIKey.id != exclude_key_id)
|
||||
|
||||
Reference in New Issue
Block a user