docs: 归档任务 #55
This commit is contained in:
@@ -0,0 +1,62 @@
|
||||
# 55 Admin:用户密码最小长度调整为 6 个字符
|
||||
|
||||
- 类型:需求
|
||||
- 父级大工单:#14
|
||||
- 所属 MVP / 版本:#15 Admin 四模块可用闭环
|
||||
- 状态:已完成
|
||||
- 日期:2026-08-09
|
||||
- Gitea 工单:http://ilaer.eicp.net:8418/chengma/cmautobuy/issues/55
|
||||
|
||||
## 背景与目标
|
||||
|
||||
Admin 原来要求密码至少 8 个字符。用户要求创建用户时改为至少 6 个字符。
|
||||
首次管理员初始化、创建采购员和重置密码共用同一套密码策略,因此本任务把三个入口
|
||||
统一为至少 6 个字符,避免出现前后端或不同页面规则不一致。
|
||||
|
||||
## 最终方案
|
||||
|
||||
- 服务端最小密码长度常量从 8 改为 6,仍按 Unicode 字符数判断。
|
||||
- 首次管理员、创建采购员、重置密码的密码和确认密码字段全部改为
|
||||
`minlength="6"`。
|
||||
- 初始化、创建和重置表单都显示“至少 6 个字符”的辅助文字;服务端校验失败
|
||||
明确提示至少需要 6 个字符。
|
||||
- 最大 72 个字节、确认密码、bcrypt 哈希、错误信息防账号枚举、重置后撤销 Session
|
||||
等既有安全规则不变。
|
||||
- 增加 5 个字符拒绝、6 个字符初始化/创建/重置成功以及模板属性和文案测试。
|
||||
|
||||
实际实现与建单方案一致,没有数据库或 Client API 变更。
|
||||
|
||||
## 改了哪些
|
||||
|
||||
- `admin/service/auth.go`:最小密码长度改为 6。
|
||||
- `admin/templates/auth/setup.html`:初始化管理员表单规则和提示同步为 6。
|
||||
- `admin/templates/user/list.html`:创建与重置密码表单规则和提示同步为 6。
|
||||
- `admin/service/auth_test.go`、`admin/service/user_test.go`:覆盖服务端边界值。
|
||||
- `admin/auth_integration_test.go`、`admin/user_integration_test.go`:覆盖模板属性与文案。
|
||||
- `docs/admin/01-requirements.md`、`05-ui-specification.md`、
|
||||
`06-quality-security.md`:记录统一密码规则和测试要求。
|
||||
|
||||
## 验收结果
|
||||
|
||||
| 验收标准 | 结果 |
|
||||
|---|---|
|
||||
| 5 个字符被拒绝并提示至少 6 个字符 | 通过 |
|
||||
| 6 个字符可初始化管理员 | 通过 |
|
||||
| 6 个字符可创建采购员和重置密码 | 通过 |
|
||||
| 三类表单密码与确认密码均为 `minlength="6"` | 通过 |
|
||||
| 三类表单显示至少 6 个字符的辅助文字 | 通过 |
|
||||
| 最大长度、确认密码、bcrypt 和 Session 撤销保持不变 | 通过 |
|
||||
| 页面和日志不回显密码 | 通过 |
|
||||
| 格式、静态检查和全量测试通过 | 通过 |
|
||||
| Go 1.23.0 构建和无缓存测试通过 | 通过 |
|
||||
|
||||
## 测试
|
||||
|
||||
- 执行的命令:`cd admin; gofmt -w .; go vet ./...; go test ./...`
|
||||
- 执行的命令:`$env:GOTOOLCHAIN="go1.23.0"; go build ./...; go test ./... -count=1; Remove-Item Env:GOTOOLCHAIN`
|
||||
- 结果:`go version go1.23.0 windows/amd64`;构建成功,所有测试通过。
|
||||
- **没验证到的部分**:未单独进行人工浏览器验收;真实路由和模板渲染已由集成测试覆盖。
|
||||
|
||||
## 相关提交
|
||||
|
||||
- `2cce9e3` fix: 用户密码最小长度调整为六位 (#55)
|
||||
Reference in New Issue
Block a user