组织与权限
砚考用一棵组织树描述机构结构,权限就挂在这棵树的节点上。理解这一点,权限配置就不会乱。
组织树
典型结构
高校:
text
XX 大学
├── 计算机学院
│ ├── 计算机科学与技术
│ │ ├── 2024 级 1 班
│ │ └── 2024 级 2 班
│ └── 软件工程
└── 数学学院企业:
text
XX 集团
├── 华东分公司
│ ├── 技术部
│ └── 销售部
└── 华南分公司组织节点类型:机构 / 院系 / 专业 / 班级 / 部门 / 小组 / 自定义。 节点下可以挂成员,也可以挂子组织。
维护方式
| 方式 | 说明 |
|---|---|
| 手工维护 | 在组织管理页逐个添加 |
| Excel 批量导入 | 三列:节点路径、姓名、学号/工号 |
| 对接教务/人事系统 | 定时同步(私有化部署可配置) |
| API 同步 | 见 开放 API |
学号/工号是唯一键
砚考用学号/工号识别人员身份。转班、调岗只需在组织树中移动节点, 历史考试记录与成绩会自动跟随,不会丢失。
权限模型
砚考采用 RBAC + 数据范围 的组合模型:
text
权限 = 角色(能做什么) + 数据范围(能看到谁的数据)例如:
| 用户 | 角色 | 数据范围 | 实际能力 |
|---|---|---|---|
| 张老师 | 教师 | 计算机学院 | 管理计算机学院的题库、考试,看不到数学学院 |
| 李教务 | 考务管理员 | 全校 | 管理所有考试,但不能改题库内容 |
| 王院长 | 机构管理员 | 计算机学院 | 学院内全部权限,含成员与角色管理 |
数据范围的继承
授予某个节点的权限自动向下继承到所有子节点。 授予「计算机学院」即覆盖其下所有专业与班级。
如需排除某个子节点,可添加「例外」,但建议尽量少用 —— 例外多了权限就难以推理。
角色清单
详见 用户与角色,这里给出概览:
| 角色 | 典型职责 |
|---|---|
| 超级管理员 | 系统级配置,通常只有 1—2 人 |
| 机构管理员 | 本机构内的组织、成员、角色管理 |
| 考务管理员 | 考试发布、排期、监考、违纪处理 |
| 题库管理员 | 题库建设与审核 |
| 教师 | 出题、组卷、阅卷 |
| 阅卷员 | 仅阅卷 |
| 监考员 | 仅监考,不能看成绩 |
| 学生 / 考生 | 参加考试、查看自己的成绩 |
| 审计员 | 只读,可查看所有操作日志 |
权限检查清单
新机构上线时建议按此顺序配置:
- [ ] 搭好组织树,导入成员
- [ ] 确认各角色的默认权限包是否符合本校/本企业管理习惯
- [ ] 为每位教师授予对应院系节点的「教师」角色
- [ ] 指定 1—2 名考务管理员,赋予全校范围
- [ ] 开启 系统设置 中的登录策略与密码强度
- [ ] 用测试账号从教师、学生两个视角各走一遍,确认数据隔离正确
谨慎授予「超级管理员」
超级管理员可以修改系统级配置并查看审计日志。 建议只授予技术运维人员,且开启双因素认证。
多租户
SaaS 与集群版支持多租户:
- 每个租户拥有独立的组织树、题库、考试数据
- 租户之间数据完全隔离
- 平台管理员可跨租户查看资源使用统计,但看不到业务数据
私有化部署时,一个实例通常就是一个租户。
常见问题
学生转班后,之前的成绩还在吗? 在。成绩挂在「人」上而不是「班级」上,移动组织节点不影响历史数据。 班级维度的历史统计按当时的归属计算,不会因为转班而重算。
一个人可以同时是教师和学生吗? 可以。一个账号可被授予多个角色,角色之间权限取并集。 助教兼研究生的场景很常见。