教程 · 第一部分 用 Core 做出一个应用

角色与权限

这一步对照设计文档第 6 节的权限矩阵,换账号逐项检查,发现问题再让 Agent 改。

1. 换账号检查

用 Alice(员工)、Ben(IT 支持)、Cathy(资产管理员)分别登录,对照这张表:

检查期望实际
Alice 的「领用申请」只有自己的申请能看到所有人的申请
Alice 的「设备台账」只有自己名下的设备能看到全部设备
Ben 打开待审批的申请没有「批准」「驳回」有「批准」,点了提示没有权限
Cathy 打开待发放的申请没有「发放」有「发放」,点了提示没有权限
系统管理员打开「权限管理」里的员工角色能看到每个业务操作和数据范围只有页面访问
IT 支持看到「批准」,点击后被拒绝
IT 支持看到「批准」,点击后被拒绝

Ben 点「批准」被拒绝,说明服务端的权限检查是对的。

2. 提修改意见

提示词
按 docs/design.md 的权限矩阵修正权限:
1. 员工只能看到、撤回自己的申请,台账里只看到自己名下的设备。
2. 申请详情只显示当前角色能做的操作。
3. 在「权限管理」里能配置设备、领用申请的每个操作和数据范围。

Agent 的改法:

问题改法
员工能看到全部新增一个种子数据,把员工角色的查看、撤回改为“我提交的申请”,设备改为“分配给我的设备”;只在角色还是初始内容时才改
按钮没跟着角色申请详情接口返回当前角色能做哪些操作,页面只显示流程允许、角色也允许的按钮
权限管理里看不到业务操作在权限编辑器里登记两组业务操作和流程管理的设置项
接口越权新增权限测试,用三个普通账号直接调用接口,覆盖上面的验收项

种子数据由 Agent 运行 pnpm nocobase db apply 写入正在使用的数据库。

3. 再检查一遍

Alice 只看到自己的三个申请和名下的两台设备;Ben 打开待审批的申请,只显示“这个申请现在没有需要你处理的操作”。Alice 绕过页面直接发审批请求,仍然被拒绝。

员工只看到自己的申请
员工只看到自己的申请

系统管理员在「系统设置 › 权限管理」里编辑员工角色,「业务操作」里列出每个操作和它的数据范围,之后可以直接在这里调整。

角色的业务操作和数据范围
角色的业务操作和数据范围

权限怎样声明、检查和验证,见 认证与权限;权限管理页面见 权限。

完成的标志三个账号登录后看到和能做的与权限矩阵一致;权限测试里,普通账号直接调用越权接口全部被拒绝;权限管理里能看到并调整每个业务操作和数据范围。

NocoBase 文档助手

关于 NocoBase,你想了解什么?

每次提问独立回答,不会参考之前的问答。请提供完整背景。