diff options
Diffstat (limited to 'ipalib/plugins')
-rw-r--r-- | ipalib/plugins/baseldap.py | 12 | ||||
-rw-r--r-- | ipalib/plugins/host.py | 2 | ||||
-rw-r--r-- | ipalib/plugins/hostgroup.py | 2 | ||||
-rw-r--r-- | ipalib/plugins/permission.py | 2 | ||||
-rw-r--r-- | ipalib/plugins/pwpolicy.py | 2 | ||||
-rw-r--r-- | ipalib/plugins/service.py | 2 | ||||
-rw-r--r-- | ipalib/plugins/user.py | 2 |
7 files changed, 23 insertions, 1 deletions
diff --git a/ipalib/plugins/baseldap.py b/ipalib/plugins/baseldap.py index 20f23c2e0..88f312998 100644 --- a/ipalib/plugins/baseldap.py +++ b/ipalib/plugins/baseldap.py @@ -1465,6 +1465,13 @@ class LDAPSearch(CallbackInterface, crud.Search): def get_options(self): for option in super(LDAPSearch, self).get_options(): yield option + if self.obj.primary_key and \ + 'no_output' not in self.obj.primary_key.flags: + yield Flag('pkey_only?', + label=_('Primary key only'), + doc=_('Results should contain primary key attribute only ("%s")') \ + % to_cli(self.obj.primary_key.cli_name), + ) for attr in self.member_attributes: for ldap_obj_name in self.obj.attribute_members[attr]: ldap_obj = self.api.Object[ldap_obj_name] @@ -1539,7 +1546,10 @@ class LDAPSearch(CallbackInterface, crud.Search): defattrs = self.obj.search_display_attributes else: defattrs = self.obj.default_attributes - if options.get('all', False): + + if options.get('pkey_only', False): + attrs_list = [self.obj.primary_key.name] + elif options.get('all', False): attrs_list = ['*'] + defattrs else: attrs_list = list( diff --git a/ipalib/plugins/host.py b/ipalib/plugins/host.py index 52907eebe..0f3f91565 100644 --- a/ipalib/plugins/host.py +++ b/ipalib/plugins/host.py @@ -721,6 +721,8 @@ class host_find(LDAPSearch): return (filter.replace('locality', 'l'), base_dn, scope) def post_callback(self, ldap, entries, truncated, *args, **options): + if options.get('pkey_only', False): + return for entry in entries: (dn, entry_attrs) = entry set_certificate_attrs(entry_attrs) diff --git a/ipalib/plugins/hostgroup.py b/ipalib/plugins/hostgroup.py index 4e6dbbdae..28e3ef5dd 100644 --- a/ipalib/plugins/hostgroup.py +++ b/ipalib/plugins/hostgroup.py @@ -178,6 +178,8 @@ class hostgroup_find(LDAPSearch): ) def post_callback(self, ldap, entries, truncated, *args, **options): + if options.get('pkey_only', False): + return for entry in entries: (dn, entry_attrs) = entry self.obj.suppress_netgroup_memberof(dn, entry_attrs) diff --git a/ipalib/plugins/permission.py b/ipalib/plugins/permission.py index 24d57c46d..e51e3b859 100644 --- a/ipalib/plugins/permission.py +++ b/ipalib/plugins/permission.py @@ -352,6 +352,8 @@ class permission_find(LDAPSearch): has_output_params = LDAPSearch.has_output_params + output_params def post_callback(self, ldap, entries, truncated, *args, **options): + if options.get('pkey_only', False): + return for entry in entries: (dn, attrs) = entry try: diff --git a/ipalib/plugins/pwpolicy.py b/ipalib/plugins/pwpolicy.py index f261de562..6c5e6c56b 100644 --- a/ipalib/plugins/pwpolicy.py +++ b/ipalib/plugins/pwpolicy.py @@ -458,6 +458,8 @@ class pwpolicy_find(LDAPSearch): __doc__ = _('Search for group password policies.') def post_callback(self, ldap, entries, truncated, *args, **options): + if options.get('pkey_only', False): + return False for e in entries: # attribute rights are not allowed for pwpolicy_find self.obj.add_cospriority(e[1], e[1]['cn'][0], rights=False) diff --git a/ipalib/plugins/service.py b/ipalib/plugins/service.py index 87d25d6bb..048a6b4f0 100644 --- a/ipalib/plugins/service.py +++ b/ipalib/plugins/service.py @@ -373,6 +373,8 @@ class service_find(LDAPSearch): ) def post_callback(self, ldap, entries, truncated, *args, **options): + if options.get('pkey_only', False): + return for entry in entries: (dn, entry_attrs) = entry self.obj.get_password_attributes(ldap, dn, entry_attrs) diff --git a/ipalib/plugins/user.py b/ipalib/plugins/user.py index 35866d6e9..273c68fb2 100644 --- a/ipalib/plugins/user.py +++ b/ipalib/plugins/user.py @@ -514,6 +514,8 @@ class user_find(LDAPSearch): return (filter, base_dn, scope) def post_callback(self, ldap, entries, truncated, *args, **options): + if options.get('pkey_only', False): + return for entry in entries: (dn, attrs) = entry self.obj._convert_manager(attrs, **options) |