summaryrefslogtreecommitdiffstats
path: root/ipalib
diff options
context:
space:
mode:
authorPavel Zuna <pzuna@redhat.com>2010-02-23 15:58:03 +0100
committerRob Crittenden <rcritten@redhat.com>2010-02-24 14:56:34 -0500
commitaa2c124e7d8b089285c41e6605ee7f37dad393c1 (patch)
tree4ec81370dfdc2c3e4df488f3ce5b968338f76e68 /ipalib
parent8c46e09735d076e9689d04936cdeeca6dfd770d3 (diff)
downloadfreeipa-aa2c124e7d8b089285c41e6605ee7f37dad393c1.tar.gz
freeipa-aa2c124e7d8b089285c41e6605ee7f37dad393c1.tar.xz
freeipa-aa2c124e7d8b089285c41e6605ee7f37dad393c1.zip
Make the --all option work in Add/Remove Member commands.
Diffstat (limited to 'ipalib')
-rw-r--r--ipalib/plugins/baseldap.py20
1 files changed, 18 insertions, 2 deletions
diff --git a/ipalib/plugins/baseldap.py b/ipalib/plugins/baseldap.py
index e03ac2e5b..bd7cb18a0 100644
--- a/ipalib/plugins/baseldap.py
+++ b/ipalib/plugins/baseldap.py
@@ -511,11 +511,19 @@ class LDAPAddMember(LDAPModMember):
else:
completed += 1
- (dn, entry_attrs) = ldap.get_entry(dn, member_dns.keys()+self.obj.default_attributes)
+ if options.get('all', False):
+ attrs_list = ['*']
+ else:
+ attrs_list = list(
+ set(self.obj.default_attributes + member_dns.keys())
+ )
+
+ (dn, entry_attrs) = ldap.get_entry(dn, attrs_list)
(completed, dn) = self.post_callback(
ldap, completed, failed, dn, entry_attrs, *keys, **options
)
+ entry_attrs['dn'] = dn
self.obj.convert_attribute_members(entry_attrs, *keys, **options)
return dict(
@@ -575,11 +583,19 @@ class LDAPRemoveMember(LDAPModMember):
else:
completed += 1
- (dn, entry_attrs) = ldap.get_entry(dn, member_dns.keys())
+ if options.get('all', False):
+ attrs_list = ['*']
+ else:
+ attrs_list = list(
+ set(self.obj.default_attributes + member_dns.keys())
+ )
+
+ (dn, entry_attrs) = ldap.get_entry(dn, attrs_list)
(completed, dn) = self.post_callback(
ldap, completed, failed, dn, entry_attrs, *keys, **options
)
+ entry_attrs['dn'] = dn
self.obj.convert_attribute_members(entry_attrs, *keys, **options)
return dict(