2009-11-06 5 views
0

Existe-t-il un moyen de bloquer un changement donné en fonction du rôle de l'utilisateur? Par exemple, je ne souhaite pas qu'un développeur puisse modifier le statut d'un ticket de 'développement' à 'fermé'. Je veux que ça passe par 'test', et que 'test' soit 'fermé' seulement aux utilisateurs avec le rôle de test.Blocage du workflow Trac

Répondre

5

Ce réglage est assez simple pour le Workflow Trac. La documentation de adding optional testing est cité ci-dessous:

En ajoutant ce qui suit à votre section [ticket-flux de travail] de trac.ini vous obtenez des tests en option. Lorsque le ticket est dans le statut nouveau, accepté ou needs_work, vous pouvez choisir pour le soumettre à des tests. Quand il est dans le statut de test l'utilisateur obtient l'option pour le rejeter et le renvoyer à needs_work, ou passer le test et l'envoyer à fermé. Si ils l'acceptent alors il obtient automatiquement marqué comme fermé et la résolution est mis à fixe. Depuis tout le flux de travail reste, un ticket peut passer cette section entière .

testing = new,accepted,needs_work,assigned,reopened -> testing 
testing.name = Submit to reporter for testing 
testing.permissions = TICKET_MODIFY 

reject = testing -> needs_work 
reject.name = Failed testing, return to developer 

pass = testing -> closed 
pass.name = Passes Testing 
pass.operations = set_resolution 
pass.set_resolution = fixed 

Maintenant, tous les billets doivent passer par l'état « d'essai » avant l'état « pass ». Pour garantir que seuls certains testeurs peuvent modifier un ticket de "testing" à "pass", créez une nouvelle autorisation appelée TICKET_PASS (l'administrateur trac peut le faire dans l'interface Web) et ajoutez ce qui suit à votre flux de travail section de votre trac.ini:

pass.permissions = TICKET_PASS

à mon humble avis, il suffit d'exiger que juste des billets à des tests avant leur passage. Tout développeur raisonnable sait qu'il ne doit pas déplacer un ticket de l'état "testing" à l'état "passing" à moins qu'il ne soit passé quel que soit le contrôle de qualité que vous effectuez. Et comme il y a un historique de leurs actions, on peut leur reprocher de marquer de façon inappropriée les tickets comme "pass". Restreindre les privilèges va probablement gêner (distraire l'administrateur de trac) plus que cela ne l'aide. [NB: J'ai dû enlever tous les liens hypertextes à la documentation sauf un b/c mon représentant est trop bas. Soupir.]

+0

Exactement ce que je voulais! Merci –

+0

En ce qui concerne votre commentaire "... créer une nouvelle autorisation appelée TICKET_PASS (l'administrateur de trac peut faire cela dans l'interface web) ..." Je n'ai pas trouvé un moyen de créer une permission personnalisée à travers le web ui. Êtes-vous sûr que cela peut être fait? Si oui, pourriez-vous fournir une référence? trac.edgewall.org/wiki/TracPermissions – RjOllos