Como obter o nó do grupo no WebScript de Java do Alfresco 3.1
Pergunta
Com o JavaScript WebScript, posso obter um nó de grupo com o seguinte código:
var group = People.getGroup(groupname);
Qual seria o equivalente apoiado por Java desse código?
Até agora, só posso obter um conjunto de todos os nomes de grupo, mas gostaria de ser capaz de iterar no conjunto e obter o nó do grupo real.
//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);
}
Solução
Você pode usar o org.alfresco.repo.security.authority.AuthorityDAO
getAuthorityNodeRefOrNull
Método para obter um nó de grupo pelo nome.
Infelizmente, o AuthorityDao não fornece um método para obter todo o nó do grupo, mas se você olhar para o código de sua implementação org.alfresco.repo.security.authority.authoritydaoimpl Você poderá copiar facilmente o código que o faz, Não é muito complexo.
Outras dicas
Há um novo método de serviço de autoridade em breve que lhe dará o noderef para um determinado grupo:
/**
* 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);
No entanto, não está em uma versão lançada do Alfresco, então, por enquanto, você precisará chamar getAuthoritynodereformull de uma autoridade que Hugo sugeriu.