From 16b9cb461e54c8f0dbc74e50ea6a322b9afec079 Mon Sep 17 00:00:00 2001 From: undefined Date: Thu, 10 Feb 2022 17:16:26 +0800 Subject: [PATCH] core: also check lang limit of current domain --- packages/hydrooj/package.json | 2 +- packages/hydrooj/src/handler/problem.ts | 10 ++++++---- 2 files changed, 7 insertions(+), 5 deletions(-) diff --git a/packages/hydrooj/package.json b/packages/hydrooj/package.json index cbb45f33b..5d5122fe4 100644 --- a/packages/hydrooj/package.json +++ b/packages/hydrooj/package.json @@ -1,6 +1,6 @@ { "name": "hydrooj", - "version": "3.4.16", + "version": "3.4.17", "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 0e6307cfd..ef713604e 100644 --- a/packages/hydrooj/src/handler/problem.ts +++ b/packages/hydrooj/src/handler/problem.ts @@ -310,10 +310,12 @@ export class ProblemDetailHandler extends ProblemHandler { this.pdoc.config = pdoc.config; } if (ddoc.langs && typeof this.pdoc.config !== 'string') { - this.pdoc.config.langs = intersection( - this.pdoc.config.langs || ddoc.langs.split(','), - ddoc.langs.split(','), - ); + const dl = ddoc.langs.split(',').map((i) => i.trim()).filter((i) => i); + this.pdoc.config.langs = intersection(this.pdoc.config.langs || dl, dl); + } + if (this.domain.langs && typeof this.pdoc.config !== 'string') { + const dl = this.domain.langs.split(',').map((i) => i.trim()).filter((i) => i); + this.pdoc.config.langs = intersection(this.pdoc.config.langs || dl, dl); } await bus.serial('problem/get', this.pdoc, this); [this.psdoc, this.udoc] = await Promise.all([