aboutsummaryrefslogtreecommitdiff
path: root/src/main/java/com/juick
diff options
context:
space:
mode:
Diffstat (limited to 'src/main/java/com/juick')
-rw-r--r--src/main/java/com/juick/service/PrivacyQueriesService.java2
-rw-r--r--src/main/java/com/juick/service/PrivacyQueriesServiceImpl.java16
-rw-r--r--src/main/java/com/juick/www/api/Users.java21
-rw-r--r--src/main/java/com/juick/www/controllers/Site.java1
4 files changed, 34 insertions, 6 deletions
diff --git a/src/main/java/com/juick/service/PrivacyQueriesService.java b/src/main/java/com/juick/service/PrivacyQueriesService.java
index 68c157f6..f1b9915d 100644
--- a/src/main/java/com/juick/service/PrivacyQueriesService.java
+++ b/src/main/java/com/juick/service/PrivacyQueriesService.java
@@ -35,4 +35,6 @@ public interface PrivacyQueriesService {
@CacheEvict(value = { "discussions", "messages", "replies" }, allEntries = true)
PrivacyResult blacklistTag(User user, Tag tag);
+
+ PrivacyResult whiteListUser(User user, User target);
}
diff --git a/src/main/java/com/juick/service/PrivacyQueriesServiceImpl.java b/src/main/java/com/juick/service/PrivacyQueriesServiceImpl.java
index 437c9f8c..d954df09 100644
--- a/src/main/java/com/juick/service/PrivacyQueriesServiceImpl.java
+++ b/src/main/java/com/juick/service/PrivacyQueriesServiceImpl.java
@@ -60,4 +60,20 @@ public class PrivacyQueriesServiceImpl extends BaseJdbcService implements Privac
return PrivacyResult.Added;
}
+
+ @Override
+ public PrivacyResult whiteListUser(User user, User target) {
+ int result = getJdbcTemplate().update(
+ "DELETE FROM wl_users WHERE user_id = ? AND wl_user_id = ?",
+ user.getUid(), target.getUid());
+
+ if (result > 0)
+ return PrivacyResult.Removed;
+
+ getJdbcTemplate().update(
+ "INSERT INTO wl_users(user_id, wl_user_id) VALUES (?, ?)",
+ user.getUid(), target.getUid());
+
+ return PrivacyResult.Added;
+ }
}
diff --git a/src/main/java/com/juick/www/api/Users.java b/src/main/java/com/juick/www/api/Users.java
index afca7ee3..19075fe5 100644
--- a/src/main/java/com/juick/www/api/Users.java
+++ b/src/main/java/com/juick/www/api/Users.java
@@ -28,12 +28,7 @@ import javax.inject.Inject;
import com.juick.model.AnonymousUser;
import com.juick.model.ApplicationStatus;
import com.juick.model.User;
-import com.juick.service.EmailService;
-import com.juick.service.MessagesService;
-import com.juick.service.StorageService;
-import com.juick.service.TagService;
-import com.juick.service.TelegramService;
-import com.juick.service.UserService;
+import com.juick.service.*;
import com.juick.service.activities.UpdateUserEvent;
import com.juick.service.component.MailVerificationEvent;
import com.juick.util.HttpBadRequestException;
@@ -59,6 +54,8 @@ public class Users {
@Inject
private UserService userService;
@Inject
+ private PrivacyQueriesService privacyQueriesService;
+ @Inject
private MessagesService messagesService;
@Inject
private TelegramService telegramService;
@@ -222,6 +219,18 @@ public class Users {
throw new HttpNotFoundException();
}
+ @PostMapping("/api/users/wl")
+ public void toggleWL(@Parameter(hidden = true) User visitor, @RequestParam String name) {
+ if (!visitor.isAnonymous()) {
+ User user = userService.getUserByName(name);
+ if (!user.isAnonymous()) {
+ privacyQueriesService.whiteListUser(visitor, user);
+ }
+ } else {
+ throw new HttpBadRequestException();
+ }
+ }
+
@GetMapping("/api/info/{uname}")
public User getUserInfo(@Parameter(hidden = true) User visitor, @PathVariable String uname) {
User user = userService.getUserByName(uname);
diff --git a/src/main/java/com/juick/www/controllers/Site.java b/src/main/java/com/juick/www/controllers/Site.java
index 9773c098..834a2a25 100644
--- a/src/main/java/com/juick/www/controllers/Site.java
+++ b/src/main/java/com/juick/www/controllers/Site.java
@@ -83,6 +83,7 @@ public class Site {
model.addAttribute("user", user);
model.addAttribute("isSubscribed", userService.isSubscribed(visitor.getUid(), user.getUid()));
model.addAttribute("isInBL", userService.isInBL(visitor.getUid(), user.getUid()));
+ model.addAttribute("isInWL", userService.isInWL(visitor.getUid(), user.getUid()));
model.addAttribute("isInBLAny", userService.isInBLAny(user.getUid(), visitor.getUid()));
model.addAttribute("statsIRead", userService.getUserFriends(user.getUid()).size());
model.addAttribute("statsMyReaders", userService.getUserReaders(user.getUid()).size());