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