From a256953510209f66aca3de2becf6591f0383246d Mon Sep 17 00:00:00 2001 From: undefined Date: Sat, 8 Jan 2022 14:16:13 +0800 Subject: [PATCH] core: disable assign check for problem_list due to performance issue --- packages/hydrooj/package.json | 2 +- packages/hydrooj/src/handler/problem.ts | 21 +++++---------------- 2 files changed, 6 insertions(+), 17 deletions(-) diff --git a/packages/hydrooj/package.json b/packages/hydrooj/package.json index f5817bb2d..5369f0042 100644 --- a/packages/hydrooj/package.json +++ b/packages/hydrooj/package.json @@ -1,6 +1,6 @@ { "name": "hydrooj", - "version": "3.3.4", + "version": "3.3.5", "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 4ba30d694..8f3465282 100644 --- a/packages/hydrooj/src/handler/problem.ts +++ b/packages/hydrooj/src/handler/problem.ts @@ -98,24 +98,13 @@ registerResolver( ); function buildQuery(udoc: User) { - const q: FilterQuery = { - $or: [ - { - $and: [ - { - $or: [ - { assign: { $size: 0 } }, - { assign: { $in: udoc.group } }, - ], - }, - ], - }, + const q: FilterQuery = {}; + if (!udoc.hasPerm(PERM.PERM_VIEW_PROBLEM_HIDDEN)) { + q.$or = [ + { hidden: false }, { owner: udoc._id }, { maintainer: udoc._id }, - ], - }; - if (udoc.hasPerm(PERM.PERM_VIEW_PROBLEM_HIDDEN)) { - q.$or[0].$and.push({ hidden: false }); + ]; } return q; }