summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorGabe <redhatrises@gmail.com>2015-09-21 06:55:17 -0600
committerJan Cholasta <jcholast@redhat.com>2015-09-22 08:00:16 +0200
commit65e958fda4aee2e08cd1f7043369710b839476c3 (patch)
tree5015577bfbe5a14033bb84559ec92cd63e3c0e74
parenta94f3e5be88aec378e62f8696ca928635e0569a5 (diff)
downloadfreeipa-65e958fda4aee2e08cd1f7043369710b839476c3.tar.gz
freeipa-65e958fda4aee2e08cd1f7043369710b839476c3.tar.xz
freeipa-65e958fda4aee2e08cd1f7043369710b839476c3.zip
Standardize minvalue for ipasearchrecordlimit and ipasesarchsizelimit for unlimited minvalue
https://fedorahosted.org/freeipa/ticket/4023 Reviewed-By: Jan Cholasta <jcholast@redhat.com>
-rw-r--r--install/ui/test/data/ipa_init_commands.json6
-rw-r--r--install/ui/test/data/ipa_init_objects.json6
-rw-r--r--install/ui/test/data/json_metadata.json4
-rw-r--r--ipalib/plugins/baseldap.py4
-rw-r--r--ipalib/plugins/config.py21
-rw-r--r--ipaserver/plugins/ldap2.py4
6 files changed, 25 insertions, 20 deletions
diff --git a/install/ui/test/data/ipa_init_commands.json b/install/ui/test/data/ipa_init_commands.json
index 743f508e2..c7f717c35 100644
--- a/install/ui/test/data/ipa_init_commands.json
+++ b/install/ui/test/data/ipa_init_commands.json
@@ -2446,7 +2446,7 @@
"attribute": true,
"class": "Int",
"deprecated_cli_aliases": [],
- "doc": "Maximum amount of time (seconds) for a search (> 0, or -1 for unlimited)",
+ "doc": "Maximum amount of time (seconds) for a search (-1 or 0 is unlimited)",
"flags": [
"nonempty"
],
@@ -2460,7 +2460,7 @@
"attribute": true,
"class": "Int",
"deprecated_cli_aliases": [],
- "doc": "Maximum number of records to search (-1 is unlimited)",
+ "doc": "Maximum number of records to search (-1 or 0 is unlimited)",
"flags": [
"nonempty"
],
@@ -24018,4 +24018,4 @@
"methods": {},
"objects": {}
}
-} \ No newline at end of file
+}
diff --git a/install/ui/test/data/ipa_init_objects.json b/install/ui/test/data/ipa_init_objects.json
index c8c836926..ca98a1a22 100644
--- a/install/ui/test/data/ipa_init_objects.json
+++ b/install/ui/test/data/ipa_init_objects.json
@@ -498,7 +498,7 @@
{
"class": "Int",
"deprecated_cli_aliases": [],
- "doc": "Maximum amount of time (seconds) for a search (> 0, or -1 for unlimited)",
+ "doc": "Maximum amount of time (seconds) for a search (-1 or 0 is unlimited)",
"flags": [],
"label": "Search time limit",
"maxvalue": 2147483647,
@@ -510,7 +510,7 @@
{
"class": "Int",
"deprecated_cli_aliases": [],
- "doc": "Maximum number of records to search (-1 is unlimited)",
+ "doc": "Maximum number of records to search (-1 or 0 is unlimited)",
"flags": [],
"label": "Search size limit",
"maxvalue": 2147483647,
@@ -9158,4 +9158,4 @@
}
}
}
-} \ No newline at end of file
+}
diff --git a/install/ui/test/data/json_metadata.json b/install/ui/test/data/json_metadata.json
index a9e66230f..5365336fe 100644
--- a/install/ui/test/data/json_metadata.json
+++ b/install/ui/test/data/json_metadata.json
@@ -2596,7 +2596,7 @@
"cli_name": "searchtimelimit",
"cli_short_name": null,
"default": null,
- "doc": "Max. amount of time (sec.) for a search (> 0, or -1 for unlimited)",
+ "doc": "Max. amount of time (sec.) for a search (-1 or 0 is unlimited)",
"exclude": null,
"flags": [],
"hint": null,
@@ -2619,7 +2619,7 @@
"cli_name": "searchrecordslimit",
"cli_short_name": null,
"default": null,
- "doc": "Max. number of records to search (-1 is unlimited)",
+ "doc": "Max. number of records to search (-1 or 0 is unlimited)",
"exclude": null,
"flags": [],
"hint": null,
diff --git a/ipalib/plugins/baseldap.py b/ipalib/plugins/baseldap.py
index 46809f004..847db9c21 100644
--- a/ipalib/plugins/baseldap.py
+++ b/ipalib/plugins/baseldap.py
@@ -1927,14 +1927,14 @@ class LDAPSearch(BaseLDAPCommand, crud.Search):
takes_options = (
Int('timelimit?',
label=_('Time Limit'),
- doc=_('Time limit of search in seconds'),
+ doc=_('Time limit of search in seconds (0 is unlimited)'),
flags=['no_display'],
minvalue=0,
autofill=False,
),
Int('sizelimit?',
label=_('Size Limit'),
- doc=_('Maximum number of entries returned'),
+ doc=_('Maximum number of entries returned (0 is unlimited)'),
flags=['no_display'],
minvalue=0,
autofill=False,
diff --git a/ipalib/plugins/config.py b/ipalib/plugins/config.py
index f9e99a6e7..86b7ca863 100644
--- a/ipalib/plugins/config.py
+++ b/ipalib/plugins/config.py
@@ -78,11 +78,6 @@ EXAMPLES:
register = Registry()
-def validate_searchtimelimit(ugettext, limit):
- if limit == 0:
- raise ValidationError(name='ipasearchtimelimit', error=_('searchtimelimit must be -1 or > 1.'))
- return None
-
@register()
class config(LDAPObject):
"""
@@ -150,16 +145,16 @@ class config(LDAPObject):
label=_('Default e-mail domain'),
doc=_('Default e-mail domain'),
),
- Int('ipasearchtimelimit', validate_searchtimelimit,
+ Int('ipasearchtimelimit',
cli_name='searchtimelimit',
label=_('Search time limit'),
- doc=_('Maximum amount of time (seconds) for a search (> 0, or -1 for unlimited)'),
+ doc=_('Maximum amount of time (seconds) for a search (-1 or 0 is unlimited)'),
minvalue=-1,
),
Int('ipasearchrecordslimit',
cli_name='searchrecordslimit',
label=_('Search size limit'),
- doc=_('Maximum number of records to search (-1 is unlimited)'),
+ doc=_('Maximum number of records to search (-1 or 0 is unlimited)'),
minvalue=-1,
),
IA5Str('ipausersearchfields',
@@ -268,6 +263,16 @@ class config_mod(LDAPUpdate):
name=k, error=_('attribute "%s" not allowed') % a
)
+ # Set ipasearchrecordslimit to -1 if 0 is used
+ if 'ipasearchrecordslimit' in entry_attrs:
+ if entry_attrs['ipasearchrecordslimit'] is 0:
+ entry_attrs['ipasearchrecordslimit'] = -1
+
+ # Set ipasearchtimelimit to -1 if 0 is used
+ if 'ipasearchtimelimit' in entry_attrs:
+ if entry_attrs['ipasearchtimelimit'] is 0:
+ entry_attrs['ipasearchtimelimit'] = -1
+
for (attr, obj) in (('ipauserobjectclasses', 'user'),
('ipagroupobjectclasses', 'group')):
if attr in entry_attrs:
diff --git a/ipaserver/plugins/ldap2.py b/ipaserver/plugins/ldap2.py
index abeb522f7..ca11efd5e 100644
--- a/ipaserver/plugins/ldap2.py
+++ b/ipaserver/plugins/ldap2.py
@@ -183,8 +183,8 @@ class ldap2(CrudBackend, LDAPClient):
"""Get configured global limits, caching them for more calls"""
if not _lims:
config = self.get_ipa_config()
- _lims['time'] = config.get('ipasearchtimelimit', [None])[0]
- _lims['size'] = config.get('ipasearchrecordslimit', [None])[0]
+ _lims['time'] = int(config.get('ipasearchtimelimit', [None])[0])
+ _lims['size'] = int(config.get('ipasearchrecordslimit', [None])[0])
return _lims
_lims = {}