Skip to content

Commit b8fe562

Browse files
committed
- Implemented new range validator for form fields in tform.inc.php
- Implemented: FS#1935 - Add minimum allowed seconds Value for DNS zone records
1 parent a79341a commit b8fe562

File tree

4 files changed

+67
-0
lines changed

4 files changed

+67
-0
lines changed

interface/lib/classes/remoting_lib.inc.php

Lines changed: 21 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -551,6 +551,27 @@ function validateField($field_name, $field_value, $validators) {
551551
}
552552
}
553553
}
554+
break;
555+
case 'RANGE':
556+
//* Checks if the value is within the given range or above / below a value
557+
//* Range examples: < 10 = ":10", between 2 and 10 = "2:10", above 5 = "5:".
558+
$range_parts = explode(':',trim($validator['range']));
559+
$ok = true;
560+
if($range_parts[0] != '' && $field_value < $range_parts[0]) {
561+
$ok = false;
562+
}
563+
if($range_parts[1] != '' && $field_value > $range_parts[1]) {
564+
$ok = false;
565+
}
566+
if($ok != true) {
567+
$errmsg = $validator['errmsg'];
568+
if(isset($this->wordbook[$errmsg])) {
569+
$this->errorMessage .= $this->wordbook[$errmsg]."<br />\r\n";
570+
} else {
571+
$this->errorMessage .= $errmsg."<br />\r\n";
572+
}
573+
}
574+
unset($range_parts);
554575
break;
555576
case 'CUSTOM':
556577
// Calls a custom class to validate this record

interface/lib/classes/tform.inc.php

Lines changed: 21 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -931,6 +931,27 @@ function validateField($field_name, $field_value, $validators) {
931931
}
932932
}
933933
}
934+
break;
935+
case 'RANGE':
936+
//* Checks if the value is within the given range or above / below a value
937+
//* Range examples: < 10 = ":10", between 2 and 10 = "2:10", above 5 = "5:".
938+
$range_parts = explode(':',trim($validator['range']));
939+
$ok = true;
940+
if($range_parts[0] != '' && $field_value < $range_parts[0]) {
941+
$ok = false;
942+
}
943+
if($range_parts[1] != '' && $field_value > $range_parts[1]) {
944+
$ok = false;
945+
}
946+
if($ok != true) {
947+
$errmsg = $validator['errmsg'];
948+
if(isset($this->wordbook[$errmsg])) {
949+
$this->errorMessage .= $this->wordbook[$errmsg]."<br />\r\n";
950+
} else {
951+
$this->errorMessage .= $errmsg."<br />\r\n";
952+
}
953+
}
954+
unset($range_parts);
934955
break;
935956
case 'CUSTOM':
936957
// Calls a custom class to validate this record

interface/web/dns/form/dns_soa.tform.php

Lines changed: 20 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -135,6 +135,10 @@
135135
'refresh' => array (
136136
'datatype' => 'INTEGER',
137137
'formtype' => 'TEXT',
138+
'validators' => array ( 0 => array ( 'type' => 'RANGE',
139+
'range' => '60:',
140+
'errmsg'=> 'refresh_range_error'),
141+
),
138142
'default' => '7200',
139143
'value' => '',
140144
'width' => '10',
@@ -143,6 +147,10 @@
143147
'retry' => array (
144148
'datatype' => 'INTEGER',
145149
'formtype' => 'TEXT',
150+
'validators' => array ( 0 => array ( 'type' => 'RANGE',
151+
'range' => '60:',
152+
'errmsg'=> 'retry_range_error'),
153+
),
146154
'default' => '540',
147155
'value' => '',
148156
'width' => '10',
@@ -151,6 +159,10 @@
151159
'expire' => array (
152160
'datatype' => 'INTEGER',
153161
'formtype' => 'TEXT',
162+
'validators' => array ( 0 => array ( 'type' => 'RANGE',
163+
'range' => '60:',
164+
'errmsg'=> 'expire_range_error'),
165+
),
154166
'default' => '604800',
155167
'value' => '',
156168
'width' => '10',
@@ -159,6 +171,10 @@
159171
'minimum' => array (
160172
'datatype' => 'INTEGER',
161173
'formtype' => 'TEXT',
174+
'validators' => array ( 0 => array ( 'type' => 'RANGE',
175+
'range' => '60:',
176+
'errmsg'=> 'minimum_range_error'),
177+
),
162178
'default' => '86400',
163179
'value' => '',
164180
'width' => '10',
@@ -167,6 +183,10 @@
167183
'ttl' => array (
168184
'datatype' => 'INTEGER',
169185
'formtype' => 'TEXT',
186+
'validators' => array ( 0 => array ( 'type' => 'RANGE',
187+
'range' => '60:',
188+
'errmsg'=> 'ttl_range_error'),
189+
),
170190
'default' => '3600',
171191
'value' => '',
172192
'width' => '10',

interface/web/dns/lib/lang/en_dns_soa.lng

Lines changed: 5 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -29,4 +29,9 @@ $wb['eg_domain_tld'] = 'e.g. domain.tld';
2929
$wb['eg_ns1_domain_tld'] = 'e.g. ns1.domain.tld';
3030
$wb['eg_webmaster_domain_tld'] = 'e.g. webmaster@domain.tld';
3131
$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.';
32+
$wb['refresh_range_error'] = 'Min. Refresh time is 60 seconds.';
33+
$wb['retry_range_error'] = 'Min. Retry time is 60 seconds.';
34+
$wb['expire_range_error'] = 'Min. Expire time is 60 seconds.';
35+
$wb['minimum_range_error'] = 'Min. Minimum time is 60 seconds.';
36+
$wb['ttl_range_error'] = 'Min. TTL time is 60 seconds.';
3237
?>

0 commit comments

Comments
 (0)