cancel
Showing results for 
Search instead for 
Did you mean: 

Récupérer tous les sites Share d'un utilisateur

kizux_3453
Champ in-the-making
Champ in-the-making
Bonjour à tous,
Je reviens une énième fois vers vous pour m'aider sur un point qui me pose problème :
J'essaye (avec l'API JavaScript) de récupérer tous les sites Share où un utilisateur à les droits d'éditer le contenu (les liens par exemple Smiley Happy ) :
J'ai trouvé que les personnes appartenant à un groupe d'un site particulier sont dans un noeud du type : workspace://SpacesStore/system/authorities/GROUP_site_nomDuSite_SiteNomDuGroupe/nomDeUtilisateur

Du coup c'est assez embêtant de récupérer tous les sites où l'utilisateur est responsable : je vois une boucle qui récupère tous les sites existants, qui contient une autre boucle qui parcours tous les groupes de  ce site et qui récupère si oui ou non l'utilisateur y appartient.

N'existe il pas une façon plus simple de procéder ?

Merci pour vos réponses
15 REPLIES 15

bertrandf
Champ on-the-rise
Champ on-the-rise
Il faut passer des paramètres à la fonction.

Avez vous essayé avec :
siteService.listSites("", ""); ou siteService.listSites(null, null);

kizux_3453
Champ in-the-making
Champ in-the-making
C'est SUPER, ca marche parfaitement maintenant ! Merci !

Donc si je résume, les rôles qui permettent d'ajouter des liens sont :
SiteCollaborator
SiteContributor
SiteManager

mais pas :
SiteConsumer

Est ce bien ca ?

kizux_3453
Champ in-the-making
Champ in-the-making
J'essaye d'utiliser la méthode :
listSites(java.lang.String userName) 
          List all the sites that the specified user has a explicit membership to.
de la façon suivante :
var listeSite = siteService.listSites("nom d'utilisateur");
model.sites = listeSite;

mais j'ai l'erreur :
La méthode 'org.alfresco.repo.site.script.ScriptSiteService.listSites(string)' est introuvable

Cette méthode n'est plus disponible avec la version 3.4 ?

bertrandf
Champ on-the-rise
Champ on-the-rise
La méthode 'listSites' ne liste pas les sites d'un utilisateur en particulier.

Il faut vous inspirer des webscripts déjà existant dans alfresco, notamment le fichier person.sites.get.js.
Il s'avère que la page de wiki n'est pas à jour, il existe une méthode 'listUserSites'

    // Get the list of sites
    var sites = siteService.listUserSites(userName);
   
    var sizeString = args["size"];
    if (sizeString != null)
    {
        var size = parseInt(sizeString);
       
        if (size < sites.length)
        {
            // Only return the first n sites based on the passed page size
            var pagedSites = new Array(size);
            for (var index = 0; index < size; index++)
            {
                pagedSites[index] = sites[index];  
            }
           
            sites = pagedSites;
        }
    }
   
    model.sites = sites;

kizux_3453
Champ in-the-making
Champ in-the-making
Merci infiniment  Smiley Very Happy

Il n'existe pas une page ou toutes les méthodes et attribut des objets sont référencés ? (mis à part le wiki ?)
Je vais travailler maintenant avec l'objet person et j'aimerai bien trouver les méthodes et attribut que cet objet possède  :?

kizux_3453
Champ in-the-making
Champ in-the-making
Je mets le sujet en résolu j'ai réussi à faire ce que je voulais !

Merci beaucoup Bertrand de ton aide  :mrgreen: