mirror of
https://github.com/Alfresco/alfresco-community-repo.git
synced 2025-08-07 17:49:17 +00:00
Merged V3.1 to HEAD
13249: Fix for ETHREEOH-1064 and ETHREEOH-1286 and fix for issue where New Page action not activated in Share Wiki page list. 13251: Final part of fix for ETHREEOH-1270 - Group pickers in JSF client now use new findAuthorities() API to find groups for user searches - over 10x quicker for installations with many groups. git-svn-id: https://svn.alfresco.com/repos/alfresco-enterprise/alfresco/HEAD/root@13580 c4b6b30b-aa2e-2d43-bbcb-ca4b014f7261
This commit is contained in:
@@ -39,7 +39,6 @@ import org.alfresco.service.cmr.security.AuthorityService;
|
||||
import org.alfresco.service.cmr.security.AuthorityType;
|
||||
import org.alfresco.service.cmr.security.PermissionService;
|
||||
import org.alfresco.service.cmr.security.PersonService;
|
||||
import org.alfresco.service.namespace.NamespaceService;
|
||||
import org.alfresco.web.app.Application;
|
||||
import org.alfresco.web.bean.repository.Repository;
|
||||
import org.alfresco.web.ui.common.SortableSelectItem;
|
||||
@@ -55,7 +54,6 @@ import org.apache.commons.logging.LogFactory;
|
||||
*/
|
||||
public class SetPermissionsDialog extends UpdatePermissionsDialog
|
||||
{
|
||||
|
||||
private static final long serialVersionUID = -8139619811033232880L;
|
||||
|
||||
/** logger */
|
||||
@@ -251,13 +249,7 @@ public class SetPermissionsDialog extends UpdatePermissionsDialog
|
||||
// Use lucene search to retrieve user details
|
||||
String term = QueryParser.escape(contains.trim());
|
||||
StringBuilder query = new StringBuilder(128);
|
||||
query.append("@").append(NamespaceService.CONTENT_MODEL_PREFIX).append("\\:firstName:\"*");
|
||||
query.append(term);
|
||||
query.append("*\" @").append(NamespaceService.CONTENT_MODEL_PREFIX).append("\\:lastName:\"*");
|
||||
query.append(term);
|
||||
query.append("*\" @").append(NamespaceService.CONTENT_MODEL_PREFIX).append("\\:userName:");
|
||||
query.append(term);
|
||||
query.append("*");
|
||||
Utils.generatePersonSearch(query, term);
|
||||
ResultSet resultSet = Repository.getServiceRegistry(context).getSearchService().query(Repository.getStoreRef(), SearchService.LANGUAGE_LUCENE, query.toString());
|
||||
List<NodeRef> nodes;
|
||||
try
|
||||
@@ -284,18 +276,23 @@ public class SetPermissionsDialog extends UpdatePermissionsDialog
|
||||
}
|
||||
else
|
||||
{
|
||||
// groups - simple text based match on name
|
||||
Set<String> groups = getAuthorityService().getAllAuthorities(AuthorityType.GROUP);
|
||||
// groups - text search match on supplied name
|
||||
String term = PermissionService.GROUP_PREFIX + "*" + contains.trim() + "*";
|
||||
Set<String> groups;
|
||||
groups = getAuthorityService().findAuthorities(AuthorityType.GROUP, term);
|
||||
groups.addAll(getAuthorityService().getAllAuthorities(AuthorityType.EVERYONE));
|
||||
|
||||
String containsLower = contains.trim().toLowerCase();
|
||||
int offset = PermissionService.GROUP_PREFIX.length();
|
||||
String groupDisplayName;
|
||||
for (String group : groups)
|
||||
{
|
||||
if (group.toLowerCase().indexOf(containsLower, offset) != -1)
|
||||
// get display name, if not present strip prefix from group id
|
||||
groupDisplayName = getAuthorityService().getAuthorityDisplayName(group);
|
||||
if (groupDisplayName == null || groupDisplayName.length() == 0)
|
||||
{
|
||||
results.add(new SortableSelectItem(group, group.substring(offset), group));
|
||||
groupDisplayName = group.substring(PermissionService.GROUP_PREFIX.length());
|
||||
}
|
||||
|
||||
results.add(new SortableSelectItem(group, groupDisplayName, groupDisplayName));
|
||||
}
|
||||
}
|
||||
|
||||
|
Reference in New Issue
Block a user