Plone:列出所有ldap用户

时间:2017-12-05 16:18:52

标签: plone plone-4.x

我正在尝试获取所有用户的列表 - 本地帐户和ldap。

如果我知道一个用户ID(ldap或本地帐户)这很简单,我可以得到它并检查它的属性:

site = self.context.portal_url.getPortalObject() from 
Products.CMFCore.utils import getToolByName
membership_tool = getToolByName(site, 'portal_membership') 
membership_tool.getMemberById('some_user_id')

^这适用于:ldap和local。

membership_tool.listMemberIds()  # local accounts ids are listed

同样的:

users_tool = getToolByName(self, 'acl_users')
users_tool.getUserIds()  # local accounts ids are listed

知道如何获取使用ldap帐户的用户列表吗?

1 个答案:

答案 0 :(得分:2)

通过在portal_memberdata工具中迭代_members的键来解决。我们为每个用户提供了一些字段。

md = getToolByName(self, 'portal_memberdata')
all_members = [x for x in md._members.keys()]  # ids of ldap and local accounts are listed