UserStatus 迁移、DeviceAuth 拒绝非 active、admin-h5 CTA; Reviewer Closed。Human 授权 LOOP_AUTHORIZATION(免逐闸确认)。 Co-authored-by: Cursor <cursoragent@cursor.com>
73 lines
2.5 KiB
Markdown
73 lines
2.5 KiB
Markdown
# ECR-013B
|
||
|
||
**Title:** AccountLifecycle(UserStatus 状态机 · 运营启停/封禁 · C 端拒绝)
|
||
**Status:** **Closed**
|
||
**Date:** 2026-08-07
|
||
**Approved:** 2026-08-07(Human)
|
||
**Coding Start Authorization:** 2026-08-07(Human)
|
||
**Closed:** 2026-08-07(Reviewer · Loop continuous)
|
||
**Parent:** WAVE0-FROZEN (`27f27a1`)
|
||
**Predecessor:** ECR-013A **Closed**
|
||
**Change Level: L2**(行为:账户状态强制;栈与分层不变)
|
||
|
||
## Change
|
||
|
||
1. Active Feature Spec:`.ai/product/feature-spec/ops-account-lifecycle.md`
|
||
2. Domain:落实 `UserStatus` · `AccountStateTransition`
|
||
3. API 意图:`POST /admin/users/:id/status` · `GET .../status-transitions`
|
||
4. C 端:非 `active` → DeviceAuth/Bearer **拒绝**
|
||
5. RBAC additive:`admin.users.status.write`
|
||
6. **contract_diff**:`docs/CONTRACT_DIFF/ECR-013B.yaml`(P0)
|
||
7. **不含** soft-delete / UGC / 真支付
|
||
|
||
## Motivation
|
||
|
||
`users.status` 已存在但无运营迁移与会话阻断;013A 权限门禁就绪后可落地最小风控闭环。
|
||
|
||
## Scope
|
||
|
||
### Allowed
|
||
|
||
- Spec L0–L4 · Domain 对齐 · BD Draft · AC · feature-map §7 · TRACEABILITY · STATE · TASK
|
||
|
||
### Forbidden(Non-goals)
|
||
|
||
- (实现轮已授权)soft-delete 仍禁;真支付 · UGC · Prompt
|
||
- soft-delete · GDPR 擦除
|
||
- 真支付 · UGC · Prompt · Crisis 深化
|
||
|
||
## Risk
|
||
|
||
| Risk | Mitigation |
|
||
|------|------------|
|
||
| 误封超级用户/自测号 | reason 必填;Audit + transitions;可回迁 active |
|
||
| 与 session 缓存不一致 | 每次请求读 User.status(本切片不引入长缓存) |
|
||
| 权限码遗漏种子 | migration 写入 super_admin;integration 覆盖 |
|
||
|
||
## Acceptance Criteria
|
||
|
||
见 Spec `ops-account-lifecycle.md` L4:AC-F-01..04 · AC-S-01..04 · AC-P-01 · AC-O-01..02
|
||
|
||
契约轮完成标准:
|
||
|
||
- [x] L0–L4 填满
|
||
- [x] contract_diff 已交
|
||
- [x] BD Draft + HANDOFF(禁 coding)
|
||
- [x] Human **Approve** ECR+BD + Coding Start Authorization
|
||
- [x] Implemented + TEST_REPORT
|
||
- [x] Reviewer Closed
|
||
|
||
## Rollback
|
||
|
||
- 契约轮:废弃 Draft
|
||
- 实现轮:down migration + 回退 DeviceAuth 检查
|
||
|
||
## Linked
|
||
|
||
- Feature Spec: `.ai/product/feature-spec/ops-account-lifecycle.md`
|
||
- PRODUCT_SPEC: `docs/PRODUCT_SPEC/ECR-013B-account-lifecycle.md`
|
||
- ENGINEERING_SPEC: `docs/ENGINEERING_SPEC/ECR-013B-account-lifecycle.md`
|
||
- BACKEND_DESIGN: `docs/BACKEND_DESIGN/BD-2026-013B-account-lifecycle.md`
|
||
- CONTRACT_DIFF: `docs/CONTRACT_DIFF/ECR-013B.yaml`
|
||
- Parent: WAVE0-FROZEN · Predecessor: ECR-013A
|