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