首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >在Plone 4中列出用户具有审阅者访问权限的文件夹

在Plone 4中列出用户具有审阅者访问权限的文件夹
EN

Stack Overflow用户
提问于 2011-10-17 05:11:01
回答 1查看 465关注 0票数 1

我的站点中有一个包含数百个子文件夹的文件夹。每个子文件夹代表一个文档提交,其中包含与提交相关的项。每个子文件夹的默认页面都是一个自定义页面模板(基于文档),根据查看用户角色的不同,该模板显示的信息略有不同。例如,具有经理角色的用户看到的内容与具有审阅者角色或编辑角色的用户略有不同。站点上的用户被分配到不同文件夹的不同角色-例如,Manager可以将用户A指定为文件夹1-5的审阅者,将用户B指定为文件夹6-10的审阅者。

我想在用户的仪表板中创建一个portlet,以显示他们被分配了审阅者访问权限的所有文件夹,或者,如果这样做更容易,我也可以只在仪表板中创建一个指向页面模板的链接。我最初认为我应该创建一个集合,但是没有内置的“钩子”来显示用户被分配了特定角色的内容。

我不能简单地限制它,使内容不可见,除非您拥有审阅者角色,因为它需要对所有经过身份验证的用户可见。

我一直在尝试使用标准视图(folder_listing)模板来尝试找到正确的代码。我曾尝试在"entry“插槽的开头定义一个"roles”变量:

代码语言:javascript
复制
tal:define="member context/portal_membership/getAuthenticatedMember; 
                   roles python:member.getRolesInContext(item);"

并对项目使用条件,以便仅显示用户对其具有审阅者角色的项目:

代码语言:javascript
复制
tal:condition="python:'Reviewer' in roles"

以下是指向完整页面模板的链接:http://www.tempfiles.net/download/201110/214265/folder_listing.html

当我使用它的时候,我没有得到任何结果。我稍微修改了一下,这样它只会在页面中显示它所扮演的角色,并且我不认为它是在拉动当前条目的角色。

如果能朝着正确的方向前进,我们将非常感激!

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2011-10-17 05:44:03

我认为问题在于,顾名思义,getRolesInContext需要的是上下文,而不仅仅是大脑。您应该尝试提供真实的对象:

代码语言:javascript
复制
tal:define="member context/portal_membership/getAuthenticatedMember; 
            itemObj item/getObject
            roles python:member.getRolesInContext(itemObj);"

否则,如果您希望仅查找本地分配的角色,则可以使用以下代码:

代码语言:javascript
复制
from Products.CMFCore.utils import getToolByName

portal_url = getToolByName(context, "portal_url")
portal = portal_url.getPortalObject()
acl_users = portal.acl_users

res = []

for item in items:
    itemObj = item.getObject()
    local_roles = acl_users._getLocalRolesForDisplay(itemObj)
    for name, roles, rtype, rid in local_roles:
        if member.getId() == rid and 'Reviewer' in roles:
           res.append(item)

这段(未经测试的)代码的灵感来自于plone.app.workflow包中的sharing view。您可以将此代码放在自定义portlet中,也可以放在Renderer类的方法中。

票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/7787352

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档