From e27433019128b2378ee4d9094ce5ad781a6dcd0f Mon Sep 17 00:00:00 2001 From: Langning Chen Date: Mon, 12 Aug 2024 11:56:36 +0800 Subject: [PATCH] core: fix OI mode contest score leak (#860) Co-authored-by: undefined --- packages/hydrooj/src/handler/contest.ts | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/packages/hydrooj/src/handler/contest.ts b/packages/hydrooj/src/handler/contest.ts index 9d85c3d63..32a9b9aa7 100644 --- a/packages/hydrooj/src/handler/contest.ts +++ b/packages/hydrooj/src/handler/contest.ts @@ -222,7 +222,7 @@ export class ContestProblemListHandler extends ContestDetailBaseHandler { contest.getMultiClarification(domainId, tid, this.user._id), ]); this.response.body = { - pdict, psdict: {}, udict, rdict: {}, tdoc: this.tdoc, tsdoc: this.tsdoc, tcdocs, + pdict, psdict: {}, udict, rdict: {}, tdoc: this.tdoc, tcdocs, }; this.response.template = 'contest_problemlist.html'; this.response.body.showScore = Object.values(this.tdoc.score || {}).some((i) => i && i !== 100); @@ -231,6 +231,7 @@ export class ContestProblemListHandler extends ContestDetailBaseHandler { await contest.setStatus(domainId, tid, this.user._id, { startAt: new Date() }); this.tsdoc.startAt = new Date(); } + this.response.body.tsdoc = pick(this.tsdoc, ['attend', 'startAt', ...(this.tdoc.duration ? ['endAt'] : [])]); this.response.body.psdict = this.tsdoc.detail || {}; const psdocs: any[] = Object.values(this.response.body.psdict); const canViewRecord = contest.canShowSelfRecord.call(this, this.tdoc);