diff --git a/install/sql/incremental/upd_dev_collection.sql b/install/sql/incremental/upd_dev_collection.sql
index ae90e0fa455ad29b5409f87b6849a7aca7217b8e..2b5e94361bd1f1b5aecffc89a2d76801915bb844 100644
--- a/install/sql/incremental/upd_dev_collection.sql
+++ b/install/sql/incremental/upd_dev_collection.sql
@@ -1,3 +1,8 @@
 ALTER TABLE `mail_user` CHANGE `quota` `quota` BIGINT(20) NOT NULL DEFAULT '0';
 ALTER TABLE `server_php` ADD `sortprio` INT(20) NOT NULL DEFAULT '100' AFTER `active`;
 ALTER TABLE `mail_user` ADD COLUMN `imap_prefix` varchar(255) NULL default NULL AFTER `backup_copies`;
+-- #6456 comodoca.com needs to become sectigo.com
+UPDATE `dns_ssl_ca` SET `ca_issue` = 'sectigo.com' WHERE `ca_issue` = 'comodo.com';
+UPDATE `dns_ssl_ca` SET `ca_issue` = 'sectigo.com' WHERE `ca_issue` = 'comodoca.com';
+UPDATE `dns_ssl_ca` SET `ca_name` = 'Sectigo (formerly Comodo CA)' WHERE `ca_issue` = 'sectigo.com';
+-- not updating the dns_rr table to change all CAA records that have comodo.com / comodoca.com - we should not touch users records imo - TP
diff --git a/install/sql/ispconfig3.sql b/install/sql/ispconfig3.sql
index 61caf9b91c9d54df9a8004335664a61a87ebaba2..75529ab82b50735e6bd00e22f31d791d430514d4 100644
--- a/install/sql/ispconfig3.sql
+++ b/install/sql/ispconfig3.sql
@@ -568,7 +568,7 @@ INSERT INTO `dns_ssl_ca` (`id`, `sys_userid`, `sys_groupid`, `sys_perm_user`, `s
 (NULL, 1, 1, 'riud', 'riud', '', 'Y', 'certSIGN', 'certsign.ro', 'Y', '', 0),
 (NULL, 1, 1, 'riud', 'riud', '', 'Y', 'CFCA', 'cfca.com.cn', 'Y', '', 0),
 (NULL, 1, 1, 'riud', 'riud', '', 'Y', 'Chunghwa Telecom', 'cht.com.tw', 'Y', '', 0),
-(NULL, 1, 1, 'riud', 'riud', '', 'Y', 'Sectigo / Comodo CA', 'comodoca.com', 'Y', '', 0),
+(NULL, 1, 1, 'riud', 'riud', '', 'Y', 'Sectigo (formerly Comodo CA)', 'sectigo.com', 'Y', '', 0),
 (NULL, 1, 1, 'riud', 'riud', '', 'Y', 'D-TRUST', 'd-trust.net', 'Y', '', 0),
 (NULL, 1, 1, 'riud', 'riud', '', 'Y', 'DigiCert', 'digicert.com', 'Y', '', 0),
 (NULL, 1, 1, 'riud', 'riud', '', 'Y', 'DocuSign', 'docusign.fr', 'Y', '', 0),
diff --git a/install/tpl/postfix_3-0.conf.master b/install/tpl/postfix_3-0.conf.master
index ce4fc920ed0c6fccd0b5fcc034d27a1f84490ed1..b0f831883e411d791c4dd99cea6991e9f15d6c0d 100644
--- a/install/tpl/postfix_3-0.conf.master
+++ b/install/tpl/postfix_3-0.conf.master
@@ -14,3 +14,6 @@
 # validate DANE
 smtp_dns_support_level = dnssec
 smtp_tls_security_level = dane
+
+# Disable SMTPUTF8 (until Dovecot supports it: https://git.ispconfig.org/ispconfig/ispconfig3/-/issues/6428)
+smtputf8_enable = no
\ No newline at end of file
diff --git a/install/tpl/server.ini.master b/install/tpl/server.ini.master
index c9949c27937969805bb16bd4eced67c57e7b6843..8c2efefa1b876fd7dee3811b9b301ac89eca78b1 100644
--- a/install/tpl/server.ini.master
+++ b/install/tpl/server.ini.master
@@ -142,6 +142,8 @@ bind_user=root
 bind_group=bind
 bind_zonefiles_dir=/etc/bind
 bind_keyfiles_dir=/etc/bind
+bind_zonefiles_masterprefix=pri.
+bind_zonefiles_slaveprefix=slave/sec.
 named_conf_path=/etc/bind/named.conf
 named_conf_local_path=/etc/bind/named.conf.local
 disable_bind_log=n
diff --git a/interface/lib/classes/tform_base.inc.php b/interface/lib/classes/tform_base.inc.php
index 5dd837a136bfdb62bbda958b92c140b3c26e39bf..25c64409e88c93699f29958b72af18a0f4b92da8 100644
--- a/interface/lib/classes/tform_base.inc.php
+++ b/interface/lib/classes/tform_base.inc.php
@@ -1614,17 +1614,27 @@ class tform_base {
 		return true;
 	}
 
-	function getAuthSQL($perm, $table = '') {
-		if($_SESSION["s"]["user"]["typ"] == 'admin' || $_SESSION['s']['user']['mailuser_id'] > 0) {
+       function getAuthSQL($perm, $table = '', $userid = NULL, $groups  = NULL) {
+               if(($_SESSION["s"]["user"]["typ"] == 'admin' || $_SESSION['s']['user']['mailuser_id'] > 0 ) && $userid == NULL && $groups == NULL) {
 			return '1';
 		} else {
 			if ($table != ''){
 				$table = ' ' . $table . '.';
 			}
-			$groups = ( $_SESSION["s"]["user"]["groups"] ) ? $_SESSION["s"]["user"]["groups"] : 0;
 			$sql = '(';
-			$sql .= "(" . $table . "sys_userid = ".$_SESSION["s"]["user"]["userid"]." AND " . $table . "sys_perm_user like '%$perm%') OR  ";
-			$sql .= "(" . $table . "sys_groupid IN (".$groups.") AND " . $table ."sys_perm_group like '%$perm%') OR ";
+                       if ($userid === NULL) {
+                               $userid = $_SESSION["s"]["user"]["userid"];
+                       }
+                       if ($userid > 0) {
+                               $sql .= "(" . $table . "sys_userid = ".$userid." AND " . $table . "sys_perm_user like '%$perm%') OR  ";
+                       }
+
+                       if ($groups === NULL) {
+                               $groups = ( $_SESSION["s"]["user"]["groups"] ) ? $_SESSION["s"]["user"]["groups"] : 0;
+                       }
+                       if ($groups > 0) {
+                               $sql .= "(" . $table . "sys_groupid IN (".$groups.") AND " . $table ."sys_perm_group like '%$perm%') OR ";
+                       }
 			$sql .= $table . "sys_perm_other like '%$perm%'";
 			$sql .= ')';
 
diff --git a/interface/web/admin/form/server_config.tform.php b/interface/web/admin/form/server_config.tform.php
index 679ebb2b7fae5ddcff4706d56bd391b3142f7bb3..7af535e60042681dd5e952e4953575460968d510 100644
--- a/interface/web/admin/form/server_config.tform.php
+++ b/interface/web/admin/form/server_config.tform.php
@@ -1666,6 +1666,30 @@ $form["tabs"]['dns'] = array(
 			'width' => '40',
 			'maxlength' => '255'
 		),
+		'bind_zonefiles_masterprefix' => array(
+			'datatype' => 'VARCHAR',
+			'formtype' => 'TEXT',
+			'default' => '',
+			'validators' => array( 0 => array ( 	'type' => 'REGEX',
+										'regex' => '/^[a-zA-Z0-9\.\-\_\/]{0,128}$/',
+										'errmsg'=> 'bind_zonefiles_masterprefix_error_regex'),
+			),
+			'value' => '',
+			'width' => '40',
+			'maxlength' => '255'
+		),
+		'bind_zonefiles_slaveprefix' => array(
+			'datatype' => 'VARCHAR',
+			'formtype' => 'TEXT',
+			'default' => '',
+			'validators' => array( 0 => array ( 	'type' => 'REGEX',
+										'regex' => '/^[a-zA-Z0-9\.\-\_\/]{0,128}$/',
+										'errmsg'=> 'bind_zonefiles_slaveprefix_error_regex'),
+			),
+			'value' => '',
+			'width' => '40',
+			'maxlength' => '255'
+		),
 		'named_conf_path' => array(
 			'datatype' => 'VARCHAR',
 			'formtype' => 'TEXT',
diff --git a/interface/web/admin/form/system_config.tform.php b/interface/web/admin/form/system_config.tform.php
index 22212b8b749eedb6fd492a21139ed3cdce10f3b6..fb93fcaf4785481e8fe746dfb3e473b03120f1f9 100644
--- a/interface/web/admin/form/system_config.tform.php
+++ b/interface/web/admin/form/system_config.tform.php
@@ -661,6 +661,12 @@ $form["tabs"]['misc'] = array (
 			'default' => 'y',
 			'value'  => array(0 => 'n', 1 => 'y')
 		),
+		'show_delete_on_forms' => array (
+			'datatype' => 'VARCHAR',
+			'formtype' => 'CHECKBOX',
+			'default' => 'n',
+			'value'  => array(0 => 'n', 1 => 'y')
+		),
 		'maintenance_mode' => array (
 			'datatype' => 'VARCHAR',
 			'formtype' => 'CHECKBOX',
diff --git a/interface/web/admin/lib/lang/ar_server_config.lng b/interface/web/admin/lib/lang/ar_server_config.lng
index a58dbaaf442c274b590cbd7727519b9b22977c44..7a275d98f1dec08021aff73f6c1750f1e8003cbe 100644
--- a/interface/web/admin/lib/lang/ar_server_config.lng
+++ b/interface/web/admin/lib/lang/ar_server_config.lng
@@ -342,5 +342,12 @@ $wb['tooltip_jailkit_hardlinks_txt'] = 'Using hardlinks is insecure, but saves d
 $wb['jailkit_hardlinks_allow_txt'] = 'Allow hardlinks within the jail';
 $wb['jailkit_hardlinks_no_txt'] = 'No, remove hardlinked files';
 $wb['jailkit_hardlinks_yes_txt'] = 'Yes, use hardlinks if possible';
+$wb['bind_zonefiles_masterprefix_txt'] = 'BIND master zonefiles prefix';
+$wb['bind_zonefiles_slaveprefix_txt'] = 'BIND slave zonefiles prefix';
+$wb['bind_keyfiles_dir_txt'] = 'BIND keyfiles directory';
+$wb['bind_keyfiles_dir_error_empty'] = 'BIND keyfiles directory is empty.';
+$wb['bind_zonefiles_masterprefix_error_regex'] = 'Invalid BIND zonefiles master prefix.';
+$wb['bind_zonefiles_slaveprefix_error_regex'] = 'Invalid BIND zonefiles slave prefix.';
+$wb['bind_keyfiles_dir_error_regex'] = 'Invalid BIND keyfiles directory.';
 $wb['mailbox_soft_delete_txt'] = 'Mailbox soft delete';
 $wb['mailbox_soft_delete_info_txt'] = 'by default cleaned up after 7 days.';
diff --git a/interface/web/admin/lib/lang/ar_system_config.lng b/interface/web/admin/lib/lang/ar_system_config.lng
index 4ae8ad3416b7d0a084dd880830c7ab17797145ee..f8a3284170c39d6b7e5f08119675654cb77e333a 100644
--- a/interface/web/admin/lib/lang/ar_system_config.lng
+++ b/interface/web/admin/lib/lang/ar_system_config.lng
@@ -107,4 +107,5 @@ $wb['show_aps_menu_note_txt'] = 'APS will be removed from the panel in the near
 $wb['show_aps_menu_note_url_txt'] = 'Click here for more information.';
 $wb['dns_show_zoneexport_txt'] = 'Show zone export.';
 $wb['le_caa_autocreate_options_txt'] = 'Enable automatic creation of CAA record on issuing LE';
+$wb['show_delete_on_forms_txt'] = 'Show delete button on edit forms';
 ?>
diff --git a/interface/web/admin/lib/lang/bg_server_config.lng b/interface/web/admin/lib/lang/bg_server_config.lng
index c856e7640f22a2ff2403c35f690ad969c44ffbf5..1fd8c9d3aa6d5a135ba3b7c70ec27e1c9c4e12a6 100644
--- a/interface/web/admin/lib/lang/bg_server_config.lng
+++ b/interface/web/admin/lib/lang/bg_server_config.lng
@@ -342,5 +342,12 @@ $wb['tooltip_jailkit_hardlinks_txt'] = 'Using hardlinks is insecure, but saves d
 $wb['jailkit_hardlinks_allow_txt'] = 'Allow hardlinks within the jail';
 $wb['jailkit_hardlinks_no_txt'] = 'No, remove hardlinked files';
 $wb['jailkit_hardlinks_yes_txt'] = 'Yes, use hardlinks if possible';
+$wb['bind_zonefiles_masterprefix_txt'] = 'BIND master zonefiles prefix';
+$wb['bind_zonefiles_slaveprefix_txt'] = 'BIND slave zonefiles prefix';
+$wb['bind_keyfiles_dir_txt'] = 'BIND keyfiles directory';
+$wb['bind_keyfiles_dir_error_empty'] = 'BIND keyfiles directory is empty.';
+$wb['bind_zonefiles_masterprefix_error_regex'] = 'Invalid BIND zonefiles master prefix.';
+$wb['bind_zonefiles_slaveprefix_error_regex'] = 'Invalid BIND zonefiles slave prefix.';
+$wb['bind_keyfiles_dir_error_regex'] = 'Invalid BIND keyfiles directory.';
 $wb['mailbox_soft_delete_txt'] = 'Mailbox soft delete';
 $wb['mailbox_soft_delete_info_txt'] = 'by default cleaned up after 7 days.';
diff --git a/interface/web/admin/lib/lang/bg_system_config.lng b/interface/web/admin/lib/lang/bg_system_config.lng
index 2029f38ed2299bdc44dda1fca784414558e9be5a..46c3a37c82cbd53bd77fd0d3e9d1df1c67a7a2ff 100644
--- a/interface/web/admin/lib/lang/bg_system_config.lng
+++ b/interface/web/admin/lib/lang/bg_system_config.lng
@@ -107,4 +107,5 @@ $wb['show_aps_menu_note_txt'] = 'APS will be removed from the panel in the near
 $wb['show_aps_menu_note_url_txt'] = 'Click here for more information.';
 $wb['dns_show_zoneexport_txt'] = 'Show zone export.';
 $wb['le_caa_autocreate_options_txt'] = 'Enable automatic creation of CAA record on issuing LE';
+$wb['show_delete_on_forms_txt'] = 'Show delete button on edit forms';
 ?>
diff --git a/interface/web/admin/lib/lang/br_server_config.lng b/interface/web/admin/lib/lang/br_server_config.lng
index 1041676ceb8e7768b22f4fad64451671ba6596fd..b86729d0b20956fd336c01d633acafbe8ac55db3 100644
--- a/interface/web/admin/lib/lang/br_server_config.lng
+++ b/interface/web/admin/lib/lang/br_server_config.lng
@@ -342,5 +342,12 @@ $wb['tooltip_jailkit_hardlinks_txt'] = 'Usar links físicos é inseguro, mas eco
 $wb['jailkit_hardlinks_allow_txt'] = 'Permitir links físicos enjaulados';
 $wb['jailkit_hardlinks_no_txt'] = 'Não, remover arquivos de links físicos';
 $wb['jailkit_hardlinks_yes_txt'] = 'Sim, usar links físicos quando possível';
+$wb['bind_zonefiles_masterprefix_txt'] = 'BIND master zonefiles prefix';
+$wb['bind_zonefiles_slaveprefix_txt'] = 'BIND slave zonefiles prefix';
+$wb['bind_keyfiles_dir_txt'] = 'BIND keyfiles directory';
+$wb['bind_keyfiles_dir_error_empty'] = 'BIND keyfiles directory is empty.';
+$wb['bind_zonefiles_masterprefix_error_regex'] = 'Invalid BIND zonefiles master prefix.';
+$wb['bind_zonefiles_slaveprefix_error_regex'] = 'Invalid BIND zonefiles slave prefix.';
+$wb['bind_keyfiles_dir_error_regex'] = 'Invalid BIND keyfiles directory.';
 $wb['mailbox_soft_delete_txt'] = 'Mailbox soft delete';
 $wb['mailbox_soft_delete_info_txt'] = 'by default cleaned up after 7 days.';
diff --git a/interface/web/admin/lib/lang/br_system_config.lng b/interface/web/admin/lib/lang/br_system_config.lng
index 1128081d2de44f5f1d2767aa8f700e330093973d..7de280251279269be11539af476296c9a6cbca97 100644
--- a/interface/web/admin/lib/lang/br_system_config.lng
+++ b/interface/web/admin/lib/lang/br_system_config.lng
@@ -108,3 +108,4 @@ $wb['show_aps_menu_note_url_txt'] = 'Click here for more information.';
 $wb['monitor_key_txt'] = 'Senha do Monitor';
 $wb['dns_show_zoneexport_txt'] = 'Show zone export.';
 $wb['le_caa_autocreate_options_txt'] = 'Enable automatic creation of CAA record on issuing LE';
+$wb['show_delete_on_forms_txt'] = 'Show delete button on edit forms';
diff --git a/interface/web/admin/lib/lang/ca_server_config.lng b/interface/web/admin/lib/lang/ca_server_config.lng
index 3d4ad3a70ccccede67f36108b25e4b92961fef71..d9e9877805d759b92c4eb00ebfbe7a85d78b37dd 100644
--- a/interface/web/admin/lib/lang/ca_server_config.lng
+++ b/interface/web/admin/lib/lang/ca_server_config.lng
@@ -342,5 +342,12 @@ $wb['tooltip_jailkit_hardlinks_txt'] = 'Using hardlinks is insecure, but saves d
 $wb['jailkit_hardlinks_allow_txt'] = 'Allow hardlinks within the jail';
 $wb['jailkit_hardlinks_no_txt'] = 'No, remove hardlinked files';
 $wb['jailkit_hardlinks_yes_txt'] = 'Yes, use hardlinks if possible';
+$wb['bind_zonefiles_masterprefix_txt'] = 'BIND master zonefiles prefix';
+$wb['bind_zonefiles_slaveprefix_txt'] = 'BIND slave zonefiles prefix';
+$wb['bind_keyfiles_dir_txt'] = 'BIND keyfiles directory';
+$wb['bind_keyfiles_dir_error_empty'] = 'BIND keyfiles directory is empty.';
+$wb['bind_zonefiles_masterprefix_error_regex'] = 'Invalid BIND zonefiles master prefix.';
+$wb['bind_zonefiles_slaveprefix_error_regex'] = 'Invalid BIND zonefiles slave prefix.';
+$wb['bind_keyfiles_dir_error_regex'] = 'Invalid BIND keyfiles directory.';
 $wb['mailbox_soft_delete_txt'] = 'Mailbox soft delete';
 $wb['mailbox_soft_delete_info_txt'] = 'by default cleaned up after 7 days.';
diff --git a/interface/web/admin/lib/lang/ca_system_config.lng b/interface/web/admin/lib/lang/ca_system_config.lng
index 0c025306087190f150de459d187a808d4b0e1461..2ad762e2329b405479ca4b644cb239728e37045c 100644
--- a/interface/web/admin/lib/lang/ca_system_config.lng
+++ b/interface/web/admin/lib/lang/ca_system_config.lng
@@ -107,4 +107,5 @@ $wb['show_aps_menu_note_txt'] = 'APS will be removed from the panel in the near
 $wb['show_aps_menu_note_url_txt'] = 'Click here for more information.';
 $wb['dns_show_zoneexport_txt'] = 'Show zone export.';
 $wb['le_caa_autocreate_options_txt'] = 'Enable automatic creation of CAA record on issuing LE';
+$wb['show_delete_on_forms_txt'] = 'Show delete button on edit forms';
 ?>
diff --git a/interface/web/admin/lib/lang/cz_server_config.lng b/interface/web/admin/lib/lang/cz_server_config.lng
index bdc1152cbc8fb47580f456932221a30c8567cc04..ec90cffe8b5408f9427a0e0d6c0333768c6b2734 100644
--- a/interface/web/admin/lib/lang/cz_server_config.lng
+++ b/interface/web/admin/lib/lang/cz_server_config.lng
@@ -342,5 +342,12 @@ $wb['tooltip_jailkit_hardlinks_txt'] = 'Using hardlinks is insecure, but saves d
 $wb['jailkit_hardlinks_allow_txt'] = 'Allow hardlinks within the jail';
 $wb['jailkit_hardlinks_no_txt'] = 'Ne, odstranit soubory s pevným odkazem';
 $wb['jailkit_hardlinks_yes_txt'] = 'Ano, pokud je to možné, použijte pevné odkazy';
+$wb['bind_zonefiles_masterprefix_txt'] = 'BIND master zonefiles prefix';
+$wb['bind_zonefiles_slaveprefix_txt'] = 'BIND slave zonefiles prefix';
+$wb['bind_keyfiles_dir_txt'] = 'BIND keyfiles directory';
+$wb['bind_keyfiles_dir_error_empty'] = 'BIND keyfiles directory is empty.';
+$wb['bind_zonefiles_masterprefix_error_regex'] = 'Invalid BIND zonefiles master prefix.';
+$wb['bind_zonefiles_slaveprefix_error_regex'] = 'Invalid BIND zonefiles slave prefix.';
+$wb['bind_keyfiles_dir_error_regex'] = 'Invalid BIND keyfiles directory.';
 $wb['mailbox_soft_delete_txt'] = 'Mailbox soft delete';
 $wb['mailbox_soft_delete_info_txt'] = 'by default cleaned up after 7 days.';
diff --git a/interface/web/admin/lib/lang/cz_system_config.lng b/interface/web/admin/lib/lang/cz_system_config.lng
index fb0e65d5e7cdc4fc1d8276d1a1a23c54212e61fd..5b93f9e724ab550abe608f9f92b661ad1c917f2d 100644
--- a/interface/web/admin/lib/lang/cz_system_config.lng
+++ b/interface/web/admin/lib/lang/cz_system_config.lng
@@ -108,3 +108,4 @@ $wb['show_aps_menu_note_url_txt'] = 'Click here for more information.';
 $wb['monitor_key_txt'] = 'Monitor keyword';
 $wb['dns_show_zoneexport_txt'] = 'Show zone export.';
 $wb['le_caa_autocreate_options_txt'] = 'Enable automatic creation of CAA record on issuing LE';
+$wb['show_delete_on_forms_txt'] = 'Show delete button on edit forms';
diff --git a/interface/web/admin/lib/lang/de_server_config.lng b/interface/web/admin/lib/lang/de_server_config.lng
index 42046a2e44eb896e3c01989c7e3cba7b9ccec51a..f6a89c702be68b2217235f48b0599aea75bedc5f 100644
--- a/interface/web/admin/lib/lang/de_server_config.lng
+++ b/interface/web/admin/lib/lang/de_server_config.lng
@@ -344,3 +344,10 @@ $wb['jailkit_hardlinks_no_txt'] = 'Nein, entferne hardgelinkte Dateien';
 $wb['jailkit_hardlinks_yes_txt'] = 'Ja, benutze hardlinks wenn möglich';
 $wb['mailbox_soft_delete_txt'] = 'Postfach Soft-Löschung';
 $wb['mailbox_soft_delete_info_txt'] = 'wird standardmäßig nach 7 Tagen gelöscht.';
+$wb['bind_zonefiles_masterprefix_txt'] = 'BIND master zonefiles prefix';
+$wb['bind_zonefiles_slaveprefix_txt'] = 'BIND slave zonefiles prefix';
+$wb['bind_keyfiles_dir_txt'] = 'BIND keyfiles directory';
+$wb['bind_keyfiles_dir_error_empty'] = 'BIND keyfiles directory is empty.';
+$wb['bind_zonefiles_masterprefix_error_regex'] = 'Invalid BIND zonefiles master prefix.';
+$wb['bind_zonefiles_slaveprefix_error_regex'] = 'Invalid BIND zonefiles slave prefix.';
+$wb['bind_keyfiles_dir_error_regex'] = 'Invalid BIND keyfiles directory.';
diff --git a/interface/web/admin/lib/lang/de_system_config.lng b/interface/web/admin/lib/lang/de_system_config.lng
index ed4c26f61de5a9b9ac276afc12d1c9c109f150bb..2c80ba65533b74bd45732aca118c5696f217ccad 100644
--- a/interface/web/admin/lib/lang/de_system_config.lng
+++ b/interface/web/admin/lib/lang/de_system_config.lng
@@ -107,4 +107,5 @@ $wb['show_aps_menu_note_txt'] = 'APS will be removed from the panel in the near
 $wb['show_aps_menu_note_url_txt'] = 'Click here for more information.';
 $wb['dns_show_zoneexport_txt'] = 'Show zone export.';
 $wb['le_caa_autocreate_options_txt'] = 'Automatische Erstellung des CAA-Records bei LE Ausstellung aktivieren';
+$wb['show_delete_on_forms_txt'] = 'Show delete button on edit forms';
 ?>
diff --git a/interface/web/admin/lib/lang/dk_server_config.lng b/interface/web/admin/lib/lang/dk_server_config.lng
index d7b081150d835177796a524cf2c7c4731a1edd3d..7a26e89479925ae6145bd204d73761510a6ee0f0 100644
--- a/interface/web/admin/lib/lang/dk_server_config.lng
+++ b/interface/web/admin/lib/lang/dk_server_config.lng
@@ -342,5 +342,12 @@ $wb['tooltip_jailkit_hardlinks_txt'] = 'Using hardlinks is insecure, but saves d
 $wb['jailkit_hardlinks_allow_txt'] = 'Allow hardlinks within the jail';
 $wb['jailkit_hardlinks_no_txt'] = 'No, remove hardlinked files';
 $wb['jailkit_hardlinks_yes_txt'] = 'Yes, use hardlinks if possible';
+$wb['bind_zonefiles_masterprefix_txt'] = 'BIND master zonefiles prefix';
+$wb['bind_zonefiles_slaveprefix_txt'] = 'BIND slave zonefiles prefix';
+$wb['bind_keyfiles_dir_txt'] = 'BIND keyfiles directory';
+$wb['bind_keyfiles_dir_error_empty'] = 'BIND keyfiles directory is empty.';
+$wb['bind_zonefiles_masterprefix_error_regex'] = 'Invalid BIND zonefiles master prefix.';
+$wb['bind_zonefiles_slaveprefix_error_regex'] = 'Invalid BIND zonefiles slave prefix.';
+$wb['bind_keyfiles_dir_error_regex'] = 'Invalid BIND keyfiles directory.';
 $wb['mailbox_soft_delete_txt'] = 'Mailbox soft delete';
 $wb['mailbox_soft_delete_info_txt'] = 'by default cleaned up after 7 days.';
diff --git a/interface/web/admin/lib/lang/dk_system_config.lng b/interface/web/admin/lib/lang/dk_system_config.lng
index 971253aae773517e8cd56f0a0fbd1503e5508d88..7deb9e9974eea3b8a699cd9801285998c7b113ae 100644
--- a/interface/web/admin/lib/lang/dk_system_config.lng
+++ b/interface/web/admin/lib/lang/dk_system_config.lng
@@ -107,4 +107,5 @@ $wb['show_aps_menu_note_txt'] = 'APS will be removed from the panel in the near
 $wb['show_aps_menu_note_url_txt'] = 'Click here for more information.';
 $wb['dns_show_zoneexport_txt'] = 'Show zone export.';
 $wb['le_caa_autocreate_options_txt'] = 'Enable automatic creation of CAA record on issuing LE';
+$wb['show_delete_on_forms_txt'] = 'Show delete button on edit forms';
 ?>
diff --git a/interface/web/admin/lib/lang/el_server_config.lng b/interface/web/admin/lib/lang/el_server_config.lng
index 40af42057f56a1edac7f89be55462fdbd0ef073d..1545cff229577e07cb1b653f468f55b35342b968 100644
--- a/interface/web/admin/lib/lang/el_server_config.lng
+++ b/interface/web/admin/lib/lang/el_server_config.lng
@@ -342,5 +342,12 @@ $wb['tooltip_jailkit_hardlinks_txt'] = 'Using hardlinks is insecure, but saves d
 $wb['jailkit_hardlinks_allow_txt'] = 'Allow hardlinks within the jail';
 $wb['jailkit_hardlinks_no_txt'] = 'No, remove hardlinked files';
 $wb['jailkit_hardlinks_yes_txt'] = 'Yes, use hardlinks if possible';
+$wb['bind_zonefiles_masterprefix_txt'] = 'BIND master zonefiles prefix';
+$wb['bind_zonefiles_slaveprefix_txt'] = 'BIND slave zonefiles prefix';
+$wb['bind_keyfiles_dir_txt'] = 'BIND keyfiles directory';
+$wb['bind_keyfiles_dir_error_empty'] = 'BIND keyfiles directory is empty.';
+$wb['bind_zonefiles_masterprefix_error_regex'] = 'Invalid BIND zonefiles master prefix.';
+$wb['bind_zonefiles_slaveprefix_error_regex'] = 'Invalid BIND zonefiles slave prefix.';
+$wb['bind_keyfiles_dir_error_regex'] = 'Invalid BIND keyfiles directory.';
 $wb['mailbox_soft_delete_txt'] = 'Mailbox soft delete';
 $wb['mailbox_soft_delete_info_txt'] = 'by default cleaned up after 7 days.';
diff --git a/interface/web/admin/lib/lang/el_system_config.lng b/interface/web/admin/lib/lang/el_system_config.lng
index 8bfe8012de1d9c98b30a55ebdd1cc051480b31a7..5061cccec7a84e3173bd370f752b0ac18941ed04 100644
--- a/interface/web/admin/lib/lang/el_system_config.lng
+++ b/interface/web/admin/lib/lang/el_system_config.lng
@@ -107,4 +107,5 @@ $wb['show_aps_menu_note_txt'] = 'APS will be removed from the panel in the near
 $wb['show_aps_menu_note_url_txt'] = 'Click here for more information.';
 $wb['dns_show_zoneexport_txt'] = 'Show zone export.';
 $wb['le_caa_autocreate_options_txt'] = 'Enable automatic creation of CAA record on issuing LE';
+$wb['show_delete_on_forms_txt'] = 'Show delete button on edit forms';
 ?>
diff --git a/interface/web/admin/lib/lang/en_server_config.lng b/interface/web/admin/lib/lang/en_server_config.lng
index 363f528fba2d713e819e112578797a15b7c1b782..1ee224a44a48eaf94338978cfc975f1c0f0170be 100644
--- a/interface/web/admin/lib/lang/en_server_config.lng
+++ b/interface/web/admin/lib/lang/en_server_config.lng
@@ -91,6 +91,8 @@ $wb['apps_vhost_servername_txt'] = 'Apps-vhost Domain';
 $wb['bind_user_txt'] = 'BIND User';
 $wb['bind_group_txt'] = 'BIND Group';
 $wb['bind_zonefiles_dir_txt'] = 'BIND zonefiles directory';
+$wb['bind_zonefiles_masterprefix_txt'] = 'BIND master zonefiles prefix';
+$wb['bind_zonefiles_slaveprefix_txt'] = 'BIND slave zonefiles prefix';
 $wb['bind_keyfiles_dir_txt'] = 'BIND keyfiles directory';
 $wb['named_conf_path_txt'] = 'BIND named.conf path';
 $wb['bind_user_error_empty'] = 'BIND user is empty.';
@@ -283,6 +285,8 @@ $wb['awstats_buildstaticpages_pl_error_regex'] = 'Invalid awstats_buildstaticpag
 $wb['invalid_bind_user_txt'] = 'Invalid BIND user.';
 $wb['invalid_bind_group_txt'] = 'Invalid BIND group.';
 $wb['bind_zonefiles_dir_error_regex'] = 'Invalid BIND zonefiles directory.';
+$wb['bind_zonefiles_masterprefix_error_regex'] = 'Invalid BIND zonefiles master prefix.';
+$wb['bind_zonefiles_slaveprefix_error_regex'] = 'Invalid BIND zonefiles slave prefix.';
 $wb['bind_keyfiles_dir_error_regex'] = 'Invalid BIND keyfiles directory.';
 $wb['named_conf_path_error_regex'] = 'Invalid named.conf path.';
 $wb['named_conf_local_path_error_regex'] = 'Invalid named.conf.local path.';
diff --git a/interface/web/admin/lib/lang/en_system_config.lng b/interface/web/admin/lib/lang/en_system_config.lng
index 9cf04103bbec468911d70dcf98f79eadcd743010..375aade367685cb009bdc221152d80785cd7badb 100644
--- a/interface/web/admin/lib/lang/en_system_config.lng
+++ b/interface/web/admin/lib/lang/en_system_config.lng
@@ -108,4 +108,5 @@ $wb['show_aps_menu_note_txt'] = 'APS will be removed from the panel in the near
 $wb['show_aps_menu_note_url_txt'] = 'Click here for more information.';
 $wb['dns_show_zoneexport_txt'] = 'Show zone export.';
 $wb['le_caa_autocreate_options_txt'] = 'Enable automatic creation of CAA record on issuing LE';
+$wb['show_delete_on_forms_txt'] = 'Show delete button on edit forms';
 ?>
diff --git a/interface/web/admin/lib/lang/es_server_config.lng b/interface/web/admin/lib/lang/es_server_config.lng
index 528dfe36afd0f2e36cf87a1894fcf4e243232956..a4e61d142d4575b048286ceb780950b28ed3f670 100644
--- a/interface/web/admin/lib/lang/es_server_config.lng
+++ b/interface/web/admin/lib/lang/es_server_config.lng
@@ -342,5 +342,12 @@ $wb['tooltip_jailkit_hardlinks_txt'] = 'Using hardlinks is insecure, but saves d
 $wb['jailkit_hardlinks_allow_txt'] = 'Allow hardlinks within the jail';
 $wb['jailkit_hardlinks_no_txt'] = 'No, remove hardlinked files';
 $wb['jailkit_hardlinks_yes_txt'] = 'Yes, use hardlinks if possible';
+$wb['bind_zonefiles_masterprefix_txt'] = 'BIND master zonefiles prefix';
+$wb['bind_zonefiles_slaveprefix_txt'] = 'BIND slave zonefiles prefix';
+$wb['bind_keyfiles_dir_txt'] = 'BIND keyfiles directory';
+$wb['bind_keyfiles_dir_error_empty'] = 'BIND keyfiles directory is empty.';
+$wb['bind_zonefiles_masterprefix_error_regex'] = 'Invalid BIND zonefiles master prefix.';
+$wb['bind_zonefiles_slaveprefix_error_regex'] = 'Invalid BIND zonefiles slave prefix.';
+$wb['bind_keyfiles_dir_error_regex'] = 'Invalid BIND keyfiles directory.';
 $wb['mailbox_soft_delete_txt'] = 'Mailbox soft delete';
 $wb['mailbox_soft_delete_info_txt'] = 'by default cleaned up after 7 days.';
diff --git a/interface/web/admin/lib/lang/es_system_config.lng b/interface/web/admin/lib/lang/es_system_config.lng
index 844c19db5884f2efbbd62eb6fc8ed40338d775f9..b1dec51d66ae44b63efc66e432c935ec1779fea0 100644
--- a/interface/web/admin/lib/lang/es_system_config.lng
+++ b/interface/web/admin/lib/lang/es_system_config.lng
@@ -107,4 +107,5 @@ $wb['show_aps_menu_note_txt'] = 'APS will be removed from the panel in the near
 $wb['show_aps_menu_note_url_txt'] = 'Click here for more information.';
 $wb['dns_show_zoneexport_txt'] = 'Show zone export.';
 $wb['le_caa_autocreate_options_txt'] = 'Enable automatic creation of CAA record on issuing LE';
+$wb['show_delete_on_forms_txt'] = 'Show delete button on edit forms';
 ?>
diff --git a/interface/web/admin/lib/lang/fi_server_config.lng b/interface/web/admin/lib/lang/fi_server_config.lng
index 906013f7858a1cc25e9c4cdbd0dbd3c7dbb089ac..8728d603821e3f434bc4c6c0488df1ae2091ccb9 100644
--- a/interface/web/admin/lib/lang/fi_server_config.lng
+++ b/interface/web/admin/lib/lang/fi_server_config.lng
@@ -342,5 +342,12 @@ $wb['tooltip_jailkit_hardlinks_txt'] = 'Using hardlinks is insecure, but saves d
 $wb['jailkit_hardlinks_allow_txt'] = 'Allow hardlinks within the jail';
 $wb['jailkit_hardlinks_no_txt'] = 'No, remove hardlinked files';
 $wb['jailkit_hardlinks_yes_txt'] = 'Yes, use hardlinks if possible';
+$wb['bind_zonefiles_masterprefix_txt'] = 'BIND master zonefiles prefix';
+$wb['bind_zonefiles_slaveprefix_txt'] = 'BIND slave zonefiles prefix';
+$wb['bind_keyfiles_dir_txt'] = 'BIND keyfiles directory';
+$wb['bind_keyfiles_dir_error_empty'] = 'BIND keyfiles directory is empty.';
+$wb['bind_zonefiles_masterprefix_error_regex'] = 'Invalid BIND zonefiles master prefix.';
+$wb['bind_zonefiles_slaveprefix_error_regex'] = 'Invalid BIND zonefiles slave prefix.';
+$wb['bind_keyfiles_dir_error_regex'] = 'Invalid BIND keyfiles directory.';
 $wb['mailbox_soft_delete_txt'] = 'Mailbox soft delete';
 $wb['mailbox_soft_delete_info_txt'] = 'by default cleaned up after 7 days.';
diff --git a/interface/web/admin/lib/lang/fi_system_config.lng b/interface/web/admin/lib/lang/fi_system_config.lng
index 4b4bf32cc03589a7f93bf697bbe51af1e618d5e7..277d3e0cfc9581011151ef6a162b56c403130b9e 100644
--- a/interface/web/admin/lib/lang/fi_system_config.lng
+++ b/interface/web/admin/lib/lang/fi_system_config.lng
@@ -107,4 +107,5 @@ $wb['show_aps_menu_note_txt'] = 'APS will be removed from the panel in the near
 $wb['show_aps_menu_note_url_txt'] = 'Click here for more information.';
 $wb['dns_show_zoneexport_txt'] = 'Show zone export.';
 $wb['le_caa_autocreate_options_txt'] = 'Enable automatic creation of CAA record on issuing LE';
+$wb['show_delete_on_forms_txt'] = 'Show delete button on edit forms';
 ?>
diff --git a/interface/web/admin/lib/lang/fr_server_config.lng b/interface/web/admin/lib/lang/fr_server_config.lng
index 274c2b6804d2e4614db220eb40daeeaa33386c7f..73835ed9296d85436c377f2f817d58c9284cc525 100644
--- a/interface/web/admin/lib/lang/fr_server_config.lng
+++ b/interface/web/admin/lib/lang/fr_server_config.lng
@@ -342,5 +342,12 @@ $wb['tooltip_jailkit_hardlinks_txt'] = 'Using hardlinks is insecure, but saves d
 $wb['jailkit_hardlinks_allow_txt'] = 'Allow hardlinks within the jail';
 $wb['jailkit_hardlinks_no_txt'] = 'No, remove hardlinked files';
 $wb['jailkit_hardlinks_yes_txt'] = 'Yes, use hardlinks if possible';
+$wb['bind_zonefiles_masterprefix_txt'] = 'BIND master zonefiles prefix';
+$wb['bind_zonefiles_slaveprefix_txt'] = 'BIND slave zonefiles prefix';
+$wb['bind_keyfiles_dir_txt'] = 'BIND keyfiles directory';
+$wb['bind_keyfiles_dir_error_empty'] = 'BIND keyfiles directory is empty.';
+$wb['bind_zonefiles_masterprefix_error_regex'] = 'Invalid BIND zonefiles master prefix.';
+$wb['bind_zonefiles_slaveprefix_error_regex'] = 'Invalid BIND zonefiles slave prefix.';
+$wb['bind_keyfiles_dir_error_regex'] = 'Invalid BIND keyfiles directory.';
 $wb['mailbox_soft_delete_txt'] = 'Mailbox soft delete';
 $wb['mailbox_soft_delete_info_txt'] = 'by default cleaned up after 7 days.';
diff --git a/interface/web/admin/lib/lang/fr_system_config.lng b/interface/web/admin/lib/lang/fr_system_config.lng
index 801c27b5dfdc71104a4ed7dc09a070967b08f9bf..e895ff571fdffa15bc4a4338e66c251f18f33741 100644
--- a/interface/web/admin/lib/lang/fr_system_config.lng
+++ b/interface/web/admin/lib/lang/fr_system_config.lng
@@ -107,4 +107,5 @@ $wb['show_aps_menu_note_txt'] = 'APS will be removed from the panel in the near
 $wb['show_aps_menu_note_url_txt'] = 'Click here for more information.';
 $wb['dns_show_zoneexport_txt'] = 'Show zone export.';
 $wb['le_caa_autocreate_options_txt'] = 'Enable automatic creation of CAA record on issuing LE';
+$wb['show_delete_on_forms_txt'] = 'Show delete button on edit forms';
 ?>
diff --git a/interface/web/admin/lib/lang/hr_server_config.lng b/interface/web/admin/lib/lang/hr_server_config.lng
index 5d35d0d33f0f54f2d3db52e00a4d392d84adb9b0..a41ec6f6fb7c4e462a89f69a78892677d648e100 100644
--- a/interface/web/admin/lib/lang/hr_server_config.lng
+++ b/interface/web/admin/lib/lang/hr_server_config.lng
@@ -342,5 +342,12 @@ $wb['tooltip_jailkit_hardlinks_txt'] = 'Using hardlinks is insecure, but saves d
 $wb['jailkit_hardlinks_allow_txt'] = 'Allow hardlinks within the jail';
 $wb['jailkit_hardlinks_no_txt'] = 'No, remove hardlinked files';
 $wb['jailkit_hardlinks_yes_txt'] = 'Yes, use hardlinks if possible';
+$wb['bind_zonefiles_masterprefix_txt'] = 'BIND master zonefiles prefix';
+$wb['bind_zonefiles_slaveprefix_txt'] = 'BIND slave zonefiles prefix';
+$wb['bind_keyfiles_dir_txt'] = 'BIND keyfiles directory';
+$wb['bind_keyfiles_dir_error_empty'] = 'BIND keyfiles directory is empty.';
+$wb['bind_zonefiles_masterprefix_error_regex'] = 'Invalid BIND zonefiles master prefix.';
+$wb['bind_zonefiles_slaveprefix_error_regex'] = 'Invalid BIND zonefiles slave prefix.';
+$wb['bind_keyfiles_dir_error_regex'] = 'Invalid BIND keyfiles directory.';
 $wb['mailbox_soft_delete_txt'] = 'Mailbox soft delete';
 $wb['mailbox_soft_delete_info_txt'] = 'by default cleaned up after 7 days.';
diff --git a/interface/web/admin/lib/lang/hr_system_config.lng b/interface/web/admin/lib/lang/hr_system_config.lng
index 87fcfff64580e1243f284a794e102e625b15a513..0acdcbc95ebdd150eea011b3992a45579c41c84d 100644
--- a/interface/web/admin/lib/lang/hr_system_config.lng
+++ b/interface/web/admin/lib/lang/hr_system_config.lng
@@ -107,4 +107,5 @@ $wb['show_aps_menu_note_txt'] = 'APS will be removed from the panel in the near
 $wb['show_aps_menu_note_url_txt'] = 'Click here for more information.';
 $wb['dns_show_zoneexport_txt'] = 'Show zone export.';
 $wb['le_caa_autocreate_options_txt'] = 'Enable automatic creation of CAA record on issuing LE';
+$wb['show_delete_on_forms_txt'] = 'Show delete button on edit forms';
 ?>
diff --git a/interface/web/admin/lib/lang/hu_server_config.lng b/interface/web/admin/lib/lang/hu_server_config.lng
index 74a5b15701a1cfe7e62aceae242b43380a60d3ce..a065e10c9f3cf0ccf7eb9d44a85e70c5efbf87d2 100644
--- a/interface/web/admin/lib/lang/hu_server_config.lng
+++ b/interface/web/admin/lib/lang/hu_server_config.lng
@@ -342,5 +342,12 @@ $wb['tooltip_jailkit_hardlinks_txt'] = 'Using hardlinks is insecure, but saves d
 $wb['jailkit_hardlinks_allow_txt'] = 'Allow hardlinks within the jail';
 $wb['jailkit_hardlinks_no_txt'] = 'No, remove hardlinked files';
 $wb['jailkit_hardlinks_yes_txt'] = 'Yes, use hardlinks if possible';
+$wb['bind_zonefiles_masterprefix_txt'] = 'BIND master zonefiles prefix';
+$wb['bind_zonefiles_slaveprefix_txt'] = 'BIND slave zonefiles prefix';
+$wb['bind_keyfiles_dir_txt'] = 'BIND keyfiles directory';
+$wb['bind_keyfiles_dir_error_empty'] = 'BIND keyfiles directory is empty.';
+$wb['bind_zonefiles_masterprefix_error_regex'] = 'Invalid BIND zonefiles master prefix.';
+$wb['bind_zonefiles_slaveprefix_error_regex'] = 'Invalid BIND zonefiles slave prefix.';
+$wb['bind_keyfiles_dir_error_regex'] = 'Invalid BIND keyfiles directory.';
 $wb['mailbox_soft_delete_txt'] = 'Mailbox soft delete';
 $wb['mailbox_soft_delete_info_txt'] = 'by default cleaned up after 7 days.';
diff --git a/interface/web/admin/lib/lang/hu_system_config.lng b/interface/web/admin/lib/lang/hu_system_config.lng
index cdb31136622768878f44c3055f435975dd6be2aa..3afd60e8fef09a7c81950a63799abce76b1002a9 100644
--- a/interface/web/admin/lib/lang/hu_system_config.lng
+++ b/interface/web/admin/lib/lang/hu_system_config.lng
@@ -107,4 +107,5 @@ $wb['show_aps_menu_note_txt'] = 'APS will be removed from the panel in the near
 $wb['show_aps_menu_note_url_txt'] = 'Click here for more information.';
 $wb['dns_show_zoneexport_txt'] = 'Show zone export.';
 $wb['le_caa_autocreate_options_txt'] = 'Enable automatic creation of CAA record on issuing LE';
+$wb['show_delete_on_forms_txt'] = 'Show delete button on edit forms';
 ?>
diff --git a/interface/web/admin/lib/lang/id_server_config.lng b/interface/web/admin/lib/lang/id_server_config.lng
index 2419ee63f11e5c0de004df8184588a8640b1b4b4..b25092619cd21a786b9383feb34b99ac71e3f908 100644
--- a/interface/web/admin/lib/lang/id_server_config.lng
+++ b/interface/web/admin/lib/lang/id_server_config.lng
@@ -342,5 +342,12 @@ $wb['tooltip_jailkit_hardlinks_txt'] = 'Using hardlinks is insecure, but saves d
 $wb['jailkit_hardlinks_allow_txt'] = 'Allow hardlinks within the jail';
 $wb['jailkit_hardlinks_no_txt'] = 'No, remove hardlinked files';
 $wb['jailkit_hardlinks_yes_txt'] = 'Yes, use hardlinks if possible';
+$wb['bind_zonefiles_masterprefix_txt'] = 'BIND master zonefiles prefix';
+$wb['bind_zonefiles_slaveprefix_txt'] = 'BIND slave zonefiles prefix';
+$wb['bind_keyfiles_dir_txt'] = 'BIND keyfiles directory';
+$wb['bind_keyfiles_dir_error_empty'] = 'BIND keyfiles directory is empty.';
+$wb['bind_zonefiles_masterprefix_error_regex'] = 'Invalid BIND zonefiles master prefix.';
+$wb['bind_zonefiles_slaveprefix_error_regex'] = 'Invalid BIND zonefiles slave prefix.';
+$wb['bind_keyfiles_dir_error_regex'] = 'Invalid BIND keyfiles directory.';
 $wb['mailbox_soft_delete_txt'] = 'Mailbox soft delete';
 $wb['mailbox_soft_delete_info_txt'] = 'by default cleaned up after 7 days.';
diff --git a/interface/web/admin/lib/lang/id_system_config.lng b/interface/web/admin/lib/lang/id_system_config.lng
index f9b3f87a00f2945e355f155f7c5332a799a43438..a2bd40eea38ecac5d69a137d61f195ea568abc0c 100644
--- a/interface/web/admin/lib/lang/id_system_config.lng
+++ b/interface/web/admin/lib/lang/id_system_config.lng
@@ -107,4 +107,5 @@ $wb['show_aps_menu_note_txt'] = 'APS will be removed from the panel in the near
 $wb['show_aps_menu_note_url_txt'] = 'Click here for more information.';
 $wb['dns_show_zoneexport_txt'] = 'Show zone export.';
 $wb['le_caa_autocreate_options_txt'] = 'Enable automatic creation of CAA record on issuing LE';
+$wb['show_delete_on_forms_txt'] = 'Show delete button on edit forms';
 ?>
diff --git a/interface/web/admin/lib/lang/it_server_config.lng b/interface/web/admin/lib/lang/it_server_config.lng
index 4d01d70b22a266f1f3be3472b759a01f2318597a..3d8df831e8ffab5c6e8c39eb9ec662df4cb99142 100644
--- a/interface/web/admin/lib/lang/it_server_config.lng
+++ b/interface/web/admin/lib/lang/it_server_config.lng
@@ -341,5 +341,12 @@ $wb['tooltip_jailkit_hardlinks_txt'] = 'L\'uso di hardlinks è meno sicuro però
 $wb['jailkit_hardlinks_allow_txt'] = 'Consenti hardlinks all\'interno di jail';
 $wb['jailkit_hardlinks_no_txt'] = 'No, rimuovi i file con hardlink';
 $wb['jailkit_hardlinks_yes_txt'] = 'Si, usa hardlinks se possibile';
+$wb['bind_zonefiles_masterprefix_txt'] = 'BIND master zonefiles prefix';
+$wb['bind_zonefiles_slaveprefix_txt'] = 'BIND slave zonefiles prefix';
+$wb['bind_keyfiles_dir_txt'] = 'BIND keyfiles directory';
+$wb['bind_keyfiles_dir_error_empty'] = 'BIND keyfiles directory is empty.';
+$wb['bind_zonefiles_masterprefix_error_regex'] = 'Invalid BIND zonefiles master prefix.';
+$wb['bind_zonefiles_slaveprefix_error_regex'] = 'Invalid BIND zonefiles slave prefix.';
+$wb['bind_keyfiles_dir_error_regex'] = 'Invalid BIND keyfiles directory.';
 $wb['mailbox_soft_delete_txt'] = 'Mailbox soft delete';
 $wb['mailbox_soft_delete_info_txt'] = 'by default cleaned up after 7 days.';
diff --git a/interface/web/admin/lib/lang/it_system_config.lng b/interface/web/admin/lib/lang/it_system_config.lng
index 2f8950d7a31245434fb140b4dfb53f02d6364490..6917b0232e004255e9983c8127402e07e879df8b 100644
--- a/interface/web/admin/lib/lang/it_system_config.lng
+++ b/interface/web/admin/lib/lang/it_system_config.lng
@@ -108,4 +108,5 @@ $wb['show_aps_menu_note_url_txt'] = 'Clicca qui per maggiori informazioni.';
 $wb['show_aps_menu_note_url_txt'] = 'Click here for more information.';
 $wb['dns_show_zoneexport_txt'] = 'Show zone export.';
 $wb['le_caa_autocreate_options_txt'] = 'Enable automatic creation of CAA record on issuing LE';
+$wb['show_delete_on_forms_txt'] = 'Show delete button on edit forms';
 ?>
diff --git a/interface/web/admin/lib/lang/ja_server_config.lng b/interface/web/admin/lib/lang/ja_server_config.lng
index 66d505562bf7ce665e7fcdd99a25778b2bf2a1f3..befd2b591103f989e6cd747edea1b1f902ce44a4 100644
--- a/interface/web/admin/lib/lang/ja_server_config.lng
+++ b/interface/web/admin/lib/lang/ja_server_config.lng
@@ -342,5 +342,12 @@ $wb['tooltip_jailkit_hardlinks_txt'] = 'Using hardlinks is insecure, but saves d
 $wb['jailkit_hardlinks_allow_txt'] = 'Allow hardlinks within the jail';
 $wb['jailkit_hardlinks_no_txt'] = 'No, remove hardlinked files';
 $wb['jailkit_hardlinks_yes_txt'] = 'Yes, use hardlinks if possible';
+$wb['bind_zonefiles_masterprefix_txt'] = 'BIND master zonefiles prefix';
+$wb['bind_zonefiles_slaveprefix_txt'] = 'BIND slave zonefiles prefix';
+$wb['bind_keyfiles_dir_txt'] = 'BIND keyfiles directory';
+$wb['bind_keyfiles_dir_error_empty'] = 'BIND keyfiles directory is empty.';
+$wb['bind_zonefiles_masterprefix_error_regex'] = 'Invalid BIND zonefiles master prefix.';
+$wb['bind_zonefiles_slaveprefix_error_regex'] = 'Invalid BIND zonefiles slave prefix.';
+$wb['bind_keyfiles_dir_error_regex'] = 'Invalid BIND keyfiles directory.';
 $wb['mailbox_soft_delete_txt'] = 'Mailbox soft delete';
 $wb['mailbox_soft_delete_info_txt'] = 'by default cleaned up after 7 days.';
diff --git a/interface/web/admin/lib/lang/ja_system_config.lng b/interface/web/admin/lib/lang/ja_system_config.lng
index 744d83a705615f40c5e43c8e29fb3975bddf0eee..c2d507d61a2f81b1e07124c21f8aaf49ffbb92fa 100644
--- a/interface/web/admin/lib/lang/ja_system_config.lng
+++ b/interface/web/admin/lib/lang/ja_system_config.lng
@@ -107,4 +107,5 @@ $wb['show_aps_menu_note_txt'] = 'APS will be removed from the panel in the near
 $wb['show_aps_menu_note_url_txt'] = 'Click here for more information.';
 $wb['dns_show_zoneexport_txt'] = 'Show zone export.';
 $wb['le_caa_autocreate_options_txt'] = 'Enable automatic creation of CAA record on issuing LE';
+$wb['show_delete_on_forms_txt'] = 'Show delete button on edit forms';
 ?>
diff --git a/interface/web/admin/lib/lang/nl_server_config.lng b/interface/web/admin/lib/lang/nl_server_config.lng
index 8ea60a21a8149f93d439e81e914ac1d55a5b56cb..2af5d6a9eac8ad0674ad4efe96aed222d6d12f44 100644
--- a/interface/web/admin/lib/lang/nl_server_config.lng
+++ b/interface/web/admin/lib/lang/nl_server_config.lng
@@ -342,5 +342,12 @@ $wb['tooltip_jailkit_hardlinks_txt'] = 'Using hardlinks is insecure, but saves d
 $wb['jailkit_hardlinks_allow_txt'] = 'Allow hardlinks within the jail';
 $wb['jailkit_hardlinks_no_txt'] = 'No, remove hardlinked files';
 $wb['jailkit_hardlinks_yes_txt'] = 'Yes, use hardlinks if possible';
+$wb['bind_zonefiles_masterprefix_txt'] = 'BIND master zonefiles prefix';
+$wb['bind_zonefiles_slaveprefix_txt'] = 'BIND slave zonefiles prefix';
+$wb['bind_keyfiles_dir_txt'] = 'BIND keyfiles directory';
+$wb['bind_keyfiles_dir_error_empty'] = 'BIND keyfiles directory is empty.';
+$wb['bind_zonefiles_masterprefix_error_regex'] = 'Invalid BIND zonefiles master prefix.';
+$wb['bind_zonefiles_slaveprefix_error_regex'] = 'Invalid BIND zonefiles slave prefix.';
+$wb['bind_keyfiles_dir_error_regex'] = 'Invalid BIND keyfiles directory.';
 $wb['mailbox_soft_delete_txt'] = 'Mailbox soft delete';
 $wb['mailbox_soft_delete_info_txt'] = 'by default cleaned up after 7 days.';
diff --git a/interface/web/admin/lib/lang/nl_system_config.lng b/interface/web/admin/lib/lang/nl_system_config.lng
index b40ce962851776e9c6a918ee5fcc65c82ed9d68b..e56855de5f32e09c8ee03e6f862f93496e0b6ef0 100644
--- a/interface/web/admin/lib/lang/nl_system_config.lng
+++ b/interface/web/admin/lib/lang/nl_system_config.lng
@@ -107,4 +107,5 @@ $wb['show_aps_menu_note_txt'] = 'APS will be removed from the panel in the near
 $wb['show_aps_menu_note_url_txt'] = 'Click here for more information.';
 $wb['dns_show_zoneexport_txt'] = 'Show zone export.';
 $wb['le_caa_autocreate_options_txt'] = 'Enable automatic creation of CAA record on issuing LE';
+$wb['show_delete_on_forms_txt'] = 'Show delete button on edit forms';
 ?>
diff --git a/interface/web/admin/lib/lang/pl_server_config.lng b/interface/web/admin/lib/lang/pl_server_config.lng
index c186f5d2a60f4651593689a5743ade0a44aabe45..1f2ed1b6eaa8baac958f50628eef46d1ac814bf9 100644
--- a/interface/web/admin/lib/lang/pl_server_config.lng
+++ b/interface/web/admin/lib/lang/pl_server_config.lng
@@ -342,5 +342,12 @@ $wb['tooltip_jailkit_hardlinks_txt'] = 'Using hardlinks is insecure, but saves d
 $wb['jailkit_hardlinks_allow_txt'] = 'Allow hardlinks within the jail';
 $wb['jailkit_hardlinks_no_txt'] = 'No, remove hardlinked files';
 $wb['jailkit_hardlinks_yes_txt'] = 'Yes, use hardlinks if possible';
+$wb['bind_zonefiles_masterprefix_txt'] = 'BIND master zonefiles prefix';
+$wb['bind_zonefiles_slaveprefix_txt'] = 'BIND slave zonefiles prefix';
+$wb['bind_keyfiles_dir_txt'] = 'BIND keyfiles directory';
+$wb['bind_keyfiles_dir_error_empty'] = 'BIND keyfiles directory is empty.';
+$wb['bind_zonefiles_masterprefix_error_regex'] = 'Invalid BIND zonefiles master prefix.';
+$wb['bind_zonefiles_slaveprefix_error_regex'] = 'Invalid BIND zonefiles slave prefix.';
+$wb['bind_keyfiles_dir_error_regex'] = 'Invalid BIND keyfiles directory.';
 $wb['mailbox_soft_delete_txt'] = 'Mailbox soft delete';
 $wb['mailbox_soft_delete_info_txt'] = 'by default cleaned up after 7 days.';
diff --git a/interface/web/admin/lib/lang/pl_system_config.lng b/interface/web/admin/lib/lang/pl_system_config.lng
index 54312139770491061be918d60e0ab8b43ad5aec3..c99434e5eff99fbdd5ec7de91380144892a12028 100644
--- a/interface/web/admin/lib/lang/pl_system_config.lng
+++ b/interface/web/admin/lib/lang/pl_system_config.lng
@@ -107,4 +107,5 @@ $wb['show_aps_menu_note_txt'] = 'APS will be removed from the panel in the near
 $wb['show_aps_menu_note_url_txt'] = 'Click here for more information.';
 $wb['dns_show_zoneexport_txt'] = 'Show zone export.';
 $wb['le_caa_autocreate_options_txt'] = 'Enable automatic creation of CAA record on issuing LE';
+$wb['show_delete_on_forms_txt'] = 'Show delete button on edit forms';
 ?>
diff --git a/interface/web/admin/lib/lang/pt_server_config.lng b/interface/web/admin/lib/lang/pt_server_config.lng
index 2e398500dbc950c85d9809fb52d88d84edacdce8..96a6046dbad5d8908ab2907dbb9ecf66917b5251 100644
--- a/interface/web/admin/lib/lang/pt_server_config.lng
+++ b/interface/web/admin/lib/lang/pt_server_config.lng
@@ -342,5 +342,12 @@ $wb['tooltip_jailkit_hardlinks_txt'] = 'Using hardlinks is insecure, but saves d
 $wb['jailkit_hardlinks_allow_txt'] = 'Allow hardlinks within the jail';
 $wb['jailkit_hardlinks_no_txt'] = 'No, remove hardlinked files';
 $wb['jailkit_hardlinks_yes_txt'] = 'Yes, use hardlinks if possible';
+$wb['bind_zonefiles_masterprefix_txt'] = 'BIND master zonefiles prefix';
+$wb['bind_zonefiles_slaveprefix_txt'] = 'BIND slave zonefiles prefix';
+$wb['bind_keyfiles_dir_txt'] = 'BIND keyfiles directory';
+$wb['bind_keyfiles_dir_error_empty'] = 'BIND keyfiles directory is empty.';
+$wb['bind_zonefiles_masterprefix_error_regex'] = 'Invalid BIND zonefiles master prefix.';
+$wb['bind_zonefiles_slaveprefix_error_regex'] = 'Invalid BIND zonefiles slave prefix.';
+$wb['bind_keyfiles_dir_error_regex'] = 'Invalid BIND keyfiles directory.';
 $wb['mailbox_soft_delete_txt'] = 'Mailbox soft delete';
 $wb['mailbox_soft_delete_info_txt'] = 'by default cleaned up after 7 days.';
diff --git a/interface/web/admin/lib/lang/pt_system_config.lng b/interface/web/admin/lib/lang/pt_system_config.lng
index 8c995047b4f00b45eab26d1b8d85ba810c87e977..751375904792aa5fb690f708eee5f1e5d7694c6c 100644
--- a/interface/web/admin/lib/lang/pt_system_config.lng
+++ b/interface/web/admin/lib/lang/pt_system_config.lng
@@ -107,4 +107,5 @@ $wb['show_aps_menu_note_txt'] = 'APS will be removed from the panel in the near
 $wb['show_aps_menu_note_url_txt'] = 'Click here for more information.';
 $wb['dns_show_zoneexport_txt'] = 'Show zone export.';
 $wb['le_caa_autocreate_options_txt'] = 'Enable automatic creation of CAA record on issuing LE';
+$wb['show_delete_on_forms_txt'] = 'Show delete button on edit forms';
 ?>
diff --git a/interface/web/admin/lib/lang/ro_server_config.lng b/interface/web/admin/lib/lang/ro_server_config.lng
index 2756ae7acda0737e5cd50482bfdef5884611fdca..05dfa0216af6bb5cc20713ff7d1e72d205b274d7 100644
--- a/interface/web/admin/lib/lang/ro_server_config.lng
+++ b/interface/web/admin/lib/lang/ro_server_config.lng
@@ -342,5 +342,12 @@ $wb['tooltip_jailkit_hardlinks_txt'] = 'Using hardlinks is insecure, but saves d
 $wb['jailkit_hardlinks_allow_txt'] = 'Allow hardlinks within the jail';
 $wb['jailkit_hardlinks_no_txt'] = 'No, remove hardlinked files';
 $wb['jailkit_hardlinks_yes_txt'] = 'Yes, use hardlinks if possible';
+$wb['bind_zonefiles_masterprefix_txt'] = 'BIND master zonefiles prefix';
+$wb['bind_zonefiles_slaveprefix_txt'] = 'BIND slave zonefiles prefix';
+$wb['bind_keyfiles_dir_txt'] = 'BIND keyfiles directory';
+$wb['bind_keyfiles_dir_error_empty'] = 'BIND keyfiles directory is empty.';
+$wb['bind_zonefiles_masterprefix_error_regex'] = 'Invalid BIND zonefiles master prefix.';
+$wb['bind_zonefiles_slaveprefix_error_regex'] = 'Invalid BIND zonefiles slave prefix.';
+$wb['bind_keyfiles_dir_error_regex'] = 'Invalid BIND keyfiles directory.';
 $wb['mailbox_soft_delete_txt'] = 'Mailbox soft delete';
 $wb['mailbox_soft_delete_info_txt'] = 'by default cleaned up after 7 days.';
diff --git a/interface/web/admin/lib/lang/ro_system_config.lng b/interface/web/admin/lib/lang/ro_system_config.lng
index 9fd8e4d587774a0cddee588a167634ed9f3267cb..0c9b6000284f99b5dd4d85b1636d85b9bb9fd3f4 100644
--- a/interface/web/admin/lib/lang/ro_system_config.lng
+++ b/interface/web/admin/lib/lang/ro_system_config.lng
@@ -107,4 +107,5 @@ $wb['show_aps_menu_note_txt'] = 'APS will be removed from the panel in the near
 $wb['show_aps_menu_note_url_txt'] = 'Click here for more information.';
 $wb['dns_show_zoneexport_txt'] = 'Show zone export.';
 $wb['le_caa_autocreate_options_txt'] = 'Enable automatic creation of CAA record on issuing LE';
+$wb['show_delete_on_forms_txt'] = 'Show delete button on edit forms';
 ?>
diff --git a/interface/web/admin/lib/lang/ru_server_config.lng b/interface/web/admin/lib/lang/ru_server_config.lng
index 2fbf9cf7d6e416f68ca60d6759ac47f94c242a3a..5463f4497b7998249daebe335bb1342c89cdfd87 100644
--- a/interface/web/admin/lib/lang/ru_server_config.lng
+++ b/interface/web/admin/lib/lang/ru_server_config.lng
@@ -342,5 +342,12 @@ $wb['tooltip_jailkit_hardlinks_txt'] = 'Using hardlinks is insecure, but saves d
 $wb['jailkit_hardlinks_allow_txt'] = 'Allow hardlinks within the jail';
 $wb['jailkit_hardlinks_no_txt'] = 'No, remove hardlinked files';
 $wb['jailkit_hardlinks_yes_txt'] = 'Yes, use hardlinks if possible';
+$wb['bind_zonefiles_masterprefix_txt'] = 'BIND master zonefiles prefix';
+$wb['bind_zonefiles_slaveprefix_txt'] = 'BIND slave zonefiles prefix';
+$wb['bind_keyfiles_dir_txt'] = 'BIND keyfiles directory';
+$wb['bind_keyfiles_dir_error_empty'] = 'BIND keyfiles directory is empty.';
+$wb['bind_zonefiles_masterprefix_error_regex'] = 'Invalid BIND zonefiles master prefix.';
+$wb['bind_zonefiles_slaveprefix_error_regex'] = 'Invalid BIND zonefiles slave prefix.';
+$wb['bind_keyfiles_dir_error_regex'] = 'Invalid BIND keyfiles directory.';
 $wb['mailbox_soft_delete_txt'] = 'Mailbox soft delete';
 $wb['mailbox_soft_delete_info_txt'] = 'by default cleaned up after 7 days.';
diff --git a/interface/web/admin/lib/lang/ru_system_config.lng b/interface/web/admin/lib/lang/ru_system_config.lng
index 55c87315158fe9aab11d24c8608829b9db1040cf..31e475bb00a333fdfaf5111255f46fb17ced3d53 100644
--- a/interface/web/admin/lib/lang/ru_system_config.lng
+++ b/interface/web/admin/lib/lang/ru_system_config.lng
@@ -107,4 +107,5 @@ $wb['show_aps_menu_note_txt'] = 'APS will be removed from the panel in the near
 $wb['show_aps_menu_note_url_txt'] = 'Click here for more information.';
 $wb['dns_show_zoneexport_txt'] = 'Show zone export.';
 $wb['le_caa_autocreate_options_txt'] = 'Enable automatic creation of CAA record on issuing LE';
+$wb['show_delete_on_forms_txt'] = 'Show delete button on edit forms';
 ?>
diff --git a/interface/web/admin/lib/lang/se_server_config.lng b/interface/web/admin/lib/lang/se_server_config.lng
index e21017769cbec9fca8e56a5db4e53da3f50cb0ff..58d3cbce26d2f86f64b4963b078fbb238c171111 100644
--- a/interface/web/admin/lib/lang/se_server_config.lng
+++ b/interface/web/admin/lib/lang/se_server_config.lng
@@ -342,5 +342,12 @@ $wb['tooltip_jailkit_hardlinks_txt'] = 'Using hardlinks is insecure, but saves d
 $wb['jailkit_hardlinks_allow_txt'] = 'Allow hardlinks within the jail';
 $wb['jailkit_hardlinks_no_txt'] = 'No, remove hardlinked files';
 $wb['jailkit_hardlinks_yes_txt'] = 'Yes, use hardlinks if possible';
+$wb['bind_zonefiles_masterprefix_txt'] = 'BIND master zonefiles prefix';
+$wb['bind_zonefiles_slaveprefix_txt'] = 'BIND slave zonefiles prefix';
+$wb['bind_keyfiles_dir_txt'] = 'BIND keyfiles directory';
+$wb['bind_keyfiles_dir_error_empty'] = 'BIND keyfiles directory is empty.';
+$wb['bind_zonefiles_masterprefix_error_regex'] = 'Invalid BIND zonefiles master prefix.';
+$wb['bind_zonefiles_slaveprefix_error_regex'] = 'Invalid BIND zonefiles slave prefix.';
+$wb['bind_keyfiles_dir_error_regex'] = 'Invalid BIND keyfiles directory.';
 $wb['mailbox_soft_delete_txt'] = 'Mailbox soft delete';
 $wb['mailbox_soft_delete_info_txt'] = 'by default cleaned up after 7 days.';
diff --git a/interface/web/admin/lib/lang/se_system_config.lng b/interface/web/admin/lib/lang/se_system_config.lng
index d3de89aa55885efa8990e9caf4c095acaf7c20d7..e4748e94636318ddc8eb549227af97dd1153d5e0 100644
--- a/interface/web/admin/lib/lang/se_system_config.lng
+++ b/interface/web/admin/lib/lang/se_system_config.lng
@@ -107,4 +107,5 @@ $wb['show_aps_menu_note_txt'] = 'APS will be removed from the panel in the near
 $wb['show_aps_menu_note_url_txt'] = 'Click here for more information.';
 $wb['dns_show_zoneexport_txt'] = 'Show zone export.';
 $wb['le_caa_autocreate_options_txt'] = 'Enable automatic creation of CAA record on issuing LE';
+$wb['show_delete_on_forms_txt'] = 'Show delete button on edit forms';
 ?>
diff --git a/interface/web/admin/lib/lang/sk_server_config.lng b/interface/web/admin/lib/lang/sk_server_config.lng
index 9ec5367be5a296f294d8b227c5ec503519fdcb67..b6236c2f1c1c911c33316a714edd61046d3b3a6c 100644
--- a/interface/web/admin/lib/lang/sk_server_config.lng
+++ b/interface/web/admin/lib/lang/sk_server_config.lng
@@ -342,5 +342,12 @@ $wb['tooltip_jailkit_hardlinks_txt'] = 'Using hardlinks is insecure, but saves d
 $wb['jailkit_hardlinks_allow_txt'] = 'Allow hardlinks within the jail';
 $wb['jailkit_hardlinks_no_txt'] = 'No, remove hardlinked files';
 $wb['jailkit_hardlinks_yes_txt'] = 'Yes, use hardlinks if possible';
+$wb['bind_zonefiles_masterprefix_txt'] = 'BIND master zonefiles prefix';
+$wb['bind_zonefiles_slaveprefix_txt'] = 'BIND slave zonefiles prefix';
+$wb['bind_keyfiles_dir_txt'] = 'BIND keyfiles directory';
+$wb['bind_keyfiles_dir_error_empty'] = 'BIND keyfiles directory is empty.';
+$wb['bind_zonefiles_masterprefix_error_regex'] = 'Invalid BIND zonefiles master prefix.';
+$wb['bind_zonefiles_slaveprefix_error_regex'] = 'Invalid BIND zonefiles slave prefix.';
+$wb['bind_keyfiles_dir_error_regex'] = 'Invalid BIND keyfiles directory.';
 $wb['mailbox_soft_delete_txt'] = 'Mailbox soft delete';
 $wb['mailbox_soft_delete_info_txt'] = 'by default cleaned up after 7 days.';
diff --git a/interface/web/admin/lib/lang/sk_system_config.lng b/interface/web/admin/lib/lang/sk_system_config.lng
index 1e85adca8c12ef1437dc598ef610d33c526436ab..dcef81a303bca98a36ec8a359bdc86cc18b25cd6 100644
--- a/interface/web/admin/lib/lang/sk_system_config.lng
+++ b/interface/web/admin/lib/lang/sk_system_config.lng
@@ -107,4 +107,5 @@ $wb['show_aps_menu_note_txt'] = 'APS will be removed from the panel in the near
 $wb['show_aps_menu_note_url_txt'] = 'Click here for more information.';
 $wb['dns_show_zoneexport_txt'] = 'Show zone export.';
 $wb['le_caa_autocreate_options_txt'] = 'Enable automatic creation of CAA record on issuing LE';
+$wb['show_delete_on_forms_txt'] = 'Show delete button on edit forms';
 ?>
diff --git a/interface/web/admin/lib/lang/tr_server_config.lng b/interface/web/admin/lib/lang/tr_server_config.lng
index 29ccbe6129a1ed1d5bf8af6bb942a4c87031865e..d75cceedcf2aca7d3c7161d64fe00cb97e33f371 100644
--- a/interface/web/admin/lib/lang/tr_server_config.lng
+++ b/interface/web/admin/lib/lang/tr_server_config.lng
@@ -339,5 +339,12 @@ $wb['tooltip_jailkit_hardlinks_txt'] = 'Using hardlinks is insecure, but saves d
 $wb['jailkit_hardlinks_allow_txt'] = 'Allow hardlinks within the jail';
 $wb['jailkit_hardlinks_no_txt'] = 'No, remove hardlinked files';
 $wb['jailkit_hardlinks_yes_txt'] = 'Yes, use hardlinks if possible';
+$wb['bind_zonefiles_masterprefix_txt'] = 'BIND master zonefiles prefix';
+$wb['bind_zonefiles_slaveprefix_txt'] = 'BIND slave zonefiles prefix';
+$wb['bind_keyfiles_dir_txt'] = 'BIND keyfiles directory';
+$wb['bind_keyfiles_dir_error_empty'] = 'BIND keyfiles directory is empty.';
+$wb['bind_zonefiles_masterprefix_error_regex'] = 'Invalid BIND zonefiles master prefix.';
+$wb['bind_zonefiles_slaveprefix_error_regex'] = 'Invalid BIND zonefiles slave prefix.';
+$wb['bind_keyfiles_dir_error_regex'] = 'Invalid BIND keyfiles directory.';
 $wb['mailbox_soft_delete_txt'] = 'Mailbox soft delete';
 $wb['mailbox_soft_delete_info_txt'] = 'by default cleaned up after 7 days.';
diff --git a/interface/web/admin/lib/lang/tr_system_config.lng b/interface/web/admin/lib/lang/tr_system_config.lng
index 6054bebc888c57cb47e6d49c0fb83ba73271ead0..17cf1884f530a3c9b4fc056ede9f0bb1999c139f 100644
--- a/interface/web/admin/lib/lang/tr_system_config.lng
+++ b/interface/web/admin/lib/lang/tr_system_config.lng
@@ -107,4 +107,5 @@ $wb['show_aps_menu_note_txt'] = 'APS will be removed from the panel in the near
 $wb['show_aps_menu_note_url_txt'] = 'Click here for more information.';
 $wb['dns_show_zoneexport_txt'] = 'Show zone export.';
 $wb['le_caa_autocreate_options_txt'] = 'Enable automatic creation of CAA record on issuing LE';
+$wb['show_delete_on_forms_txt'] = 'Show delete button on edit forms';
 ?>
diff --git a/interface/web/admin/templates/server_config_dns_edit.htm b/interface/web/admin/templates/server_config_dns_edit.htm
index dcc7328e2c10cb4241ac8ff55a046ffbf3c3a6c2..9a157ce4a7928cc679beaecef4483394622403a4 100644
--- a/interface/web/admin/templates/server_config_dns_edit.htm
+++ b/interface/web/admin/templates/server_config_dns_edit.htm
@@ -14,6 +14,12 @@
             <div class="form-group">
                 <label for="bind_keyfiles_dir" class="col-sm-3 control-label">{tmpl_var name='bind_keyfiles_dir_txt'}</label>
                 <div class="col-sm-9"><input type="text" name="bind_keyfiles_dir" id="bind_keyfiles_dir" value="{tmpl_var name='bind_keyfiles_dir'}" class="form-control" /></div></div>
+            <div class="form-group">
+                <label for="bind_zonefiles_masterprefix" class="col-sm-3 control-label">{tmpl_var name='bind_zonefiles_masterprefix_txt'}</label>
+                <div class="col-sm-9"><input type="text" name="bind_zonefiles_masterprefix" id="bind_zonefiles_masterprefix" value="{tmpl_var name='bind_zonefiles_masterprefix'}" class="form-control" /></div></div>
+            <div class="form-group">
+                <label for="bind_zonefiles_slaveprefix" class="col-sm-3 control-label">{tmpl_var name='bind_zonefiles_slaveprefix_txt'}</label>
+                <div class="col-sm-9"><input type="text" name="bind_zonefiles_slaveprefix" id="bind_zonefiles_slaveprefix" value="{tmpl_var name='bind_zonefiles_slaveprefix'}" class="form-control" /></div></div>
             <div class="form-group">
                 <label for="named_conf_path" class="col-sm-3 control-label">{tmpl_var name='named_conf_path_txt'}</label>
                 <div class="col-sm-9"><input type="text" name="named_conf_path" id="named_conf_path" value="{tmpl_var name='named_conf_path'}" class="form-control" /></div></div>
diff --git a/interface/web/admin/templates/system_config_misc_edit.htm b/interface/web/admin/templates/system_config_misc_edit.htm
index 5c57eeb9a668fcdcfffa93dffaef4a406552a641..30d893bc103b642b144ec4f9a1f7563a68c07396 100644
--- a/interface/web/admin/templates/system_config_misc_edit.htm
+++ b/interface/web/admin/templates/system_config_misc_edit.htm
@@ -90,6 +90,12 @@
     {tmpl_var name='show_support_messages'}
   </div>
 </div>
+<div class="form-group">
+  <label class="col-sm-3 control-label">{tmpl_var name='show_delete_on_forms_txt'}</label>
+  <div class="col-sm-9">
+    {tmpl_var name='show_delete_on_forms'}
+  </div>
+</div>
 <div class="form-group">
   <label for="customer_no_template" class="col-sm-3 control-label">{tmpl_var name='customer_no_template_txt'}</label>
   <div class="col-sm-9"><input type="text" name="customer_no_template" id="customer_no_template" value="{tmpl_var name='customer_no_template'}" class="form-control" /></div>
diff --git a/interface/web/client/client_edit.php b/interface/web/client/client_edit.php
index e0b74595fcc51016d6d66a5f7fdaa021a8894581..823a9ed3f63f81b67172bff54e4c019c3264666e 100644
--- a/interface/web/client/client_edit.php
+++ b/interface/web/client/client_edit.php
@@ -70,9 +70,42 @@ class page_action extends tform_actions {
 			}
 		}
 
+		// Hide the info tab when creating a new client.
+		unset($app->tform->formDef["tabs"]['info']);
+		$app->tform->formDef["tab_default"] = "address";
+
 		parent::onShowNew();
 	}
 
+	function onShowEdit() {
+		global $app, $conf;
+		chdir('../dashboard');
+
+		$dashlet_list = array();
+		$dashlets = array('databasequota.php', 'limits.php', 'mailquota.php', 'quota.php');
+		$current_client_id = $this->id;
+
+		foreach ($dashlets as $file) {
+			if ($file != '.' && $file != '..' && !is_dir(ISPC_WEB_PATH.'/dashboard/dashlets/'.$file)) {
+				$dashlet_name = substr($file, 0, -4);
+				$dashlet_class = 'dashlet_'.$dashlet_name;
+				include_once ISPC_WEB_PATH.'/dashboard/dashlets/'.$file;
+				$dashlet_list[$dashlet_name] = new $dashlet_class;
+				$dashlets_html .= $dashlet_list[$dashlet_name]->show($current_client_id);
+			}
+		}
+		$app->tpl->setVar('dashlets', $dashlets_html);
+
+		chdir('../client');
+
+		$tmp = $app->db->queryOneRecord("SELECT company_name, contact_firstname, contact_name, email FROM client WHERE client_id = ?", $current_client_id);
+		$app->tpl->setVar('company_name', $tmp['company_name']);
+		$app->tpl->setVar('contact_name', $tmp['contact_name']);
+		$app->tpl->setVar('email', $tmp['email']);
+
+		parent::onShowEdit();
+	}
+
 
 	function onSubmit() {
 		global $app, $conf;
diff --git a/interface/web/client/form/client.tform.php b/interface/web/client/form/client.tform.php
index aaf7dd3be29dbe2398d245202cc4106fa40d2016..3f51c209027d0d232d04e58d9abfec28c75c01fa 100644
--- a/interface/web/client/form/client.tform.php
+++ b/interface/web/client/form/client.tform.php
@@ -45,7 +45,7 @@ $form["action"]  = "client_edit.php";
 $form["db_table"] = "client";
 $form["db_table_idx"] = "client_id";
 $form["db_history"] = "yes";
-$form["tab_default"] = "address";
+$form["tab_default"] = "info";
 $form["list_default"] = "client_list.php";
 $form["auth"]  = 'yes';
 
@@ -80,6 +80,12 @@ while ($file = @readdir($handle)) {
 	}
 }
 
+$form["tabs"]['info'] = array (
+	'title'  => "Info",
+	'width'  => 100,
+	'template'  => "templates/client_edit_info.htm",
+	'fields'  => array ()
+);
 $form["tabs"]['address'] = array (
 	'title'  => "Address",
 	'width'  => 100,
diff --git a/interface/web/client/templates/client_edit_info.htm b/interface/web/client/templates/client_edit_info.htm
new file mode 100644
index 0000000000000000000000000000000000000000..2b89fa18eabab7c6d4498fafd7299b62b87b3411
--- /dev/null
+++ b/interface/web/client/templates/client_edit_info.htm
@@ -0,0 +1,23 @@
+<input type="hidden" name="id" value="{tmpl_var name='id'}">
+<div class='page-header'>
+        <legend>Client info</legend>
+        <div>
+                <ul>
+                        <li>Company Name: {tmpl_var name='company_name'}</li>
+                        <li>Contact Name: {tmpl_var name='contact_name'}</li>
+                        <li>E-mail: <a href="mailto:{tmpl_var name='email'}">{tmpl_var name='email'}</a></li>
+                        <li>Login as:
+							<tmpl_if name="is_admin">
+									<a class="btn btn-default formbutton-success formbutton-narrow" data-load-content="login/login_as.php?cid={tmpl_var name='id'}"><span class="icon icon-loginas"></span></a>
+							<tmpl_elseif name="is_reseller">
+									<a class="btn btn-default formbutton-success formbutton-narrow" data-load-content="login/login_as.php?cid={tmpl_var name='id'}"><span class="icon icon-loginas"></span></a>
+							</tmpl_if>
+						</li>
+                </ul>
+         </div>
+
+
+<tmpl_var name="dashlets">
+
+</div>
+
diff --git a/interface/web/dashboard/dashlets/databasequota.php b/interface/web/dashboard/dashlets/databasequota.php
index 4b06599d1caed608b06872e0fb289d77fe96c3f0..641dfd7784e0813f8abaa109c42d261a424ada12 100644
--- a/interface/web/dashboard/dashlets/databasequota.php
+++ b/interface/web/dashboard/dashlets/databasequota.php
@@ -2,7 +2,7 @@
 
 class dashlet_databasequota {
 
-	function show() {
+	function show($limit_to_client_id = null) {
 		global $app;
 
 		//* Loading Template
@@ -23,8 +23,13 @@ class dashlet_databasequota {
 		$lng_file = 'lib/lang/'.$_SESSION['s']['language'].'_dashlet_databasequota.lng';
 		if(is_file($lng_file)) include $lng_file;
 		$tpl->setVar($wb);
+		if ($_SESSION["s"]["user"]["typ"] != 'admin') {
+			$client_id = $_SESSION['s']['user']['client_id'];
+		} else {
+			$client_id = $limit_to_client_id;
+		}
 
-		$databases = $app->quota_lib->get_databasequota_data( ($_SESSION["s"]["user"]["typ"] != 'admin') ? $_SESSION['s']['user']['client_id'] : null);
+		$databases = $app->quota_lib->get_databasequota_data($client_id);
 		//print_r($databases);
 
 		$has_databasequota = false;
diff --git a/interface/web/dashboard/dashlets/limits.php b/interface/web/dashboard/dashlets/limits.php
index 50bcad91222b13b1405cd0e85ae336051af1fb0c..79ac2126c831d93cfbaf2fd11edae1cb5f0d974f 100644
--- a/interface/web/dashboard/dashlets/limits.php
+++ b/interface/web/dashboard/dashlets/limits.php
@@ -2,7 +2,7 @@
 
 class dashlet_limits
 {
-    public function show()
+    public function show($limit_to_client_id = 0)
     {
         global $app, $conf;
 
@@ -147,33 +147,35 @@ class dashlet_limits
         }
         $tpl->setVar($wb);
 
-        if ($app->auth->is_admin()) {
-            $user_is_admin = true;
+        if ($limit_to_client_id == 0) {
+          $client_id = $_SESSION['s']['user']['client_id'];
+          $user_is_admin = true;
         } else {
-            $user_is_admin = false;
+          $client_id = $limit_to_client_id;
+          $user_is_admin = false;
         }
-        $tpl->setVar('is_admin', $user_is_admin);
 
-        if ($user_is_admin == false) {
-            $client_group_id = $app->functions->intval($_SESSION["s"]["user"]["default_group"]);
-            $client = $app->db->queryOneRecord("SELECT * FROM sys_group, client WHERE sys_group.client_id = client.client_id and sys_group.groupid = ?", $client_group_id);
-        }
+        $client_group_id = $app->functions->intval($_SESSION["s"]["user"]["default_group"]);
+        $client = $app->db->queryOneRecord("SELECT * FROM client WHERE client_id = ?", $client_id);
+
 
         $rows = array();
         foreach ($limits as $limit) {
             $field = $limit['field'];
+            $value = $client[$field];
             if ($user_is_admin) {
                 $value = $wb['unlimited_txt'];
             } else {
                 $value = $client[$field];
             }
+
             if ($value != 0 || $value == $wb['unlimited_txt']) {
                 $value_formatted = ($value == '-1')?$wb['unlimited_txt']:$value;
                 if (isset($limit['q_type']) && $limit['q_type'] != '') {
-                    $usage = $this->_get_assigned_quota($limit) . " MB";
+                    $usage = $this->_get_assigned_quota($limit, $client_id) . " MB";
                     $value_formatted = ($value == '-1')?$wb['unlimited_txt']:$value . " MB";
                 } else {
-                    $usage = $this->_get_limit_usage($limit);
+                    $usage = $this->_get_limit_usage($limit, $client_id);
                 }
                 $percentage = ($value == '-1' || intval($value) == 0 || trim($value) == '' ? -1 : round(100 * (int)$usage / (int)$value));
                 $progressbar = $percentage > 100 ? 100 : $percentage;
@@ -195,7 +197,7 @@ class dashlet_limits
         return $tpl->grab();
     }
 
-    public function _get_limit_usage($limit)
+    public function _get_limit_usage($limit, $limit_to_client_id)
     {
         global $app;
 
@@ -203,12 +205,15 @@ class dashlet_limits
         if ($limit['db_where'] != '') {
             $sql .= $limit['db_where']." AND ";
         }
-        $sql .= $app->tform->getAuthSQL('r');
+        $sql .= $app->tform->getAuthSQL('r', '', $limit_to_client_id);
+        // TEST to show reseller data.
+        //$sql .= $app->tform->getAuthSQL('r', '', 0, '3,28,39');
+        //echo $sql;
         $rec = $app->db->queryOneRecord($sql, $limit['db_table']);
         return $rec['number'];
     }
     
-    public function _get_assigned_quota($limit)
+    public function _get_assigned_quota($limit, $limit_to_client_id)
     {
         global $app;
 
@@ -216,7 +221,7 @@ class dashlet_limits
         if ($limit['db_where'] != '') {
             $sql .= $limit['db_where']." AND ";
         }
-        $sql .= $app->tform->getAuthSQL('r');
+        $sql .= $app->tform->getAuthSQL('r', '', $limit_to_client_id);
         $rec = $app->db->queryOneRecord($sql, $limit['q_type'], $limit['db_table']);
         if ($limit['db_table']=='mail_user') {
             $quotaMB = $rec['number'] / 1048576;
diff --git a/interface/web/dashboard/dashlets/mailquota.php b/interface/web/dashboard/dashlets/mailquota.php
index a9434e58eaac846087c77738d9d131ebe4d51abe..b310cc1dcbfadb2db7729dc11660f931cd2e6587 100644
--- a/interface/web/dashboard/dashlets/mailquota.php
+++ b/interface/web/dashboard/dashlets/mailquota.php
@@ -2,7 +2,7 @@
 
 class dashlet_mailquota {
 
-	function show() {
+	function show($limit_to_client_id = null) {
 		global $app;
 
 		//* Loading Template
@@ -16,7 +16,13 @@ class dashlet_mailquota {
 		if(is_file($lng_file)) include $lng_file;
 		$tpl->setVar($wb);
 
-		$emails = $app->quota_lib->get_mailquota_data( ($_SESSION["s"]["user"]["typ"] != 'admin') ? $_SESSION['s']['user']['client_id'] : null);
+		if ($_SESSION["s"]["user"]["typ"] != 'admin') {
+			$client_id = $_SESSION['s']['user']['client_id'];
+		} else {
+			$client_id = $limit_to_client_id;
+		}
+
+		$emails = $app->quota_lib->get_mailquota_data($client_id);
 		//print_r($emails);
 
 		$has_mailquota = false;
diff --git a/interface/web/dashboard/dashlets/quota.php b/interface/web/dashboard/dashlets/quota.php
index d0b1be998f7e44f304a4bae9a7aa6b2c296740a7..3225bd304fff4b37bd3376a9bbd299c472005771 100644
--- a/interface/web/dashboard/dashlets/quota.php
+++ b/interface/web/dashboard/dashlets/quota.php
@@ -2,7 +2,7 @@
 
 class dashlet_quota {
 
-	function show() {
+	function show($limit_to_client_id = null) {
 		global $app;
 
 		//* Loading Template
@@ -24,7 +24,13 @@ class dashlet_quota {
 		if(is_file($lng_file)) include $lng_file;
 		$tpl->setVar($wb);
 
-		$sites = $app->quota_lib->get_quota_data( ($_SESSION["s"]["user"]["typ"] != 'admin') ? $_SESSION['s']['user']['client_id'] : null);
+		if ($_SESSION["s"]["user"]["typ"] != 'admin') {
+			$client_id = $_SESSION['s']['user']['client_id'];
+		} else {
+			$client_id = $limit_to_client_id;
+		}
+
+		$sites = $app->quota_lib->get_quota_data($client_id);
 		//print_r($sites);
 
 		$has_quota = false;
diff --git a/interface/web/dashboard/dashlets/templates/databasequota.htm b/interface/web/dashboard/dashlets/templates/databasequota.htm
index 4e8db908bd137575b08fcc386ac821fee57e09b8..a2ecc2e47d329ea599108fc2816cd5064fbd890e 100644
--- a/interface/web/dashboard/dashlets/templates/databasequota.htm
+++ b/interface/web/dashboard/dashlets/templates/databasequota.htm
@@ -11,7 +11,7 @@
 	  <tbody>
 	  <tmpl_loop name='databasequota'>
 		  <tr>
-			  <td>{tmpl_var name='database_name'}</td>
+			  <td><a href="#" data-load-content="sites/database_edit.php?id={tmpl_var name='database_id'}" data-toggle="tooltip" data-placement="bottom" title="" data-original-title="{tmpl_var name='database_name'}">{tmpl_var name='database_name'}</a></td>
 			  <td>{tmpl_var name='used'}</td>
 			  <td>{tmpl_var name='database_quota'}</td>
 			  {tmpl_if name="quota_raw" op="!=" value="-1"}<td>
diff --git a/interface/web/dashboard/dashlets/templates/mailquota.htm b/interface/web/dashboard/dashlets/templates/mailquota.htm
index 9013c7ac3bc781797a3fa10fc480bcfa9c80a330..08834fa5ab372f952927f3adfbfaf732f3e15551 100644
--- a/interface/web/dashboard/dashlets/templates/mailquota.htm
+++ b/interface/web/dashboard/dashlets/templates/mailquota.htm
@@ -16,7 +16,7 @@
 			  <td>{tmpl_var name='name'}</td>
 			  <td>{tmpl_var name='used'}</td>
 			  <td>{tmpl_var name='quota'}</td>
-			  {tmpl_if name="quota_raw" op="!=" value="0"}<td>
+			  {tmpl_if name="quota_raw" op="!=" value="-1"}<td>
 			  <div class='progress'>
 				  <div class='progress-bar-striped progress-bar progress-bar-{tmpl_if name="used_percentage" op="<" value="50"}success{tmpl_elseif name="used_percentage" op="<" value="75"}warning{tmpl_else}danger{/tmpl_if}' role='progressbar' aria-valuemin='0' aria-valuemax='100' aria-valuenow='{tmpl_var name="used_percentage"}' style='width:{tmpl_var name="used_percentage"}%'><span>{tmpl_var name="used_percentage"}%</span>
 				  <span class='sr-only'>{tmpl_var name='used'} {tmpl_var name='of_txt'} {tmpl_var name='quota'}</span>
diff --git a/interface/web/dashboard/dashlets/templates/quota.htm b/interface/web/dashboard/dashlets/templates/quota.htm
index fe006c2087e20852abd0a0889c6cd5452aa2abda..6014467e806453728842d0b501d55d2e5f048b4a 100644
--- a/interface/web/dashboard/dashlets/templates/quota.htm
+++ b/interface/web/dashboard/dashlets/templates/quota.htm
@@ -12,7 +12,7 @@
 		<tbody>
 			<tmpl_loop name='quota'>
 				<tr>
-					<td>{tmpl_var name='domain'}</td>
+					<td><a href="#" data-load-content="sites/web_vhost_domain_edit.php?id={tmpl_var name='domain_id'}" data-toggle="tooltip" data-placement="bottom" title="" data-original-title="{tmpl_var name='domain'}">{tmpl_var name='domain'}</a></td>
 					<td>{tmpl_var name='used'}</td>
 					<td>{tmpl_var name='soft'}</td>
 					<td>{tmpl_var name='hard'}</td>
diff --git a/interface/web/login/index.php b/interface/web/login/index.php
index e85faff8d4ad2d2aa461e2944a296e844f22b944..87844408d759c7644a069278b373099e0b335297 100644
--- a/interface/web/login/index.php
+++ b/interface/web/login/index.php
@@ -177,7 +177,7 @@ function process_login_request(app $app, &$error, $conf, $module)
 		if ($app->db->errorMessage != '') $error .= '<br />'.$app->db->errorMessage != '';
 
 		$app->plugin->raiseEvent('login_failed', $username);
-		$app->auth_log('Failed login for user \''. $username .'\ from '. $_SERVER['REMOTE_ADDR'] .' at '. date('Y-m-d H:i:s'));
+		$app->auth_log('Failed login for user \''. $username .'\' from '. $_SERVER['REMOTE_ADDR'] .' at '. date('Y-m-d H:i:s'));
 	}
 }
 
diff --git a/interface/web/mail/mail_alias_edit.php b/interface/web/mail/mail_alias_edit.php
index 8f5b27dd2a6954d3ba67c66c47d642995f404e62..f514bf61b334b54bbadb7603e151c93e6232ddc5 100644
--- a/interface/web/mail/mail_alias_edit.php
+++ b/interface/web/mail/mail_alias_edit.php
@@ -88,6 +88,13 @@ class page_action extends tform_actions {
 		}
 		$app->tpl->setVar("email_domain", $domain_select);
 
+		$csrf_token = $app->auth->csrf_token_get('mail_alias_del');
+		$app->tpl->setVar('_csrf_id', $csrf_token['csrf_id']);
+		$app->tpl->setVar('_csrf_key', $csrf_token['csrf_key']);
+
+		$global_config = $app->getconf->get_global_config();
+		$app->tpl->setVar('show_delete_on_forms', $global_config['misc']['show_delete_on_forms']);
+
 		parent::onShowEnd();
 	}
 
diff --git a/interface/web/mail/mail_domain_edit.php b/interface/web/mail/mail_domain_edit.php
index f17f74e012f664dec4289db576905fc4921ed6b0..4d03dc9d68cabff165badad788088ce369de6574 100644
--- a/interface/web/mail/mail_domain_edit.php
+++ b/interface/web/mail/mail_domain_edit.php
@@ -256,6 +256,13 @@ class page_action extends tform_actions {
 		$app->tpl->setVar('dkim_public', $rec['dkim_public'], true);
 		if (!empty($rec['dkim_public'])) $app->tpl->setVar('dns_record', $dns_record, true);
 
+		$csrf_token = $app->auth->csrf_token_get('mail_domain_del');
+		$app->tpl->setVar('_csrf_id', $csrf_token['csrf_id']);
+		$app->tpl->setVar('_csrf_key', $csrf_token['csrf_key']);
+
+		$global_config = $app->getconf->get_global_config();
+		$app->tpl->setVar('show_delete_on_forms', $global_config['misc']['show_delete_on_forms']);
+
 		parent::onShowEnd();
 	 }
 
diff --git a/interface/web/mail/mail_forward_edit.php b/interface/web/mail/mail_forward_edit.php
index 3106dc477c58dad075bc550a6c03698c9e7b5b6a..0b8be9843424b52e5eebc2ee4deff2850f0b8a35 100644
--- a/interface/web/mail/mail_forward_edit.php
+++ b/interface/web/mail/mail_forward_edit.php
@@ -86,6 +86,13 @@ class page_action extends tform_actions {
 		}
 		$app->tpl->setVar("email_domain", $domain_select);
 
+		$csrf_token = $app->auth->csrf_token_get('mail_forward_del');
+		$app->tpl->setVar('_csrf_id', $csrf_token['csrf_id']);
+		$app->tpl->setVar('_csrf_key', $csrf_token['csrf_key']);
+
+		$global_config = $app->getconf->get_global_config();
+		$app->tpl->setVar('show_delete_on_forms', $global_config['misc']['show_delete_on_forms']);
+
 		parent::onShowEnd();
 	}
 
diff --git a/interface/web/mail/mail_user_edit.php b/interface/web/mail/mail_user_edit.php
index b5c7ef293b9e09c9c205a9c6ad8c680a8a7139d6..e435f6ab96400086b5b0a81a0bae766fd829371e 100644
--- a/interface/web/mail/mail_user_edit.php
+++ b/interface/web/mail/mail_user_edit.php
@@ -147,6 +147,13 @@ class page_action extends tform_actions {
 			$app->tpl->setVar("enable_custom_login", 0);
 		}
 
+		$csrf_token = $app->auth->csrf_token_get('mail_user_del');
+		$app->tpl->setVar('_csrf_id', $csrf_token['csrf_id']);
+		$app->tpl->setVar('_csrf_key', $csrf_token['csrf_key']);
+
+		$global_config = $app->getconf->get_global_config();
+		$app->tpl->setVar('show_delete_on_forms', $global_config['misc']['show_delete_on_forms']);
+
 		parent::onShowEnd();
 	}
 
diff --git a/interface/web/mail/templates/mail_alias_edit.htm b/interface/web/mail/templates/mail_alias_edit.htm
index 7cd50b7d6fdd66a40da9bd3d2e382f1225f5d445..3732f669c2cfceed2e28138ced6ce4468be545cd 100644
--- a/interface/web/mail/templates/mail_alias_edit.htm
+++ b/interface/web/mail/templates/mail_alias_edit.htm
@@ -38,7 +38,12 @@
         <input type="hidden" name="id" value="{tmpl_var name='id'}">
         <input type="hidden" name="type" value="alias">
 
-        <div class="clear"><div class="right">
-            <button class="btn btn-default formbutton-success" type="button" value="{tmpl_var name='btn_save_txt'}" data-submit-form="pageForm" data-form-action="mail/mail_alias_edit.php">{tmpl_var name='btn_save_txt'}</button>
-            <button class="btn btn-default formbutton-default" type="button" value="{tmpl_var name='btn_cancel_txt'}" data-load-content="mail/mail_alias_list.php">{tmpl_var name='btn_cancel_txt'}</button>
-        </div></div>
+        <div class="clear">
+            <tmpl_if name='id'><tmpl_if name='show_delete_on_forms' op="==" value="y">
+                <a class="btn btn-default formbutton-danger formbutton-narrow" href="javascript: ISPConfig.confirm_action('mail/mail_alias_del.php?id={tmpl_var name='id'}&_csrf_id={tmpl_var name='_csrf_id'}&_csrf_key={tmpl_var name='_csrf_key'}&phpsessid={tmpl_var name='phpsessid'}','{tmpl_var name='delete_confirmation'}');"><span class="icon icon-delete"></span></a>
+            </tmpl_if></tmpl_if>
+            <div class="right">
+                <button class="btn btn-default formbutton-success" type="button" value="{tmpl_var name='btn_save_txt'}" data-submit-form="pageForm" data-form-action="mail/mail_alias_edit.php">{tmpl_var name='btn_save_txt'}</button>
+                <button class="btn btn-default formbutton-default" type="button" value="{tmpl_var name='btn_cancel_txt'}" data-load-content="mail/mail_alias_list.php">{tmpl_var name='btn_cancel_txt'}</button>
+            </div>
+        </div>
diff --git a/interface/web/mail/templates/mail_domain_edit.htm b/interface/web/mail/templates/mail_domain_edit.htm
index 3486dcfff203c803eb30337df1bb3d62f6958e85..98e0291ce9e1ceeb00eee15305730f8a523d4d8f 100644
--- a/interface/web/mail/templates/mail_domain_edit.htm
+++ b/interface/web/mail/templates/mail_domain_edit.htm
@@ -139,10 +139,15 @@
 
         <input type="hidden" name="id" value="{tmpl_var name='id'}">
         <input type="hidden" name="type" value="local">
-        <div class="clear"><div class="right">
-            <button class="btn btn-default formbutton-success" type="button" value="{tmpl_var name='btn_save_txt'}" data-submit-form="pageForm" data-form-action="mail/mail_domain_edit.php">{tmpl_var name='btn_save_txt'}</button>
-            <button class="btn btn-default formbutton-default" type="button" value="{tmpl_var name='btn_cancel_txt'}" data-load-content="mail/mail_domain_list.php">{tmpl_var name='btn_cancel_txt'}</button>
-        </div></div>
+        <div class="clear">
+            <tmpl_if name='id'><tmpl_if name='show_delete_on_forms' op="==" value="y">
+                <a class="btn btn-default formbutton-danger formbutton-narrow" href="javascript: ISPConfig.confirm_action('mail/mail_domain_del.php?id={tmpl_var name='id'}&_csrf_id={tmpl_var name='_csrf_id'}&_csrf_key={tmpl_var name='_csrf_key'}&phpsessid={tmpl_var name='phpsessid'}','{tmpl_var name='delete_confirmation'}');"><span class="icon icon-delete"></span></a>
+            </tmpl_if></tmpl_if>
+            <div class="right">
+                <button class="btn btn-default formbutton-success" type="button" value="{tmpl_var name='btn_save_txt'}" data-submit-form="pageForm" data-form-action="mail/mail_domain_edit.php">{tmpl_var name='btn_save_txt'}</button>
+                <button class="btn btn-default formbutton-default" type="button" value="{tmpl_var name='btn_cancel_txt'}" data-load-content="mail/mail_domain_list.php">{tmpl_var name='btn_cancel_txt'}</button>
+            </div>
+	</div>
 <script language="JavaScript" type="text/javascript">
 	$("#dkim-button").click(function() { getDKIM(); });
 
diff --git a/interface/web/mail/templates/mail_forward_edit.htm b/interface/web/mail/templates/mail_forward_edit.htm
index 908156f31ff81abe2eeaf2725b13f7bccb993da5..f5d1f6b21175af69d9682f9eeaf67e1d03865d35 100644
--- a/interface/web/mail/templates/mail_forward_edit.htm
+++ b/interface/web/mail/templates/mail_forward_edit.htm
@@ -36,7 +36,12 @@
         <input type="hidden" name="id" value="{tmpl_var name='id'}">
         <input type="hidden" name="type" value="forward">
 
-        <div class="clear"><div class="right">
-            <button class="btn btn-default formbutton-success" type="button" value="{tmpl_var name='btn_save_txt'}" data-submit-form="pageForm" data-form-action="mail/mail_forward_edit.php">{tmpl_var name='btn_save_txt'}</button>
-            <button class="btn btn-default formbutton-default" type="button" value="{tmpl_var name='btn_cancel_txt'}" data-load-content="mail/mail_forward_list.php">{tmpl_var name='btn_cancel_txt'}</button>
-        </div></div>
+        <div class="clear">
+            <tmpl_if name='id'><tmpl_if name='show_delete_on_forms' op="==" value="y">
+                <a class="btn btn-default formbutton-danger formbutton-narrow" href="javascript: ISPConfig.confirm_action('mail/mail_domain_del.php?id={tmpl_var name='id'}&_csrf_id={tmpl_var name='_csrf_id'}&_csrf_key={tmpl_var name='_csrf_key'}&phpsessid={tmpl_var name='phpsessid'}','{tmpl_var name='delete_confirmation'}');"><span class="icon icon-delete"></span></a>
+            </tmpl_if></tmpl_if>
+            <div class="right">
+                <button class="btn btn-default formbutton-success" type="button" value="{tmpl_var name='btn_save_txt'}" data-submit-form="pageForm" data-form-action="mail/mail_forward_edit.php">{tmpl_var name='btn_save_txt'}</button>
+                <button class="btn btn-default formbutton-default" type="button" value="{tmpl_var name='btn_cancel_txt'}" data-load-content="mail/mail_forward_list.php">{tmpl_var name='btn_cancel_txt'}</button>
+            </div>
+        </div>
diff --git a/interface/web/mail/templates/mail_user_mailbox_edit.htm b/interface/web/mail/templates/mail_user_mailbox_edit.htm
index 870e40b2f585164f4a40b219f7d36450ea067194..5dd5e50a90424e0e3b96b1305c905f497739bfe0 100644
--- a/interface/web/mail/templates/mail_user_mailbox_edit.htm
+++ b/interface/web/mail/templates/mail_user_mailbox_edit.htm
@@ -120,7 +120,12 @@
 
         <input type="hidden" name="id" value="{tmpl_var name='id'}">
 
-        <div class="clear"><div class="right">
-            <button class="btn btn-default formbutton-success" type="button" value="{tmpl_var name='btn_save_txt'}" data-submit-form="pageForm" data-form-action="mail/mail_user_edit.php">{tmpl_var name='btn_save_txt'}</button>
-            <button class="btn btn-default formbutton-default" type="button" value="{tmpl_var name='btn_cancel_txt'}" data-load-content="mail/mail_user_list.php">{tmpl_var name='btn_cancel_txt'}</button>
-        </div></div>
+        <div class="clear">
+            <tmpl_if name='id'><tmpl_if name='show_delete_on_forms' op="==" value="y">
+                <a class="btn btn-default formbutton-danger formbutton-narrow" href="javascript: ISPConfig.confirm_action('mail/mail_user_del.php?id={tmpl_var name='id'}&_csrf_id={tmpl_var name='_csrf_id'}&_csrf_key={tmpl_var name='_csrf_key'}&phpsessid={tmpl_var name='phpsessid'}','{tmpl_var name='delete_confirmation'}');"><span class="icon icon-delete"></span></a>
+            </tmpl_if></tmpl_if>
+            <div class="right">
+                <button class="btn btn-default formbutton-success" type="button" value="{tmpl_var name='btn_save_txt'}" data-submit-form="pageForm" data-form-action="mail/mail_user_edit.php">{tmpl_var name='btn_save_txt'}</button>
+                <button class="btn btn-default formbutton-default" type="button" value="{tmpl_var name='btn_cancel_txt'}" data-load-content="mail/mail_user_list.php">{tmpl_var name='btn_cancel_txt'}</button>
+            </div>
+	</div>
diff --git a/server/plugins-available/bind_plugin.inc.php b/server/plugins-available/bind_plugin.inc.php
index 15fe0626481faaf170b8f8f6c9e5bc41315a3f0b..2a5ccca269472bdce970bfda505ef7e3bcfcadee 100644
--- a/server/plugins-available/bind_plugin.inc.php
+++ b/server/plugins-available/bind_plugin.inc.php
@@ -87,7 +87,7 @@ class bind_plugin {
 		$dns_config = $app->getconf->get_server_config($conf["server_id"], 'dns');
 
 		$domain = substr($data['new']['origin'], 0, strlen($data['new']['origin'])-1);
-		if (!file_exists($dns_config['bind_zonefiles_dir'].'/'.$this->zone_file_prefix().$domain)) return false;
+		if (!file_exists($dns_config['bind_zonefiles_dir'].'/'.$dns_config['bind_zonefiles_masterprefix'].$domain)) return false;
 
 		//* Check Entropy
 		if (file_get_contents('/proc/sys/kernel/random/entropy_avail') < 200) {
@@ -136,7 +136,7 @@ class bind_plugin {
 		//* load the server configuration options
 		$dns_config = $app->getconf->get_server_config($conf["server_id"], 'dns');
 
-		$filespre = $this->zone_file_prefix();
+		$filespre = $dns_config['bind_zonefiles_masterprefix'];
 		$domain = substr($data['new']['origin'], 0, strlen($data['new']['origin'])-1);
 		if (!file_exists($dns_config['bind_zonefiles_dir'].'/'.$filespre.$domain)) return false;
 
@@ -171,7 +171,7 @@ class bind_plugin {
 		file_put_contents($dns_config['bind_zonefiles_dir'].'/'.$filespre.$domain, $zonefile);
 
 		//* Sign the zone and set it valid for max. 16 days
-		$app->system->exec_safe('cd ?; dnssec-signzone -A -e +1382400 -3 $(head -c 1000 /dev/random | sha1sum | cut -b 1-16) -N increment -o ? -K ? -t ?', $dns_config['bind_zonefiles_dir'], $domain, $dns_config['bind_keyfiles_dir'], $dns_config['bind_zonefiles_dir'].'/'.$filespre.$domain);
+		$app->system->exec_safe('cd ?; dnssec-signzone -A -e +1382400 -3 $(head -c 1000 /dev/random | sha1sum | cut -b 1-16) -N increment -o ? -K ? -t ?', $dns_config['bind_keyfiles_dir'], $domain, $dns_config['bind_keyfiles_dir'], $dns_config['bind_zonefiles_dir'].'/'.$filespre.$domain);
 
 		//* Write Data back ino DB
 		$dnssecdata = "DS-Records:\n".file_get_contents($dns_config['bind_keyfiles_dir'].'/dsset-'.$domain.'.');
@@ -202,7 +202,7 @@ class bind_plugin {
 		//* load the server configuration options
 		$dns_config = $app->getconf->get_server_config($conf["server_id"], 'dns');
 
-		$filespre = $this->zone_file_prefix();
+		$filespre = $dns_config['bind_zonefiles_masterprefix'];
 		$domain = substr($data['new']['origin'], 0, strlen($data['new']['origin'])-1);
 		if (!file_exists($dns_config['bind_zonefiles_dir'].'/'.$filespre.$domain)) return false;
 
@@ -241,7 +241,7 @@ class bind_plugin {
 		foreach($key_files as $file) {
 			unlink($file);
 		}
-		unlink($dns_config['bind_zonefiles_dir'].'/'.$this->zone_file_prefix().$domain.'.signed');
+		unlink($dns_config['bind_zonefiles_dir'].'/'.$dns_config['bind_zonefiles_masterprefix'].$domain.'.signed');
 		unlink($dns_config['bind_keyfiles_dir'].'/dsset-'.$domain.'.');
 
 		if ($app->dbmaster !== $app->db) $app->dbmaster->query('UPDATE dns_soa SET dnssec_info=\'\', dnssec_initialized=\'N\' WHERE id=?', intval($data['new']['id']));
@@ -329,7 +329,7 @@ class bind_plugin {
 			}
 			$tpl->setLoop('zones', $records);
 
-			$filename = $dns_config['bind_zonefiles_dir'].'/' . $this->zone_file_prefix() . str_replace("/", "_", substr($zone['origin'], 0, -1));
+			$filename = $dns_config['bind_zonefiles_dir'].'/' . $dns_config['bind_zonefiles_masterprefix'] . str_replace("/", "_", substr($zone['origin'], 0, -1));
 
 			$old_zonefile = @file_get_contents($filename);
 			$rendered_zone = $tpl->grab();
@@ -380,7 +380,7 @@ class bind_plugin {
 		} elseif ($data['new']['dnssec_wanted'] == 'Y' && $data['old']['dnssec_initialized'] == 'N') {
 			$this->soa_dnssec_create($data);
 		} elseif ($data['new']['dnssec_wanted'] == 'N' && $data['old']['dnssec_initialized'] == 'Y') {	//delete old signed file if dnssec is no longer wanted
-			$filename = $dns_config['bind_zonefiles_dir'].'/' . $this->zone_file_prefix() . str_replace("/", "_", substr($data['old']['origin'], 0, -1));
+			$filename = $dns_config['bind_zonefiles_dir'].'/' . $dns_config['bind_zonefiles_masterprefix'] . str_replace("/", "_", substr($data['old']['origin'], 0, -1));
 			if(is_file($filename.'.signed')) unlink($filename.'.signed');
  		} elseif ($data['new']['dnssec_wanted'] == 'Y') {
 			$this->soa_dnssec_update($data);
@@ -394,7 +394,7 @@ class bind_plugin {
 
 		//* Delete old domain file, if domain name has been changed
 		if(!empty($data['old']['origin']) && $data['old']['origin'] != $data['new']['origin']) {
-			$filename = $dns_config['bind_zonefiles_dir'].'/' . $this->zone_file_prefix() . str_replace("/", "_", substr($data['old']['origin'], 0, -1));
+			$filename = $dns_config['bind_zonefiles_dir'].'/' . $dns_config['bind_zonefiles_masterprefix'] . str_replace("/", "_", substr($data['old']['origin'], 0, -1));
 
 			if(is_file($filename)) unlink($filename);
 			if(is_file($filename.'.err')) unlink($filename.'.err');
@@ -421,7 +421,7 @@ class bind_plugin {
 		$this->write_named_conf($data, $dns_config);
 
 		//* Delete the domain file
-		$zone_file_name = $dns_config['bind_zonefiles_dir'].'/' . $this->zone_file_prefix() . str_replace("/", "_", substr($data['old']['origin'], 0, -1));
+		$zone_file_name = $dns_config['bind_zonefiles_dir'].'/' . $dns_config['bind_zonefiles_masterprefix'] . str_replace("/", "_", substr($data['old']['origin'], 0, -1));
 		if(is_file($zone_file_name)) unlink($zone_file_name);
 		if(is_file($zone_file_name.'.err')) unlink($zone_file_name.'.err');
 		$app->log("Deleting BIND domain file: ".$zone_file_name, LOGLEVEL_DEBUG);
@@ -455,7 +455,7 @@ class bind_plugin {
 
 		//* Delete old domain file, if domain name has been changed
 		if($data['old']['origin'] != $data['new']['origin']) {
-			$filename = $dns_config['bind_zonefiles_dir'].'/' . $this->zone_file_prefix() . str_replace("/", "_", substr($data['old']['origin'], 0, -1));
+			$filename = $dns_config['bind_zonefiles_dir'].'/' . $dns_config['bind_zonefiles_masterprefix'] . str_replace("/", "_", substr($data['old']['origin'], 0, -1));
 			if(is_file($filename)) unset($filename);
 		}
 
@@ -482,7 +482,7 @@ class bind_plugin {
 		$this->write_named_conf($data, $dns_config);
 
 		//* Delete the domain file
-		$zone_file_name = $dns_config['bind_zonefiles_dir'].'/' . $this->slave_zone_file_prefix() . str_replace("/", "_", substr($data['old']['origin'], 0, -1));
+		$zone_file_name = $dns_config['bind_zonefiles_dir'].'/' . $dns_config['bind_zonefiles_slaveprefix'] . str_replace("/", "_", substr($data['old']['origin'], 0, -1));
 		if(is_file($zone_file_name)) unlink($zone_file_name);
 		$app->log("Deleting BIND domain file for secondary zone: ".$zone_file_name, LOGLEVEL_DEBUG);
 
@@ -539,8 +539,8 @@ class bind_plugin {
 
 		//* Check if the current zone that triggered this function has at least one NS record
 
-		$pri_zonefiles_path = $dns_config['bind_zonefiles_dir'].'/'.$this->zone_file_prefix();
-		$sec_zonefiles_path = $dns_config['bind_zonefiles_dir'].'/'.$this->slave_zone_file_prefix();
+		$pri_zonefiles_path = $dns_config['bind_zonefiles_dir'].'/'.$dns_config['bind_zonefiles_masterprefix'];
+		$sec_zonefiles_path = $dns_config['bind_zonefiles_dir'].'/'.$dns_config['bind_zonefiles_slaveprefix'];
 
 		//* Loop trough zones
 		foreach($tmps as $tmp) {
@@ -603,20 +603,6 @@ class bind_plugin {
 		unset($tmps);
 
 	}
-
-
-	function zone_file_prefix() {
-		//TODO : change this when distribution information has been integrated into server record
-		return	(file_exists('/etc/gentoo-release')) ? 'pri/' : 'pri.';
-	}
-	function slave_zone_file_prefix() {
-		//TODO : change this when distribution information has been integrated into server record
-		return	(file_exists('/etc/gentoo-release')) ? 'sec/' : 'slave/sec.';
-	}
-
-
-
-
 } // end class
 
 ?>