Step5:日志与权限
模块目标
- 实现评测日志的记录与查询,提升系统可追溯性和调试能力。
- 增加细粒度权限管理,如是否允许用户查看评测日志、测例详情等。
- 支持管理员对日志和权限的管理与审计。
前置知识要求
技术点 |
推荐学习内容 |
日志设计 |
日志结构、存储与查询 |
权限控制 |
角色权限、接口校验 |
REST API 设计 |
GET 路由、权限参数 |
任务分解
任务 1:评测日志记录与查询
- 目标:为每次评测任务记录详细日志(如输入、输出、运行信息、错误信息等)。
- 要点:日志应与评测任务关联,支持按 submission_id 查询。
- 建议:日志内容包括每个测例的输入、输出、预期输出、运行状态、错误信息等。
任务 2:日志权限管理
- 目标:实现细粒度权限控制,决定哪些用户可以查看哪些日志内容。
- 要点:
- 普通用户仅能查看自己的评测日志,且默认只显示简要信息(如通过/未通过、运行时间、内存等)。
- 管理员可查看所有日志,包括详细测例输入输出、错误详情等。
- 可扩展"允许公开测例"功能,支持题目设置是否允许所有用户查看测例详情。
任务 3:权限配置与审计
- 目标:支持管理员配置日志和测例的可见性策略,并能审计用户的日志访问行为。
- 要点:权限配置可针对题目、用户角色等维度,审计日志记录用户的访问操作。
评分细则
功能/接口 |
分值 |
评分说明 |
日志记录与查询 |
2 |
日志结构、查询接口、内容裁剪 |
日志/测例权限管理 |
2 |
权限配置、接口校验 |
审计与安全说明 |
1 |
日志访问审计、敏感信息保护 |
小计 |
5 |
|