【问题标题】:Plone 4: List members that have been given Reviewer role on a specific folderPlone 4:列出在特定文件夹中被赋予 Reviewer 角色的成员
【发布时间】:2011-10-19 23:08:15
【问题描述】:

我为文件夹创建了一个新视图(基于表格视图),只有普通查看者的标题和日期,但如果登录用户具有“编辑”角色,它会显示一个附加列。该列需要列出已被赋予该特定项目“审阅者”角色的用户。例如,列将是:

Title    | Date  | (Reviewers)
Folder 1 | 10/04 | Johnny, Steve, Mary Sue
Folder 2 | 10/13 | Sam, Betty, Johnny

我已经能够根据经过身份验证的用户的角色隐藏/显示最后一列,但我似乎无法弄清楚如何仅列出具有审阅者访问权限的用户。我试过使用 searchForMembers(),但除了速度很慢之外,我只能让它回显整个成员列表,或者根据站点范围的角色缩小范围,但我只需要手动获取成员指定特定文件夹的审阅者角色。

这是整列的代码:

<td tal:define="is_manager python:test(here.portal_membership.getAuthenticatedMember().has_role('Manager'), 1, 0);"
    tal:condition="is_manager">
    <tal:block tal:define="results python:item.portal_membership.searchForMembers(roles=['Member']);"> 
        <tal:block tal:condition="results"
                   tal:repeat="user results">
            <tal:block tal:define="fullname python:user.getProperty('fullname')">
                <span tal:replace="fullname">Full Name</span><span>, </span>
            </tal:block>
        </tal:block>
    </tal:block>
</td>

当我有角色 = ['Member'] 时它可以工作,但如果我将其更改为“审阅者”,我什么也得不到 - 我认为因为没有人被指定为整个网站的审阅者,仅针对特定项目。我也尝试过以各种方式使用 .listMembers() ,但似乎受到限制,我无法在页面模板中使用它。有没有办法解决这个问题,或者这是首先解决这个问题的“错误方式”?

【问题讨论】:

    标签: plone


    【解决方案1】:

    两天前我回答了一个几乎相同的问题:

    List folders that a user has Reviewer access to in Plone 4

    更新后的代码应如下所示:

    from Products.CMFCore.utils import getToolByName
    
    portal_url = getToolByName(context, "portal_url")
    portal = portal_url.getPortalObject()
    acl_users = portal.acl_users
    
    res = []
    
    local_roles = acl_users._getLocalRolesForDisplay(context)
    for name, roles, rtype, rid in local_roles:
        if 'Reviewer' in roles:
            res.append((name,roles,rtype,rid))
    

    我建议将这种逻辑放在 python 文件中,而不是页面模板中。

    【讨论】:

    • 我也是那个问这个问题的人!我不知道如何“逆转”该过程并列出具有特定访问级别的人员,而不是列出文件夹。谢谢!
    猜你喜欢
    • 1970-01-01
    • 2020-12-05
    • 2021-10-11
    • 1970-01-01
    • 1970-01-01
    • 2021-06-16
    • 2021-11-18
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多