From f58b8976d537a50fb4eaf70bb8bf48d725e4be88 Mon Sep 17 00:00:00 2001
From: Till Brehm <tbrehm@ispconfig.org>
Date: Fri, 14 Aug 2020 18:19:50 +0200
Subject: [PATCH] Implements #5400 Prevent that domains with server_id 0 can be
 added

---
 interface/lib/lang/ar.lng                     | 3 ++-
 interface/lib/lang/bg.lng                     | 3 ++-
 interface/lib/lang/br.lng                     | 3 ++-
 interface/lib/lang/ca.lng                     | 3 ++-
 interface/lib/lang/cz.lng                     | 3 ++-
 interface/lib/lang/de.lng                     | 3 ++-
 interface/lib/lang/dk.lng                     | 3 ++-
 interface/lib/lang/el.lng                     | 3 ++-
 interface/lib/lang/en.lng                     | 3 ++-
 interface/lib/lang/es.lng                     | 3 ++-
 interface/lib/lang/fi.lng                     | 3 ++-
 interface/lib/lang/fr.lng                     | 3 ++-
 interface/lib/lang/hr.lng                     | 3 ++-
 interface/lib/lang/hu.lng                     | 3 ++-
 interface/lib/lang/id.lng                     | 3 ++-
 interface/lib/lang/it.lng                     | 3 ++-
 interface/lib/lang/ja.lng                     | 3 ++-
 interface/lib/lang/nl.lng                     | 3 ++-
 interface/lib/lang/pl.lng                     | 3 ++-
 interface/lib/lang/pt.lng                     | 3 ++-
 interface/lib/lang/ro.lng                     | 3 ++-
 interface/lib/lang/ru.lng                     | 3 ++-
 interface/lib/lang/se.lng                     | 3 ++-
 interface/lib/lang/sk.lng                     | 3 ++-
 interface/lib/lang/tr.lng                     | 3 ++-
 interface/web/dns/dns_soa_edit.php            | 3 +++
 interface/web/mail/mail_domain_edit.php       | 4 +++-
 interface/web/sites/web_vhost_domain_edit.php | 3 +++
 28 files changed, 59 insertions(+), 26 deletions(-)

diff --git a/interface/lib/lang/ar.lng b/interface/lib/lang/ar.lng
index f8fd2b5a50..5ea8fd6e5f 100644
--- a/interface/lib/lang/ar.lng
+++ b/interface/lib/lang/ar.lng
@@ -159,4 +159,5 @@ $wb['datalog_status_i_xmpp_user'] = 'Create XMPP user';
 $wb['datalog_status_u_xmpp_user'] = 'Update XMPP user';
 $wb['datalog_status_d_xmpp_user'] = 'Delete XMPP user';
 $wb['unlimited_txt'] = 'Unlimited';
-?>
+$wb['server_id_0_error_txt'] = 'Please select a valid Server. Server ID must be > 0.';
+?>
\ No newline at end of file
diff --git a/interface/lib/lang/bg.lng b/interface/lib/lang/bg.lng
index 049807e66d..f177549efc 100644
--- a/interface/lib/lang/bg.lng
+++ b/interface/lib/lang/bg.lng
@@ -159,4 +159,5 @@ $wb['datalog_status_i_xmpp_user'] = 'Create XMPP user';
 $wb['datalog_status_u_xmpp_user'] = 'Update XMPP user';
 $wb['datalog_status_d_xmpp_user'] = 'Delete XMPP user';
 $wb['unlimited_txt'] = 'Неограничен';
-?>
+$wb['server_id_0_error_txt'] = 'Please select a valid Server. Server ID must be > 0.';
+?>
\ No newline at end of file
diff --git a/interface/lib/lang/br.lng b/interface/lib/lang/br.lng
index 3bab13ab3a..1e8b2f0fc6 100644
--- a/interface/lib/lang/br.lng
+++ b/interface/lib/lang/br.lng
@@ -159,4 +159,5 @@ $wb['security_check2_txt'] = 'falhou.';
 $wb['select_directive_snippet_txt'] = 'Diretiva de trechos de código';
 $wb['select_master_directive_snippet_txt'] = 'Diretiva mestre de trechos de código';
 $wb['unlimited_txt'] = 'Ilimitado';
-?>
+$wb['server_id_0_error_txt'] = 'Please select a valid Server. Server ID must be > 0.';
+?>
\ No newline at end of file
diff --git a/interface/lib/lang/ca.lng b/interface/lib/lang/ca.lng
index 6d48482cfc..d5bd21c774 100644
--- a/interface/lib/lang/ca.lng
+++ b/interface/lib/lang/ca.lng
@@ -159,4 +159,5 @@ $wb['datalog_status_i_xmpp_user'] = 'Create XMPP user';
 $wb['datalog_status_u_xmpp_user'] = 'Update XMPP user';
 $wb['datalog_status_d_xmpp_user'] = 'Delete XMPP user';
 $wb['unlimited_txt'] = 'Illimité';
