# PATCH /admin/api/admins/{admin_id} — 改角色/启停/重置密码 > 所属:Admin·Accounts 组(前缀 `/admin/api/admins`) | 鉴权:Bearer admin_token(角色:super_admin) | [← 返回 API 索引](../../README.md) ## 入参 **路径参数**: | 字段 | 类型 | 必填 | 说明 | |---|---|---|---| | `admin_id` | int | ✓ | 目标管理员 id | **application/json**(字段都可选,只改传了的;至少传一个): | 字段 | 类型 | 必填 | 说明 | |---|---|---|---| | `role` | string | ✗ | 改角色:内建 `super_admin` / `finance` / `operator` **或自定义角色 name**(#117/#126,见 [admin-roles](../admin-roles.md)) | | `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` 管理员不存在 - `422` `role`/`status` 非法枚举 / `password` 长度不在 8–72 ## 说明 - 更新成功后写一条审计:`action=admin.update`、`target_type=admin`、`target_id=admin_id`、`detail` 为本次实际变更字段(如 `{"role": "...", "status": "...", "password": "reset"}`,密码只记 `reset` 不记明文)。见 [admin_audit_log](../../../database/admin_audit_log.md)。 - 数据表见 [admin_user](../../../database/admin_user.md)。