2012-04-04 12 views
3

Wir versuchen, eine benutzerdefinierte Checkout-Richtlinie für ein Plone Document Management System zu implementieren. Wir möchten in der Lage sein, nach einer gewissen Zeit Arbeitskopien veröffentlichter Dokumente zu haben.Arbeitskopien (Iterate) Berechtigungen und Workflow

Iterate scheint perfekt dafür.

Wir möchten jedoch nur die Kasse für veröffentlichte Dokumente verfügbar sein. So, hier ist die Argumentation .... Da der Workflow mehrere Berechtigungen steuert, haben wir sowohl "iterate: Inhalt einchecken" als auch "iterate: Inhalt auschecken" auf der Registerkarte "Berechtigungen" im Tool portal_workflow hinzugefügt. Wir haben dann die Kontrollkästchen in den Berechtigungsregisterkarten der einzelnen Workflow-Status für diejenigen Personen markiert, die über Auswertungsrechte verfügen. Im Frontend hat jedoch jeder die Möglichkeit, Dokumente auszuchecken, unabhängig vom Status des Dokuments.

Was fehlt uns?

PS: Wir checkten bereits aus dem Dokument auf "Working Copy Workflow Customization" und unserer Meinung nach dies bezieht sich auf den Workflow für die ausgecheckt Dokumente zu ändern, die nicht das, was hier ...

soll

Antwort

4

Das Problem Ich denke, das ist checkout_allowed Methode in plone.app.iterate/browser/control: Kontrolle.

Es überprüft keine Berechtigungen vor dem Auschecken für den Benutzer (es wird davon ausgegangen, wenn sie Benutzer es anzeigen können, sollte es erlaubt, es in den Benutzerordner und so zu überprüfen - ich denke, das ist ein sinnvoller Anwendungsfall).

Anschließend wird in portal_actions/object_buttons/iterate_checkout einfach die Berechtigung "View" verwendet, damit die Schaltfläche dort platziert werden kann.

Um dies vollständig zu korrigieren, müssten Sie die Methode checkout_allowed und die in der Aktion verwendete Berechtigung anpassen.

Um es schnell und einfach zu machen, so dass der Benutzer die Schaltfläche nicht sehen kann, ändern Sie die Schaltfläche "iterate: checkout content".

+0

Schöne Lösung. Vielen Dank. +1 von mir. – Speediro