Workflow comment ca marche?

Information importante

En raison d'un grand nombre d'inscriptions de spammers sur notre site, polluant sans relache notre forum, nous suspendons la création de compte via le formulaire de "sign up".

Il est néanmoins toujours possible de devenir adhérent•e en faisant la demande sur cette page, rubrique "Inscription" : https://www.drupal.fr/contact


De plus, le forum est désormais "interdit en écriture". Il n'est plus autorisé d'y écrire un sujet/billet/commentaire.

Pour contacter la communauté, merci de rejoindre le slack "drupalfrance".

Si vous voulez contacter le bureau de l'association, utilisez le formulaire disponible ici, ou envoyez-nous un DM sur twitter.

Bonjour;
pour moi j'arrive meme pas a comprendre le fonctionement de de Workflow comment faire (jai crée un utilisateur identifie et un moderateur l'utilisateur a le droit de publier un contenu mais il doit etre vérifier par le modérateur )jai ajouter un flux "Page" dans admin/build/workflow ainsi que l'état "publie" et "en attente"
mais quand l'utilisateur crée son contenu il s'affiche directement
pouvez vous m'aider merci d'avance

Version de Drupal : 

Merci de ne pas faire de "bump", ta question a été posé il y a tout juste quelques heures, sois patient certains (beaucoup ?) d'entre nous bossent (au passage, je viens de passer 30mn à rédiger ce message : c'est pour la bonne cause car ça va resservir je pense mais bon c'est gratuit donc quelques heures d'attente c'est pas la mort :P)

Sinon tu te doutes qu'il y a quelqu'un ici vu le volume de message ;)

Le module workflow est un module complexe, et donner une réponse exhaustive demanderai pas mal de temps... si tu lis l'anglais, la doc est là : help/workflow/README.txt

Je n'ai pas (encore) traduit la doc mais par contre j'ai posté un fichier de trad du module :
http://drupalfr.org/forum/traduction/303-traduction_de_workflow

Sans rentrer dans les détails, voilà comment procéder :

1) Va dans admin/build/workflow. Là tu cliques sur "Ajouter flux de publication" (admin/build/workflow/add).

2) Donne un nom à ton workflow, ensuite suit les instructions jusqu'au bout

3) Une fois que c'est fait tu vois ton nouveau workflow avec plusieurs liens

* Ajouter un état
* Actions
* Modifier
* Supprimer

En dessous tu as une liste de tes types de contenu et les flux de publication qui leur sont associé. Par exemple si tu veux que tous tes articles suivent le flux, tu sélection ton workflow dans la liste déroulante, dans "Afficher le formulaire du Flux de publication pour : " tu coche contenu (et commentaire si tu veux) puis tu clique bien ensuite sur le bouton en bas "sauver la procédure du flux de publication".

4) Maintenant tu vas devoir créer les différents états qu'un contenu peut avoir dans le flux de publication (chez moi j'ai brouillon, a valider, publié, archivé, poubelle). Sachant que le système créé automatiquement un état de départ dénommé "(création)".

5) Ensuite une fois que tu as créé les états dont tu as besoin, tu vas gérer qui peut faire quelles transitions (une transition c'est par exemple brouillon -> à valider). Pour ça tu vas utiliser le lien "Modifier" (toujours en partant de admin/build/workflow). Tu verras chaque transition possible entre les états que tu as créé et pour chacune, tu pourras cocher les rôles qui ont le droit d'effectuer les transitions. Coche ce qui te convient.

6) Ensuite tu vas t'occuper de définir les actions qui seront associées à tel ou tel changement d'état. Par exemple quand tu passe de brouillon -> à valider tu vas créér une action qui sera "Envoyer un email" aux personnes qui doivent valider les contenus. Ou encore tu vas associer l'action "Publier" lors du passage de a valider -> publié. Pour ça tu vas utiliser le lien "Action" de ton workflow (toujours en partant de admin/build/workflow). Là tu vas choisir les actions dans la liste déroulante en oubliant pas pour chaque action de cliquer sur "associer" pour que ce soit bien enregistré. Tu dois faire ça pour toutes tes transitions.

