From 71a5f6dd13fcae417bd9480a4c432b5e75d6b50d Mon Sep 17 00:00:00 2001 From: undefined Date: Wed, 1 Dec 2021 17:51:30 +0800 Subject: [PATCH] core: also hide hidden problem when search --- packages/hydrooj/package.json | 2 +- packages/hydrooj/src/handler/problem.ts | 6 ++++++ 2 files changed, 7 insertions(+), 1 deletion(-) diff --git a/packages/hydrooj/package.json b/packages/hydrooj/package.json index 54e1a6db7..56ba692ad 100644 --- a/packages/hydrooj/package.json +++ b/packages/hydrooj/package.json @@ -1,6 +1,6 @@ { "name": "hydrooj", - "version": "3.1.46", + "version": "3.1.47", "bin": "bin/hydrooj.js", "main": "src/loader", "module": "src/loader", diff --git a/packages/hydrooj/src/handler/problem.ts b/packages/hydrooj/src/handler/problem.ts index 5aeb177d2..6e5a1a1cd 100644 --- a/packages/hydrooj/src/handler/problem.ts +++ b/packages/hydrooj/src/handler/problem.ts @@ -161,6 +161,12 @@ export class ProblemMainHandler extends ProblemHandler { pdocs.unshift(pdoc); pcount = pcount - count + pdocs.length; } + const canViewHidden = this.user.hasPerm(PERM.PERM_VIEW_PROBLEM_HIDDEN); + if (!canViewHidden) { + const unshift = []; + for (const doc of pdocs) if (doc.hidden && !this.user.own(doc)) unshift.push(doc); + for (const task of unshift) pdocs.unshift(task); + } } if (this.user.hasPriv(PRIV.PRIV_USER_PROFILE)) { psdict = await problem.getListStatus(