2016-08-25 70 views
1

的会员有什么方法可以获得我是Alfresco Share网站的成员名单? (从远程应用程序)获取Alfresco网站我是

通过“会员”我的意思是:在https://example.com/share/page/site/thesite/site-members

上市理想情况下,CMIS通话将是最好的,但我想这是不可能的,所以另一个REST API是OK了。
即使有成千上万个网站,它也需要很快,因此逐个检查每个网站是行不通的。
不会很快消失的官方API是首选。
它应该在Alfresco 4.2和更高版本上工作。

+0

你靶向什么版本的Alfresco的? 4.x的? 5.0? 5.1? – Gagravarr

+0

@Gagravarr:对不起,我修改了我的问题!感谢:-) –

回答

1

逆向工程的露天分享仪表盘使我发现这个JSON REST调用:

https://example.com/share/proxy/alfresco/api/people/nicolas/sites?roles=user&size=100

你得到这样的事情:

[ 
{ 
    "url": "\/alfresco\/s\/api\/sites\/superproject", 
    "sitePreset": "site-dashboard", 
    "shortName": "superproject", 
    "title": "Super Project", 
    "description": "A fabulous project", 
    "node": "\/alfresco\/s\/api\/node\/workspace\/SpacesStore\/9dfb2426-bc2e-471e-8452-d4f6ea4b1cfa", 
    "tagScope": "\/alfresco\/s\/api\/tagscopes\/workspace\/SpacesStore\/9dfb2426-bc2e-471e-8452-d4f6ea4b1cfa", 
    "siteRole": "SiteCollaborator", 
    "isPublic": true, 
    "visibility": "PUBLIC" 
} 
     , 
{ 
    "url": "\/alfresco\/s\/api\/sites\/another", 
    "sitePreset": "site-dashboard", 
    "shortName": "another", 
    "title": "Another Project", 
    "description": "A less wonderful project", 
    "node": "\/alfresco\/s\/api\/node\/workspace\/SpacesStore\/3859750c-8b3a-4736-b3e5-1ca1c2ff1cac", 
    "tagScope": "\/alfresco\/s\/api\/tagscopes\/workspace\/SpacesStore\/3859750c-8b3a-4736-b3e5-1ca1c2ff1cac", 
    "siteRole": "SiteManager", 
    "isPublic": true, 
    "visibility": "PUBLIC" 
} 
] 

所以它适合我的Alfresco的4.2测试服务器,但问题是我不太确定它是如何“官方”的。如果不是正式的,它可能会在下一次的Alfresco发布中消失。

我还发现http://sharextras.org/jsdoc/share/enterprise-4.0.0/symbols/Alfresco.SiteFinder.html#memberOfSites这似乎正是我需要的,但它的文件似乎在4.0到结束,所以我不知道它仍处于露天5.

+1

你看到任何问题,而使用此? https://example.com/share/proxy/alfresco/api/people/nicolas/sites?roles=user&size=100 –

+0

@MuralidharanDeenathayalan:它适用于我的Alfresco 4.2测试服务器,但问题是我不确定如何“官员”是。如果不是正式的,它可能会在下一次的Alfresco发布中消失。 –

+0

您使用的Rest API仍然存在于社区头部git/trunk中,所以您应该暂时还可以。在5.1或5.2中可能会有更好的API支持,但是因为你使用的是4.2,所以帮助不大...... – Gagravarr

0

您可以存在Alfresco Share JavaScript API的一部分使用它来获取用户的会员详细信息。

GET /alfresco/service/api/sites/{shortname}/memberships/{username} 

它为我工作,你甚至可以用Postman测试,但不要忘了authentification

你可以找到更多的https://wiki.alfresco.com/wiki/Repository_RESTful_API_Reference

+0

从这个问题:“*即使有成千上万个网站,它也需要很快,因此逐个检查每个网站将无法工作。”*“ –

+0

我认为有一个解决方案,我会更新我的答案 –

+0

解决方案是只使用'site/{shortname}'部分它会给站点的详细信息,在这种情况下,我会试一试,如果为我工作更新此答案 –