From 3991fafc1cc8fc459a8841b6d84e57dc8bd85ddc Mon Sep 17 00:00:00 2001
From: srosse <none@none>
Date: Tue, 6 Jan 2015 11:11:03 +0100
Subject: [PATCH] OO-1291: fix user search by OAuth account

---
 .../user/UsermanagerUserSearchController.java | 22 +++++++++++++++----
 .../olat/login/oauth/OAuthLoginModule.java    |  4 ++++
 2 files changed, 22 insertions(+), 4 deletions(-)

diff --git a/src/main/java/org/olat/admin/user/UsermanagerUserSearchController.java b/src/main/java/org/olat/admin/user/UsermanagerUserSearchController.java
index cf1767672c2..df256f1118b 100644
--- a/src/main/java/org/olat/admin/user/UsermanagerUserSearchController.java
+++ b/src/main/java/org/olat/admin/user/UsermanagerUserSearchController.java
@@ -94,12 +94,15 @@ import org.olat.core.util.mail.ContactMessage;
 import org.olat.core.util.resource.OresHelper;
 import org.olat.login.LoginModule;
 import org.olat.login.auth.AuthenticationProvider;
+import org.olat.login.oauth.OAuthLoginModule;
+import org.olat.login.oauth.OAuthSPI;
 import org.olat.modules.co.ContactFormController;
 import org.olat.user.UserInfoMainController;
 import org.olat.user.UserManager;
 import org.olat.user.propertyhandlers.EmailProperty;
 import org.olat.user.propertyhandlers.UserPropertyHandler;
 import org.olat.util.logging.activity.LoggingResourceable;
+import org.springframework.beans.factory.annotation.Autowired;
 
 /**
  * Initial Date: Jan 31, 2006
@@ -134,7 +137,9 @@ public class UsermanagerUserSearchController extends BasicController implements
 	private boolean showEmailButton = true;
 	private StepsMainRunController userBulkChangeStepsController;
 	private final boolean isAdministrativeUser;
-	private final BaseSecurityModule securityModule;
+	
+	@Autowired
+	private BaseSecurityModule securityModule;
 
 	/**
 	 * Constructor to trigger the user search workflow using a generic search form
@@ -145,7 +150,6 @@ public class UsermanagerUserSearchController extends BasicController implements
 	public UsermanagerUserSearchController(UserRequest ureq, WindowControl wControl) {
 		super(ureq, wControl);
 		
-		securityModule = CoreSpringFactory.getImpl(BaseSecurityModule.class);
 		isAdministrativeUser = securityModule.isUserAllowedAdminProps(ureq.getUserSession().getRoles());
 		
 		userSearchVC = createVelocityContainer("usermanagerUsersearch");
@@ -642,6 +646,10 @@ class UsermanagerUserSearchForm extends FormBasicController {
 	
 	private Map <String,FormItem>items;
 	private final boolean isAdministrativeUser;
+	
+	@Autowired
+	private OAuthLoginModule oauthLoginModule;
+	
 	/**
 	 * @param binderName
 	 * @param cancelbutton
@@ -770,10 +778,16 @@ class UsermanagerUserSearchForm extends FormBasicController {
 		List<String> apl = new ArrayList<String>();
 		for (int i=0; i<authKeys.length; i++) {
 			if (auth.isSelected(i)) {
-				if("noAuth".equals(authKeys[i])) {
+				String authKey = authKeys[i];
+				if("noAuth".equals(authKey)) {
 					apl.add(null);//special case
+				} else if("OAuth".equals(authKey)) {
+					List<OAuthSPI> spis = oauthLoginModule.getAllSPIs();
+					for(OAuthSPI spi:spis) {
+						apl.add(spi.getProviderName());
+					}
 				} else {
-					apl.add(authKeys[i]);
+					apl.add(authKey);
 				}
 			}
 		}
diff --git a/src/main/java/org/olat/login/oauth/OAuthLoginModule.java b/src/main/java/org/olat/login/oauth/OAuthLoginModule.java
index ea4f49f7417..9c4865547c3 100644
--- a/src/main/java/org/olat/login/oauth/OAuthLoginModule.java
+++ b/src/main/java/org/olat/login/oauth/OAuthLoginModule.java
@@ -118,6 +118,10 @@ public class OAuthLoginModule extends AbstractSpringModule {
 		adfsOAuth2Endpoint = getStringPropertyValue("adfsOAuth2Endpoint", false);
 	}
 	
+	public List<OAuthSPI> getAllSPIs() {
+		return new ArrayList<>(oauthSPIs);
+	}
+	
 	public List<OAuthSPI> getEnableSPIs() {
 		List<OAuthSPI> enabledSpis = new ArrayList<>();
 		if(oauthSPIs != null) {
-- 
GitLab