Accueil » Zope » Forum Zope » Forum Général Zope » Suppression d'objet

 • Suppression d'objet

Document Actions
Réponses: 3   Visites: 0
Up one level
Vous devez être un membre enregistré pour contribuer sur ce forum. Inscrivez-vous maintenant

 • Suppression d'objet

Posté par newbees le 30/01/2008 12:35
bonjour

J'ai un dossier commun contenant deux types d'objets.
Différents users peuvent ajouter ces types dans ce dossier;
J'aimerais rajouter un onglet "supprimer" sur les objets pas sur les dossiers(à coté de voir, modifier, propriété, partage...) et ceci visible que pour le "Manager" et l'"Owner" de tels sorte que l'owner puisse supprimer ses objets.

J'ai donc rajouter ceci sur les actions de mon type (ZMI:/monsite/portal_types/Action)
Title Delete
Id delete
URL (Expression) string:${object_url}/object_delete
Condition (Expression) python:checkPermission("Delete objects", object)
Permission Delete objects
Category object

Mon workflow donne bien le droit "Delete objects a l'owner et mon lien "Suprimmer" apparait bien sur l'objet quand l'owner le visionne.
Mais, quand il clic dessus il a le message
Privilèges insuffisants
Vous n'avez pas les privilèges suffisants pour voir cette page. Si vous pensez recevoir ce message par erreur, merci d'envoyer un courrier électronique à manager

Je n'arrive pas a voir ce qui coince.
Merci a ceux qui voudront bien m'aider.

Pour info
Plone 254
Zope 298
Python244
  •  • Re: Suppression d'objet

    Posté par tcr le 31/01/2008 10:47
    Bonjour,

    (Zope 2.8.6-final - python 2.3.5 - Plone 2.1.3)

    Récemment , j'ai été confronté à un problème qui ressemble, d'une certaine manière, au tien : je voulais accorder le droit de supprimer un élément à son propriétaire et, pour les éléments en question, j'avais configuré le WF correctement et je voyais bien l'action "supprimer" (actions par défaut du site), rien à faire : j'obtenais le message "Vous n'avez pas les privilèges suffisants..." après moult tests (j'ai cru que je devenais fou !) et recherches et un post dans le Forum Plone.org, j'ai fini par comprendre que pour pouvoir supprimer un élément (par exemple un article) dans un dossier (folder) il faut que le conteneur aiT aussi la permission "delete object" (rapport à l'acquisition Zope...), ce qui est dangereux puisque non seulement on peut supprimer l'élément mais, par inadvertance, son conteneur ! Enfin c'est ce que j'ai compris et que j'ai pu tester...

    En fait, il faudrait écrire un script Python et utiliser une "External méthod" (ce que je n'ai pas encore fait).

    Je t'invite à lire mon post et ses réponses (en Anglais...) http://www.nabble.com/Workflow-issue-%3A-Does-the-owner-may-delete-the-contents-it-has-created--to13230509s6741.html#a13231994

    et aussi ceci :
    http://www.nabble.com/How-to-give-delete-permission-to-owner-to1870067s6741.html#a1880414
    (Je crois me souvenir qu'il y a un exemple de code Python dans le fil ci-dessus...)

    Bonne lecture et bon courage,

    Thierry

    P.S. : si tu trouves la (une) solution, ce serait sympa de la poster ici.
  •  • Re: Suppression d'objet

    Posté par tcr le 31/01/2008 10:51
    Errata :

    au lieu de lire :
    ce qui est dangereux puisque non seulement on peut supprimer l'élément mais, par inadvertance, son conteneur !

    il convient de lire :
    ce qui est dangereux puisque non seulement on peut supprimer l'élément mais, par inadvertance,.on peut supprimer.son conteneur !
  •  • Re: Suppression d'objet

    Posté par newbees le 31/01/2008 15:15
    Il me semble avoir trouver une solution.
    Merci de me reprendre si je me trompe.
    La voici

    1 - J'ai donner le droit "Delete Object" au groupe de mes users dans le workflow de me conteneur.
    2 - j'ai donner le droit "Delete Object" a l'owner dans le workflow de mon objet.
    3 - j'ai créer l'action suivant pour mon type d'objet.
    Title Delete
    Id delete
    URL (Expression) string:${globals_view/getCurrentObjectUrl}/delete_confirmation
    Condition
    Permission Delete objects
    Category object

    Ca marche seulement si mon URL (Expression) est string:${globals_view/getCurrentObjectUrl}/delete_confirmation et non pas string:${object_url}/object_delete.
    Pourquoi : Je ne sais vraiment pas....

    Je penses que cela fonctionne aussi du fait que mon conteneur et mon objet n'ont pas le meme workflow...