From b13b8835ec99033d35df87248341191930332d5f Mon Sep 17 00:00:00 2001 From: undefined Date: Sun, 27 Jun 2021 21:30:12 +0800 Subject: [PATCH] =?UTF-8?q?core:=20=E5=BF=BD=E7=95=A5=E5=9F=9Fid=E4=B8=AD?= =?UTF-8?q?=E5=A4=A7=E5=B0=8F=E5=86=99=E5=B7=AE=E5=BC=82?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- packages/hydrooj/package.json | 2 +- packages/hydrooj/src/model/domain.ts | 4 +++- packages/hydrooj/src/upgrade.ts | 5 +++++ 3 files changed, 9 insertions(+), 2 deletions(-) diff --git a/packages/hydrooj/package.json b/packages/hydrooj/package.json index 8f4627cf1..02d6b4a50 100644 --- a/packages/hydrooj/package.json +++ b/packages/hydrooj/package.json @@ -1,6 +1,6 @@ { "name": "hydrooj", - "version": "2.28.55", + "version": "2.28.56", "bin": "bin/hydrooj.js", "main": "dist/loader.js", "typings": "dist/loader.d.ts", diff --git a/packages/hydrooj/src/model/domain.ts b/packages/hydrooj/src/model/domain.ts index e656eebe1..897750eb5 100644 --- a/packages/hydrooj/src/model/domain.ts +++ b/packages/hydrooj/src/model/domain.ts @@ -45,6 +45,7 @@ class DomainModel { static async add(domainId: string, owner: number, name: string, bulletin: string) { const ddoc: DomainDoc = { _id: domainId, + lower: domainId.toLowerCase(), owner, name, bulletin, @@ -59,7 +60,7 @@ class DomainModel { @ArgMethod static async get(domainId: string): Promise { - const query: FilterQuery = { _id: domainId }; + const query: FilterQuery = { lower: domainId.toLowerCase() }; await bus.serial('domain/before-get', query); const result = await coll.findOne(query); await bus.serial('domain/get', result); @@ -274,5 +275,6 @@ class DomainModel { } } +bus.on('app/started', () => coll.createIndex({ lower: 1 }, { unique: true })); export default DomainModel; global.Hydro.model.domain = DomainModel; diff --git a/packages/hydrooj/src/upgrade.ts b/packages/hydrooj/src/upgrade.ts index 2b152ce2f..387fee075 100644 --- a/packages/hydrooj/src/upgrade.ts +++ b/packages/hydrooj/src/upgrade.ts @@ -423,6 +423,11 @@ const scripts: UpgradeScript[] = [ }); return true; }, + async function _34_35() { + const _FRESH_INSTALL_IGNORE = 1; + await iterateAllDomain((ddoc) => domain.edit(ddoc._id, { lower: ddoc._id.toLowerCase() })); + return true; + }, ]; export default scripts;