diff options
author | Pavel Zuna <pzuna@redhat.com> | 2010-02-23 15:58:03 +0100 |
---|---|---|
committer | Rob Crittenden <rcritten@redhat.com> | 2010-02-24 14:56:34 -0500 |
commit | aa2c124e7d8b089285c41e6605ee7f37dad393c1 (patch) | |
tree | 4ec81370dfdc2c3e4df488f3ce5b968338f76e68 /ipalib | |
parent | 8c46e09735d076e9689d04936cdeeca6dfd770d3 (diff) | |
download | freeipa-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.py | 20 |
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( |