Set Permission [Résolu]

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

Set Permission [Résolu]

Bonjour,

Je souhaite pouvoir attribuer des permission à un document à partir de mon Workflow. A ce jour j'arrive à supprimer l'héritage, mais ne sais pas comment faire pour donner par exemple les droits de lectures à un ensemble d'utilisateurs préalablement séléctionnés dans mon Workflow.

Le code source actuel :

// Change permission
permissionService.setInheritParentPermissions(AdminNodeRef, false);
Comment faire maintenant pour donner les droits de lecture à l'utilisateur toto par exemple.

Merci pour votre aide
5 Replies
rivarola
Active Member

Re: Set Permission [Résolu]

Il faut utiliser la méthode
public void setPermission(NodeRef nodeRef, String authority, String permission, boolean allow);
Dans ton cas ça devrait donner quelquechose comme
permissionService.setPermission(nodeRef, "toto", PermissionService.READ, true);
huberd
Member II

Re: Set Permission [Résolu]

Il faut utiliser la méthode
public void setPermission(NodeRef nodeRef, String authority, String permission, boolean allow);
Dans ton cas ça devrait donner quelquechose comme
permissionService.setPermission(nodeRef, "toto", PermissionService.READ, true);
Oui merci beaucoup, j'avais trouvé, c'était vraiment tout simple Smiley Very Happy

Dans mon cas j'ai du déclarer permissionService comme ceci

PermissionService permissionService = (PermissionService) this.factory.getBean("permissionService");
et positionner les permissions comme ceci

permissionService.setPermission(AdminNodeRef, "user1", PermissionService.CONSUMER, true);
permissionService.setPermission(AdminNodeRef, "user2", PermissionService.READ_CONTENT, true);
Seulement quand j'utilise l'attribut READ_CONTENT, j'obtiens ce résultat dans l'affichage des propriétés de sécurité $$ReadContent$$. Comment y remédier ?
rivarola
Active Member

Re: Set Permission [Résolu]

Visiblement l'interface graphique d'Alfresco ne sait pas afficher les permissions de base (quand il y a $$ ça veut dire qu'un label internationalisé n'a pas été trouvé). En fait tu as assigné par le code une permission qui n'est normalement pas accessible via la webapp.
Pour remédier à ça tu peux tenter une bidouille : ajouter dans le fichier webclient.properties (ou webclient_fr_FR.properties si tu es en locale française) les labels qui manquent.
Par exemple :
ReadContent=Lire le contenu
Je n'ai jamais essayé dans le cas des permissions mais avec un peu de chance ça peut marcher Smiley Indifferent
huberd
Member II

Re: Set Permission [Résolu]

Comment faire pour vérifier si une permission Existe déjà ?

pour la mettre en place :

permissionService.setPermission(AdminNodeRef, "user1", PermissionService.CONSUMER, true);
pour la désactiver :

permissionService.setPermission(AdminNodeRef, "user1", PermissionService.CONSUMER, false);
pour la supprimer :

permissionService.deletePermission(AdminNodeRef, "user1", PermissionService.ALL_PERMISSIONS);
mais pour voir si elle existe ?

Merci pour votre aide.
huberd
Member II

Re: Set Permission [Résolu]

Comment faire pour désactiver temporairement toutes les permissions attribuées à un document et pouvoir les réactiver par la suite. ?