From 8c82c502ff6a946eb59bda5cd9992c43b70490f8 Mon Sep 17 00:00:00 2001 From: Simon Rettberg Date: Wed, 30 Sep 2015 18:35:11 +0200 Subject: [server] Don't accidentally overwrite email address of imported account if userid didn't change --- .../java/org/openslx/bwlp/sat/database/mappers/DbUser.java | 12 +++++++----- 1 file changed, 7 insertions(+), 5 deletions(-) (limited to 'dozentenmodulserver/src/main') 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 32e04d44..87a05d63 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 @@ -178,11 +178,13 @@ public class DbUser { insUpStmt.setString("organizationid", ui.organizationId); insUpStmt.setString("olduserid", oldId); insUpStmt.executeUpdate(); - // Be extra safe: in case the update failed (dup key?) we patch the old entry so it doesn't look like an old one anymore - MysqlStatement fixStmt = connection.prepareStatement("UPDATE user SET" - + " email = 'void', emailnotifications = 0 WHERE userid = :olduserid"); - fixStmt.setString("olduserid", oldId); - fixStmt.executeUpdate(); + if (!ui.userId.equals(oldId)) { + // Be extra safe: in case the update failed (dup key?) we patch the old entry so it doesn't look like an old one anymore + MysqlStatement fixStmt = connection.prepareStatement("UPDATE user SET" + + " email = 'void', emailnotifications = 0 WHERE userid = :olduserid AND email LIKE '@%'"); + fixStmt.setString("olduserid", oldId); + fixStmt.executeUpdate(); + } return true; } -- cgit v1.2.3-55-g7522