Working Copies (Iterate) permissions and workflow

Go To StackoverFlow.com

3

We are trying to implement a custom checkout policy for a Plone Document Management System. In this, we would like to be able to have Working Copies of published documents after a certain period of time.

Iterate seems perfect for this.

However, we only want the checkout to be available for published documents. So here is the reasoning.... Since the workflow controls several permissions, we added both "iterate : Check in content" and "iterate : Check out content" to the permissions tab in the portal_workflow tool. We then marked the checkboxes in the permission tabs of the individual workflow states for those people who have checkout rights. However, in the frontend, everybody keeps having the option to checkout documents regardless of the state the document is in.

What are we missing?

PS: We already checked out the document on "Working Copy Workflow Customization" and in our opinion this relates to changing the workflow for checked out documents, which is not what is intended here...

2012-04-04 06:13
by Speediro


4

The problem here I think is the checkout_allowed method in plone.app.iterate/browser/control:Control.

It doesn't check on any permissions before allowing checkout for the user(it assumes if they user can view it, they should be allowed to check it out to home folder and such--I guess that's a reasonable use case).

Then, in the portal_actions/object_buttons/iterate_checkout it simply uses the "View" permission to allow the button to be placed there.

So to be completely correct for this, you would have to customize the checkout_allowed method and the permission used in the action.

To do it quick and simple so the user just doesn't see the button, change the button permission to "iterate: checkout content".

2012-04-04 13:37
by vangheem
Nice solution. Thanks. +1 from me - Speediro 2012-04-05 06:19
Ads