-?>
+$wb['server_id_0_error_txt'] = 'Please select a valid Server. Server ID must be > 0.';
+?>
\ No newline at end of file
diff --git a/interface/lib/lang/cz.lng b/interface/lib/lang/cz.lng
index 93eeb671e5..c104b19813 100644
--- a/interface/lib/lang/cz.lng
+++ b/interface/lib/lang/cz.lng
@@ -159,4 +159,5 @@ $wb['datalog_status_i_xmpp_user'] = 'Vytvořit XMPP uživatele';
 $wb['datalog_status_u_xmpp_user'] = 'Aktualizovat XMPP uživatele';
 $wb['datalog_status_d_xmpp_user'] = 'Smazat XMPP uživatele';
 $wb['unlimited_txt'] = 'neomezeno';
-?>
+$wb['server_id_0_error_txt'] = 'Please select a valid Server. Server ID must be > 0.';
+?>
\ No newline at end of file
diff --git a/interface/lib/lang/de.lng b/interface/lib/lang/de.lng
index 54091c1417..6a4c09be79 100644
--- a/interface/lib/lang/de.lng
+++ b/interface/lib/lang/de.lng
@@ -159,4 +159,5 @@ $wb['security_check2_txt'] = 'fehlgeschlagen.';
 $wb['select_directive_snippet_txt'] = 'Direktiven Schnipsel';
 $wb['select_master_directive_snippet_txt'] = 'Master Direktiven Schnipsel';
 $wb['unlimited_txt'] = 'unlimitiert';
-?>
+$wb['server_id_0_error_txt'] = 'Bitte Server auswählen. Server ID muss > als 0 sein.';
+?>
\ No newline at end of file
diff --git a/interface/lib/lang/dk.lng b/interface/lib/lang/dk.lng
index cbb9fc5efd..73aaba6b39 100644
--- a/interface/lib/lang/dk.lng
+++ b/interface/lib/lang/dk.lng
@@ -159,4 +159,5 @@ $wb['datalog_status_i_xmpp_user'] = 'Create XMPP user';
 $wb['datalog_status_u_xmpp_user'] = 'Update XMPP user';
 $wb['datalog_status_d_xmpp_user'] = 'Delete XMPP user';
 $wb['unlimited_txt'] = 'Ubegrænset';
-?>
+$wb['server_id_0_error_txt'] = 'Please select a valid Server. Server ID must be > 0.';
+?>
\ No newline at end of file
diff --git a/interface/lib/lang/el.lng b/interface/lib/lang/el.lng
index 3e6c60c90f..788d313066 100644
--- a/interface/lib/lang/el.lng
+++ b/interface/lib/lang/el.lng
@@ -159,4 +159,5 @@ $wb['datalog_status_i_xmpp_user'] = 'Create XMPP user';
 $wb['datalog_status_u_xmpp_user'] = 'Update XMPP user';
 $wb['datalog_status_d_xmpp_user'] = 'Delete XMPP user';
 $wb['unlimited_txt'] = 'Απεριόριστα';
-?>
+$wb['server_id_0_error_txt'] = 'Please select a valid Server. Server ID must be > 0.';
+?>
\ No newline at end of file
diff --git a/interface/lib/lang/en.lng b/interface/lib/lang/en.lng
index b5b2ebcdae..d69a4b2f56 100644
--- a/interface/lib/lang/en.lng
+++ b/interface/lib/lang/en.lng
@@ -160,4 +160,5 @@ $wb['security_check2_txt'] = 'failed.';
 $wb['select_directive_snippet_txt'] = 'Directive Snippets';
 $wb['select_master_directive_snippet_txt'] = 'Master Directive Snippets';
 $wb['unlimited_txt'] = "Unlimited";
-?>
+$wb['server_id_0_error_txt'] = 'Please select a valid Server. Server ID must be > 0.';
+?>
\ No newline at end of file
diff --git a/interface/lib/lang/es.lng b/interface/lib/lang/es.lng
index b78499f800..75ee5ee74b 100644
--- a/interface/lib/lang/es.lng
+++ b/interface/lib/lang/es.lng
@@ -159,4 +159,5 @@ $wb['datalog_status_i_xmpp_user'] = 'Create XMPP user';
 $wb['datalog_status_u_xmpp_user'] = 'Update XMPP user';
 $wb['datalog_status_d_xmpp_user'] = 'Delete XMPP user';
 $wb['unlimited_txt'] = 'Ilimitado';
