From 5b7c98a9710145d37857db48c357c76abab6ffdb Mon Sep 17 00:00:00 2001 From: clk Date: Fri, 5 Jan 2024 15:50:48 +0100 Subject: [PATCH 1/2] Added feature: force ipv6 per server --- interface/web/admin/form/server_config.tform.php | 6 ++++++ .../web/admin/templates/server_config_web_edit.htm | 6 ++++++ interface/web/sites/web_vhost_domain_edit.php | 12 ++++++++++-- 3 files changed, 22 insertions(+), 2 deletions(-) diff --git a/interface/web/admin/form/server_config.tform.php b/interface/web/admin/form/server_config.tform.php index d272b08077..ed0a1eda0d 100644 --- a/interface/web/admin/form/server_config.tform.php +++ b/interface/web/admin/form/server_config.tform.php @@ -932,6 +932,12 @@ $form["tabs"]['web'] = array( 'default' => 'n', 'value' => array(0 => 'n',1 => 'y') ), + 'vhost_force_ipv6' => array( + 'datatype' => 'VARCHAR', + 'formtype' => 'CHECKBOX', + 'default' => 'n', + 'value' => array(0 => 'n', 1 => 'y') + ), 'vhost_proxy_protocol_enabled' => array ( 'datatype' => 'VARCHAR', 'formtype' => 'SELECT', diff --git a/interface/web/admin/templates/server_config_web_edit.htm b/interface/web/admin/templates/server_config_web_edit.htm index 1f8185f2b9..4c1b65b244 100644 --- a/interface/web/admin/templates/server_config_web_edit.htm +++ b/interface/web/admin/templates/server_config_web_edit.htm @@ -51,6 +51,12 @@ {tmpl_var name='vhost_rewrite_v6'} +
+ +
+ {tmpl_var name='vhost_force_ipv6'} +
+
diff --git a/interface/web/sites/web_vhost_domain_edit.php b/interface/web/sites/web_vhost_domain_edit.php index be9f0911c7..10e65cc362 100644 --- a/interface/web/sites/web_vhost_domain_edit.php +++ b/interface/web/sites/web_vhost_domain_edit.php @@ -225,8 +225,16 @@ class page_action extends tform_actions { $sql = "SELECT ip_address FROM server_ip WHERE server_id = ? AND ip_type = 'IPv6' AND virtualhost = 'y' AND (client_id = 0 OR client_id=?)"; $ips = $app->db->queryAllRecords($sql, $server_id, $_SESSION['s']['user']['client_id']); //$ip_select = ($web_config[$server_id]['enable_ip_wildcard'] == 'y')?"":""; - //$ip_select = ""; - $ip_select = ""; + + // If ipv6 is force enabled, not add empty string + $app->uses('getconf'); + $web_config = $app->getconf->get_server_config($this->dataRecord['server_id'], 'web'); + if ( 'y' === $web_config['vhost_force_ipv6'] and is_array($ips)) { + $ip_select = ""; + } else { + $ip_select = ""; + } + if(is_array($ips)) { foreach( $ips as $ip) { $selected = ($ip["ip_address"] == $this->dataRecord["ipv6_address"])?'SELECTED':''; -- GitLab From 34ad3f4d0707a891c5351d70c593c815a6b7ac6f Mon Sep 17 00:00:00 2001 From: clk Date: Fri, 5 Jan 2024 16:08:10 +0100 Subject: [PATCH 2/2] Added language strings for new config feature --- interface/web/admin/lib/lang/ar_server_config.lng | 1 + interface/web/admin/lib/lang/bg_server_config.lng | 1 + interface/web/admin/lib/lang/br_server_config.lng | 1 + interface/web/admin/lib/lang/ca_server_config.lng | 1 + interface/web/admin/lib/lang/cn_server_config.lng | 1 + interface/web/admin/lib/lang/cz_server_config.lng | 1 + interface/web/admin/lib/lang/de_server_config.lng | 1 + interface/web/admin/lib/lang/dk_server_config.lng | 1 + interface/web/admin/lib/lang/el_server_config.lng | 1 + interface/web/admin/lib/lang/en_server_config.lng | 1 + interface/web/admin/lib/lang/es_server_config.lng | 1 + interface/web/admin/lib/lang/fi_server_config.lng | 1 + interface/web/admin/lib/lang/fr_server_config.lng | 1 + interface/web/admin/lib/lang/hr_server_config.lng | 1 + interface/web/admin/lib/lang/hu_server_config.lng | 1 + interface/web/admin/lib/lang/id_server_config.lng | 1 + interface/web/admin/lib/lang/it_server_config.lng | 1 + interface/web/admin/lib/lang/ja_server_config.lng | 1 + interface/web/admin/lib/lang/nl_server_config.lng | 1 + interface/web/admin/lib/lang/pl_server_config.lng | 1 + interface/web/admin/lib/lang/pt_server_config.lng | 1 + interface/web/admin/lib/lang/ro_server_config.lng | 1 + interface/web/admin/lib/lang/ru_server_config.lng | 1 + interface/web/admin/lib/lang/se_server_config.lng | 1 + interface/web/admin/lib/lang/sk_server_config.lng | 1 + interface/web/admin/lib/lang/tr_server_config.lng | 1 + 26 files changed, 26 insertions(+) diff --git a/interface/web/admin/lib/lang/ar_server_config.lng b/interface/web/admin/lib/lang/ar_server_config.lng index eff8662079..639709526a 100644 --- a/interface/web/admin/lib/lang/ar_server_config.lng +++ b/interface/web/admin/lib/lang/ar_server_config.lng @@ -358,3 +358,4 @@ $wb['soft_delete_keep_7_txt'] = 'Purge after 7 days'; $wb['soft_delete_keep_30_txt'] = 'Purge after 30 days'; $wb['soft_delete_keep_90_txt'] = 'Purge after 90 days'; $wb['soft_delete_keep_365_txt'] = 'Purge after 365 days'; +$wb['vhost_force_ipv6_txt'] = 'Force Ipv6 address on every vhost'; diff --git a/interface/web/admin/lib/lang/bg_server_config.lng b/interface/web/admin/lib/lang/bg_server_config.lng index 94f805fae9..b5edada5c7 100644 --- a/interface/web/admin/lib/lang/bg_server_config.lng +++ b/interface/web/admin/lib/lang/bg_server_config.lng @@ -358,3 +358,4 @@ $wb['soft_delete_keep_7_txt'] = 'Purge after 7 days'; $wb['soft_delete_keep_30_txt'] = 'Purge after 30 days'; $wb['soft_delete_keep_90_txt'] = 'Purge after 90 days'; $wb['soft_delete_keep_365_txt'] = 'Purge after 365 days'; +$wb['vhost_force_ipv6_txt'] = 'Force Ipv6 address on every vhost'; diff --git a/interface/web/admin/lib/lang/br_server_config.lng b/interface/web/admin/lib/lang/br_server_config.lng index aa83f0dbba..f668c45239 100644 --- a/interface/web/admin/lib/lang/br_server_config.lng +++ b/interface/web/admin/lib/lang/br_server_config.lng @@ -358,3 +358,4 @@ $wb['soft_delete_keep_7_txt'] = 'Purge after 7 days'; $wb['soft_delete_keep_30_txt'] = 'Purge after 30 days'; $wb['soft_delete_keep_90_txt'] = 'Purge after 90 days'; $wb['soft_delete_keep_365_txt'] = 'Purge after 365 days'; +$wb['vhost_force_ipv6_txt'] = 'Force Ipv6 address on every vhost'; diff --git a/interface/web/admin/lib/lang/ca_server_config.lng b/interface/web/admin/lib/lang/ca_server_config.lng index 39feb97f35..607f41a1e1 100644 --- a/interface/web/admin/lib/lang/ca_server_config.lng +++ b/interface/web/admin/lib/lang/ca_server_config.lng @@ -358,3 +358,4 @@ $wb['soft_delete_keep_7_txt'] = 'Purge after 7 days'; $wb['soft_delete_keep_30_txt'] = 'Purge after 30 days'; $wb['soft_delete_keep_90_txt'] = 'Purge after 90 days'; $wb['soft_delete_keep_365_txt'] = 'Purge after 365 days'; +$wb['vhost_force_ipv6_txt'] = 'Force Ipv6 address on every vhost'; diff --git a/interface/web/admin/lib/lang/cn_server_config.lng b/interface/web/admin/lib/lang/cn_server_config.lng index bc728bb632..f14bf3a5d6 100644 --- a/interface/web/admin/lib/lang/cn_server_config.lng +++ b/interface/web/admin/lib/lang/cn_server_config.lng @@ -358,3 +358,4 @@ $wb['soft_delete_keep_7_txt'] = 'Purge after 7 days'; $wb['soft_delete_keep_30_txt'] = 'Purge after 30 days'; $wb['soft_delete_keep_90_txt'] = 'Purge after 90 days'; $wb['soft_delete_keep_365_txt'] = 'Purge after 365 days'; +$wb['vhost_force_ipv6_txt'] = 'Force Ipv6 address on every vhost'; diff --git a/interface/web/admin/lib/lang/cz_server_config.lng b/interface/web/admin/lib/lang/cz_server_config.lng index 96ea04fb96..b35941e499 100644 --- a/interface/web/admin/lib/lang/cz_server_config.lng +++ b/interface/web/admin/lib/lang/cz_server_config.lng @@ -358,3 +358,4 @@ $wb['soft_delete_keep_7_txt'] = 'Purge after 7 days'; $wb['soft_delete_keep_30_txt'] = 'Purge after 30 days'; $wb['soft_delete_keep_90_txt'] = 'Purge after 90 days'; $wb['soft_delete_keep_365_txt'] = 'Purge after 365 days'; +$wb['vhost_force_ipv6_txt'] = 'Force Ipv6 address on every vhost'; diff --git a/interface/web/admin/lib/lang/de_server_config.lng b/interface/web/admin/lib/lang/de_server_config.lng index 92297bb355..5593e0e274 100644 --- a/interface/web/admin/lib/lang/de_server_config.lng +++ b/interface/web/admin/lib/lang/de_server_config.lng @@ -358,3 +358,4 @@ $wb['soft_delete_keep_7_txt'] = 'Purge after 7 days'; $wb['soft_delete_keep_30_txt'] = 'Purge after 30 days'; $wb['soft_delete_keep_90_txt'] = 'Purge after 90 days'; $wb['soft_delete_keep_365_txt'] = 'Purge after 365 days'; +$wb['vhost_force_ipv6_txt'] = 'Force Ipv6 address on every vhost'; diff --git a/interface/web/admin/lib/lang/dk_server_config.lng b/interface/web/admin/lib/lang/dk_server_config.lng index 05f5402202..ca607b2161 100644 --- a/interface/web/admin/lib/lang/dk_server_config.lng +++ b/interface/web/admin/lib/lang/dk_server_config.lng @@ -358,3 +358,4 @@ $wb['soft_delete_keep_7_txt'] = 'Purge after 7 days'; $wb['soft_delete_keep_30_txt'] = 'Purge after 30 days'; $wb['soft_delete_keep_90_txt'] = 'Purge after 90 days'; $wb['soft_delete_keep_365_txt'] = 'Purge after 365 days'; +$wb['vhost_force_ipv6_txt'] = 'Force Ipv6 address on every vhost'; diff --git a/interface/web/admin/lib/lang/el_server_config.lng b/interface/web/admin/lib/lang/el_server_config.lng index ecedc25243..bd0b0c1752 100644 --- a/interface/web/admin/lib/lang/el_server_config.lng +++ b/interface/web/admin/lib/lang/el_server_config.lng @@ -358,3 +358,4 @@ $wb['soft_delete_keep_7_txt'] = 'Purge after 7 days'; $wb['soft_delete_keep_30_txt'] = 'Purge after 30 days'; $wb['soft_delete_keep_90_txt'] = 'Purge after 90 days'; $wb['soft_delete_keep_365_txt'] = 'Purge after 365 days'; +$wb['vhost_force_ipv6_txt'] = 'Force Ipv6 address on every vhost'; diff --git a/interface/web/admin/lib/lang/en_server_config.lng b/interface/web/admin/lib/lang/en_server_config.lng index af7beb9a4d..6df04f4995 100644 --- a/interface/web/admin/lib/lang/en_server_config.lng +++ b/interface/web/admin/lib/lang/en_server_config.lng @@ -364,3 +364,4 @@ $wb['soft_delete_keep_7_txt'] = 'Purge after 7 days'; $wb['soft_delete_keep_30_txt'] = 'Purge after 30 days'; $wb['soft_delete_keep_90_txt'] = 'Purge after 90 days'; $wb['soft_delete_keep_365_txt'] = 'Purge after 365 days'; +$wb['vhost_force_ipv6_txt'] = 'Force Ipv6 address on every vhost'; diff --git a/interface/web/admin/lib/lang/es_server_config.lng b/interface/web/admin/lib/lang/es_server_config.lng index 8961010f73..b98999b81d 100644 --- a/interface/web/admin/lib/lang/es_server_config.lng +++ b/interface/web/admin/lib/lang/es_server_config.lng @@ -358,3 +358,4 @@ $wb['soft_delete_keep_7_txt'] = 'Purge after 7 days'; $wb['soft_delete_keep_30_txt'] = 'Purge after 30 days'; $wb['soft_delete_keep_90_txt'] = 'Purge after 90 days'; $wb['soft_delete_keep_365_txt'] = 'Purge after 365 days'; +$wb['vhost_force_ipv6_txt'] = 'Force Ipv6 address on every vhost'; diff --git a/interface/web/admin/lib/lang/fi_server_config.lng b/interface/web/admin/lib/lang/fi_server_config.lng index 68f12468a0..d131b4762e 100644 --- a/interface/web/admin/lib/lang/fi_server_config.lng +++ b/interface/web/admin/lib/lang/fi_server_config.lng @@ -358,3 +358,4 @@ $wb['soft_delete_keep_7_txt'] = 'Purge after 7 days'; $wb['soft_delete_keep_30_txt'] = 'Purge after 30 days'; $wb['soft_delete_keep_90_txt'] = 'Purge after 90 days'; $wb['soft_delete_keep_365_txt'] = 'Purge after 365 days'; +$wb['vhost_force_ipv6_txt'] = 'Force Ipv6 address on every vhost'; diff --git a/interface/web/admin/lib/lang/fr_server_config.lng b/interface/web/admin/lib/lang/fr_server_config.lng index fb5d1e2f97..4afe3f29e5 100644 --- a/interface/web/admin/lib/lang/fr_server_config.lng +++ b/interface/web/admin/lib/lang/fr_server_config.lng @@ -358,3 +358,4 @@ $wb['soft_delete_keep_7_txt'] = 'Purge after 7 days'; $wb['soft_delete_keep_30_txt'] = 'Purge after 30 days'; $wb['soft_delete_keep_90_txt'] = 'Purge after 90 days'; $wb['soft_delete_keep_365_txt'] = 'Purge after 365 days'; +$wb['vhost_force_ipv6_txt'] = 'Force Ipv6 address on every vhost'; diff --git a/interface/web/admin/lib/lang/hr_server_config.lng b/interface/web/admin/lib/lang/hr_server_config.lng index b40c7fd49e..2f0fd9f998 100644 --- a/interface/web/admin/lib/lang/hr_server_config.lng +++ b/interface/web/admin/lib/lang/hr_server_config.lng @@ -358,3 +358,4 @@ $wb['soft_delete_keep_7_txt'] = 'Purge after 7 days'; $wb['soft_delete_keep_30_txt'] = 'Purge after 30 days'; $wb['soft_delete_keep_90_txt'] = 'Purge after 90 days'; $wb['soft_delete_keep_365_txt'] = 'Purge after 365 days'; +$wb['vhost_force_ipv6_txt'] = 'Force Ipv6 address on every vhost'; diff --git a/interface/web/admin/lib/lang/hu_server_config.lng b/interface/web/admin/lib/lang/hu_server_config.lng index 526b800cbd..2eadf49246 100644 --- a/interface/web/admin/lib/lang/hu_server_config.lng +++ b/interface/web/admin/lib/lang/hu_server_config.lng @@ -358,3 +358,4 @@ $wb['soft_delete_keep_7_txt'] = 'Purge after 7 days'; $wb['soft_delete_keep_30_txt'] = 'Purge after 30 days'; $wb['soft_delete_keep_90_txt'] = 'Purge after 90 days'; $wb['soft_delete_keep_365_txt'] = 'Purge after 365 days'; +$wb['vhost_force_ipv6_txt'] = 'Force Ipv6 address on every vhost'; diff --git a/interface/web/admin/lib/lang/id_server_config.lng b/interface/web/admin/lib/lang/id_server_config.lng index daaa08c24a..c92b19d231 100644 --- a/interface/web/admin/lib/lang/id_server_config.lng +++ b/interface/web/admin/lib/lang/id_server_config.lng @@ -358,3 +358,4 @@ $wb['soft_delete_keep_7_txt'] = 'Purge after 7 days'; $wb['soft_delete_keep_30_txt'] = 'Purge after 30 days'; $wb['soft_delete_keep_90_txt'] = 'Purge after 90 days'; $wb['soft_delete_keep_365_txt'] = 'Purge after 365 days'; +$wb['vhost_force_ipv6_txt'] = 'Force Ipv6 address on every vhost'; diff --git a/interface/web/admin/lib/lang/it_server_config.lng b/interface/web/admin/lib/lang/it_server_config.lng index 9e7064fe14..4da6bf800e 100644 --- a/interface/web/admin/lib/lang/it_server_config.lng +++ b/interface/web/admin/lib/lang/it_server_config.lng @@ -357,3 +357,4 @@ $wb['soft_delete_keep_7_txt'] = 'Purge after 7 days'; $wb['soft_delete_keep_30_txt'] = 'Purge after 30 days'; $wb['soft_delete_keep_90_txt'] = 'Purge after 90 days'; $wb['soft_delete_keep_365_txt'] = 'Purge after 365 days'; +$wb['vhost_force_ipv6_txt'] = 'Force Ipv6 address on every vhost'; diff --git a/interface/web/admin/lib/lang/ja_server_config.lng b/interface/web/admin/lib/lang/ja_server_config.lng index fa9abcaaf1..4f72a285f7 100644 --- a/interface/web/admin/lib/lang/ja_server_config.lng +++ b/interface/web/admin/lib/lang/ja_server_config.lng @@ -358,3 +358,4 @@ $wb['soft_delete_keep_7_txt'] = 'Purge after 7 days'; $wb['soft_delete_keep_30_txt'] = 'Purge after 30 days'; $wb['soft_delete_keep_90_txt'] = 'Purge after 90 days'; $wb['soft_delete_keep_365_txt'] = 'Purge after 365 days'; +$wb['vhost_force_ipv6_txt'] = 'Force Ipv6 address on every vhost'; diff --git a/interface/web/admin/lib/lang/nl_server_config.lng b/interface/web/admin/lib/lang/nl_server_config.lng index a8a8d47366..79fb5088df 100644 --- a/interface/web/admin/lib/lang/nl_server_config.lng +++ b/interface/web/admin/lib/lang/nl_server_config.lng @@ -358,3 +358,4 @@ $wb['soft_delete_keep_7_txt'] = 'Purge after 7 days'; $wb['soft_delete_keep_30_txt'] = 'Purge after 30 days'; $wb['soft_delete_keep_90_txt'] = 'Purge after 90 days'; $wb['soft_delete_keep_365_txt'] = 'Purge after 365 days'; +$wb['vhost_force_ipv6_txt'] = 'Force Ipv6 address on every vhost'; diff --git a/interface/web/admin/lib/lang/pl_server_config.lng b/interface/web/admin/lib/lang/pl_server_config.lng index 83460000a2..aa91c42e08 100644 --- a/interface/web/admin/lib/lang/pl_server_config.lng +++ b/interface/web/admin/lib/lang/pl_server_config.lng @@ -358,3 +358,4 @@ $wb['soft_delete_keep_7_txt'] = 'Purge after 7 days'; $wb['soft_delete_keep_30_txt'] = 'Purge after 30 days'; $wb['soft_delete_keep_90_txt'] = 'Purge after 90 days'; $wb['soft_delete_keep_365_txt'] = 'Purge after 365 days'; +$wb['vhost_force_ipv6_txt'] = 'Force Ipv6 address on every vhost'; diff --git a/interface/web/admin/lib/lang/pt_server_config.lng b/interface/web/admin/lib/lang/pt_server_config.lng index f856344b0a..febcbde3cd 100644 --- a/interface/web/admin/lib/lang/pt_server_config.lng +++ b/interface/web/admin/lib/lang/pt_server_config.lng @@ -358,3 +358,4 @@ $wb['soft_delete_keep_7_txt'] = 'Purge after 7 days'; $wb['soft_delete_keep_30_txt'] = 'Purge after 30 days'; $wb['soft_delete_keep_90_txt'] = 'Purge after 90 days'; $wb['soft_delete_keep_365_txt'] = 'Purge after 365 days'; +$wb['vhost_force_ipv6_txt'] = 'Force Ipv6 address on every vhost'; diff --git a/interface/web/admin/lib/lang/ro_server_config.lng b/interface/web/admin/lib/lang/ro_server_config.lng index d69c33ed65..1b6a92e61c 100644 --- a/interface/web/admin/lib/lang/ro_server_config.lng +++ b/interface/web/admin/lib/lang/ro_server_config.lng @@ -358,3 +358,4 @@ $wb['soft_delete_keep_7_txt'] = 'Purge after 7 days'; $wb['soft_delete_keep_30_txt'] = 'Purge after 30 days'; $wb['soft_delete_keep_90_txt'] = 'Purge after 90 days'; $wb['soft_delete_keep_365_txt'] = 'Purge after 365 days'; +$wb['vhost_force_ipv6_txt'] = 'Force Ipv6 address on every vhost'; diff --git a/interface/web/admin/lib/lang/ru_server_config.lng b/interface/web/admin/lib/lang/ru_server_config.lng index 2fdb42393e..def54c6152 100644 --- a/interface/web/admin/lib/lang/ru_server_config.lng +++ b/interface/web/admin/lib/lang/ru_server_config.lng @@ -358,3 +358,4 @@ $wb['soft_delete_keep_7_txt'] = 'Purge after 7 days'; $wb['soft_delete_keep_30_txt'] = 'Purge after 30 days'; $wb['soft_delete_keep_90_txt'] = 'Purge after 90 days'; $wb['soft_delete_keep_365_txt'] = 'Purge after 365 days'; +$wb['vhost_force_ipv6_txt'] = 'Force Ipv6 address on every vhost'; diff --git a/interface/web/admin/lib/lang/se_server_config.lng b/interface/web/admin/lib/lang/se_server_config.lng index 24df537a56..08fd101c77 100644 --- a/interface/web/admin/lib/lang/se_server_config.lng +++ b/interface/web/admin/lib/lang/se_server_config.lng @@ -358,3 +358,4 @@ $wb['soft_delete_keep_7_txt'] = 'Purge after 7 days'; $wb['soft_delete_keep_30_txt'] = 'Purge after 30 days'; $wb['soft_delete_keep_90_txt'] = 'Purge after 90 days'; $wb['soft_delete_keep_365_txt'] = 'Purge after 365 days'; +$wb['vhost_force_ipv6_txt'] = 'Force Ipv6 address on every vhost'; diff --git a/interface/web/admin/lib/lang/sk_server_config.lng b/interface/web/admin/lib/lang/sk_server_config.lng index 965ef09719..24b3f8bc3b 100644 --- a/interface/web/admin/lib/lang/sk_server_config.lng +++ b/interface/web/admin/lib/lang/sk_server_config.lng @@ -358,3 +358,4 @@ $wb['soft_delete_keep_7_txt'] = 'Purge after 7 days'; $wb['soft_delete_keep_30_txt'] = 'Purge after 30 days'; $wb['soft_delete_keep_90_txt'] = 'Purge after 90 days'; $wb['soft_delete_keep_365_txt'] = 'Purge after 365 days'; +$wb['vhost_force_ipv6_txt'] = 'Force Ipv6 address on every vhost'; diff --git a/interface/web/admin/lib/lang/tr_server_config.lng b/interface/web/admin/lib/lang/tr_server_config.lng index fcc26b10fd..1e3cbd3610 100644 --- a/interface/web/admin/lib/lang/tr_server_config.lng +++ b/interface/web/admin/lib/lang/tr_server_config.lng @@ -355,3 +355,4 @@ $wb['soft_delete_keep_7_txt'] = 'Purge after 7 days'; $wb['soft_delete_keep_30_txt'] = 'Purge after 30 days'; $wb['soft_delete_keep_90_txt'] = 'Purge after 90 days'; $wb['soft_delete_keep_365_txt'] = 'Purge after 365 days'; +$wb['vhost_force_ipv6_txt'] = 'Force Ipv6 address on every vhost'; -- GitLab