docs(M02-D): 记录用户权限验收并推进游标

This commit is contained in:
Codex
2026-06-18 14:46:31 +08:00
parent 5a300a82f6
commit 47094d5309
4 changed files with 20 additions and 12 deletions
+2 -2
View File
@@ -1,8 +1,8 @@
# 当前开发成果基线
> V5.0 首次核验日期:2026-06-16
> audited_commit: `caacc78`
> next_engineering_target: M02-D 建立用户与员工管理、角色分配、禁用和审计
> audited_commit: `5a300a8`
> next_engineering_target: M03-A 建立门店与房间基础领域、营业规则和状态模型
> 事实源:当前工作区、Git 历史、状态文档、Windows/WSL 检查脚本。
## 总体结论
@@ -2,9 +2,10 @@
- 日期:2026-06-18
- 起始 commit`46acb84`
- 工程 commit本阶段工程提交
- 工程 commit`5a300a8`
- 推送校验:`HEAD == origin/main == 5a300a82f6d1c85a0767e3dc9e89750849af5f63`
- ENGINEERING_DELTA=YES
- 子阶段状态:待 push 与远端校验
- 子阶段状态:DONE
## 工程增量
@@ -21,6 +22,7 @@
- WSL MySQL `8.4.9` 临时库:`up → verify → down → up → verify`,退出码 0。
- 实测员工创建、角色/门店分配、禁用后会话撤销和两条审计日志。
- 迁移语句数:up 33、verify 19、down 31。
- M02 CP1:租户隔离、RBAC、管理员/员工门店范围、禁用与会话失效回归通过。
## 影响
@@ -28,3 +30,4 @@
- API:新增四个 `/admin-api` 用户与员工管理接口。
- 配置:无新增秘密或环境变量。
- 部署:生产更新前必须备份,由 Ubuntu 菜单执行迁移;不得从 Windows 直连生产数据库。
- 下一阶段:M03-A 门店与房间基础领域。
+4 -2
View File
@@ -20,5 +20,7 @@
| SYS-001 | 微信原生小程序 | M00-C/M08 | TODO | - | - | 参考小程序压缩包尚未深度整理。 | 后续导入正式 `miniapp/`。 |
| CFG-001 | 小程序品牌自定义 | M02-A/M03/M08 | PARTIAL | `8b8fb28` | 已建立 AppID/tenant 品牌配置表和 `/app-api/bootstrap`;同一 AppID 两租户隔离读取在 MySQL 8.4.9 实测通过。 | Logo/分享图片上传与小程序实际展示属于后续阶段。 | M03/M08 接入配置管理和小程序展示。 |
| BKG-010 | 后台多小程序管理 | M02-A/M08/M10 | PARTIAL | `8b8fb28` | 已建立逻辑应用、租户绑定和租户配置模型;多租户 AppID 未指定租户会被拒绝。 | 尚无后台管理页面,多 AppID 真机配置未验证。 | M02-B/C 完成身份权限,M08 增加管理页面。 |
| AUTH-001 | 多端统一小程序身份 | M02-B/M02-C/M08 | PARTIAL | `647ef7c` | 已实现微信 code 交换适配器、租户/AppID 隔离身份、JWT、服务端会话、当前用户和注销;MySQL 实测注销与角色版本变化立即失效。 | 缺真实 AppSecret 真机联调;角色菜单和 capability 属于 M02-C/M08。 | M02-C 接入 RBACM08 完成小程序角色界面与真机登录。 |
| AUTH-002 | 多级权限 | M02-B/M02-C/M08 | PARTIAL | `caacc78` | 已建立六类角色、权限目录、用户角色和门店范围;`/auth/me` 返回后端 capability,跨租户门店授权在 MySQL 实测被拒绝。 | 管理端角色分配、按钮菜单和完整业务资源鉴权待 M02-D/M08。 | M02-D 完成员工管理,后续业务接口接入 capability。 |
| AUTH-001 | 多端统一小程序身份 | M02-B/M02-C/M08 | PARTIAL | `5a300a8` | 已实现微信 code 交换适配器、租户/AppID 隔离身份、JWT、服务端会话、当前用户和注销;禁用、角色/门店范围变化及管理员重置均使旧会话立即失效。 | 缺真实 AppSecret 真机联调和小程序动态角色界面。 | M08 完成小程序角色界面与真机登录。 |
| AUTH-002 | 多级权限 | M02-B/M02-C/M08 | PARTIAL | `5a300a8` | 已建立六类角色、权限目录、用户角色和门店范围;后台员工 API 同时执行 capability租户门店范围校验,越权分配被拒绝并记录审计。 | 后续业务资源接口和前端按钮/菜单仍需逐模块接入。 | M03 起所有管理接口复用 capability 与数据范围;M08 完成前端菜单按钮控制。 |
| STAFF-001 | 员工账号 | M02-D/M08 | PARTIAL | `5a300a8` | 已实现创建员工、分配角色/门店、禁用、备注、重置会话和审计;WSL MySQL 实测权限变化撤销活动会话。 | 后台与管理员小程序页面尚未实现。 | M08 接入管理界面。 |
| BKG-002 | 后台用户管理 | M02-D/M08 | PARTIAL | `5a300a8` | 已实现分页筛选 API、注册/登录时间、状态、角色、门店范围以及手机号/IP 脱敏。 | Vue3 后台页面尚未实现。 | M08 实现响应式用户管理页面。 |
+9 -6
View File
@@ -2,20 +2,23 @@
```yaml
execution_cursor:
current_module: M02
current_stage: M02-D
last_completed_stage: M02-C
next_stage: M02-D
last_engineering_commit: caacc78
current_module: M03
current_stage: M03-A
stage_status: TODO
last_completed_stage: M02-D
next_stage: M03-A
last_engineering_commit: 5a300a8
last_push_verified: true
base_branch: main
blocked_reason: ""
updated_at: 2026-06-18T16:05:00+08:00
```
| 模块 | 状态 | 最近提交 | 最近开发日志 | 备注 |
|---|---|---|---|---|
| M00 单仓库与服务器基础骨架 | PARTIAL | `ef0edda` | docs/devlogs/2026-06-16-M00-V5-基线核验.md | V5.2 已接入;已有成果基线、仓库完整性门禁、状态文档门禁、显式路径模块推送脚本、release manifest dry-run 检查、WSL 本地 MQTT 服务级核验、认证/ACL 冒烟入口、配置自检、可选 TLS/遗嘱/重复消息探测入口和 WSL EMQX 检查/启动/停止入口已补;生产部署、账号配置、真实验收仍未完成。 |
| M01 后端 API 基础工程 | DONE | `2b90d1f` | docs/devlogs/2026-06-18-M01-C-轻量异步任务基础.md | 已完成 Fastify 后端骨架、数据库迁移兼容层,以及 MySQL outbox、幂等任务、租约领取、失败重试、人工补偿状态和独立 PM2 workerWSL MySQL 8.4.9 往返迁移与 worker 重启持久性验证通过。 |
| M02 登录、租户、权限 | PARTIAL | `caacc78` | docs/devlogs/2026-06-18-M02-C-RBAC与数据范围.md | M02-A/B/C 已完成租户、身份、会话、RBAC 与门店范围;下一阶段 M02-D 用户与员工管理。 |
| M02 登录、租户、权限 | DONE | `5a300a8` | docs/devlogs/2026-06-18-M02-D-用户与员工管理.md | M02-A/B/C/D 已完成租户、身份、可撤销会话、RBAC、门店数据范围、员工管理、禁用、会话重置和审计;Windows 全量测试与 WSL MySQL 8.4.9 往返迁移通过。 |
| M03 门店、房间、价格、营业时间 | TODO | - | - | - |
| M04 订单、时段锁定、支付闭环 | TODO | - | - | - |
| M05 会员、余额、套餐、优惠券 | TODO | - | - | - |