-?>
+$wb['server_id_0_error_txt'] = 'Please select a valid Server. Server ID must be > 0.';
+?>
\ No newline at end of file
diff --git a/interface/lib/lang/fi.lng b/interface/lib/lang/fi.lng
index 27749510bb..1effd44b27 100644
--- a/interface/lib/lang/fi.lng
+++ b/interface/lib/lang/fi.lng
@@ -159,4 +159,5 @@ $wb['datalog_status_i_xmpp_user'] = 'Create XMPP user';
 $wb['datalog_status_u_xmpp_user'] = 'Update XMPP user';
 $wb['datalog_status_d_xmpp_user'] = 'Delete XMPP user';
 $wb['unlimited_txt'] = 'Unlimited';
-?>
+$wb['server_id_0_error_txt'] = 'Please select a valid Server. Server ID must be > 0.';
+?>
\ No newline at end of file
diff --git a/interface/lib/lang/fr.lng b/interface/lib/lang/fr.lng
index c302b32faa..285fecd2ba 100644
--- a/interface/lib/lang/fr.lng
+++ b/interface/lib/lang/fr.lng
@@ -159,4 +159,5 @@ $wb['datalog_status_i_xmpp_user'] = 'Create XMPP user';
 $wb['datalog_status_u_xmpp_user'] = 'Update XMPP user';
 $wb['datalog_status_d_xmpp_user'] = 'Delete XMPP user';
 $wb['unlimited_txt'] = 'Illimité';
-?>
+$wb['server_id_0_error_txt'] = 'Please select a valid Server. Server ID must be > 0.';
+?>
\ No newline at end of file
diff --git a/interface/lib/lang/hr.lng b/interface/lib/lang/hr.lng
index 3be5dc7e16..ddcb8ddd63 100644
--- a/interface/lib/lang/hr.lng
+++ b/interface/lib/lang/hr.lng
@@ -159,4 +159,5 @@ $wb['datalog_status_i_xmpp_user'] = 'Create XMPP user';
 $wb['datalog_status_u_xmpp_user'] = 'Update XMPP user';
 $wb['datalog_status_d_xmpp_user'] = 'Delete XMPP user';
 $wb['unlimited_txt'] = 'neograničeno';
-?>
+$wb['server_id_0_error_txt'] = 'Please select a valid Server. Server ID must be > 0.';
+?>
\ No newline at end of file
diff --git a/interface/lib/lang/hu.lng b/interface/lib/lang/hu.lng
index 3fc91bd600..f95edfd13e 100644
--- a/interface/lib/lang/hu.lng
+++ b/interface/lib/lang/hu.lng
@@ -159,4 +159,5 @@ $wb['datalog_status_i_xmpp_user'] = 'Create XMPP user';
 $wb['datalog_status_u_xmpp_user'] = 'Update XMPP user';
 $wb['datalog_status_d_xmpp_user'] = 'Delete XMPP user';
 $wb['unlimited_txt'] = 'Korlátlan';
-?>
+$wb['server_id_0_error_txt'] = 'Please select a valid Server. Server ID must be > 0.';
+?>
\ No newline at end of file
diff --git a/interface/lib/lang/id.lng b/interface/lib/lang/id.lng
index 13fbff1a08..a6f7d421a5 100644
--- a/interface/lib/lang/id.lng
+++ b/interface/lib/lang/id.lng
@@ -159,4 +159,5 @@ $wb['datalog_status_i_xmpp_user'] = 'Create XMPP user';
 $wb['datalog_status_u_xmpp_user'] = 'Update XMPP user';
 $wb['datalog_status_d_xmpp_user'] = 'Delete XMPP user';
 $wb['unlimited_txt'] = 'Tak terbatas';
-?>
+$wb['server_id_0_error_txt'] = 'Please select a valid Server. Server ID must be > 0.';
+?>
\ No newline at end of file
diff --git a/interface/lib/lang/it.lng b/interface/lib/lang/it.lng
index 4a85a58e09..50bac60c46 100644
--- a/interface/lib/lang/it.lng
+++ b/interface/lib/lang/it.lng
@@ -159,4 +159,5 @@ $wb['datalog_status_i_xmpp_user'] = 'Create XMPP user';
 $wb['datalog_status_u_xmpp_user'] = 'Update XMPP user';
 $wb['datalog_status_d_xmpp_user'] = 'Delete XMPP user';
 $wb['unlimited_txt'] = 'illimitati';
