diff options
author | Rob Crittenden <rcritten@redhat.com> | 2008-12-10 16:45:07 -0500 |
---|---|---|
committer | Rob Crittenden <rcritten@redhat.com> | 2008-12-10 16:45:07 -0500 |
commit | 46bd3974af5ce312cb1dd3ca12e6184d78dc470e (patch) | |
tree | d5fb4d400c8dc5996e8e3256764d0cb6d2db7a0d /ipalib | |
parent | af7b5645af001352aff626f46ec39031b2e9b10a (diff) | |
download | freeipa-46bd3974af5ce312cb1dd3ca12e6184d78dc470e.tar.gz freeipa-46bd3974af5ce312cb1dd3ca12e6184d78dc470e.tar.xz freeipa-46bd3974af5ce312cb1dd3ca12e6184d78dc470e.zip |
Don't pass along the kw dictionary we were passed by XML-RPC.
We generally want to just search indexed attributes. We get this list
of attributes from the configuration, use it.
Diffstat (limited to 'ipalib')
-rw-r--r-- | ipalib/plugins/f_group.py | 7 | ||||
-rw-r--r-- | ipalib/plugins/f_host.py | 11 | ||||
-rw-r--r-- | ipalib/plugins/f_hostgroup.py | 7 | ||||
-rw-r--r-- | ipalib/plugins/f_service.py | 9 | ||||
-rw-r--r-- | ipalib/plugins/f_user.py | 11 |
5 files changed, 25 insertions, 20 deletions
diff --git a/ipalib/plugins/f_group.py b/ipalib/plugins/f_group.py index 6fe95006..803e5d00 100644 --- a/ipalib/plugins/f_group.py +++ b/ipalib/plugins/f_group.py @@ -184,13 +184,14 @@ class group_find(crud.Find): search_fields_conf_str = config.get('ipagroupsearchfields') search_fields = search_fields_conf_str.split(",") + search_kw = {} for s in search_fields: - kw[s] = term + search_kw[s] = term object_type = ldap.get_object_type("cn") if object_type and not kw.get('objectclass'): - kw['objectclass'] = object_type - return ldap.search(**kw) + search_kw['objectclass'] = object_type + return ldap.search(**search_kw) def output_for_cli(self, textui, result, uid, **options): counter = result[0] diff --git a/ipalib/plugins/f_host.py b/ipalib/plugins/f_host.py index 020231e5..7903ff90 100644 --- a/ipalib/plugins/f_host.py +++ b/ipalib/plugins/f_host.py @@ -229,16 +229,17 @@ class host_find(crud.Find): #search_fields = search_fields_conf_str.split(",") search_fields = ['cn','serverhostname','description','localityname','nshostlocation','nshardwareplatform','nsosversion'] + search_kw = {} for s in search_fields: - kw[s] = term + search_kw[s] = term # Can't use ldap.get_object_type() since cn is also used for group dns - kw['objectclass'] = "ipaHost" + search_kw['objectclass'] = "ipaHost" if kw.get('all', False): - kw['attributes'] = ['*'] + search_kw['attributes'] = ['*'] else: - kw['attributes'] = default_attributes - return ldap.search(**kw) + search_kw['attributes'] = default_attributes + return ldap.search(**search_kw) def output_for_cli(self, textui, result, *args, **options): counter = result[0] hosts = result[1:] diff --git a/ipalib/plugins/f_hostgroup.py b/ipalib/plugins/f_hostgroup.py index bde257f9..3e14b09a 100644 --- a/ipalib/plugins/f_hostgroup.py +++ b/ipalib/plugins/f_hostgroup.py @@ -169,11 +169,12 @@ class hostgroup_find(crud.Find): search_fields_conf_str = config.get('ipagroupsearchfields') search_fields = search_fields_conf_str.split(",") + search_kw = {} for s in search_fields: - kw[s] = term + search_kw[s] = term - kw['objectclass'] = hostgroup_filter - return ldap.search(**kw) + search_kw['objectclass'] = hostgroup_filter + return ldap.search(**search_kw) def output_for_cli(self, textui, result, *args, **options): counter = result[0] diff --git a/ipalib/plugins/f_service.py b/ipalib/plugins/f_service.py index fc0ae65e..a353d52e 100644 --- a/ipalib/plugins/f_service.py +++ b/ipalib/plugins/f_service.py @@ -149,14 +149,15 @@ class service_find(crud.Find): def execute(self, principal, **kw): ldap = self.api.Backend.ldap - kw['filter'] = "&(objectclass=krbPrincipalAux)(!(objectClass=posixAccount))(!(|(krbprincipalname=kadmin/*)(krbprincipalname=K/M@*)(krbprincipalname=krbtgt/*)))" - kw['krbprincipalname'] = principal + search_kw = {} + search_kw['filter'] = "&(objectclass=krbPrincipalAux)(!(objectClass=posixAccount))(!(|(krbprincipalname=kadmin/*)(krbprincipalname=K/M@*)(krbprincipalname=krbtgt/*)))" + search_kw['krbprincipalname'] = principal object_type = ldap.get_object_type("krbprincipalname") if object_type and not kw.get('objectclass'): - kw['objectclass'] = object_type + search_kw['objectclass'] = object_type - return ldap.search(**kw) + return ldap.search(**search_kw) def output_for_cli(self, textui, result, *args, **options): counter = result[0] diff --git a/ipalib/plugins/f_user.py b/ipalib/plugins/f_user.py index c8b819dd..8cd3a592 100644 --- a/ipalib/plugins/f_user.py +++ b/ipalib/plugins/f_user.py @@ -282,17 +282,18 @@ class user_find(crud.Find): search_fields_conf_str = config.get('ipausersearchfields') search_fields = search_fields_conf_str.split(",") + search_kw = {} for s in search_fields: - kw[s] = term + search_kw[s] = term object_type = ldap.get_object_type("uid") if object_type and not kw.get('objectclass'): - kw['objectclass'] = object_type + search_kw['objectclass'] = object_type if kw.get('all', False): - kw['attributes'] = ['*'] + search_kw['attributes'] = ['*'] else: - kw['attributes'] = default_attributes - return ldap.search(**kw) + search_kw['attributes'] = default_attributes + return ldap.search(**search_kw) def output_for_cli(self, textui, result, uid, **options): counter = result[0] |