Как получить групповой узел в веб-скрипте Alfresco 3.1 на базе Java

StackOverflow https://stackoverflow.com/questions/2075979

  •  21-09-2019
  •  | 
  •  

Вопрос

С помощью Javascript Webscript я могу получить групповой узел со следующим кодом:

var group = People.getGroup(groupname);

Каким был бы поддерживаемый Java эквивалент этого кода?

Пока я могу получить только набор всех имен групп, но я хотел бы иметь возможность выполнить итерацию по набору и получить фактический узел группы.

//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);
}
Это было полезно?

Решение

Вы можете использовать org.alfresco.repo.security.authority.AuthorityDAO getAuthorityNodeRefOrNull метод получения узла группы по имени.

К сожалению, AuthorityDAO не предоставляет метода для получения всего узла группы, но если вы посмотрите на код его реализации org.alfresco.repo.security.authority.AuthorityDAOImpl вы сможете легко скопировать код, который это делает, он не очень сложный.

Другие советы

Скоро появится новый метод AuthorityService, который предоставит вам noderef для данной группы:

/**
 * 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);

Однако этого нет в выпущенной версии Alfresco, так что пока вам нужно вызвать getAuthorityNodeRefOrNull из AuthorityDAO, как предложил Хьюго.

Лицензировано под: CC-BY-SA с атрибуция
Не связан с StackOverflow
scroll top