From ecbc4907669c06c7a71ffda3bd78a163ee1287fe Mon Sep 17 00:00:00 2001 From: Alexander Alexeev Date: Mon, 14 Nov 2016 05:12:02 +0700 Subject: generateHash() and checkuser() moved to Userutils --- .../main/java/com/juick/server/UserQueries.java | 39 +++++++++------------- 1 file changed, 15 insertions(+), 24 deletions(-) (limited to 'server-core/src/main/java/com/juick/server/UserQueries.java') diff --git a/server-core/src/main/java/com/juick/server/UserQueries.java b/server-core/src/main/java/com/juick/server/UserQueries.java index 50e3562f..bc368390 100644 --- a/server-core/src/main/java/com/juick/server/UserQueries.java +++ b/server-core/src/main/java/com/juick/server/UserQueries.java @@ -21,6 +21,7 @@ import com.juick.User; import com.juick.server.helpers.Auth; import com.juick.server.helpers.EmailOpts; import com.juick.server.helpers.UserInfo; +import com.juick.util.UserUtils; import org.springframework.dao.DuplicateKeyException; import org.springframework.dao.EmptyResultDataAccessException; import org.springframework.jdbc.core.JdbcTemplate; @@ -36,7 +37,6 @@ import java.sql.Statement; import java.util.*; /** - * * @author Ugnich Anton */ public class UserQueries { @@ -65,6 +65,7 @@ public class UserQueries { } return hash; } + public static String getSignUpHashByTelegramID(JdbcTemplate sql, Long telegramId, String username) { try { return sql.queryForObject("SELECT loginhash FROM telegram WHERE tg_id=? AND user_id IS NULL", @@ -127,19 +128,19 @@ public class UserQueries { } public static List getUsersByName(JdbcTemplate sql, List unames) { - if (!unames.isEmpty()) { + if (!unames.isEmpty()) { return sql.query("SELECT id,nick,banned FROM users WHERE nick IN (\"" + StringUtils.arrayToDelimitedString(unames.toArray(), "\",\"") + "\")", new UserMapper()); } - return Collections.emptyList(); + return Collections.emptyList(); } public static List getUsersByID(JdbcTemplate sql, List uids) { - if (!uids.isEmpty()) { + if (!uids.isEmpty()) { return sql.query("SELECT id,nick,banned FROM users WHERE id IN (" + StringUtils.arrayToCommaDelimitedString(uids.toArray()) + ")", new UserMapper()); - } - return Collections.emptyList(); + } + return Collections.emptyList(); } public static List getUsersByJID(JdbcTemplate sql, List jids) { @@ -201,8 +202,8 @@ public class UserQueries { public static String getHashByUID(JdbcTemplate sql, int uid) { try { return sql.queryForObject("SELECT hash FROM logins WHERE user_id=?", String.class, uid); - } catch (EmptyResultDataAccessException e){ - String hash = generateHash(16); + } catch (EmptyResultDataAccessException e) { + String hash = UserUtils.generateHash(16); sql.update(con -> { PreparedStatement stmt = con.prepareStatement("INSERT INTO logins(user_id,hash) VALUES (?,?)"); stmt.setInt(1, uid); @@ -213,19 +214,6 @@ public class UserQueries { } } - public static String generateHash(int len) { - Random rnd = new Random(); - StringBuilder sb = new StringBuilder(len); - for (int i = 0; i < len; i++) { - sb.append(ABCDEF.charAt(rnd.nextInt(ABCDEF.length()))); - } - return sb.toString(); - } - - public static boolean checkUserNameValid(String uname) { - return uname != null && uname.length() >= 2 && uname.length() <= 16 && uname.matches("[a-zA-Z0-9\\-]+"); - } - public static int checkPassword(JdbcTemplate sql, String username, String password) { try { String realPassword = sql.queryForObject("SELECT passw FROM users WHERE nick=?", String.class, username); @@ -249,7 +237,7 @@ public class UserQueries { } public static String updateSecretEmail(JdbcTemplate sql, User user) { - String newHash = generateHash(16); + String newHash = UserUtils.generateHash(16); if (sql.update("INSERT INTO mail(user_id,hash) VALUES (?,?) ON DUPLICATE KEY UPDATE hash=?", user.getUID(), newHash, newHash) > 0) { return newHash; } @@ -285,7 +273,7 @@ public class UserQueries { public static boolean updateUserInfo(JdbcTemplate sql, User user, UserInfo info) { return sql.update("INSERT INTO usersinfo(user_id,fullname,country,url,descr) VALUES (?,?,?,?,?) " + - "ON DUPLICATE KEY UPDATE fullname=?,country=?,url=?,descr=?", user.getUID(), info.getFullName(), + "ON DUPLICATE KEY UPDATE fullname=?,country=?,url=?,descr=?", user.getUID(), info.getFullName(), info.getCountry(), info.getUrl(), info.getDescription(), info.getFullName(), info.getCountry(), info.getUrl(), info.getDescription()) > 0; } @@ -465,9 +453,11 @@ public class UserQueries { } return false; } + public static List getAllJIDs(JdbcTemplate sql, User user) { return sql.queryForList("SELECT jid FROM jids WHERE user_id=?", String.class, user.getUID()); } + public static List getAuthCodes(JdbcTemplate sql, User user) { return sql.query("SELECT account,authcode FROM auth WHERE user_id=? AND protocol='xmpp'", (rs, num) -> new Auth(rs.getString(1), rs.getString(2)), user.getUID()); @@ -480,11 +470,12 @@ public class UserQueries { public static EmailOpts getEmailOpts(JdbcTemplate sql, User user) { try { return sql.queryForObject("SELECT email,subscr_hour FROM emails WHERE user_id=? AND subscr_hour IS NOT NULL", - (rs, num) ->new EmailOpts(rs.getString(1), rs.getInt(2)), user.getUID()); + (rs, num) -> new EmailOpts(rs.getString(1), rs.getInt(2)), user.getUID()); } catch (EmptyResultDataAccessException e) { return null; } } + public static String getEmailHash(JdbcTemplate sql, User user) { try { return sql.queryForObject("SELECT hash FROM mail WHERE user_id=?", String.class, user.getUID()) -- cgit v1.2.3