Files
2026-07-09 14:23:59 +08:00

2.3 KiB
Raw Permalink Blame History

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.idstatus=disabled) / 无任何变更字段(三字段全空)
  • 401 未带 admin token / token 无效或过期 / 管理员被禁用
  • 403 角色不足(仅 super_admin)
  • 404 管理员不存在
  • 422 role/status 非法枚举 / password 长度不在 872

说明

  • 更新成功后写一条审计:action=admin.updatetarget_type=admintarget_id=admin_iddetail 为本次实际变更字段(如 {"role": "...", "status": "...", "password": "reset"},密码只记 reset 不记明文)。见 admin_audit_log
  • 数据表见 admin_user