2016-04-25 11 views
2

私はいくつかのメンバーでグループを追加する必要があります。私はグループpython-ldapを使ってグループを追加する

attrs['member'] = 'cn=user1,ou=people,dc=maxcrc,dc=com' 
attrs['member'] = 'cn=user2,ou=people,dc=maxcrc,dc=com' 

import ldap 
import ldap.modlist as modlist 

# Open a connection 
l = ldap.initialize("ldap://localhost:389/") 

# Bind/authenticate with a user with apropriate rights to add objects 
l.simple_bind_s("cn=manager,dc=maxcrc,dc=com","secret") 

# The dn of our new entry/object 
dn="cn=semuaFK,ou=group,dc=maxcrc,dc=com" 

# A dict to help build the "body" of the object 
attrs = {} 
attrs['objectclass'] = ['top','groupofnames'] 
attrs['member'] = 'cn=user1,ou=people,dc=maxcrc,dc=com' 
attrs['member'] = 'cn=user2,ou=people,dc=maxcrc,dc=com' 
attrs['description'] = 'ini group untuk semua dosen dokter' 

# Convert our dict to nice syntax for the add-function using modlist-module 
ldif = modlist.addModlist(attrs) 

# Do the actual synchronous add-operation to the ldapserver 
l.add_s(dn,ldif) 

# Its nice to the server to disconnect and free resources when done 
l.unbind_s() 

追加部材以下のコードを使用するが、結果はただ一つのメンバーを有する基です。グループにはuser2だけが追加されます。グループを作成する方法、メンバーを複数追加する

答えて

0

は、(objectClassのように)複数の値を持つ属性です。あなたのコードを見て、問題は、member属性の値を2行目で上書きしているようです。 THX、それは非常にうまく機能

attrs['member'] = [ 'cn=users1,ou=people,dc=maxcrc,dc=com', 'cn=users2,ou=people,dc=maxcrc,dc=com' ]` 

または

attrs['member'] = [ 'cn=users1,ou=people,dc=maxcrc,dc=com' ] 
attrs['member'] += 'cn=users2,ou=people,dc=maxcrc,dc=com' 
+0

:コードは次のようなものでなければなりません –

関連する問題