gpt4 book ai didi

java - Alfresco Web 服务获取站点下的所有用户

转载 作者:太空宇宙 更新时间:2023-11-04 07:33:17 26 4
gpt4 key购买 nike

我是 alfresco 的新手。

使用web services with java ,我正在连接到 Alfresco。现在我想要组下的所有用户。

如果有请告诉我。

为了获取子文件夹,我使用 Lucena query像这样:

String luceneQuery = "PATH:\"/app:company_home/st:sites/cm:lntlegal/cm:" + strRootFolder + "/*\" AND TYPE:\"cm:folder\"";

最佳答案

Alfresco Share 的每个站点都链接到一个用户组。该组包含用户列表及其角色。

主组名为GROUP_site_ + siteUrl。它包含 4 个子组,每个角色对应一个子组:SiteManager、SiteCollaborator、SiteContributor 和 SiteConsumer。

它们的类型是“cm:authorityContainer”。

如果您的网站的 URL 名称为“lntlegal”,则其组将为:

GROUP_site_lntlegal
|- GROUP_site_lntlegal_SiteManager
|- GROUP_site_lntlegal_SiteCollaborator
|- GROUP_site_lntlegal_SiteContributor
|- GROUP_site_lntlegal_SiteConsumer

您可以使用以下 Lucene 查询检索组:

@cm\:authorityName:"GROUP_site_lntlegal_SiteConsumer"

用户是关联“cm:member”的子级。

下面是使用 Web 服务 API 执行此操作的示例代码:

final String site = "lntlegal";

for(final String role : Arrays.asList("SiteManager", "SiteCollaborator", "SiteContributor", "SiteConsumer")) {
String luceneQuery = "@cm\\:authorityName:\"GROUP_site_" + site + '_' + role + "\"";
Query query = new Query(Constants.QUERY_LANG_LUCENE, luceneQuery);

QueryResult queryResult = repositoryService.query(store, query, true);
ResultSet resultSet = queryResult.getResultSet();
ResultSetRow[] rows = resultSet.getRows();

ResultSetRowNode node = rows[0].getNode();
Reference reference = new Reference(store, node.getId(), null);

QueryResult associationQueryResult = repositoryService.queryChildren(reference);
ResultSet associationResultSet = associationQueryResult.getResultSet();
ResultSetRow[] associationRows = associationResultSet.getRows();

if(associationRows != null) {
final String userNameQName = createQNameString(NAMESPACE_CONTENT_MODEL, "userName");
for(final ResultSetRow row : associationRows) {
String name = null;
for(NamedValue value:row.getColumns()) {
if(value.getName().equals(userNameQName)) {
name = value.getValue();
}
}

System.out.println(row.getNode().getId() + " : " + name);
}
}
}

关于java - Alfresco Web 服务获取站点下的所有用户,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/17362990/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com