From b38edd75f5142da515e46dbbc667162186a77653 Mon Sep 17 00:00:00 2001 From: Vitaly Takmazov Date: Thu, 17 Feb 2022 10:17:14 +0300 Subject: Do not allow to delete Telegram when it is the only social account --- src/main/java/com/juick/service/UserService.java | 2 ++ src/main/java/com/juick/service/UserServiceImpl.java | 6 ++++++ src/main/java/com/juick/www/controllers/Settings.java | 4 +++- 3 files changed, 11 insertions(+), 1 deletion(-) (limited to 'src/main/java') diff --git a/src/main/java/com/juick/service/UserService.java b/src/main/java/com/juick/service/UserService.java index c0428169..06637aee 100644 --- a/src/main/java/com/juick/service/UserService.java +++ b/src/main/java/com/juick/service/UserService.java @@ -185,4 +185,6 @@ public interface UserService { String getJIDByHash(String hash); boolean setJIDUser(String hash, int uid); + + boolean canDeleteTelegramUser(User user); } diff --git a/src/main/java/com/juick/service/UserServiceImpl.java b/src/main/java/com/juick/service/UserServiceImpl.java index e73f4ea3..fd42048c 100644 --- a/src/main/java/com/juick/service/UserServiceImpl.java +++ b/src/main/java/com/juick/service/UserServiceImpl.java @@ -914,4 +914,10 @@ public class UserServiceImpl extends BaseJdbcService implements UserService { public boolean setJIDUser(String hash, int uid) { return getJdbcTemplate().update("UPDATE jids SET user_id=?,loginhash=NULL WHERE loginhash=?", uid, hash) > 0; } + + @Transactional(readOnly = true) + @Override + public boolean canDeleteTelegramUser(User user) { + return getEmails(user).size() > 0 || getFbCrossPostStatus(user.getUid()).isConnected() || getVkTokens(user.getUid()).isPresent(); + } } diff --git a/src/main/java/com/juick/www/controllers/Settings.java b/src/main/java/com/juick/www/controllers/Settings.java index 8fefadc2..1dc5f1c3 100644 --- a/src/main/java/com/juick/www/controllers/Settings.java +++ b/src/main/java/com/juick/www/controllers/Settings.java @@ -248,7 +248,9 @@ public class Settings { result = "

Back

"; break; case "telegram-del": - telegramService.deleteTelegramUser(visitor.getUid()); + if (userService.canDeleteTelegramUser(visitor)) { + telegramService.deleteTelegramUser(visitor.getUid()); + } result = "

Back

"; break; case "facebook-disable": -- cgit v1.2.3