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.getAllAuthoritie开发者_运维技巧s(AuthorityType.GROUP));
for (String groupname : groups) {
//jscript equivalent - var group = People.getGroup(groupname);
}
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.
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.
精彩评论