Skip to content

模块六:用户与权限 ​

用户与权限模块负责管理员账号、角色、数据范围、密码重置和操作日志。所有登录角色都能进入“我的账户”修改自己的用户名和密码;只有获得相应权限的账号才能管理其他用户。

四个内置角色 ​

角色默认职责
超级管理员管理全校数据、用户、角色、系统设置和部署
年级管理员管理授权年级的考试、周测、班级、设备和下级用户
班级管理员管理授权班级的周测、设备并查看适用考试
班级访客(原巡考员)按授权范围查看大型考试、周测、设备、提醒与设置,并支持导出

还可以创建自定义角色,按模块设置不可访问、仅查看或可管理。数据库重置、初始化、角色管理、部署和超级管理员操作仍只保留给超级管理员。

添加管理员 ​

新建用户需要填写:

  • 登录用户名;
  • 显示名称;
  • 初始密码,至少 8 位;
  • 角色;
  • 全校、年级或额外指定班级范围。

用户名使用 3 至 40 位字母、数字、点、横线或下划线。日常显示可使用中文显示名称。

批量创建班级管理员 ​

支持一班一账号:

  1. 点击“批量添加班级管理员”;
  2. 设置用户名统一前缀;
  3. 设置初始密码;
  4. 使用班级选择器勾选目标班级;
  5. 确认创建数量;
  6. 保存创建结果并分别交付账号。

每个账号只获得对应班级作用域。年级管理员只能在自己的授权年级内批量创建,服务端会拒绝越权范围。

班级管理员首次登录必须同时设置自己的新用户名和新密码。两项凭据会一次性原子保存,成功后旧会话立即失效。

密码重置和找回 ​

忘记密码的账号可处理人员
班级管理员所属年级管理员或超级管理员
年级管理员超级管理员
超级管理员其他超级管理员,或使用首次初始化时自动生成的恢复密钥

管理员重置密码时可自动生成 14 位临时密码,也可手动设置。临时密码只展示一次,关闭前必须安全交付;重置后旧会话立即失效,下次登录强制更新凭据。

超级管理员恢复密钥由项目在首次初始化后自动生成,明文只展示一次,数据库只保存加盐哈希。应保存到可信密码管理器或受控离线介质,不要交给普通管理员。

我的账户 ​

后台“更多 → 我的账户”允许任何已登录角色:

  • 修改自己的用户名;
  • 修改自己的密码;
  • 首次登录时同时设置新用户名和密码;
  • 查看当前角色。

修改凭据后需要使用新信息重新登录。

邮箱验证码登录 ​

V2.7.2 起,已有管理员账号可以绑定邮箱并使用“邮箱 + 6 位验证码”登录,作为密码登录之外的第二种方式。邮箱登录不会自动创建账号,只允许绑定到有效管理员账号的邮箱。

开启方式:

  1. 在系统设置中配置 SMTP(支持 QQ、163 等预设与自定义邮件服务器),并填写管理员邮箱白名单(可选)。
  2. 在“我的账户”或初始化向导中绑定自己的邮箱。
  3. 保存后,登录页会出现“验证码登录”入口;启用邮件服务后默认进入验证码登录,仍可切换到密码登录。

登录流程:

  1. 登录页切换到“验证码登录”,输入已绑定邮箱。
  2. 点击发送验证码;同一邮箱 60 秒内只能发送一次,同一 IP 每小时有次数限制。
  3. 输入 6 位验证码完成登录,验证码 5 分钟内有效且只能使用一次。

安全说明:

  • SMTP 授权码加密存储,不在页面或接口中返回明文;
  • 连续输入错误验证码会触发与密码登录一致的锁定规则;
  • 部署时不需要新增环境变量,SMTP 与邮箱白名单都在系统内配置;
  • 邮件发送走限速队列,失败自动重试退避,发送状态实时反馈。

角色权限 ​

创建自定义角色时,先写清角色职责,再为各模块选择访问级别。不要为了省事授予全部权限,数据范围也不能替代模块权限。

例如,一名高一年级只读教务可以配置:

text
角色:班级访客或自定义只读角色
年级范围:高一
班级范围:按需
模块权限:只读大型考试、周测和学校结构

操作日志 ​

拥有审计权限的管理员可以查看操作时间、用户名、动作和资源 ID。出现误删、密码重置、权限变化或部署操作时,应先查日志,再决定是否恢复数据。

V2.8.0 起,动作名称统一显示为中文(例如「发送邮箱验证码」「下发设备指令:暂停考试」 「申请停止考试」),原始机器码只作为悬停提示保留,便于对照排查;识别不出的动作显示 「未识别的操作」,不会再裸显英文码。

Novora 部署与维护文档