如何隐藏已注册用户的内容但将其显示给匿名用户?

时间:2014-05-24 14:45:45

标签: plone

这是针对Plone 4.这是一个非常普遍的问题。我有一个表单(ploneformgen),我希望匿名用户查看和填写,但我想隐藏它来自注册用户(即已登录的用户)。同样,我有一个"登录"导航菜单中的链接。显然,匿名用户应该看到,但登录用户不应该看到它。我已经尝试了很多选项,我在这里不详细说明(工作流程,更改本地权限设置的脚本等),因为它们都没有工作。必须有一种标准的方法来做到这一点,但我无法弄清楚它是什么。

有什么想法吗?

2 个答案:

答案 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用户定义权限,但不能给其他角色。在这种情况下,这可能是相同的。