cancel
Showing results for 
Search instead for 
Did you mean: 

attribution de permission d'accés à un dossier via un script

vaquero
Champ in-the-making
Champ in-the-making
bonjour,

J'ai deux dossiers:
A: A TRAITER
B: A VALIDER

un groupe : REDACTEUR
contributeur sur l'espace A et lecteur sur l'espace B

le but est de transférer un document de l'espace A à l'espace B
pour cela il faudra attribuer la permission "contributeur" de manière temporaire limitée au transfert du fichier.


var referenceType = "path";
var reference = ["workspace", "SpacesStore", "Company Home","A VALIDER"];
var foundNode = search.findNode(referenceType, reference);

if (foundNode.isContainer)
{

foundNode.removePermission("Consumer","GROUP_REDACTEUR"); 
foundNode.setPermission("Contributor","GROUP_REDACTEUR");     
}
var destination = companyhome.childByNamePath("A VALIDER");
var origine = companyhome.childByNamePath("A TRAITER");
var fichier = origine.children;
for(var i=0;i<nombreDeFichier;i++)
{

  if(fichier[i].isDocument)
  {

fichier[i].move(destination);
foundNode.removePermission("Contributor","GROUP_REDACTEUR"); 
foundNode.setPermission("Consumer","GROUP_REDACTEUR");  
  }
}

lorsque je rajoute un document dans le dossier A
j'ai le message d'erreur suivant :
Echec de la création de contenu en raison d'une erreur : 111614745 Failed to execute script 'workspace://SpacesStore/bf8d8de0-7ce8-41c9-bedf-fce85d028f24': 111614744 Access refusé. Vous n'avez pas la permission de réaliser cette opération.

quelque info : j'utilise la version 4 sous XP, je n'ai pas accès au log d'alfresco, j'ai lu l' API alfresco 4.0
5 REPLIES 5

bchevallereau
Champ in-the-making
Champ in-the-making
Bonjour,

Vous pouvez utiliser l'api securite:


folderB.setPermission("Collaborator", person);
document.move(folderB);
folderB.removePermission("Collaborator", person);

Ben

cleseach
Star Contributor
Star Contributor
Bonjour,

Attention tout de même au fait que les actions s'exécutent avec les droits de l'utilisateur courant.
Si l'action est exécutée avec un membre du groupe REDACTEUR, la modification des permissions du dossier de destination ne va pas être possible : en tant que "Consumer" d'un noeud, je n'ai pas le droit d'en changer les permissions.

Cordialement,
Charles Le Seac'h

bchevallereau
Champ in-the-making
Champ in-the-making
Bonjour,

Tres bien vu, desole…

Bah sinon, il y a l'option de creer une action Java et d'utiliser la fonction runAs mais c'est plus complique…

Ben

vaquero
Champ in-the-making
Champ in-the-making
Bonjour,

merci pour vos réponses,
effectivement, j'ai constaté qu'il n'est pas possible de changer de permission au cours de l’exécution d'un script.
mon prblème réside dans ce point. et j'ai essayé par exemple de masquer des dossiers en jouant avec les permissions

je vous explique

dossier A
B: sous dossier du dossier A

pour le dossier B : coordinateur
pour le dossier A  pas d'accés ( je décoche inherit parent space permissions)


j'ai constaté qu'il était impossible d'accéder aux fichiers du dossier B en passant par
childByNamePath

j'ai un message d'erreur qui dit que le node est null!! —> je n'accède pas au dossier qui n'est pas visualisé sur l'interface

Je ne trouve pas de solution  :roll:

bchevallereau
Champ in-the-making
Champ in-the-making
Vous avez toujours l'option d'une action Java, voici un post qui pourrait vous aider :
http://www.codinginahurry.com/2011/02/17/running-your-code-as-a-different-user-with-alfresco/
Getting started

Tags


Find what you came for

We want to make your experience in Hyland Connect as valuable as possible, so we put together some helpful links.