summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorMartin Basti <mbasti@redhat.com>2014-03-12 16:34:22 +0100
committerMartin Kosek <mkosek@redhat.com>2014-06-03 15:55:32 +0200
commit47f473d0cac2e28980c7ecffdbfd480441eab277 (patch)
treef8df1fa5fe9cb24a7ff572e2e73cd9294bb19491
parent93ad23912e3bb73fc3e54d2b6734748a55fc933a (diff)
downloadfreeipa-47f473d0cac2e28980c7ecffdbfd480441eab277.tar.gz
freeipa-47f473d0cac2e28980c7ecffdbfd480441eab277.tar.xz
freeipa-47f473d0cac2e28980c7ecffdbfd480441eab277.zip
Allows to sort non text entries
Part of ticket: IPA should allow internationalized domain names https://fedorahosted.org/freeipa/ticket/3169 Reviewed-By: Jan Cholasta <jcholast@redhat.com>
-rw-r--r--ipalib/parameters.py5
-rw-r--r--ipalib/plugins/baseldap.py3
2 files changed, 7 insertions, 1 deletions
diff --git a/ipalib/parameters.py b/ipalib/parameters.py
index 33ae182b5..728faee53 100644
--- a/ipalib/parameters.py
+++ b/ipalib/parameters.py
@@ -911,6 +911,9 @@ class Param(ReadOnly):
pass
return self.default
+ def sort_key(self, value):
+ return value
+
json_exclude_attrs = (
'alwaysask', 'autofill', 'cli_name', 'cli_short_name', 'csv',
'sortorder', 'falsehoods', 'truths', 'version',
@@ -1457,6 +1460,8 @@ class Str(Data):
length=self.length,
)
+ def sort_key(self, value):
+ return value.lower()
class IA5Str(Str):
"""
diff --git a/ipalib/plugins/baseldap.py b/ipalib/plugins/baseldap.py
index cd4910bc1..86df56274 100644
--- a/ipalib/plugins/baseldap.py
+++ b/ipalib/plugins/baseldap.py
@@ -1936,7 +1936,8 @@ class LDAPSearch(BaseLDAPCommand, crud.Search):
if self.sort_result_entries:
if self.obj.primary_key:
def sort_key(x):
- return x[self.obj.primary_key.name][0].lower()
+ return self.obj.primary_key.sort_key(
+ x[self.obj.primary_key.name][0])
entries.sort(key=sort_key)
if not options.get('raw', False):