我想限制会员可以将自定义内容类型(称为令牌)添加到其会员文件夹的次数(我还创建了自定义会员文件夹)。
我们假设我们的自定义内容类型称为“令牌”。应该可以设置可以添加的令牌数量的限制。例如。限制设置为2。 将两个令牌添加到其成员区后,他们将无法再添加权限 进一步的代币。
我正在研究DCWorkflow,并想知道是否某种保护条件可能是一种选择。我还查看了一个名为'quota'的插件的源代码,该插件使用了class / require zcml指令(代码在这里:http://svn.plone.org/svn/collective/quota/trunk/configure.zcml)。
似乎我可能需要自定义“成员文件夹”而不是“令牌”本身的工作流程。我将不胜感激任何关于此的指示/指导。
答案 0 :(得分:5)
我不相信这可以通过工作流实现,因为添加内容不是工作流操作。我会为您的令牌类型使用自定义添加表单,并在用户已有两个或更多令牌时禁止创建内容。
答案 1 :(得分:2)
您可以使用事件监控添加的内容类型对象的数量,并在对象数超过限制时撤消添加权限。
活动文档:http://plone.org/products/dexterity/documentation/manual/five.grok/core-components/events
权限撤销可以通过例如组进行。只需从允许添加内容的组中删除用户。
答案 2 :(得分:2)
您还可以覆盖成员文件夹的allowedContentTypes方法。
您可以根据需要从返回的列表中筛选任何AT类型。
好消息是,您还可以使用可添加类型列表更新经典的“添加新”下拉菜单。
我在一个项目中这样做,我需要按组/角色限制项目数。