5

需要有关实施简单配额制度的最佳实践的指导

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

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

假设我们的自定义内容类型称为“令牌”。应该可以对可以添加的令牌数量设置限制。例如,限制设置为 2。将两个代币添加到他们的会员区后,他们不再有权添加更多代币。

我在考虑什么

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

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

4

3 回答 3

5

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

于 2011-07-04T17:19:58.253 回答
2

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

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

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

于 2011-07-05T13:37:25.227 回答
2

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

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

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

我在一个需要按组/角色限制项目数量的项目中做到了这一点。

于 2011-07-07T16:58:39.853 回答