Henry_Du
792b3d4ef6
feat(users): 初始管理员可改显示名(登录名锁死 admin)+ 新增「提升为超级管理员」
站长诉求:想自定义 admin 账号的资料,但**必须保留 admin/admin123 作为应急登录**;
同时想用自己绑了微信的中文账号做日常管理。
按"哪些能改、哪些必须锁死"拆开处理:
1) server/api/admin/users/[id].put.ts —— 原来对 ID=1 **一律 403**(连显示名都改不了),
现在:
· 允许改:姓名(显示名)、年级、班级、状态;
· 锁死:登录名必须保持 admin(那就是 admin/admin123 的应急通道,改了就登不进去);
· 锁死:角色不能动(防止把自己降权导致没人能管站点);
· 锁死:密码不在这里改(避免被其它管理员顺手重置;要改用它登录后去「设置」里改)。
2) 新增 POST /api/admin/users/{id}/promote-super —— 把某个账号提升为超级管理员。
之所以单开接口而不是放开通用编辑接口的 role:原 `canChangeRoleOf()` 明确禁止提升为
SUPER_ADMIN,两个前端的角色下拉也故意不给这一项。这里是**显式、可审计**的通道:
仅 SUPER_ADMIN 可调、不能提升自己、已经是超管的会提示、成功后清该用户认证缓存。
前端(小程序)配套:用户管理操作菜单改成 {label, run} 数组(有权限时才出现"提升为超级管理员",
不再靠写死 tapIndex),点击有二次确认并列出会拿到的权限;编辑初始管理员时登录名输入框 disabled
并显示原因,姓名照常可改。
2026-09-30 21:42:59 +08:00
..
2026-09-30 21:42:59 +08:00
2026-09-06 08:19:02 +08:00
2026-09-30 21:42:59 +08:00
2026-09-06 08:19:02 +08:00
2026-09-06 08:19:02 +08:00
2026-09-06 08:19:02 +08:00
2026-09-06 08:19:02 +08:00
2026-09-30 20:50:09 +08:00
2026-09-12 10:27:07 +08:00
2026-09-30 20:50:09 +08:00
2026-09-06 08:19:02 +08:00
2026-09-06 08:19:02 +08:00