docs: 定义 Admin 登录与账号管理基线 (#49)

This commit is contained in:
chengma
2026-08-09 13:12:03 +08:00
parent 6e6e99a5d7
commit fc03388ed4
5 changed files with 161 additions and 5 deletions
+45
View File
@@ -601,6 +601,51 @@ placeholder 写「任务编号 / 订单号 / 商品 ID」,**不要写全「PDD
- `[建议]` 界面上说明一句:"客户端执行长任务期间可能显示为离线,属正常现象。"
因为没有心跳,这是已知且接受的取舍(见 [04](04-client-api.md) §3)。
### 8.1 首次管理员初始化与登录
数据库没有任何用户时,访问 Admin 业务页面跳转到 `/setup`。初始化页只包含:
```text
初始化管理员
用户名 [admin____________]
密码 [••••••••••••••••]
确认密码 [••••••••••••••]
[创建管理员]
```
- 用户名可以预填 `admin`,但用户可以修改;不得提供固定默认密码。
- 密码框不回显,校验失败时清空密码和确认密码。
- 初始化成功后跳转登录页;此后访问 `/setup` 不再显示初始化表单。
- 两个浏览器并发初始化时,最多一个成功,另一个提示“管理员已经初始化,请登录”。
已有用户时,未登录访问业务页面跳转到 `/login`:
```text
登录 Admin
用户名 [_________________]
密码 [••••••••••••••••]
[登录]
```
- 用户名或密码错误统一提示“用户名或密码错误”,不透露账号是否存在。
- 登录成功回到原目标页面;目标地址只允许站内路径,不能跳转到外部网站。
- 顶部导航显示当前用户名和“退出登录”;退出必须使用 POST。
- Client API 不显示登录页,也不返回网页登录重定向。
### 8.2 用户管理页
只有管理员显示“用户管理”导航并可访问 `/users`。采购员访问时返回 `403`。
工具条:`用户名 [____] 状态 [全部⌄] [搜索] [新增采购员]`
表格列:用户名 / 角色 / 状态 / 最后登录 / 创建时间 / 操作
- 管理员只能新增 `purchaser` 角色,不通过普通页面新增第二个管理员。
- 操作包含“重置密码”“禁用/启用”;第一版不做物理删除。
- 禁用账号或重置密码前二次确认;成功后该用户现有 Session 全部失效。
- 不能禁用最后一个有效管理员,也不能让唯一管理员禁用自己。
- 完整密码不在列表、弹窗关闭后的页面或日志中出现。
## 9. 反馈方式
| 场景 | 怎么反馈 |