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:
Kevin Roast
2009-03-11 19:51:09 +00:00
parent 1aa1ef1f13
commit a94f5f0bff
9 changed files with 130 additions and 60 deletions

View File

@@ -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));
}
}