确认重新评测该提交记录吗?
+警告:只有管理员可以重新评测一个未评测完成的记录,
这种情况一般发生在评测服务中断后,如果一个提交正在被评测,
则将其重新评测会导致系统错乱!
diff --git a/modules/submission.js b/modules/submission.js index af2a6b3..b06f1c3 100644 --- a/modules/submission.js +++ b/modules/submission.js @@ -244,7 +244,7 @@ app.post('/submission/:id/rejudge', async (req, res) => { let id = parseInt(req.params.id); let judge = await JudgeState.fromID(id); - if (judge.pending && !req.query.force) throw new ErrorMessage('无法重新评测一个评测中的提交。'); + if (judge.pending && !(res.locals.user && await res.locals.user.hasPrivilege('manage_problem'))) throw new ErrorMessage('无法重新评测一个评测中的提交。'); await judge.loadRelationships(); diff --git a/views/submission_content.ejs b/views/submission_content.ejs index 436c5ff..47bac1d 100644 --- a/views/submission_content.ejs +++ b/views/submission_content.ejs @@ -92,7 +92,38 @@ else problemUrl = syzoj.utils.makeUrl(['problem', judge.problem_id]); <% if (judge.problem.type !== 'submit-answer' && judge.allowedSeeCode) { %>
重新评测
+确认重新评测该提交记录吗?
+警告:只有管理员可以重新评测一个未评测完成的记录,
这种情况一般发生在评测服务中断后,如果一个提交正在被评测,
则将其重新评测会导致系统错乱!
<%- judge.code %>