因为没发现群组清空用户的功能,最开始写的函数是三个参数:群组标识、添加用户、删除用户。觉得接口不好用,后来发现组合下即可,代码如下:
#清除,在将用户全部插入
def update_users(self, groupname, users=[]):
"""
:param groupname: 组名,字符串类型如"groupname";
:param users:用户列表,如addusers为['user1','user2']
:return:
注函数中定义的参数modlist可以接受多个参数列表,其中:
MOD_ADD: 如果属性存在,这个属性可以有多个值,那么新值加进去,旧值保留
MOD_DELETE :如果属性的值存在,值将被删除
MOD_REPLACE :这个属性所有的旧值将会被删除,这个值被加进去
举例:
[( ldap.MOD_ADD, 'memberUid', 'user1' ),
( ldap.MOD_DELETE, 'memberUid', 'user3')]
"""
modlist = []
if len(users) == 0:
modlist.append((ldap.MOD_REPLACE, 'memberUid', ""))
for index in range(len(users)):
if index == 0:
modlist.append((ldap.MOD_REPLACE, 'memberUid', str(users[index])))
else:
modlist.append((ldap.MOD_ADD, 'memberUid', str(users[index])))
try:
obj