-?>
+$wb['server_id_0_error_txt'] = 'Please select a valid Server. Server ID must be > 0.';
+?>
\ No newline at end of file
diff --git a/interface/lib/lang/ja.lng b/interface/lib/lang/ja.lng
index bb1290173c..33afdb44de 100644
--- a/interface/lib/lang/ja.lng
+++ b/interface/lib/lang/ja.lng
@@ -159,4 +159,5 @@ $wb['datalog_status_i_xmpp_user'] = 'Create XMPP user';
 $wb['datalog_status_u_xmpp_user'] = 'Update XMPP user';
 $wb['datalog_status_d_xmpp_user'] = 'Delete XMPP user';
 $wb['unlimited_txt'] = 'Unlimited';
-?>
+$wb['server_id_0_error_txt'] = 'Please select a valid Server. Server ID must be > 0.';
+?>
\ No newline at end of file
diff --git a/interface/lib/lang/nl.lng b/interface/lib/lang/nl.lng
index a733142d49..3ddac641ad 100644
--- a/interface/lib/lang/nl.lng
+++ b/interface/lib/lang/nl.lng
@@ -159,4 +159,5 @@ $wb['datalog_status_i_xmpp_user'] = 'Create XMPP user';
 $wb['datalog_status_u_xmpp_user'] = 'Update XMPP user';
 $wb['datalog_status_d_xmpp_user'] = 'Delete XMPP user';
 $wb['unlimited_txt'] = 'Ongelimiteerd';
-?>
+$wb['server_id_0_error_txt'] = 'Please select a valid Server. Server ID must be > 0.';
+?>
\ No newline at end of file
diff --git a/interface/lib/lang/pl.lng b/interface/lib/lang/pl.lng
index ffbac09ef4..113298659a 100644
--- a/interface/lib/lang/pl.lng
+++ b/interface/lib/lang/pl.lng
@@ -159,4 +159,5 @@ $wb['datalog_status_i_xmpp_user'] = 'Create XMPP user';
 $wb['datalog_status_u_xmpp_user'] = 'Update XMPP user';
 $wb['datalog_status_d_xmpp_user'] = 'Delete XMPP user';
 $wb['unlimited_txt'] = 'nielimitowane';
-?>
+$wb['server_id_0_error_txt'] = 'Please select a valid Server. Server ID must be > 0.';
+?>
\ No newline at end of file
diff --git a/interface/lib/lang/pt.lng b/interface/lib/lang/pt.lng
index 195da8e619..5b510ad3f1 100644
--- a/interface/lib/lang/pt.lng
+++ b/interface/lib/lang/pt.lng
@@ -159,4 +159,5 @@ $wb['datalog_status_i_xmpp_user'] = 'Create XMPP user';
 $wb['datalog_status_u_xmpp_user'] = 'Update XMPP user';
 $wb['datalog_status_d_xmpp_user'] = 'Delete XMPP user';
 $wb['unlimited_txt'] = 'Unlimited';
-?>
+$wb['server_id_0_error_txt'] = 'Please select a valid Server. Server ID must be > 0.';
+?>
\ No newline at end of file
diff --git a/interface/lib/lang/ro.lng b/interface/lib/lang/ro.lng
index 1365a54172..755ee1ba0b 100644
--- a/interface/lib/lang/ro.lng
+++ b/interface/lib/lang/ro.lng
@@ -159,4 +159,5 @@ $wb['datalog_status_i_xmpp_user'] = 'Create XMPP user';
 $wb['datalog_status_u_xmpp_user'] = 'Update XMPP user';
 $wb['datalog_status_d_xmpp_user'] = 'Delete XMPP user';
 $wb['unlimited_txt'] = 'Unlimited';
-?>
+$wb['server_id_0_error_txt'] = 'Please select a valid Server. Server ID must be > 0.';
+?>
\ No newline at end of file
diff --git a/interface/lib/lang/ru.lng b/interface/lib/lang/ru.lng
index 19cdcf8a04..67111326c7 100644
--- a/interface/lib/lang/ru.lng
+++ b/interface/lib/lang/ru.lng
@@ -159,4 +159,5 @@ $wb['datalog_status_i_xmpp_user'] = 'Создать пользователя XMP
 $wb['datalog_status_u_xmpp_user'] = 'Обновить пользователя XMPP';
 $wb['datalog_status_d_xmpp_user'] = 'Удалить пользователя XMPP';
 $wb['unlimited_txt'] = 'Безлимитный';
