plone - 文件夹原型(prototype)的共享选项卡 'can add' 权限似乎无法正常工作

标签 plone archetypes

我在 plone 4 中开发了一个自定义文件夹内容类型;在指定此内容类型的配置文件的 xml 文件中,我定义了一些其他内容类型对象作为可添加到此文件夹的内容。在 rolemap.xml 文件中,我有以下设置:

<permission name="my permission" acquire="False">
  <role name="Manager" />
  <role name="Owner" />
</permission>

相同的设置适用于允许的“子”内容类型。

所以一般来说,我不希望除了所有者(当然还有管理员)之外的任何人都能够编辑该对象。我猜所有者可以做的是通过“共享”选项卡显式委托(delegate)其对象的权限。但是,当所有者向另一个用户授予“可以添加”和“可以编辑”权限时,当该其他用户登录时,他可以编辑该文件夹对象,但无法在其中添加项目,就像“添加新”菜单所做的那样不显示,这不仅仅是 UI 问题,例如当他调用 URL 时

http://<myhost>/<mysite>/<myfolderishobject>/createObject?type_name=<myallowedType>

显示了在表单中添加对象的选项,但当他提交该选项时,他收到“权限不足”消息。

一些额外的观察结果:folderish 的所有者和委派用户都属于同一组,如果我将角色映射中的“获取”属性设置为 True,情况不会改变。

我想知道问题是出在我的配置中还是由错误引起。

最佳答案

Plone 使用 role-based security model ,先看一下,下面会解释的。 当您在共享选项卡上授予用户“可以添加”权限时,实际上您真正要做的就是授予他Contributor 角色。简而言之,为了使其适用于您的内容类型,您必须允许具有贡献者角色的任何人添加,即

<permission name="my permission" acquire="False">
  <role name="Manager" />
  <role name="Owner" />
  <role name="Contributor" />      
</permission>

请注意,其他用户也可能从更高级别的文件夹获取Contributor 角色。

关于plone - 文件夹原型(prototype)的共享选项卡 'can add' 权限似乎无法正常工作,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/9434455/

相关文章:

plone - 如何覆盖 ore.viewlet.core.FormViewlet 中的 zope.formlib @form.action 方法

java - 关于如何创建新的 Maven 原型(prototype)的任何好的高级指南?

spring - 带有 Spring、Spring MVC、Hibernate、JPA 的项目的 Maven 3 原型(prototype)

plone - 从带有 Archetypes 的富文本字段中获取文本的规范方法是什么

python - 创建后的 Plone Archetypes 重定向

plone - portlet/configure.zcml 上的 "view_permission"是做什么用的?

plone - 如何在 Plone 的 EEA 分面导航中添加多个搜索类别/分类法?

plone - 更改 Zope 模板中的属性

plone - 如何使用 Plone 的 setText() 在 ATDocument 中设置相对 URL?

apache - maven archetype 插件 - 在远程目录中找不到原型(prototype)。默认为内部目录