diff options
author | Vitaly Takmazov | 2019-04-26 17:29:25 +0300 |
---|---|---|
committer | Vitaly Takmazov | 2019-04-26 17:29:25 +0300 |
commit | 1b5d8ba596869e7321dd7a0f4757d08306a4d9fd (patch) | |
tree | 5c2ec24ecd1f15fa01618d2938d55e3df6b01f76 /src/main/java/com/juick/server | |
parent | a34350b62784d4332243ba40ffe928afd91f67d3 (diff) |
Minimize SQL queries for banned users
Diffstat (limited to 'src/main/java/com/juick/server')
5 files changed, 8 insertions, 10 deletions
diff --git a/src/main/java/com/juick/server/CommandsManager.java b/src/main/java/com/juick/server/CommandsManager.java index fdea0d83..634deb35 100644 --- a/src/main/java/com/juick/server/CommandsManager.java +++ b/src/main/java/com/juick/server/CommandsManager.java @@ -410,7 +410,7 @@ public class CommandsManager { public CommandResult commandUser(User user, URI attachment, String... arguments) { User blogUser = userService.getUserByName(arguments[0]); int page = arguments[1].length(); - if (!blogUser.isAnonymous()) { + if (!blogUser.isAnonymous() && !blogUser.isBanned()) { List<Integer> mids = messagesService.getUserBlog(blogUser.getUid(), 0, 0); return CommandResult.fromString(String.format("Last messages from @%s:\n%s", arguments[0], printMessages(user, mids, false))); diff --git a/src/main/java/com/juick/server/api/Messages.java b/src/main/java/com/juick/server/api/Messages.java index 60e05d6d..402d2162 100644 --- a/src/main/java/com/juick/server/api/Messages.java +++ b/src/main/java/com/juick/server/api/Messages.java @@ -106,7 +106,7 @@ public class Messages { List<Integer> mids; if (!StringUtils.isEmpty(uname)) { User user = userService.getUserByName(uname); - if (!user.isAnonymous()) { + if (!user.isAnonymous() && !user.isBanned()) { if (!StringUtils.isEmpty(media)) { mids = messagesService.getUserPhotos(user.getUid(), 0, before); } else if (!StringUtils.isEmpty(tag)) { @@ -180,9 +180,6 @@ public class Messages { if (!messagesService.canViewThread(mid, visitor.getUid())) { return FORBIDDEN; } else { - if (userService.getUserByName(msg.getUser().getName()).isBanned()) { - throw new HttpNotFoundException(); - } msg.getUser().setAvatar(webApp.getAvatarUrl(msg.getUser())); msg.setRecommendations(new HashSet<>(messagesService.getMessagesRecommendations( Collections.singletonList(msg.getMid())) diff --git a/src/main/java/com/juick/server/api/activity/Profile.java b/src/main/java/com/juick/server/api/activity/Profile.java index 4e375a54..701b1949 100644 --- a/src/main/java/com/juick/server/api/activity/Profile.java +++ b/src/main/java/com/juick/server/api/activity/Profile.java @@ -136,7 +136,7 @@ public class Profile { @RequestParam(required = false, defaultValue = "0") int before) { User visitor = UserUtils.getCurrentUser(); User user = userService.getUserByName(userName); - if (!user.isAnonymous()) { + if (!user.isAnonymous() && !user.isBanned()) { UriComponentsBuilder uri = UriComponentsBuilder.fromUriString(baseUri); String personUri = uri.path(String.format("/u/%s", userName)).toUriString(); List<Integer> mids = messagesService.getUserBlog(user.getUid(), 0, before); diff --git a/src/main/java/com/juick/server/api/rss/Feeds.java b/src/main/java/com/juick/server/api/rss/Feeds.java index c72f3a5e..47d9fd5e 100644 --- a/src/main/java/com/juick/server/api/rss/Feeds.java +++ b/src/main/java/com/juick/server/api/rss/Feeds.java @@ -19,6 +19,7 @@ package com.juick.server.api.rss; import com.juick.User; import com.juick.server.util.HttpBadRequestException; +import com.juick.server.util.HttpNotFoundException; import com.juick.server.util.UserUtils; import com.juick.service.MessagesService; import com.juick.service.UserService; @@ -46,7 +47,7 @@ public class Feeds { @RequestMapping(value = "/rss/{userName}/blog", method = RequestMethod.GET, produces = "text/xml; charset=utf-8") public ModelAndView getBlog(@PathVariable String userName) { User user = userService.getUserByName(userName); - if (!user.isAnonymous()) { + if (!user.isAnonymous() && !user.isBanned()) { List<Integer> mids = messagesService.getUserBlog(user.getUid(), 0, 0); ModelAndView modelAndView = new ModelAndView(); modelAndView.setViewName("messagesView"); @@ -54,7 +55,7 @@ public class Feeds { modelAndView.addObject("messages", messagesService.getMessages(UserUtils.getCurrentUser(), mids)); return modelAndView; } - throw new HttpBadRequestException(); + throw new HttpNotFoundException(); } @RequestMapping(value = "/rss/", method = RequestMethod.GET, produces = "text/xml; charset=utf-8") diff --git a/src/main/java/com/juick/server/www/controllers/MessagesWWW.java b/src/main/java/com/juick/server/www/controllers/MessagesWWW.java index 41c95dcb..e1c1bed8 100644 --- a/src/main/java/com/juick/server/www/controllers/MessagesWWW.java +++ b/src/main/java/com/juick/server/www/controllers/MessagesWWW.java @@ -224,7 +224,7 @@ public class MessagesWWW { if (paramTag == null) { throw new HttpNotFoundException(); } else if (!paramTag.getName().equals(paramTagStr)) { - String url = user.getName() + "/?tag=" + URLEncoder.encode(paramTag.getName(), CharEncoding.UTF_8); + String url = user.getName() + "/?tag=" + URLEncoder.encode(paramTag.getName(), StandardCharsets.UTF_8); return "redirect:/" + url; } } @@ -510,7 +510,7 @@ public class MessagesWWW { visitor.setAvatar(webApp.getAvatarWebPath(visitor)); Optional<com.juick.Message> message = messagesService.getMessage(mid); - if (!message.isPresent() || message.get().getUser().isBanned()) { + if (message.isEmpty()) { throw new HttpNotFoundException(); } |