功能简介
用户管理是平台的账号与权限中枢,把「谁是谁、能进哪些模块、管哪个学院」统一管起来。它由两个入口构成:
- 用户管理(
/admin/users):维护各类账号(教师、学生、各级管理员、教务处/督导等跨学院角色),分配角色、模块权限、跨学院范围(客学院),并维护课程(群)责任教授绑定。 - 学院及部门管理(
/admin/colleges,仅超管):新增/维护学院与校级部门,按学院开关业务模块,并提供系部(部门)名称的规范化维护。
权限按角色分层:学院管理员只能管本学院的非管理员账号;学院开通、模块全局策略、跨学院角色、测试预览账号等高危动作仅超级管理员可操作。
入口与权限
- 入口:顶部导航 / 管理菜单 →
用户管理、学院及部门管理。 - 可用角色与可见范围:
| 操作 | 超级管理员 | 学院管理员 | 校级部门 / 教务处科室负责人 | 系室主任 / 预览账号 |
|---|
| 查看用户列表 | 全部账号 | 仅本学院(不含其他管理员、超管、预览账号) | 仅本管理单位成员 | 系室主任/质量科代管/预览账号可只读查看其范围 |
| 新建普通用户 | 是 | 仅本学院、且只能建非管理员 | 科室负责人只能建本科室普通成员 | 否 |
| 新建学院管理员 | 是 | 否 | 否 | 否 |
| 设置模块权限 | 是 | 仅本学院非管理员账号 | 仅本科室成员 | 否 |
| 设置跨学院范围(客学院) | 是 | 否 | 仅本科室成员 | 否 |
| 创建测试预览账号 | 是 | 否 | 否 | 否 |
| 学院开通 / 学院模块开关 | 是 | 否 | 否 | 否 |
| 系部(部门)名称维护 | 是 | 本学院(复用教师目录准入) | 否 | 预览账号一律拒绝 |
预览/只读账号进入页面时顶部显示「本账号仅供测试预览,不能编辑」,用户名等敏感字段脱敏,所有写操作按钮替换为「仅预览」提示,后端也会拦截手工提交。
操作步骤(分角色)
超级管理员:新建账号与角色
- 进入「用户管理」,主标签默认在「学院用户」,按学院二级标签切换到目标学院。
- 在工具栏「新建用户与角色配置」区填写姓名(必填)、用户名(必填)、QQ、系部,并在「角色」下选择:教师 / 外院授课 / 学生 / 督导组 / 系室主任 / 系部归档员 / 教学办主任 / 综合办管理员 / 分管领导 / 课程责任教授 / 其他。
- 跨学院角色(督导组、教务处各科室)需在「校级部门」管理单位中创建并分配;普通新建表单会拦截直接创建教务处用户。
- 需要建学院系统管理员时走「新建学院管理员」专用入口(会自动生成初始密码,并要求首登完成 Napcat Token 初始化)。
- 需要测试预览账号时勾选对应选项(仅超管可见可用)。
学院管理员:维护本学院教师与学生
- 进入「用户管理」,列表已自动限定为本学院账号(外院主档但在本学院有角色的教师也会纳入展示)。
- 用「教师/系室主任/系部归档员/学生/学院领导/教学办主任/综合办管理员/外院授课」等人员类型标签快速过滤,标签上的数字徽标显示各类人数;点「显示全部」清除过滤。
- 行内操作:编辑(改基础信息/系部/角色)、删除、重置密码、模块权限。学院管理员不能编辑/删除其他管理员或超管账号。
- 教师信息同步:工具栏主按钮「同步账号」只补建/对齐账号;下拉两项分别是「同步账号 + 刷新归档/报送系部」(连带刷新教师在归档、资料报送中的系部)与「仅审计差异」(只读对比、不写库)。
管理员:设置模块权限(控制可见性)
- 点目标用户行的「模块权限」按钮,弹窗按
module_registry 列出业务/教学工具模块(归档、增免修、监考、科学城出勤、教学资料报送、通用资料报送、达成度分析、学院成果库、AI客服-小灵)。 - 勾选/取消即开关该用户对应模块的菜单与入口。用户能否看到某模块 = 该学院已开通该模块 ∧ 该用户被授予该模块 ∧ 角色匹配,三者缺一不可见。
- 学院管理员只能改本学院非管理员账号;科室负责人只能改本科室成员;超管可跨学院(弹窗带学院范围选择)。
管理员:设置跨学院范围(客学院)
- 对教务处/督导等跨学院角色,点对应行设置「跨学院范围」:可选具体若干学院,或选「全部学院」。这定义了该账号能看到/统计哪些学院的数据。
- 外院授课(客学院教师):在客学院用户列表对某教师设「外院授课角色 + 授课系部」,即把外院教师挂到本学院承担授课;系统硬校验授课学院 ID ≠ 该教师主学院 ID。取消时删除该学院下的
external_teacher 角色,不动其主学院档案。
管理员:课程(群)责任教授绑定
- 切到「课程(群)责任教授绑定」标签(或在新建区点「责任教授绑定」)。
- 「新增绑定」填课程名称、系部、专业方向(可选)、一名或多名责任教授;课程名/方向会做归一,同一(学院+系部+课程+方向)维度已存在则覆盖更新。
- 支持批量导入(规则:新增追加 + 已有覆盖)。
- 「同步责任教授资格」:按绑定关系为被绑定的教师补齐
course_professor 角色,使其在归档/报送流程中获得责任教授范围。
超级管理员:学院及部门管理
- 进入「学院及部门管理」,「新增学院」填学院名称与可选简称代码(留空自动按学院名生成;会预览自动生成的数据库 bind key、Napcat 环境变量/容器名/URL,并对简称冲突给出修改建议)。
- 列表按「学院/部门」展示每个学院的简称、数据库 bind 注册状态、Napcat 配置与 Token 设置状态。
- 学院模块开关:在每行「业务模块」区点击模块标签开/关,再点保存图标,按学院控制该模块是否对本院开放(默认开关取自
module_registry 的 college_default_enabled);底部「已开通:…」汇总当前生效模块。校级部门(教务处等管理单位)同理按单位维度配置模块。
系部(部门)名称维护
- 用于把同一学院内拼写不一致的系部名统一/合并。先「概览」(
/admin/departments/overview)只读查看本学院四张表(学院库 invigilators、course_archives;central 库 user_profiles、course_professor_binding_rules)的系部分布与标准清单对照。 - 「替换预览」(dry-run,不写库)展示影响范围及是否会与现有名合并;确认后执行「替换」四表事务化一并更新,WHERE 强制带
college_id 限定域,并写改前快照与操作日志。 - 仅做字面替换
department=旧名 的记录,不改 department_source,不跨学院误伤。
字段与状态口径
| 字段 / 状态 | 含义 |
|---|
| 姓名(real_name) | 显示姓名;列表姓名兜底来源。「缺姓名」看的是这一项是否为空。 |
| 主学院(college_id) | 账号归属学院。「缺主学院」指 college_id 为空 / 0(显示「未绑定学院」),与「缺姓名」是两个独立口径,不可混用。 |
| 系部(department) | 教师所在系/室;分散在四表,维护需四表一致。 |
| 客学院 / 外院授课 | 教师在非主学院承担授课,由该学院 external_teacher 角色表达,不改其主学院档案。 |
| 跨学院范围 | 教务处/督导等角色可见学院集合,可为「全部学院」或指定学院。 |
| 测试预览 | 只读账号;列表显示「测试预览」徽标,敏感字段脱敏,写操作被前后端双重拦截。 |
| 已开通模块 | 学院/部门当前对本院开放的业务模块集合(学院级开关)。 |
| 责任教授绑定 | (学院, 系部, 课程, 专业方向) → 一名或多名责任教授;用于归档/报送的责任教授范围判定。 |
角色体系两套并存:学院内角色(role_registry.COLLEGE_ROLE_ITEMS,如授课教师、系室主任、教学办主任、分管教学副院长、课程责任教授、专业负责人等,2026-05-28 后部分仅改了面向用户标签、内部 key 不变)与跨学院角色(CROSS_SCOPE_ROLE_ITEMS:督导组、教务处运行/质量/实践/建设科及科室负责人、领导)。教务处类账号在「校级部门」管理单位下创建并按单位授予模块/动作,不在普通学院新建表单里建。
常见问题
- 学院管理员看不到某账号:本学院列表默认排除其他管理员、超管、预览账号;外院主档教师只有在本学院有角色才会显示。
- 「缺姓名」与「缺主学院」搞混:缺姓名查
real_name,缺主学院查 college_id;已绑主学院但没填姓名的账号不算「无主学院」。 - 模块授了权用户还是看不到入口:检查该学院是否开通了该模块、用户角色是否匹配——三个条件同时满足才可见。
- 学院管理员不能改某用户模块权限/删除:目标是管理员或超管账号时会被拒;只能操作本学院非管理员账号。
- 新建教务处用户被拦截:教务处账号请到「校级部门 → 教务处」管理单位中创建并分配科室角色与模块,不要用普通新建表单。
- 系部替换担心误伤其他学院同名系部:替换强制带
college_id,仅改本学院;执行前务必先用「替换预览」核对影响范围与是否合并。 - 预览账号点按钮没反应:预览/只读账号所有写操作被替换为「仅预览」提示并被后端拦截,属预期行为。
相关页面
- 登录与注册 账号注册/登录与首登初始化(学院管理员账号首登需完成 Napcat Token 初始化)
- 流程设计 资料报送/归档审核流程的角色节点,依赖此处分配的角色与责任教授绑定
- 课程考核材料归档 归档的责任教授范围、系部口径来源于此处的角色与绑定
- 教学资料报送 教学资料报送的审核角色、模块开通由本页控制
- 监考安排管理 监考模块的可见性同样受学院模块开关与用户模块权限约束