[CPS-users-fr] CPSWorkflow.constants

Anahide Tchertchian at at nuxeo.com
Mar 26 Sep 11:47:25 CEST 2006


Cedric Marfil a écrit :
> Bonjour,
> Ayant le besoin de créer des workflows spécifiques, je me suis intéressé 
> à la méthode 'verifyWorkflow' de l'installer.
> J'ai donc construit un skin qui me retourne les workflows à installer, 
> mais pour pouvoir définir ces derniers, j'avais besoin d'accéder aux 
> constantes stockées dans CPSWorkflow/constants.py.
> Quoi que je fasse, je n'avais jamais accès à ces constantes. Je me suis 
> donc inspiré de ce qui était fait dans CPSCore/permissions.py puisque 
> l'import de constantes de permissions fonctionnait.
> J'ai donc ajouté au fichier constants.py le code suivant:
>  
> from AccessControl import ModuleSecurityInfo
> security = ModuleSecurityInfo('Products.CPSWorkflow.constants')
>  
> security.declarePublic('TRANSITION_ALLOWSUB_CREATE')
> TRANSITION_ALLOWSUB_CREATE = 10
> security.declarePublic('TRANSITION_ALLOWSUB_DELETE')
> TRANSITION_ALLOWSUB_DELETE = 11
> security.declarePublic('TRANSITION_ALLOWSUB_MOVE')
> TRANSITION_ALLOWSUB_MOVE = 12 # Into this container.
> security.declarePublic('TRANSITION_ALLOWSUB_COPY')
> TRANSITION_ALLOWSUB_COPY = 13 # Same...
> .
> .
> .
> Pour chaque constante déclarée, j'ai ajouté une déclaration de sécurité. 
> Maintenant, mon code fonctionne.
>  
> Est-ce la bonne solution ?
> Si oui, peut-on intégrer cette modification à CPS ?
> Si non, quelle est la bonne solution ?

Bonjour,

Ca n'est pas vraiment la bonne solution : ces valeurs sont protégées, 
non disponibles en code restreint (scripts de skin) et n'ont pas 
réellement besoin d'être mises a sa disposition

La bonne méthode consiste à placer le code qui décrit les workflows à 
mettre en place en code restreint, comme c'est le cas dans l'ancienne 
méthode CPSDefault/Extensions/cpsinstall.py.

La meilleure méthode consiste à utiliser la configuration xml et 
GenericSetup mais cette option n'est peut-être pas disponible pour la 
version que vous utilisez (?).

Cordialement,

-- 
Anahide Tchertchian, Nuxeo
Mail: at at nuxeo.com - Tel: +33 (0)1 40 33 71 60
http://www.nuxeo.com - http://www.cps-project.org



This list archive provided by Nuxeo, the leaders of open source ECM. Check out the Nuxeo 5 open source, standards-based ECM project.