mirror of
https://github.com/samba-team/samba.git
synced 2025-07-25 00:59:11 +03:00
samdb: Accept a list of member variables rather than a comma-separated string.
This commit is contained in:
@ -206,7 +206,9 @@ Example2 shows how to add a single user account, User2, to the supergroup AD gro
|
||||
try:
|
||||
samdb = SamDB(url=H, session_info=system_session(),
|
||||
credentials=creds, lp=lp)
|
||||
samdb.add_remove_group_members(groupname, listofmembers, add_members_operation=True)
|
||||
groupmembers = listofmembers.split(',')
|
||||
samdb.add_remove_group_members(groupname, groupmembers,
|
||||
add_members_operation=True)
|
||||
except Exception, e:
|
||||
# FIXME: catch more specific exception
|
||||
raise CommandError('Failed to add members "%s" to group "%s"' % (
|
||||
@ -256,7 +258,8 @@ Example2 shows how to remove a single user account, User2, from the supergroup A
|
||||
try:
|
||||
samdb = SamDB(url=H, session_info=system_session(),
|
||||
credentials=creds, lp=lp)
|
||||
samdb.add_remove_group_members(groupname, listofmembers, add_members_operation=False)
|
||||
samdb.add_remove_group_members(groupname, listofmembers.split(","),
|
||||
add_members_operation=False)
|
||||
except Exception, e:
|
||||
# FIXME: Catch more specific exception
|
||||
raise CommandError('Failed to remove members "%s" from group "%s"' % (listofmembers, groupname), e)
|
||||
|
@ -226,19 +226,18 @@ pwdLastSet: 0
|
||||
else:
|
||||
self.transaction_commit()
|
||||
|
||||
def add_remove_group_members(self, groupname, listofmembers,
|
||||
def add_remove_group_members(self, groupname, members,
|
||||
add_members_operation=True):
|
||||
"""Adds or removes group members
|
||||
|
||||
:param groupname: Name of the target group
|
||||
:param listofmembers: Comma-separated list of group members
|
||||
:param members: list of group members
|
||||
:param add_members_operation: Defines if its an add or remove
|
||||
operation
|
||||
"""
|
||||
|
||||
groupfilter = "(&(sAMAccountName=%s)(objectCategory=%s,%s))" % (
|
||||
ldb.binary_encode(groupname), "CN=Group,CN=Schema,CN=Configuration", self.domain_dn())
|
||||
groupmembers = listofmembers.split(',')
|
||||
|
||||
self.transaction_start()
|
||||
try:
|
||||
@ -255,7 +254,7 @@ dn: %s
|
||||
changetype: modify
|
||||
""" % (str(targetgroup[0].dn))
|
||||
|
||||
for member in groupmembers:
|
||||
for member in members:
|
||||
targetmember = self.search(base=self.domain_dn(), scope=ldb.SCOPE_SUBTREE,
|
||||
expression="(|(sAMAccountName=%s)(CN=%s))" % (
|
||||
ldb.binary_encode(member), ldb.binary_encode(member)), attrs=[])
|
||||
|
Reference in New Issue
Block a user