gestion du contenue

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

gestion du contenue

Bonjour tout le monde,

Voila je met en place un workflow pour validation du contenu .Cependant j'ai un petit souci car je dois garder les documents en cours de validation invisibles pour les utilisateurs saufe l'administrateur qui joue le role du valideur .

Ensuit apres valiation l'administrateur publie le contenue et tt les utilisateurs accessible à l'espace peuvent consulter le contenu validé .

Je sais comment implementer un worflow avancé sur alfresco mais j'ai aucune idée de la façon avec laquelle je dois implmenté cette condition avant publication du contenue .
21 Replies
cleseach
Active Member II

Re: gestion du contenue

Bonjour,

Si j'étais vous, je jouerais avec les permissions :
  1. Le document entre dans le workflow, seul l'administrateur dispose du droit de lecture/écriture sur ce document (rôle d'éditeur)
  2. Le document est validé, les permissions sont modifiées pour autoriser la lecture des utilisateurs.

Ces ajustements de droits peuvent être réalisés au moyen de scripts JavaScript définis sur le workflow.

Cordialement,
Charles Le Seac'h
visapon
Member II

Re: gestion du contenue

Merci cleseach  pour ta  réponse .En faite j'ai beaucoup creusé la dessus dernièrement, et j'ai constaté une chose dans alfresco:

Une fois l'utilisateur appartient à un espace il a le droit de voir son contenu et là j'y peux rien à priori.
Autrement dit il n'existe pas d'après ma recherche une fonction ou un script qui permet de cacher le contenu d'un space déjà accessible par le visiteur (j’espère bien le contraire) .
Une fois les permissions sont retiré après c'est facile de les réaffecté via le read_action_package_action  pour le swimlane(visiteurs) .

Mais tout l'enjeu consiste à comment cacher le fichier jusqu'à la fin du processus de validation administrative !
J’ai parcouru le forum francophone et anglophone sans rencontrer un cas similaire ,et c’est dommage qu’ alfresco ne permet pas une telle fonctionnalité car c’est important  .
cleseach
Active Member II

Re: gestion du contenue

Bonjour,

Qu'entends tu par "l'utilisateur appartient à un espace" ? Est-ce le fait qu'un utilisateur dispose au moins du rôle de Lecteur ?

Le modèle de permissions par défaut définit effectivement que les utilisateurs disposant du rôle de lecteur sur un noeud ont la possibilité de voir les noeuds fils. Cette possibilité n'est bien entendu offerte que si ces mêmes utilisateurs disposent des droits nécessaires sur les dits noeuds fils.
Tout ça pour dire qu'il est possible de définir des droits sur les espaces, mais aussi sur les contenus.

Tout cela est bien visible à partir d'Explorer : entre dans les propriétés d'un contenu et regarde l'action "Manage Content Users".

Cordialement,
Charles Le Seac'h
visapon
Member II

Re: gestion du contenue

Bonjour,

Qu'entends tu par "l'utilisateur appartient à un espace" ? Est-ce le fait qu'un utilisateur dispose au moins du rôle de Lecteur ?

Le modèle de permissions par défaut définit effectivement que les utilisateurs disposant du rôle de lecteur sur un noeud ont la possibilité de voir les noeuds fils. nus.

En effet puisque les utilisateurs sont censés  accéder au space pour consulter (lecture) des fichiers validés par l’administrateur,  il pourrons par défaut visionner les fichiers en cour de validation vu que ces fichiers se trouvent  dans le même espace, ce qui compromet  mon workflow .

Bref il y a un seul espace ou on dépose des fichiers, seul l’administrateur les consultent  au  début, puis il les publie après les utilisateurs pourrons voir leurs contenues .J’espère qu’on s’est compris maintenant.
Cordialement.
cleseach
Active Member II

Re: gestion du contenue

Bonjour,

