From b38b182ed7fe6204249eb01250cc8b658b7d9dce Mon Sep 17 00:00:00 2001 From: srosse <none@none> Date: Tue, 22 Sep 2015 15:13:42 +0200 Subject: [PATCH] OO-1697: work around the assert exception for duplicate e-mail in the "new user" form --- .../user/propertyhandlers/EmailProperty.java | 21 +++++++++++-------- 1 file changed, 12 insertions(+), 9 deletions(-) diff --git a/src/main/java/org/olat/user/propertyhandlers/EmailProperty.java b/src/main/java/org/olat/user/propertyhandlers/EmailProperty.java index a42b2f8587c..07744787e48 100644 --- a/src/main/java/org/olat/user/propertyhandlers/EmailProperty.java +++ b/src/main/java/org/olat/user/propertyhandlers/EmailProperty.java @@ -19,6 +19,7 @@ */ package org.olat.user.propertyhandlers; +import java.util.Collections; import java.util.List; import java.util.Locale; import java.util.Map; @@ -176,21 +177,23 @@ public class EmailProperty extends Generic127CharTextPropertyHandler { private boolean isAddressAvailable(String emailAddress, String currentUsername) { - // Check if mail address already used // within the system by a user other than ourselves - - Identity identityOfEmail = UserManager.getInstance().findIdentityByEmail(emailAddress); + List<Identity> identityOfEmails = UserManager.getInstance().findIdentitiesByEmail(Collections.singletonList(emailAddress)); if (currentUsername != null) { - if ((identityOfEmail != null) && (!identityOfEmail.getName().equals(currentUsername))) { - return false; - } - } else { - if (identityOfEmail != null) { + if(identityOfEmails.size() == 0) { + //ok -> checkForScheduledAdressChange + } else if(identityOfEmails.size() == 1) { + Identity identityOfEmail = identityOfEmails.get(0); + if (identityOfEmail != null && !identityOfEmail.getName().equals(currentUsername)) { + return false; + } + } else { return false; } + } else if (identityOfEmails.size() > 0) { + return false; } - return checkForScheduledAdressChange(emailAddress); } -- GitLab