summaryrefslogtreecommitdiff
path: root/src
diff options
context:
space:
mode:
authorsyuilo <syuilotan@yahoo.co.jp>2018-08-21 01:03:58 +0900
committersyuilo <syuilotan@yahoo.co.jp>2018-08-21 01:03:58 +0900
commit30444e5f1abcefeef49cd54d44ff0c8db79d41c2 (patch)
tree468b47b291d7585c4922f6db1877bae1c9892414 /src
parentFix bug (diff)
downloadsharkey-30444e5f1abcefeef49cd54d44ff0c8db79d41c2.tar.gz
sharkey-30444e5f1abcefeef49cd54d44ff0c8db79d41c2.tar.bz2
sharkey-30444e5f1abcefeef49cd54d44ff0c8db79d41c2.zip
#2359 など
Diffstat (limited to 'src')
-rw-r--r--src/models/user.ts1
-rw-r--r--src/server/api/call.ts2
-rw-r--r--src/server/api/endpoints/admin/suspend-user.ts4
3 files changed, 6 insertions, 1 deletions
diff --git a/src/models/user.ts b/src/models/user.ts
index fdbb245faa..31d09bc8f8 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 e4bb30b695..c191701b02 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 9c32ba987d..9b492c6e15 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
}, {