summaryrefslogtreecommitdiffstats
path: root/ipaserver/plugins/baseldap.py
diff options
context:
space:
mode:
authorMartin Basti <mbasti@redhat.com>2016-05-13 16:19:51 +0200
committerMartin Basti <mbasti@redhat.com>2016-06-03 15:58:21 +0200
commit121e34b90e890285c480a0c89e833d1369d61401 (patch)
tree759ed15a0b4d03d36f4ca9d4783556101f0ad0d7 /ipaserver/plugins/baseldap.py
parent7c3bcafef094d77df698aa0eba8b02e8892ce1c2 (diff)
downloadfreeipa-121e34b90e890285c480a0c89e833d1369d61401.tar.gz
freeipa-121e34b90e890285c480a0c89e833d1369d61401.tar.xz
freeipa-121e34b90e890285c480a0c89e833d1369d61401.zip
Allow to use non-Str attributes as keys for members
Locations use DNSNameParam as pkey_value, but implementation of searches for members was able to use only Str param. This commit allows to use other param classes for search. Required for: https://fedorahosted.org/freeipa/ticket/2008 Reviewed-By: Petr Spacek <pspacek@redhat.com> Reviewed-By: Jan Cholasta <jcholast@redhat.com>
Diffstat (limited to 'ipaserver/plugins/baseldap.py')
-rw-r--r--ipaserver/plugins/baseldap.py14
1 files changed, 8 insertions, 6 deletions
diff --git a/ipaserver/plugins/baseldap.py b/ipaserver/plugins/baseldap.py
index bbd8ba146..62b726da1 100644
--- a/ipaserver/plugins/baseldap.py
+++ b/ipaserver/plugins/baseldap.py
@@ -1890,9 +1890,10 @@ class LDAPSearch(BaseLDAPCommand, crud.Search):
ldap_object=ldap_obj.object_name_plural
)
name = '%s%s' % (relationship[1], to_cli(ldap_obj_name))
- yield Str(
- '%s*' % name, cli_name='%ss' % name, doc=doc,
- label=ldap_obj.object_name
+ yield ldap_obj.primary_key.clone_rename(
+ '%s' % name, cli_name='%ss' % name, doc=doc,
+ label=ldap_obj.object_name, multivalue=True, query=True,
+ required=False, primary_key=False
)
doc = self.member_param_excl_doc % dict(
searched_object=self.obj.object_name_plural,
@@ -1900,9 +1901,10 @@ class LDAPSearch(BaseLDAPCommand, crud.Search):
ldap_object=ldap_obj.object_name_plural
)
name = '%s%s' % (relationship[2], to_cli(ldap_obj_name))
- yield Str(
- '%s*' % name, cli_name='%ss' % name, doc=doc,
- label=ldap_obj.object_name
+ yield ldap_obj.primary_key.clone_rename(
+ '%s' % name, cli_name='%ss' % name, doc=doc,
+ label=ldap_obj.object_name, multivalue=True, query=True,
+ required=False, primary_key=False
)
def get_options(self):