diff --git a/interface/lib/classes/tform.inc.php b/interface/lib/classes/tform.inc.php index e58af0dfa09ed9cdc451b993629ef3196e09d1b1..dbaf686e113cc733e202a157ba38bd3d7e818635 100644 --- a/interface/lib/classes/tform.inc.php +++ b/interface/lib/classes/tform.inc.php @@ -805,6 +805,36 @@ class tform { $this->errorMessage .= $errmsg."
\r\n"; } } + break; + case 'ISIP': + //* Check if its a IPv4 or IPv6 address + if(function_exists('filter_var')) { + if(!filter_var($field_value,FILTER_VALIDATE_IP)) { + $errmsg = $validator['errmsg']; + if(isset($this->wordbook[$errmsg])) { + $this->errorMessage .= $this->wordbook[$errmsg]."
\r\n"; + } else { + $this->errorMessage .= $errmsg."
\r\n"; + } + } + } else { + //* Check content with regex, if we use php < 5.2 + $ip_ok = 0; + if(preg_match("/^(\:\:([a-f0-9]{1,4}\:){0,6}?[a-f0-9]{0,4}|[a-f0-9]{1,4}(\:[a-f0-9]{1,4}){0,6}?\:\:|[a-f0-9]{1,4}(\:[a-f0-9]{1,4}){1,6}?\:\:([a-f0-9]{1,4}\:){1,6}?[a-f0-9]{1,4})(\/\d{1,3})?$/i", $field_value)){ + $ip_ok = 1; + } + if(preg_match("/^[0-9]{1,3}(\.)[0-9]{1,3}(\.)[0-9]{1,3}(\.)[0-9]{1,3}$/", $field_value)){ + $ip_ok = 1; + } + if($ip_ok == 0) { + $errmsg = $validator['errmsg']; + if(isset($this->wordbook[$errmsg])) { + $this->errorMessage .= $this->wordbook[$errmsg]."
\r\n"; + } else { + $this->errorMessage .= $errmsg."
\r\n"; + } + } + } break; case 'CUSTOM': // Calls a custom class to validate this record diff --git a/interface/web/admin/form/server_ip.tform.php b/interface/web/admin/form/server_ip.tform.php index 62851daa03a8d420e6c1dbdc6e590a15c3ab7830..2832efbc4bbe14487bd3c5a91e28d3ea77686654 100644 --- a/interface/web/admin/form/server_ip.tform.php +++ b/interface/web/admin/form/server_ip.tform.php @@ -95,10 +95,27 @@ $form["tabs"]['server_ip'] = array ( ), 'value' => '' ), + 'client_id' => array ( + 'datatype' => 'INTEGER', + 'formtype' => 'SELECT', + 'default' => '', + 'datasource' => array ( 'type' => 'SQL', + 'querystring' => 'SELECT client_id,contact_name FROM client WHERE {AUTHSQL} ORDER BY contact_name', + 'keyfield'=> 'client_id', + 'valuefield'=> 'contact_name' + ), + 'value' => array(0 => ' ') + ), + 'ip_type' => array ( + 'datatype' => 'VARCHAR', + 'formtype' => 'SELECT', + 'default' => '', + 'value' => array('IPv4' => 'IPv4', 'IPv6' => 'IPv6') + ), 'ip_address' => array ( 'datatype' => 'VARCHAR', 'formtype' => 'TEXT', - 'validators' => array ( 0 => array ( 'type' => 'ISIPV4', + 'validators' => array ( 0 => array ( 'type' => 'ISIP', 'errmsg'=> 'ip_error_wrong'), 1 => array ( 'type' => 'UNIQUE', 'errmsg'=> 'ip_error_unique'), @@ -117,6 +134,17 @@ $form["tabs"]['server_ip'] = array ( 'default' => 'y', 'value' => array(0 => 'n',1 => 'y') ), + 'virtualhost_port' => array ( + 'datatype' => 'VARCHAR', + 'formtype' => 'TEXT', + 'default' => '', + 'value' => '', + 'separator' => '', + 'width' => '15', + 'maxlength' => '15', + 'rows' => '', + 'cols' => '' + ), ################################## # ENDE Datenbankfelder ################################## diff --git a/interface/web/admin/lib/lang/en_server_ip.lng b/interface/web/admin/lib/lang/en_server_ip.lng index ae4717c5383e54fda6d958eddfb952b0c87ff4c5..f67e8e82cb3270ee08bafc4ee97ff55436078426 100644 --- a/interface/web/admin/lib/lang/en_server_ip.lng +++ b/interface/web/admin/lib/lang/en_server_ip.lng @@ -1,7 +1,10 @@ \ No newline at end of file diff --git a/interface/web/admin/lib/lang/en_server_ip_list.lng b/interface/web/admin/lib/lang/en_server_ip_list.lng index 008dfc4e0032a5d3e87f248353803cffb35277a3..489967b20e8b028b6d9d13dd17ebd118e5c6d41d 100644 --- a/interface/web/admin/lib/lang/en_server_ip_list.lng +++ b/interface/web/admin/lib/lang/en_server_ip_list.lng @@ -1,6 +1,10 @@ \ No newline at end of file diff --git a/interface/web/admin/list/server_ip.list.php b/interface/web/admin/list/server_ip.list.php index d589a63bb8b604131d2c5dabd5de8b5cefedf573..10001fb11434eab03d2aafe430162768ad0a3835 100644 --- a/interface/web/admin/list/server_ip.list.php +++ b/interface/web/admin/list/server_ip.list.php @@ -1,4 +1,4 @@ - 'server_id', 'width' => '', 'value' => ''); +$liste['item'][] = array( 'field' => 'client_id', + 'datatype' => 'VARCHAR', + 'formtype' => 'SELECT', + 'op' => 'like', + 'prefix' => '%', + 'suffix' => '%', + 'datasource' => array ( 'type' => 'SQL', + 'querystring' => 'SELECT client_id,contact_name FROM client WHERE {AUTHSQL} ORDER BY contact_name', + 'keyfield'=> 'client_id', + 'valuefield'=> 'contact_name' + ), + 'width' => '', + 'value' => ''); + +$liste['item'][] = array( 'field' => 'ip_type', + 'datatype' => 'VARCHAR', + 'formtype' => 'SELECT', + 'op' => '=', + 'prefix' => '', + 'suffix' => '', + 'width' => '', + 'value' => array('IPv4' => 'IPv4', 'IPv6' => 'IPv6')); + $liste['item'][] = array( 'field' => 'ip_address', 'datatype' => 'VARCHAR', 'op' => '=', @@ -65,4 +88,21 @@ $liste['item'][] = array( 'field' => 'ip_address', 'suffix' => '', 'width' => ''); +$liste["item"][] = array( 'field' => "virtualhost", + 'datatype' => "VARCHAR", + 'formtype' => "SELECT", + 'op' => "=", + 'prefix' => "", + 'suffix' => "", + 'width' => "", + 'value' => array('y' => "
Yes
",'n' => "
No
")); + + +$liste['item'][] = array( 'field' => 'virtualhost_port', + 'datatype' => 'VARCHAR', + 'op' => '=', + 'prefix' => '', + 'suffix' => '', + 'width' => ''); + ?> \ No newline at end of file diff --git a/interface/web/admin/templates/server_ip_edit.htm b/interface/web/admin/templates/server_ip_edit.htm index 87e3d4bb77db7974a0ded9d23c7cccfb1d9044fd..513a32f0582845a601898dac8a57cc397e774b92 100644 --- a/interface/web/admin/templates/server_ip_edit.htm +++ b/interface/web/admin/templates/server_ip_edit.htm @@ -2,18 +2,30 @@

- +
-
+
IP Address
+
+ + +
+
+ + +
- +

{tmpl_var name='virtualhost_txt'}

@@ -21,6 +33,10 @@ {tmpl_var name='virtualhost'}
+
+ + +
diff --git a/interface/web/admin/templates/server_ip_list.htm b/interface/web/admin/templates/server_ip_list.htm index 67e03fc9b1d3e1673d97b89e69bb2adfd71df270..03e1be12b973625c1aaaabf97ea11bcceeb1bba0 100644 --- a/interface/web/admin/templates/server_ip_list.htm +++ b/interface/web/admin/templates/server_ip_list.htm @@ -1,5 +1,4 @@

-

@@ -19,12 +18,20 @@ + + + +   - + + + + +
@@ -32,7 +39,11 @@ {tmpl_var name="server_id"} + {tmpl_var name="client_id"} + {tmpl_var name="ip_type"} {tmpl_var name="ip_address"} + {tmpl_var name="virtualhost"} + {tmpl_var name="virtualhost_port"}
{tmpl_var name='delete_txt'} @@ -43,7 +54,7 @@ - +