如何列出ldap组的所有组成员?
我有Plone 3和LDAP,其中有很多组和用户。我希望获得特定组的所有组成员如何列出ldap组的所有组成员?,ldap,plone,python-ldap,Ldap,Plone,Python Ldap,我有Plone 3和LDAP,其中有很多组和用户。我希望获得特定组的所有组成员 groupe\u id=“mygroup” gtool=getToolByName(自“门户\组”) group=gtool.getGroupById(groupe\u id) members=group.getAllGroupMembers() 这里的成员总是返回[],但实际上,我的组中确实有一些用户。简短的回答可能是:你不能 当您(或Plone)向ldap请求用户列表时,ldap可能会认为它找到的结果太多,而只
groupe\u id=“mygroup”
gtool=getToolByName(自“门户\组”)
group=gtool.getGroupById(groupe\u id)
members=group.getAllGroupMembers()
这里的成员总是返回
[]
,但实际上,我的组中确实有一些用户。简短的回答可能是:你不能
当您(或Plone)向ldap请求用户列表时,ldap可能会认为它找到的结果太多,而只是返回一个基本上为空的列表。因此,通常最好更改用户和组控制面板中的设置,并打开“多个用户”和“多个组”。例如,这样可以确保不显示“显示所有用户”按钮
在本文中,我通过使用portal_membership.searchFormMembers(login=char)来解决这个问题,然后使用char迭代a、b等
(顺便说一句,它不会搜索特定组中的成员。)
它真的很难看,所以我希望有一个更好的答案,这样我就可以更新这个工具了。:-) 我不知道plone,但它是基于posix结构的,您可以很容易地做到这一点
import ldap
con = ldap.initialize('ldap://127.0.0.1')
con.simple_bind_s('cn=myuser', 'oh_yeah')
groups = con.search_s('dc=rkf,dc=org',
ldap.SCOPE_SUBTREE,
'objectclass=posixgroup',
['memberuid'])
for a in groups:
print 'Group:', a[0]
print 'Members:', a[-1].get('memberuid')
真奇怪。当我使用LDAPBrowser时,我可以浏览任何组的所有成员。。。