cancel
Showing results for 
Search instead for 
Did you mean: 

site.listMembers is crashing on 3.1

rdifrango
Champ in-the-making
Champ in-the-making
We are in the process of upgrading from Alfresco 3.0 to Alfresco 3.1 SP 1  and the following script like used to work:

// Get all the memberships
var memberships = site.listMembers(null, null);

It is now giving me an error saying that this method does not exist.  According to the documentation, this method does exist.  What is going on?
2 REPLIES 2

rdifrango
Champ in-the-making
Champ in-the-making
I am answering my own post, it seems as if this API has changes slightly and the following now works:

var memberships = site.listMembers(null, null, 0);

cloisel
Champ in-the-making
Champ in-the-making
Hi everyone,

I just wanted to know how to use the result of the listMembers() function in a webscript js file.
It returns a Map<string,string> and i don't know how to use it and transform it into a string.
Any help would be greatly appreciated.

Thanks in advance.

New:
I'm trying to get the list of site managers using an Alfresco webscript; so I used the listMembers() function to get roles and users associated to a site.
Unfortunately, I only get the list of the roles in the rendered template (not the users).

This is the rendered example:
<users isSiteManager="yes">
<site>TestSite</site>
<public>yes</public>
<manager>SiteManager</manager>
</users>

What am I doing wrong?

retrieve-site-manager.get.desc.xml:
<webscript>
   <shortname>Retrieve Site Manager</shortname>
   <description>Retrieve Site Manager</description>
   <family>SIDE</family>
   <format default="xml"/>
   <url>/com/bluexml/side/retrieve-site-manager?siteName={siteName}</url>
   <authentication>user</authentication>
   <transaction>required</transaction>
</webscript>

retrieve-site-manager.js:

var siteName = args.siteName;
var manager = "SiteManager";
var managers = [];
model.check1 = false;

if(siteName == null || siteName.length == 0)
{
   model.siteManagers = "";
}
else
{
   var site = siteService.getSite(siteName);
   if(site == null) {
      model.siteManagers = "";
   }
   else {
      sitemanagers = site.listMembers(null,manager,0);
      for(var x=0; x<sitemanagers.length; x++){
         managers[x] = sitemanagers[x];
      }
      model.sitemanagers = managers;
      model.site = siteName;
      model.isPublic = site.isPublic;
      model.check1 = true;
   }
}


retrieve-site-manager.get.xml.ftl:
<#if check1>
<users isSiteManager="yes">
   <site>${site}</site>
   <#if isPublic>
   <public>yes</public>
   <#else>
   <public>no</public>
   </#if>
   <#list sitemanagers as sitemanager>
   <manager>${sitemanager}</manager>
   </#list>
</users>
<#else>
<users isSiteManager="no">
   <site>${site}</site>
   <public/>
   <manager/>
</users>
</#if>