-?>
+$wb['server_id_0_error_txt'] = 'Please select a valid Server. Server ID must be > 0.';
+?>
\ No newline at end of file
diff --git a/interface/lib/lang/se.lng b/interface/lib/lang/se.lng
index 2d3146f033..aa59af3109 100644
--- a/interface/lib/lang/se.lng
+++ b/interface/lib/lang/se.lng
@@ -159,4 +159,5 @@ $wb['datalog_status_i_xmpp_user'] = 'Create XMPP user';
 $wb['datalog_status_u_xmpp_user'] = 'Update XMPP user';
 $wb['datalog_status_d_xmpp_user'] = 'Delete XMPP user';
 $wb['unlimited_txt'] = 'Obegränsat';
-?>
+$wb['server_id_0_error_txt'] = 'Please select a valid Server. Server ID must be > 0.';
+?>
\ No newline at end of file
diff --git a/interface/lib/lang/sk.lng b/interface/lib/lang/sk.lng
index ece15b3a22..afb9c0ac05 100644
--- a/interface/lib/lang/sk.lng
+++ b/interface/lib/lang/sk.lng
@@ -159,4 +159,5 @@ $wb['datalog_status_i_xmpp_user'] = 'Create XMPP user';
 $wb['datalog_status_u_xmpp_user'] = 'Update XMPP user';
 $wb['datalog_status_d_xmpp_user'] = 'Delete XMPP user';
 $wb['unlimited_txt'] = 'Unlimited';
-?>
+$wb['server_id_0_error_txt'] = 'Please select a valid Server. Server ID must be > 0.';
+?>
\ No newline at end of file
diff --git a/interface/lib/lang/tr.lng b/interface/lib/lang/tr.lng
index 31e5f2fbef..9b182f7eb8 100644
--- a/interface/lib/lang/tr.lng
+++ b/interface/lib/lang/tr.lng
@@ -160,4 +160,5 @@ $wb['security_check2_txt'] = 'başarısız.';
 $wb['select_directive_snippet_txt'] = 'Yönerge Kod Parçaları';
 $wb['select_master_directive_snippet_txt'] = 'Ana Komut Parçaları';
 $wb['unlimited_txt'] = 'Sınırsız';
-?>
+$wb['server_id_0_error_txt'] = 'Please select a valid Server. Server ID must be > 0.';
+?>
\ No newline at end of file
diff --git a/interface/web/dns/dns_soa_edit.php b/interface/web/dns/dns_soa_edit.php
index ec5ba67c79..aa844d4e8e 100644
--- a/interface/web/dns/dns_soa_edit.php
+++ b/interface/web/dns/dns_soa_edit.php
@@ -302,6 +302,9 @@ function onSubmit() {
 		if($tmp["number"] > 0) {
 			$app->error($app->tform->wordbook["origin_error_unique"]);
 		}
+		
+		//* server_id must be > 0
+		if(isset($this->dataRecord["server_id"]) && $this->dataRecord["server_id"] < 1) $app->tform->errorMessage .= $app->lng("server_id_0_error_txt");
 	}
 	parent::onSubmit();
 }
diff --git a/interface/web/mail/mail_domain_edit.php b/interface/web/mail/mail_domain_edit.php
index 19aa4f91e6..77e15b68fc 100644
--- a/interface/web/mail/mail_domain_edit.php
+++ b/interface/web/mail/mail_domain_edit.php
@@ -283,7 +283,9 @@ class page_action extends tform_actions {
 			$this->dataRecord["domain"] = $app->functions->idn_encode($this->dataRecord["domain"]);
 			$this->dataRecord["domain"] = strtolower($this->dataRecord["domain"]);
 		}
-
+		
+		//* server_id must be > 0
+		if(isset($this->dataRecord["server_id"]) && $this->dataRecord["server_id"] < 1) $app->tform->errorMessage .= $app->lng("server_id_0_error_txt");
 
 		parent::onSubmit();
 	}
diff --git a/interface/web/sites/web_vhost_domain_edit.php b/interface/web/sites/web_vhost_domain_edit.php
index cc476a2276..b51996a416 100644
--- a/interface/web/sites/web_vhost_domain_edit.php
+++ b/interface/web/sites/web_vhost_domain_edit.php
@@ -1188,6 +1188,9 @@ class page_action extends tform_actions {
 
 		//* make sure that the domain is lowercase
 		if(isset($this->dataRecord["domain"])) $this->dataRecord["domain"] = strtolower($this->dataRecord["domain"]);
+		
+		//* server_id must be > 0
+		if(isset($this->dataRecord["server_id"]) && $this->dataRecord["server_id"] < 1) $app->tform->errorMessage .= $app->lng("server_id_0_error_txt");
 
 		//* get the server config for this server
 		$app->uses("getconf");
-- 
GitLab