From c43663a1d1f772753966df0ef50b93cd626442ea Mon Sep 17 00:00:00 2001 From: undefined Date: Wed, 21 Apr 2021 13:33:07 +0800 Subject: [PATCH] core: fix argument validation for script --- packages/hydrooj/package.json | 2 +- packages/hydrooj/src/handler/manage.ts | 2 +- packages/hydrooj/src/model/setting.ts | 1 - packages/hydrooj/src/script/blacklist.ts | 8 +++----- packages/migrate-vijos/script.ts | 5 ----- 5 files changed, 5 insertions(+), 13 deletions(-) diff --git a/packages/hydrooj/package.json b/packages/hydrooj/package.json index c913af3c3..176540adc 100644 --- a/packages/hydrooj/package.json +++ b/packages/hydrooj/package.json @@ -1,6 +1,6 @@ { "name": "hydrooj", - "version": "2.23.12", + "version": "2.23.13", "bin": "bin/hydrooj.js", "main": "dist/loader.js", "typings": "dist/loader.d.ts", diff --git a/packages/hydrooj/src/handler/manage.ts b/packages/hydrooj/src/handler/manage.ts index 6bef43af3..f553d7663 100644 --- a/packages/hydrooj/src/handler/manage.ts +++ b/packages/hydrooj/src/handler/manage.ts @@ -108,7 +108,7 @@ class SystemScriptHandler extends SystemHandler { if (!global.Hydro.script[id]) throw new ValidationError('id'); const args = JSON.parse(raw); validate(global.Hydro.script[id].validate, args); - const rid = await record.add(domainId, -1, this.user._id, '-', id, false, 'raw'); + const rid = await record.add(domainId, -1, this.user._id, '-', id, false, raw); const report = (data) => judge.next({ domainId, rid, ...data }); report({ message: `Running script: ${id} `, status: STATUS.STATUS_JUDGING }); const start = new Date().getTime(); diff --git a/packages/hydrooj/src/model/setting.ts b/packages/hydrooj/src/model/setting.ts index 9c959f1f8..8e30e7be1 100644 --- a/packages/hydrooj/src/model/setting.ts +++ b/packages/hydrooj/src/model/setting.ts @@ -182,7 +182,6 @@ SystemSetting( Setting('setting_session', 'session.unsaved_expire_seconds', 3600 * 3, 'number', 'session.unsaved_expire_seconds', 'Unsaved session expire seconds'), Setting('setting_storage', 'db.ver', 0, 'number', 'db.ver', 'Database version', FLAG_DISABLED | FLAG_HIDDEN), - Setting('setting_storage', 'user', 1, 'number', 'user', 'User Counter', FLAG_DISABLED | FLAG_HIDDEN), Setting('setting_storage', 'installid', String.random(64), 'text', 'installid', 'Installation ID', FLAG_HIDDEN | FLAG_DISABLED), ); diff --git a/packages/hydrooj/src/script/blacklist.ts b/packages/hydrooj/src/script/blacklist.ts index f38dcf798..55a9e5e01 100644 --- a/packages/hydrooj/src/script/blacklist.ts +++ b/packages/hydrooj/src/script/blacklist.ts @@ -76,11 +76,9 @@ export async function run({ } export const validate = { - $or: [ - { address: 'string' }, - { discuss: ObjectID }, - { user: 'number' }, - ], + address: 'string?', + discuss: 'string?', + user: 'number?', dryrun: 'boolean?', }; diff --git a/packages/migrate-vijos/script.ts b/packages/migrate-vijos/script.ts index 9c8a67143..827824a20 100644 --- a/packages/migrate-vijos/script.ts +++ b/packages/migrate-vijos/script.ts @@ -489,11 +489,6 @@ export async function run({ report({ message: 'No valid installation found' }); return false; } - await dst.collection('system').updateOne( - { _id: 'user' }, - { $set: { value: userCounter.value } }, - { upsert: true }, - ); await report({ progress: 1, message: 'Collection:system done.' }); if (!await dst.collection('system').findOne({ _id: 'migrateVijosFs' })) { const f = ['fs.files', 'fs.chunks'] as any;