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);
}
È stato utile?

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.

Autorizzato sotto: CC-BY-SA insieme a attribuzione
Non affiliato a StackOverflow
scroll top