From aa2c124e7d8b089285c41e6605ee7f37dad393c1 Mon Sep 17 00:00:00 2001 From: Pavel Zuna Date: Tue, 23 Feb 2010 15:58:03 +0100 Subject: Make the --all option work in Add/Remove Member commands. --- ipalib/plugins/baseldap.py | 20 ++++++++++++++++++-- 1 file changed, 18 insertions(+), 2 deletions(-) (limited to 'ipalib') diff --git a/ipalib/plugins/baseldap.py b/ipalib/plugins/baseldap.py index e03ac2e5..bd7cb18a 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( -- cgit