var sites = siteService.listUserSites(authorityName);
Ce que je pensais faire aussi, c'est d'ajouter la liste des membres de sites récupérés dans un objet de type Tableau, mais as tu une idée plus light.
var sites = siteService.listUserSites(authorityName);
for each(var site in sites)
{
var userResults = user.person.properties.userName);
}
http://localhost:8080/share/proxy/alfresco/api/forms/picker/authority/children?selectableType=cm:per...
Comme tu pourras le voir, j'ai joué une requête très egocentrique ;-)function findUsers(searchTerm, maxResults, results)
{
var paging = utils.createPaging(maxResults, -1);
var searchResults = groups.searchUsers(searchTerm, paging, "lastName");
// create person object for each result
for each(var user in searchResults)
{
if (logger.isLoggingEnabled())
logger.log("found user = " + user.userName);
// add to results
results.push(
{
item: createPersonResult(user.person),
selectable: true
});
}
}
http://localhost:8080/share/proxy/alfresco/api/forms/picker/authority/children?selectableType=cm:per...
Le webscript devra ensuite passer l'information sur le site à la fonction findUsers :function findUsers(searchTerm, maxResults, results, siteName)
{
var searchResults = Array();
if (site == null) {
// Pas dans un site, recherche complète
var paging = utils.createPaging(maxResults, -1);
searchResults = groups.searchUsers(searchTerm, paging, "lastName");
} else {
var site = siteService.getSite(siteName);
var members = site.listMembers(searchTerm, "", maxResults, true);
for (var i=0; i<members.size(); i++) {
searchResults[i] = groups.getUser(userName);
}
}
// create person object for each result
for each(var user in searchResults)
{
if (logger.isLoggingEnabled())
logger.log("found user = " + user.userName);
// add to results
results.push(
{
item: createPersonResult(user.person),
selectable: true
});
}
}
Aller hop, c'est la fin de semaine, je vais illustrer mon propos d'un petit exemple.
Lorsque tu fais une recherche pour choisir un acteur du workflow, l'url suivante est appelé :Comme tu pourras le voir, j'ai joué une requête très egocentrique ;-)http://localhost:8080/share/proxy/alfresco/api/forms/picker/authority/children?selectableType=cm:per...
Cette url va faire appel au webscript Alfresco pickerchildren.get.
Ce webscript va traiter différents cas de recherche en fonction des paramètres de l'url. Ici, on recherche un utilisateur (cf. authority + selectableType=cmerson) dont le nom contient "charles".
La recherche a proprement parlé est réalisée par la méthode findUsers(searchTerm, maxResults, results) :function findUsers(searchTerm, maxResults, results)
{
var paging = utils.createPaging(maxResults, -1);
var searchResults = groups.searchUsers(searchTerm, paging, "lastName");
// create person object for each result
for each(var user in searchResults)
{
if (logger.isLoggingEnabled())
logger.log("found user = " + user.userName);
// add to results
results.push(
{
item: createPersonResult(user.person),
selectable: true
});
}
}
Voila pour la situation de départ.
jusque là çava.
Pour ton besoin, il faut passer une information sur le site. L'URL peut donc devenir quelque chose du genre :Salut Charles,http://localhost:8080/share/proxy/alfresco/api/forms/picker/authority/children?selectableType=cm:per...
Le webscript devra ensuite passer l'information sur le site à la fonction findUsers :if (site == null) {function findUsers(searchTerm, maxResults, results, siteName)
{
var searchResults = Array();
La variable site est-elle celle passée via l'url du webscript si oui j'ai bien ajouté la ligne suivante pour la déclaration de site
[code]
var argsSiteName = args['site'];
// Pas dans un site, recherche complète
var paging = utils.createPaging(maxResults, -1);
searchResults = groups.searchUsers(searchTerm, paging, "lastName");
}
Cette deuxième partie est la plus importante.
1er question : La variable userName vient d'où ?
2ème question le pagging est aparemment obligatoire dans les 2 cas de figure ?
Je ne rentre jamais dans ce boucle même en spécifiant un site.
else {
var site = siteService.getSite(siteName);
var members = site.listMembers(searchTerm, "", maxResults, true);
for (var i=0; i<members.size(); i++) {
searchResults = groups.getUser(userName);
}
}
// create person object for each result
for each(var user in searchResults)
{
if (logger.isLoggingEnabled())
logger.log("found user = " + user.userName);
// add to results
results.push(
{
item: createPersonResult(user.person),
selectable: true
});
}
}
Bien entendu, il reste plein de choses à faire :==> OKI
- Tester que ça fonctionne (!)
- Faire la modification dans Share pour passer le site en paramètre ==> OKI
- Vérifier que l'absence de paging n'est pas un frein trop gros ==>un peu
- Mettre en place le tri des résultats si on le souhaite
Voila donc tout ce que je peux avoir en tête pour couvrir ton besoin.
===>Thank en tout cas pour ta disponibilité
Cordialement,
Charles
Content from pre 2016 and from language groups that have been closed.
Content is read-only.
By using this site, you are agreeing to allow us to collect and use cookies as outlined in Alfresco’s Cookie Statement and Terms of Use (and you have a legitimate interest in Alfresco and our products, authorizing us to contact you in such methods). If you are not ok with these terms, please do not use this website.