feat:update 3 4
This commit is contained in:
@@ -0,0 +1,104 @@
|
||||
# 模块 2:权限控制方案生成
|
||||
|
||||
<div class="mt-6 text-sm">
|
||||
|
||||
权限不是按钮隐藏。工单模块必须同时覆盖菜单权限、按钮权限、接口权限和数据权限。
|
||||
|
||||
</div>
|
||||
|
||||
<div class="grid grid-cols-4 gap-4 mt-8 text-sm">
|
||||
<div class="p-4 rounded-xl bg-blue-500/10 border border-blue-500/30 text-center">
|
||||
<div class="font-bold">菜单</div>
|
||||
能否进入页面
|
||||
</div>
|
||||
<div class="p-4 rounded-xl bg-emerald-500/10 border border-emerald-500/30 text-center">
|
||||
<div class="font-bold">按钮</div>
|
||||
能否看到操作
|
||||
</div>
|
||||
<div class="p-4 rounded-xl bg-amber-500/10 border border-amber-500/30 text-center">
|
||||
<div class="font-bold">接口</div>
|
||||
能否直接调用
|
||||
</div>
|
||||
<div class="p-4 rounded-xl bg-purple-500/10 border border-purple-500/30 text-center">
|
||||
<div class="font-bold">数据</div>
|
||||
能看到哪些工单
|
||||
</div>
|
||||
</div>
|
||||
|
||||
<!--
|
||||
前端按钮不是安全边界。
|
||||
如果只隐藏删除按钮,但后端删除接口没有权限校验,就是典型漏洞。
|
||||
第四天要把权限闭环做完整。
|
||||
-->
|
||||
|
||||
---
|
||||
|
||||
# 工单权限字符建议
|
||||
|
||||
<div class="mt-5 text-sm">
|
||||
|
||||
```md
|
||||
work:order:list
|
||||
work:order:query
|
||||
work:order:add
|
||||
work:order:edit
|
||||
work:order:delete
|
||||
work:order:assign
|
||||
work:order:transition
|
||||
work:order:audit
|
||||
work:order:dashboard
|
||||
```
|
||||
|
||||
</div>
|
||||
|
||||
<div class="mt-5 p-3 rounded-xl bg-amber-500/10 border border-amber-500/30 text-sm">
|
||||
权限字符必须统一命名,否则前端、后端、菜单配置和 Review 清单会对不上。
|
||||
</div>
|
||||
|
||||
<!--
|
||||
权限字符是工程资产。
|
||||
同一个动作不要一会叫 delete,一会叫 remove,一会叫 ticket:delete。
|
||||
统一命名后,AI 和人才能沿着权限字符追踪前后端实现。
|
||||
-->
|
||||
|
||||
---
|
||||
|
||||
# 权限控制方案表
|
||||
|
||||
<div class="mt-5 text-xs">
|
||||
|
||||
| 操作 | 前端入口 | 权限字符 | 后端接口 | 数据权限 | 验收 |
|
||||
|---|---|---|---|---|---|
|
||||
| 新增工单 | 新增按钮 | work:order:add | /workOrder/add | 无 | 无权限账号返回 403 |
|
||||
| 删除工单 | 删除按钮 | work:order:delete | /workOrder/delete | 管理员范围 | 非管理员返回 403 |
|
||||
| 指派工单 | 指派按钮 | work:order:assign | /workOrder/assign | 团队范围 | 研发账号不可指派 |
|
||||
| 状态流转 | 状态按钮 | work:order:transition | /workOrder/transition | 工单可见范围 | 非法角色不能流转 |
|
||||
| 查看看板 | 看板菜单 | work:order:dashboard | /workOrder/dashboard/* | 管理范围 | 只读用户不可访问 |
|
||||
|
||||
</div>
|
||||
|
||||
<!--
|
||||
权限方案必须写清前端入口、权限字符、后端接口、数据权限和验收方式。
|
||||
这样后续 Review 才有依据。
|
||||
-->
|
||||
|
||||
---
|
||||
|
||||
# 权限落地检查
|
||||
|
||||
<div class="mt-5 text-sm">
|
||||
|
||||
| 检查项 | 通过标准 |
|
||||
|---|---|
|
||||
| 菜单权限 | 菜单配置有对应权限字符 |
|
||||
| 按钮权限 | 无权限用户看不到敏感按钮 |
|
||||
| 接口权限 | 直接请求敏感接口被拒绝 |
|
||||
| 数据权限 | 不同角色只看到授权范围 |
|
||||
| 验收记录 | 有账号、操作、结果和证据 |
|
||||
|
||||
</div>
|
||||
|
||||
<!--
|
||||
课堂实操时,不要求只看代码。
|
||||
要用不同账号或模拟请求验证:前端不可见只是第一步,后端拒绝才是强制边界。
|
||||
-->
|
||||
Reference in New Issue
Block a user