2017-12-05 1 views
1

모든 사용자 목록을 얻으려고합니다. 로컬 계정과 LDAP 사용자 목록을 얻으려고합니다. 나는이 간단 인 사용자 ID (LDAP 또는 로컬 계정)을 알고 있다면Plone : 모든 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 계정을 사용하는 사용자의 목록을 얻으려면?

답변

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 
관련 문제