Maintenant la question évidente à savoir pourquoi mon article est publié malgré le workflow : réponse simple, il suffit simplement dans admin/content/types de cliquer sur "Modifier" le type de contenu qui doit suivre le workflow et de changer les options de publication par défaut en décochant "publié". Facile, non ? Evidemment il faut aussi retirer aux rôles qui ne doivent pas pouvoir publier le droit "administrer les nœuds" dans le module node (admin/user/permissions#node), sinon il pourront changer ce réglage par défaut.

Merci davidm pour ces explications précises : je dois avouer que workflow me dépassait aussi un peu !

J'ajoute cependant une petite question - ce n'est peut-être pas lié directement au module workflow lui-même mais au sujet "flux de travail", si. Comment t'y prends-tu pour qu'un auteur puisse éditer son propre contenu tant qu'il est en brouillon, puis plus une fois qu'il est envoyé en modération ? (comme dans SPIP)

Par ailleurs (ça fera deux questions, mais elle est liée au module :-)) si le modérateur refuse la publication, peut-il sélectionner un ou plusieurs motifs de refus pour "personnaliser" le mail ? par exemple :
"La contribution {titre} dont vous avez demandé la validation le tant n'a pas pu être publiée pour la(les) raison(s) suivante(s) :
[] trop de passages hors sujet
[] orthographe vraiment trop mauvaise"
Et là la contribution repasse en "brouillon". Mais on pourrait avoir d'autres motifs de refus...
Est-ce possible avec Workflow, à ta connaissance ?

Pour qu'un auteur ne puisse plus éditer un contenu lorsqu'il est envoyé en modération, j'associe l'action "Changer l'auteur du contenu..." à ma transition brouillon -> à valider où je met le modérateur en auteur et comme le rédacteur lambda n'a le droit d'éditer que ses contenus il ne peut plus le faire.

Evidemment c'est une solution de contournement et pour un workflow où je voudrai que plusieurs modérateurs interviennent, ça pose problème... mais dans mon cas ça n'en pose pas. Sinon je pense que modr8 est plus adapté à une modération à la SPIP. Après je n'ai pas encore utilisé le module Rules avec Workflow mais je vais examiner la question et il y a probablement un moyen de faire mieux.

Pour ce qui est des motifs, oui le modérateur peut préciser via un commentaire lors de la transition les motifs du refus ou de la validation.

changer l'auteur du contenu, ce n'est pas très élégant ; du moins ça ne marcherait pas pour ce dont j'ai l'idée.

je vais creuser de mon côté, le premier qui trouve gagne le droit de poster sa solution et la reconnaissance éternelle de ses confrères...

salut
Pour ce qui est des motifs, est ce que le modérateur peut préciser via un mail et ne pas un commentaire lors de la transition les motifs du refus ou de la validation de contenu ?et comment ?
merci

salut
je travail avec workflow jai suivi les conseils de david mais mon probleme quand jessaye de modifier le statu de contenu de blocqué vers actif dans wokflow summary jarrive pas accéder a la page jai le resultat suivant Accès refusé
Vous n'êtes pas autorisé(e) à accéder à cette page.
alors que jai donner tous les droit au moderateur de site jai c oché toutes les cases
merci davance

Tu as bien coché "accéder au résumé du flux de publication" pour le module workflow dans les permissions ?

Sinon autre sujet dans la conversion Marie-Hélène j'ai oublié de parler d'une chose, parceque dans mon cas je ne peux pas l'utiliser (conflit avec OG Access) mais le sous module Workflow access permet de déterminer finement qui à le droit d'accéder à quel contenu (et l'éditer) en fonction des rôles. C'est très puissant.

Sachant aussi que J’ai changé le type de contenu (j’ai rajouté des champs) mais quand je crée un contenu de ce type en se connectant avec le compte administrateur j’obtiens le nouveau type de contenu (les nouveau champs apparaissent) mais avec le compte modérateur les new champs apparaisse pas ??????????

Non je veux bien dire ce que j'ai dit aller dans admin/user/permissions#module-workflow et cocher "accéder au résumé du flux de publication", ça ne suffit pas de cocher cette case il faut en plus donner accès au résumé sinon tu as l'onglet mais pas le droit de voir où en est le flux de publication ;)

Pour l'autre problème c'est normal il faut cocher "administrer les flux de publication". C'est un peu comme il faut "administrer les nœuds" pour changer les options de publication...

Non ce n'est pas dans le wiki parcequ'il faudrait que je "polisse" un peu tout ça... ce n'est pas encore suffisamment clair à mon avis...

