cancel
Showing results for 
Search instead for 
Did you mean: 

[Resolu]Attribution de droits util javascript

loicb
Champ in-the-making
Champ in-the-making
Bonjour !!

J'aimerais avoir quelques conseils sur ce que je suis entrain de réaliser. Je m'explique :
- J'insere un document dans alfresco
- Ce document est lié à un fishier XML contenant un ensemble de métadonnées se référencant à un aspect que j'ai développé
- Cet aspect comprend une propriété "secteur"
Ce qu'il faudrais, c'est que lorsque j'intègre le document, alfresco lise la propriété "secteur", cherche dans les Groupes utilisateurs lequel s'appel comme ma propriété et attribue donne le droit invité sur le document à tous les membres du groupes.

Pour réaliser cela, j'avais dans l'idée de créer une regle qui executera un script à chaque nouveau document. Ce script lira la propriété du document et la comparera avec la liste des groupes, puis attribuera les droits.

Premiere question: est ce la bonne marche à suivre?
Deuxième: Si oui, comment récupéré en javascript la liste de tous mes groupes d'utilisateurs?

Merci
8 REPLIES 8

loicb
Champ in-the-making
Champ in-the-making
Re bonjour!!!

Bon, j'ai essayé de developpé un truc qui bien evidemment ne marche pas!! Rien de surprenant me direz vous!!
Je vous met mon code mais je pense que tout est à refaire!!!


if (document.hasAspect("cm:document"))
{
var DocSecteur = document.properties["cm:Secteur"];
var AdminDoc = DocSecteur + "_admin";
   for (var i=0; i< people.getgroup().lenghts;i++)//recherche le groupe utilisateur correspondant au secteur
   {
      if (DocSecteur == people.getgroup(i).name)//tester avec people.getgroup(i)
      {
         document.Addauthority(people.getgroup(i),Editor); //tester avec people.getgroup(i)
      }
   }
   for (var j=0; j<dojo.gfx.group.lenghts;i++) //recherche l'admin du groupe.
   {
         if (people.getgroup(i).name == AdminDoc)//tester avec people.getgroup(i)
            document.Addauthority( people.getgroup(j),Consumer);//tester avec dojo.gfx.group.name[j]
   }
   document.setinheritpermissions(false);
}
else
{
alert("pas d'aspect");
}



loicb
Champ in-the-making
Champ in-the-making
Re

Ma demande n'est pas clair?? J'aimerais juste savoir si je suis sur la bonne voie et si quelqu'un sais comment récupéré la liste de tous les groupes utilisateurs en java script!!

Merci

loicb
Champ in-the-making
Champ in-the-making
Bonjour!!

Personne ne sais comment faire? Personne ne sais comment récupéré la liste de tous les groupes utilisateurs??

christophes
Champ in-the-making
Champ in-the-making
Le plus simple est d'ajouter directement les droits sur ton document. Tu peux faire cela grâce à l'instruction :
document.setPermission("Guest",groupename);
Attention : groupename doit contenir comme valeur le nom réel du groupe, il ne faut pas oublier le "GROUP_" avant (ex : "GROUP_EVERYONE").

J'espère que cela t'aidera,

Christophe

loicb
Champ in-the-making
Champ in-the-making
Merci Christophe!!

Effetivement, cela devrais remplir mon besoin, meme si je dois effectué une recherche pour savoir si le groupe existe ou non, dans la solution proposées, j'imagine qu'une erreur me sera renvoyée si mon groupe n'existe pas.

J'ai cependant une autre question.
Etant le premier script que je réalise, je me pose certaines questions justifiés!!! En effet, pour pouvoir utiliser setPermission, il faut bien que j'inclus une librairie dans mon script non.?? Il faut bien que je fasse appel a cet fonction mais que au préalable j'ai ajouté des include?? Qu'est ce que je dois inclure?

Merci

loicb
Champ in-the-making
Champ in-the-making
En fait, c'est bon, ca marche, merci, j'ai parlé trop vite!!!

christophes
Champ in-the-making
Champ in-the-making
Pour savoir si ton groupe existe avant, tu peux insérer le code suivant :
nodeGroupe = people.getGroup(groupname); // groupname remplit aussi avec le nom complet du groupe
if(nodeGroup != null)
{
    …
}
S'il est différent de null, c'est que le groupe existe.

SI ton script est exécuté depuis Alfresco, les "include" ne sont pas nécessaire c'est implicite. Pour toutes informations concernant les fonctions disponnibles, tu peux aller voir sur http://wiki.alfresco.com/wiki/JavaScript_API

Christophe

loicb
Champ in-the-making
Champ in-the-making
Meric beaucoup, j'ai réussi à faire ce que je voulais!!!