QTom
|
1dad810d15
|
refactor: 统一权限检查逻辑,使用 apiKeyService.hasPermission
将散布在各处的权限检查逻辑(permissions || 'all')统一为
apiKeyService.hasPermission() 方法调用,确保:
- 权限检查的唯一真实来源
- 避免默认值不一致导致的安全问题
- 便于后续权限模型的扩展和维护
影响文件:
- geminiHandlers.js: key-info 端点
- apiStats.js: user-stats 统计端点
- openaiClaudeRoutes.js: 权限校验辅助函数
- openaiRoutes.js: key-info 端点
|
2026-01-09 14:36:31 +08:00 |
|
Wesley Liddick
|
3f98267738
|
Merge branch 'main' into antigravity
|
2025-12-26 00:56:27 -05:00 |
|
52227
|
9960f237b8
|
feat: 实现 Antigravity OAuth 账户支持与路径分流
|
2025-12-25 14:33:24 +08:00 |
|
Guccbai
|
33ea26f2ac
|
feat(permissions): 服务权限从单选改为多选
- 将 API Key 的服务权限从单选改为多选,支持同时选择多个服务
- 移除"全部服务"选项,空数组表示允许访问全部服务
- 后端自动兼容旧格式('all' -> [], 'claude' -> ['claude'])
- 前端 radio 改为 checkbox,更新账户选择器联动逻辑
修改文件:
- apiKeyService.js: 添加 normalizePermissions/hasPermission 函数
- api.js, droidRoutes.js, openaiRoutes.js, unified.js, openaiGeminiRoutes.js, geminiHandlers.js: 使用新权限验证函数
- admin/apiKeys.js: 支持数组格式权限验证
- CreateApiKeyModal.vue, EditApiKeyModal.vue: UI 改为 checkbox 多选
🤖 Generated with [Claude Code](https://claude.com/claude-code)
Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>
|
2025-12-17 11:35:11 +08:00 |
|
shaw
|
b61e1062bf
|
fix: 修复create_proxyagent调用方式
|
2025-12-05 08:37:43 +08:00 |
|
shaw
|
dfee7be944
|
fix: 调整gemini-api BaseApi后缀以适配更多端点
|
2025-11-29 21:30:28 +08:00 |
|
shaw
|
63a7c2514b
|
fix: 修复gemini-api账户共享池无法调度问题
|
2025-11-29 10:02:51 +08:00 |
|
shaw
|
4a0ba6ed63
|
fix: 修复gemini api账户转发的传参问题
|
2025-11-28 16:20:26 +08:00 |
|
曾庆雷
|
b619208970
|
修复:移除请求参数 projectId 降级,改为实时获取
根本原因:请求参数中的 projectId 是客户端缓存的,属于之前账户,
导致账户切换后使用错误的 projectId,返回 403 权限错误。
修改内容:
1. 移除对 request.project 的降级依赖
2. 当账户无 projectId 和 tempProjectId 时,实时调用 loadCodeAssist
3. 获取后缓存到 tempProjectId 供后续请求使用
4. 如果仍无法获取,返回 403 配置错误
影响端点:
- /v1internal:generateContent
- /v1internal:streamGenerateContent
|
2025-11-25 19:32:38 +08:00 |
|
曾庆雷
|
e0500f0530
|
修复:Gemini OAuth 账户 projectId 降级逻辑缺失
修复 3 个端点未使用 tempProjectId 的问题:
- /messages
- /v1internal:generateContent
- /v1internal:streamGenerateContent
优先级链:projectId -> tempProjectId -> 请求参数 -> null
|
2025-11-25 19:06:55 +08:00 |
|
shaw
|
a4dcfb842e
|
refactor: 重构gemini转部分
|
2025-11-25 10:30:39 +08:00 |
|