Plone: ​​список всех пользователей ldap

Я пытаюсь получить список всех пользователей - локальных учетных записей и учетных записей ldap.

Если я знаю идентификатор пользователя (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?


person GhitaB    schedule 05.12.2017    source источник


Ответы (1)


Решается путем повторения ключей _members в инструменте portal_memberdata. У нас есть несколько полей для каждого пользователя.

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