Files
TARE-Learn/slidev/pages/day1/m6-code-report.md
T
2026-06-12 01:27:11 +08:00

141 lines
4.8 KiB
Markdown

# 模块 6:报告主题
<div class="mt-8 text-center">
<div class="p-6 rounded-xl bg-blue-500/10 border border-blue-500/30 inline-block">
**代码理解报告:若依权限与菜单模块**
核心问题:用户登录后,菜单、路由和按钮权限如何生效?
</div>
</div>
<!--
今天最终实战,是生成一份代码理解报告。
报告主题:若依权限与菜单模块。
核心问题:用户登录后,菜单、路由和按钮权限如何生效?
这份报告不是 AI 聊天记录,而是可交接、可复核的工程文档。
-->
---
# 报告结构
<div class="mt-6 text-sm">
报告包含:模块职责 · 核心对象 · 目录与文件结构 · 核心调用链路 · 权限风险 · 操作日志风险 · 改造建议 · 不确定结论
</div>
<!--
报告至少包含八部分:模块职责、核心对象、目录与文件结构、核心调用链路、权限风险、操作日志风险、改造建议、不确定结论。
每个关键结论都要有依据文件或函数。
如果没有依据,就写到不确定点里。
-->
---
# 模块职责写法
<div class="grid grid-cols-2 gap-6 mt-6 text-sm">
<div class="p-3 rounded-xl bg-red-500/10 border border-red-500/30">
**不要写:** 权限模块用于权限控制。
</div>
<div class="p-3 rounded-xl bg-emerald-500/10 border border-emerald-500/30">
**要写:** 权限与菜单模块负责用户登录后加载角色、权限字符和动态路由,并根据角色菜单关系控制页面访问和按钮显示。
</div>
</div>
<!--
模块职责不能写空话。
“权限模块用于权限控制”没有信息量。
合格写法要具体说明:权限与菜单模块负责用户登录后加载角色、权限字符和动态路由,并根据角色菜单关系控制页面访问和按钮显示。
同时要说明前端权限和后端权限的边界。
-->
---
# 核心对象写法
<div class="mt-6 text-sm">
User 用户 · Role 角色 · Menu 菜单 · Permission 权限字符 · Dept 部门 · OperLog 操作日志
用户绑定角色,角色拥有菜单权限,菜单中包含权限字符,部门影响数据权限,操作日志记录敏感操作。
</div>
<!--
若依权限模块的核心对象是用户、角色、菜单、权限字符、部门和操作日志。
用户绑定角色,角色拥有菜单权限,菜单中包含权限字符,部门影响数据权限,操作日志记录敏感操作。
这些对象共同构成权限体系。
-->
---
# 风险点写法
<div class="grid grid-cols-2 gap-6 mt-6 text-sm">
<div class="p-3 rounded-xl bg-red-500/10 border border-red-500/30">
**不要写:** 权限有风险。
</div>
<div class="p-3 rounded-xl bg-emerald-500/10 border border-emerald-500/30">
**要写:**
- 风险:按钮权限只控制前端展示
- 触发条件:后端接口缺少权限校验
- 影响:用户可能绕过前端直接调用接口
- 验证:检查 Controller 是否有权限注解
</div>
</div>
<!--
风险点一定要具体。
“权限有风险”不是合格风险点。
合格风险点要包含风险描述、触发条件、影响范围和验证方式。
比如按钮权限只控制前端展示;触发条件是后端接口缺少权限校验;影响是用户可能绕过前端直接调用接口;验证方式是检查 Controller 是否有权限注解。
-->
---
# 改造建议写法
<div class="mt-6 text-sm">
- **建议:** 确保敏感接口均有后端权限校验
- **原因:** 前端按钮隐藏不能作为安全边界
- **验收:** 无权限用户直接请求接口时返回 403
</div>
<!--
改造建议也要具体。
比如建议确保用户、角色、菜单等敏感接口均有后端权限校验。
原因是前端按钮隐藏不能作为安全边界。
验收标准是无权限用户直接请求接口时返回 403。
这样的建议才可以进入工程评审。
-->
---
# 第 1 天最终交付物
<div class="grid grid-cols-3 gap-3 mt-8 text-sm">
<div class="p-3 rounded-xl bg-blue-500/10 border border-blue-500/30 text-center">01 TRAE 使用边界清单</div>
<div class="p-3 rounded-xl bg-blue-500/10 border border-blue-500/30 text-center">02 若依模块认知图</div>
<div class="p-3 rounded-xl bg-blue-500/10 border border-blue-500/30 text-center">03 若依项目结构图</div>
<div class="p-3 rounded-xl bg-emerald-500/10 border border-emerald-500/30 text-center">04 权限调用链路图</div>
<div class="p-3 rounded-xl bg-emerald-500/10 border border-emerald-500/30 text-center">05 TRAE 输出校验清单</div>
<div class="p-3 rounded-xl bg-amber-500/10 border border-amber-500/30 text-center">06 代码理解报告</div>
</div>
<!--
第 1 天最终交付六个产物:
TRAE 使用边界清单、若依模块认知图、若依项目结构图、权限调用链路图、TRAE 输出校验清单、若依权限与菜单模块代码理解报告。
这些产物构成第一天的完整成果。
-->