这是针对Plone 4.这是一个非常普遍的问题。我有一个表单(ploneformgen),我希望匿名用户查看和填写,但我想隐藏它来自注册用户(即已登录的用户)。同样,我有一个"登录"导航菜单中的链接。显然,匿名用户应该看到,但登录用户不应该看到它。我已经尝试了很多选项,我在这里不详细说明(工作流程,更改本地权限设置的脚本等),因为它们都没有工作。必须有一种标准的方法来做到这一点,但我无法弄清楚它是什么。
有什么想法吗?
答案 0 :(得分:1)
未经测试,但可能有效:Products.AutoRole
可以根据用户的IP为访问者分配组和角色,而无需为其创建用户帐户。它还具有仅向匿名用户提供自动角色/组的切换。规则255.255.255.255/0
应匹配所有IP,因此所有匿名用户都可以获得一个组,并且您可以将该表单设为私有且对该组可见。
(请注意,AutoRole不支持IPv6,并且有关于用户继承的警告,特别是:它实际上会禁用管理员帐户,所以你应该不在你的Plone实例中激活它,但在Zope服务器acl_users
中,如果可能的话。)
答案 1 :(得分:0)
另一个未经考验的想法。
有一个非常知道的产品,我从未在生产环境中使用它(但在我的测试中它完美地运行):collective.subtractiveworkflow(https://pypi.python.org/pypi/collective.subtractiveworkflow)和工作流链的使用。
在实践中,您可以设计第二个工作流程,从View
个角色中减去Member
权限。
说实话,我并不是100%确定如何使用Anonymous
,因为通常你不能为Anon用户定义权限,但不能给其他角色。在这种情况下,这可能是相同的。