Plone:列出所有 ldap 用户

Plone: list all ldap users

我正在尝试获取所有用户的列表 - 本地帐户和 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 和本地。

membership_tool.listMemberIds()  # local accounts ids are listed

同:

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

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

通过在 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