From c1da60a37e3b34d304b3ead68507648afeae0b8a Mon Sep 17 00:00:00 2001 From: undefined Date: Sat, 14 Nov 2020 13:00:16 +0800 Subject: [PATCH] =?UTF-8?q?core:=20=E4=BC=98=E5=8C=96=E6=AF=94=E8=B5=9B?= =?UTF-8?q?=E6=A8=A1=E5=9D=97=E9=89=B4=E6=9D=83=EF=BC=88=E6=AF=94=E8=B5=9B?= =?UTF-8?q?=E7=BB=93=E6=9D=9F=E6=97=B6=E5=8F=AF=E8=87=AA=E7=94=B1=E6=9F=A5?= =?UTF-8?q?=E7=9C=8B=E9=A2=98=E7=9B=AE=EF=BC=89?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- packages/hydrooj/package.json | 2 +- packages/hydrooj/src/entry/master.ts | 2 +- packages/hydrooj/src/handler/contest.ts | 3 ++- packages/hydrooj/src/model/setting.ts | 2 +- 4 files changed, 5 insertions(+), 4 deletions(-) diff --git a/packages/hydrooj/package.json b/packages/hydrooj/package.json index 43a893097..a7c015210 100644 --- a/packages/hydrooj/package.json +++ b/packages/hydrooj/package.json @@ -1,6 +1,6 @@ { "name": "hydrooj", - "version": "2.13.50", + "version": "2.13.51", "bin": "bin/hydrooj.js", "main": "dist/loader.js", "typings": "dist/loader.d.ts", diff --git a/packages/hydrooj/src/entry/master.ts b/packages/hydrooj/src/entry/master.ts index c6fb595f4..41132e17c 100644 --- a/packages/hydrooj/src/entry/master.ts +++ b/packages/hydrooj/src/entry/master.ts @@ -59,7 +59,7 @@ export async function load(call: Entry) { for (const i of builtinModel) require(`../model/${i}`); const modelSystem = require('../model/system'); const scripts = require('../upgrade'); - let dbVer = (await modelSystem.get('db.ver')) || 0; + let dbVer = (await modelSystem.get('db.ver')) ?? 0; const expected = scripts.length; while (dbVer < expected) { logger.info('Upgrading database: from %d to %d', dbVer, expected); diff --git a/packages/hydrooj/src/handler/contest.ts b/packages/hydrooj/src/handler/contest.ts index 6940997ae..134d8080d 100644 --- a/packages/hydrooj/src/handler/contest.ts +++ b/packages/hydrooj/src/handler/contest.ts @@ -241,7 +241,7 @@ class ContestProblemHandler extends ContestHandler { ]); this.attended = this.tsdoc && this.tsdoc.attend === 1; this.response.template = 'problem_detail.html'; - if (contest.isDone(this.tdoc)) { + if (!contest.isDone(this.tdoc)) { if (!this.attended) throw new ContestNotAttendedError(this.tdoc.docId); if (contest.isNotStarted(this.tdoc)) throw new ContestNotLiveError(this.tdoc.docId); } @@ -272,6 +272,7 @@ class ContestProblemSubmitHandler extends ContestProblemHandler { @param('tid', Types.ObjectID) @param('pid', Types.UnsignedInt) async prepare(domainId: string, tid: ObjectID, pid: number) { + if (contest.isOngoing(this.tdoc)) throw new ContestNotLiveError(this.tdoc.docId); let rdocs = []; if (this.canShowRecord(this.tdoc)) { rdocs = await record.getUserInProblemMulti( diff --git a/packages/hydrooj/src/model/setting.ts b/packages/hydrooj/src/model/setting.ts index 05daae503..0cf40c9ee 100644 --- a/packages/hydrooj/src/model/setting.ts +++ b/packages/hydrooj/src/model/setting.ts @@ -138,7 +138,7 @@ SystemSetting( Setting('setting_session', 'session.secure', null, false, 'boolean', 'session.secure'), Setting('setting_session', 'session.saved_expire_seconds', null, 3600 * 24 * 30, 'number', 'Saved session expire seconds'), Setting('setting_session', 'session.unsaved_expire_seconds', null, 3600 * 3, 'number', 'Unsaved session expire seconds'), - Setting('setting_storage', 'db.ver', null, 1, 'number', 'Database version', null, FLAG_DISABLED | FLAG_HIDDEN), + Setting('setting_storage', 'db.ver', null, 0, 'number', 'Database version', null, FLAG_DISABLED | FLAG_HIDDEN), Setting('setting_storage', 'user', null, 1, 'number', 'User Counter', null, FLAG_DISABLED | FLAG_HIDDEN), );