Plone 用于区分作者和用户的资源注册表条件

Plone 用于区分作者和用户的资源注册表条件,plone,Plone,我正在寻找一个Plone资源注册表条件(TALES表达式),它可以区分登录内容作者(具有编辑权限)和普通登录站点用户(没有编辑权限)……有人能帮忙吗?这看起来很有帮助: expression=“python:portal['portal\u membership'].checkPermission('Modify portal content',context)”这看起来很有用: expression=“python:portal['portal\u membership'].checkPerm

我正在寻找一个Plone资源注册表条件(TALES表达式),它可以区分登录内容作者(具有编辑权限)和普通登录站点用户(没有编辑权限)……有人能帮忙吗?

这看起来很有帮助:


expression=“python:portal['portal\u membership'].checkPermission('Modify portal content',context)”

这看起来很有用:


expression=“python:portal['portal\u membership'].checkPermission('Modify portal content',context)”
另一种方法是使用context state视图:

context/@@plone_context_state/is_editable

另一种方法是使用上下文状态视图:

context/@@plone_context_state/is_editable

在升级到Plone 4.3之前,我们使用:
python:member不是None,而是request.get('X-Pseudo-Logged-In','no')=='no'
我已经玩过Products.CMFCore.Expression和Products.ResourceRegistries,但我想不出来……在升级到我们使用的Plone 4.3之前:
python:member不是None,而是request.get('X-Pseudo-Logged-In','no'))==“否”
我已经玩过Products.CMFCore.Expression和Products.ResourceRegistries,但我想不出来……应该这样做。我认为您可以只使用
checkPermission
,因为我认为它是公开的。“X-Pseudo-Logged-In”位是特定于您的实现的(我记得很模糊;-),它设置在web服务器中以处理某些特定的缓存逻辑。您可能需要确保这在缓存/缩放环境中有效。如果不清楚,给我发封电子邮件。知道这上面有doco吗?我搜索了将在资源注册表表达式的上下文中工作的示例或关于TALES表达式的评论,结果空手而归。由于用户在UI上看不到哪些变量可用,我最终不得不在zope包中粘贴断点来查看发生了什么。。。这种情况在Plone/Zope imo中经常发生。一个更有用的UI应该在面向用户的控件旁边的上下文中提供描述和示例表达式。这应该可以做到。我认为您可以只使用
checkPermission
,因为我认为它是公开的。“X-Pseudo-Logged-In”位是特定于您的实现的(我记得很模糊;-),它设置在web服务器中以处理某些特定的缓存逻辑。您可能需要确保这在缓存/缩放环境中有效。如果不清楚,给我发封电子邮件。知道这上面有doco吗?我搜索了将在资源注册表表达式的上下文中工作的示例或关于TALES表达式的评论,结果空手而归。由于用户在UI上看不到哪些变量可用,我最终不得不在zope包中粘贴断点来查看发生了什么。。。这种情况在Plone/Zope imo中太常见了。一个更有用的UI会在面向用户的控件旁边的上下文中提供描述和示例表达式。我认为这更优雅,过程密集度也更低。。。为此干杯。我已经测试过,即使在分布式环境下也能正常工作。我认为这更优雅,过程密集度也更低。。。为此干杯。我进行了测试,即使在分布式设置中也能正常工作。