我们正在尝试为Plone文档管理系统实施自定义结帐策略。在此,我们希望能够在一段时间后获得已发布文档的工作副本。
迭代似乎是完美的。
但是,我们只希望结帐可用于已发布的文档。所以这是推理.... 由于工作流控制了多个权限,我们在portal_workflow工具的权限选项卡中添加了“iterate:Check in content”和“iterate:Check out content”。 然后,我们在具有结帐权限的人员的各个工作流状态的权限选项卡中标记了复选框。 但是,在前端,无论文档处于何种状态,每个人都可以选择签出文档。
我们缺少什么?
PS:我们已经在"Working Copy Workflow Customization"上查看了该文档,我们认为这与更改已签出文档的工作流程有关,这不是此处的目的......
答案 0 :(得分:4)
我认为这里的问题是plone.app.iterate / browser / control中的checkout_allowed方法:Control。
在允许用户签出之前,它不会检查任何权限(假设用户可以查看它,应该允许他们将其签出到主文件夹等等 - 我猜这是一个合理的用例)
然后,在portal_actions / object_buttons / iterate_checkout中,它只使用“查看”权限允许将按钮放在那里。
为了完全正确,您必须自定义checkout_allowed方法和操作中使用的权限。
要快速简单地执行此操作,用户只是看不到按钮,请将按钮权限更改为“迭代:结帐内容”。