# POST /admin/api/users/{user_id}/status — 封禁/解封用户 > 所属:Admin·用户 组(前缀 `/admin/api/users`) | 鉴权:Bearer admin_token(角色:`operator`,`super_admin` 恒通过) | [← 返回 API 索引](../../README.md) ## 入参 - 路径:`user_id`(int) - **application/json**: | 字段 | 类型 | 必填 | 说明 | |---|---|---|---| | `status` | string | ✓ | 目标状态,枚举 `active`(解封)/ `disabled`(封禁);注销 `deleted` 不走此接口 | ## 出参 响应 `200`:`OkResponse` = `{ "ok": true }` ## 错误码 - `400` 已注销账号不可改状态(目标用户当前 `status == deleted`,`detail: "已注销账号不可改状态"`) - `401` 未带/无效/过期 admin token、管理员被禁用(头带 `WWW-Authenticate: Bearer`) - `403` 角色不足(需 `operator` 或 `super_admin`) - `404` 用户不存在(`detail: "用户不存在"`) - `422` `status` 非 `active`/`disabled` 枚举 / 缺字段 / `user_id` 非整数 ## 说明 - 业务写(改用户状态)与审计写在同一事务原子提交:改了就有痕、有痕就真改了。 - 写操作记审计 [admin_audit_log](../../../database/admin_audit_log.md):`action = user.status.set`,`target_type = user`,`target_id = user_id`,`detail = {before, after}`,并记录操作 IP。 - 关联用户表 [user](../../../database/user.md)。 --- ## POST /admin/api/users/{user_id}/debug-trace — 开关调试链接权限 - body:`{"enabled": true|false}` → 写 `user.debug_trace_enabled`(带审计 `action=user.debug_trace.set`)。 - 开了的用户在比价完成弹窗 + 比价记录页可见「复制调试链接」按钮(trace_url);运营按用户灰度排障用。鉴权同本组(operator)。