summaryrefslogtreecommitdiffstats
path: root/ipalib/plugins/baseldap.py
diff options
context:
space:
mode:
authorPetr Viktorin <pviktori@redhat.com>2012-04-30 07:29:08 -0400
committerMartin Kosek <mkosek@redhat.com>2012-05-11 08:14:20 +0200
commit1565ce3a8c39326f814c9781b3df24c42402c1b5 (patch)
tree010f750b8f28cdc2cf53c465407cb302e8212880 /ipalib/plugins/baseldap.py
parentf19218f7d87f5847d51f79b5d2850f90b0ae8407 (diff)
downloadfreeipa-1565ce3a8c39326f814c9781b3df24c42402c1b5.tar.gz
freeipa-1565ce3a8c39326f814c9781b3df24c42402c1b5.tar.xz
freeipa-1565ce3a8c39326f814c9781b3df24c42402c1b5.zip
Validate externalhost (when added by --addattr/--setattr)
Change the externalhost attribute of hbacrule, netgroup and sudorule into a full-fledged Parameter, and attach a validator to it. The validator is relaxed to allow underscores, so that some hosts with nonstandard names can be added. Tests included. https://fedorahosted.org/freeipa/ticket/2649
Diffstat (limited to 'ipalib/plugins/baseldap.py')
-rw-r--r--ipalib/plugins/baseldap.py17
1 files changed, 14 insertions, 3 deletions
diff --git a/ipalib/plugins/baseldap.py b/ipalib/plugins/baseldap.py
index 85a817231..895ec682a 100644
--- a/ipalib/plugins/baseldap.py
+++ b/ipalib/plugins/baseldap.py
@@ -157,9 +157,6 @@ global_output_params = (
Str('memberofindirect_hbacrule?',
label='Indirect Member of HBAC rule',
),
- Str('externalhost?',
- label=_('External host'),
- ),
Str('sourcehost',
label=_('Failed source hosts/hostgroups'),
),
@@ -313,6 +310,20 @@ def wait_for_value(ldap, dn, attr, value):
return entry_attrs
+
+def validate_externalhost(ugettext, hostname):
+ try:
+ validate_hostname(hostname, check_fqdn=False, allow_underscore=True)
+ except ValueError, e:
+ return unicode(e)
+
+
+external_host_param = Str('externalhost*', validate_externalhost,
+ label=_('External host'),
+ flags=['no_create', 'no_update', 'no_search'],
+)
+
+
def add_external_pre_callback(membertype, ldap, dn, keys, options):
"""
Pre callback to validate external members.