2.3 KiB
2.3 KiB
PATCH /admin/api/admins/{admin_id} — 改角色/启停/重置密码
所属:Admin·Accounts 组(前缀
/admin/api/admins) | 鉴权:Bearer admin_token(角色:super_admin) | ← 返回 API 索引
入参
路径参数:
| 字段 | 类型 | 必填 | 说明 |
|---|---|---|---|
admin_id |
int | ✓ | 目标管理员 id |
application/json(字段都可选,只改传了的;至少传一个):
| 字段 | 类型 | 必填 | 说明 |
|---|---|---|---|
role |
string | ✗ | 改角色:内建 super_admin / finance / operator 或自定义角色 name(#117/#126,见 admin-roles) |
pages_override |
list[string] | null | ✗ | 个人可见页覆盖(#126):非空优先于角色 pages;传 null 清覆盖回归角色 |
status |
string | ✗ | 启停,枚举:active(启用)/ disabled(禁用) |
password |
string | ✗ | 重置密码,8–72 字(传则覆盖原密码,同时更新 plain_password 明文副本) |
出参
响应 200:AdminOut(更新后的管理员)
| 字段 | 类型 | 说明 |
|---|---|---|
id |
int | 管理员 id |
username |
string | 账号 |
role |
string | 角色 |
status |
string | 状态 |
pages |
list[string] | 有效可见页(pages_override 优先,否则角色 pages;super_admin 全量) |
created_at |
datetime | 创建时间(UTC) |
last_login_at |
datetime | null | 上次登录时间 |
DELETE /admin/api/admins/{admin_id} — 删除管理员(#126)
物理删除(区别于禁用);不可删自己(400);带审计(action=admin.delete)。鉴权同本组(super_admin)。出参 {"deleted": true}。
错误码
400不能禁用自己(admin_id == 当前 admin.id且status=disabled) / 无任何变更字段(三字段全空)401未带 admin token / token 无效或过期 / 管理员被禁用403角色不足(仅 super_admin)404管理员不存在422role/status非法枚举 /password长度不在 8–72
说明
- 更新成功后写一条审计:
action=admin.update、target_type=admin、target_id=admin_id、detail为本次实际变更字段(如{"role": "...", "status": "...", "password": "reset"},密码只记reset不记明文)。见 admin_audit_log。 - 数据表见 admin_user。