From 3a7d14693c6c4c378c6943958a9bbe64b15c36aa Mon Sep 17 00:00:00 2001
From: gnaegi <none@none>
Date: Fri, 21 Mar 2014 14:44:30 +0100
Subject: [PATCH] OO-1035 make user management search more flexible

---
 .../user/UsermanagerUserSearchController.java     | 15 +++++++++++++--
 .../admin/user/_i18n/LocalStrings_de.properties   |  4 ++--
 .../admin/user/_i18n/LocalStrings_en.properties   |  4 ++--
 3 files changed, 17 insertions(+), 6 deletions(-)

diff --git a/src/main/java/org/olat/admin/user/UsermanagerUserSearchController.java b/src/main/java/org/olat/admin/user/UsermanagerUserSearchController.java
index 43fa5920ced..9afba3c345f 100644
--- a/src/main/java/org/olat/admin/user/UsermanagerUserSearchController.java
+++ b/src/main/java/org/olat/admin/user/UsermanagerUserSearchController.java
@@ -97,6 +97,7 @@ import org.olat.login.auth.AuthenticationProvider;
 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;
 
@@ -347,6 +348,10 @@ public class UsermanagerUserSearchController extends BasicController implements
 		BaseSecurity secMgr = BaseSecurityManager.getInstance();
 		// get user attributes from form
 		String login = searchform.getStringValue("login");
+		// when searching for deleted users, add wildcard to match with backup prefix
+		if (searchform.getStatus().equals(Identity.STATUS_DELETED)) {
+			login = "*" + login;
+		}
 		Integer status = null;
 
 		// get user fields from form
@@ -357,6 +362,10 @@ public class UsermanagerUserSearchController extends BasicController implements
 			FormItem ui = searchform.getItem(userPropertyHandler.getName());
 			String uiValue = userPropertyHandler.getStringValue(ui);
 			if (StringHelper.containsNonWhitespace(uiValue)) {
+				// when searching for deleted users, add wildcard to match with backup prefix
+				if (userPropertyHandler instanceof EmailProperty && searchform.getStatus().equals(Identity.STATUS_DELETED)) {
+					uiValue = "*" + uiValue;
+				}
 				userPropertiesSearch.put(userPropertyHandler.getName(), uiValue);
 			}
 		}
@@ -666,13 +675,15 @@ class UsermanagerUserSearchForm extends FormBasicController {
 				Integer.toString(Identity.STATUS_VISIBLE_LIMIT),
 				Integer.toString(Identity.STATUS_ACTIV),
 				Integer.toString(Identity.STATUS_PERMANENT),
-				Integer.toString(Identity.STATUS_LOGIN_DENIED)
+				Integer.toString(Identity.STATUS_LOGIN_DENIED),
+				Integer.toString(Identity.STATUS_DELETED)
 		};
 		statusValues = new String[] {
 				translate("rightsForm.status.any.visible"),
 				translate("rightsForm.status.activ"),
 				translate("rightsForm.status.permanent"),
-				translate("rightsForm.status.login_denied")
+				translate("rightsForm.status.login_denied"),
+				translate("rightsForm.status.deleted")
 		};
 		
 		// take all providers from the config file
diff --git a/src/main/java/org/olat/admin/user/_i18n/LocalStrings_de.properties b/src/main/java/org/olat/admin/user/_i18n/LocalStrings_de.properties
index a1163c2ea4b..01acaa4a45d 100644
--- a/src/main/java/org/olat/admin/user/_i18n/LocalStrings_de.properties
+++ b/src/main/java/org/olat/admin/user/_i18n/LocalStrings_de.properties
@@ -84,10 +84,10 @@ rightsForm.isUsermanager=Benutzerverwalter
 rightsForm.isPoolmanager=Poolverwalter
 rightsForm.status=Status
 rightsForm.status.activ=Aktiv
-rightsForm.status.any.visible=-
+rightsForm.status.any.visible=Alle aktiven
 rightsForm.status.deleted=Gel\u00F6scht
 rightsForm.status.login_denied=Login gesperrt
-rightsForm.status.permanent=Nicht l\u00F6schbar
+rightsForm.status.permanent=Aktiv und nicht l\u00F6schbar
 rightsForm.title=Systemrollen und Rechte zuteilen
 search.cancel=Die Aktion wurde abgebrochen.
 search.form.afterDate=Benutzer erstellt nach
diff --git a/src/main/java/org/olat/admin/user/_i18n/LocalStrings_en.properties b/src/main/java/org/olat/admin/user/_i18n/LocalStrings_en.properties
index f91741131db..ad1b492bdda 100644
--- a/src/main/java/org/olat/admin/user/_i18n/LocalStrings_en.properties
+++ b/src/main/java/org/olat/admin/user/_i18n/LocalStrings_en.properties
@@ -88,10 +88,10 @@ rightsForm.isUsermanager=User management
 rightsForm.roles=Roles
 rightsForm.status=Status
 rightsForm.status.activ=Active
-rightsForm.status.any.visible=-
+rightsForm.status.any.visible=All active
 rightsForm.status.deleted=Deleted
 rightsForm.status.login_denied=Login denied
-rightsForm.status.permanent=Not deletable
+rightsForm.status.permanent=Active and not deletable
 rightsForm.title=Assign system roles and rights
 search.cancel=Action cancelled.
 search.form.afterDate=User created after
-- 
GitLab