summaryrefslogtreecommitdiff
path: root/src/server/api/endpoints/users
diff options
context:
space:
mode:
authorMeiMei <30769358+mei23@users.noreply.github.com>2020-01-02 02:47:20 +0900
committersyuilo <Syuilotan@yahoo.co.jp>2020-01-02 02:47:20 +0900
commit541f5f13149022dc637a4afb5ff91d103e2ed7d6 (patch)
tree82c2ff166507e48726b7bf923c494e81a18569bf /src/server/api/endpoints/users
parentFix: リモートプロキシ時にサムネイルのContent-Typeがおかし... (diff)
downloadsharkey-541f5f13149022dc637a4afb5ff91d103e2ed7d6.tar.gz
sharkey-541f5f13149022dc637a4afb5ff91d103e2ed7d6.tar.bz2
sharkey-541f5f13149022dc637a4afb5ff91d103e2ed7d6.zip
Hide suspended user profile (#5452)
Diffstat (limited to 'src/server/api/endpoints/users')
-rw-r--r--src/server/api/endpoints/users/show.ts9
1 files changed, 7 insertions, 2 deletions
diff --git a/src/server/api/endpoints/users/show.ts b/src/server/api/endpoints/users/show.ts
index d17dd51c0a..f49017a8c3 100644
--- a/src/server/api/endpoints/users/show.ts
+++ b/src/server/api/endpoints/users/show.ts
@@ -66,13 +66,18 @@ export const meta = {
export default define(meta, async (ps, me) => {
let user;
+ const isAdminOrModerator = me && (me.isAdmin || me.isModerator);
+
if (ps.userIds) {
if (ps.userIds.length === 0) {
return [];
}
- const users = await Users.find({
+ const users = await Users.find(isAdminOrModerator ? {
id: In(ps.userIds)
+ } : {
+ id: In(ps.userIds),
+ isSuspended: false
});
return await Promise.all(users.map(u => Users.pack(u, me, {
@@ -93,7 +98,7 @@ export default define(meta, async (ps, me) => {
user = await Users.findOne(q);
}
- if (user == null) {
+ if (user == null || (!isAdminOrModerator && user.isSuspended)) {
throw new ApiError(meta.errors.noSuchUser);
}