mirror of
https://github.com/Alfresco/alfresco-community-repo.git
synced 2025-08-07 17:49:17 +00:00
ALF-8968 - Change the prefered ScriptGroup constructor to include the ServiceRegistry, so it can be passed on to child ScriptUser objects
git-svn-id: https://svn.alfresco.com/repos/alfresco-enterprise/alfresco/HEAD/root@28424 c4b6b30b-aa2e-2d43-bbcb-ca4b014f7261
This commit is contained in:
@@ -106,18 +106,30 @@ public class ScriptAuthorityService extends BaseScopableProcessorExtension
|
|||||||
{
|
{
|
||||||
authorities = Collections.emptySet();
|
authorities = Collections.emptySet();
|
||||||
}
|
}
|
||||||
return makeScriptGroups(authorities, paging, sortBy, authorityService);
|
return makeScriptGroups(authorities, paging, sortBy, serviceRegistry);
|
||||||
}
|
}
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* Search the root groups, those without a parent group.
|
* Search the root groups, those without a parent group.
|
||||||
* @return The root groups (empty if there are no root groups)
|
* @return The root groups (empty if there are no root groups)
|
||||||
*/
|
*/
|
||||||
public ScriptGroup[] searchRootGroups(String displayNamePattern)
|
public ScriptGroup[] searchRootGroups(String displayNamePattern)
|
||||||
{
|
{
|
||||||
return searchRootGroupsInZone(displayNamePattern, null);
|
return searchRootGroupsInZone(displayNamePattern, null);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Search the root groups, those without a parent group.
|
||||||
|
*
|
||||||
|
* @param paging Paging object with max number to return, and items to skip
|
||||||
|
* @param sortBy What to sort on (authorityName, shortName or displayName)
|
||||||
|
* @return The root groups (empty if there are no root groups)
|
||||||
|
*/
|
||||||
|
public ScriptGroup[] searchRootGroups(String displayNamePattern, ScriptPagingDetails paging, String sortBy)
|
||||||
|
{
|
||||||
|
return searchRootGroupsInZone(displayNamePattern, null, paging, sortBy);
|
||||||
|
}
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* Search the root groups, those without a parent group. Searches in all zones.
|
* Search the root groups, those without a parent group. Searches in all zones.
|
||||||
* @return The root groups (empty if there are no root groups)
|
* @return The root groups (empty if there are no root groups)
|
||||||
@@ -150,7 +162,7 @@ public class ScriptAuthorityService extends BaseScopableProcessorExtension
|
|||||||
{
|
{
|
||||||
authorities = Collections.emptySet();
|
authorities = Collections.emptySet();
|
||||||
}
|
}
|
||||||
return makeScriptGroups(authorities, paging, authorityService);
|
return makeScriptGroups(authorities, paging, serviceRegistry);
|
||||||
}
|
}
|
||||||
|
|
||||||
/**
|
/**
|
||||||
@@ -182,7 +194,7 @@ public class ScriptAuthorityService extends BaseScopableProcessorExtension
|
|||||||
authorities = Collections.emptySet();
|
authorities = Collections.emptySet();
|
||||||
}
|
}
|
||||||
|
|
||||||
return makeScriptGroups(authorities, new ScriptPagingDetails(maxItems, skipCount), null, authorityService);
|
return makeScriptGroups(authorities, new ScriptPagingDetails(maxItems, skipCount), null, serviceRegistry);
|
||||||
}
|
}
|
||||||
|
|
||||||
/**
|
/**
|
||||||
@@ -204,7 +216,7 @@ public class ScriptAuthorityService extends BaseScopableProcessorExtension
|
|||||||
authorities = Collections.emptySet();
|
authorities = Collections.emptySet();
|
||||||
}
|
}
|
||||||
|
|
||||||
return makeScriptGroups(authorities, paging, sortBy, authorityService);
|
return makeScriptGroups(authorities, paging, sortBy, serviceRegistry);
|
||||||
}
|
}
|
||||||
|
|
||||||
/**
|
/**
|
||||||
@@ -218,7 +230,7 @@ public class ScriptAuthorityService extends BaseScopableProcessorExtension
|
|||||||
|
|
||||||
if (authorityService.authorityExists(fullName))
|
if (authorityService.authorityExists(fullName))
|
||||||
{
|
{
|
||||||
ScriptGroup group = new ScriptGroup(fullName, authorityService);
|
ScriptGroup group = new ScriptGroup(fullName, serviceRegistry);
|
||||||
return group;
|
return group;
|
||||||
}
|
}
|
||||||
// group not found.
|
// group not found.
|
||||||
@@ -234,7 +246,7 @@ public class ScriptAuthorityService extends BaseScopableProcessorExtension
|
|||||||
{
|
{
|
||||||
if (authorityService.authorityExists(fullAuthorityName))
|
if (authorityService.authorityExists(fullAuthorityName))
|
||||||
{
|
{
|
||||||
ScriptGroup group = new ScriptGroup(fullAuthorityName, authorityService);
|
ScriptGroup group = new ScriptGroup(fullAuthorityName, serviceRegistry);
|
||||||
return group;
|
return group;
|
||||||
}
|
}
|
||||||
// group not found.
|
// group not found.
|
||||||
@@ -263,6 +275,19 @@ public class ScriptAuthorityService extends BaseScopableProcessorExtension
|
|||||||
return searchGroupsInZone(shortNameFilter, null);
|
return searchGroupsInZone(shortNameFilter, null);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Search for groups in all zones.
|
||||||
|
*
|
||||||
|
* @param shortNameFilter partial match on shortName (* and ?) work. If empty then matches everything.
|
||||||
|
* @param paging Paging object with max number to return, and items to skip
|
||||||
|
* @param sortBy What to sort on (authorityName, shortName or displayName)
|
||||||
|
* @return the groups matching the query
|
||||||
|
*/
|
||||||
|
public ScriptGroup[] searchGroups(String shortNameFilter, ScriptPagingDetails paging, String sortBy)
|
||||||
|
{
|
||||||
|
return searchGroupsInZone(shortNameFilter, null, paging, sortBy);
|
||||||
|
}
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* Search for groups in a specific zone
|
* Search for groups in a specific zone
|
||||||
*
|
*
|
||||||
@@ -321,7 +346,7 @@ public class ScriptAuthorityService extends BaseScopableProcessorExtension
|
|||||||
// Return an empty set if unrecognised authority.
|
// Return an empty set if unrecognised authority.
|
||||||
authorities = Collections.emptySet();
|
authorities = Collections.emptySet();
|
||||||
}
|
}
|
||||||
return makeScriptGroups(authorities, paging, sortBy, authorityService);
|
return makeScriptGroups(authorities, paging, sortBy, serviceRegistry);
|
||||||
}
|
}
|
||||||
|
|
||||||
/**
|
/**
|
||||||
|
@@ -219,12 +219,32 @@ public class ScriptAuthorityServiceTest extends TestCase
|
|||||||
|
|
||||||
public void testFindGroups()
|
public void testFindGroups()
|
||||||
{
|
{
|
||||||
|
// service.searchGroups(shortNameFilter, paging, sortBy);
|
||||||
|
// service.searchGroupsInZone(shortNameFilter, zone, paging, sortBy);
|
||||||
|
// service.searchRootGroups(displayNamePattern, paging, sortBy);
|
||||||
|
// service.searchRootGroupsInZone(displayNamePattern, paging, sortBy);
|
||||||
}
|
}
|
||||||
|
|
||||||
public void testGroupUsers()
|
public void testGroupUsers()
|
||||||
{
|
{
|
||||||
|
ScriptGroup groupA = service.getGroup(GROUP_A);
|
||||||
|
|
||||||
|
// Check on a group with no users
|
||||||
|
assertEquals(0, groupA.getUserCount());
|
||||||
|
ScriptUser[] users = groupA.getAllUsers();
|
||||||
|
assertEquals(0, users.length);
|
||||||
|
|
||||||
|
// Add some users to the group
|
||||||
|
authorityService.addAuthority(GROUP_A_FULL, USER_A);
|
||||||
|
authorityService.addAuthority(GROUP_A_FULL, USER_B);
|
||||||
|
|
||||||
|
// Now look for the users on that group
|
||||||
|
groupA = service.getGroup(GROUP_A);
|
||||||
|
assertEquals(2, groupA.getUserCount());
|
||||||
|
|
||||||
|
users = groupA.getAllUsers();
|
||||||
|
assertEquals(2, users.length);
|
||||||
|
// TODO check
|
||||||
}
|
}
|
||||||
|
|
||||||
public void testUsers()
|
public void testUsers()
|
||||||
|
@@ -31,6 +31,7 @@ import java.util.Map;
|
|||||||
import java.util.Set;
|
import java.util.Set;
|
||||||
import java.util.TreeSet;
|
import java.util.TreeSet;
|
||||||
|
|
||||||
|
import org.alfresco.service.ServiceRegistry;
|
||||||
import org.alfresco.service.cmr.security.AuthorityService;
|
import org.alfresco.service.cmr.security.AuthorityService;
|
||||||
import org.alfresco.service.cmr.security.AuthorityType;
|
import org.alfresco.service.cmr.security.AuthorityType;
|
||||||
import org.alfresco.util.ModelUtil;
|
import org.alfresco.util.ModelUtil;
|
||||||
@@ -45,6 +46,7 @@ import org.alfresco.util.ScriptPagingDetails;
|
|||||||
public class ScriptGroup implements Authority, Serializable
|
public class ScriptGroup implements Authority, Serializable
|
||||||
{
|
{
|
||||||
private static final long serialVersionUID = 6073732221341647273L;
|
private static final long serialVersionUID = 6073732221341647273L;
|
||||||
|
private transient ServiceRegistry serviceRegistry;
|
||||||
private transient AuthorityService authorityService;
|
private transient AuthorityService authorityService;
|
||||||
private ScriptAuthorityType authorityType = ScriptAuthorityType.GROUP;
|
private ScriptAuthorityType authorityType = ScriptAuthorityType.GROUP;
|
||||||
private String shortName;
|
private String shortName;
|
||||||
@@ -53,17 +55,39 @@ public class ScriptGroup implements Authority, Serializable
|
|||||||
private Set<String> childAuthorityNames;
|
private Set<String> childAuthorityNames;
|
||||||
private Boolean isAdmin;
|
private Boolean isAdmin;
|
||||||
|
|
||||||
|
/**
|
||||||
|
* New script group
|
||||||
|
* @param fullName
|
||||||
|
* @param serviceRegistry
|
||||||
|
*/
|
||||||
|
public ScriptGroup(String fullName, ServiceRegistry serviceRegistry)
|
||||||
|
{
|
||||||
|
this(fullName, serviceRegistry, serviceRegistry.getAuthorityService());
|
||||||
|
}
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* New script group
|
* New script group
|
||||||
* @param fullName
|
* @param fullName
|
||||||
* @param authorityService
|
* @param authorityService
|
||||||
|
* @deprecated Use {@link #ScriptGroup(String, ServiceRegistry)} instead
|
||||||
*/
|
*/
|
||||||
public ScriptGroup(String fullName, AuthorityService authorityService)
|
public ScriptGroup(String fullName, AuthorityService authorityService)
|
||||||
{
|
{
|
||||||
this.authorityService = authorityService;
|
this(fullName, null, authorityService);
|
||||||
this.fullName = fullName;
|
}
|
||||||
shortName = authorityService.getShortName(fullName);
|
|
||||||
displayName = authorityService.getAuthorityDisplayName(fullName);
|
/**
|
||||||
|
* New script group
|
||||||
|
* @param fullName
|
||||||
|
* @param authorityService
|
||||||
|
*/
|
||||||
|
private ScriptGroup(String fullName, ServiceRegistry serviceRegistry, AuthorityService authorityService)
|
||||||
|
{
|
||||||
|
this.authorityService = authorityService;
|
||||||
|
this.serviceRegistry = serviceRegistry;
|
||||||
|
this.fullName = fullName;
|
||||||
|
shortName = authorityService.getShortName(fullName);
|
||||||
|
displayName = authorityService.getAuthorityDisplayName(fullName);
|
||||||
}
|
}
|
||||||
|
|
||||||
/**
|
/**
|
||||||
@@ -131,7 +155,7 @@ public class ScriptGroup implements Authority, Serializable
|
|||||||
Set<ScriptUser> users = new LinkedHashSet<ScriptUser>();
|
Set<ScriptUser> users = new LinkedHashSet<ScriptUser>();
|
||||||
for (String authority : children)
|
for (String authority : children)
|
||||||
{
|
{
|
||||||
ScriptUser user = new ScriptUser(authority, authorityService);
|
ScriptUser user = new ScriptUser(authority, null, serviceRegistry);
|
||||||
users.add(user);
|
users.add(user);
|
||||||
}
|
}
|
||||||
return users.toArray(new ScriptUser[users.size()]);
|
return users.toArray(new ScriptUser[users.size()]);
|
||||||
@@ -147,7 +171,7 @@ public class ScriptGroup implements Authority, Serializable
|
|||||||
Set<ScriptGroup> groups = new LinkedHashSet<ScriptGroup>();
|
Set<ScriptGroup> groups = new LinkedHashSet<ScriptGroup>();
|
||||||
for (String authority : children)
|
for (String authority : children)
|
||||||
{
|
{
|
||||||
ScriptGroup group = new ScriptGroup(authority, authorityService);
|
ScriptGroup group = new ScriptGroup(authority, serviceRegistry, authorityService);
|
||||||
groups.add(group);
|
groups.add(group);
|
||||||
}
|
}
|
||||||
return groups.toArray(new ScriptGroup[groups.size()]);
|
return groups.toArray(new ScriptGroup[groups.size()]);
|
||||||
@@ -202,7 +226,7 @@ public class ScriptGroup implements Authority, Serializable
|
|||||||
Set<ScriptUser> users = new LinkedHashSet<ScriptUser>();
|
Set<ScriptUser> users = new LinkedHashSet<ScriptUser>();
|
||||||
for (String authority : children)
|
for (String authority : children)
|
||||||
{
|
{
|
||||||
ScriptUser user = new ScriptUser(authority, authorityService);
|
ScriptUser user = new ScriptUser(authority, null, serviceRegistry);
|
||||||
users.add(user);
|
users.add(user);
|
||||||
}
|
}
|
||||||
childUsers = users.toArray(new ScriptUser[users.size()]);
|
childUsers = users.toArray(new ScriptUser[users.size()]);
|
||||||
@@ -332,7 +356,7 @@ public class ScriptGroup implements Authority, Serializable
|
|||||||
LinkedHashSet<ScriptGroup> groups = new LinkedHashSet<ScriptGroup>();
|
LinkedHashSet<ScriptGroup> groups = new LinkedHashSet<ScriptGroup>();
|
||||||
for (String authority : sortedParents)
|
for (String authority : sortedParents)
|
||||||
{
|
{
|
||||||
ScriptGroup group = new ScriptGroup(authority, authorityService);
|
ScriptGroup group = new ScriptGroup(authority, serviceRegistry, authorityService);
|
||||||
groups.add(group);
|
groups.add(group);
|
||||||
|
|
||||||
}
|
}
|
||||||
@@ -370,7 +394,7 @@ public class ScriptGroup implements Authority, Serializable
|
|||||||
public ScriptGroup[] getAllParentGroups(ScriptPagingDetails paging, String sortBy)
|
public ScriptGroup[] getAllParentGroups(ScriptPagingDetails paging, String sortBy)
|
||||||
{
|
{
|
||||||
Set<String> parents = authorityService.getContainingAuthorities(AuthorityType.GROUP, fullName, false);
|
Set<String> parents = authorityService.getContainingAuthorities(AuthorityType.GROUP, fullName, false);
|
||||||
return makeScriptGroups(parents, paging, sortBy, authorityService);
|
return makeScriptGroups(parents, paging, sortBy, serviceRegistry);
|
||||||
}
|
}
|
||||||
|
|
||||||
/**
|
/**
|
||||||
@@ -422,7 +446,7 @@ public class ScriptGroup implements Authority, Serializable
|
|||||||
{
|
{
|
||||||
String authorityName = authorityService.createAuthority(AuthorityType.GROUP, newShortName, newDisplayName, authorityService.getDefaultZones());
|
String authorityName = authorityService.createAuthority(AuthorityType.GROUP, newShortName, newDisplayName, authorityService.getDefaultZones());
|
||||||
authorityService.addAuthority(fullName, authorityName);
|
authorityService.addAuthority(fullName, authorityName);
|
||||||
ScriptGroup childGroup = new ScriptGroup(authorityName, authorityService);
|
ScriptGroup childGroup = new ScriptGroup(authorityName, serviceRegistry, authorityService);
|
||||||
clearCaches();
|
clearCaches();
|
||||||
return childGroup;
|
return childGroup;
|
||||||
}
|
}
|
||||||
@@ -482,12 +506,12 @@ public class ScriptGroup implements Authority, Serializable
|
|||||||
}
|
}
|
||||||
|
|
||||||
public static ScriptGroup[] makeScriptGroups(Collection<String> authorities,
|
public static ScriptGroup[] makeScriptGroups(Collection<String> authorities,
|
||||||
ScriptPagingDetails paging, AuthorityService authorityService)
|
ScriptPagingDetails paging, ServiceRegistry serviceRegistry)
|
||||||
{
|
{
|
||||||
return makeScriptGroups(authorities, paging, null, authorityService);
|
return makeScriptGroups(authorities, paging, null, serviceRegistry);
|
||||||
}
|
}
|
||||||
public static ScriptGroup[] makeScriptGroups(Collection<String> authorities,
|
public static ScriptGroup[] makeScriptGroups(Collection<String> authorities,
|
||||||
ScriptPagingDetails paging, final String sortBy, AuthorityService authorityService)
|
ScriptPagingDetails paging, final String sortBy, ServiceRegistry serviceRegistry)
|
||||||
{
|
{
|
||||||
|
|
||||||
final ArrayList<String> authList = new ArrayList<String>(authorities);
|
final ArrayList<String> authList = new ArrayList<String>(authorities);
|
||||||
@@ -499,7 +523,7 @@ public class ScriptGroup implements Authority, Serializable
|
|||||||
{
|
{
|
||||||
for(String authority : authorities)
|
for(String authority : authorities)
|
||||||
{
|
{
|
||||||
scriptGroupCache.put(authority, new ScriptGroup(authority, authorityService));
|
scriptGroupCache.put(authority, new ScriptGroup(authority, serviceRegistry));
|
||||||
}
|
}
|
||||||
final AuthorityComparator c2 = new AuthorityComparator(sortBy);
|
final AuthorityComparator c2 = new AuthorityComparator(sortBy);
|
||||||
Collections.sort(authList, new Comparator<String>() {
|
Collections.sort(authList, new Comparator<String>() {
|
||||||
@@ -538,7 +562,7 @@ public class ScriptGroup implements Authority, Serializable
|
|||||||
}
|
}
|
||||||
else
|
else
|
||||||
{
|
{
|
||||||
group = new ScriptGroup(authority, authorityService);
|
group = new ScriptGroup(authority, serviceRegistry);
|
||||||
}
|
}
|
||||||
groups[i] = group;
|
groups[i] = group;
|
||||||
}
|
}
|
||||||
|
Reference in New Issue
Block a user