From 6640c45912306b485069f023d34444ba4ff12d09 Mon Sep 17 00:00:00 2001 From: Vitaly Takmazov Date: Fri, 21 Sep 2018 10:20:55 +0300 Subject: hide banned from discussions --- .../src/main/java/com/juick/service/MessagesServiceImpl.java | 8 ++++++-- .../src/test/java/com/juick/server/tests/ServerTests.java | 2 ++ 2 files changed, 8 insertions(+), 2 deletions(-) diff --git a/juick-server/src/main/java/com/juick/service/MessagesServiceImpl.java b/juick-server/src/main/java/com/juick/service/MessagesServiceImpl.java index fbf22d59..0abe9309 100644 --- a/juick-server/src/main/java/com/juick/service/MessagesServiceImpl.java +++ b/juick-server/src/main/java/com/juick/service/MessagesServiceImpl.java @@ -575,9 +575,11 @@ public class MessagesServiceImpl extends BaseJdbcService implements MessagesServ .addValue("to", new Timestamp(to)); if (uid == 0) { - return getNamedParameterJdbcTemplate().query("SELECT message_id FROM messages" + + return getNamedParameterJdbcTemplate().query("SELECT message_id FROM messages WHERE " + (to != 0 ? - " WHERE updated < :to " : StringUtils.EMPTY) + + " updated < :to AND" : StringUtils.EMPTY) + + " NOT EXISTS (SELECT 1 from users u WHERE u.banned = 1" + + " AND u.id = messages.user_id and u.id <> :uid) " + " ORDER BY updated DESC, message_id DESC LIMIT 20", sqlParameterSource, (rs, rowNum) -> rs.getInt(1)); @@ -588,6 +590,8 @@ public class MessagesServiceImpl extends BaseJdbcService implements MessagesServ "WHERE suser_id = :uid " + (to != 0 ? "AND updated < :to " : StringUtils.EMPTY) + + " AND NOT EXISTS (SELECT 1 from users u WHERE u.banned = 1" + + " AND u.id = messages.user_id and u.id <> :uid) " + "ORDER BY updated DESC, message_id DESC LIMIT 20", sqlParameterSource, (rs, rowNum) -> rs.getInt(1)); diff --git a/juick-server/src/test/java/com/juick/server/tests/ServerTests.java b/juick-server/src/test/java/com/juick/server/tests/ServerTests.java index c3816fad..75024029 100644 --- a/juick-server/src/test/java/com/juick/server/tests/ServerTests.java +++ b/juick-server/src/test/java/com/juick/server/tests/ServerTests.java @@ -1372,6 +1372,8 @@ public class ServerTests { jdbcTemplate.update("UPDATE users SET banned=1 WHERE id=?", bannedUserId); messagesService.createMessage(bannedUserId, "KURWA", null, Collections.emptyList()); assertThat(messagesService.getAll(casualUserId, 0).size(), is(0)); + assertThat(messagesService.getDiscussions(casualUserId, 0L).size(), is(0)); + assertThat(messagesService.getDiscussions(0, 0L).size(), is(0)); assertThat(messagesService.getAll(bannedUserId, 0).size(), is(1)); int mid = messagesService.createMessage(casualUserId, "PEACE", null, Collections.emptyList()); User banned = userService.getUserByName("banned"); -- cgit v1.2.3