使用Workflow实现配额

时间:2011-07-04 16:03:14

标签: workflow plone zope quota

需要有关实施简单配额制的最佳做法指南

我想限制会员可以将自定义内容类型(称为令牌)添加到其会员文件夹的次数(我还创建了自定义会员文件夹)。

用例(限制成员可添加的令牌数量):

我们假设我们的自定义内容类型称为“令牌”。应该可以设置可以添加的令牌数量的限制。例如。限制设置为2。    将两个令牌添加到其成员区后,他们将无法再添加权限    进一步的代币。

我在考虑什么

我正在研究DCWorkflow,并想知道是否某种保护条件可能是一种选择。我还查看了一个名为'quota'的插件的源代码,该插件使用了class / require zcml指令(代码在这里:http://svn.plone.org/svn/collective/quota/trunk/configure.zcml)。

似乎我可能需要自定义“成员文件夹”而不是“令牌”本身的工作流程。我将不胜感激任何关于此的指示/指导。

3 个答案:

答案 0 :(得分:5)

我不相信这可以通过工作流实现,因为添加内容不是工作流操作。我会为您的令牌类型使用自定义添加表单,并在用户已有两个或更多令牌时禁止创建内容。

答案 1 :(得分:2)

您可以使用事件监控添加的内容类型对象的数量,并在对象数超过限制时撤消添加权限。

活动文档:http://plone.org/products/dexterity/documentation/manual/five.grok/core-components/events

权限撤销可以通过例如组进行。只需从允许添加内容的组中删除用户。

答案 2 :(得分:2)

您还可以覆盖成员文件夹的allowedContentTypes方法。

您可以根据需要从返回的列表中筛选任何AT类型。

好消息是,您还可以使用可添加类型列表更新经典的“添加新”下拉菜单。

我在一个项目中这样做,我需要按组/角色限制项目数。