From a03463a56fa6d4ec4c597ba99adaf8d903bebe40 Mon Sep 17 00:00:00 2001
From: Daniel Haag <none@none>
Date: Thu, 30 Jun 2016 11:31:26 +0200
Subject: [PATCH] OPENOLAT-14: wildcard prefix for studysubject in the
 usersearch.

---
 .../org/olat/basesecurity/BaseSecurityManager.java     | 10 ++++++++++
 1 file changed, 10 insertions(+)

diff --git a/src/main/java/org/olat/basesecurity/BaseSecurityManager.java b/src/main/java/org/olat/basesecurity/BaseSecurityManager.java
index 651f1d4dd21..c1d7bc3cc9a 100644
--- a/src/main/java/org/olat/basesecurity/BaseSecurityManager.java
+++ b/src/main/java/org/olat/basesecurity/BaseSecurityManager.java
@@ -1517,6 +1517,16 @@ public class BaseSecurityManager implements BaseSecurity {
 		boolean hasPermissionOnResources = (params.getPermissionOnResources() != null && params.getPermissionOnResources().length > 0);
 		boolean hasAuthProviders = (params.getAuthProviders() != null && params.getAuthProviders().length > 0);
 
+		// some special handling for searching with some of the user properties
+		if((params.getUserProperties() != null) && (params.getUserProperties().containsKey(UserConstants.STUDYSUBJECT))) {
+			String searchPhrase = params.getUserProperties().get(UserConstants.STUDYSUBJECT);
+			if(searchPhrase.charAt(0) != '*') {
+				// add a "*" to make sure the user gets all the requested
+				// users with the given study subject
+				params.getUserProperties().put(UserConstants.STUDYSUBJECT, "*" + searchPhrase);
+			}
+		}
+
 		// select identity and inner join with user to optimize query
 		StringBuilder sb = new StringBuilder(5000);
 		if (hasAuthProviders) {
-- 
GitLab