跳转至

Step5:日志与权限

模块目标

  • 实现评测日志的记录与查询,提升系统可追溯性和调试能力。
  • 增加细粒度权限管理,如是否允许用户查看评测日志、测例详情等。
  • 支持管理员对日志和权限的管理与审计。

前置知识要求

技术点 推荐学习内容
日志设计 日志结构、存储与查询
权限控制 角色权限、接口校验
REST API 设计 GET 路由、权限参数

任务分解

任务 1:评测日志记录与查询

  • 目标:为每次评测任务记录详细日志(如输入、输出、运行信息、错误信息等)。
  • 要点:日志应与评测任务关联,支持按 submission_id 查询。
  • 建议:日志内容包括每个测例的输入、输出、预期输出、运行状态、错误信息等。

任务 2:日志权限管理

  • 目标:实现细粒度权限控制,决定哪些用户可以查看哪些日志内容。
  • 要点:
  • 普通用户仅能查看自己的评测日志,且默认只显示简要信息(如通过/未通过、运行时间、内存等)。
  • 管理员可查看所有日志,包括详细测例输入输出、错误详情等。
  • 可扩展"允许公开测例"功能,支持题目设置是否允许所有用户查看测例详情。

任务 3:权限配置与审计

  • 目标:支持管理员配置日志和测例的可见性策略,并能审计用户的日志访问行为。
  • 要点:权限配置可针对题目、用户角色等维度,审计日志记录用户的访问操作。

评分细则

功能/接口 分值 评分说明
日志记录与查询 2 日志结构、查询接口、内容裁剪
日志/测例权限管理 2 权限配置、接口校验
审计与安全说明 1 日志访问审计、敏感信息保护
小计 5
作者:Haoran Wang