Skip to content

This page has no English translation yet. The Chinese original is shown below — help us translate it.

用户权限模块 P0 ​

P0 提供单租户、固定三角色的成员与访问控制基线,覆盖成员目录、本地成员账号、 活动会话、服务凭据和操作审计。当前不包含自定义角色、资源级 ACL、团队范围或 跨租户管理。

数据模型 ​

  • 真人成员统一存放在 enterprise_users,管理员、客服操作员和只读用户共用同一目录。
  • 本地登录凭据存放在 local_admin_credentials;is_emergency=true 仅标记应急管理员。
  • staff_accounts 继续表示服务凭据,不作为真人成员使用。
  • 本地会话与 SSO 会话分别存放在 local_admin_sessions、enterprise_sessions。
  • 迁移 0040_access_control 增加登录时间、最近活动时间、停用原因、授权版本、 会话 IP/User-Agent 和成员会话索引。

固定角色 ​

权限码管理员客服操作员只读查看
member.read / member.manage是否否
role.read / role.manage是否否
session.self是是是
session.read / session.revoke是否否
credential.read / credential.manage是否否
conversation.read是是是
conversation.write是是否
handoff.manage / ticket.manage是是否
agent.read是是是
agent.manage / agent.publish是否否
knowledge.read是是是
knowledge.manage / knowledge.publish是否否
model.manage / tool.manage / channel.manage是否否
evaluation.read / observability.read是是是
evaluation.run是否否
audit.read是否否

旧 Admin、Operator、Reader 依赖仍保留用于兼容;新增接口使用 require_permission(...)。GET /api/v1/me 返回当前角色的权限码,前端据此展示入口。

API ​

方法路径权限
GET/api/v1/membersmember.read
GET/api/v1/members/{id}member.read
POST/api/v1/members/invitemember.manage
PATCH/api/v1/members/{id}member.manage
POST/api/v1/members/{id}/enabledmember.manage
POST/api/v1/members/{id}/password/resetmember.manage
GET/api/v1/members/{id}/sessions本人或 member.read
POST/api/v1/members/{id}/sessions/revoke本人或 member.manage
GET/api/v1/sessions当前登录用户
POST/api/v1/sessions/revoke当前登录用户
GET/api/v1/roles / /api/v1/permissionsrole.read

成员列表支持姓名/用户名/身份 Subject/ID 搜索、角色筛选、状态筛选和服务端分页, 默认每页 10 条。

安全约束 ​

  • 新成员使用一次性临时密码,登录后通过现有改密流程设置正式密码。
  • 角色变化或启停状态变化会立即撤销该成员的全部本地和 SSO 工作台会话。
  • 管理员不能修改自己的角色或启停状态。
  • 不能停用或降级最后一个有效管理员。
  • 应急管理员不能停用、降级或绑定企业身份。
  • 重置密码会撤销该成员的本地会话。
  • 会话列表返回 IP、User-Agent、最近活动时间和过期时间;不返回令牌或摘要。
  • 成员、角色、会话和密码操作写入 audit_records,不记录密码或完整令牌。

前端入口 ​

“系统管理”分组提供:

  • 成员管理:邀请本地成员、编辑角色与状态、重置密码、查看并撤销会话。
  • 角色与权限:查看固定角色权限矩阵。
  • 会话与安全:查看并撤销当前账号的活动会话;非管理员也可使用。

验证 ​

  • ruff check backend
  • npm run check:i18n
  • npm run typecheck
  • npm run build
  • PostgreSQL 集成测试:成员邀请、首次改密、权限拒绝、会话撤销、角色变更即时失权、 最后管理员保护、自修改保护和审计记录。
  • Alembic 0040_access_control 升级、回退、再升级验证通过。

后续阶段 ​

  • P1:自定义角色、权限编辑和更细的资源授权。
  • P2:团队/组织范围、成员邀请邮件、SCIM/企业目录同步。
  • P3:资源级 ACL、审批流和跨租户平台管理。

NexusDesk 采用 Apache License 2.0 许可