From b8fe562e6d1ac21bc380951dab006b6374afe50e Mon Sep 17 00:00:00 2001 From: tbrehm <t.brehm@ispconfig.org> Date: Fri, 17 Aug 2012 08:48:02 -0400 Subject: [PATCH] - Implemented new range validator for form fields in tform.inc.php - Implemented: FS#1935 - Add minimum allowed seconds Value for DNS zone records --- interface/web/dns/lib/lang/en_dns_soa.lng | 5 ++ interface/web/dns/form/dns_soa.tform.php | 20 ++++++++++ interface/lib/classes/tform.inc.php | 21 ++++++++++ interface/lib/classes/remoting_lib.inc.php | 21 ++++++++++ 4 files changed, 67 insertions(+), 0 deletions(-) diff --git a/interface/lib/classes/remoting_lib.inc.php b/interface/lib/classes/remoting_lib.inc.php index 784b9c4..fcde405 100644 --- a/interface/lib/classes/remoting_lib.inc.php +++ b/interface/lib/classes/remoting_lib.inc.php @@ -552,6 +552,27 @@ } } break; + case 'RANGE': + //* Checks if the value is within the given range or above / below a value + //* Range examples: < 10 = ":10", between 2 and 10 = "2:10", above 5 = "5:". + $range_parts = explode(':',trim($validator['range'])); + $ok = true; + if($range_parts[0] != '' && $field_value < $range_parts[0]) { + $ok = false; + } + if($range_parts[1] != '' && $field_value > $range_parts[1]) { + $ok = false; + } + if($ok != true) { + $errmsg = $validator['errmsg']; + if(isset($this->wordbook[$errmsg])) { + $this->errorMessage .= $this->wordbook[$errmsg]."<br />\r\n"; + } else { + $this->errorMessage .= $errmsg."<br />\r\n"; + } + } + unset($range_parts); + break; case 'CUSTOM': // Calls a custom class to validate this record if($validator['class'] != '' and $validator['function'] != '') { diff --git a/interface/lib/classes/tform.inc.php b/interface/lib/classes/tform.inc.php index c1d1201..b01ea91 100644 --- a/interface/lib/classes/tform.inc.php +++ b/interface/lib/classes/tform.inc.php @@ -932,6 +932,27 @@ } } break; + case 'RANGE': + //* Checks if the value is within the given range or above / below a value + //* Range examples: < 10 = ":10", between 2 and 10 = "2:10", above 5 = "5:". + $range_parts = explode(':',trim($validator['range'])); + $ok = true; + if($range_parts[0] != '' && $field_value < $range_parts[0]) { + $ok = false; + } + if($range_parts[1] != '' && $field_value > $range_parts[1]) { + $ok = false; + } + if($ok != true) { + $errmsg = $validator['errmsg']; + if(isset($this->wordbook[$errmsg])) { + $this->errorMessage .= $this->wordbook[$errmsg]."<br />\r\n"; + } else { + $this->errorMessage .= $errmsg."<br />\r\n"; + } + } + unset($range_parts); + break; case 'CUSTOM': // Calls a custom class to validate this record if($validator['class'] != '' and $validator['function'] != '') { diff --git a/interface/web/dns/form/dns_soa.tform.php b/interface/web/dns/form/dns_soa.tform.php index c102e12..16e9b11 100644 --- a/interface/web/dns/form/dns_soa.tform.php +++ b/interface/web/dns/form/dns_soa.tform.php @@ -135,6 +135,10 @@ 'refresh' => array ( 'datatype' => 'INTEGER', 'formtype' => 'TEXT', + 'validators' => array ( 0 => array ( 'type' => 'RANGE', + 'range' => '60:', + 'errmsg'=> 'refresh_range_error'), + ), 'default' => '7200', 'value' => '', 'width' => '10', @@ -143,6 +147,10 @@ 'retry' => array ( 'datatype' => 'INTEGER', 'formtype' => 'TEXT', + 'validators' => array ( 0 => array ( 'type' => 'RANGE', + 'range' => '60:', + 'errmsg'=> 'retry_range_error'), + ), 'default' => '540', 'value' => '', 'width' => '10', @@ -151,6 +159,10 @@ 'expire' => array ( 'datatype' => 'INTEGER', 'formtype' => 'TEXT', + 'validators' => array ( 0 => array ( 'type' => 'RANGE', + 'range' => '60:', + 'errmsg'=> 'expire_range_error'), + ), 'default' => '604800', 'value' => '', 'width' => '10', @@ -159,6 +171,10 @@ 'minimum' => array ( 'datatype' => 'INTEGER', 'formtype' => 'TEXT', + 'validators' => array ( 0 => array ( 'type' => 'RANGE', + 'range' => '60:', + 'errmsg'=> 'minimum_range_error'), + ), 'default' => '86400', 'value' => '', 'width' => '10', @@ -167,6 +183,10 @@ 'ttl' => array ( 'datatype' => 'INTEGER', 'formtype' => 'TEXT', + 'validators' => array ( 0 => array ( 'type' => 'RANGE', + 'range' => '60:', + 'errmsg'=> 'ttl_range_error'), + ), 'default' => '3600', 'value' => '', 'width' => '10', diff --git a/interface/web/dns/lib/lang/en_dns_soa.lng b/interface/web/dns/lib/lang/en_dns_soa.lng index 95afad4..d526093 100644 --- a/interface/web/dns/lib/lang/en_dns_soa.lng +++ b/interface/web/dns/lib/lang/en_dns_soa.lng @@ -29,4 +29,9 @@ $wb['eg_ns1_domain_tld'] = 'e.g. ns1.domain.tld'; $wb['eg_webmaster_domain_tld'] = 'e.g. webmaster@domain.tld'; $wb['The Domain can not be changed. Please ask your Administrator if you want to change the domain name.'] = 'The Domain can not be changed. Please ask your Administrator if you want to change the domain name.'; +$wb['refresh_range_error'] = 'Min. Refresh time is 60 seconds.'; +$wb['retry_range_error'] = 'Min. Retry time is 60 seconds.'; +$wb['expire_range_error'] = 'Min. Expire time is 60 seconds.'; +$wb['minimum_range_error'] = 'Min. Minimum time is 60 seconds.'; +$wb['ttl_range_error'] = 'Min. TTL time is 60 seconds.'; ?> -- Gitblit v1.9.1