mirror of
https://salsa.debian.org/freeipa-team/freeipa.git
synced 2025-02-25 18:55:28 -06:00
Add --zonemgr/--admin-mail validator
Do at least a basic validation of DNS zone manager mail address. Do not require '@' to be in the mail address as the SOA record stores this value without it and people may be used to configure it that way. '@' is always removed by the installer/dns plugin before the DNS zone is created. https://fedorahosted.org/freeipa/ticket/1966
This commit is contained in:
@@ -26,6 +26,7 @@ from ipalib import Command
|
||||
from ipalib import Flag, Int, List, Str, StrEnum
|
||||
from ipalib.plugins.baseldap import *
|
||||
from ipalib import _, ngettext
|
||||
from ipalib.util import validate_zonemgr
|
||||
from ipapython import dnsclient
|
||||
from ipapython.ipautil import valid_ip
|
||||
from ldap import explode_dn
|
||||
@@ -136,6 +137,13 @@ _record_attributes = [str('%srecord' % t.lower()) for t in _record_types]
|
||||
# supported DNS classes, IN = internet, rest is almost never used
|
||||
_record_classes = (u'IN', u'CS', u'CH', u'HS')
|
||||
|
||||
def _rname_validator(ugettext, zonemgr):
|
||||
try:
|
||||
validate_zonemgr(zonemgr)
|
||||
except ValueError, e:
|
||||
return unicode(e)
|
||||
return None
|
||||
|
||||
# normalizer for admin email
|
||||
def _rname_normalizer(value):
|
||||
value = value.replace('@', '.')
|
||||
@@ -323,6 +331,7 @@ class dnszone(LDAPObject):
|
||||
doc=_('Authoritative nameserver domain name'),
|
||||
),
|
||||
Str('idnssoarname',
|
||||
_rname_validator,
|
||||
cli_name='admin_email',
|
||||
label=_('Administrator e-mail address'),
|
||||
doc=_('Administrator e-mail address'),
|
||||
|
||||
Reference in New Issue
Block a user