Dans mon dernier post (je ne peux pas l'éditer...grrrr : d'ailleurs c'est curieux je peux éditer les autres), je voulais dire "planifier les transitions du flux de publication" et non cocher "administrer les flux de publication".

oui c'set fait puisque ca marche avec administrateur (l'administrateur peut mettre le contenu de l'etat blocqué a l'etat actif mais jarrive pas avec le moderateur
autre chose
stp il faut aller ou pour cocher "administrer les flux de publication".

Ben dans admin/user/permissions#module-workflow...

Pour en revenir à ton problème, tu as activé Workflow access ou pas ?

Sinon vérifie que tu as bien coché dans admin/build/workflow/edit/* ou * est l'id de ton workflow (probablement 1 donc) les rôles qui ont le droit de faire quelle transition... c'était dans les explications plus haut mais je ne vois plus que ça qui pourrait expliquer.

jai activé workflow access et jai coché toutes les cases pour le modérateur dans les dfroit d'acces ainsi que dans admin/build/workflow/edit
mais toujour meme chose

Est ce que ca viens pas de type de contenu que J’ai changé (j’ai rajouté des champs) mais quand je crée un contenu de ce type en se connectant avec le compte administrateur j’obtiens le nouveau type de contenu (les nouveau champs apparaissent) mais avec le compte modérateur opu utilisateurs les new champs apparaisse pas ?????????? meme avec l'activation de administrer les flux des travaux

Est-ce que tu as bien affecté ton flux de publication au type de contenu dans admin/build/workflow (en bas) et coché "Contenu" dans la colonne "Afficher le formulaire du Flux de publication pour :" ?

Sinon je ne peux pas activer Workflow access (confilt avec OG Access dans mon cas) et je ne me rappelle plus très bien des options mais c'est assez simple...

bsr
j'ai ajouter le flux de travaux de Workflow mais je clique sur action je trouve pas comment gérer les action de Workflow (dans le Déclencheurs) je trouve commentaire, contenu,cron,taxonomie,utilisateurs mais pas de workflow????????????????
merci d'avance

une petite question ?
jai donner tous les droit au moderateur mais quand il clique dans workflow summary sur un contenu creee par un utilisateur pour changer son statut il affiche
Accès refusé
Vous n'êtes pas autorisé(e) à accéder à cette page.
????????????????????????????????????

Merci c'est bien ça! le droit d'administrer les noeuds pour le modérateur c cool !
Une autre question svp comment mettre et afficher des vidéo ainsi que des images sur drupal ?
Merci d’avance

salut david
en effet pour génère un code ou un numero pour mon contenu (annonce) avec drupal est ce que ya un module pour ça?
sinon jai un code qui genere des codes aleatoire mais je sais pas comment l'integrer !!?
merci d'avance

Bonjour et merci David pour ta contribution. Personnellement, je suis confronté à une difficulté pour laquelle je n'ai pas de solution, et ne l'ai pas trouvé ici:

  • J'ai activé les modules Workflow et Workflow access (Drupal 6.x).
  • Sur un type de contenu, j'ai mis en place un workflow simple prenant 2 états : soumis et publié.
  • Seul un user authentifié peut soumettre un post (état soumis), et seul un user éditeur peut le publier (état publié) => cf. fichier 1.jpg joint.
  • Au niveau des permissions du module Workflow, un user éditeur peut 'access workflow summary views' et 'schedule workflow transitions'. Par contre, au niveau du module node, il ne peut pas 'administrer les noeuds'.

En l'état, un user éditeur peut effectivement voir les posts soumis dans le 'Workflow summary' (=> cf. fichier 2.jpg joint). Malheureusement, il ne peut pas accéder au contenu correspondant en cliquant sur le titre (cf. fichier 3.jpg joint) !?
Pour cela, il faudrait que je permette au rôle éditeur d'administrer les noeuds, ce que je ne veux pas.

Comment faire ?

juste pour préciser un point qui m'a paru pas clair lors de la lecture de ce tuto (merci davidm) même si cela été dit : workflow access permet bien de changer les permission d'un auteur sur son node en fonction de l'état du workflow grace au sous module workflow access.

Par conséquent utiliser workflow access est quasi obligatoire pour un workflow cohérent (à moins d'utiliser l'astuce de davidM) sinon l'auteur d'un node peut modifier son contenu même après sa validation/publication par les "rédacteurs en chefs" ce qui n'est pas logique.

En cas de conflit avec un autre module d'accès je pense que Rules permet de se sortir de cette situation même si je ne l'ai pas testé sur la 6. Si il est bien le successeur de workflow ng sur drupal 5 alors il est peut être possible de créer une règle observant la valeur d'etat du workflow et redirigeant l'utilisateur si l'état est égal à "valider" pour qu'il ne puisse pas accéder au formulaire d'édition. Je testerai.

A noter que les droits de worklow access ne fonctionnent comme attendu que si on DESACTIVE le droit "edit own xxxx" dans les droits d'accès généraux. Sinon, l'auteur du node peut éditer son node à toutes les étapes de la publication et pas seulement sur les étapes sélectionnées...

Et oui effectivement...

Pour Workflow access oui si on veut verouiller le doc en fonction du statut du noeud dans le workflow c'est nécessaire. Le problème c'est qu'avec les soucis de conflits entre module de gestion des accès, tu vas souvent être restreint dans son utilisation pour des sites plus complexes qui impliquent souvent l'utilisation de plusieurs modules de gestion des accès (dans mon cas OG access est indipensable).

Pas encore testé mais http://drupal.org/project/module_grants peut peut-être aider à résoudre ce souci...

ça me fait mal à la tête ce genre de module :-|
mais c'est à tester ! (en local, au cas où ça explose, quand même.).

L'exemple de workflow access montrer bien qu'il y a un gros souci de logique niveau droit dans Drupal : les droits généraux AUTORISE l'édition et Workflow access INTERDIT : pourquoi l'accès est autorisé alors qu'un des deux modules dit "non" ?

Tu ne crois pas si bien dire... j'ai un workflow sur un site que j'ai construit avec 8 status différents et 6 rôles, je te racontre pas la matrice des autorisation qui a le droit de faire quelle transition... ça explose en largeur et ça fait une ***** de matrice :P

Arf, concernant les droits oui oui j'en ai déjà parlé sur le forum quand j'ai été confronté à ça en fait le modèle de gestion des accès dans Drupal est basée sur GRANT et non sur DENY (je n'arrive pas à retrouver l'article technique que j'ai lu là dessus...)

Edit : OK j'ai retrouvé le post sur ce sujet
http://www.darcynorman.net/2006/07/14/on-drupals-node-access-control-sch...
et http://www.darcynorman.net/2006/04/28/access-control-lists-in-drupal/

Un groupe à lire sur le sujet aussi :
http://groups.drupal.org/access-control

Merci pour ce lien très clair.

Ca confirme ce que je pensais avoir compris en lisant la fonction d'accès de Drupal : si on coche une case de permission d'un node dans l'admin des droits, plus aucun module n'est questionné sur le droit d'accès ou pas : la table node_access n'est tout simplement pas consulté dans ce cas. C'est bizarre comme approche.

Le deuxieme probleme c'est que les modules donne ou pas accès à une page en rajoutant des conditions sql dans la partie "where" de toute requete drupal inclut dans la fonction db_rewrite_sql().

Probleme : les conditions s'accumulent par l'opérateur "OU" et non pas "AND" : du coup si un module donne l'accès et l'autre l'interdit; le node est quand même affiché à cause de l'opérateur "OU".

deuxieme remarque : un module qui n'inclurait pas son sql dans db_rewrite_sql enleve tout controle de droit d'accès sur la liste généré, il faut donc compter sur les bonnes pratiques des contributeurs.

Donc à AMHA tout ça n'est pas vraiment un probleme de "deny" ou "grant" car dans la table node_access, si grant = 0 c'est idem que dire "deny".

Le souci a pour origine
- le hook_access (permissions des types de contenu) qui courcircuite le hook_node_access (modules de droit d'accès).
- les requetes en "OR" au lieu de "AND" qui donne accès au contenu si un seul module dans la table node_access l'autorise.

(car du coup la requete dit "si tel module autorise OU si tel module autorise, afficher"; donc l'interdiction d'un module n'empeche pas l'affichage d'un node).)

Je suis pas sûr de tout ça mais c'est ce que j'en comprends pour l'instant.

nylauster : Donc à AMHA tout ça n'est pas vraiment un probleme de "deny" ou "grant" car dans la table node_access, si grant = 0 c'est idem que dire "deny".

Le problème c'est surtout que si un module défini grant et l'autre grant=0 et bien c'est le grant qui a le dessus donc le conflit entre deux modules va donner comme résultat : accès.

Edit : Oui pardon j'ai lu des trucs sur la modif vers le AND tu as raison.

Si les modules pouvaient faire du "deny" le problème ne se présenterai pas... Si tu regardes il y a des initiatives comme celle là sur la question : http://groups.drupal.org/node/14419

Bon enfin c'est un gros point faible des permissions je trouve et j'espère que D7 va solutionner ce problème !

Bonjour,

Je rencontre un problème avec workflow (en fait avec Actions/Triggers) Drupal 5.x

J'ai créé un workflow (ModerationRole) sur 1 seul type de contenu (Asso-vie) avec 3 états ((creation) / a valider / publie).
J'ai bien configuré les transitions (Edit workflow ModerationRole).

Mais le problème viens de Actions/Triggers car dans "triggers" je vais dans "workflow" et la je n'ai comme action que "Change workflow state of post to next state" donc ça modifie bien l'état mais je ne peut pas publier le post (même pour un admin qui a le droit de passer d'un état "creation" a un état "publie") je ne peut pas choisir dans "triggers" l'action node/Publish post OU node/Save post !!! :
triggers

Pourtant dans "actions" ils son bien présent !! :
Actions

Je suis un peut dépassé ... un petit coup de main serais le bien venu.
Pour être plus clair je veux qu'un admin qui créé un contenu (Asso-Vie) soit publié immédiatement.