Est-ce que cette organisation répond à ta problèmatique ?
  • Les utilisateurs sont Contributeurs sur l'espace dans lequel seront stockés les documents.

  • Une règle sur l'évènement "arrivée d'un document" modifie les droits du document pour que seul l'administrateur soit contributeur sur ce document (personne d'autre n'a de permission). Cette règle démarre également le workflow avancé sur ce document.

  • Lorsque le document est validé par l'administrateur, le workflow repositionne les droits sur le document pour que les utilisateurs soient lecteurs.
Tous les ajustements de droits peuvent être réalisés en JavaScript.

Cordialement,
Charles Le Seac'h
visapon
Member II

Re: gestion du contenue

Bonjour,

Est-ce que cette organisation répond à ta problèmatique ?

Ouii c'est ce que je cherche .

Une règle sur l'évènement "arrivée d'un document" modifie les droits du document pour que seul l'administrateur soit contributeur sur ce document (personne d'autre n'a de permission).

Totalement d'accord dans le raisonnment,mais comment implementer cette phrase dans mon workflow ?????

Tous les ajustements de droits peuvent être réalisés en JavaScript.



Je t'en serai reconnaissant si vous m'indiquer une manière de proceder (un exemple de script) ou de fonction que je dois appeler surtout pour laisser seul l'administrateur contributeur sur un document nouveau dans l'espace .

Merci .
cleseach
Active Member II

Re: gestion du contenue

Bonjour,

Pour jouer avec les permissions en JavaScript, tout est expliqué ici : http://wiki.alfresco.com/wiki/3.0_JavaScript_API#Permission_and_Security_API
Si tu rencontres des difficultés dans l'usage de ces différentes méthodes, n'hésite pas à nous indiquer les tests que tu as menés, les résultats obtenus et ceux attendus.

Pour traiter les documents à leur arrivée dans l'espace, il faut définir un script de modification des droits et une règle pour jouer ce script. La règle peut être définie à partir d'Explorer en exécutant l'action "Manage Content Rules".

Cordialement,
Charles Le Seac'h
visapon
Member II

Re: gestion du contenue

Bon j'ai esseyé de jouer un peut sur ces permissions de la manière suivante :

Dès l'initiation du document dans l'espace j'enléve la permission de lecture (visibilité du doc ) avec le script suivant :


<task name="indexerDocument" swimlane="initiator"/>
      <transition name="submit" to="envoyer mail au validateur ">
         <action class="org.alfresco.repo.workflow.jbpm.AlfrescoJavaScript">
         <!– Nouveau fichier non valide –>
            <script>
               var tes = bpm_package;
               var doc = tes.children[0];   
               doc.removePermission("Read",visiteur.properties.userName )
            </script>
         </action>
      </transition>
   </start-state>


Puis apres l'etape validation je réaffecte les droits de lecture au visiteur avec :


<action class="org.alfresco.repo.workflow.jbpm.AlfrescoJavaScript">
     <script>
        var tes = bpm_package;
               var doc = tes.children[0];   
               doc.setPermission("Read")
      
     </script>


Cependant je document est toujours visible pour le visiteur avant validation .
C'est la première fois que j'utilises les fonctions de gestion de permission dans un workflow et peut etre j'ai oublié un truc !

Voici le code d'erreur que j'ai lors de l'execution de l'etape d'initiation du document :

Caused by: org.alfresco.scripts.ScriptException: Failed to execute supplied script: Can not delete from this acl in a node context SHARED
   at org.alfresco.repo.jscript.RhinoScriptProcessor.executeString(RhinoScriptProcessor.java:195)
   at org.alfresco.repo.processor.ScriptServiceImpl.executeScriptString(ScriptServiceImpl.java:303)
   at org.alfresco.repo.processor.ScriptServiceImpl.executeScriptString(ScriptServiceImpl.java:281)
cleseach
Active Member II

Re: gestion du contenue

Bonjour,

Pour retirer tous les droits sur le document, il faut bien penser à couper l'héritage des permissions :
setInheritsPermissions(false)

Au niveau des arguments des méthodes, ce sont les rôles qu'il faut utiliser. Donc "Reader" à la place de "Read".

Cordialement,
Charles Le Seac'h