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) { %>
<% if (judge.allowedRejudge) { %> - 重新评测 + 重新评测 + <% } %>
<%- judge.code %>
@@ -196,7 +227,7 @@ $(function() { }); -<% if (!isPending(judge.status)) { %>
<% } %> +<% if (!isPending(judge.status)) { %>
<% } %>