summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorSimon Rettberg2015-09-30 18:27:39 +0200
committerSimon Rettberg2015-09-30 18:27:39 +0200
commit4547c2515a0a5fcd5700277d3a57e790ec5fba94 (patch)
treef971333fe2441e8146e7ec7279f2e77d9a3e3aa4
parentMerge branch 'v1.1' of git.openslx.org:openslx-ng/tutor-module into v1.1 (diff)
downloadtutor-module-4547c2515a0a5fcd5700277d3a57e790ec5fba94.tar.gz
tutor-module-4547c2515a0a5fcd5700277d3a57e790ec5fba94.tar.xz
tutor-module-4547c2515a0a5fcd5700277d3a57e790ec5fba94.zip
[server] Fix detection of old imported users in DB
-rw-r--r--dozentenmodulserver/setup/sat-01-schema.sql3
-rw-r--r--dozentenmodulserver/src/main/java/org/openslx/bwlp/sat/database/mappers/DbUser.java6
2 files changed, 5 insertions, 4 deletions
diff --git a/dozentenmodulserver/setup/sat-01-schema.sql b/dozentenmodulserver/setup/sat-01-schema.sql
index 6a4e6800..f1d693fe 100644
--- a/dozentenmodulserver/setup/sat-01-schema.sql
+++ b/dozentenmodulserver/setup/sat-01-schema.sql
@@ -182,7 +182,8 @@ CREATE TABLE IF NOT EXISTS `user` (
`issuperuser` tinyint(1) NOT NULL DEFAULT '0',
`emailnotifications` tinyint(1) NOT NULL DEFAULT '1',
PRIMARY KEY (`userid`),
- KEY `fk_user_1_idx` (`organizationid`)
+ KEY `fk_user_1_idx` (`organizationid`),
+ KEY `mail_idx` (`email`)
) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_unicode_ci;
CREATE TABLE IF NOT EXISTS `virtualizer` (
diff --git a/dozentenmodulserver/src/main/java/org/openslx/bwlp/sat/database/mappers/DbUser.java b/dozentenmodulserver/src/main/java/org/openslx/bwlp/sat/database/mappers/DbUser.java
index bc63894c..32e04d44 100644
--- a/dozentenmodulserver/src/main/java/org/openslx/bwlp/sat/database/mappers/DbUser.java
+++ b/dozentenmodulserver/src/main/java/org/openslx/bwlp/sat/database/mappers/DbUser.java
@@ -171,8 +171,8 @@ public class DbUser {
// We actually found an old imported entry - just update
String oldId = rs.getString("userid");
MysqlStatement insUpStmt = connection.prepareStatement("UPDATE IGNORE user"
- + " SET lastlogin = UNIX_TIMESTAMP(), email = :email, userid = :newuserid, organizationid = :organizationid"
- + " WHERE userid = :olduserid");
+ + " SET lastlogin = UNIX_TIMESTAMP(), email = :email, userid = :newuserid, organizationid = :organizationid,"
+ + " emailnotifications = 1 WHERE userid = :olduserid");
insUpStmt.setString("newuserid", ui.userId);
insUpStmt.setString("email", ui.eMail);
insUpStmt.setString("organizationid", ui.organizationId);
@@ -192,7 +192,7 @@ public class DbUser {
public void fire() {
try (MysqlConnection connection = Database.getConnection()) {
MysqlStatement stmt = connection.prepareStatement("SELECT userid FROM user"
- + " WHERE email = '@%@' LIMIT 1");
+ + " WHERE email LIKE '@%@' LIMIT 1");
ResultSet rs = stmt.executeQuery();
legacyUsersExist = rs.next();
} catch (SQLException e) {