From ff24f64c171889c870a2731cf348a237812cf04d Mon Sep 17 00:00:00 2001 From: Alan Davis Date: Sat, 31 Jan 2015 11:40:47 +0000 Subject: [PATCH] Merged HEAD-BUG-FIX (5.1/Cloud) to HEAD (5.1/Cloud) 91880: Merged 5.0.N (5.0.1) to HEAD-BUG-FIX (5.1/Cloud) 91761: Merged V4.2-BUG-FIX (4.2.5) to 5.0.N (5.0.1) 91686: Merged V4.2.4 (4.2.4) to V4.2-BUG-FIX (4.2.5) 91643: Merged DEV to V4.2.4-PATCHES 91252: MNT-12037: CLONE - User search does not return results with " " search in admin console users page. - Split entered pattern into parts and return users that match each part. git-svn-id: https://svn.alfresco.com/repos/alfresco-enterprise/alfresco/HEAD/root@94839 c4b6b30b-aa2e-2d43-bbcb-ca4b014f7261 --- .../query-people-common-SqlMap.xml | 17 ++++++++++------- .../security/person/FilterSortPersonEntity.java | 14 +++++++++++--- 2 files changed, 21 insertions(+), 10 deletions(-) diff --git a/config/alfresco/ibatis/org.hibernate.dialect.Dialect/query-people-common-SqlMap.xml b/config/alfresco/ibatis/org.hibernate.dialect.Dialect/query-people-common-SqlMap.xml index 71b74f05a6..2ba608f54a 100644 --- a/config/alfresco/ibatis/org.hibernate.dialect.Dialect/query-people-common-SqlMap.xml +++ b/config/alfresco/ibatis/org.hibernate.dialect.Dialect/query-people-common-SqlMap.xml @@ -27,20 +27,23 @@ where assoc.parent_node_id = #{parentNodeId} + + + and lower(concat( + - and - ( - lower(prop1.string_value) like lower(#{pattern}) + prop1.string_value, ' ', - or lower(prop2.string_value) like lower(#{pattern}) + prop2.string_value, ' ', - or lower(prop3.string_value) like lower(#{pattern}) + prop3.string_value, ' ', - - ) + + ' ')) like lower(#{item}) + and exists ( select * diff --git a/source/java/org/alfresco/repo/security/person/FilterSortPersonEntity.java b/source/java/org/alfresco/repo/security/person/FilterSortPersonEntity.java index 095bb87046..f7d4ceee6a 100644 --- a/source/java/org/alfresco/repo/security/person/FilterSortPersonEntity.java +++ b/source/java/org/alfresco/repo/security/person/FilterSortPersonEntity.java @@ -18,6 +18,7 @@ */ package org.alfresco.repo.security.person; +import java.util.ArrayList; import java.util.List; @@ -42,7 +43,7 @@ public class FilterSortPersonEntity private Long prop3qnameId = null; private Boolean sort3asc = null; - private String pattern; + private List pattern; private List includeAspectIds; private List excludeAspectIds; @@ -65,7 +66,7 @@ public class FilterSortPersonEntity this.parentNodeId = parentNodeId; } - public String getPattern() + public List getPattern() { return pattern; } @@ -93,13 +94,20 @@ public class FilterSortPersonEntity public void setPattern(String pattern) { + this.pattern = new ArrayList(); if (pattern != null) { // escape the '%' character with '\' (standard SQL escape character) //pattern = escape(pattern, '%'); // replace the wildcard character '*' with the one used in database queries i.e. '%' - this.pattern = pattern.replace('*', '%'); + pattern = pattern.replace('*', '%'); + + String[] parts = pattern.split(" "); + for(String part:parts) + { + this.pattern.add("%" + part + "%"); + } } }