Question

With Javascript Webscript, I can get a group node with the following code:

var group = People.getGroup(groupname);

What would be the Java-backed equivalent of this code?

So far I can only get a set of all group names, but I would like to be able to iterate through the set and get the actual group node.

//Gets all groups, but only as a set of groupnames
Set<String> groups = new HashSet<String>();
groups.addAll(authorityService.getAllAuthorities(AuthorityType.GROUP));
for (String groupname : groups) {
  //jscript equivalent - var group = People.getGroup(groupname);
}
Was it helpful?

Solution

You can use the org.alfresco.repo.security.authority.AuthorityDAO getAuthorityNodeRefOrNull method to get a group node by the name.

Unfortunately the AuthorityDAO doesn't provide a method to get all group node, but if you look at the code of it's implementation org.alfresco.repo.security.authority.AuthorityDAOImpl you'll be able to easily copy the code that does it, it's not very complex.

OTHER TIPS

There's a new AuthorityService method coming soon that'll give you the noderef for a given group:

/**
 * Gets the authority node for the specified name
 * 
 * @param name The authority name
 *  
 * @return the reference to the authority node
 */
public NodeRef getAuthorityNodeRef(String name);

It's not in a released version of Alfresco though, so for now you'll need to call getAuthorityNodeRefOrNull from a AuthorityDAO as Hugo suggested.

Licensed under: CC-BY-SA with attribution
Not affiliated with StackOverflow
scroll top