dcworkflow giveth和subtractiveworkflow takeaway。
collective.subtractiveworkflow的Python项目详细描述
注意!
此版本仅适用于plone 4(products.cmfcore 2.2, 产品.dcworkflow 2.2)。 如果你想在Plone 3.3上使用这个包,请使用1.0b1版本。
简介
此产品提供了另一种工作流定义类型。它起作用了 很像常规工作流,但不是在 进入一个特定的状态,它会将他们从选定的角色中带走。
最初的用例是通过 辅助工作流。类型上的主链具有发布工作流 这将向处于不同状态的各种角色授予查看权限。这个 辅助“机密性工作流”有两种状态:“正常”和 “机密”。在“正常”状态下,没有为视图选择任何角色 权限,因此应用主工作流中的角色映射。然而, 在“机密”状态下,匿名、身份验证和成员 为查看权限选择,因此这些角色不再具有 查看项目。
请注意,“获取”标志几乎总是关闭的。减法 工作流将以与默认值相同的方式设置acquire属性 工作流定义,但结果可能不是您所期望的, 因为可以获得“关闭”的权限。
还要注意,组到本地角色的映射不是“减法”的,并且可以工作 与标准工作流定义完全相同。一般来说,本地角色是 总是在zope中继承(尽管plone有一个扩展来关闭它)。
多个工作流的影响
此产品依赖于对dcworkflow权限系统的解释 如下所示:
- 如果一个链中有多个工作流,则确定项目的状态 所有的工作流程,而不仅仅是最后一个。
- 尤其是,应用链中所有工作流中的权限设置 任何时候。以后的工作流可以覆盖以前的工作流。
为了支持这一点,安装了一个事件处理程序,当转换 对链中的所有工作流执行updateRoleMappings()调用。 (如果只有一项工作,则可以进行优化以避免重复工作 链中的工作流)。如果没有减法,它就什么也做不了。 工作流在链中,但一旦有工作流,您将得到 行为。
因此,如果将减法工作流作为 两个工作流链,然后从第一个或 第二个工作流中,两个工作流的权限都将应用,并使用减法 允许重写正常工作流的工作流。
注意,这可能会影响现有的多工作流链,因为默认情况下, dcworkflow不会以这种方式“重新扮演”角色映射,而是让 最近进入的状态决定了角色映射和 从链中任何其他工作流的当前状态重写角色。
更改日志
2.0b1(2010-09-11)
- 将dummy设置到容器会生成addedobjectevent, products.cmfcore.cmfcatalogaware.handleContentShevent捕获事件并调用wftool.notifyCreated(虚拟)。 products.cmfcore 2.2,在products.cmfcore.workflowtool.notifycreated中,添加了一个检查, 如果以前调用过wf.notifycreated,则不会调用它(工作流历史记录不为空)。 因此在测试中,wftool.notifycreated(dummy)在将dummy对象设置为容器后不执行任何操作。 所有的测试都经过了调整和修正。 [VincentFretin]
- 删除了中的显式检查“event.transition is none,then return” react.object已转换订阅服务器。 如果机密状态为 是初始状态。 [VincentFretin]
- 修复了工作流常规设置导入,初始化工作流签名已更改 在products.dcworkflow 2.2中由plone 4使用。这个版本不起作用 plone 3使用的products.dcworkflow 2.1。 [VincentFretin]
1.0b1-2009-04-03
- 初始版本