From fa10caaba182ea8eedf1fb40ed409bfce7b69b1f Mon Sep 17 00:00:00 2001 From: undefined Date: Wed, 4 Nov 2020 23:46:17 +0800 Subject: [PATCH] =?UTF-8?q?core:=20=E4=BF=AE=E5=A4=8D=E6=97=A0=E6=B3=95?= =?UTF-8?q?=E5=88=A0=E9=99=A4=E8=87=AA=E5=AE=9A=E6=9D=83=E9=99=90=E7=BB=84?= =?UTF-8?q?=E7=9A=84=E9=97=AE=E9=A2=98?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- packages/hydrooj/package.json | 2 +- packages/hydrooj/src/handler/domain.ts | 3 ++- packages/hydrooj/src/service/server.ts | 5 +++++ 3 files changed, 8 insertions(+), 2 deletions(-) diff --git a/packages/hydrooj/package.json b/packages/hydrooj/package.json index 8c575a370..ebaeb3905 100644 --- a/packages/hydrooj/package.json +++ b/packages/hydrooj/package.json @@ -1,6 +1,6 @@ { "name": "hydrooj", - "version": "2.13.38", + "version": "2.13.39", "bin": "bin/hydrooj.js", "main": "dist/loader.js", "typings": "dist/loader.d.ts", diff --git a/packages/hydrooj/src/handler/domain.ts b/packages/hydrooj/src/handler/domain.ts index ab1da0829..169ea95d7 100644 --- a/packages/hydrooj/src/handler/domain.ts +++ b/packages/hydrooj/src/handler/domain.ts @@ -179,7 +179,8 @@ class DomainRoleHandler extends ManageHandler { this.back(); } - async postDelete({ domainId, roles }) { + @param('roles', Types.Array) + async postDelete(domainId: string, roles: string[]) { for (const role of roles) { if (['root', 'default', 'guest'].includes(role)) { throw new ValidationError('role'); diff --git a/packages/hydrooj/src/service/server.ts b/packages/hydrooj/src/service/server.ts index 9c64acd0e..dc16f9a06 100644 --- a/packages/hydrooj/src/service/server.ts +++ b/packages/hydrooj/src/service/server.ts @@ -63,6 +63,7 @@ export interface Types { Date: Type, Time: Type, Range: (range: Array | Dictionary) => Type, + Array: Type, } export const Types: Types = { @@ -130,6 +131,10 @@ export const Types: Types = { return false; }, ], + Array: [(v) => { + if (v instanceof Array) return v; + return [v] || []; + }, null], }; function _buildParam(name: string, source: 'get' | 'post' | 'all' | 'route', ...args: Array) {