Constatation au niveau des permissions

cancel
Showing results for 
Search instead for 
Did you mean: 
flash31186_8291
Member II

Constatation au niveau des permissions

Bonjour à tous,

En fait voilà, j'avais défini il y a qq temps sur la version Community 3.0 un worflow simple et j'avais placé sur les espaces que j'utilisais pour ce workflow certaines permissions.  Ces espaces se trouvait sous un certain nombre d'espaces. Par moment, le workflow consistait à envoyer un document dans un espace où l'utilisateur avait accès en "Contributeur" (pour pouvoir y placer le document), mais cet utilisateur n'avait pas accès aux espaces contenant cet espace de destination.

Donc, il suffisait de ne pas mettre de permission sur la suite d'espace pour cet utilisateur, mais juste un accès en "Contributeur" sur l'espace de destination. Cela fonctionnait bien avec la version 3.0.

Maintenant je développe un projet similaire sur la version Community 3.2…. Mais il n'y a plus dutout moyen de faire la même manœuvre … si alfresco n'a pas accès à l'ensemble des espaces contenu dans le PATH que j'ai défini … même s'il a une permission en contributeur sur l'espace de destination, le worflow refuse de fonctionner (j'ai un acces denied à chaque fois …)

Auriez-vous une idée de ce qui aurait pu changer dans cette version …. ou alors je me trompe quelque part ?

Merci d'avance,

Michaël
10 Replies
jayjayecl
Active Member II

Re: Constatation au niveau des permissions

Pourriez-vous nous donner le code de la fonctionnalité de déplacement du fichier dans le workflow, ainsi que la trace complète de l'erreur (alfresco.log) ?
MErci
flash31186_8291
Member II

Re: Constatation au niveau des permissions

Merci pour votre réponse Rodel ;-)

Euh ben disons que par exemple, dans un script, j'utilise simplement la fonction childByNamePath() de cette manière :


var chemin="/User Homes/ADMINISTRATION/…./A INSCRIRE";
var oj=companyhome.childByNamePath(chemin);

Donc admettons qu'on soit dans un espace contenu dans User Homes, et qu'on veuille envoyer un document dans "A INSCRIRE". J'ai mis "ADMINISTRATION"sans permission pour l'utilisateur courant, mais je le met en tant que "Contributeur" dans "A INSCRIRE"…

Lorsque j'exécute ceci, il ne me trouve pas l'espace "A INSCRIRE" avec la version 3.2 … alors qu'avec la 3.0, cela fonctionnait …

Qu'en pensez vous ?
jayjayecl
Active Member II

Re: Constatation au niveau des permissions

Pourrait-on avoir également la trace de log ?
jayjayecl
Active Member II

Re: Constatation au niveau des permissions

Sinon, pour etre plus précis :
- la méthode de recherche par PATH ne fonctionne pas en effet dans votre cas, parce qu'il faut avoir en quelque sorte le "droit de traversement" (par métaphore linuxienne) jusqu'à un élément pour le trouver
- les autres méthodes de recherche non-basées sur le chemin (par NodeRef, par recherche de propriété) fonctionneront.

Par contre, pourquoi cela fonctionnait en 3.0, je ne sais pas, si c'est le cas ce serait plutôt un bug de la 3.0 (comme il apparait sur ce ticket qui n'est pas directement en rapport, le comportement que je décris était déjà souligné en 2.1 : http://issues.alfresco.com/jira/browse/ETWOONE-296 )
Mais, êtes-vous sûr de ne pas avoir bypassé les permissions sur la 3.0 (avec un runAs, ou autre méthode ?)
flash31186_8291
Member II

Re: Constatation au niveau des permissions

Ah d'accord … Ben en fait, j'ai plus ou moins instancier un "droit de traversement"… En ce sens que j'ai recréé une permission à partir de la permission Read, à part que je n'ai laissé que la ReadProperties et la ReadChildren. De ce fait, les utilisateurs peuvent voir les espaces … et les contenu, mais pas les consulter. Et enfin, sur l'espace à transférer, je remet la permission Read.
… Un peu comme André Weber a indiqué dans son post http://forums.alfresco.com/fr/viewtopic.php?f=8&t=92

Mais bon, ca laisse aux utilisateurs la possibilité d'avoir accès aux espaces supérieur… et de voir leur propriétés -> Si je retire le ReadProperties en laissant simplement ReadChildren, je perd l'accès aux espaces.

- les autres méthodes de recherche non-basées sur le chemin (par NodeRef, par recherche de propriété) fonctionneront.
De quel type de méthode de recherche parler-vous ? Vous auriez un exemple ?

Mais au niveau de la version 3.0 : Non, je n'utilisais pas de runAs … surtout qu'au niveau d'un script (d'après ce que j'ai lu), c'était assez bien déconseillé lol

Merci d'avance
jayjayecl
Active Member II

Re: Constatation au niveau des permissions

Je parle des différentes "méthodes" de recherche :
http://wiki.alfresco.com/wiki/3.3_JavaScript_API#Search_API

et

http://wiki.alfresco.com/wiki/Search

Bonne chance
flash31186_8291
Member II

Re: Constatation au niveau des permissions

Bonsoir,

Désolé de revenir sur ce sujet si tard, mais j'ai eu d'autres choses à résoudre en priorité.
Tout d'abord un grand merci à Rodel pour son aide !

En fait, pour résoudre le problème sur lequel je buttais, j'ai utilisé des requêtes Lucenes (search.luceneSearch).
Donc à la base j'ai utilisé les méthodes de recherches lucene standard (sur le nom : "+@cm:\\:name:\"nom de l'espace\", etc). Mais il y a moyen de passer par un "PATH", donc il suffit de spécifier le path d'une certain manière dans la requête lucene et le tour est joué.

La manière pour faire ces requêtes correspond par exemple à ceci :
var path="PATH:\"/app:company_home/app:user_homes/cm:nom_de_l'espace_suivant\""
Attention, pour le "nom de l'espace suivant" : lucene n'aime pas les espaces dans le cas de l'utilisation de PATH, alors il faut encoder le nom de l'espace en ISO 9075 de cette manière :
"/app:user_homes/cm:"+search.ISO9075Encode("nom de l'espace suivant")"

Ensuite, une fois cette requête définie, il suffit d'exécuter l'instruction :
var result=search.luceneSearch(query);
Enfin, il suffit de parcourir le tableau de résultat en sachant que ca nous retourne un tableau de node …

Et voilà, cela permet d'accéder à certain espace en javascript sans forcément avoir les droit sur l'espace en question ;-)

Michaël
jayjayecl
Active Member II

Re: Constatation au niveau des permissions

Attention, pour obtenir des résultats avec la requête suivante :
var path="PATH:\"/app:company_home/app:user_homes/cm:nom_de_l'espace_suivant\""

Il faut toujours que l'utilisateur qui exécute le script ait les droits de lecture des espaces traversés
flash31186_8291
Member II

Re: Constatation au niveau des permissions

Euh oui effectivement, j'ai oublié de le préciser… Il faut au minimum que l'utilisateur qui exécute le script ai les droits de lecture sur l'espace de destination, effectivement ;-)

Attention, pour obtenir des résultats avec la requête suivante :
var path="PATH:\"/app:company_home/app:user_homes/cm:nom_de_l'espace_suivant\""

Il faut toujours que l'utilisateur qui exécute le script ait les droits de lecture des espaces traversés

Mais par contre, et c'est bien le but de ma démarche, les espaces traversés ne sont pas nécessaires… Seulement l'espace de destination.