后台用户列表把所有账号的明文密码直接铺在表格里。学生密码是有意保留的运营需求 (老师要能查),但管理员账号的密码跟着一起明文显示,投屏或者旁人路过就看到了。 现在学生管理员/教师管理员/超管三类账号的密码默认渲染成 •••••• 加一个「显示」 按钮,点一下该行展开成明文(仍然是 TextCopy,点击复制照旧)。普通用户不变。 展开状态按 user id 记在 list.vue 里,listUsers() 里清空,所以翻页、搜索、换筛选、 换排序之后一律回到打码;不做定时自动隐藏,也不记进 localStorage。 只改前端。rawPassword 照旧随列表下发——/users* 每条路由本来就是 requireSuperAdmin, 非超管连列表都拿不到,要防的是屏幕被看到,不是拿到响应的人。改成「按需取单个密码」 反而要多开一个下发明文的端点,把面扩大。 rawPassword 为空时不打码:给一个点了什么也不显示的按钮没意义,直接走原来的 TextCopy。 顺带把角色标签缩短(学生管理员→生管、教师管理员→师管)。getUserRole 只有同一张表的 用户名列在用,密码列变宽之后那一列需要让出横向空间。 实跑验证(本机 dev 栈 + 超管登录):管理员行打码、学生行明文照旧、点「显示」后展开 且仍是可复制的按钮、搜索触发重新拉列表后回到打码。vue-tsc 与 build 均通过。 Co-Authored-By: Claude Opus 5 <noreply@anthropic.com>
This commit is contained in:
@@ -141,7 +141,7 @@ export function debounce<T extends (...args: any[]) => any>(
|
||||
|
||||
export function getUserRole(role: User["adminType"]): {
|
||||
type: "default" | "info" | "warning" | "error"
|
||||
label: "普通" | "学生管理员" | "教师管理员" | "超管"
|
||||
label: "普通" | "生管" | "师管" | "超管"
|
||||
} {
|
||||
const roleMap = {
|
||||
[USER_TYPE.REGULAR_USER]: {
|
||||
@@ -150,11 +150,11 @@ export function getUserRole(role: User["adminType"]): {
|
||||
},
|
||||
[USER_TYPE.STUDENT_ADMIN]: {
|
||||
type: "info" as const,
|
||||
label: "学生管理员" as const,
|
||||
label: "生管" as const,
|
||||
},
|
||||
[USER_TYPE.TEACHER_ADMIN]: {
|
||||
type: "warning" as const,
|
||||
label: "教师管理员" as const,
|
||||
label: "师管" as const,
|
||||
},
|
||||
[USER_TYPE.SUPER_ADMIN]: {
|
||||
type: "error" as const,
|
||||
|
||||
Reference in New Issue
Block a user