Comment obtenir le noeud Groupe en Java-Backed Webscript Alfresco 3.1
Question
Avec Javascript Webscript, je peux obtenir un nœud de groupe avec le code suivant:
var group = People.getGroup(groupname);
Quel serait l'équivalent Java soutenu de ce code?
Jusqu'à présent, je ne peux obtenir un ensemble de tous les noms de groupe, mais je voudrais pouvoir itérer l'ensemble et obtenir le nœud de groupe réel.
//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);
}
La solution
Vous pouvez utiliser la méthode org.alfresco.repo.security.authority.AuthorityDAO
de getAuthorityNodeRefOrNull
pour obtenir un nœud de groupe par le nom.
Malheureusement, le AuthorityDAO ne fournit pas une méthode pour obtenir tous les nœuds du groupe, mais si vous regardez le code de celui-ci est mise en œuvre org.alfresco.repo.security.authority.AuthorityDAOImpl vous serez en mesure de copier facilement le code le fait, ce n'est pas très complexe.
Autres conseils
Il y a une nouvelle méthode de AuthorityService venir bientôt que vous donnera le noderef pour un groupe donné:
/**
* 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);
Il est pas dans une version publiée d'Alfresco, donc pour l'instant, vous aurez besoin d'appeler getAuthorityNodeRefOrNull d'un AuthorityDAO comme Hugo suggéré.