From 64c979b8e546d698f292f57ecbc4d8bd4fa98720 Mon Sep 17 00:00:00 2001 From: uhensler <urs.hensler@frentix.com> Date: Thu, 10 Oct 2019 09:03:07 +0200 Subject: [PATCH] OO-4301: Existing OpenOlat user should be merged with Shibboleth user by username --- src/main/java/org/olat/login/auth/OLATAuthManager.java | 2 +- .../login/validation/UsernameValidationRulesFactory.java | 6 ++++-- .../org/olat/shibboleth/ShibbolethRegistrationForm.java | 6 +++--- 3 files changed, 8 insertions(+), 6 deletions(-) diff --git a/src/main/java/org/olat/login/auth/OLATAuthManager.java b/src/main/java/org/olat/login/auth/OLATAuthManager.java index 1b019807cb2..c9cb3eca64d 100644 --- a/src/main/java/org/olat/login/auth/OLATAuthManager.java +++ b/src/main/java/org/olat/login/auth/OLATAuthManager.java @@ -205,7 +205,7 @@ public class OLATAuthManager implements AuthenticationSPI { } public SyntaxValidator createUsernameSytaxValidator() { - return new SyntaxValidator(usernameRulesFactory.createRules(), false); + return new SyntaxValidator(usernameRulesFactory.createRules(true), false); } diff --git a/src/main/java/org/olat/login/validation/UsernameValidationRulesFactory.java b/src/main/java/org/olat/login/validation/UsernameValidationRulesFactory.java index 78727db8a95..4710043d036 100644 --- a/src/main/java/org/olat/login/validation/UsernameValidationRulesFactory.java +++ b/src/main/java/org/olat/login/validation/UsernameValidationRulesFactory.java @@ -39,11 +39,13 @@ public class UsernameValidationRulesFactory { @Autowired private LoginModule loginModule; - public ValidationRulesProvider createRules() { + public ValidationRulesProvider createRules(boolean checkUsernameExists) { ValidationRulesProviderBuilder providerBuilder = new ValidationRulesProviderBuilder(); providerBuilder.add(createUsernameSyntaxRule()); providerBuilder.add(createBlackListRule()); - providerBuilder.add(createUsernameExistsRule()); + if (checkUsernameExists) { + providerBuilder.add(createUsernameExistsRule()); + } return providerBuilder.create(); } diff --git a/src/main/java/org/olat/shibboleth/ShibbolethRegistrationForm.java b/src/main/java/org/olat/shibboleth/ShibbolethRegistrationForm.java index 626f6138bfd..43e44caebbf 100644 --- a/src/main/java/org/olat/shibboleth/ShibbolethRegistrationForm.java +++ b/src/main/java/org/olat/shibboleth/ShibbolethRegistrationForm.java @@ -35,8 +35,8 @@ import org.olat.core.gui.control.Event; import org.olat.core.gui.control.WindowControl; import org.olat.core.util.StringHelper; import org.olat.core.util.Util; -import org.olat.login.auth.OLATAuthManager; import org.olat.login.validation.SyntaxValidator; +import org.olat.login.validation.UsernameValidationRulesFactory; import org.olat.login.validation.ValidationResult; import org.olat.user.ChangePasswordForm; import org.springframework.beans.factory.annotation.Autowired; @@ -58,13 +58,13 @@ public class ShibbolethRegistrationForm extends FormBasicController { private final SyntaxValidator usernameSyntaxValidator; @Autowired - private OLATAuthManager olatAuthManager; + private UsernameValidationRulesFactory usernameRulesFactory; public ShibbolethRegistrationForm(UserRequest ureq, WindowControl wControl, String proposedUsername) { super(ureq, wControl); setTranslator(Util.createPackageTranslator(ChangePasswordForm.class, ureq.getLocale(), getTranslator())); this.proposedUsername = proposedUsername; - this.usernameSyntaxValidator = olatAuthManager.createUsernameSytaxValidator(); + this.usernameSyntaxValidator = new SyntaxValidator(usernameRulesFactory.createRules(false), false); initForm(ureq); } -- GitLab