From 541f5f13149022dc637a4afb5ff91d103e2ed7d6 Mon Sep 17 00:00:00 2001 From: MeiMei <30769358+mei23@users.noreply.github.com> Date: Thu, 2 Jan 2020 02:47:20 +0900 Subject: Hide suspended user profile (#5452) --- src/server/api/endpoints/i/notifications.ts | 8 +++++++- 1 file changed, 7 insertions(+), 1 deletion(-) (limited to 'src/server/api/endpoints/i') diff --git a/src/server/api/endpoints/i/notifications.ts b/src/server/api/endpoints/i/notifications.ts index aa72e9a176..cd00501a2e 100644 --- a/src/server/api/endpoints/i/notifications.ts +++ b/src/server/api/endpoints/i/notifications.ts @@ -3,7 +3,7 @@ import { ID } from '../../../../misc/cafy-id'; import { readNotification } from '../../common/read-notification'; import define from '../../define'; import { makePaginationQuery } from '../../common/make-pagination-query'; -import { Notifications, Followings, Mutings } from '../../../../models'; +import { Notifications, Followings, Mutings, Users } from '../../../../models'; export const meta = { desc: { @@ -72,6 +72,10 @@ export default define(meta, async (ps, user) => { .select('muting.muteeId') .where('muting.muterId = :muterId', { muterId: user.id }); + const suspendedQuery = Users.createQueryBuilder('users') + .select('id') + .where('users.isSuspended = TRUE'); + const query = makePaginationQuery(Notifications.createQueryBuilder('notification'), ps.sinceId, ps.untilId) .andWhere(`notification.notifieeId = :meId`, { meId: user.id }) .leftJoinAndSelect('notification.notifier', 'notifier'); @@ -79,6 +83,8 @@ export default define(meta, async (ps, user) => { query.andWhere(`notification.notifierId NOT IN (${ mutingQuery.getQuery() })`); query.setParameters(mutingQuery.getParameters()); + query.andWhere(`notification.notifierId NOT IN (${ suspendedQuery.getQuery() })`); + if (ps.following) { query.andWhere(`((notification.notifierId IN (${ followingQuery.getQuery() })) OR (notification.notifierId = :meId))`, { meId: user.id }); query.setParameters(followingQuery.getParameters()); -- cgit v1.2.3-freya