diff --git a/packages/hydrooj/package.json b/packages/hydrooj/package.json index 1fcc5301c..4c7dfeeb3 100644 --- a/packages/hydrooj/package.json +++ b/packages/hydrooj/package.json @@ -1,6 +1,6 @@ { "name": "hydrooj", - "version": "2.13.51", + "version": "2.13.52", "bin": "bin/hydrooj.js", "main": "dist/loader.js", "typings": "dist/loader.d.ts", diff --git a/packages/hydrooj/src/handler/record.ts b/packages/hydrooj/src/handler/record.ts index 5df3b214e..573e00bf0 100644 --- a/packages/hydrooj/src/handler/record.ts +++ b/packages/hydrooj/src/handler/record.ts @@ -78,10 +78,16 @@ class RecordDetailHandler extends RecordHandler { if (rdoc.uid !== this.user.uid && !this.user.hasPerm(PERM.PERM_READ_RECORD_CODE)) { rdoc.code = null; } - const [pdoc, udoc] = await Promise.all([ + // eslint-disable-next-line prefer-const + let [pdoc, udoc] = await Promise.all([ problem.get(domainId, rdoc.pid), user.getById(domainId, rdoc.uid), ]); + if (!rdoc.contest && pdoc.hidden && pdoc.owner !== this.user._id) { + if (this.user.hasPerm(PERM.PERM_VIEW_PROBLEM_HIDDEN)) { + pdoc = problem.Pdoc.create(pdoc.docId, pdoc.pid); + } + } this.response.body = { path: [ ['Hydro', 'homepage'],