Come arrivare nodo Gruppo in Alfresco 3.1 di Java-Backed Webscript
Domanda
Con JavaScript Webscript, posso ottenere un nodo di gruppo con il seguente codice:
var group = People.getGroup(groupname);
Quale sarebbe l'equivalente Java-backed di questo codice?
Finora posso ottenere solo un insieme di tutti i nomi dei gruppi, ma vorrei essere in grado di scorrere il set e ottenere il nodo gruppo attuale.
//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);
}
Soluzione
È possibile utilizzare il metodo org.alfresco.repo.security.authority.AuthorityDAO
getAuthorityNodeRefOrNull
per ottenere un nodo di gruppo dal nome.
Purtroppo l'AuthorityDAO non fornisce un metodo per ottenere tutti i nodi del gruppo, ma se si guarda il codice della sua implementazione org.alfresco.repo.security.authority.AuthorityDAOImpl sarete in grado di copiare facilmente il codice che lo fa, non è molto complesso.
Altri suggerimenti
C'è un nuovo metodo AuthorityService in arrivo che ti darà la noderef per un determinato gruppo:
/**
* 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);
Non è in una versione rilasciata di Alfresco, però, quindi per ora è necessario chiamare getAuthorityNodeRefOrNull da un AuthorityDAO come suggerito Hugo.