From f3b8f39bffec005ab287c190780dc0d1fba6c72c Mon Sep 17 00:00:00 2001 From: srosse <stephane.rosse@frentix.com> Date: Thu, 14 May 2020 16:16:26 +0200 Subject: [PATCH] OO-4690: prevent duplicate user name in import (with different emails) --- .../org/olat/admin/user/imp/ImportStep00.java | 20 +++++++++---------- 1 file changed, 10 insertions(+), 10 deletions(-) diff --git a/src/main/java/org/olat/admin/user/imp/ImportStep00.java b/src/main/java/org/olat/admin/user/imp/ImportStep00.java index b277bd0997c..a34c05f0686 100644 --- a/src/main/java/org/olat/admin/user/imp/ImportStep00.java +++ b/src/main/java/org/olat/admin/user/imp/ImportStep00.java @@ -28,7 +28,6 @@ import static org.olat.login.ui.LoginUIFactory.formatDescriptionAsList; import java.util.ArrayList; import java.util.Collection; -import java.util.Iterator; import java.util.List; import java.util.stream.Collectors; @@ -147,7 +146,7 @@ class ImportStep00 extends BasicStep { addToRunContext("updateIdents", updateIdents); addToRunContext("validImport", Boolean.TRUE); boolean newUsers = false; - if (newIdents.size() != 0) { + if (!newIdents.isEmpty()) { setNextStep(new ImportStep01(ureq, canCreateOLATPassword, true)); newUsers = true; } @@ -196,7 +195,9 @@ class ImportStep00 extends BasicStep { // use comma as fallback delimiter, e.g. for better testing if (line.indexOf(delimiter) == -1) delimiter = ","; String[] parts = line.split(delimiter); - String login, pwd, lang; + String login; + String pwd; + String lang; int columnId = 0; @@ -262,9 +263,9 @@ class ImportStep00 extends BasicStep { UpdateIdentity uIdentity = new UpdateIdentity(ident, pwd, lang); - importDataError = updateUserProperties(uIdentity, ident.getUser(), parts, i, columnId, importedEmails); + importDataError |= updateUserProperties(uIdentity, ident.getUser(), parts, i, columnId, importedEmails); if(importDataError) break; - importDataError = !validatePassword(pwd, uIdentity, i); + importDataError |= !validatePassword(pwd, uIdentity, i); if(importDataError) break; idents.add(uIdentity); @@ -272,8 +273,7 @@ class ImportStep00 extends BasicStep { } else { // no identity/user yet, create // check that no user with same login name is already in list - for (Iterator<TransientIdentity> it_news = newIdents.iterator(); it_news.hasNext();) { - TransientIdentity singleUser = it_news.next(); + for (TransientIdentity singleUser:newIdents) { if (singleUser.getName().equalsIgnoreCase(login)) { textAreaElement.setErrorKey("error.login.douplicate", new String[] { String.valueOf(i + 1), login }); importDataError = true; @@ -287,11 +287,11 @@ class ImportStep00 extends BasicStep { uIdentity.setPassword(pwd); uIdentity.setLanguage(lang); - importDataError = updateUserProperties(uIdentity, null, parts, i, columnId, importedEmails); + importDataError |= updateUserProperties(uIdentity, null, parts, i, columnId, importedEmails); if(importDataError) break; - importDataError = !validateUsername(login, uIdentity, i); + importDataError |= !validateUsername(login, uIdentity, i); if(importDataError) break; - importDataError = !validatePassword(pwd, uIdentity, i); + importDataError |= !validatePassword(pwd, uIdentity, i); if(importDataError) break; idents.add(uIdentity); -- GitLab