diff --git a/src/main/java/org/olat/registration/RegistrationForm2.java b/src/main/java/org/olat/registration/RegistrationForm2.java index 1dde3a4ed9fdf984900f4c23dbe6e8f34bef5a5b..0f685a2abf5300e9a5ce9c9805d848fa681a8dc2 100644 --- a/src/main/java/org/olat/registration/RegistrationForm2.java +++ b/src/main/java/org/olat/registration/RegistrationForm2.java @@ -53,6 +53,7 @@ import org.olat.login.validation.SyntaxValidator; import org.olat.login.validation.ValidationResult; import org.olat.user.ChangePasswordForm; import org.olat.user.UserManager; +import org.olat.user.propertyhandlers.EmailProperty; import org.olat.user.propertyhandlers.UserPropertyHandler; import org.springframework.beans.factory.annotation.Autowired; @@ -87,6 +88,8 @@ public class RegistrationForm2 extends FormBasicController { private UserManager userManager; @Autowired private OLATAuthManager olatAuthManager; + @Autowired + private RegistrationManager registrationManager; public RegistrationForm2(UserRequest ureq, WindowControl wControl, String languageKey, String proposedUsername, String email, boolean userInUse, boolean usernameReadonly) { @@ -237,8 +240,11 @@ public class RegistrationForm2 extends FormBasicController { // validate each user field for (UserPropertyHandler userPropertyHandler : userPropertyHandlers) { FormItem fi = propFormItems.get(userPropertyHandler.getName()); - if (!userPropertyHandler.isValid(null, fi, null)) { - allOk &= false; + if (fi.isEnabled() && !userPropertyHandler.isValid(null, fi, null)) { + if (userPropertyHandler instanceof EmailProperty) + allOk &= registrationManager.isEmailReserved(getEmail()); + else + allOk &= false; } }