Skip to content

0.2.17 - 权限管理功能上线

Choose a tag to compare

@qianfree qianfree released this 05 Sep 02:47
· 758 commits to main since this release
0bc00e9

🚀 v0.2.17 发布说明

本版本核心是管理后台角色权限体系:角色成为权限管理的第一公民,配套预置的「管理员 / 运营 / 技术支持」三角色,告别全团队共用超管账号。同时完成一轮三端权限审计(管理后台 / 租户控制台 / 开放平台),修复一组越权与提权漏洞;并修复流式长请求下钱包结算失败的计费问题。

✨ 新特性

👥 管理后台角色权限管理

  • 🎭 可自定义角色体系:新增「角色」实体(角色定义 / 角色权限点 / 用户角色三张表),一个账号可兼任多个角色,有效权限 = ∪(已启用角色的权限) ∪ 用户特批权限,只做并集不做否定
  • 🌱 三个预置角色(仅初始数据,非系统契约——可改权限、改名、禁用,也可删掉自建一套):
    • 管理员:二把手,能碰钱(退款)与系统配置(支付、汇率、存储、邮件),不能管理账号与角色
    • 运营:渠道 / 模型 / 租户 / 套餐 / 内容的完整权限,不涉及资金与系统设置
    • 技术支持:除财务数据外全站只读,唯一写权限是工单、反馈与帮助中心
  • 👑 超级管理员不入角色表:由账号自身身份唯一判定并在鉴权时短路,即便角色被删光,超管仍可登录并重建角色体系
  • 🎫 用户特批权限:存量「按用户绑权限」语义升级为「角色之外的额外特批」,保留「临时给某人单加一个权限」的口子,不必为一个权限点新建角色
  • 🖥️ 前端配套:权限管理页重构(角色 CRUD + 权限矩阵编辑)、用户管理页支持分配角色、路由级权限守卫 + 403 页面
  • 🧪 新增 RBAC 覆盖率测试:路由 ↔ 权限点映射逐一核对,防止新端点漏配权限

🔔 管理后台顶栏通知铃铛

  • 🛎️ 实时聚合「有多少客户在等回复」:待处理工单(含超时数)+ 待处理反馈(含最长等待时长),处理完自动归零,不需要任何人点「完成」
  • ⏱️ 结果 30s 缓存,铃铛与菜单红点轮询互不压库;与工作台分工——工作台报「哪些事异常了」,铃铛报「有多少人在等」

⚙️ 渠道代理改为系统配置

  • 🌐 渠道出站代理(relay proxy)从配置文件迁至管理后台「系统设置 → 渠道」,调整代理不再需要改配置文件重启

📚 其他

  • 📖 管理后台顶栏新增文档网站入口
  • 🔢 注册页新增限流状态查询接口

🔒 安全修复(三端权限审计)

管理后台

  • 🚨 自我提权:持有账号编辑权限的用户可给自己「特批」任意权限点(含退款、插件管理等),绕开角色管控——特批权限现在与角色授予走同一道闸门:不能授予自己不具备的权限
  • 🚨 横向提权:非超管可重置权限更高账号的密码(重置完登进去即完成提权),或直接把账号设为超级管理员——现在目标账号的有效权限必须是操作者权限的子集,且只有超管能设置超管账号
  • 🚨 member:manage 档位缺失:成员禁用 / 启用 / 重置密码 / 解锁四个写接口此前挂在只读的 member:view 上,「技术支持」这类只读角色可重置任意租户成员的密码(改密等于接管账号,进而消耗其 Key 额度)——拆出 member:manage 权限点并对存量授权自动回填

租户控制台

  • 🚨 组织内横向提权
  • 🔍 管理视角数据泄露
  • 🔌 组织级插件设置可被成员篡改
  • 📊 模型对比页对普通成员隐藏组织级成本聚合,只统计本人数据

开放平台

  • 🚨 越权篡改所有者
  • 🚨 席位上限绕过
  • 🔑 Key 权限收窄
  • 🔄 经开放平台变更角色 / 停用成员后,同步撤销该成员的活跃会话

🐛 Bug 修复

  • 💸 流式长请求钱包结算失败
  • 🔓 重置密码未解除锁定
  • 💱 货币符号写死美元
  • 🚦 注册限流不生效
  • 🎫 工单回复不显示作者
  • 🔍 帮助中心中文搜索几乎无法命中
  • 🗑️ *内容过滤日志 / 渠道错误事件一键清空

🔧 优化

  • 🧹 设置页配置精简
  • 🧹 随无效配置一并清理死代码
  • 📊 租户端用量日志页新增统计汇总(总费用 / 总输出 token / 缓存读取占比),跟随当前筛选条件实时计算
  • 📊 管理后台用量日志页查询条件优化

⚠️ 升级须知

👤 存量权限迁移建议:升级后旧的按用户授权自动成为「特批权限」,无需任何操作即可继续工作;建议尽快在「系统设置 → 权限管理」创建角色并把用户迁移到角色上,特批权限保留给真正的临时场景
🌐 渠道代理配置迁移:出站代理从 manifest/config 迁至管理后台「系统设置 → 渠道」,依赖配置文件代理的部署需在新位置重新配置