summaryrefslogtreecommitdiffstats
path: root/ipalib/plugins/netgroup.py
diff options
context:
space:
mode:
authorOndrej Hamada <ohamada@redhat.com>2012-03-27 15:15:20 +0200
committerMartin Kosek <mkosek@redhat.com>2012-03-28 16:23:37 +0200
commit5cfee2338d548035151926c5c235f3426fca0499 (patch)
treebfaf5b0b796d398386e971c1ba272bb748e91145 /ipalib/plugins/netgroup.py
parent159e848d85779e8fb3a9b2ed84490423014bf609 (diff)
downloadfreeipa.git-5cfee2338d548035151926c5c235f3426fca0499.tar.gz
freeipa.git-5cfee2338d548035151926c5c235f3426fca0499.tar.xz
freeipa.git-5cfee2338d548035151926c5c235f3426fca0499.zip
Netgroup nisdomain and hosts validation
nisdomain validation: Added pattern to the 'nisdomain' parameter to validate the specified nisdomain name. According to most common use cases the same pattern as for netgroup should fit. Unit-tests added. https://fedorahosted.org/freeipa/ticket/2448 'add_external_pre_callback' function was created to allow validation of all external members. Validation is based on usage of objects primary key parameter. The 'add_external_pre_callback' fucntion has to be called directly from in the 'pre_callback' function. This change affects netgroup, hbacrule and sudorule commands. For hostname, the validator allows non-fqdn and underscore characters. validate_hostname function in ipalib.util was modified and contains additional option that allows hostname to contain underscore characters. This option is disabled by default. Unit-tests added. https://fedorahosted.org/freeipa/ticket/2447
Diffstat (limited to 'ipalib/plugins/netgroup.py')
-rw-r--r--ipalib/plugins/netgroup.py9
1 files changed, 9 insertions, 0 deletions
diff --git a/ipalib/plugins/netgroup.py b/ipalib/plugins/netgroup.py
index 2ba15464..06372a59 100644
--- a/ipalib/plugins/netgroup.py
+++ b/ipalib/plugins/netgroup.py
@@ -53,6 +53,11 @@ EXAMPLES:
NETGROUP_PATTERN='^[a-zA-Z0-9_.][a-zA-Z0-9_.-]+$'
NETGROUP_PATTERN_ERRMSG='may only include letters, numbers, _, -, and .'
+# according to most common use cases the netgroup pattern should fit
+# also the nisdomain pattern
+NISDOMAIN_PATTERN=NETGROUP_PATTERN
+NISDOMAIN_PATTERN_ERRMSG=NETGROUP_PATTERN_ERRMSG
+
output_params = (
Str('memberuser_user?',
label='Member User',
@@ -118,6 +123,8 @@ class netgroup(LDAPObject):
doc=_('Netgroup description'),
),
Str('nisdomainname?',
+ pattern=NISDOMAIN_PATTERN,
+ pattern_errmsg=NISDOMAIN_PATTERN_ERRMSG,
cli_name='nisdomain',
label=_('NIS domain name'),
),
@@ -255,6 +262,8 @@ class netgroup_add_member(LDAPAddMember):
member_attributes = ['memberuser', 'memberhost', 'member']
has_output_params = LDAPAddMember.has_output_params + output_params
+ def pre_callback(self, ldap, dn, found, not_found, *keys, **options):
+ return add_external_pre_callback('host', ldap, dn, keys, options)
def post_callback(self, ldap, completed, failed, dn, entry_attrs, *keys, **options):
return add_external_post_callback('memberhost', 'host', 'externalhost', ldap, completed, failed, dn, entry_attrs, keys, options)