From 30444e5f1abcefeef49cd54d44ff0c8db79d41c2 Mon Sep 17 00:00:00 2001 From: syuilo Date: Tue, 21 Aug 2018 01:03:58 +0900 Subject: [PATCH] =?UTF-8?q?#2359=20=E3=81=AA=E3=81=A9?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- src/models/user.ts | 1 + src/server/api/call.ts | 2 +- src/server/api/endpoints/admin/suspend-user.ts | 4 ++++ 3 files changed, 6 insertions(+), 1 deletion(-) diff --git a/src/models/user.ts b/src/models/user.ts index fdbb245fa..31d09bc8f 100644 --- a/src/models/user.ts +++ b/src/models/user.ts @@ -118,6 +118,7 @@ export interface IRemoteUser extends IUserBase { publicKeyPem: string; }; updatedAt: Date; + isAdmin: false; } export type IUser = ILocalUser | IRemoteUser; diff --git a/src/server/api/call.ts b/src/server/api/call.ts index e4bb30b69..c191701b0 100644 --- a/src/server/api/call.ts +++ b/src/server/api/call.ts @@ -21,7 +21,7 @@ export default (endpoint: string, user: IUser, app: IApp, data: any, file?: any) return rej('YOUR_ACCOUNT_HAS_BEEN_SUSPENDED'); } - if (ep.meta.requireAdmin && !(isLocalUser(user) && user.isAdmin)) { + if (ep.meta.requireAdmin && !user.isAdmin) { return rej('YOU_ARE_NOT_ADMIN'); } diff --git a/src/server/api/endpoints/admin/suspend-user.ts b/src/server/api/endpoints/admin/suspend-user.ts index 9c32ba987..9b492c6e1 100644 --- a/src/server/api/endpoints/admin/suspend-user.ts +++ b/src/server/api/endpoints/admin/suspend-user.ts @@ -34,6 +34,10 @@ export default (params: any) => new Promise(async (res, rej) => { return rej('user not found'); } + if (user.isAdmin) { + return rej('cannot suspend admin'); + } + await User.findOneAndUpdate({ _id: user._id }, {