diff --git a/source/java/org/alfresco/repo/site/SiteServiceImpl.java b/source/java/org/alfresco/repo/site/SiteServiceImpl.java index 16b622b4d7..a8cc104cf0 100644 --- a/source/java/org/alfresco/repo/site/SiteServiceImpl.java +++ b/source/java/org/alfresco/repo/site/SiteServiceImpl.java @@ -1210,22 +1210,23 @@ public class SiteServiceImpl extends AbstractLifecycleBean implements SiteServic { final int maxResults = size > 0 ? size : 1000; final Set siteNames = new TreeSet(); - authorityService.getContainingAuthoritiesInZone(AuthorityType.GROUP, userName, AuthorityService.ZONE_APP_SHARE, new AuthorityFilter(){ - @Override - public boolean includeAuthority(String authority) + + // MNT-13198 - use the bridge table + Set containingAuthorities = authorityService.getContainingAuthorities(AuthorityType.GROUP, userName, false); + for(String authority : containingAuthorities) + { + if (siteNames.size() < maxResults) { - if (siteNames.size() < maxResults) + String siteName = resolveSite(authority); + // MNT-10836 fix, after MNT-10109 we should also check site existence + // A simple exists check would be better than getting the site properties etc - profiling suggests x2 faster + if ((siteName != null) && (getSite(siteName) != null)) { - String siteName = resolveSite(authority); - // MNT-10836 fix, after MNT-10109 we should also check site existence - if (siteName == null || getSite(siteName) == null) - { - return false; - } - return siteNames.add(siteName); + siteNames.add(siteName); } - return false; - }}, maxResults); + } + } + if (siteNames.isEmpty()) { return Collections.emptyList();