Files
wecom_it_smart_desk/docs/03-测试文档/04-版本测试报告/RBAC-BugFix-测试报告-20260707.md
T
Simon 44e77dcb0e chore(docs): docs/ 目录全面重新编号 + 重组
**重构前**(旧编号 02-11):
- docs/02-产品需求/      → 00 产品规划/PRD
- docs/03-技术架构/      → 01-05 子目录散落
- docs/04-原型设计/      → 01-02 产品设计(HTML 原型)
- docs/05-原型设计/      → screens/
- docs/06-测试素材/      → 02-E2E / 03-功能 / 04-版本测试
- docs/07-项目管理/      → 任务说明书/日报/计划
- docs/08-安全审计/      → 审计报告
- docs/09-堡垒运维/      → toolbox / deploy
- docs/10-项目管理/      → 任务说明书(重复)
- docs/11-历史归档/      → deploy-nas-archived

**重构后**(新编号 00-07,语义化):
- docs/00-产品开发流程与文档管理规范.md
- docs/00-版本迭代总览.md
- docs/01-产品文档/      (PRD/原型/认证/会话/AI 服务/坐席/集成)
- docs/02-技术文档/      (技术方案/架构图/重构记录/前端改造/实现配置)
- docs/03-测试文档/      (E2E/功能用例/版本报告/缺陷单)
- docs/04-运维文档/      (部署运维/运维指南)
- docs/05-运营文档/      (品牌推广/用户手册)
- docs/06-安全审计/      (审计报告)
- docs/07-项目管理/      (任务说明书/日报/计划/看板)

**净收益**:
- 目录编号与产品文档管理规范对齐(按文档阶段 01-07 编号)
- 消除 02-产品需求 与 10-项目管理 的编号重叠
- 子目录按文档类型分组(如 01-产品文档/00-产品规划、01-产品文档/01-认证与登录)
- 把运维/安全/项目管理从 0X 散落改为 04/06/07

合计 494 文件 + 78495 行 / - 14076 行
2026-08-03 18:46:55 +08:00

46 lines
2.0 KiB
Markdown
Raw Blame History

This file contains ambiguous Unicode characters
This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.
# RBAC BugFix 测试报告 — admin_users 装饰器修复
> **版本**: v1.0 | **日期**: 2026-07-07~08 | **QA**: 严过关(software-qa-engineer | **状态**: ✅ 全部通过
## 测试概览
| 指标 | 值 |
|------|-----|
| 测试文件 | 1 |
| 测试用例 | 5 |
| 通过 | 5 |
| 失败 | 0 |
| 轮次 | 2 |
| 源码 Bug | 0 |
## Bug 背景
`admin_users.py``require_role("admin")` 是装饰器工厂,正确用法为 `@require_role("admin")` 装饰路由函数。代码误写为 `Depends(require_role("admin"))`FastAPI 将内层 func 当作必填 query parameter → 全部 admin_users 接口 422 鉴权失效(P0 安全漏洞)。
**修复**6 处 `Depends(require_role(...))``@require_role(...)` 装饰器。同时修复了 `conftest.py` starlette `_read_file` patch 签名兼容问题(加 `encoding=None` 参数)。
## 测试明细
| 用例 | 类型 | 结果 | 说明 |
|------|------|------|------|
| `test_rbac_role_permissions_model_is_real` | 单元 | ✅ | ROLE_PERMISSIONS 模型正确 |
| `test_check_permission_returns_true_for_granted` | 单元 | ✅ | 授权 check_permission 返回 True |
| `test_check_permission_returns_false_for_denied` | 单元 | ✅ | 拒绝 check_permission 返回 False |
| `test_admin_user_list_allows_admin` | 集成 | ✅ | admin 角色 200(之前 422 已修复) |
| `test_admin_user_list_denies_non_admin` | 集成 | ✅ | 非 admin 角色 403(之前 422 已修复) |
## 轮次详情
### Round 1: 5 ERROR(环境故障)
- 根因:`starlette==1.2.1``_read_file` 新增 `encoding` 参数,但 `pytest-asyncio==1.4.0` monkey-patch 只接受 2 个参数
- 5 个测试在 setup 阶段崩溃,未进入测试体
### Round 2: 5/5 ✅
- 修复 `conftest.py``_patched_read_file(self, env_file, encoding=None)`
- 全部通过,智能路由判定:**NoOne**
## 关联文档
- 增量 PRD`../02-需求分析/增量PRD-知识库迭代与痛点缓解-20260707.md`
- 项目状态看板:`../07-项目管理/05-项目状态看板/01-项目状态看板.md`