summaryrefslogtreecommitdiffstats
path: root/ipaserver/plugins/b_ldap.py
diff options
context:
space:
mode:
authorJason Gerard DeRose <jderose@redhat.com>2009-01-21 12:42:40 -0700
committerJason Gerard DeRose <jderose@redhat.com>2009-01-21 12:42:40 -0700
commit5616af19b137e22013b040f0480bfef37e7ad23f (patch)
tree149f83049cc189755ade4d708e4a0eeba8a8165d /ipaserver/plugins/b_ldap.py
parentf22f3eabb20e6c46f78ba5c40d75bb52b7872060 (diff)
parentaba16941ee6826b0d65d11e73efb8a62f4a35da1 (diff)
downloadfreeipa.git-5616af19b137e22013b040f0480bfef37e7ad23f.tar.gz
freeipa.git-5616af19b137e22013b040f0480bfef37e7ad23f.tar.xz
freeipa.git-5616af19b137e22013b040f0480bfef37e7ad23f.zip
Merge branch 'master' of git://git.engineering.redhat.com/users/rcritten/freeipa2
Diffstat (limited to 'ipaserver/plugins/b_ldap.py')
-rw-r--r--ipaserver/plugins/b_ldap.py16
1 files changed, 11 insertions, 5 deletions
diff --git a/ipaserver/plugins/b_ldap.py b/ipaserver/plugins/b_ldap.py
index 2d6ad625..9e06ce51 100644
--- a/ipaserver/plugins/b_ldap.py
+++ b/ipaserver/plugins/b_ldap.py
@@ -190,23 +190,23 @@ class ldap(CrudBackend):
def modify_password(self, dn, **kw):
return servercore.modify_password(dn, kw.get('oldpass'), kw.get('newpass'))
- def add_member_to_group(self, memberdn, groupdn):
+ def add_member_to_group(self, memberdn, groupdn, memberattr='member'):
"""
Add a new member to a group.
:param memberdn: the DN of the member to add
:param groupdn: the DN of the group to add a member to
"""
- return servercore.add_member_to_group(memberdn, groupdn)
+ return servercore.add_member_to_group(memberdn, groupdn, memberattr)
- def remove_member_from_group(self, memberdn, groupdn):
+ def remove_member_from_group(self, memberdn, groupdn, memberattr='member'):
"""
Remove a new member from a group.
:param memberdn: the DN of the member to remove
:param groupdn: the DN of the group to remove a member from
"""
- return servercore.remove_member_from_group(memberdn, groupdn)
+ return servercore.remove_member_from_group(memberdn, groupdn, memberattr)
# The CRUD operations
@@ -227,6 +227,7 @@ class ldap(CrudBackend):
else:
assert type(value) in (str, unicode, bool, int, float)
yield (key, value)
+ yield (key, value)
def create(self, **kw):
if servercore.entry_exists(kw['dn']):
@@ -251,13 +252,18 @@ class ldap(CrudBackend):
def update(self, dn, **kw):
result = self.retrieve(dn, ["*"])
+ start_keys = kw.keys()
entry = ipaldap.Entry((dn, servercore.convert_scalar_values(result)))
kw = dict(self.strip_none(kw))
for k in kw:
entry.setValues(k, kw[k])
- servercore.update_entry(entry.toDict())
+ remove_keys = list(set(start_keys) - set(kw.keys()))
+ for k in remove_keys:
+ entry.delAttr(k)
+
+ servercore.update_entry(entry.toDict(), remove_keys)
return self.retrieve(dn)