diff --git a/packages/hydrooj/package.json b/packages/hydrooj/package.json index 1fe214159..e8dcbcfd9 100644 --- a/packages/hydrooj/package.json +++ b/packages/hydrooj/package.json @@ -1,6 +1,6 @@ { "name": "hydrooj", - "version": "4.0.10", + "version": "4.0.11", "bin": "bin/hydrooj.js", "main": "src/plugin-api", "module": "src/plugin-api", diff --git a/packages/hydrooj/src/handler/record.ts b/packages/hydrooj/src/handler/record.ts index 23ddf5c0e..203d99f14 100644 --- a/packages/hydrooj/src/handler/record.ts +++ b/packages/hydrooj/src/handler/record.ts @@ -155,7 +155,7 @@ class RecordDetailHandler extends Handler { canViewCode ||= this.user.hasPriv(PRIV.PRIV_READ_RECORD_CODE); canViewCode ||= this.user.hasPerm(PERM.PERM_READ_RECORD_CODE); canViewCode ||= this.user.hasPerm(PERM.PERM_READ_RECORD_CODE_ACCEPT) && self?.status === STATUS.STATUS_ACCEPTED; - if (tdoc && contest.isDone(tdoc)) { + if (tdoc && tdoc.allowViewCode && contest.isDone(tdoc)) { const tsdoc = await contest.getStatus(domainId, tdoc.docId, this.user._id); canViewCode ||= tsdoc?.attend; } diff --git a/packages/hydrooj/src/interface.ts b/packages/hydrooj/src/interface.ts index f71c3d18d..10003ae78 100644 --- a/packages/hydrooj/src/interface.ts +++ b/packages/hydrooj/src/interface.ts @@ -351,6 +351,7 @@ export interface Tdoc