From ad4f17dfd6d09557fa20286071a5c895da408461 Mon Sep 17 00:00:00 2001 From: Herman van Rink Date: Thu, 20 Dec 2018 21:27:11 +0100 Subject: [PATCH 001/215] Add descriptive comments to table definition --- install/sql/incremental/upd_dev_collection.sql | 2 ++ install/sql/ispconfig3.sql | 4 ++-- 2 files changed, 4 insertions(+), 2 deletions(-) diff --git a/install/sql/incremental/upd_dev_collection.sql b/install/sql/incremental/upd_dev_collection.sql index 872ebfb46..f06e44974 100644 --- a/install/sql/incremental/upd_dev_collection.sql +++ b/install/sql/incremental/upd_dev_collection.sql @@ -1 +1,3 @@ ALTER TABLE `sys_datalog` ADD `session_id` varchar(64) NOT NULL DEFAULT '' AFTER `error`; +ALTER TABLE `sys_user` CHANGE `sys_userid` `sys_userid` INT(11) UNSIGNED NOT NULL DEFAULT '1' COMMENT 'Created by userid'; +ALTER TABLE `sys_user` CHANGE `sys_groupid` `sys_groupid` INT(11) UNSIGNED NOT NULL DEFAULT '1' COMMENT 'Created by groupid'; diff --git a/install/sql/ispconfig3.sql b/install/sql/ispconfig3.sql index aacd2ecdb..79dfde327 100644 --- a/install/sql/ispconfig3.sql +++ b/install/sql/ispconfig3.sql @@ -1785,8 +1785,8 @@ CREATE TABLE IF NOT EXISTS `sys_theme` ( CREATE TABLE `sys_user` ( `userid` int(11) unsigned NOT NULL auto_increment, - `sys_userid` int(11) unsigned NOT NULL default '1', - `sys_groupid` int(11) unsigned NOT NULL default '1', + `sys_userid` int(11) unsigned NOT NULL default '1' COMMENT 'Created by userid', + `sys_groupid` int(11) unsigned NOT NULL default '1' COMMENT 'Created by groupid', `sys_perm_user` varchar(5) NOT NULL default 'riud', `sys_perm_group` varchar(5) NOT NULL default 'riud', `sys_perm_other` varchar(5) NOT NULL default '', -- GitLab From 3f9c6a3a929694715d756e023de4447de554e4c4 Mon Sep 17 00:00:00 2001 From: Webslice Date: Thu, 17 Jan 2019 20:16:53 +0100 Subject: [PATCH 002/215] Add support for powerdns 4.x, fixes #5223 --- .../plugins-available/powerdns_plugin.inc.php | 108 +++++++++++------- 1 file changed, 67 insertions(+), 41 deletions(-) diff --git a/server/plugins-available/powerdns_plugin.inc.php b/server/plugins-available/powerdns_plugin.inc.php index f5f5158c4..1ecdfaf50 100644 --- a/server/plugins-available/powerdns_plugin.inc.php +++ b/server/plugins-available/powerdns_plugin.inc.php @@ -7,14 +7,14 @@ All rights reserved. Redistribution and use in source and binary forms, with or without modification, are permitted provided that the following conditions are met: - * Redistributions of source code must retain the above copyright notice, - this list of conditions and the following disclaimer. - * Redistributions in binary form must reproduce the above copyright notice, - this list of conditions and the following disclaimer in the documentation - and/or other materials provided with the distribution. - * Neither the name of ISPConfig nor the names of its contributors - may be used to endorse or promote products derived from this software without - specific prior written permission. + * Redistributions of source code must retain the above copyright notice, + this list of conditions and the following disclaimer. + * Redistributions in binary form must reproduce the above copyright notice, + this list of conditions and the following disclaimer in the documentation + and/or other materials provided with the distribution. + * Neither the name of ISPConfig nor the names of its contributors + may be used to endorse or promote products derived from this software without + specific prior written permission. THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED @@ -97,7 +97,7 @@ class powerdns_plugin { /* - This function is called when the plugin is loaded + This function is called when the plugin is loaded */ function onLoad() { @@ -421,15 +421,23 @@ class powerdns_plugin { } } - function find_pdns_pdnssec() { + function find_pdns_pdnssec_or_pdnsutil() { $output = array(); $retval = ''; + + // The command is named pdnssec in PowerDNS 3 exec("type -p pdnssec", $output, $retval); if ($retval == 0 && is_file($output[0])){ return $output[0]; - } else { - return false; } + + // But in PowerNDS 4 they renamed it to pdnsutil + exec("type -p pdnsutil", $output, $retval); + if ($retval == 0 && is_file($output[0])){ + return $output[0]; + } + + return false; } function zoneRediscover() { @@ -466,6 +474,14 @@ class powerdns_plugin { } } + function is_pdns_version_supported() { + if (preg_match('/^[34]/',$this->get_pdns_version())) { + return true; + } + + return false; + } + function handle_dnssec($data) { // If origin changed, delete keys first if ($data['old']['origin'] != $data['new']['origin']) { @@ -475,14 +491,14 @@ class powerdns_plugin { } // If DNSSEC is disabled, but was enabled before, just disable DNSSEC but leave the keys in dns_info - if ($data['new']['dnssec_wanted'] === 'N' && $data['old']['dnssec_initialized'] === 'Y') { + if ($data['new']['dnssec_wanted'] === 'N' && $data['old']['dnssec_wanted'] === 'Y') { $this->soa_dnssec_disable($data); return; } // If DNSSEC is wanted, enable it - if ($data['new']['dnssec_wanted'] === 'Y') { + if ($data['new']['dnssec_wanted'] === 'Y' && $data['old']['dnssec_wanted'] === 'N') { $this->soa_dnssec_create($data); } } @@ -490,11 +506,11 @@ class powerdns_plugin { function soa_dnssec_create($data) { global $app; - if (!preg_match('/^3/',$this->get_pdns_version()) ) { + if (false === $this->is_pdns_version_supported()) { return; } - $pdns_pdnssec = $this->find_pdns_pdnssec(); + $pdns_pdnssec = $this->find_pdns_pdnssec_or_pdnsutil(); if ($pdns_pdnssec === false) { return; } @@ -504,9 +520,13 @@ class powerdns_plugin { // We don't log the actual commands here, because having commands in the dnssec_info field will trigger // the IDS if you try to save the record using the interface afterwards. - $cmd_secure_zone = sprintf('%s secure-zone %s 2>&1', $pdns_pdnssec, $zone); - $log[] = sprintf("\r\n%s %s", date('c'), 'Running secure-zone command...'); - exec($cmd_secure_zone, $log); + $cmd_add_zone_key_ksk = sprintf('%s add-zone-key %s ksk active 2048 rsasha256', $pdns_pdnssec, $zone); + $log[] = sprintf("\r\n%s %s", date('c'), 'Running add-zone-key ksk command...'); + exec($cmd_add_zone_key_ksk, $log); + + $cmd_add_zone_key_zsk = sprintf('%s add-zone-key %s zsk active 1024 rsasha256', $pdns_pdnssec, $zone); + $log[] = sprintf("\r\n%s %s", date('c'), 'Running add-zone-key zsk command...'); + exec($cmd_add_zone_key_zsk, $log); $cmd_set_nsec3 = sprintf('%s set-nsec3 %s "1 0 10 deadbeef" 2>&1', $pdns_pdnssec, $zone); $log[] = sprintf("\r\n%s %s", date('c'), 'Running set-nsec3 command...'); @@ -539,17 +559,19 @@ class powerdns_plugin { switch ($part = substr($line, 0, 3)) { case 'ID ': // Only process active keys - if (!strpos($line, 'Active: 1')) { - continue; + // 'Active: 1' is pdnssec (PowerDNS 3.x) output + // 'Active (' is pdnsutil (PowerDNS 4.x) output + if (!strpos($line, 'Active: 1') && !strpos($line, 'Active ( ')) { + break; } - // Determine key type (KSK or ZSK) - preg_match('/(KSK|ZSK)/', $line, $matches_key_type); + // Determine key type (KSK, ZSK or CSK) + preg_match('/(KSK|ZSK|CSK)/', $line, $matches_key_type); $key_type = $matches_key_type[1]; - // We only care about the KSK - if ('ZSK' === $key_type) { - continue; + // We only care about the KSK or CSK + if (!in_array($key_type, ['KSK', 'CSK'], true)) { + break; } // Determine key tag @@ -568,6 +590,7 @@ class powerdns_plugin { break; case 'KSK': + case 'CSK': // Determine DNSKEY preg_match('/ IN DNSKEY \d+ \d+ \d+ (.*) ;/', $line, $matches_dnskey); $formatted[] = sprintf('DNSKEY: %s', $matches_dnskey[1]); @@ -604,11 +627,11 @@ class powerdns_plugin { function soa_dnssec_disable($data) { global $app; - if (!preg_match('/^3/',$this->get_pdns_version()) ) { + if (false === $this->is_pdns_version_supported()) { return; } - $pdns_pdnssec = $this->find_pdns_pdnssec(); + $pdns_pdnssec = $this->find_pdns_pdnssec_or_pdnsutil(); if ($pdns_pdnssec === false) { return; } @@ -631,11 +654,11 @@ class powerdns_plugin { function soa_dnssec_delete($data) { global $app; - if (!preg_match('/^3/',$this->get_pdns_version()) ) { + if (false === $this->is_pdns_version_supported()) { return; } - $pdns_pdnssec = $this->find_pdns_pdnssec(); + $pdns_pdnssec = $this->find_pdns_pdnssec_or_pdnsutil(); if ($pdns_pdnssec === false) { return; } @@ -661,17 +684,20 @@ class powerdns_plugin { function rectifyZone($data) { global $app, $conf; - if ( preg_match('/^3/',$this->get_pdns_version()) ) { - $pdns_pdnssec = $this->find_pdns_pdnssec(); - if ( $pdns_pdnssec != false ) { - if (isset($data["new"]["origin"])) { - //* data has origin field only for SOA recordtypes - exec($pdns_pdnssec . ' rectify-zone ' . rtrim($data["new"]["origin"],".")); - } else { - // get origin from DB for all other recordtypes - $zn = $app->db->queryOneRecord("SELECT d.name AS name FROM powerdns.domains d, powerdns.records r WHERE r.ispconfig_id=? AND r.domain_id = d.id", $data["new"]["id"]); - exec($pdns_pdnssec . ' rectify-zone ' . trim($zn["name"])); - } + + if (false === $this->is_pdns_version_supported()) { + return; + } + + $pdns_pdnssec = $this->find_pdns_pdnssec_or_pdnsutil(); + if ( $pdns_pdnssec != false ) { + if (isset($data["new"]["origin"])) { + //* data has origin field only for SOA recordtypes + exec($pdns_pdnssec . ' rectify-zone ' . rtrim($data["new"]["origin"],".")); + } else { + // get origin from DB for all other recordtypes + $zn = $app->db->queryOneRecord("SELECT d.name AS name FROM powerdns.domains d, powerdns.records r WHERE r.ispconfig_id=? AND r.domain_id = d.id", $data["new"]["id"]); + exec($pdns_pdnssec . ' rectify-zone ' . trim($zn["name"])); } } } -- GitLab From 04d8e6f6e9290755522d915213bd9d6e52b90b6d Mon Sep 17 00:00:00 2001 From: Marius Burkard Date: Fri, 25 Jan 2019 10:11:49 +0100 Subject: [PATCH 003/215] - fixed update serial on delete RR via remoting - reduced duplicate code in dns remoting function --- interface/lib/classes/remote.d/dns.inc.php | 573 ++++++--------------- 1 file changed, 155 insertions(+), 418 deletions(-) diff --git a/interface/lib/classes/remote.d/dns.inc.php b/interface/lib/classes/remote.d/dns.inc.php index faae06dc2..e640145c6 100644 --- a/interface/lib/classes/remote.d/dns.inc.php +++ b/interface/lib/classes/remote.d/dns.inc.php @@ -42,8 +42,7 @@ class remoting_dns extends remoting { // DNS Function -------------------------------------------------------------------------------------------------- //* Create Zone with Template - public function dns_templatezone_add($session_id, $client_id, $template_id, $domain, $ip, $ns1, $ns2, $email) - { + public function dns_templatezone_add($session_id, $client_id, $template_id, $domain, $ip, $ns1, $ns2, $email) { global $app, $conf; if(!$this->checkPerm($session_id, 'dns_templatezone_add')) { throw new SoapFault('permission_denied', 'You do not have the permissions to access this function.'); @@ -184,8 +183,7 @@ class remoting_dns extends remoting { //* Get record details - public function dns_zone_get($session_id, $primary_id) - { + public function dns_zone_get($session_id, $primary_id) { global $app; if(!$this->checkPerm($session_id, 'dns_zone_get')) { @@ -198,8 +196,7 @@ class remoting_dns extends remoting { } //* Get slave zone details - public function dns_slave_get($session_id, $primary_id) - { + public function dns_slave_get($session_id, $primary_id) { global $app; if(!$this->checkPerm($session_id, 'dns_zone_get')) { @@ -213,8 +210,7 @@ class remoting_dns extends remoting { //* Add a slave zone - public function dns_slave_add($session_id, $client_id, $params) - { + public function dns_slave_add($session_id, $client_id, $params) { if(!$this->checkPerm($session_id, 'dns_zone_add')) { throw new SoapFault('permission_denied', 'You do not have the permissions to access this function.'); return false; @@ -223,8 +219,7 @@ class remoting_dns extends remoting { } //* Update a slave zone - public function dns_slave_update($session_id, $client_id, $primary_id, $params) - { + public function dns_slave_update($session_id, $client_id, $primary_id, $params) { if(!$this->checkPerm($session_id, 'dns_zone_update')) { throw new SoapFault('permission_denied', 'You do not have the permissions to access this function.'); return false; @@ -234,8 +229,7 @@ class remoting_dns extends remoting { } //* Delete a slave zone - public function dns_slave_delete($session_id, $primary_id) - { + public function dns_slave_delete($session_id, $primary_id) { if(!$this->checkPerm($session_id, 'dns_zone_delete')) { throw new SoapFault('permission_denied', 'You do not have the permissions to access this function.'); return false; @@ -244,8 +238,7 @@ class remoting_dns extends remoting { } //* Get record id by origin - public function dns_zone_get_id($session_id, $origin) - { + public function dns_zone_get_id($session_id, $origin) { global $app; if(!$this->checkPerm($session_id, 'dns_zone_get_id')) { @@ -268,8 +261,7 @@ class remoting_dns extends remoting { } //* Add a record - public function dns_zone_add($session_id, $client_id, $params) - { + public function dns_zone_add($session_id, $client_id, $params) { if(!$this->checkPerm($session_id, 'dns_zone_add')) { throw new SoapFault('permission_denied', 'You do not have the permissions to access this function.'); return false; @@ -278,8 +270,7 @@ class remoting_dns extends remoting { } //* Update a record - public function dns_zone_update($session_id, $client_id, $primary_id, $params) - { + public function dns_zone_update($session_id, $client_id, $primary_id, $params) { if(!$this->checkPerm($session_id, 'dns_zone_update')) { throw new SoapFault('permission_denied', 'You do not have the permissions to access this function.'); return false; @@ -289,8 +280,7 @@ class remoting_dns extends remoting { } //* Delete a record - public function dns_zone_delete($session_id, $primary_id) - { + public function dns_zone_delete($session_id, $primary_id) { if(!$this->checkPerm($session_id, 'dns_zone_delete')) { throw new SoapFault('permission_denied', 'You do not have the permissions to access this function.'); return false; @@ -301,563 +291,312 @@ class remoting_dns extends remoting { // ---------------------------------------------------------------------------------------------------------------- - //* Get record details - public function dns_aaaa_get($session_id, $primary_id) - { + private function dns_rr_get($session_id, $primary_id, $rr_type = 'A') { global $app; - - if(!$this->checkPerm($session_id, 'dns_aaaa_get')) { + + $rr_type = strtolower($rr_type); + if(!preg_match('/^[a-z]+$/', $rr_type)) { + throw new SoapFault('permission denied', 'Invalid rr type'); + } + + if(!$this->checkPerm($session_id, 'dns_' . $rr_type . '_get')) { throw new SoapFault('permission_denied', 'You do not have the permissions to access this function.'); - return false; } $app->uses('remoting_lib'); - $app->remoting_lib->loadFormDef('../dns/form/dns_aaaa.tform.php'); + $app->remoting_lib->loadFormDef('../dns/form/dns_' . $rr_type . '.tform.php'); return $app->remoting_lib->getDataRecord($primary_id); } - + //* Add a record - public function dns_aaaa_add($session_id, $client_id, $params, $update_serial=false) - { - if(!$this->checkPerm($session_id, 'dns_aaaa_add')) { + private function dns_rr_add($session_id, $client_id, $params, $update_serial=false, $rr_type = 'A') { + $rr_type = strtolower($rr_type); + if(!preg_match('/^[a-z]+$/', $rr_type)) { + throw new SoapFault('permission denied', 'Invalid rr type'); + } + + if(!$this->checkPerm($session_id, 'dns_' . $rr_type . '_add')) { throw new SoapFault('permission_denied', 'You do not have the permissions to access this function.'); - return false; } - if($update_serial) $this->increase_serial($session_id, $client_id, $params); - return $this->insertQuery('../dns/form/dns_aaaa.tform.php', $client_id, $params); + if($update_serial) { + $this->increase_serial($session_id, $client_id, $params); + } + return $this->insertQuery('../dns/form/dns_' . $rr_type . '.tform.php', $client_id, $params); } //* Update a record - public function dns_aaaa_update($session_id, $client_id, $primary_id, $params, $update_serial=false) - { - if(!$this->checkPerm($session_id, 'dns_aaaa_update')) { + private function dns_rr_update($session_id, $client_id, $primary_id, $params, $update_serial=false, $rr_type = 'A') { + $rr_type = strtolower($rr_type); + if(!preg_match('/^[a-z]+$/', $rr_type)) { + throw new SoapFault('permission denied', 'Invalid rr type'); + } + + if(!$this->checkPerm($session_id, 'dns_' . $rr_type . '_update')) { throw new SoapFault('permission_denied', 'You do not have the permissions to access this function.'); return false; } - $affected_rows = $this->updateQuery('../dns/form/dns_aaaa.tform.php', $client_id, $primary_id, $params); - if($update_serial) $this->increase_serial($session_id, $client_id, $params); + $affected_rows = $this->updateQuery('../dns/form/dns_' . $rr_type . '.tform.php', $client_id, $primary_id, $params); + if($update_serial) { + $this->increase_serial($session_id, $client_id, $params); + } return $affected_rows; } - + //* Delete a record - public function dns_aaaa_delete($session_id, $primary_id, $update_serial=false) - { - if(!$this->checkPerm($session_id, 'dns_aaaa_delete')) { + private function dns_rr_delete($session_id, $primary_id, $update_serial=false, $rr_type = 'A') { + $rr_type = strtolower($rr_type); + if(!preg_match('/^[a-z]+$/', $rr_type)) { + throw new SoapFault('permission denied', 'Invalid rr type'); + } + if(!$this->checkPerm($session_id, 'dns_' . $rr_type . '_delete')) { throw new SoapFault('permission_denied', 'You do not have the permissions to access this function.'); - return false; } - $affected_rows = $this->deleteQuery('../dns/form/dns_aaaa.tform.php', $primary_id); - if($update_serial) $this->increase_serial($session_id, $client_id, array('dns_rr_id' => $primary_id)); + if($update_serial) { + $this->increase_serial($session_id, 0, array('dns_rr_id' => $primary_id)); + } + $affected_rows = $this->deleteQuery('../dns/form/dns_' . $rr_type . '.tform.php', $primary_id); return $affected_rows; } + + // ---------------------------------------------------------------------------------------------------------------- + + //* Get record details + public function dns_aaaa_get($session_id, $primary_id) { + return $this->dns_rr_get($session_id, $primary_id, 'AAAA'); + } + + //* Add a record + public function dns_aaaa_add($session_id, $client_id, $params, $update_serial=false) { + return $this->dns_rr_add($session_id, $client_id, $params, $update_serial, 'AAAA'); + } + + //* Update a record + public function dns_aaaa_update($session_id, $client_id, $primary_id, $params, $update_serial=false) { + return $this->dns_rr_update($session_id, $client_id, $primary_id, $params, $update_serial, 'AAAA'); + } + + //* Delete a record + public function dns_aaaa_delete($session_id, $primary_id, $update_serial=false) { + return $this->dns_rr_delete($session_id, $primary_id, $update_serial, 'AAAA'); + } // ---------------------------------------------------------------------------------------------------------------- //* Get record details - public function dns_a_get($session_id, $primary_id) - { - global $app; - - if(!$this->checkPerm($session_id, 'dns_a_get')) { - throw new SoapFault('permission_denied', 'You do not have the permissions to access this function.'); - return false; - } - $app->uses('remoting_lib'); - $app->remoting_lib->loadFormDef('../dns/form/dns_a.tform.php'); - return $app->remoting_lib->getDataRecord($primary_id); + public function dns_a_get($session_id, $primary_id) { + return $this->dns_rr_get($session_id, $primary_id, 'A'); } //* Add a record - public function dns_a_add($session_id, $client_id, $params, $update_serial=false) - { - if(!$this->checkPerm($session_id, 'dns_a_add')) { - throw new SoapFault('permission_denied', 'You do not have the permissions to access this function.'); - return false; - } - if($update_serial) $this->increase_serial($session_id, $client_id, $params); - return $this->insertQuery('../dns/form/dns_a.tform.php', $client_id, $params); + public function dns_a_add($session_id, $client_id, $params, $update_serial=false) { + return $this->dns_rr_add($session_id, $client_id, $params, $update_serial, 'A'); } //* Update a record - public function dns_a_update($session_id, $client_id, $primary_id, $params, $update_serial=false) - { - if(!$this->checkPerm($session_id, 'dns_a_update')) { - throw new SoapFault('permission_denied', 'You do not have the permissions to access this function.'); - return false; - } - if($update_serial) $this->increase_serial($session_id, $client_id, $params); - $affected_rows = $this->updateQuery('../dns/form/dns_a.tform.php', $client_id, $primary_id, $params); - return $affected_rows; + public function dns_a_update($session_id, $client_id, $primary_id, $params, $update_serial=false) { + return $this->dns_rr_update($session_id, $client_id, $primary_id, $params, $update_serial, 'A'); } //* Delete a record - public function dns_a_delete($session_id, $primary_id, $update_serial=false) - { - if(!$this->checkPerm($session_id, 'dns_a_delete')) { - throw new SoapFault('permission_denied', 'You do not have the permissions to access this function.'); - return false; - } - $affected_rows = $this->deleteQuery('../dns/form/dns_a.tform.php', $primary_id); - if($update_serial) $this->increase_serial($session_id, $client_id, array('dns_rr_id' => $primary_id)); - return $affected_rows; + public function dns_a_delete($session_id, $primary_id, $update_serial=false) { + return $this->dns_rr_delete($session_id, $primary_id, $update_serial, 'A'); } // ---------------------------------------------------------------------------------------------------------------- //* Get record details - public function dns_alias_get($session_id, $primary_id) - { - global $app; - - if(!$this->checkPerm($session_id, 'dns_alias_get')) { - throw new SoapFault('permission_denied', 'You do not have the permissions to access this function.'); - return false; - } - $app->uses('remoting_lib'); - $app->remoting_lib->loadFormDef('../dns/form/dns_alias.tform.php'); - return $app->remoting_lib->getDataRecord($primary_id); + public function dns_alias_get($session_id, $primary_id) { + return $this->dns_rr_get($session_id, $primary_id, 'ALIAS'); } //* Add a record - public function dns_alias_add($session_id, $client_id, $params, $update_serial=false) - { - if(!$this->checkPerm($session_id, 'dns_alias_add')) { - throw new SoapFault('permission_denied', 'You do not have the permissions to access this function.'); - return false; - } - if($update_serial) $this->increase_serial($session_id, $client_id, $params); - return $this->insertQuery('../dns/form/dns_alias.tform.php', $client_id, $params); + public function dns_alias_add($session_id, $client_id, $params, $update_serial=false) { + return $this->dns_rr_add($session_id, $client_id, $params, $update_serial, 'ALIAS'); } //* Update a record - public function dns_alias_update($session_id, $client_id, $primary_id, $params, $update_serial=false) - { - if(!$this->checkPerm($session_id, 'dns_alias_update')) { - throw new SoapFault('permission_denied', 'You do not have the permissions to access this function.'); - return false; - } - if($update_serial) $this->increase_serial($session_id, $client_id, $params); - $affected_rows = $this->updateQuery('../dns/form/dns_alias.tform.php', $client_id, $primary_id, $params); - return $affected_rows; + public function dns_alias_update($session_id, $client_id, $primary_id, $params, $update_serial=false) { + return $this->dns_rr_update($session_id, $client_id, $primary_id, $params, $update_serial, 'ALIAS'); } //* Delete a record - public function dns_alias_delete($session_id, $primary_id, $update_serial=false) - { - if(!$this->checkPerm($session_id, 'dns_alias_delete')) { - throw new SoapFault('permission_denied', 'You do not have the permissions to access this function.'); - return false; - } - $affected_rows = $this->deleteQuery('../dns/form/dns_alias.tform.php', $primary_id); - if($update_serial) $this->increase_serial($session_id, $client_id, array('dns_rr_id' => $primary_id)); - return $affected_rows; + public function dns_alias_delete($session_id, $primary_id, $update_serial=false) { + return $this->dns_rr_delete($session_id, $primary_id, $update_serial, 'ALIAS'); } // ---------------------------------------------------------------------------------------------------------------- //* Get record details - public function dns_cname_get($session_id, $primary_id) - { - global $app; - - if(!$this->checkPerm($session_id, 'dns_cname_get')) { - throw new SoapFault('permission_denied', 'You do not have the permissions to access this function.'); - return false; - } - $app->uses('remoting_lib'); - $app->remoting_lib->loadFormDef('../dns/form/dns_cname.tform.php'); - return $app->remoting_lib->getDataRecord($primary_id); + public function dns_cname_get($session_id, $primary_id) { + return $this->dns_rr_get($session_id, $primary_id, 'CNAME'); } //* Add a record - public function dns_cname_add($session_id, $client_id, $params, $update_serial=false) - { - if(!$this->checkPerm($session_id, 'dns_cname_add')) { - throw new SoapFault('permission_denied', 'You do not have the permissions to access this function.'); - return false; - } - if($update_serial) $this->increase_serial($session_id, $client_id, $params); - return $this->insertQuery('../dns/form/dns_cname.tform.php', $client_id, $params); + public function dns_cname_add($session_id, $client_id, $params, $update_serial=false) { + return $this->dns_rr_add($session_id, $client_id, $params, $update_serial, 'CNAME'); } //* Update a record - public function dns_cname_update($session_id, $client_id, $primary_id, $params, $update_serial=false) - { - if(!$this->checkPerm($session_id, 'dns_cname_update')) { - throw new SoapFault('permission_denied', 'You do not have the permissions to access this function.'); - return false; - } - if($update_serial) $this->increase_serial($session_id, $client_id, $params); - $affected_rows = $this->updateQuery('../dns/form/dns_cname.tform.php', $client_id, $primary_id, $params); - return $affected_rows; + public function dns_cname_update($session_id, $client_id, $primary_id, $params, $update_serial=false) { + return $this->dns_rr_update($session_id, $client_id, $primary_id, $params, $update_serial, 'CNAME'); } //* Delete a record - public function dns_cname_delete($session_id, $primary_id, $update_serial=false) - { - if(!$this->checkPerm($session_id, 'dns_cname_delete')) { - throw new SoapFault('permission_denied', 'You do not have the permissions to access this function.'); - return false; - } - $affected_rows = $this->deleteQuery('../dns/form/dns_cname.tform.php', $primary_id); - if($update_serial) $this->increase_serial($session_id, $client_id, array('dns_rr_id' => $primary_id)); - return $affected_rows; + public function dns_cname_delete($session_id, $primary_id, $update_serial=false) { + return $this->dns_rr_delete($session_id, $primary_id, $update_serial, 'CNAME'); } // ---------------------------------------------------------------------------------------------------------------- //* Get record details - public function dns_hinfo_get($session_id, $primary_id) - { - global $app; - - if(!$this->checkPerm($session_id, 'dns_hinfo_get')) { - throw new SoapFault('permission_denied', 'You do not have the permissions to access this function.'); - return false; - } - $app->uses('remoting_lib'); - $app->remoting_lib->loadFormDef('../dns/form/dns_hinfo.tform.php'); - return $app->remoting_lib->getDataRecord($primary_id); + public function dns_hinfo_get($session_id, $primary_id) { + return $this->dns_rr_get($session_id, $primary_id, 'HINFO'); } //* Add a record - public function dns_hinfo_add($session_id, $client_id, $params, $update_serial=false) - { - if(!$this->checkPerm($session_id, 'dns_hinfo_add')) { - throw new SoapFault('permission_denied', 'You do not have the permissions to access this function.'); - return false; - } - if($update_serial) $this->increase_serial($session_id, $client_id, $params); - return $this->insertQuery('../dns/form/dns_hinfo.tform.php', $client_id, $params); + public function dns_hinfo_add($session_id, $client_id, $params, $update_serial=false) { + return $this->dns_rr_add($session_id, $client_id, $params, $update_serial, 'HINFO'); } //* Update a record - public function dns_hinfo_update($session_id, $client_id, $primary_id, $params, $update_serial=false) - { - if(!$this->checkPerm($session_id, 'dns_hinfo_update')) { - throw new SoapFault('permission_denied', 'You do not have the permissions to access this function.'); - return false; - } - if($update_serial) $this->increase_serial($session_id, $client_id, $params); - $affected_rows = $this->updateQuery('../dns/form/dns_hinfo.tform.php', $client_id, $primary_id, $params); - return $affected_rows; + public function dns_hinfo_update($session_id, $client_id, $primary_id, $params, $update_serial=false) { + return $this->dns_rr_update($session_id, $client_id, $primary_id, $params, $update_serial, 'HINFO'); } //* Delete a record - public function dns_hinfo_delete($session_id, $primary_id, $update_serial=false) - { - if(!$this->checkPerm($session_id, 'dns_hinfo_delete')) { - throw new SoapFault('permission_denied', 'You do not have the permissions to access this function.'); - return false; - } - $affected_rows = $this->deleteQuery('../dns/form/dns_hinfo.tform.php', $primary_id); - if($update_serial) $this->increase_serial($session_id, $client_id, array('dns_rr_id' => $primary_id)); - return $affected_rows; + public function dns_hinfo_delete($session_id, $primary_id, $update_serial=false) { + return $this->dns_rr_delete($session_id, $primary_id, $update_serial, 'HINFO'); } // ---------------------------------------------------------------------------------------------------------------- //* Get record details - public function dns_mx_get($session_id, $primary_id) - { - global $app; - - if(!$this->checkPerm($session_id, 'dns_mx_get')) { - throw new SoapFault('permission_denied', 'You do not have the permissions to access this function.'); - return false; - } - $app->uses('remoting_lib'); - $app->remoting_lib->loadFormDef('../dns/form/dns_mx.tform.php'); - return $app->remoting_lib->getDataRecord($primary_id); + public function dns_mx_get($session_id, $primary_id) { + return $this->dns_rr_get($session_id, $primary_id, 'MX'); } //* Add a record - public function dns_mx_add($session_id, $client_id, $params, $update_serial=false) - { - if(!$this->checkPerm($session_id, 'dns_mx_add')) { - throw new SoapFault('permission_denied', 'You do not have the permissions to access this function.'); - return false; - } - if($update_serial) $this->increase_serial($session_id, $client_id, $params); - return $this->insertQuery('../dns/form/dns_mx.tform.php', $client_id, $params); + public function dns_mx_add($session_id, $client_id, $params, $update_serial=false) { + return $this->dns_rr_add($session_id, $client_id, $params, $update_serial, 'MX'); } //* Update a record - public function dns_mx_update($session_id, $client_id, $primary_id, $params, $update_serial=false) - { - if(!$this->checkPerm($session_id, 'dns_mx_update')) { - throw new SoapFault('permission_denied', 'You do not have the permissions to access this function.'); - return false; - } - if($update_serial) $this->increase_serial($session_id, $client_id, $params); - $affected_rows = $this->updateQuery('../dns/form/dns_mx.tform.php', $client_id, $primary_id, $params); - return $affected_rows; + public function dns_mx_update($session_id, $client_id, $primary_id, $params, $update_serial=false) { + return $this->dns_rr_update($session_id, $client_id, $primary_id, $params, $update_serial, 'MX'); } //* Delete a record - public function dns_mx_delete($session_id, $primary_id, $update_serial=false) - { - if(!$this->checkPerm($session_id, 'dns_mx_delete')) { - throw new SoapFault('permission_denied', 'You do not have the permissions to access this function.'); - return false; - } - $affected_rows = $this->deleteQuery('../dns/form/dns_mx.tform.php', $primary_id); - if($update_serial) $this->increase_serial($session_id, $client_id, array('dns_rr_id' => $primary_id)); - return $affected_rows; + public function dns_mx_delete($session_id, $primary_id, $update_serial=false) { + return $this->dns_rr_delete($session_id, $primary_id, $update_serial, 'MX'); } // ---------------------------------------------------------------------------------------------------------------- //* Get record details - public function dns_ns_get($session_id, $primary_id) - { - global $app; - - if(!$this->checkPerm($session_id, 'dns_ns_get')) { - throw new SoapFault('permission_denied', 'You do not have the permissions to access this function.'); - return false; - } - $app->uses('remoting_lib'); - $app->remoting_lib->loadFormDef('../dns/form/dns_ns.tform.php'); - return $app->remoting_lib->getDataRecord($primary_id); + public function dns_ns_get($session_id, $primary_id) { + return $this->dns_rr_get($session_id, $primary_id, 'NS'); } //* Add a record - public function dns_ns_add($session_id, $client_id, $params, $update_serial=false) - { - if(!$this->checkPerm($session_id, 'dns_ns_add')) { - throw new SoapFault('permission_denied', 'You do not have the permissions to access this function.'); - return false; - } - if($update_serial) $this->increase_serial($session_id, $client_id, $params); - return $this->insertQuery('../dns/form/dns_ns.tform.php', $client_id, $params); + public function dns_ns_add($session_id, $client_id, $params, $update_serial=false) { + return $this->dns_rr_add($session_id, $client_id, $params, $update_serial, 'NS'); } //* Update a record - public function dns_ns_update($session_id, $client_id, $primary_id, $params, $update_serial=false) - { - if(!$this->checkPerm($session_id, 'dns_ns_update')) { - throw new SoapFault('permission_denied', 'You do not have the permissions to access this function.'); - return false; - } - if($update_serial) $this->increase_serial($session_id, $client_id, $params); - $affected_rows = $this->updateQuery('../dns/form/dns_ns.tform.php', $client_id, $primary_id, $params); - return $affected_rows; + public function dns_ns_update($session_id, $client_id, $primary_id, $params, $update_serial=false) { + return $this->dns_rr_update($session_id, $client_id, $primary_id, $params, $update_serial, 'NS'); } //* Delete a record - public function dns_ns_delete($session_id, $primary_id, $update_serial=false) - { - if(!$this->checkPerm($session_id, 'dns_ns_delete')) { - throw new SoapFault('permission_denied', 'You do not have the permissions to access this function.'); - return false; - } - $affected_rows = $this->deleteQuery('../dns/form/dns_ns.tform.php', $primary_id); - if($update_serial) $this->increase_serial($session_id, $client_id, array('dns_rr_id' => $primary_id)); - return $affected_rows; + public function dns_ns_delete($session_id, $primary_id, $update_serial=false) { + return $this->dns_rr_delete($session_id, $primary_id, $update_serial, 'NS'); } // ---------------------------------------------------------------------------------------------------------------- //* Get record details - public function dns_ptr_get($session_id, $primary_id) - { - global $app; - - if(!$this->checkPerm($session_id, 'dns_ptr_get')) { - throw new SoapFault('permission_denied', 'You do not have the permissions to access this function.'); - return false; - } - $app->uses('remoting_lib'); - $app->remoting_lib->loadFormDef('../dns/form/dns_ptr.tform.php'); - return $app->remoting_lib->getDataRecord($primary_id); + public function dns_ptr_get($session_id, $primary_id) { + return $this->dns_rr_get($session_id, $primary_id, 'PTR'); } //* Add a record - public function dns_ptr_add($session_id, $client_id, $params, $update_serial=false) - { - if(!$this->checkPerm($session_id, 'dns_ptr_add')) { - throw new SoapFault('permission_denied', 'You do not have the permissions to access this function.'); - return false; - } - if($update_serial) $this->increase_serial($session_id, $client_id, $params); - return $this->insertQuery('../dns/form/dns_ptr.tform.php', $client_id, $params); + public function dns_ptr_add($session_id, $client_id, $params, $update_serial=false) { + return $this->dns_rr_add($session_id, $client_id, $params, $update_serial, 'PTR'); } //* Update a record - public function dns_ptr_update($session_id, $client_id, $primary_id, $params, $update_serial=false) - { - if(!$this->checkPerm($session_id, 'dns_ptr_update')) { - throw new SoapFault('permission_denied', 'You do not have the permissions to access this function.'); - return false; - } - if($update_serial) $this->increase_serial($session_id, $client_id, $params); - $affected_rows = $this->updateQuery('../dns/form/dns_ptr.tform.php', $client_id, $primary_id, $params); - return $affected_rows; + public function dns_ptr_update($session_id, $client_id, $primary_id, $params, $update_serial=false) { + return $this->dns_rr_update($session_id, $client_id, $primary_id, $params, $update_serial, 'PTR'); } //* Delete a record - public function dns_ptr_delete($session_id, $primary_id, $update_serial=false) - { - if(!$this->checkPerm($session_id, 'dns_ptr_delete')) { - throw new SoapFault('permission_denied', 'You do not have the permissions to access this function.'); - return false; - } - $affected_rows = $this->deleteQuery('../dns/form/dns_ptr.tform.php', $primary_id); - if($update_serial) $this->increase_serial($session_id, $client_id, array('dns_rr_id' => $primary_id)); - return $affected_rows; + public function dns_ptr_delete($session_id, $primary_id, $update_serial=false) { + return $this->dns_rr_delete($session_id, $primary_id, $update_serial, 'PTR'); } // ---------------------------------------------------------------------------------------------------------------- //* Get record details - public function dns_rp_get($session_id, $primary_id) - { - global $app; - - if(!$this->checkPerm($session_id, 'dns_rp_get')) { - throw new SoapFault('permission_denied', 'You do not have the permissions to access this function.'); - return false; - } - $app->uses('remoting_lib'); - $app->remoting_lib->loadFormDef('../dns/form/dns_rp.tform.php'); - return $app->remoting_lib->getDataRecord($primary_id); + public function dns_rp_get($session_id, $primary_id) { + return $this->dns_rr_get($session_id, $primary_id, 'RP'); } //* Add a record - public function dns_rp_add($session_id, $client_id, $params, $update_serial=false) - { - if(!$this->checkPerm($session_id, 'dns_rp_add')) { - throw new SoapFault('permission_denied', 'You do not have the permissions to access this function.'); - return false; - } - if($update_serial) $this->increase_serial($session_id, $client_id, $params); - return $this->insertQuery('../dns/form/dns_rp.tform.php', $client_id, $params); + public function dns_rp_add($session_id, $client_id, $params, $update_serial=false) { + return $this->dns_rr_add($session_id, $client_id, $params, $update_serial, 'RP'); } //* Update a record - public function dns_rp_update($session_id, $client_id, $primary_id, $params, $update_serial=false) - { - if(!$this->checkPerm($session_id, 'dns_rp_update')) { - throw new SoapFault('permission_denied', 'You do not have the permissions to access this function.'); - return false; - } - if($update_serial) $this->increase_serial($session_id, $client_id, $params); - $affected_rows = $this->updateQuery('../dns/form/dns_rp.tform.php', $client_id, $primary_id, $params); - return $affected_rows; + public function dns_rp_update($session_id, $client_id, $primary_id, $params, $update_serial=false) { + return $this->dns_rr_update($session_id, $client_id, $primary_id, $params, $update_serial, 'RP'); } //* Delete a record - public function dns_rp_delete($session_id, $primary_id, $update_serial=false) - { - if(!$this->checkPerm($session_id, 'dns_rp_delete')) { - throw new SoapFault('permission_denied', 'You do not have the permissions to access this function.'); - return false; - } - $affected_rows = $this->deleteQuery('../dns/form/dns_rp.tform.php', $primary_id); - if($update_serial) $this->increase_serial($session_id, $client_id, array('dns_rr_id' => $primary_id)); - return $affected_rows; + public function dns_rp_delete($session_id, $primary_id, $update_serial=false) { + return $this->dns_rr_delete($session_id, $primary_id, $update_serial, 'RP'); } // ---------------------------------------------------------------------------------------------------------------- //* Get record details - public function dns_srv_get($session_id, $primary_id) - { - global $app; - - if(!$this->checkPerm($session_id, 'dns_srv_get')) { - throw new SoapFault('permission_denied', 'You do not have the permissions to access this function.'); - return false; - } - $app->uses('remoting_lib'); - $app->remoting_lib->loadFormDef('../dns/form/dns_srv.tform.php'); - return $app->remoting_lib->getDataRecord($primary_id); + public function dns_srv_get($session_id, $primary_id) { + return $this->dns_rr_get($session_id, $primary_id, 'SRV'); } //* Add a record - public function dns_srv_add($session_id, $client_id, $params, $update_serial=false) - { - if(!$this->checkPerm($session_id, 'dns_srv_add')) { - throw new SoapFault('permission_denied', 'You do not have the permissions to access this function.'); - return false; - } - if($update_serial) $this->increase_serial($session_id, $client_id, $params); - return $this->insertQuery('../dns/form/dns_srv.tform.php', $client_id, $params); + public function dns_srv_add($session_id, $client_id, $params, $update_serial=false) { + return $this->dns_rr_add($session_id, $client_id, $params, $update_serial, 'SRV'); } //* Update a record - public function dns_srv_update($session_id, $client_id, $primary_id, $params, $update_serial=false) - { - if(!$this->checkPerm($session_id, 'dns_srv_update')) { - throw new SoapFault('permission_denied', 'You do not have the permissions to access this function.'); - return false; - } - if($update_serial) $this->increase_serial($session_id, $client_id, $params); - $affected_rows = $this->updateQuery('../dns/form/dns_srv.tform.php', $client_id, $primary_id, $params); - return $affected_rows; + public function dns_srv_update($session_id, $client_id, $primary_id, $params, $update_serial=false) { + return $this->dns_rr_update($session_id, $client_id, $primary_id, $params, $update_serial, 'SRV'); } //* Delete a record - public function dns_srv_delete($session_id, $primary_id, $update_serial=false) - { - if(!$this->checkPerm($session_id, 'dns_srv_delete')) { - throw new SoapFault('permission_denied', 'You do not have the permissions to access this function.'); - return false; - } - $affected_rows = $this->deleteQuery('../dns/form/dns_srv.tform.php', $primary_id); - if($update_serial) $this->increase_serial($session_id, $client_id, array('dns_rr_id' => $primary_id)); - return $affected_rows; + public function dns_srv_delete($session_id, $primary_id, $update_serial=false) { + return $this->dns_rr_delete($session_id, $primary_id, $update_serial, 'SRV'); } // ---------------------------------------------------------------------------------------------------------------- //* Get record details - public function dns_txt_get($session_id, $primary_id) - { - global $app; - - if(!$this->checkPerm($session_id, 'dns_txt_get')) { - throw new SoapFault('permission_denied', 'You do not have the permissions to access this function.'); - return false; - } - $app->uses('remoting_lib'); - $app->remoting_lib->loadFormDef('../dns/form/dns_txt.tform.php'); - return $app->remoting_lib->getDataRecord($primary_id); + public function dns_txt_get($session_id, $primary_id) { + return $this->dns_rr_get($session_id, $primary_id, 'TXT'); } //* Add a record - public function dns_txt_add($session_id, $client_id, $params, $update_serial=false) - { - if(!$this->checkPerm($session_id, 'dns_txt_add')) { - throw new SoapFault('permission_denied', 'You do not have the permissions to access this function.'); - return false; - } - if($update_serial) $this->increase_serial($session_id, $client_id, $params); - return $this->insertQuery('../dns/form/dns_txt.tform.php', $client_id, $params); + public function dns_txt_add($session_id, $client_id, $params, $update_serial=false) { + return $this->dns_rr_add($session_id, $client_id, $params, $update_serial, 'TXT'); } //* Update a record - public function dns_txt_update($session_id, $client_id, $primary_id, $params, $update_serial=false) - { - if(!$this->checkPerm($session_id, 'dns_txt_update')) { - throw new SoapFault('permission_denied', 'You do not have the permissions to access this function.'); - return false; - } - if($update_serial) $this->increase_serial($session_id, $client_id, $params); - $affected_rows = $this->updateQuery('../dns/form/dns_txt.tform.php', $client_id, $primary_id, $params); - return $affected_rows; + public function dns_txt_update($session_id, $client_id, $primary_id, $params, $update_serial=false) { + return $this->dns_rr_update($session_id, $client_id, $primary_id, $params, $update_serial, 'TXT'); } //* Delete a record - public function dns_txt_delete($session_id, $primary_id, $update_serial=false) - { - if(!$this->checkPerm($session_id, 'dns_txt_delete')) { - throw new SoapFault('permission_denied', 'You do not have the permissions to access this function.'); - return false; - } - $affected_rows = $this->deleteQuery('../dns/form/dns_txt.tform.php', $primary_id); - if($update_serial) $this->increase_serial($session_id, $client_id, array('dns_rr_id' => $primary_id)); - return $affected_rows; + public function dns_txt_delete($session_id, $primary_id, $update_serial=false) { + return $this->dns_rr_delete($session_id, $primary_id, $update_serial, 'TXT'); } /** @@ -957,5 +696,3 @@ class remoting_dns extends remoting { $this->dns_zone_update($session_id, $client_id, $soa['id'], $soa); } } - -?> -- GitLab From 74b3b31fe887ee752cef655aa42b20008a2b8af7 Mon Sep 17 00:00:00 2001 From: Herman van Rink Date: Mon, 28 Jan 2019 13:54:07 +0100 Subject: [PATCH 004/215] Config option for jailkit authorized keys, #4901 --- install/tpl/server.ini.master | 1 + server/plugins-available/shelluser_jailkit_plugin.inc.php | 3 ++- 2 files changed, 3 insertions(+), 1 deletion(-) diff --git a/install/tpl/server.ini.master b/install/tpl/server.ini.master index 079d63448..406881010 100644 --- a/install/tpl/server.ini.master +++ b/install/tpl/server.ini.master @@ -140,6 +140,7 @@ jailkit_chroot_home=/home/[username] jailkit_chroot_app_sections=basicshell editors extendedshell netutils ssh sftp scp groups jk_lsh jailkit_chroot_app_programs=/usr/bin/groups /usr/bin/id /usr/bin/dircolors /usr/bin/lesspipe /usr/bin/basename /usr/bin/dirname /usr/bin/nano /usr/bin/pico /usr/bin/mysql /usr/bin/mysqldump /usr/bin/git /usr/bin/git-receive-pack /usr/bin/git-upload-pack /usr/bin/unzip /usr/bin/zip /bin/tar /bin/rm /usr/bin/patch /usr/bin/which /usr/lib/x86_64-linux-gnu/libmemcached.so.11 /usr/lib/x86_64-linux-gnu/libmemcachedutil.so.2 /usr/lib/x86_64-linux-gnu/libMagickWand-6.Q16.so.2 /opt/php-5.6.8/bin/php /opt/php-5.6.8/include /opt/php-5.6.8/lib jailkit_chroot_cron_programs=/usr/bin/php /usr/bin/perl /usr/share/perl /usr/share/php +jailkit_chroot_authorized_keys_template=/root/.ssh/authorized_keys [vlogger] config_dir=/etc diff --git a/server/plugins-available/shelluser_jailkit_plugin.inc.php b/server/plugins-available/shelluser_jailkit_plugin.inc.php index 147d39d57..db1d2b676 100755 --- a/server/plugins-available/shelluser_jailkit_plugin.inc.php +++ b/server/plugins-available/shelluser_jailkit_plugin.inc.php @@ -489,7 +489,8 @@ class shelluser_jailkit_plugin { if (!file_exists($sshkeys)){ // add root's key $app->file->mkdirs($sshdir, '0755'); - if(is_file('/root/.ssh/authorized_keys')) $app->system->file_put_contents($sshkeys, $app->system->file_get_contents('/root/.ssh/authorized_keys')); + $authorized_keys_template = $this->jailkit_config['jailkit_chroot_authorized_keys_template']; + if(is_file('/root/.ssh/authorized_keys')) $app->system->file_put_contents($sshkeys, $app->system->file_get_contents($authorized_keys_template)); // Remove duplicate keys $existing_keys = @file($sshkeys, FILE_IGNORE_NEW_LINES); -- GitLab From 061583cf13b53d5f99dc89a8bd3f9119d21acb5a Mon Sep 17 00:00:00 2001 From: Till Brehm Date: Wed, 30 Jan 2019 12:18:33 +0100 Subject: [PATCH 005/215] Script to generate Let's encrypt certificates for the mail system. --- helper_scripts/fixcerts | 151 ++++++++++++++++++++++++++++++++++++++++ 1 file changed, 151 insertions(+) create mode 100644 helper_scripts/fixcerts diff --git a/helper_scripts/fixcerts b/helper_scripts/fixcerts new file mode 100644 index 000000000..9136d1e71 --- /dev/null +++ b/helper_scripts/fixcerts @@ -0,0 +1,151 @@ + #!/bin/bash +##################################################################################### +# # +# Syntax: fixcerts DOMAIN # +# # +# Use: Extend Letsencrypt SSl certificates for commonly grouped services such as # +# Apache,Postfix,Dovecot using Certbot. Useful for keeping all client # +# applications referencing the same virtual domain name, such as auto-config # +# email clients on phones, i.e. mailuser@mydomain.TLD smtp.mydomain.TLD # +# imaps.mydomain.TLD instead of mailuser@mydomain.TLD mail.ISPmaildomain.TLD # +# Also useful when sending mail through services like Gmail that will # +# validate sender through a negotiated TLS encrypted connection. # +# # +# Ex: sh fixcerts myhosteddomain.com # +# # +# Prerequisites: # +# - A Letsencrypt certificate for the DOMAIN must already exist # +# - A seperate certificate each for Dovecot and Postfix were previously generated # +# - All new host names to add MUST already exist in DNS at least as a CNAME # +# - Edit the Dovecot/Postfix conf to use the alternate certificate # +# - Set the variable wr_file to a directory that certbot can read and write from # +# - Set the dom_cert=,dv_cert=,pf_cert=,dv_file=, and pf_file= variables # +# # +# In my case, I ran: # +# certbot certonly -webroot /usr/local/ispconfig/interface/acme -d dc.hrst.xyz # +# certbot certonly -webroot /usr/local/ispconfig/interface/acme -d pf.hrst.xyz # +# to create the separate Dovecot and Postscript certificates, then edited and # +# ran the script to extend those certificate, once per hosted domain # +# # +# If you use only one alternate certifcate for both mail services, set both dv_file # +# and pf_file to the same file name and set one of _cert files="" and # +# use the other. If you don't wish to add to a particular certificate, set the # +# variable ="", such as dom_cert # +# TODO: Pre-validate desired additions as already existing in DNS # +# Generate SRV Records and add to DNS to autoconfig clients # +# # +# Author: tad.hasse@gmail.com # +# # +##################################################################################### + +#bail out on error +set -e + +# Hostnames to add to the main domain certificate +dom_cert="webmail" + +# Hostnames to add to the Dovecot domain certificate +dv_cert="pop3s imap" + +# Hostnames to add to the Postfix domain certificate +pf_cert="mail smtp smtps" + +# Name of the certificate file that handles Dovecot +dv_file="dc.hrst.xyz" + +# Name of the certificate file that handles Postfix +pf_file="pf.hrst.xyz" + +# Writeable webroot for certbot (I use ISPConfig, +wr_file="/usr/local/ispconfig/interface/acme" + +new_cert="" +nanobot="" +affected_services="" + +if [ -z "$1" ] # Is parameter #1 zero length? + then + echo "-No DOMAIN specified" # Or no parameter passed. + exit 1 + fi + +#live_check='/etc/letsencrypt/live/'$1 +if [[ ! -d '/etc/letsencrypt/live/'$1 ]]; then + echo "- DOMAIN certificate for \"$1\" not found -" + exit 1 + fi + +if [[ ! -d '/etc/letsencrypt/live/'${dv_file} ]]; then + echo "- Dovecot/postoffice certificate" ${dv_file}" for \"$1\" not found -" + exit 1 + fi + +if [[ ! -d '/etc/letsencrypt/live/'${pf_file} ]]; then + echo "- Postfix/mail certificate" ${pf_file}" for \"$1\" not found -" + exit 1 + fi + +# Have certbot generate its current certificate list for use as input +certbot certificates >~/certfile + +# Extend base domain certificate which typically only contains the domain.TLD and www.domain.TLD +if [[ ! -z "${dom_cert}" ]]; then + echo + new_cert=$(echo $dom_cert| sed -e "s/ /.$1 /g" -e 's/ / -d /g' -e "s/$/.$1 /g" -e 's/^/-d /g') + echo "Adding" ${new_cert} " to "$1 + nanobot=$(grep -A1 "Certificate Name: "$1 certfile |awk -F': ' '{ {getline}; $1=""; print }'|sed 's/ / -d /g') + doit_cert=$(echo "certbot certonly --webroot -w ${wr_file}${nanobot} ${new_cert}") + ${doit_cert} + affected_services=${affected_services}+"A" +else + echo "Domain Certificate unaffected" + fi + +# Extend the Dovecot certificate +if [[ ! -z "${dv_cert}" ]]; then + echo + new_cert=$(echo $dv_cert| sed -e "s/ /.$1 /g" -e 's/ / -d /g' -e "s/$/.$1 /g" -e 's/^/-d /g') + echo "Adding" ${new_cert} " to "${dv_file} + nanobot=$(grep -A1 "Certificate Name: "${dv_file} certfile |awk -F': ' '{ {getline}; $1=""; print }'|sed 's/ / -d /g') + doit_cert=$(echo "certbot certonly --webroot -w ${wr_file}${nanobot} ${new_cert}") + ${doit_cert} + affected_services=${affected_services}+"D" +else + echo "Dovecot Certificate unaffected" + fi + +# Extend the Postscript certificate +if [[ ! -z "{$pf_cert}" ]]; then + echo + new_cert=$(echo $pf_cert| sed -e "s/ /.$1 /g" -e 's/ / -d /g' -e "s/$/.$1 /g" -e 's/^/-d /g') + echo "Adding" ${new_cert} " to " ${pf_file} + nanobot=$(grep -A1 "Certificate Name: "${pf_file} certfile |awk -F': ' '{ {getline}; $1=""; print }'|sed 's/ / -d /g') + doit_cert=$(echo "certbot certonly --webroot -w ${wr_file}${nanobot} ${new_cert}") + ${doit_cert} + affected_services=${affected_services}+"P" +else + echo "Postfix Certificate unaffected" + fi + + if [[ $affected_services == *"A"* ]]; then + echo "Remember to restart the httpd service" + fi + if [[ $affected_services == *"D"* ]]; then + echo "Remember to restart the dovecot/postoffice service" + fi + if [[ $affected_services == *"P"* ]]; then + echo "Remember to restart the postfix/sendmail service" + fi + +echo +echo +echo "Add the following SRV records to DNS for client setup for "$1 + if [[ $affected_services == *"D"* ]]; then + echo "_imaps._tcp."$1 "SRV 3600 4 60 993 imaps" + echo "_pop3s._tcp."$1 "SRV 3600 6 60 995 pop3s" + echo "_imap._tcp."$1 " SRV 3600 8 60 143 imap" + fi +if [[ $affected_services == *"P"* ]]; then + echo "_smtps._tcp."$1 "SRV 3600 8 60 465 smtps" + echo "_smtp._tcp."$1 " SRV 3600 10 60 587 smtp" + fi \ No newline at end of file -- GitLab From f3c28d373662a6b281e8d28284949adbc33a5a34 Mon Sep 17 00:00:00 2001 From: Webslice Date: Mon, 4 Feb 2019 10:35:45 +0100 Subject: [PATCH 006/215] Add support for chrooted php-fpm, implements #3220 --- install/sql/incremental/upd_0087.sql | 1 + .../web/sites/form/web_vhost_domain.tform.php | 6 +++++ .../sites/lib/lang/ar_web_vhost_domain.lng | 1 + .../sites/lib/lang/bg_web_vhost_domain.lng | 1 + .../sites/lib/lang/br_web_vhost_domain.lng | 1 + .../sites/lib/lang/ca_web_vhost_domain.lng | 1 + .../sites/lib/lang/cz_web_vhost_domain.lng | 1 + .../sites/lib/lang/de_web_vhost_domain.lng | 1 + .../sites/lib/lang/dk_web_vhost_domain.lng | 1 + .../sites/lib/lang/el_web_vhost_domain.lng | 1 + .../sites/lib/lang/en_web_vhost_domain.lng | 1 + .../sites/lib/lang/es_web_vhost_domain.lng | 1 + .../sites/lib/lang/fi_web_vhost_domain.lng | 1 + .../sites/lib/lang/fr_web_vhost_domain.lng | 1 + .../sites/lib/lang/hr_web_vhost_domain.lng | 1 + .../sites/lib/lang/hu_web_vhost_domain.lng | 1 + .../sites/lib/lang/id_web_vhost_domain.lng | 1 + .../sites/lib/lang/it_web_vhost_domain.lng | 1 + .../sites/lib/lang/ja_web_vhost_domain.lng | 1 + .../sites/lib/lang/nl_web_vhost_domain.lng | 1 + .../sites/lib/lang/pl_web_vhost_domain.lng | 1 + .../sites/lib/lang/pt_web_vhost_domain.lng | 1 + .../sites/lib/lang/ro_web_vhost_domain.lng | 1 + .../sites/lib/lang/ru_web_vhost_domain.lng | 1 + .../sites/lib/lang/se_web_vhost_domain.lng | 1 + .../sites/lib/lang/sk_web_vhost_domain.lng | 1 + .../sites/lib/lang/tr_web_vhost_domain.lng | 1 + .../templates/web_vhost_domain_advanced.htm | 6 +++++ server/conf/nginx_vhost.conf.master | 24 +++++++++++++++++++ server/conf/php_fpm_pool.conf.master | 5 ++++ server/conf/vhost.conf.master | 6 +++++ .../plugins-available/apache2_plugin.inc.php | 9 +++++++ server/plugins-available/nginx_plugin.inc.php | 9 +++++++ 33 files changed, 91 insertions(+) create mode 100644 install/sql/incremental/upd_0087.sql diff --git a/install/sql/incremental/upd_0087.sql b/install/sql/incremental/upd_0087.sql new file mode 100644 index 000000000..e1b35b038 --- /dev/null +++ b/install/sql/incremental/upd_0087.sql @@ -0,0 +1 @@ +ALTER TABLE `web_domain` ADD COLUMN `php_fpm_chroot` enum('n','y') NOT NULL DEFAULT 'n' AFTER `php_fpm_use_socket`; diff --git a/interface/web/sites/form/web_vhost_domain.tform.php b/interface/web/sites/form/web_vhost_domain.tform.php index be06d3463..e7698cbe8 100644 --- a/interface/web/sites/form/web_vhost_domain.tform.php +++ b/interface/web/sites/form/web_vhost_domain.tform.php @@ -772,6 +772,12 @@ if($_SESSION["s"]["user"]["typ"] == 'admin' 'default' => 'n', 'value' => array(0 => 'n', 1 => 'y') ), + 'php_fpm_chroot' => array ( + 'datatype' => 'VARCHAR', + 'formtype' => 'CHECKBOX', + 'default' => 'n', + 'value' => array(0 => 'n', 1 => 'y') + ), 'pm' => array ( 'datatype' => 'VARCHAR', 'formtype' => 'SELECT', diff --git a/interface/web/sites/lib/lang/ar_web_vhost_domain.lng b/interface/web/sites/lib/lang/ar_web_vhost_domain.lng index ff063e88c..bfaf07f22 100644 --- a/interface/web/sites/lib/lang/ar_web_vhost_domain.lng +++ b/interface/web/sites/lib/lang/ar_web_vhost_domain.lng @@ -80,6 +80,7 @@ $wb['seo_redirect_txt'] = 'SEO Redirect'; $wb['non_www_to_www_txt'] = 'Non-www -> www'; $wb['www_to_non_www_txt'] = 'www -> non-www'; $wb['php_fpm_use_socket_txt'] = 'Use Socket For PHP-FPM'; +$wb['php_fpm_chroot_txt'] = 'Chroot PHP-FPM'; $wb['error_no_sni_txt'] = 'SNI for SSL is not activated on this server. You can enable only one SSL certificate on each IP address.'; $wb['python_txt'] = 'Python'; $wb['pm_max_children_txt'] = 'PHP-FPM pm.max_children'; diff --git a/interface/web/sites/lib/lang/bg_web_vhost_domain.lng b/interface/web/sites/lib/lang/bg_web_vhost_domain.lng index e1dce797c..0c01cbfda 100644 --- a/interface/web/sites/lib/lang/bg_web_vhost_domain.lng +++ b/interface/web/sites/lib/lang/bg_web_vhost_domain.lng @@ -79,6 +79,7 @@ $wb['seo_redirect_txt'] = 'SEO редирект'; $wb['non_www_to_www_txt'] = 'Non-www -> www'; $wb['www_to_non_www_txt'] = 'www -> non-www'; $wb['php_fpm_use_socket_txt'] = 'Използвай сокет за PHP-FPM'; +$wb['php_fpm_chroot_txt'] = 'Chroot PHP-FPM'; $wb['error_no_sni_txt'] = 'SNI for SSL is not activated on this server. You can enable only one SSL certificate on each IP address.'; $wb['python_txt'] = 'Python'; $wb['pm_max_children_txt'] = 'PHP-FPM pm.max_children'; diff --git a/interface/web/sites/lib/lang/br_web_vhost_domain.lng b/interface/web/sites/lib/lang/br_web_vhost_domain.lng index 171a34f95..413863f1e 100644 --- a/interface/web/sites/lib/lang/br_web_vhost_domain.lng +++ b/interface/web/sites/lib/lang/br_web_vhost_domain.lng @@ -79,6 +79,7 @@ $wb['seo_redirect_txt'] = 'Redirecionamento SEO'; $wb['non_www_to_www_txt'] = 'Diretivas Non-www -> www'; $wb['www_to_non_www_txt'] = 'Diretivas www -> non-www'; $wb['php_fpm_use_socket_txt'] = 'Usar soquete para o PHP-FPM'; +$wb['php_fpm_chroot_txt'] = 'Chroot PHP-FPM'; $wb['error_no_sni_txt'] = 'O SNI para SSL não está ativo neste servidor. Você só pode habilitar um certificado para cada endereço IP.'; $wb['python_txt'] = 'Python'; $wb['pm_max_children_txt'] = 'Diretiva PHP-FPM pm.max_children'; diff --git a/interface/web/sites/lib/lang/ca_web_vhost_domain.lng b/interface/web/sites/lib/lang/ca_web_vhost_domain.lng index c7cb4ac84..c9cdb68c9 100644 --- a/interface/web/sites/lib/lang/ca_web_vhost_domain.lng +++ b/interface/web/sites/lib/lang/ca_web_vhost_domain.lng @@ -82,6 +82,7 @@ $wb['seo_redirect_txt'] = 'SEO Redirect'; $wb['non_www_to_www_txt'] = 'Non-www -> www'; $wb['www_to_non_www_txt'] = 'www -> non-www'; $wb['php_fpm_use_socket_txt'] = 'Use Socket For PHP-FPM'; +$wb['php_fpm_chroot_txt'] = 'Chroot PHP-FPM'; $wb['error_no_sni_txt'] = 'SNI for SSL is not activated on this server. You can enable only one SSL certificate on each IP address.'; $wb['python_txt'] = 'Python'; $wb['perl_txt'] = 'Perl'; diff --git a/interface/web/sites/lib/lang/cz_web_vhost_domain.lng b/interface/web/sites/lib/lang/cz_web_vhost_domain.lng index 6353f713f..9f40aaec6 100644 --- a/interface/web/sites/lib/lang/cz_web_vhost_domain.lng +++ b/interface/web/sites/lib/lang/cz_web_vhost_domain.lng @@ -83,6 +83,7 @@ $wb['seo_redirect_txt'] = 'SEO přesměrování'; $wb['non_www_to_www_txt'] = 'Non-www -> www'; $wb['www_to_non_www_txt'] = 'www -> non-www'; $wb['php_fpm_use_socket_txt'] = 'Use Socket For PHP-FPM'; +$wb['php_fpm_chroot_txt'] = 'Chroot PHP-FPM'; $wb['error_no_sni_txt'] = 'SNI for SSL is not activated on this server. You can enable only one SSL certificate on each IP address.'; $wb['python_txt'] = 'Python'; $wb['pm_max_children_txt'] = 'PHP-FPM pm.max_children'; diff --git a/interface/web/sites/lib/lang/de_web_vhost_domain.lng b/interface/web/sites/lib/lang/de_web_vhost_domain.lng index bf29fb953..1b334bb29 100644 --- a/interface/web/sites/lib/lang/de_web_vhost_domain.lng +++ b/interface/web/sites/lib/lang/de_web_vhost_domain.lng @@ -82,6 +82,7 @@ $wb['seo_redirect_txt'] = 'SEO Redirect'; $wb['non_www_to_www_txt'] = 'Nicht-www -> www'; $wb['www_to_non_www_txt'] = 'www -> Nicht-www'; $wb['php_fpm_use_socket_txt'] = 'Benutze Socket für PHP-FPM'; +$wb['php_fpm_chroot_txt'] = 'Chroot PHP-FPM'; $wb['ipv6_address_txt'] = 'IPv6 Adresse'; $wb['error_no_sni_txt'] = 'SNI für SSL ist auf diesem Server nicht aktiviert. Sie können daher nur ein SSL Zertifikat pro IP Adresse eintragen.'; $wb['python_txt'] = 'Python'; diff --git a/interface/web/sites/lib/lang/dk_web_vhost_domain.lng b/interface/web/sites/lib/lang/dk_web_vhost_domain.lng index c7cb4ac84..c9cdb68c9 100644 --- a/interface/web/sites/lib/lang/dk_web_vhost_domain.lng +++ b/interface/web/sites/lib/lang/dk_web_vhost_domain.lng @@ -82,6 +82,7 @@ $wb['seo_redirect_txt'] = 'SEO Redirect'; $wb['non_www_to_www_txt'] = 'Non-www -> www'; $wb['www_to_non_www_txt'] = 'www -> non-www'; $wb['php_fpm_use_socket_txt'] = 'Use Socket For PHP-FPM'; +$wb['php_fpm_chroot_txt'] = 'Chroot PHP-FPM'; $wb['error_no_sni_txt'] = 'SNI for SSL is not activated on this server. You can enable only one SSL certificate on each IP address.'; $wb['python_txt'] = 'Python'; $wb['perl_txt'] = 'Perl'; diff --git a/interface/web/sites/lib/lang/el_web_vhost_domain.lng b/interface/web/sites/lib/lang/el_web_vhost_domain.lng index 7de00581c..1d238b64e 100644 --- a/interface/web/sites/lib/lang/el_web_vhost_domain.lng +++ b/interface/web/sites/lib/lang/el_web_vhost_domain.lng @@ -80,6 +80,7 @@ $wb['seo_redirect_txt'] = 'Ανακατεύθυνση SEO'; $wb['non_www_to_www_txt'] = 'Non-www -> www'; $wb['www_to_non_www_txt'] = 'www -> non-www'; $wb['php_fpm_use_socket_txt'] = 'Use Socket For PHP-FPM'; +$wb['php_fpm_chroot_txt'] = 'Chroot PHP-FPM'; $wb['error_no_sni_txt'] = 'SNI for SSL is not activated on this server. You can enable only one SSL certificate on each IP address.'; $wb['python_txt'] = 'Python'; $wb['pm_max_children_txt'] = 'PHP-FPM pm.max_children'; diff --git a/interface/web/sites/lib/lang/en_web_vhost_domain.lng b/interface/web/sites/lib/lang/en_web_vhost_domain.lng index b508e5783..97d1c932c 100644 --- a/interface/web/sites/lib/lang/en_web_vhost_domain.lng +++ b/interface/web/sites/lib/lang/en_web_vhost_domain.lng @@ -82,6 +82,7 @@ $wb['seo_redirect_txt'] = 'SEO Redirect'; $wb['non_www_to_www_txt'] = 'Non-www -> www'; $wb['www_to_non_www_txt'] = 'www -> non-www'; $wb['php_fpm_use_socket_txt'] = 'Use Socket For PHP-FPM'; +$wb['php_fpm_chroot_txt'] = 'Chroot PHP-FPM'; $wb['error_no_sni_txt'] = 'SNI for SSL is not activated on this server. You can enable only one SSL certificate on each IP address.'; $wb['python_txt'] = 'Python'; $wb['perl_txt'] = 'Perl'; diff --git a/interface/web/sites/lib/lang/es_web_vhost_domain.lng b/interface/web/sites/lib/lang/es_web_vhost_domain.lng index 398aef500..8421966c0 100644 --- a/interface/web/sites/lib/lang/es_web_vhost_domain.lng +++ b/interface/web/sites/lib/lang/es_web_vhost_domain.lng @@ -78,6 +78,7 @@ $wb['seo_redirect_txt'] = 'Redirección SEO'; $wb['non_www_to_www_txt'] = 'Non-www -> www'; $wb['www_to_non_www_txt'] = 'www -> non-www'; $wb['php_fpm_use_socket_txt'] = 'Usar Socket para PHP-FPM'; +$wb['php_fpm_chroot_txt'] = 'Chroot PHP-FPM'; $wb['error_no_sni_txt'] = 'SNI para SSL no está activado en este servidor. Sólo es posible activar un certificado SSL en cada dirección IP.'; $wb['python_txt'] = 'Python'; $wb['pm_max_children_txt'] = 'PHP-FPM pm.max_children'; diff --git a/interface/web/sites/lib/lang/fi_web_vhost_domain.lng b/interface/web/sites/lib/lang/fi_web_vhost_domain.lng index 94ba05bdd..1a4d753b5 100644 --- a/interface/web/sites/lib/lang/fi_web_vhost_domain.lng +++ b/interface/web/sites/lib/lang/fi_web_vhost_domain.lng @@ -79,6 +79,7 @@ $wb['seo_redirect_txt'] = 'SEO Redirect'; $wb['non_www_to_www_txt'] = 'Non-www -> www'; $wb['www_to_non_www_txt'] = 'www -> non-www'; $wb['php_fpm_use_socket_txt'] = 'Use Socket For PHP-FPM'; +$wb['php_fpm_chroot_txt'] = 'Chroot PHP-FPM'; $wb['error_no_sni_txt'] = 'SNI for SSL is not activated on this server. You can enable only one SSL certificate on each IP address.'; $wb['python_txt'] = 'Python'; $wb['pm_max_children_txt'] = 'PHP-FPM pm.max_children'; diff --git a/interface/web/sites/lib/lang/fr_web_vhost_domain.lng b/interface/web/sites/lib/lang/fr_web_vhost_domain.lng index 97a0dd0ac..ab34cdf35 100644 --- a/interface/web/sites/lib/lang/fr_web_vhost_domain.lng +++ b/interface/web/sites/lib/lang/fr_web_vhost_domain.lng @@ -79,6 +79,7 @@ $wb['seo_redirect_txt'] = 'Redirection SEO'; $wb['non_www_to_www_txt'] = 'Non-www -> www'; $wb['www_to_non_www_txt'] = 'www -> non-www'; $wb['php_fpm_use_socket_txt'] = 'Utiliser Socket pour PHP-FPM'; +$wb['php_fpm_chroot_txt'] = 'Chroot PHP-FPM'; $wb['error_no_sni_txt'] = 'SNI pour SSL n\'est pas activé sur ce serveur. Vous ne pouvez activer qu\'un seul certificat SSL par adresse IP.'; $wb['python_txt'] = 'Python'; $wb['pm_max_children_txt'] = 'PHP-FPM pm.max_children'; diff --git a/interface/web/sites/lib/lang/hr_web_vhost_domain.lng b/interface/web/sites/lib/lang/hr_web_vhost_domain.lng index 54d5e1f3b..0ef7e9385 100644 --- a/interface/web/sites/lib/lang/hr_web_vhost_domain.lng +++ b/interface/web/sites/lib/lang/hr_web_vhost_domain.lng @@ -79,6 +79,7 @@ $wb['seo_redirect_txt'] = 'SEO redirekcija'; $wb['non_www_to_www_txt'] = 'Non-www -> www'; $wb['www_to_non_www_txt'] = 'www -> non-www'; $wb['php_fpm_use_socket_txt'] = 'Koristi socket za PHP-FPM'; +$wb['php_fpm_chroot_txt'] = 'Chroot PHP-FPM'; $wb['error_no_sni_txt'] = 'SNI za SSL nije aktiviran na ovom serveru. Možete omogućiti samo jedan SSL certifikat na svakoj IP adresi.'; $wb['python_txt'] = 'Python'; $wb['pm_max_children_txt'] = 'PHP-FPM pm.max_children'; diff --git a/interface/web/sites/lib/lang/hu_web_vhost_domain.lng b/interface/web/sites/lib/lang/hu_web_vhost_domain.lng index 13e1c54b5..da4391a92 100644 --- a/interface/web/sites/lib/lang/hu_web_vhost_domain.lng +++ b/interface/web/sites/lib/lang/hu_web_vhost_domain.lng @@ -79,6 +79,7 @@ $wb['seo_redirect_txt'] = 'SEO Redirect'; $wb['non_www_to_www_txt'] = 'Non-www -> www'; $wb['www_to_non_www_txt'] = 'www -> non-www'; $wb['php_fpm_use_socket_txt'] = 'Use Socket For PHP-FPM'; +$wb['php_fpm_chroot_txt'] = 'Chroot PHP-FPM'; $wb['error_no_sni_txt'] = 'SNI for SSL is not activated on this server. You can enable only one SSL certificate on each IP address.'; $wb['python_txt'] = 'Python'; $wb['pm_max_children_txt'] = 'PHP-FPM pm.max_children'; diff --git a/interface/web/sites/lib/lang/id_web_vhost_domain.lng b/interface/web/sites/lib/lang/id_web_vhost_domain.lng index 10b32ea1c..6d16061cf 100644 --- a/interface/web/sites/lib/lang/id_web_vhost_domain.lng +++ b/interface/web/sites/lib/lang/id_web_vhost_domain.lng @@ -79,6 +79,7 @@ $wb['seo_redirect_txt'] = 'SEO Redirect'; $wb['non_www_to_www_txt'] = 'Non-www -> www'; $wb['www_to_non_www_txt'] = 'www -> non-www'; $wb['php_fpm_use_socket_txt'] = 'Use Socket For PHP-FPM'; +$wb['php_fpm_chroot_txt'] = 'Chroot PHP-FPM'; $wb['error_no_sni_txt'] = 'SNI for SSL is not activated on this server. You can enable only one SSL certificate on each IP address.'; $wb['python_txt'] = 'Python'; $wb['pm_max_children_txt'] = 'PHP-FPM pm.max_children'; diff --git a/interface/web/sites/lib/lang/it_web_vhost_domain.lng b/interface/web/sites/lib/lang/it_web_vhost_domain.lng index 831b29c5d..adb557f39 100644 --- a/interface/web/sites/lib/lang/it_web_vhost_domain.lng +++ b/interface/web/sites/lib/lang/it_web_vhost_domain.lng @@ -80,6 +80,7 @@ $wb['seo_redirect_txt'] = 'SEO Redirect'; $wb['non_www_to_www_txt'] = 'Non-www -> www'; $wb['www_to_non_www_txt'] = 'www -> non-www'; $wb['php_fpm_use_socket_txt'] = 'Use Socket For PHP-FPM'; +$wb['php_fpm_chroot_txt'] = 'Chroot PHP-FPM'; $wb['error_no_sni_txt'] = 'SNI for SSL is not activated on this server. You can enable only one SSL certificate on each IP address.'; $wb['python_txt'] = 'Python'; $wb['pm_max_children_txt'] = 'PHP-FPM pm.max_children'; diff --git a/interface/web/sites/lib/lang/ja_web_vhost_domain.lng b/interface/web/sites/lib/lang/ja_web_vhost_domain.lng index 8cf497186..9dd8cd7af 100644 --- a/interface/web/sites/lib/lang/ja_web_vhost_domain.lng +++ b/interface/web/sites/lib/lang/ja_web_vhost_domain.lng @@ -79,6 +79,7 @@ $wb['seo_redirect_txt'] = 'SEO Redirect'; $wb['non_www_to_www_txt'] = 'Non-www -> www'; $wb['www_to_non_www_txt'] = 'www -> non-www'; $wb['php_fpm_use_socket_txt'] = 'Use Socket For PHP-FPM'; +$wb['php_fpm_chroot_txt'] = 'Chroot PHP-FPM'; $wb['error_no_sni_txt'] = 'SNI for SSL is not activated on this server. You can enable only one SSL certificate on each IP address.'; $wb['python_txt'] = 'Python'; $wb['pm_max_children_txt'] = 'PHP-FPM pm.max_children'; diff --git a/interface/web/sites/lib/lang/nl_web_vhost_domain.lng b/interface/web/sites/lib/lang/nl_web_vhost_domain.lng index 1952769fa..1301001bd 100644 --- a/interface/web/sites/lib/lang/nl_web_vhost_domain.lng +++ b/interface/web/sites/lib/lang/nl_web_vhost_domain.lng @@ -79,6 +79,7 @@ $wb['seo_redirect_txt'] = 'SEO Redirect'; $wb['non_www_to_www_txt'] = 'Non-www -> www'; $wb['www_to_non_www_txt'] = 'www -> non-www'; $wb['php_fpm_use_socket_txt'] = 'Use Socket For PHP-FPM'; +$wb['php_fpm_chroot_txt'] = 'Chroot PHP-FPM'; $wb['error_no_sni_txt'] = 'SNI for SSL is not activated on this server. You can enable only one SSL certificate on each IP address.'; $wb['python_txt'] = 'Python'; $wb['pm_max_children_txt'] = 'PHP-FPM pm.max_children'; diff --git a/interface/web/sites/lib/lang/pl_web_vhost_domain.lng b/interface/web/sites/lib/lang/pl_web_vhost_domain.lng index f3aa864f6..e6fd60112 100644 --- a/interface/web/sites/lib/lang/pl_web_vhost_domain.lng +++ b/interface/web/sites/lib/lang/pl_web_vhost_domain.lng @@ -79,6 +79,7 @@ $wb['seo_redirect_txt'] = 'Przekierowanie SEO'; $wb['non_www_to_www_txt'] = 'bez www -> www'; $wb['www_to_non_www_txt'] = 'www -> bez www'; $wb['php_fpm_use_socket_txt'] = 'Użyj gniazda dla PHP-FPM'; +$wb['php_fpm_chroot_txt'] = 'Chroot PHP-FPM'; $wb['error_no_sni_txt'] = 'SNI dla SSL nie jest aktywowane na tym serwerze. Możesz utworzyć tylko jeden certyfikat SSL dla jednego adresu IP.'; $wb['python_txt'] = 'Python'; $wb['pm_max_children_txt'] = 'PHP-FPM pm.max_children'; diff --git a/interface/web/sites/lib/lang/pt_web_vhost_domain.lng b/interface/web/sites/lib/lang/pt_web_vhost_domain.lng index dcbdf4086..a33ac11fc 100644 --- a/interface/web/sites/lib/lang/pt_web_vhost_domain.lng +++ b/interface/web/sites/lib/lang/pt_web_vhost_domain.lng @@ -79,6 +79,7 @@ $wb['seo_redirect_txt'] = 'SEO Redirect'; $wb['non_www_to_www_txt'] = 'Non-www -> www'; $wb['www_to_non_www_txt'] = 'www -> non-www'; $wb['php_fpm_use_socket_txt'] = 'Use Socket For PHP-FPM'; +$wb['php_fpm_chroot_txt'] = 'Chroot PHP-FPM'; $wb['error_no_sni_txt'] = 'SNI for SSL is not activated on this server. You can enable only one SSL certificate on each IP address.'; $wb['python_txt'] = 'Python'; $wb['pm_max_children_txt'] = 'PHP-FPM pm.max_children'; diff --git a/interface/web/sites/lib/lang/ro_web_vhost_domain.lng b/interface/web/sites/lib/lang/ro_web_vhost_domain.lng index d93152e24..cb5fc4d82 100644 --- a/interface/web/sites/lib/lang/ro_web_vhost_domain.lng +++ b/interface/web/sites/lib/lang/ro_web_vhost_domain.lng @@ -80,6 +80,7 @@ $wb['seo_redirect_txt'] = 'SEO Redirect'; $wb['non_www_to_www_txt'] = 'Non-www -> www'; $wb['www_to_non_www_txt'] = 'www -> non-www'; $wb['php_fpm_use_socket_txt'] = 'Use Socket For PHP-FPM'; +$wb['php_fpm_chroot_txt'] = 'Chroot PHP-FPM'; $wb['error_no_sni_txt'] = 'SNI for SSL is not activated on this server. You can enable only one SSL certificate on each IP address.'; $wb['python_txt'] = 'Python'; $wb['pm_max_children_txt'] = 'PHP-FPM pm.max_children'; diff --git a/interface/web/sites/lib/lang/ru_web_vhost_domain.lng b/interface/web/sites/lib/lang/ru_web_vhost_domain.lng index f525fe202..b8a3b4175 100644 --- a/interface/web/sites/lib/lang/ru_web_vhost_domain.lng +++ b/interface/web/sites/lib/lang/ru_web_vhost_domain.lng @@ -79,6 +79,7 @@ $wb['seo_redirect_txt'] = 'SEO редирект'; $wb['non_www_to_www_txt'] = 'Без-www -> www'; $wb['www_to_non_www_txt'] = 'www -> без-www'; $wb['php_fpm_use_socket_txt'] = 'Использовать сокет для PHP-FPM'; +$wb['php_fpm_chroot_txt'] = 'Chroot PHP-FPM'; $wb['error_no_sni_txt'] = 'SNI для SSL не активирован на этом сервере. Вы можете включить только один SSL сертификат на каждом IP-адресе.'; $wb['python_txt'] = 'Python'; $wb['pm_max_children_txt'] = 'PHP-FPM pm.max_children'; diff --git a/interface/web/sites/lib/lang/se_web_vhost_domain.lng b/interface/web/sites/lib/lang/se_web_vhost_domain.lng index d8b671dae..2a6796657 100644 --- a/interface/web/sites/lib/lang/se_web_vhost_domain.lng +++ b/interface/web/sites/lib/lang/se_web_vhost_domain.lng @@ -80,6 +80,7 @@ $wb['seo_redirect_txt'] = 'SEO Redirect'; $wb['non_www_to_www_txt'] = 'Non-www -> www'; $wb['www_to_non_www_txt'] = 'www -> non-www'; $wb['php_fpm_use_socket_txt'] = 'Use Socket For PHP-FPM'; +$wb['php_fpm_chroot_txt'] = 'Chroot PHP-FPM'; $wb['error_no_sni_txt'] = 'SNI for SSL is not activated on this server. You can enable only one SSL certificate on each IP address.'; $wb['python_txt'] = 'Python'; $wb['pm_max_children_txt'] = 'PHP-FPM pm.max_children'; diff --git a/interface/web/sites/lib/lang/sk_web_vhost_domain.lng b/interface/web/sites/lib/lang/sk_web_vhost_domain.lng index cdb1c2627..2d354ce9d 100644 --- a/interface/web/sites/lib/lang/sk_web_vhost_domain.lng +++ b/interface/web/sites/lib/lang/sk_web_vhost_domain.lng @@ -79,6 +79,7 @@ $wb['seo_redirect_txt'] = 'SEO Redirect'; $wb['non_www_to_www_txt'] = 'Non-www -> www'; $wb['www_to_non_www_txt'] = 'www -> non-www'; $wb['php_fpm_use_socket_txt'] = 'Use Socket For PHP-FPM'; +$wb['php_fpm_chroot_txt'] = 'Chroot PHP-FPM'; $wb['error_no_sni_txt'] = 'SNI for SSL is not activated on this server. You can enable only one SSL certificate on each IP address.'; $wb['python_txt'] = 'Python'; $wb['pm_max_children_txt'] = 'PHP-FPM pm.max_children'; diff --git a/interface/web/sites/lib/lang/tr_web_vhost_domain.lng b/interface/web/sites/lib/lang/tr_web_vhost_domain.lng index 52b86ba65..8a04a244e 100644 --- a/interface/web/sites/lib/lang/tr_web_vhost_domain.lng +++ b/interface/web/sites/lib/lang/tr_web_vhost_domain.lng @@ -81,6 +81,7 @@ $wb['seo_redirect_txt'] = 'AMD Yönlendirme'; $wb['non_www_to_www_txt'] = 'Non-www -> www'; $wb['www_to_non_www_txt'] = 'www -> non-www'; $wb['php_fpm_use_socket_txt'] = 'PHP-FPM İçin Soket Kullanılsın'; +$wb['php_fpm_chroot_txt'] = 'Chroot PHP-FPM'; $wb['error_no_sni_txt'] = 'Bu sunucuda SSL için SNI etkinleştirilmemiş. Bir IP adresi için yalnız bir SSL sertifikası etkinleştirebilirsiniz.'; $wb['python_txt'] = 'Python'; $wb['perl_txt'] = 'Perl'; diff --git a/interface/web/sites/templates/web_vhost_domain_advanced.htm b/interface/web/sites/templates/web_vhost_domain_advanced.htm index 1def0ecb6..0b5ddfbd8 100644 --- a/interface/web/sites/templates/web_vhost_domain_advanced.htm +++ b/interface/web/sites/templates/web_vhost_domain_advanced.htm @@ -57,6 +57,12 @@ {tmpl_var name='php_fpm_use_socket'} +
+ +
+ {tmpl_var name='php_fpm_chroot'} +
+
+
+ +
+ {tmpl_var name='php_fpm_incron_reload'} +
+
diff --git a/server/plugins-available/z_incron_plugin.inc.php b/server/plugins-available/z_php_fpm_incron_reload_plugin.inc.php similarity index 82% rename from server/plugins-available/z_incron_plugin.inc.php rename to server/plugins-available/z_php_fpm_incron_reload_plugin.inc.php index dfde5235f..bc88f4a19 100644 --- a/server/plugins-available/z_incron_plugin.inc.php +++ b/server/plugins-available/z_php_fpm_incron_reload_plugin.inc.php @@ -6,31 +6,33 @@ * Projects which use deployment tools can use this to reload php-fpm to clear the opcache at deploy time, without * requiring superuser privileges. * - * The plugin is called `z_incron_plugin` because plugins are executed alphabetically, and this plugin can only run - * when apache2/nginx plugins have already run so the directories and user/group exist. + * The plugin is prefixed with `z_` because plugins are executed alphabetically, and this plugin + * must only run after apache2/nginx plugins so we are sure the directories and user/group exist. */ -class z_incron_plugin { +class z_php_fpm_incron_reload_plugin { - var $plugin_name = 'z_incron_plugin'; - var $class_name = 'z_incron_plugin'; + var $plugin_name = 'z_php_fpm_incron_reload_plugin'; + var $class_name = 'z_php_fpm_incron_reload_plugin'; function onInstall() { global $conf; - if ($conf['services']['web'] !== true) { - return false; - } - - if ($this->isIncronAvailable() === false) { - return false; - } - - return true; + return $conf['services']['web'] === true; } function onLoad() { global $app; + if ($this->isPluginEnabled() === false) { + return; + } + + if ($this->isIncronAvailable() === false) { + $app->log('You must install incron in order to use this plugin', LOGLEVEL_DEBUG); + + return; + } + $app->plugins->registerEvent('web_domain_insert', $this->plugin_name, 'incronInsert'); $app->plugins->registerEvent('web_domain_update', $this->plugin_name, 'incronUpdate'); $app->plugins->registerEvent('web_domain_delete', $this->plugin_name, 'incronDelete'); @@ -88,6 +90,15 @@ class z_incron_plugin { return $retval === 0; } + private function isPluginEnabled() { + global $app, $conf; + + $app->uses('getconf'); + $serverConfig = $app->getconf->get_server_config($conf['server_id'], 'web'); + + return $serverConfig['php_fpm_incron_reload'] === 'y'; + } + private function createIncronConfiguration($triggerFile, $systemUser, $fastcgiPhpVersion) { global $app; @@ -122,6 +133,10 @@ class z_incron_plugin { global $app; $configFile = $this->getIncronConfigurationFilePath($systemUser); + if (!file_exists($configFile)) { + return; + } + unlink($configFile); $app->log(sprintf('Deleted incron configuration "%s"', $configFile), LOGLEVEL_DEBUG); @@ -130,6 +145,10 @@ class z_incron_plugin { private function deleteTriggerFile($triggerFile) { global $app; + if (!file_exists($triggerFile)) { + return; + } + unlink($triggerFile); $app->log(sprintf('Deleted incron trigger file "%s"', $triggerFile), LOGLEVEL_DEBUG); -- GitLab From b26dcd0575f22111a0c0cf9c4df5ca24dddeaea2 Mon Sep 17 00:00:00 2001 From: Rajko Albrecht Date: Thu, 7 Feb 2019 15:48:31 +0100 Subject: [PATCH 012/215] Ticket #5236 First workflow for allow reverse proxy with different site names for ispconfig panel. TODO: Allow only for sites known to the system itself instead of all or none. --- interface/lib/app.inc.php | 69 +++++++++++++++++++++------------- security/security_settings.ini | 4 +- 2 files changed, 46 insertions(+), 27 deletions(-) diff --git a/interface/lib/app.inc.php b/interface/lib/app.inc.php index 7af764f92..e54652122 100755 --- a/interface/lib/app.inc.php +++ b/interface/lib/app.inc.php @@ -68,20 +68,31 @@ class app { $this->db = false; } } + $this->uses('functions'); // we need this before all others! + $this->uses('auth,plugin,ini_parser,getconf'); + + } + public function __get($prop) { + if(property_exists($this, $prop)) return $this->{$prop}; + + $this->uses($prop); + if(property_exists($this, $prop)) return $this->{$prop}; + else return null; + } + + public function __destruct() { + session_write_close(); + } + + public function initialize_session() { //* Start the session if($this->_conf['start_session'] == true) { - $this->uses('session'); $sess_timeout = $this->conf('interface', 'session_timeout'); - $cookie_domain = (isset($_SERVER['SERVER_NAME']) ? $_SERVER['SERVER_NAME'] : $_SERVER['HTTP_HOST']); - - // Workaround for Nginx servers - if($cookie_domain == '_') { - $tmp = explode(':',$_SERVER["HTTP_HOST"]); - $cookie_domain = $tmp[0]; - unset($tmp); - } + $cookie_domain = $this->get_cookie_domain(); + $this->log("cookie_domain is ".$cookie_domain,0); + $cookie_domain = ''; $cookie_secure = ($_SERVER["HTTPS"] == 'on')?true:false; if($sess_timeout) { /* check if user wants to stay logged in */ @@ -122,23 +133,8 @@ class app { if(empty($_SESSION['s']['language'])) $_SESSION['s']['language'] = $conf['language']; } - $this->uses('functions'); // we need this before all others! - $this->uses('auth,plugin,ini_parser,getconf'); - - } - - public function __get($prop) { - if(property_exists($this, $prop)) return $this->{$prop}; - - $this->uses($prop); - if(property_exists($this, $prop)) return $this->{$prop}; - else return null; } - public function __destruct() { - session_write_close(); - } - public function uses($classes) { $cl = explode(',', $classes); if(is_array($cl)) { @@ -192,7 +188,7 @@ class app { $tstamp = time(); $msg = '[INTERFACE]: '.$msg; $this->db->query("INSERT INTO sys_log (server_id,datalog_id,loglevel,tstamp,message) VALUES (?, 0, ?, ?, ?)", $server_id, $priority,$tstamp,$msg); - /* + if (is_writable($this->_conf['log_file'])) { if (!$fp = fopen ($this->_conf['log_file'], 'a')) { $this->error('Unable to open logfile: ' . $this->_conf['log_file']); @@ -204,7 +200,7 @@ class app { } else { $this->error('Unable to write to logfile: ' . $this->_conf['log_file']); } - */ + } } @@ -336,12 +332,33 @@ class app { $this->tpl->setVar('globalsearch_noresults_limit_txt', $this->lng('globalsearch_noresults_limit_txt')); $this->tpl->setVar('globalsearch_searchfield_watermark_txt', $this->lng('globalsearch_searchfield_watermark_txt')); } + + private function get_cookie_domain() { + $proxy_panel_allowed = $this->getconf->get_security_config('permissions')['reverse_proxy_panel_allowed']; + $cookie_domain = (isset($_SERVER['SERVER_NAME']) ? $_SERVER['SERVER_NAME'] : $_SERVER['HTTP_HOST']); + // Workaround for Nginx servers + if($cookie_domain == '_') { + $tmp = explode(':',$_SERVER["HTTP_HOST"]); + $cookie_domain = $tmp[0]; + unset($tmp); + } + $this->log("Server: ".print_r($_SERVER,true)); + if ($proxy_panel_allowed == 'all') { + return ''; + } + return $cookie_domain; + } } // end class //** Initialize application (app) object //* possible future = new app($conf); $app = new app(); +/* split session creation out of constructor is IMHO better. + otherwise we have some circular references to global $app like in + getconfig property of App - RA +*/ +$app->initialize_session(); // load and enable PHP Intrusion Detection System (PHPIDS) $ids_security_config = $app->getconf->get_security_config('ids'); diff --git a/security/security_settings.ini b/security/security_settings.ini index 24f4e38d2..c135652e1 100644 --- a/security/security_settings.ini +++ b/security/security_settings.ini @@ -17,6 +17,7 @@ admin_allow_software_repo=superadmin remote_api_allowed=yes password_reset_allowed=yes session_regenerate_id=yes +reverse_proxy_panel_allowed=none [ids] ids_anon_enabled=yes @@ -42,4 +43,5 @@ security_admin_email_subject=Security alert from server warn_new_admin=yes warn_passwd_change=no warn_shadow_change=no -warn_group_change=no \ No newline at end of file +warn_group_change=no + -- GitLab From 0344bc5218a6057c15c93530de5a645f1756c147 Mon Sep 17 00:00:00 2001 From: Rajko Albrecht Date: Fri, 8 Feb 2019 12:47:12 +0100 Subject: [PATCH 013/215] Ticket #5236 Start checks against local sites list for allowed reverse proxy forwards --- interface/lib/app.inc.php | 17 ++++++++++++++--- 1 file changed, 14 insertions(+), 3 deletions(-) diff --git a/interface/lib/app.inc.php b/interface/lib/app.inc.php index e54652122..dddbb2061 100755 --- a/interface/lib/app.inc.php +++ b/interface/lib/app.inc.php @@ -335,6 +335,9 @@ class app { private function get_cookie_domain() { $proxy_panel_allowed = $this->getconf->get_security_config('permissions')['reverse_proxy_panel_allowed']; + if ($proxy_panel_allowed == 'all') { + return ''; + } $cookie_domain = (isset($_SERVER['SERVER_NAME']) ? $_SERVER['SERVER_NAME'] : $_SERVER['HTTP_HOST']); // Workaround for Nginx servers if($cookie_domain == '_') { @@ -342,10 +345,18 @@ class app { $cookie_domain = $tmp[0]; unset($tmp); } - $this->log("Server: ".print_r($_SERVER,true)); - if ($proxy_panel_allowed == 'all') { - return ''; + if($proxy_panel_allowed == 'sites') { + $forwarded_host = (isset($_SERVER['HTTP_X_FORWARDED_HOST']) ? $_SERVER['HTTP_X_FORWARDED_HOST'] : null ); + if($forwarded_host !== null && $forwarded_host !== $cookie_domain) { + $sql = "SELECT domain_id from web_domain where domain = '$forwarded_host'"; + $recs = $this->db->queryOneRecord($sql); + if($recs !== null) { + $cookie_domain = $forwarded_host; + } + unset($forwarded_host); + } } + return $cookie_domain; } -- GitLab From e42fd8321dd041cf7a692dc955e6fde3a569e03a Mon Sep 17 00:00:00 2001 From: Rajko Albrecht Date: Mon, 11 Feb 2019 12:44:00 +0100 Subject: [PATCH 014/215] Comments --- interface/lib/app.inc.php | 9 ++++++++- 1 file changed, 8 insertions(+), 1 deletion(-) diff --git a/interface/lib/app.inc.php b/interface/lib/app.inc.php index dddbb2061..79be4c9ab 100755 --- a/interface/lib/app.inc.php +++ b/interface/lib/app.inc.php @@ -338,6 +338,11 @@ class app { if ($proxy_panel_allowed == 'all') { return ''; } + /* + * See ticket #5238: It should be ensured, that _SERVER_NAME is always set. + * Otherwise the security improvement doesn't work with nginx. If this is done, + * the check for HTTP_HOST and workaround for nginx is obsolete. + */ $cookie_domain = (isset($_SERVER['SERVER_NAME']) ? $_SERVER['SERVER_NAME'] : $_SERVER['HTTP_HOST']); // Workaround for Nginx servers if($cookie_domain == '_') { @@ -348,6 +353,7 @@ class app { if($proxy_panel_allowed == 'sites') { $forwarded_host = (isset($_SERVER['HTTP_X_FORWARDED_HOST']) ? $_SERVER['HTTP_X_FORWARDED_HOST'] : null ); if($forwarded_host !== null && $forwarded_host !== $cookie_domain) { + // Just check for complete domain name and not auto subdomains $sql = "SELECT domain_id from web_domain where domain = '$forwarded_host'"; $recs = $this->db->queryOneRecord($sql); if($recs !== null) { @@ -365,7 +371,8 @@ class app { //** Initialize application (app) object //* possible future = new app($conf); $app = new app(); -/* split session creation out of constructor is IMHO better. +/* + split session creation out of constructor is IMHO better. otherwise we have some circular references to global $app like in getconfig property of App - RA */ -- GitLab From bb4bf2800c846e44b7c342322ebe9739e2bd69ec Mon Sep 17 00:00:00 2001 From: Rajko Albrecht Date: Mon, 11 Feb 2019 13:24:12 +0100 Subject: [PATCH 015/215] Re-disable log to logfile as before. --- interface/lib/app.inc.php | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/interface/lib/app.inc.php b/interface/lib/app.inc.php index 79be4c9ab..f8b59317d 100755 --- a/interface/lib/app.inc.php +++ b/interface/lib/app.inc.php @@ -188,7 +188,7 @@ class app { $tstamp = time(); $msg = '[INTERFACE]: '.$msg; $this->db->query("INSERT INTO sys_log (server_id,datalog_id,loglevel,tstamp,message) VALUES (?, 0, ?, ?, ?)", $server_id, $priority,$tstamp,$msg); - + /* if (is_writable($this->_conf['log_file'])) { if (!$fp = fopen ($this->_conf['log_file'], 'a')) { $this->error('Unable to open logfile: ' . $this->_conf['log_file']); @@ -200,7 +200,7 @@ class app { } else { $this->error('Unable to write to logfile: ' . $this->_conf['log_file']); } - + */ } } -- GitLab From 60b01b24c31901bd7dfe5836b3a3d77ef83708ed Mon Sep 17 00:00:00 2001 From: Rajko Albrecht Date: Tue, 12 Feb 2019 08:29:56 +0100 Subject: [PATCH 016/215] Don't use real textinputs for login_as and logout_from workflow. Some browser(-variants) fill them with stored username/passwords and ignore the "value" attribute on post. --- interface/web/login/login_as.php | 6 ++---- interface/web/login/logout.php | 6 ++---- 2 files changed, 4 insertions(+), 8 deletions(-) diff --git a/interface/web/login/login_as.php b/interface/web/login/login_as.php index 159f15b77..4c2fb3339 100644 --- a/interface/web/login/login_as.php +++ b/interface/web/login/login_as.php @@ -90,10 +90,8 @@ echo '



'.$wb['login_1_txt'].' ' . $dbData['username'] . '?
'.$wb['login_2_txt'].'
-
- - -
+ + diff --git a/interface/web/login/logout.php b/interface/web/login/logout.php index dc1c9e4a4..dadd871ba 100644 --- a/interface/web/login/logout.php +++ b/interface/web/login/logout.php @@ -48,10 +48,8 @@ if ((isset($_SESSION['s_old']) && ($_SESSION['s_old']['user']['typ'] == 'admin' echo '



'.str_replace('{UTYPE}', $utype, $wb['login_as_or_logout_txt']).'
-
- - -
+ + -- GitLab From ee40c2cdcca659775dfccd207364ee75189d5277 Mon Sep 17 00:00:00 2001 From: Till Brehm Date: Thu, 14 Feb 2019 16:01:33 +0100 Subject: [PATCH 017/215] Fixed problem with php-fpm-chroot field in web_domain table. --- install/sql/incremental/upd_0087.sql | 1 - install/sql/incremental/upd_dev_collection.sql | 1 + install/sql/ispconfig3.sql | 1 + 3 files changed, 2 insertions(+), 1 deletion(-) delete mode 100644 install/sql/incremental/upd_0087.sql diff --git a/install/sql/incremental/upd_0087.sql b/install/sql/incremental/upd_0087.sql deleted file mode 100644 index e1b35b038..000000000 --- a/install/sql/incremental/upd_0087.sql +++ /dev/null @@ -1 +0,0 @@ -ALTER TABLE `web_domain` ADD COLUMN `php_fpm_chroot` enum('n','y') NOT NULL DEFAULT 'n' AFTER `php_fpm_use_socket`; diff --git a/install/sql/incremental/upd_dev_collection.sql b/install/sql/incremental/upd_dev_collection.sql index f06e44974..98e8abdf9 100644 --- a/install/sql/incremental/upd_dev_collection.sql +++ b/install/sql/incremental/upd_dev_collection.sql @@ -1,3 +1,4 @@ ALTER TABLE `sys_datalog` ADD `session_id` varchar(64) NOT NULL DEFAULT '' AFTER `error`; ALTER TABLE `sys_user` CHANGE `sys_userid` `sys_userid` INT(11) UNSIGNED NOT NULL DEFAULT '1' COMMENT 'Created by userid'; ALTER TABLE `sys_user` CHANGE `sys_groupid` `sys_groupid` INT(11) UNSIGNED NOT NULL DEFAULT '1' COMMENT 'Created by groupid'; +ALTER TABLE `web_domain` ADD COLUMN `php_fpm_chroot` enum('n','y') NOT NULL DEFAULT 'n' AFTER `php_fpm_use_socket`; diff --git a/install/sql/ispconfig3.sql b/install/sql/ispconfig3.sql index 79dfde327..88eff32ff 100644 --- a/install/sql/ispconfig3.sql +++ b/install/sql/ispconfig3.sql @@ -1965,6 +1965,7 @@ CREATE TABLE `web_domain` ( `apache_directives` mediumtext, `nginx_directives` mediumtext, `php_fpm_use_socket` ENUM('n','y') NOT NULL DEFAULT 'y', + `php_fpm_chroot` enum('n','y') NOT NULL DEFAULT 'n', `pm` enum('static','dynamic','ondemand') NOT NULL DEFAULT 'dynamic', `pm_max_children` int(11) NOT NULL DEFAULT '10', `pm_start_servers` int(11) NOT NULL DEFAULT '2', -- GitLab From 19513efa8cdb2f0e44470c7d119a1ed901624b8b Mon Sep 17 00:00:00 2001 From: Till Brehm Date: Thu, 14 Feb 2019 18:27:21 +0100 Subject: [PATCH 018/215] Implemented #5241 Add a {docroot] variable for apache directive snippets --- interface/web/admin/templates/directive_snippets_edit.htm | 4 +++- 1 file changed, 3 insertions(+), 1 deletion(-) diff --git a/interface/web/admin/templates/directive_snippets_edit.htm b/interface/web/admin/templates/directive_snippets_edit.htm index eab53c79b..72eb82369 100644 --- a/interface/web/admin/templates/directive_snippets_edit.htm +++ b/interface/web/admin/templates/directive_snippets_edit.htm @@ -18,7 +18,9 @@
{tmpl_var name='snippet'}
-   Nginx {tmpl_var name='variables_txt'}: {DOCROOT}, {FASTCGIPASS}, {PHPFALLBACKFASTCGIPASS}
+   Nginx {tmpl_var name='variables_txt'}: {DOCROOT}, {FASTCGIPASS}, {PHPFALLBACKFASTCGIPASS}
+   Apache {tmpl_var name='variables_txt'}: {DOCROOT}, {DOCROOT_CLIENT} +
-- GitLab From 3729a0cd27b59921bbf9f8e7303d9fb88886e3b9 Mon Sep 17 00:00:00 2001 From: Till Brehm Date: Thu, 14 Feb 2019 18:47:19 +0100 Subject: [PATCH 019/215] Implemented #5246 Mail traffic update - handle different syslog timestamps when parsing logs --- .../classes/cron.d/100-mailbox_stats.inc.php | 38 +++++++++---------- 1 file changed, 18 insertions(+), 20 deletions(-) diff --git a/server/lib/classes/cron.d/100-mailbox_stats.inc.php b/server/lib/classes/cron.d/100-mailbox_stats.inc.php index e347330c4..e5a0065a5 100644 --- a/server/lib/classes/cron.d/100-mailbox_stats.inc.php +++ b/server/lib/classes/cron.d/100-mailbox_stats.inc.php @@ -107,25 +107,6 @@ class cronjob_mailbox_stats extends cronjob { $mail_boxes = array(); $mail_rewrites = array(); // we need to read all mail aliases and forwards because the address in amavis is not always the mailbox address - function parse_mail_log_line($line) { - //Oct 31 17:35:48 mx01 amavis[32014]: (32014-05) Passed CLEAN, [IPv6:xxxxx] [IPv6:xxxxx] -> , Message-ID: , mail_id: xxxxxx, Hits: -1.89, size: 1591, queued_as: xxxxxxx, 946 ms - - if(preg_match('/^(\w+\s+\d+\s+\d+:\d+:\d+)\s+[^ ]+\s+amavis.* <([^>]+)>\s+->\s+((<[^>]+>,)+) .*Message-ID:\s+<([^>]+)>.* size:\s+(\d+),.*$/', $line, $matches) == false) return false; - - $timestamp = strtotime($matches[1]); - if(!$timestamp) return false; - - $to = array(); - $recipients = explode(',', $matches[3]); - foreach($recipients as $recipient) { - $recipient = substr($recipient, 1, -1); - if(!$recipient || $recipient == $matches[2]) continue; - $to[] = $recipient; - } - - return array('line' => $line, 'timestamp' => $timestamp, 'size' => $matches[6], 'from' => $matches[2], 'to' => $to, 'message-id' => $matches[5]); - } - function add_mailbox_traffic(&$traffic_array, $address, $traffic,$mail_boxes, $mail_rewrites) { //global $mail_boxes, $mail_rewrites; //echo '##'.print_r($mail_boxes).'##'; @@ -275,9 +256,26 @@ class cronjob_mailbox_stats extends cronjob { private function parse_mail_log_line($line) { //Oct 31 17:35:48 mx01 amavis[32014]: (32014-05) Passed CLEAN, [IPv6:xxxxx] [IPv6:xxxxx] -> , Message-ID: , mail_id: xxxxxx, Hits: -1.89, size: 1591, queued_as: xxxxxxx, 946 ms - if(preg_match('/^(\w+\s+\d+\s+\d+:\d+:\d+)\s+[^ ]+\s+amavis.* <([^>]+)>\s+->\s+((<[^>]+>,)+) .*Message-ID:\s+<([^>]+)>.* size:\s+(\d+),.*$/', $line, $matches) == false) return false; + // Oct 31 17:35:48 + $timestampSyslog = '\w+\s+\d+\s+\d+:\d+:\d+'; + $timePatternRsyslog = 'Y-m-d\TH:i:sT'; + // 2019-02-12T18:17:19+01:00 + $timestampRsyslog = '\d{4}-\d{2}-\d{2}T\d{2}:\d{2}:\d{2}[\+-]\d{2}:\d{2}'; + // 2019-02-12T18:17:19.203313+01:00 + $timestampHighPrecision = '\d{4}-\d{2}-\d{2}T\d{2}:\d{2}:\d{2}\.\d+[\+-]\d{2}:\d{2}'; + $timePatternHighPrecision = 'Y-m-d\TH:i:s.uT'; + + $timestampAll = $timestampSyslog . '|' . $timestampRsyslog . '|' . $timestampHighPrecision; + + if(preg_match('/^('. $timestampAll .')\s+[^ ]+\s+amavis.* <([^>]+)>\s+->\s+((<[^>]+>,)+) .*Message-ID:\s+<([^>]+)>.* size:\s+(\d+),.*$/', $line, $matches) == false) return false; $timestamp = strtotime($matches[1]); + if(!$timestamp) { + $timestamp = DateTime::createFromFormat($timePatternRsyslog, $matches[1]); + } + if(!$timestamp) { + $timestamp = DateTime::createFromFormat($timePatternHighPrecision, $matches[1]); + } if(!$timestamp) return false; $to = array(); -- GitLab From c0b64b22f61177051b89b449ca7f721acde05581 Mon Sep 17 00:00:00 2001 From: Till Brehm Date: Fri, 15 Feb 2019 17:47:49 +0100 Subject: [PATCH 020/215] Fixed #5227 SOAP API "dns_templatezone_add" error "Column 'xfer' cannot be null" --- interface/lib/classes/remote.d/dns.inc.php | 1 + 1 file changed, 1 insertion(+) diff --git a/interface/lib/classes/remote.d/dns.inc.php b/interface/lib/classes/remote.d/dns.inc.php index e640145c6..7e0b230d7 100644 --- a/interface/lib/classes/remote.d/dns.inc.php +++ b/interface/lib/classes/remote.d/dns.inc.php @@ -113,6 +113,7 @@ class remoting_dns extends remoting { if($vars['expire'] == '') $error .= $app->lng('error_expire_empty').'
'; if($vars['minimum'] == '') $error .= $app->lng('error_minimum_empty').'
'; if($vars['ttl'] == '') $error .= $app->lng('error_ttl_empty').'
'; + if(!isset($vars['xfer'])) $vars['xfer'] = ''; if($error == '') { // Insert the soa record -- GitLab From e13f43c59a2318ee4c98bb8e82996339b3269799 Mon Sep 17 00:00:00 2001 From: Till Brehm Date: Tue, 19 Feb 2019 09:50:05 +0100 Subject: [PATCH 021/215] Fixed #5250 Error in Debian version detection code --- install/lib/install.lib.php | 4 ++-- server/lib/classes/monitor_tools.inc.php | 4 ++-- 2 files changed, 4 insertions(+), 4 deletions(-) diff --git a/install/lib/install.lib.php b/install/lib/install.lib.php index 9e2afe76c..933c30fe3 100644 --- a/install/lib/install.lib.php +++ b/install/lib/install.lib.php @@ -214,13 +214,13 @@ function get_distname() { $distid = 'debian60'; $distbaseid = 'debian'; swriteln("Operating System: Debian 7.0 (Wheezy/Sid) or compatible\n"); - } elseif(strstr(trim(file_get_contents('/etc/debian_version')), '8') || substr(trim(file_get_contents('/etc/debian_version')),0,1) == '8') { + } elseif(substr(trim(file_get_contents('/etc/debian_version')),0,1) == '8') { $distname = 'Debian'; $distver = 'Jessie'; $distid = 'debian60'; $distbaseid = 'debian'; swriteln("Operating System: Debian 8.0 (Jessie) or compatible\n"); - } elseif(strstr(trim(file_get_contents('/etc/debian_version')), '9') || substr(trim(file_get_contents('/etc/debian_version')),0,1) == '9') { + } elseif(substr(trim(file_get_contents('/etc/debian_version')),0,1) == '9') { $distname = 'Debian'; $distver = 'Stretch'; $distconfid = 'debian90'; diff --git a/server/lib/classes/monitor_tools.inc.php b/server/lib/classes/monitor_tools.inc.php index 7cc37f94f..c4a60702b 100644 --- a/server/lib/classes/monitor_tools.inc.php +++ b/server/lib/classes/monitor_tools.inc.php @@ -200,12 +200,12 @@ class monitor_tools { $distver = 'Wheezy/Sid'; $distid = 'debian60'; $distbaseid = 'debian'; - } elseif(strstr(trim(file_get_contents('/etc/debian_version')), '8') || substr(trim(file_get_contents('/etc/debian_version')),0,1) == '8') { + } elseif(substr(trim(file_get_contents('/etc/debian_version')),0,1) == '8') { $distname = 'Debian'; $distver = 'Jessie'; $distid = 'debian60'; $distbaseid = 'debian'; - } elseif(strstr(trim(file_get_contents('/etc/debian_version')), '9') || substr(trim(file_get_contents('/etc/debian_version')),0,1) == '9') { + } elseif(substr(trim(file_get_contents('/etc/debian_version')),0,1) == '9') { $distname = 'Debian'; $distver = 'Stretch'; $distconfid = 'debian90'; -- GitLab From b7b2bfe7ffd2b5083a808f6b10c0dfe19955cc8a Mon Sep 17 00:00:00 2001 From: Helmo Date: Thu, 21 Feb 2019 15:25:03 +0100 Subject: [PATCH 022/215] Purge the LOGLEVEL_INFO constant to avoid `Use of undefined constant` warnings --- interface/lib/classes/db_mysql.inc.php | 6 +++--- server/lib/classes/db_mysql.inc.php | 6 +++--- 2 files changed, 6 insertions(+), 6 deletions(-) diff --git a/interface/lib/classes/db_mysql.inc.php b/interface/lib/classes/db_mysql.inc.php index c4764cb55..7d7b56898 100644 --- a/interface/lib/classes/db_mysql.inc.php +++ b/interface/lib/classes/db_mysql.inc.php @@ -514,16 +514,16 @@ class db public function escape($sString) { global $app; if(!is_string($sString) && !is_numeric($sString)) { - $app->log('NON-String given in escape function! (' . gettype($sString) . ')', LOGLEVEL_INFO); + $app->log('NON-String given in escape function! (' . gettype($sString) . ')', LOGLEVEL_DEBUG); //$sAddMsg = getDebugBacktrace(); - $app->log($sAddMsg, LOGLEVEL_DEBUG); + //$app->log($sAddMsg, LOGLEVEL_DEBUG); $sString = ''; } $cur_encoding = mb_detect_encoding($sString); if($cur_encoding != "UTF-8") { if($cur_encoding != 'ASCII') { - if(is_object($app) && method_exists($app, 'log')) $app->log('String ' . substr($sString, 0, 25) . '... is ' . $cur_encoding . '.', LOGLEVEL_INFO); + if(is_object($app) && method_exists($app, 'log')) $app->log('String ' . substr($sString, 0, 25) . '... is ' . $cur_encoding . '.', LOGLEVEL_DEBUG); if($cur_encoding) $sString = mb_convert_encoding($sString, 'UTF-8', $cur_encoding); else $sString = mb_convert_encoding($sString, 'UTF-8'); } diff --git a/server/lib/classes/db_mysql.inc.php b/server/lib/classes/db_mysql.inc.php index b03ad5567..0bae3f92d 100644 --- a/server/lib/classes/db_mysql.inc.php +++ b/server/lib/classes/db_mysql.inc.php @@ -514,16 +514,16 @@ class db public function escape($sString) { global $app; if(!is_string($sString) && !is_numeric($sString)) { - $app->log('NON-String given in escape function! (' . gettype($sString) . ')', LOGLEVEL_INFO); + $app->log('NON-String given in escape function! (' . gettype($sString) . ')', LOGLEVEL_DEBUG); //$sAddMsg = getDebugBacktrace(); - $app->log($sAddMsg, LOGLEVEL_DEBUG); + //$app->log($sAddMsg, LOGLEVEL_DEBUG); $sString = ''; } $cur_encoding = mb_detect_encoding($sString); if($cur_encoding != "UTF-8") { if($cur_encoding != 'ASCII') { - if(is_object($app) && method_exists($app, 'log')) $app->log('String ' . substr($sString, 0, 25) . '... is ' . $cur_encoding . '.', LOGLEVEL_INFO); + if(is_object($app) && method_exists($app, 'log')) $app->log('String ' . substr($sString, 0, 25) . '... is ' . $cur_encoding . '.', LOGLEVEL_DEBUG); if($cur_encoding) $sString = mb_convert_encoding($sString, 'UTF-8', $cur_encoding); else $sString = mb_convert_encoding($sString, 'UTF-8'); } -- GitLab From 5f812a70ad3820d80c813abbded887254c64b359 Mon Sep 17 00:00:00 2001 From: Florian Schaal Date: Sun, 24 Feb 2019 08:42:35 +0100 Subject: [PATCH 023/215] Problems Configuration Enable PageSpeed and HTTP2 with nginx (Fixes #5242) --- interface/web/sites/web_vhost_domain_edit.php | 8 +++++++- 1 file changed, 7 insertions(+), 1 deletion(-) diff --git a/interface/web/sites/web_vhost_domain_edit.php b/interface/web/sites/web_vhost_domain_edit.php index 19e4c4c23..8d43e21fa 100644 --- a/interface/web/sites/web_vhost_domain_edit.php +++ b/interface/web/sites/web_vhost_domain_edit.php @@ -275,7 +275,6 @@ class page_action extends tform_actions { // add limits to template to be able to hide settings foreach($read_limits as $limit) $app->tpl->setVar($limit, $client[$limit]); - //* Reseller: If the logged in user is not admin and has sub clients (is a reseller) } elseif ($_SESSION["s"]["user"]["typ"] != 'admin' && $app->auth->has_clients($_SESSION['s']['user']['userid'])) { @@ -940,6 +939,13 @@ class page_action extends tform_actions { } } $app->tpl->setLoop('folder_directive_snippets', $folder_directive_snippets); + if(is_array($web_config[$server_id])) { + $app->tpl->setVar('is_spdy_enabled', ($web_config[$server_id]['enable_spdy'] === 'y')); + $app->tpl->setVar('is_pagespeed_enabled', ($web_config[$server_id]['nginx_enable_pagespeed'])); + } else { + $app->tpl->setVar('is_spdy_enabled', ($web_config['enable_spdy'] === 'y')); + $app->tpl->setVar('is_pagespeed_enabled', ($web_config['nginx_enable_pagespeed'])); + } parent::onShowEnd(); } -- GitLab From e2940f4c1b3029a0e9a07e95836d9d16d6fed72d Mon Sep 17 00:00:00 2001 From: Florian Schaal Date: Sun, 24 Feb 2019 11:26:24 +0100 Subject: [PATCH 024/215] Backport CAA record feature from 3.2 to 3.1.14 (Fixes #5249) --- .../sql/incremental/upd_dev_collection.sql | 75 ++++++ install/sql/ispconfig3.sql | 81 ++++++- .../plugin_system_config_dns_ca.inc.php | 91 +++++++ .../plugin_system_config_dns_ca_list.inc.php | 81 +++++++ .../system_config_dns_ca_plugin.inc.php | 103 ++++++++ .../web/admin/form/system_config.tform.php | 16 ++ .../web/admin/lib/lang/ar_system_config.lng | 8 + .../web/admin/lib/lang/bg_system_config.lng | 8 + .../web/admin/lib/lang/br_system_config.lng | 28 ++- .../web/admin/lib/lang/ca_system_config.lng | 8 + .../web/admin/lib/lang/cz_system_config.lng | 8 + .../web/admin/lib/lang/de_system_config.lng | 10 + .../web/admin/lib/lang/dk_system_config.lng | 8 + .../web/admin/lib/lang/el_system_config.lng | 8 + .../web/admin/lib/lang/en_system_config.lng | 8 + .../web/admin/lib/lang/es_system_config.lng | 8 + .../web/admin/lib/lang/fi_system_config.lng | 8 + .../web/admin/lib/lang/fr_system_config.lng | 8 + .../web/admin/lib/lang/hr_system_config.lng | 8 + .../web/admin/lib/lang/hu_system_config.lng | 8 + .../web/admin/lib/lang/id_system_config.lng | 8 + .../web/admin/lib/lang/it_system_config.lng | 8 + .../web/admin/lib/lang/ja_system_config.lng | 8 + .../web/admin/lib/lang/nl_system_config.lng | 8 + .../web/admin/lib/lang/pl_system_config.lng | 8 + .../web/admin/lib/lang/pt_system_config.lng | 8 + .../web/admin/lib/lang/ro_system_config.lng | 8 + .../web/admin/lib/lang/ru_system_config.lng | 13 +- .../web/admin/lib/lang/se_system_config.lng | 8 + .../web/admin/lib/lang/sk_system_config.lng | 8 + .../web/admin/lib/lang/tr_system_config.lng | 8 + interface/web/dns/ajax_get_json.php | 12 + interface/web/dns/dns_caa_edit.php | 222 ++++++++++++++++++ interface/web/dns/form/dns_caa.tform.php | 117 +++++++++ interface/web/dns/lib/lang/ar_dns_caa.lng | 19 ++ interface/web/dns/lib/lang/bg_dns_caa.lng | 19 ++ interface/web/dns/lib/lang/br_dns_caa.lng | 19 ++ interface/web/dns/lib/lang/ca_dns_caa.lng | 19 ++ interface/web/dns/lib/lang/cz_dns_caa.lng | 19 ++ interface/web/dns/lib/lang/de_dns_caa.lng | 19 ++ interface/web/dns/lib/lang/dk_dns_caa.lng | 19 ++ interface/web/dns/lib/lang/el_dns_caa.lng | 19 ++ interface/web/dns/lib/lang/en_dns_caa.lng | 19 ++ interface/web/dns/lib/lang/es_dns_caa.lng | 19 ++ interface/web/dns/lib/lang/fi_dns_caa.lng | 19 ++ interface/web/dns/lib/lang/fr_dns_caa.lng | 19 ++ interface/web/dns/lib/lang/hr_dns_caa.lng | 19 ++ interface/web/dns/lib/lang/hu_dns_caa.lng | 19 ++ interface/web/dns/lib/lang/id_dns_caa.lng | 19 ++ interface/web/dns/lib/lang/it_dns_caa.lng | 19 ++ interface/web/dns/lib/lang/ja_dns_caa.lng | 19 ++ interface/web/dns/lib/lang/nl_dns_caa.lng | 19 ++ interface/web/dns/lib/lang/pl_dns_caa.lng | 19 ++ interface/web/dns/lib/lang/pt_dns_caa.lng | 19 ++ interface/web/dns/lib/lang/ro_dns_caa.lng | 19 ++ interface/web/dns/lib/lang/ru_dns_caa.lng | 19 ++ interface/web/dns/lib/lang/se_dns_caa.lng | 19 ++ interface/web/dns/lib/lang/sk_dns_caa.lng | 19 ++ interface/web/dns/lib/lang/tr_dns_caa.lng | 19 ++ interface/web/dns/list/dns_a.list.php | 2 +- interface/web/dns/templates/dns_a_list.htm | 1 + interface/web/dns/templates/dns_caa_edit.htm | 74 ++++++ 62 files changed, 1563 insertions(+), 14 deletions(-) create mode 100644 interface/lib/classes/plugin_system_config_dns_ca.inc.php create mode 100644 interface/lib/classes/plugin_system_config_dns_ca_list.inc.php create mode 100644 interface/lib/plugins/system_config_dns_ca_plugin.inc.php create mode 100644 interface/web/dns/dns_caa_edit.php create mode 100644 interface/web/dns/form/dns_caa.tform.php create mode 100644 interface/web/dns/lib/lang/ar_dns_caa.lng create mode 100644 interface/web/dns/lib/lang/bg_dns_caa.lng create mode 100644 interface/web/dns/lib/lang/br_dns_caa.lng create mode 100644 interface/web/dns/lib/lang/ca_dns_caa.lng create mode 100644 interface/web/dns/lib/lang/cz_dns_caa.lng create mode 100644 interface/web/dns/lib/lang/de_dns_caa.lng create mode 100644 interface/web/dns/lib/lang/dk_dns_caa.lng create mode 100644 interface/web/dns/lib/lang/el_dns_caa.lng create mode 100644 interface/web/dns/lib/lang/en_dns_caa.lng create mode 100644 interface/web/dns/lib/lang/es_dns_caa.lng create mode 100644 interface/web/dns/lib/lang/fi_dns_caa.lng create mode 100644 interface/web/dns/lib/lang/fr_dns_caa.lng create mode 100644 interface/web/dns/lib/lang/hr_dns_caa.lng create mode 100644 interface/web/dns/lib/lang/hu_dns_caa.lng create mode 100644 interface/web/dns/lib/lang/id_dns_caa.lng create mode 100644 interface/web/dns/lib/lang/it_dns_caa.lng create mode 100644 interface/web/dns/lib/lang/ja_dns_caa.lng create mode 100644 interface/web/dns/lib/lang/nl_dns_caa.lng create mode 100644 interface/web/dns/lib/lang/pl_dns_caa.lng create mode 100644 interface/web/dns/lib/lang/pt_dns_caa.lng create mode 100644 interface/web/dns/lib/lang/ro_dns_caa.lng create mode 100644 interface/web/dns/lib/lang/ru_dns_caa.lng create mode 100644 interface/web/dns/lib/lang/se_dns_caa.lng create mode 100644 interface/web/dns/lib/lang/sk_dns_caa.lng create mode 100644 interface/web/dns/lib/lang/tr_dns_caa.lng create mode 100644 interface/web/dns/templates/dns_caa_edit.htm diff --git a/install/sql/incremental/upd_dev_collection.sql b/install/sql/incremental/upd_dev_collection.sql index 98e8abdf9..45d5a2e00 100644 --- a/install/sql/incremental/upd_dev_collection.sql +++ b/install/sql/incremental/upd_dev_collection.sql @@ -2,3 +2,78 @@ ALTER TABLE `sys_datalog` ADD `session_id` varchar(64) NOT NULL DEFAULT '' AFTER ALTER TABLE `sys_user` CHANGE `sys_userid` `sys_userid` INT(11) UNSIGNED NOT NULL DEFAULT '1' COMMENT 'Created by userid'; ALTER TABLE `sys_user` CHANGE `sys_groupid` `sys_groupid` INT(11) UNSIGNED NOT NULL DEFAULT '1' COMMENT 'Created by groupid'; ALTER TABLE `web_domain` ADD COLUMN `php_fpm_chroot` enum('n','y') NOT NULL DEFAULT 'n' AFTER `php_fpm_use_socket`; + +CREATE TABLE IF NOT EXISTS `dns_ssl_ca` ( + `id` int(10) unsigned NOT NULL AUTO_INCREMENT, + `sys_userid` int(11) unsigned NOT NULL DEFAULT '0', + `sys_groupid` int(11) unsigned NOT NULL DEFAULT '0', + `sys_perm_user` varchar(5) NOT NULL DEFAULT '', + `sys_perm_group` varchar(5) NOT NULL DEFAULT '', + `sys_perm_other` varchar(5) NOT NULL DEFAULT '', + `active` enum('N','Y') NOT NULL DEFAULT 'N', + `ca_name` varchar(255) NOT NULL DEFAULT '', + `ca_issue` varchar(255) NOT NULL DEFAULT '', + `ca_wildcard` enum('Y','N') NOT NULL DEFAULT 'N', + `ca_iodef` text NOT NULL, + `ca_critical` tinyint(1) NOT NULL DEFAULT '0', + PRIMARY KEY (`id`), + UNIQUE KEY (`ca_issue`) +) ENGINE=MyISAM DEFAULT CHARSET=utf8 AUTO_INCREMENT=1 ; + +ALTER TABLE `dns_ssl_ca` ADD UNIQUE(`ca_issue`); + +UPDATE `dns_ssl_ca` SET `ca_issue` = 'comodo.com' WHERE `ca_issue` = 'comodoca.com'; +DELETE FROM `dns_ssl_ca` WHERE `ca_issue` = 'geotrust.com'; +DELETE FROM `dns_ssl_ca` WHERE `ca_issue` = 'thawte.com'; +UPDATE `dns_ssl_ca` SET `ca_name` = 'Symantec / Thawte / GeoTrust' WHERE `ca_issue` = 'symantec.com'; + +INSERT IGNORE INTO `dns_ssl_ca` (`id`, `sys_userid`, `sys_groupid`, `sys_perm_user`, `sys_perm_group`, `sys_perm_other`, `active`, `ca_name`, `ca_issue`, `ca_wildcard`, `ca_iodef`, `ca_critical`) VALUES +(NULL, 1, 1, 'riud', 'riud', '', 'Y', 'AC Camerfirma', 'camerfirma.com', 'Y', '', 0), +(NULL, 1, 1, 'riud', 'riud', '', 'Y', 'ACCV', 'accv.es', 'Y', '', 0), +(NULL, 1, 1, 'riud', 'riud', '', 'Y', 'Actalis', 'actalis.it', 'Y', '', 0), +(NULL, 1, 1, 'riud', 'riud', '', 'Y', 'Amazon', 'amazon.com', 'Y', '', 0), +(NULL, 1, 1, 'riud', 'riud', '', 'Y', 'Asseco', 'certum.pl', 'Y', '', 0), +(NULL, 1, 1, 'riud', 'riud', '', 'Y', 'Buypass', 'buypass.com', 'Y', '', 0), +(NULL, 1, 1, 'riud', 'riud', '', 'Y', 'CA Disig', 'disig.sk', 'Y', '', 0), +(NULL, 1, 1, 'riud', 'riud', '', 'Y', 'CATCert', 'aoc.cat', 'Y', '', 0), +(NULL, 1, 1, 'riud', 'riud', '', 'Y', 'Certinomis', 'www.certinomis.com', 'Y', '', 0), +(NULL, 1, 1, 'riud', 'riud', '', 'Y', 'Certizen', 'hongkongpost.gov.hk', 'Y', '', 0), +(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', 'Comodo', 'comodoca.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), +(NULL, 1, 1, 'riud', 'riud', '', 'Y', 'e-tugra', 'e-tugra.com', 'Y', '', 0), +(NULL, 1, 1, 'riud', 'riud', '', 'Y', 'EDICOM', 'edicomgroup.com', 'Y', '', 0), +(NULL, 1, 1, 'riud', 'riud', '', 'Y', 'Entrust', 'entrust.net', 'Y', '', 0), +(NULL, 1, 1, 'riud', 'riud', '', 'Y', 'Firmaprofesional', 'firmaprofesional.com', 'Y', '', 0), +(NULL, 1, 1, 'riud', 'riud', '', 'Y', 'FNMT', 'fnmt.es', 'Y', '', 0), +(NULL, 1, 1, 'riud', 'riud', '', 'Y', 'GlobalSign', 'globalsign.com', 'Y', '', 0), +(NULL, 1, 1, 'riud', 'riud', '', 'Y', 'GoDaddy', 'godaddy.com', 'Y', '', 0), +(NULL, 1, 1, 'riud', 'riud', '', 'Y', 'Google Trust Services', 'pki.goog', 'Y', '', 0), +(NULL, 1, 1, 'riud', 'riud', '', 'Y', 'GRCA', 'gca.nat.gov.tw', 'Y', '', 0), +(NULL, 1, 1, 'riud', 'riud', '', 'Y', 'HARICA', 'harica.gr', 'Y', '', 0), +(NULL, 1, 1, 'riud', 'riud', '', 'Y', 'IdenTrust', 'identrust.com', 'Y', '', 0), +(NULL, 1, 1, 'riud', 'riud', '', 'Y', 'Izenpe', 'izenpe.com', 'Y', '', 0), +(NULL, 1, 1, 'riud', 'riud', '', 'Y', 'Kamu SM', 'kamusm.gov.tr', 'Y', '', 0), +(NULL, 1, 1, 'riud', 'riud', '', 'Y', 'Let''s Encrypt', 'letsencrypt.org', 'Y', '', 0), +(NULL, 1, 1, 'riud', 'riud', '', 'Y', 'Microsec e-Szigno', 'e-szigno.hu', 'Y', '', 0), +(NULL, 1, 1, 'riud', 'riud', '', 'Y', 'NetLock', 'netlock.hu', 'Y', '', 0), +(NULL, 1, 1, 'riud', 'riud', '', 'Y', 'PKIoverheid', 'www.pkioverheid.nl', 'Y', '', 0), +(NULL, 1, 1, 'riud', 'riud', '', 'Y', 'PROCERT', 'procert.net.ve', 'Y', '', 0), +(NULL, 1, 1, 'riud', 'riud', '', 'Y', 'QuoVadis', 'quovadisglobal.com', 'Y', '', 0), +(NULL, 1, 1, 'riud', 'riud', '', 'Y', 'SECOM', 'secomtrust.net', 'Y', '', 0), +(NULL, 1, 1, 'riud', 'riud', '', 'Y', 'Sertifitseerimiskeskuse', 'sk.ee', 'Y', '', 0), +(NULL, 1, 1, 'riud', 'riud', '', 'Y', 'StartCom', 'startcomca.com', 'Y', '', 0), +(NULL, 1, 1, 'riud', 'riud', '', 'Y', 'SwissSign', 'swisssign.com', 'Y', '', 0), +(NULL, 1, 1, 'riud', 'riud', '', 'Y', 'Symantec / Thawte / GeoTrust', 'symantec.com', 'Y', '', 0), +(NULL, 1, 1, 'riud', 'riud', '', 'Y', 'T-Systems', 'telesec.de', 'Y', '', 0), +(NULL, 1, 1, 'riud', 'riud', '', 'Y', 'Telia', 'telia.com', 'Y', '', 0), +(NULL, 1, 1, 'riud', 'riud', '', 'Y', 'Trustwave', 'trustwave.com', 'Y', '', 0), +(NULL, 1, 1, 'riud', 'riud', '', 'Y', 'Web.com', 'web.com', 'Y', '', 0), +(NULL, 1, 1, 'riud', 'riud', '', 'Y', 'WISeKey', 'wisekey.com', 'Y', '', 0), +(NULL, 1, 1, 'riud', 'riud', '', 'Y', 'WoSign', 'wosign.com', 'Y', '', 0); + +ALTER TABLE `dns_rr` CHANGE `type` `type` ENUM('A','AAAA','ALIAS','CAA','CNAME','DS','HINFO','LOC','MX','NAPTR','NS','PTR','RP','SRV','TXT','TLSA','DNSKEY') CHARACTER SET utf8 COLLATE utf8_general_ci NULL DEFAULT NULL; diff --git a/install/sql/ispconfig3.sql b/install/sql/ispconfig3.sql index 88eff32ff..757247392 100644 --- a/install/sql/ispconfig3.sql +++ b/install/sql/ispconfig3.sql @@ -489,7 +489,7 @@ CREATE TABLE `dns_rr` ( `server_id` int(11) NOT NULL default '1', `zone` int(11) unsigned NOT NULL DEFAULT '0', `name` varchar(255) NOT NULL DEFAULT '', - `type` enum('A','AAAA','ALIAS','CNAME','DS','HINFO','LOC','MX','NAPTR','NS','PTR','RP','SRV','TXT','TLSA','DNSKEY') default NULL, + `type` enum('A','AAAA','ALIAS','CNAME','CAA','DS','HINFO','LOC','MX','NAPTR','NS','PTR','RP','SRV','TXT','TLSA','DNSKEY') default NULL, `data` TEXT NOT NULL, `aux` int(11) unsigned NOT NULL default '0', `ttl` int(11) unsigned NOT NULL default '3600', @@ -525,6 +525,85 @@ CREATE TABLE `dns_slave` ( -- -------------------------------------------------------- +-- +-- Table structure for table `dns_ssl_ca` +-- + +CREATE TABLE IF NOT EXISTS `dns_ssl_ca` ( + `id` int(10) unsigned NOT NULL AUTO_INCREMENT, + `sys_userid` int(11) unsigned NOT NULL DEFAULT '0', + `sys_groupid` int(11) unsigned NOT NULL DEFAULT '0', + `sys_perm_user` varchar(5) NOT NULL DEFAULT '', + `sys_perm_group` varchar(5) NOT NULL DEFAULT '', + `sys_perm_other` varchar(5) NOT NULL DEFAULT '', + `active` enum('N','Y') NOT NULL DEFAULT 'N', + `ca_name` varchar(255) NOT NULL DEFAULT '', + `ca_issue` varchar(255) NOT NULL DEFAULT '', + `ca_wildcard` enum('Y','N') NOT NULL DEFAULT 'N', + `ca_iodef` text NOT NULL, + `ca_critical` tinyint(1) NOT NULL DEFAULT '0', + PRIMARY KEY (`id`), + UNIQUE KEY (`ca_issue`) +) ENGINE=MyISAM DEFAULT CHARSET=utf8 AUTO_INCREMENT=1 ; + +ALTER TABLE `dns_ssl_ca` ADD UNIQUE(`ca_issue`); + +UPDATE `dns_ssl_ca` SET `ca_issue` = 'comodo.com' WHERE `ca_issue` = 'comodoca.com'; +DELETE FROM `dns_ssl_ca` WHERE `ca_issue` = 'geotrust.com'; +DELETE FROM `dns_ssl_ca` WHERE `ca_issue` = 'thawte.com'; +UPDATE `dns_ssl_ca` SET `ca_name` = 'Symantec / Thawte / GeoTrust' WHERE `ca_issue` = 'symantec.com'; + +INSERT IGNORE INTO `dns_ssl_ca` (`id`, `sys_userid`, `sys_groupid`, `sys_perm_user`, `sys_perm_group`, `sys_perm_other`, `active`, `ca_name`, `ca_issue`, `ca_wildcard`, `ca_iodef`, `ca_critical`) VALUES +(NULL, 1, 1, 'riud', 'riud', '', 'Y', 'AC Camerfirma', 'camerfirma.com', 'Y', '', 0), +(NULL, 1, 1, 'riud', 'riud', '', 'Y', 'ACCV', 'accv.es', 'Y', '', 0), +(NULL, 1, 1, 'riud', 'riud', '', 'Y', 'Actalis', 'actalis.it', 'Y', '', 0), +(NULL, 1, 1, 'riud', 'riud', '', 'Y', 'Amazon', 'amazon.com', 'Y', '', 0), +(NULL, 1, 1, 'riud', 'riud', '', 'Y', 'Asseco', 'certum.pl', 'Y', '', 0), +(NULL, 1, 1, 'riud', 'riud', '', 'Y', 'Buypass', 'buypass.com', 'Y', '', 0), +(NULL, 1, 1, 'riud', 'riud', '', 'Y', 'CA Disig', 'disig.sk', 'Y', '', 0), +(NULL, 1, 1, 'riud', 'riud', '', 'Y', 'CATCert', 'aoc.cat', 'Y', '', 0), +(NULL, 1, 1, 'riud', 'riud', '', 'Y', 'Certinomis', 'www.certinomis.com', 'Y', '', 0), +(NULL, 1, 1, 'riud', 'riud', '', 'Y', 'Certizen', 'hongkongpost.gov.hk', 'Y', '', 0), +(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', 'Comodo', 'comodoca.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), +(NULL, 1, 1, 'riud', 'riud', '', 'Y', 'e-tugra', 'e-tugra.com', 'Y', '', 0), +(NULL, 1, 1, 'riud', 'riud', '', 'Y', 'EDICOM', 'edicomgroup.com', 'Y', '', 0), +(NULL, 1, 1, 'riud', 'riud', '', 'Y', 'Entrust', 'entrust.net', 'Y', '', 0), +(NULL, 1, 1, 'riud', 'riud', '', 'Y', 'Firmaprofesional', 'firmaprofesional.com', 'Y', '', 0), +(NULL, 1, 1, 'riud', 'riud', '', 'Y', 'FNMT', 'fnmt.es', 'Y', '', 0), +(NULL, 1, 1, 'riud', 'riud', '', 'Y', 'GlobalSign', 'globalsign.com', 'Y', '', 0), +(NULL, 1, 1, 'riud', 'riud', '', 'Y', 'GoDaddy', 'godaddy.com', 'Y', '', 0), +(NULL, 1, 1, 'riud', 'riud', '', 'Y', 'Google Trust Services', 'pki.goog', 'Y', '', 0), +(NULL, 1, 1, 'riud', 'riud', '', 'Y', 'GRCA', 'gca.nat.gov.tw', 'Y', '', 0), +(NULL, 1, 1, 'riud', 'riud', '', 'Y', 'HARICA', 'harica.gr', 'Y', '', 0), +(NULL, 1, 1, 'riud', 'riud', '', 'Y', 'IdenTrust', 'identrust.com', 'Y', '', 0), +(NULL, 1, 1, 'riud', 'riud', '', 'Y', 'Izenpe', 'izenpe.com', 'Y', '', 0), +(NULL, 1, 1, 'riud', 'riud', '', 'Y', 'Kamu SM', 'kamusm.gov.tr', 'Y', '', 0), +(NULL, 1, 1, 'riud', 'riud', '', 'Y', 'Let''s Encrypt', 'letsencrypt.org', 'Y', '', 0), +(NULL, 1, 1, 'riud', 'riud', '', 'Y', 'Microsec e-Szigno', 'e-szigno.hu', 'Y', '', 0), +(NULL, 1, 1, 'riud', 'riud', '', 'Y', 'NetLock', 'netlock.hu', 'Y', '', 0), +(NULL, 1, 1, 'riud', 'riud', '', 'Y', 'PKIoverheid', 'www.pkioverheid.nl', 'Y', '', 0), +(NULL, 1, 1, 'riud', 'riud', '', 'Y', 'PROCERT', 'procert.net.ve', 'Y', '', 0), +(NULL, 1, 1, 'riud', 'riud', '', 'Y', 'QuoVadis', 'quovadisglobal.com', 'Y', '', 0), +(NULL, 1, 1, 'riud', 'riud', '', 'Y', 'SECOM', 'secomtrust.net', 'Y', '', 0), +(NULL, 1, 1, 'riud', 'riud', '', 'Y', 'Sertifitseerimiskeskuse', 'sk.ee', 'Y', '', 0), +(NULL, 1, 1, 'riud', 'riud', '', 'Y', 'StartCom', 'startcomca.com', 'Y', '', 0), +(NULL, 1, 1, 'riud', 'riud', '', 'Y', 'SwissSign', 'swisssign.com', 'Y', '', 0), +(NULL, 1, 1, 'riud', 'riud', '', 'Y', 'Symantec / Thawte / GeoTrust', 'symantec.com', 'Y', '', 0), +(NULL, 1, 1, 'riud', 'riud', '', 'Y', 'T-Systems', 'telesec.de', 'Y', '', 0), +(NULL, 1, 1, 'riud', 'riud', '', 'Y', 'Telia', 'telia.com', 'Y', '', 0), +(NULL, 1, 1, 'riud', 'riud', '', 'Y', 'Trustwave', 'trustwave.com', 'Y', '', 0), +(NULL, 1, 1, 'riud', 'riud', '', 'Y', 'Web.com', 'web.com', 'Y', '', 0), +(NULL, 1, 1, 'riud', 'riud', '', 'Y', 'WISeKey', 'wisekey.com', 'Y', '', 0), +(NULL, 1, 1, 'riud', 'riud', '', 'Y', 'WoSign', 'wosign.com', 'Y', '', 0); + +-- -------------------------------------------------------- + -- -- Table structure for table `dns_soa` -- diff --git a/interface/lib/classes/plugin_system_config_dns_ca.inc.php b/interface/lib/classes/plugin_system_config_dns_ca.inc.php new file mode 100644 index 000000000..f53662d82 --- /dev/null +++ b/interface/lib/classes/plugin_system_config_dns_ca.inc.php @@ -0,0 +1,91 @@ +newTemplate('templates/system_config_dns_ca_edit.htm'); + include 'lib/lang/'.$_SESSION['s']['language'].'_system_config.lng'; + $pluginTpl->setVar($wb); + $ca_id = $app->functions->intval($_GET['id']); + if(isset($_GET['action']) && ($_GET['action'] == 'edit') && $ca_id > 0) { + $pluginTpl->setVar('edit_record', 1); + $rec = $app->db->queryOneRecord("SELECT * FROM dns_ssl_ca WHERE id = ?", $ca_id); + $pluginTpl->setVar('id', $rec['id']); + $pluginTpl->setVar('ca_name', $rec['ca_name']); + $pluginTpl->setVar('ca_issue', $rec['ca_issue']); + $pluginTpl->setVar('ca_wildcard', $rec['ca_wildcard']); + $pluginTpl->setVar('ca_critical', $rec['ca_critical']); + $pluginTpl->setVar('ca_iodef', $rec['ca_iodef']); + $pluginTpl->setVar('active', $rec['active']); + } elseif(isset($_GET['action']) && ($_GET['action'] == 'save') && $ca_id > 0) { + $pluginTpl->setVar('edit_record', 0); + $pluginTpl->setVar('id', $ca_id); + $pluginTpl->setVar('ca_name', $_POST['ca_name']); + $pluginTpl->setVar('ca_issue', $_POST['ca_issue']); + $pluginTpl->setVar('ca_wildcard', $_POST['ca_wildcard']); + $pluginTpl->setVar('ca_critical', $_POST['ca_critical']); + $pluginTpl->setVar('ca_iodef', $_POST['ca_iodef']); + $pluginTpl->setVar('active', $_POST['active']); + } else { + $pluginTpl->setVar('edit_record', 0); + } + + return $pluginTpl->grab(); + + } + + function onUpdate() { + global $app; + + $ca_id = $app->functions->intval($_GET['id']); + if(isset($_GET['action']) && $_GET['action'] == 'save') { + if($ca_id > 0) { + $app->db->query("UPDATE dns_ssl_ca SET ca_name = ?, ca_issue = ?, ca_wildcard = ?, ca_iodef = ?, active = ? WHERE id = ?", $_POST['ca_name'], $_POST['ca_issue'], $_POST['ca_wildcard'], $_POST['ca_iodef'], $_POST['active'], $ca_id); + } else { + $app->db->query("INSERT INTO (sys_userid, sys_groupid, sys_perm_user, sys_perm_group, sys_perm_other, ca_name, ca_issue, ca_wildcard, ca_iodef, active) VALUES(1, 1, 'riud', 'riud', '', ?, ?, ?, ?, ?", $_POST['ca_name'], $_POST['ca_issue'], $_POST['ca_wildcard'], $_POST['ca_iodef'], $_POST['active']); + } + } + } + +} + +?> diff --git a/interface/lib/classes/plugin_system_config_dns_ca_list.inc.php b/interface/lib/classes/plugin_system_config_dns_ca_list.inc.php new file mode 100644 index 000000000..eb5882bd3 --- /dev/null +++ b/interface/lib/classes/plugin_system_config_dns_ca_list.inc.php @@ -0,0 +1,81 @@ +newTemplate('templates/system_config_dns_ca_list.htm'); + + //* Loading language file + $lng_file = 'lib/lang/'.$_SESSION['s']['language'].'_system_config.lng'; + include $lng_file; + $listTpl->setVar($wb); + if($_SESSION['s']['user']['typ'] == 'admin') { + if(isset($_GET['action'])) { + $ca_id = $app->functions->intval($_GET['id']); + if($_GET['action'] == 'delete' && $ca_id > 0) { + $app->db->query("DELETE FROM dns_ssl_ca WHERE id = ?", $ca_id); + } + } + } + + if(isset($_GET['action']) && $_GET['action'] == 'edit' && $_GET['id'] > 0) $listTpl->setVar('edit_record', 1); + + // Getting Datasets from DB + $ca_records = $app->db->queryAllRecords("SELECT * FROM dns_ssl_ca ORDER BY ca_name ASC"); + $records=array(); + if(is_array($ca_records) && count($ca_records) > 0) { + foreach($ca_records as $ca) { + $rec['ca_id'] = $ca['id']; + $rec['name'] = $ca['ca_name']; + $rec['active'] = $ca['active']; + $records[] = $rec; + unset($rec); + } + $listTpl->setLoop('ca_records', @$records); + } + $listTpl->setVar('parent_id', $this->form->id); + + return $listTpl->grab(); + } + +} + +?> diff --git a/interface/lib/plugins/system_config_dns_ca_plugin.inc.php b/interface/lib/plugins/system_config_dns_ca_plugin.inc.php new file mode 100644 index 000000000..c35934e5b --- /dev/null +++ b/interface/lib/plugins/system_config_dns_ca_plugin.inc.php @@ -0,0 +1,103 @@ +plugin->registerEvent('dns:dns_caa:on_after_update', 'system_config_dns_ca_plugin', 'caa_update'); + $app->plugin->registerEvent('dns:dns_caa:on_after_insert', 'system_config_dns_ca_plugin', 'caa_update'); + + $app->plugin->registerEvent('sites:web_vhost_domain:on_after_insert', 'system_config_dns_ca_plugin', 'web_vhost_domain_edit'); + $app->plugin->registerEvent('sites:web_vhost_domain:on_after_update', 'system_config_dns_ca_plugin', 'web_vhost_domain_edit'); + } + + function caa_update($event_name, $page_form) { + global $app; + + if(trim($page_form->dataRecord['additional'] != '')) { + $rec = $app->db->queryOneRecord("SELECT * FROM dns_rr WHERE id = ?", $page_form->id); + unset($rec['id']); + $zone = $app->db->queryOneRecord("SELECT origin FROM dns_soa WHERE id = ?", $rec['zone']); + $host=str_replace($zone['origin'], '', $page_form->dataRecord['name']); + $host=rtrim($host,'.'); + $page_form->dataRecord['additional']=str_replace($host, '', $page_form->dataRecord['additional']); + $additional=explode(',', $page_form->dataRecord['additional']); + foreach($additional as $new) { + if($new != '') { + $insert_data = $rec; + $insert_data['name'] = $new.'.'.$zone['origin']; + $app->db->datalogInsert('dns_rr', $insert_data, 'id'); + } + } + } + } + + function web_vhost_domain_edit($event_name, $page_form) { + global $app; + + if($page_form->dataRecord['ssl_letsencrypt'] == 'y') { + $domain = $page_form->dataRecord['domain']; + $subdomain = $page_form->dataRecord['subdomain']; + $temp=$app->db->queryAllRecords("SELECT * FROM dns_rr WHERE type = 'CAA' AND (name = ? OR name = ?) AND data like ?", $domain.'.', $subdomain.'.'.$domain.'.', '%letsencrypt%'); + if(count($temp) == 0) { + $caa = $app->db->queryOneRecord("SELECT * FROM dns_ssl_ca WHERE ca_issue = 'letsencrypt.org' AND active = 'Y'"); + $soa = $app->db->queryOneRecord("SELECT * FROM dns_soa WHERE origin = ?", $domain.'.'); + if(is_array($caa) && is_array($soa)) { + $records = array(); + $records[] = $domain.'.';; + if($subdomain != '' && $subdomain != 'www') $records[] = $subdomain.'.'.$domain; + foreach($records as $record) { + $new_rr = $app->db->queryOneRecord("SELECT * FROM dns_rr WHERE name = ?", $soa['origin']); + unset($new_rr['id']); + $new_rr['type'] = 'CAA'; + $new_rr['name'] = $record; + $new_rr['data'] = "0 issue \"$caa[ca_issue]\""; + $new_rr['ttl'] = $soa['ttl']; + $new_rr['active'] = 'Y'; + $new_rr['stamp'] = date('Y-m-d H:i:s'); + $new_rr['serial'] = $app->validate_dns->increase_serial($new_rr['serial']); + $app->db->datalogInsert('dns_rr', $new_rr, 'id', $new_rr['zone']); + $zone = $app->db->queryOneRecord("SELECT id, serial FROM dns_soa WHERE active = 'Y' AND id = ?", $new_rr['zone']); + $new_serial = $app->validate_dns->increase_serial($zone['serial']); + $app->db->datalogUpdate('dns_soa', array("serial" => $new_serial), 'id', $zone['id']); + } + } + } + } + } + +} // End class + +?> diff --git a/interface/web/admin/form/system_config.tform.php b/interface/web/admin/form/system_config.tform.php index 449805f3c..d718e4ef8 100644 --- a/interface/web/admin/form/system_config.tform.php +++ b/interface/web/admin/form/system_config.tform.php @@ -730,5 +730,21 @@ $form["tabs"]['misc'] = array ( ) ); +$form['tabs']['dns_ca'] = array ( + 'title' => 'DNS CAs', + 'width' => 100, + 'template' => 'templates/system_config_dns_ca.htm', + 'fields' => array (), + 'plugins' => array ( + 'dns_ca' => array ( + 'class' => 'plugin_system_config_dns_ca', + 'options' => array() + ), + 'dns_ca_list' => array ( + 'class' => 'plugin_system_config_dns_ca_list', + 'options' => array() + ) + ) +); ?> diff --git a/interface/web/admin/lib/lang/ar_system_config.lng b/interface/web/admin/lib/lang/ar_system_config.lng index 45fb0fa9e..6bebcf39a 100644 --- a/interface/web/admin/lib/lang/ar_system_config.lng +++ b/interface/web/admin/lib/lang/ar_system_config.lng @@ -81,4 +81,12 @@ $wb['default_webserver_txt'] = 'Default Webserver'; $wb['default_dnsserver_txt'] = 'Default DNS Server'; $wb['default_slave_dnsserver_txt'] = 'Default Secondary DNS Server'; $wb['default_dbserver_txt'] = 'Default Database Server'; +$wb['ca_name_txt'] = 'Name'; +$wb['ca_issue_txt'] = 'Issue'; +$wb['ca_wildcard_txt'] = 'Use Wildcard'; +$wb['ca_critical_txt'] = 'Strict Check'; //For future use. At this time, CA’s do not recognize any other flag values as described in RFC 6844 +$wb['ca_iodef_txt'] = 'iodef'; +$wb['active_txt'] = 'Aktive'; +$wb['btn_save_txt'] = 'Save'; +$wb['btn_cancel_txt'] = 'Cancel'; ?> diff --git a/interface/web/admin/lib/lang/bg_system_config.lng b/interface/web/admin/lib/lang/bg_system_config.lng index 2f4eb86d3..8c3444e9c 100644 --- a/interface/web/admin/lib/lang/bg_system_config.lng +++ b/interface/web/admin/lib/lang/bg_system_config.lng @@ -81,4 +81,12 @@ $wb['default_webserver_txt'] = 'Default Webserver'; $wb['default_dnsserver_txt'] = 'Default DNS Server'; $wb['default_slave_dnsserver_txt'] = 'Default Secondary DNS Server'; $wb['default_dbserver_txt'] = 'Default Database Server'; +$wb['ca_name_txt'] = 'Name'; +$wb['ca_issue_txt'] = 'Issue'; +$wb['ca_wildcard_txt'] = 'Use Wildcard'; +$wb['ca_critical_txt'] = 'Strict Check'; //For future use. At this time, CA’s do not recognize any other flag values as described in RFC 6844 +$wb['ca_iodef_txt'] = 'iodef'; +$wb['active_txt'] = 'Aktive'; +$wb['btn_save_txt'] = 'Save'; +$wb['btn_cancel_txt'] = 'Cancel'; ?> diff --git a/interface/web/admin/lib/lang/br_system_config.lng b/interface/web/admin/lib/lang/br_system_config.lng index 02e3249d5..887dffb6e 100644 --- a/interface/web/admin/lib/lang/br_system_config.lng +++ b/interface/web/admin/lib/lang/br_system_config.lng @@ -1,6 +1,6 @@ diff --git a/interface/web/admin/lib/lang/ca_system_config.lng b/interface/web/admin/lib/lang/ca_system_config.lng index 5809cc97b..ff46470f5 100644 --- a/interface/web/admin/lib/lang/ca_system_config.lng +++ b/interface/web/admin/lib/lang/ca_system_config.lng @@ -81,4 +81,12 @@ $wb['reseller_can_use_options_txt'] = 'Reseller can use the option-tab for websi $wb['custom_login_text_txt'] = 'Custom Text on Login-Page'; $wb['custom_login_link_txt'] = 'Custom Link on Login-Page'; $wb['login_link_error_regex'] = 'Invalid Link for Custom Login'; +$wb['ca_name_txt'] = 'Name'; +$wb['ca_issue_txt'] = 'Issue'; +$wb['ca_wildcard_txt'] = 'Use Wildcard'; +$wb['ca_critical_txt'] = 'Strict Check'; //For future use. At this time, CA’s do not recognize any other flag values as described in RFC 6844 +$wb['ca_iodef_txt'] = 'iodef'; +$wb['active_txt'] = 'Aktive'; +$wb['btn_save_txt'] = 'Save'; +$wb['btn_cancel_txt'] = 'Cancel'; ?> diff --git a/interface/web/admin/lib/lang/cz_system_config.lng b/interface/web/admin/lib/lang/cz_system_config.lng index 930e3ebbf..4f0468833 100644 --- a/interface/web/admin/lib/lang/cz_system_config.lng +++ b/interface/web/admin/lib/lang/cz_system_config.lng @@ -81,4 +81,12 @@ $wb['reseller_can_use_options_txt'] = 'Reseller can use the option-tab for websi $wb['custom_login_text_txt'] = 'Vlastní text na přihlašovací stránce'; $wb['custom_login_link_txt'] = 'Vlastní odkaz (URL) na přihlašovací stránce (vlastní text)'; $wb['login_link_error_regex'] = 'Neplatný formát URL pro vlastní odkaz na přihlašovací stránce'; +$wb['ca_name_txt'] = 'Name'; +$wb['ca_issue_txt'] = 'Issue'; +$wb['ca_wildcard_txt'] = 'Use Wildcard'; +$wb['ca_critical_txt'] = 'Strict Check'; //For future use. At this time, CA’s do not recognize any other flag values as described in RFC 6844 +$wb['ca_iodef_txt'] = 'iodef'; +$wb['active_txt'] = 'Aktive'; +$wb['btn_save_txt'] = 'Save'; +$wb['btn_cancel_txt'] = 'Cancel'; ?> diff --git a/interface/web/admin/lib/lang/de_system_config.lng b/interface/web/admin/lib/lang/de_system_config.lng index 8620491ad..683291b1f 100644 --- a/interface/web/admin/lib/lang/de_system_config.lng +++ b/interface/web/admin/lib/lang/de_system_config.lng @@ -81,4 +81,14 @@ $wb['default_webserver_txt'] = 'Default Webserver'; $wb['default_dnsserver_txt'] = 'Default DNS Server'; $wb['default_slave_dnsserver_txt'] = 'Default Secondary DNS Server'; $wb['default_dbserver_txt'] = 'Default Database Server'; + + +$wb['ca_name_txt'] = 'Name'; +$wb['ca_issue_txt'] = 'Issue'; +$wb['ca_wildcard_txt'] = 'Wildcard verwenden'; +$wb['ca_critical_txt'] = 'Strikte Überprüfung'; //For future use. At this time, CA’s do not recognize any other flag values as described in RFC 6844 +$wb['ca_iodef_txt'] = 'iodef'; +$wb['active_txt'] = 'Aktiv'; +$wb['btn_save_txt'] = 'Speichern'; +$wb['btn_cancel_txt'] = 'Abbrechen'; ?> diff --git a/interface/web/admin/lib/lang/dk_system_config.lng b/interface/web/admin/lib/lang/dk_system_config.lng index 2834cacad..5e96639d2 100644 --- a/interface/web/admin/lib/lang/dk_system_config.lng +++ b/interface/web/admin/lib/lang/dk_system_config.lng @@ -81,4 +81,12 @@ $wb['reseller_can_use_options_txt'] = 'Reseller can use the option-tab for websi $wb['custom_login_text_txt'] = 'Custom Text on Login-Page'; $wb['custom_login_link_txt'] = 'Custom Link on Login-Page'; $wb['login_link_error_regex'] = 'Invalid Link for Custom Login'; +$wb['ca_name_txt'] = 'Name'; +$wb['ca_issue_txt'] = 'Issue'; +$wb['ca_wildcard_txt'] = 'Use Wildcard'; +$wb['ca_critical_txt'] = 'Strict Check'; //For future use. At this time, CA’s do not recognize any other flag values as described in RFC 6844 +$wb['ca_iodef_txt'] = 'iodef'; +$wb['active_txt'] = 'Aktive'; +$wb['btn_save_txt'] = 'Save'; +$wb['btn_cancel_txt'] = 'Cancel'; ?> diff --git a/interface/web/admin/lib/lang/el_system_config.lng b/interface/web/admin/lib/lang/el_system_config.lng index 4dadc1290..0191eb85e 100644 --- a/interface/web/admin/lib/lang/el_system_config.lng +++ b/interface/web/admin/lib/lang/el_system_config.lng @@ -81,4 +81,12 @@ $wb['default_webserver_txt'] = 'Default Webserver'; $wb['default_dnsserver_txt'] = 'Default DNS Server'; $wb['default_slave_dnsserver_txt'] = 'Default Secondary DNS Server'; $wb['default_dbserver_txt'] = 'Default Database Server'; +$wb['ca_name_txt'] = 'Name'; +$wb['ca_issue_txt'] = 'Issue'; +$wb['ca_wildcard_txt'] = 'Use Wildcard'; +$wb['ca_critical_txt'] = 'Strict Check'; //For future use. At this time, CA’s do not recognize any other flag values as described in RFC 6844 +$wb['ca_iodef_txt'] = 'iodef'; +$wb['active_txt'] = 'Aktive'; +$wb['btn_save_txt'] = 'Save'; +$wb['btn_cancel_txt'] = 'Cancel'; ?> diff --git a/interface/web/admin/lib/lang/en_system_config.lng b/interface/web/admin/lib/lang/en_system_config.lng index 38f178f9f..29732e416 100644 --- a/interface/web/admin/lib/lang/en_system_config.lng +++ b/interface/web/admin/lib/lang/en_system_config.lng @@ -84,4 +84,12 @@ $wb["reseller_can_use_options_txt"] = "Reseller can use the option-tab for websi $wb["custom_login_text_txt"] = "Custom Text on Login-Page"; $wb["custom_login_link_txt"] = "Custom Link on Login-Page"; $wb["login_link_error_regex"] = "Invalid Link for Custom Login"; +$wb['ca_name_txt'] = 'Name'; +$wb['ca_issue_txt'] = 'Issue'; +$wb['ca_wildcard_txt'] = 'Use Wildcard'; +$wb['ca_critical_txt'] = 'Strict Check'; //For future use. At this time, CA’s do not recognize any other flag values as described in RFC 6844 +$wb['ca_iodef_txt'] = 'iodef'; +$wb['active_txt'] = 'Active'; +$wb['btn_save_txt'] = 'Save'; +$wb['btn_cancel_txt'] = 'Cancel'; ?> diff --git a/interface/web/admin/lib/lang/es_system_config.lng b/interface/web/admin/lib/lang/es_system_config.lng index cc81939cb..21575571f 100755 --- a/interface/web/admin/lib/lang/es_system_config.lng +++ b/interface/web/admin/lib/lang/es_system_config.lng @@ -81,4 +81,12 @@ $wb['webftp_url_txt'] = 'Enlace al cliente FTP por web'; $wb['webmail_url_error_regex'] = 'Dirección del correo web inválida'; $wb['webmail_url_note_txt'] = 'Marcador de posición:'; $wb['webmail_url_txt'] = 'URL de correo web'; +$wb['ca_name_txt'] = 'Name'; +$wb['ca_issue_txt'] = 'Issue'; +$wb['ca_wildcard_txt'] = 'Use Wildcard'; +$wb['ca_critical_txt'] = 'Strict Check'; //For future use. At this time, CA’s do not recognize any other flag values as described in RFC 6844 +$wb['ca_iodef_txt'] = 'iodef'; +$wb['active_txt'] = 'Aktive'; +$wb['btn_save_txt'] = 'Save'; +$wb['btn_cancel_txt'] = 'Cancel'; ?> diff --git a/interface/web/admin/lib/lang/fi_system_config.lng b/interface/web/admin/lib/lang/fi_system_config.lng index c4987d01a..7fe364c97 100644 --- a/interface/web/admin/lib/lang/fi_system_config.lng +++ b/interface/web/admin/lib/lang/fi_system_config.lng @@ -81,4 +81,12 @@ $wb['default_webserver_txt'] = 'Default Webserver'; $wb['default_dnsserver_txt'] = 'Default DNS Server'; $wb['default_slave_dnsserver_txt'] = 'Default Secondary DNS Server'; $wb['default_dbserver_txt'] = 'Default Database Server'; +$wb['ca_name_txt'] = 'Name'; +$wb['ca_issue_txt'] = 'Issue'; +$wb['ca_wildcard_txt'] = 'Use Wildcard'; +$wb['ca_critical_txt'] = 'Strict Check'; //For future use. At this time, CA’s do not recognize any other flag values as described in RFC 6844 +$wb['ca_iodef_txt'] = 'iodef'; +$wb['active_txt'] = 'Aktive'; +$wb['btn_save_txt'] = 'Save'; +$wb['btn_cancel_txt'] = 'Cancel'; ?> diff --git a/interface/web/admin/lib/lang/fr_system_config.lng b/interface/web/admin/lib/lang/fr_system_config.lng index 5892e3a26..0d9d27d14 100644 --- a/interface/web/admin/lib/lang/fr_system_config.lng +++ b/interface/web/admin/lib/lang/fr_system_config.lng @@ -81,4 +81,12 @@ $wb['reseller_can_use_options_txt'] = 'Reseller can use the option-tab for websi $wb['custom_login_text_txt'] = 'Custom Text on Login-Page'; $wb['custom_login_link_txt'] = 'Custom Link on Login-Page'; $wb['login_link_error_regex'] = 'Invalid Link for Custom Login'; +$wb['ca_name_txt'] = 'Name'; +$wb['ca_issue_txt'] = 'Issue'; +$wb['ca_wildcard_txt'] = 'Use Wildcard'; +$wb['ca_critical_txt'] = 'Strict Check'; //For future use. At this time, CA’s do not recognize any other flag values as described in RFC 6844 +$wb['ca_iodef_txt'] = 'iodef'; +$wb['active_txt'] = 'Aktive'; +$wb['btn_save_txt'] = 'Save'; +$wb['btn_cancel_txt'] = 'Cancel'; ?> diff --git a/interface/web/admin/lib/lang/hr_system_config.lng b/interface/web/admin/lib/lang/hr_system_config.lng index e02ae57a2..ba926e3a7 100644 --- a/interface/web/admin/lib/lang/hr_system_config.lng +++ b/interface/web/admin/lib/lang/hr_system_config.lng @@ -81,4 +81,12 @@ $wb['default_webserver_txt'] = 'Default Webserver'; $wb['default_dnsserver_txt'] = 'Default DNS Server'; $wb['default_slave_dnsserver_txt'] = 'Default Secondary DNS Server'; $wb['default_dbserver_txt'] = 'Default Database Server'; +$wb['ca_name_txt'] = 'Name'; +$wb['ca_issue_txt'] = 'Issue'; +$wb['ca_wildcard_txt'] = 'Use Wildcard'; +$wb['ca_critical_txt'] = 'Strict Check'; //For future use. At this time, CA’s do not recognize any other flag values as described in RFC 6844 +$wb['ca_iodef_txt'] = 'iodef'; +$wb['active_txt'] = 'Aktive'; +$wb['btn_save_txt'] = 'Save'; +$wb['btn_cancel_txt'] = 'Cancel'; ?> diff --git a/interface/web/admin/lib/lang/hu_system_config.lng b/interface/web/admin/lib/lang/hu_system_config.lng index d26fc5be2..9944f68b7 100644 --- a/interface/web/admin/lib/lang/hu_system_config.lng +++ b/interface/web/admin/lib/lang/hu_system_config.lng @@ -81,4 +81,12 @@ $wb['default_webserver_txt'] = 'Default Webserver'; $wb['default_dnsserver_txt'] = 'Default DNS Server'; $wb['default_slave_dnsserver_txt'] = 'Default Secondary DNS Server'; $wb['default_dbserver_txt'] = 'Default Database Server'; +$wb['ca_name_txt'] = 'Name'; +$wb['ca_issue_txt'] = 'Issue'; +$wb['ca_wildcard_txt'] = 'Use Wildcard'; +$wb['ca_critical_txt'] = 'Strict Check'; //For future use. At this time, CA’s do not recognize any other flag values as described in RFC 6844 +$wb['ca_iodef_txt'] = 'iodef'; +$wb['active_txt'] = 'Aktive'; +$wb['btn_save_txt'] = 'Save'; +$wb['btn_cancel_txt'] = 'Cancel'; ?> diff --git a/interface/web/admin/lib/lang/id_system_config.lng b/interface/web/admin/lib/lang/id_system_config.lng index c865dff3d..65c176835 100644 --- a/interface/web/admin/lib/lang/id_system_config.lng +++ b/interface/web/admin/lib/lang/id_system_config.lng @@ -81,4 +81,12 @@ $wb['default_webserver_txt'] = 'Default Webserver'; $wb['default_dnsserver_txt'] = 'Default DNS Server'; $wb['default_slave_dnsserver_txt'] = 'Default Secondary DNS Server'; $wb['default_dbserver_txt'] = 'Default Database Server'; +$wb['ca_name_txt'] = 'Name'; +$wb['ca_issue_txt'] = 'Issue'; +$wb['ca_wildcard_txt'] = 'Use Wildcard'; +$wb['ca_critical_txt'] = 'Strict Check'; //For future use. At this time, CA’s do not recognize any other flag values as described in RFC 6844 +$wb['ca_iodef_txt'] = 'iodef'; +$wb['active_txt'] = 'Aktive'; +$wb['btn_save_txt'] = 'Save'; +$wb['btn_cancel_txt'] = 'Cancel'; ?> diff --git a/interface/web/admin/lib/lang/it_system_config.lng b/interface/web/admin/lib/lang/it_system_config.lng index 396503f02..e3c4fcaae 100644 --- a/interface/web/admin/lib/lang/it_system_config.lng +++ b/interface/web/admin/lib/lang/it_system_config.lng @@ -81,4 +81,12 @@ $wb['reseller_can_use_options_txt'] = 'Reseller can use the option-tab for websi $wb['custom_login_text_txt'] = 'Custom Text on Login-Page'; $wb['custom_login_link_txt'] = 'Custom Link on Login-Page'; $wb['login_link_error_regex'] = 'Invalid Link for Custom Login'; +$wb['ca_name_txt'] = 'Name'; +$wb['ca_issue_txt'] = 'Issue'; +$wb['ca_wildcard_txt'] = 'Use Wildcard'; +$wb['ca_critical_txt'] = 'Strict Check'; //For future use. At this time, CA’s do not recognize any other flag values as described in RFC 6844 +$wb['ca_iodef_txt'] = 'iodef'; +$wb['active_txt'] = 'Aktive'; +$wb['btn_save_txt'] = 'Save'; +$wb['btn_cancel_txt'] = 'Cancel'; ?> diff --git a/interface/web/admin/lib/lang/ja_system_config.lng b/interface/web/admin/lib/lang/ja_system_config.lng index fc32081d9..ce16ad15b 100644 --- a/interface/web/admin/lib/lang/ja_system_config.lng +++ b/interface/web/admin/lib/lang/ja_system_config.lng @@ -81,4 +81,12 @@ $wb['default_webserver_txt'] = 'Default Webserver'; $wb['default_dnsserver_txt'] = 'Default DNS Server'; $wb['default_slave_dnsserver_txt'] = 'Default Secondary DNS Server'; $wb['default_dbserver_txt'] = 'Default Database Server'; +$wb['ca_name_txt'] = 'Name'; +$wb['ca_issue_txt'] = 'Issue'; +$wb['ca_wildcard_txt'] = 'Use Wildcard'; +$wb['ca_critical_txt'] = 'Strict Check'; //For future use. At this time, CA’s do not recognize any other flag values as described in RFC 6844 +$wb['ca_iodef_txt'] = 'iodef'; +$wb['active_txt'] = 'Aktive'; +$wb['btn_save_txt'] = 'Save'; +$wb['btn_cancel_txt'] = 'Cancel'; ?> diff --git a/interface/web/admin/lib/lang/nl_system_config.lng b/interface/web/admin/lib/lang/nl_system_config.lng index 5177888bb..20df45f2b 100644 --- a/interface/web/admin/lib/lang/nl_system_config.lng +++ b/interface/web/admin/lib/lang/nl_system_config.lng @@ -81,4 +81,12 @@ $wb['default_webserver_txt'] = 'Default Webserver'; $wb['default_dnsserver_txt'] = 'Default DNS Server'; $wb['default_slave_dnsserver_txt'] = 'Default Secondary DNS Server'; $wb['default_dbserver_txt'] = 'Default Database Server'; +$wb['ca_name_txt'] = 'Name'; +$wb['ca_issue_txt'] = 'Issue'; +$wb['ca_wildcard_txt'] = 'Use Wildcard'; +$wb['ca_critical_txt'] = 'Strict Check'; //For future use. At this time, CA’s do not recognize any other flag values as described in RFC 6844 +$wb['ca_iodef_txt'] = 'iodef'; +$wb['active_txt'] = 'Aktive'; +$wb['btn_save_txt'] = 'Save'; +$wb['btn_cancel_txt'] = 'Cancel'; ?> diff --git a/interface/web/admin/lib/lang/pl_system_config.lng b/interface/web/admin/lib/lang/pl_system_config.lng index cea6345e6..1c51b949a 100644 --- a/interface/web/admin/lib/lang/pl_system_config.lng +++ b/interface/web/admin/lib/lang/pl_system_config.lng @@ -81,4 +81,12 @@ $wb['default_webserver_txt'] = 'Default Webserver'; $wb['default_dnsserver_txt'] = 'Default DNS Server'; $wb['default_slave_dnsserver_txt'] = 'Default Secondary DNS Server'; $wb['default_dbserver_txt'] = 'Default Database Server'; +$wb['ca_name_txt'] = 'Name'; +$wb['ca_issue_txt'] = 'Issue'; +$wb['ca_wildcard_txt'] = 'Use Wildcard'; +$wb['ca_critical_txt'] = 'Strict Check'; //For future use. At this time, CA’s do not recognize any other flag values as described in RFC 6844 +$wb['ca_iodef_txt'] = 'iodef'; +$wb['active_txt'] = 'Aktive'; +$wb['btn_save_txt'] = 'Save'; +$wb['btn_cancel_txt'] = 'Cancel'; ?> diff --git a/interface/web/admin/lib/lang/pt_system_config.lng b/interface/web/admin/lib/lang/pt_system_config.lng index 24ff94fca..4a28e49a7 100644 --- a/interface/web/admin/lib/lang/pt_system_config.lng +++ b/interface/web/admin/lib/lang/pt_system_config.lng @@ -81,4 +81,12 @@ $wb['default_webserver_txt'] = 'Default Webserver'; $wb['default_dnsserver_txt'] = 'Default DNS Server'; $wb['default_slave_dnsserver_txt'] = 'Default Secondary DNS Server'; $wb['default_dbserver_txt'] = 'Default Database Server'; +$wb['ca_name_txt'] = 'Name'; +$wb['ca_issue_txt'] = 'Issue'; +$wb['ca_wildcard_txt'] = 'Use Wildcard'; +$wb['ca_critical_txt'] = 'Strict Check'; //For future use. At this time, CA’s do not recognize any other flag values as described in RFC 6844 +$wb['ca_iodef_txt'] = 'iodef'; +$wb['active_txt'] = 'Aktive'; +$wb['btn_save_txt'] = 'Save'; +$wb['btn_cancel_txt'] = 'Cancel'; ?> diff --git a/interface/web/admin/lib/lang/ro_system_config.lng b/interface/web/admin/lib/lang/ro_system_config.lng index b258ee187..efbc6bf26 100644 --- a/interface/web/admin/lib/lang/ro_system_config.lng +++ b/interface/web/admin/lib/lang/ro_system_config.lng @@ -81,4 +81,12 @@ $wb['default_webserver_txt'] = 'Default Webserver'; $wb['default_dnsserver_txt'] = 'Default DNS Server'; $wb['default_slave_dnsserver_txt'] = 'Default Secondary DNS Server'; $wb['default_dbserver_txt'] = 'Default Database Server'; +$wb['ca_name_txt'] = 'Name'; +$wb['ca_issue_txt'] = 'Issue'; +$wb['ca_wildcard_txt'] = 'Use Wildcard'; +$wb['ca_critical_txt'] = 'Strict Check'; //For future use. At this time, CA’s do not recognize any other flag values as described in RFC 6844 +$wb['ca_iodef_txt'] = 'iodef'; +$wb['active_txt'] = 'Aktive'; +$wb['btn_save_txt'] = 'Save'; +$wb['btn_cancel_txt'] = 'Cancel'; ?> diff --git a/interface/web/admin/lib/lang/ru_system_config.lng b/interface/web/admin/lib/lang/ru_system_config.lng index c1909f3ba..33f62e116 100644 --- a/interface/web/admin/lib/lang/ru_system_config.lng +++ b/interface/web/admin/lib/lang/ru_system_config.lng @@ -1,4 +1,5 @@ diff --git a/interface/web/admin/lib/lang/se_system_config.lng b/interface/web/admin/lib/lang/se_system_config.lng index 285f7807e..c9ccca89e 100644 --- a/interface/web/admin/lib/lang/se_system_config.lng +++ b/interface/web/admin/lib/lang/se_system_config.lng @@ -81,4 +81,12 @@ $wb['default_webserver_txt'] = 'Default Webserver'; $wb['default_dnsserver_txt'] = 'Default DNS Server'; $wb['default_slave_dnsserver_txt'] = 'Default Secondary DNS Server'; $wb['default_dbserver_txt'] = 'Default Database Server'; +$wb['ca_name_txt'] = 'Name'; +$wb['ca_issue_txt'] = 'Issue'; +$wb['ca_wildcard_txt'] = 'Use Wildcard'; +$wb['ca_critical_txt'] = 'Strict Check'; //For future use. At this time, CA’s do not recognize any other flag values as described in RFC 6844 +$wb['ca_iodef_txt'] = 'iodef'; +$wb['active_txt'] = 'Aktive'; +$wb['btn_save_txt'] = 'Save'; +$wb['btn_cancel_txt'] = 'Cancel'; ?> diff --git a/interface/web/admin/lib/lang/sk_system_config.lng b/interface/web/admin/lib/lang/sk_system_config.lng index be8789a80..fdeb1648c 100644 --- a/interface/web/admin/lib/lang/sk_system_config.lng +++ b/interface/web/admin/lib/lang/sk_system_config.lng @@ -81,4 +81,12 @@ $wb['default_webserver_txt'] = 'Default Webserver'; $wb['default_dnsserver_txt'] = 'Default DNS Server'; $wb['default_slave_dnsserver_txt'] = 'Default Secondary DNS Server'; $wb['default_dbserver_txt'] = 'Default Database Server'; +$wb['ca_name_txt'] = 'Name'; +$wb['ca_issue_txt'] = 'Issue'; +$wb['ca_wildcard_txt'] = 'Use Wildcard'; +$wb['ca_critical_txt'] = 'Strict Check'; //For future use. At this time, CA’s do not recognize any other flag values as described in RFC 6844 +$wb['ca_iodef_txt'] = 'iodef'; +$wb['active_txt'] = 'Aktive'; +$wb['btn_save_txt'] = 'Save'; +$wb['btn_cancel_txt'] = 'Cancel'; ?> diff --git a/interface/web/admin/lib/lang/tr_system_config.lng b/interface/web/admin/lib/lang/tr_system_config.lng index 8f5bef0e4..18657743e 100644 --- a/interface/web/admin/lib/lang/tr_system_config.lng +++ b/interface/web/admin/lib/lang/tr_system_config.lng @@ -81,4 +81,12 @@ $wb['reseller_can_use_options_txt'] = 'Reseller can use the option-tab for websi $wb['custom_login_text_txt'] = 'Custom Text on Login-Page'; $wb['custom_login_link_txt'] = 'Custom Link on Login-Page'; $wb['login_link_error_regex'] = 'Invalid Link for Custom Login'; +$wb['ca_name_txt'] = 'Name'; +$wb['ca_issue_txt'] = 'Issue'; +$wb['ca_wildcard_txt'] = 'Use Wildcard'; +$wb['ca_critical_txt'] = 'Strict Check'; //For future use. At this time, CA’s do not recognize any other flag values as described in RFC 6844 +$wb['ca_iodef_txt'] = 'iodef'; +$wb['active_txt'] = 'Aktive'; +$wb['btn_save_txt'] = 'Save'; +$wb['btn_cancel_txt'] = 'Cancel'; ?> diff --git a/interface/web/dns/ajax_get_json.php b/interface/web/dns/ajax_get_json.php index c2da4dce6..b2c381f3e 100644 --- a/interface/web/dns/ajax_get_json.php +++ b/interface/web/dns/ajax_get_json.php @@ -35,6 +35,7 @@ require_once '../../lib/app.inc.php'; $app->auth->check_module_permissions('dns'); $type = $_GET["type"]; +$ca_id = $_GET['ca_id']; if($type == 'get_ipv4'){ $result = array(); @@ -54,6 +55,17 @@ if($type == 'get_ipv6'){ $json = $app->functions->json_encode($result); } +if($type == 'ca_wildcard'){ + $json = '{'; + $json .= '"ca_wildcard":"'; + $tmp = $app->db->queryOneRecord("SELECT ca_wildcard, ca_issue, ca_critical FROM dns_ssl_ca WHERE id = ?", $ca_id); + $json .= $tmp['ca_wildcard'].'"'; + $json .= ',"ca_issue":"'.$tmp['ca_issue'].'"'; + $json .= ',"ca_critical":"'.$tmp['ca_critical'].'"'; + unset($tmp); + $json .= '}'; +} + header('Content-type: application/json'); echo $json; ?> diff --git a/interface/web/dns/dns_caa_edit.php b/interface/web/dns/dns_caa_edit.php new file mode 100644 index 000000000..c3d861841 --- /dev/null +++ b/interface/web/dns/dns_caa_edit.php @@ -0,0 +1,222 @@ +auth->check_module_permissions('dns'); + +// Loading classes +$app->uses('tpl,tform,tform_actions,validate_dns'); +$app->load('tform_actions'); + +class page_action extends tform_actions { + + function onShowNew() { + global $app; + // we will check only users, not admins + if($_SESSION['s']['user']['typ'] == 'user') { + // Get the limits of the client + $client_group_id = intval($_SESSION['s']['user']['default_group']); + $client = $app->db->queryOneRecord("SELECT limit_dns_record FROM sys_group, client WHERE sys_group.client_id = client.client_id and sys_group.groupid = ?", $client_group_id); + + // Check if the user may add another record. + if($client['limit_dns_record'] >= 0) { + $tmp = $app->db->queryOneRecord("SELECT count(id) as number FROM dns_rr WHERE sys_groupid = ?", $client_group_id); + if($tmp['number'] >= $client['limit_dns_record']) { + $app->error($app->tform->wordbook['limit_dns_record_txt']); + } + } + } + + parent::onShowNew(); + } + + function onShowEnd() { + global $app; + + $zone = @(!isset($this->dataRecord['zone']))?$app->functions->intval($_GET['zone']):$this->dataRecord['zone']; + + // get domain-name + $sql = "SELECT * FROM dns_soa WHERE id = ? AND " . $app->tform->getAuthSQL('r'); + $soa = $app->db->queryOneRecord($sql, $zone); + $domain_name = rtrim($soa['origin'], '.'); + $app->tpl->setVar('name', $domain_name); + if($this->id > 0) { + $temp = $this->dataRecord['name']; + $temp = str_replace($soa['origin'], '', $this->dataRecord['name']); + $temp = trim($temp,'.'); + if(trim($temp != '')) $app->tpl->setVar('additional', $temp); + unset($temp); + } + + //create ca-list + $rec = $app->db->QueryAllRecords("SELECT * FROM dns_ssl_ca WHERE active = 'Y' AND ca_issue != '' ORDER by ca_name ASC"); + $ca_select = ""; + if(count($rec) > 0) { + foreach($rec as $ca) { + if(strpos($this->dataRecord['data'], $ca['ca_issue']) !== FALSE) $selected = ' selected'; else $selected=''; + $ca_select .= "\r\n"; + } + } + $app->tpl->setVar('ca_list', $ca_select); + $app->tpl->setVar('type', 'CAA'); + if($this->id > 0) { + if(stristr($this->dataRecord['data'], 'issuewild') !== FALSE) $app->tpl->setVar('allow_wildcard', 'CHECKED'); else $app->tpl->setVar('allow_wildcard', 'UNCHECKED'); + if(strpos($this->dataRecord['data'], '128') === 0) $app->tpl->setVar('allow_critical', 'CHECKED'); else $app->tpl->setVar('allow_critical', 'UNCHECKED'); + $app->tpl->setVar('edit_disabled', 1); + } else { + $app->tpl->setVar('ttl', $soa['ttl']); + } + + parent::onShowEnd(); + } + + function onSubmit() { + global $app; + + // Check the client limits, if user is not the admin + if($_SESSION['s']['user']['typ'] != 'admin') { // if user is not admin + // Get the limits of the client + $client_group_id = intval($_SESSION['s']['user']['default_group']); + $client = $app->db->queryOneRecord("SELECT limit_dns_record FROM sys_group, client WHERE sys_group.client_id = client.client_id and sys_group.groupid = ?", $client_group_id); + + // Check if the user may add another record. + if($this->id == 0 && $client['limit_dns_record'] >= 0) { + $tmp = $app->db->queryOneRecord("SELECT count(id) as number FROM dns_rr WHERE sys_groupid = ?", $client_group_id); + if($tmp['number'] >= $client['limit_dns_record']) { + $app->error($app->tform->wordbook['limit_dns_record_txt']); + } + } + } // end if user is not admin + + // Check CA + if($this->dataRecord['ca_issue'] == '') $this->error('ca_error_txt'); + + // Get the parent soa record of the domain + $soa = $app->db->queryOneRecord("SELECT * FROM dns_soa WHERE id = ? AND " . $app->tform->getAuthSQL('r'), $_POST['zone']); + $this->dataRecord['name'] = $soa['origin']; + + // Check if Domain belongs to user + if($soa['id'] != $_POST['zone']) $this->error('no_zone_perm'); + + // Set the server ID of the rr record to the same server ID as the parent record. + $this->dataRecord['server_id'] = $soa['server_id']; + + // Set issue + $critical = 0; //* To use critical > 0, uncommented "
" in the template + if(isset($this->dataRecord['allow_critical']) && $this->dataRecord['allow_critical'] == 'on' && isset($this->dataRecord['ca_critical']) && $this->dataRecord['ca_critical'] == 1) $critical = 128; + if(isset($this->dataRecord['allow_wildcard']) && $this->dataRecord['allow_wildcard'] == "on") { + $this->dataRecord['data'] = $critical.' issuewild "'.$this->dataRecord['ca_issue']; + } else { + $this->dataRecord['data'] = $critical.' issue "'.$this->dataRecord['ca_issue']; + } + unset($critical); + if(isset($this->dataRecord['options']) && $this->dataRecord['options'] != '') { + $options=explode(',', $this->dataRecord['options']); + foreach($options as $option) { + if(trim($option) != '') { + if(preg_match('/^(\w+|d\+)=(\w+|d\+)/', $option)) { + $this->dataRecord['data'] = $this->dataRecord['data'] . '; '.$option; + } else { + $this->error('ca_option_error'); + } + } + } + } + $this->dataRecord['data'] = $this->dataRecord['data'].'"'; + + // Set name + if($this->dataRecord['additional'] != '') { + $temp = explode(',', $this->dataRecord['additional'])[0]; // if we have more hostnames the interface-plugin will be used + $temp = trim($temp,'.'); + if(trim($temp != '')) $this->dataRecord['name'] = $temp.'.'.$this->dataRecord['name']; + unset($temp); + } + + // Check for duplicate + $temp = $app->db->queryOneRecord("SELECT * FROM dns_rr WHERE type = 'CAA' AND name = ? AND data = ? AND active = ?", $this->dataRecord['name'], $this->dataRecord['data'], $POST['active']); + if(is_array($temp)) $this->error('caa_exists_error'); + unset($temp); + + // Update the serial number and timestamp of the RR record + $dns_rr = $app->db->queryOneRecord("SELECT serial FROM dns_rr WHERE id = ?", $this->id); + $this->dataRecord['serial'] = $app->validate_dns->increase_serial($dns_rr['serial']); + $this->dataRecord['stamp'] = date('Y-m-d H:i:s'); + + parent::onSubmit(); + } + + function onAfterInsert() { + global $app; + + //* Set the sys_groupid of the rr record to be the same then the sys_groupid of the soa record + $soa = $app->db->queryOneRecord("SELECT sys_groupid,serial FROM dns_soa WHERE id = ? AND " . $app->tform->getAuthSQL('r'), $this->dataRecord['zone']); + $app->db->datalogUpdate('dns_rr', array('sys_groupid' => $soa['sys_groupid']), 'id', $this->id); + + //* Update the serial number of the SOA record + $soa_id = $app->functions->intval($_POST["zone"]); + $serial = $app->validate_dns->increase_serial($soa['serial']); + $app->db->datalogUpdate('dns_soa', array('serial' => $serial), 'id', $soa_id); + + } + + function onAfterUpdate() { + global $app; + + //* Update the serial number of the SOA record + $soa = $app->db->queryOneRecord("SELECT serial FROM dns_soa WHERE id = ? AND " . $app->tform->getAuthSQL('r'), $this->dataRecord['zone']); + $soa_id = $app->functions->intval($_POST['zone']); + $serial = $app->validate_dns->increase_serial($soa['serial']); + $app->db->datalogUpdate('dns_soa', array('serial' => $serial), 'id', $soa_id); + } + + private function error($errmsg) { + global $app; + if (isset($app->tform->errorMessage)) $app->tform->errorMessage = '
' . $app->tform->errorMessage; + $app->tform->errorMessage .= $app->tform->wordbook[$errmsg]; + } + +} + +$page = new page_action; +$page->onLoad(); + +?> diff --git a/interface/web/dns/form/dns_caa.tform.php b/interface/web/dns/form/dns_caa.tform.php new file mode 100644 index 000000000..aa297f29d --- /dev/null +++ b/interface/web/dns/form/dns_caa.tform.php @@ -0,0 +1,117 @@ + 'DNS CAA', + 'width' => 100, + 'template' => 'templates/dns_caa_edit.htm', + 'fields' => array ( + 'server_id' => array ( + 'datatype' => 'INTEGER', + 'formtype' => 'SELECT', + 'default' => '', + 'value' => '', + 'width' => '30', + 'maxlength' => '255' + ), + 'zone' => array ( + 'datatype' => 'INTEGER', + 'formtype' => 'TEXT', + 'default' => @$app->functions->intval($_REQUEST['zone']), + 'value' => '', + 'width' => '30', + 'maxlength' => '255' + ), + 'name' => array ( + 'datatype' => 'VARCHAR', + 'formtype' => 'TEXT', + 'filters' => array( 0 => array( 'event' => 'SAVE', + 'type' => 'IDNTOASCII'), + 1 => array( 'event' => 'SHOW', + 'type' => 'IDNTOUTF8'), + 2 => array( 'event' => 'SAVE', + 'type' => 'TOLOWER') + ), + 'validators' => array ( 0 => array ( 'type' => 'REGEX', + 'regex' => '/^[a-zA-Z0-9\.\-\_]{0,255}$/', + 'errmsg'=> 'name_error_regex'), + ), + 'default' => '', + 'value' => '', + 'width' => '30', + 'maxlength' => '255' + ), + 'type' => array ( + 'datatype' => 'VARCHAR', + 'formtype' => 'TEXT', + 'default' => 'CAA', + 'value' => '', + 'width' => '5', + 'maxlength' => '5' + ), + 'data' => array ( + 'datatype' => 'VARCHAR', + 'formtype' => 'TEXT', + 'default' => '', + 'value' => '', + 'width' => '30', + 'maxlength' => '255' + ), + 'ttl' => array ( + 'datatype' => 'INTEGER', + 'formtype' => 'TEXT', + 'validators' => array ( 0 => array ( 'type' => 'RANGE', + 'range' => '60:', + 'errmsg'=> 'ttl_range_error'), + ), + 'default' => '3600', + 'value' => '', + 'width' => '10', + 'maxlength' => '10' + ), + 'active' => array ( + 'datatype' => 'VARCHAR', + 'formtype' => 'CHECKBOX', + 'default' => 'Y', + 'value' => array(0 => 'N', 1 => 'Y') + ), + 'stamp' => array ( + 'datatype' => 'VARCHAR', + 'formtype' => 'TEXT', + 'default' => '', + 'value' => '', + 'width' => '30', + 'maxlength' => '255' + ), + 'serial' => array ( + 'datatype' => 'INTEGER', + 'formtype' => 'TEXT', + 'default' => '', + 'value' => '', + 'width' => '10', + 'maxlength' => '10' + ), + ) +); + + + +?> diff --git a/interface/web/dns/lib/lang/ar_dns_caa.lng b/interface/web/dns/lib/lang/ar_dns_caa.lng new file mode 100644 index 000000000..1fa7dcb7d --- /dev/null +++ b/interface/web/dns/lib/lang/ar_dns_caa.lng @@ -0,0 +1,19 @@ + diff --git a/interface/web/dns/lib/lang/bg_dns_caa.lng b/interface/web/dns/lib/lang/bg_dns_caa.lng new file mode 100644 index 000000000..1fa7dcb7d --- /dev/null +++ b/interface/web/dns/lib/lang/bg_dns_caa.lng @@ -0,0 +1,19 @@ + diff --git a/interface/web/dns/lib/lang/br_dns_caa.lng b/interface/web/dns/lib/lang/br_dns_caa.lng new file mode 100644 index 000000000..1fa7dcb7d --- /dev/null +++ b/interface/web/dns/lib/lang/br_dns_caa.lng @@ -0,0 +1,19 @@ + diff --git a/interface/web/dns/lib/lang/ca_dns_caa.lng b/interface/web/dns/lib/lang/ca_dns_caa.lng new file mode 100644 index 000000000..1fa7dcb7d --- /dev/null +++ b/interface/web/dns/lib/lang/ca_dns_caa.lng @@ -0,0 +1,19 @@ + diff --git a/interface/web/dns/lib/lang/cz_dns_caa.lng b/interface/web/dns/lib/lang/cz_dns_caa.lng new file mode 100644 index 000000000..1fa7dcb7d --- /dev/null +++ b/interface/web/dns/lib/lang/cz_dns_caa.lng @@ -0,0 +1,19 @@ + diff --git a/interface/web/dns/lib/lang/de_dns_caa.lng b/interface/web/dns/lib/lang/de_dns_caa.lng new file mode 100644 index 000000000..88dbf6e47 --- /dev/null +++ b/interface/web/dns/lib/lang/de_dns_caa.lng @@ -0,0 +1,19 @@ + diff --git a/interface/web/dns/lib/lang/dk_dns_caa.lng b/interface/web/dns/lib/lang/dk_dns_caa.lng new file mode 100644 index 000000000..1fa7dcb7d --- /dev/null +++ b/interface/web/dns/lib/lang/dk_dns_caa.lng @@ -0,0 +1,19 @@ + diff --git a/interface/web/dns/lib/lang/el_dns_caa.lng b/interface/web/dns/lib/lang/el_dns_caa.lng new file mode 100644 index 000000000..1fa7dcb7d --- /dev/null +++ b/interface/web/dns/lib/lang/el_dns_caa.lng @@ -0,0 +1,19 @@ + diff --git a/interface/web/dns/lib/lang/en_dns_caa.lng b/interface/web/dns/lib/lang/en_dns_caa.lng new file mode 100644 index 000000000..bf5b2ac8e --- /dev/null +++ b/interface/web/dns/lib/lang/en_dns_caa.lng @@ -0,0 +1,19 @@ + diff --git a/interface/web/dns/lib/lang/es_dns_caa.lng b/interface/web/dns/lib/lang/es_dns_caa.lng new file mode 100644 index 000000000..bf5b2ac8e --- /dev/null +++ b/interface/web/dns/lib/lang/es_dns_caa.lng @@ -0,0 +1,19 @@ + diff --git a/interface/web/dns/lib/lang/fi_dns_caa.lng b/interface/web/dns/lib/lang/fi_dns_caa.lng new file mode 100644 index 000000000..bf5b2ac8e --- /dev/null +++ b/interface/web/dns/lib/lang/fi_dns_caa.lng @@ -0,0 +1,19 @@ + diff --git a/interface/web/dns/lib/lang/fr_dns_caa.lng b/interface/web/dns/lib/lang/fr_dns_caa.lng new file mode 100644 index 000000000..bf5b2ac8e --- /dev/null +++ b/interface/web/dns/lib/lang/fr_dns_caa.lng @@ -0,0 +1,19 @@ + diff --git a/interface/web/dns/lib/lang/hr_dns_caa.lng b/interface/web/dns/lib/lang/hr_dns_caa.lng new file mode 100644 index 000000000..bf5b2ac8e --- /dev/null +++ b/interface/web/dns/lib/lang/hr_dns_caa.lng @@ -0,0 +1,19 @@ + diff --git a/interface/web/dns/lib/lang/hu_dns_caa.lng b/interface/web/dns/lib/lang/hu_dns_caa.lng new file mode 100644 index 000000000..bf5b2ac8e --- /dev/null +++ b/interface/web/dns/lib/lang/hu_dns_caa.lng @@ -0,0 +1,19 @@ + diff --git a/interface/web/dns/lib/lang/id_dns_caa.lng b/interface/web/dns/lib/lang/id_dns_caa.lng new file mode 100644 index 000000000..bf5b2ac8e --- /dev/null +++ b/interface/web/dns/lib/lang/id_dns_caa.lng @@ -0,0 +1,19 @@ + diff --git a/interface/web/dns/lib/lang/it_dns_caa.lng b/interface/web/dns/lib/lang/it_dns_caa.lng new file mode 100644 index 000000000..bf5b2ac8e --- /dev/null +++ b/interface/web/dns/lib/lang/it_dns_caa.lng @@ -0,0 +1,19 @@ + diff --git a/interface/web/dns/lib/lang/ja_dns_caa.lng b/interface/web/dns/lib/lang/ja_dns_caa.lng new file mode 100644 index 000000000..bf5b2ac8e --- /dev/null +++ b/interface/web/dns/lib/lang/ja_dns_caa.lng @@ -0,0 +1,19 @@ + diff --git a/interface/web/dns/lib/lang/nl_dns_caa.lng b/interface/web/dns/lib/lang/nl_dns_caa.lng new file mode 100644 index 000000000..bf5b2ac8e --- /dev/null +++ b/interface/web/dns/lib/lang/nl_dns_caa.lng @@ -0,0 +1,19 @@ + diff --git a/interface/web/dns/lib/lang/pl_dns_caa.lng b/interface/web/dns/lib/lang/pl_dns_caa.lng new file mode 100644 index 000000000..bf5b2ac8e --- /dev/null +++ b/interface/web/dns/lib/lang/pl_dns_caa.lng @@ -0,0 +1,19 @@ + diff --git a/interface/web/dns/lib/lang/pt_dns_caa.lng b/interface/web/dns/lib/lang/pt_dns_caa.lng new file mode 100644 index 000000000..bf5b2ac8e --- /dev/null +++ b/interface/web/dns/lib/lang/pt_dns_caa.lng @@ -0,0 +1,19 @@ + diff --git a/interface/web/dns/lib/lang/ro_dns_caa.lng b/interface/web/dns/lib/lang/ro_dns_caa.lng new file mode 100644 index 000000000..bf5b2ac8e --- /dev/null +++ b/interface/web/dns/lib/lang/ro_dns_caa.lng @@ -0,0 +1,19 @@ + diff --git a/interface/web/dns/lib/lang/ru_dns_caa.lng b/interface/web/dns/lib/lang/ru_dns_caa.lng new file mode 100644 index 000000000..bf5b2ac8e --- /dev/null +++ b/interface/web/dns/lib/lang/ru_dns_caa.lng @@ -0,0 +1,19 @@ + diff --git a/interface/web/dns/lib/lang/se_dns_caa.lng b/interface/web/dns/lib/lang/se_dns_caa.lng new file mode 100644 index 000000000..bf5b2ac8e --- /dev/null +++ b/interface/web/dns/lib/lang/se_dns_caa.lng @@ -0,0 +1,19 @@ + diff --git a/interface/web/dns/lib/lang/sk_dns_caa.lng b/interface/web/dns/lib/lang/sk_dns_caa.lng new file mode 100644 index 000000000..bf5b2ac8e --- /dev/null +++ b/interface/web/dns/lib/lang/sk_dns_caa.lng @@ -0,0 +1,19 @@ + diff --git a/interface/web/dns/lib/lang/tr_dns_caa.lng b/interface/web/dns/lib/lang/tr_dns_caa.lng new file mode 100644 index 000000000..bf5b2ac8e --- /dev/null +++ b/interface/web/dns/lib/lang/tr_dns_caa.lng @@ -0,0 +1,19 @@ + diff --git a/interface/web/dns/list/dns_a.list.php b/interface/web/dns/list/dns_a.list.php index 748bc405d..1c6999511 100644 --- a/interface/web/dns/list/dns_a.list.php +++ b/interface/web/dns/list/dns_a.list.php @@ -132,7 +132,7 @@ $liste["item"][] = array( 'field' => "type", 'prefix' => "", 'suffix' => "", 'width' => "", - 'value' => array('A'=>'A', 'AAAA' => 'AAAA', 'ALIAS'=>'ALIAS', 'CNAME'=>'CNAME', 'DS'=>'DS', 'HINFO'=>'HINFO', 'LOC'=>'LOC', 'MX'=>'MX', 'NS'=>'NS', 'PTR'=>'PTR', 'RP'=>'RP', 'SRV'=>'SRV', 'TLSA'=>'TLSA', 'TXT'=>'TXT')); + 'value' => array('A'=>'A', 'AAAA' => 'AAAA', 'ALIAS'=>'ALIAS', 'CAA'=>'CAA', 'CNAME'=>'CNAME', 'DS'=>'DS', 'HINFO'=>'HINFO', 'LOC'=>'LOC', 'MX'=>'MX', 'NS'=>'NS', 'PTR'=>'PTR', 'RP'=>'RP', 'SRV'=>'SRV', 'TLSA'=>'TLSA', 'TXT'=>'TXT')); ?> diff --git a/interface/web/dns/templates/dns_a_list.htm b/interface/web/dns/templates/dns_a_list.htm index b8d57401b..67bf8ac91 100644 --- a/interface/web/dns/templates/dns_a_list.htm +++ b/interface/web/dns/templates/dns_a_list.htm @@ -20,6 +20,7 @@ + diff --git a/interface/web/dns/templates/dns_caa_edit.htm b/interface/web/dns/templates/dns_caa_edit.htm new file mode 100644 index 000000000..3de64818b --- /dev/null +++ b/interface/web/dns/templates/dns_caa_edit.htm @@ -0,0 +1,74 @@ + +

+ +
+ +
+
+ +
+ +
+
+ + + +
+ +
+
+ +
+ +
readonly />
+
{tmpl_var name='ca_hostname_note_txt'}
+
+ +
+ +
+
{tmpl_var name='ca_options_note_txt'}
+
+ +
+ +
+
+ +
+ +
{tmpl_var name='active'}
+
+ + + + + + + +
+ + +
+ + + + -- GitLab From d606add9df2ad1465e24f2ecd160c8cb6d48635b Mon Sep 17 00:00:00 2001 From: Florian Schaal Date: Sun, 24 Feb 2019 11:48:52 +0100 Subject: [PATCH 025/215] add server for last commit --- server/conf/bind_pri.domain.master | 7 ++++++ server/plugins-available/bind_plugin.inc.php | 24 ++++++++++++++++++++ 2 files changed, 31 insertions(+) diff --git a/server/conf/bind_pri.domain.master b/server/conf/bind_pri.domain.master index ed395064a..fb867901d 100644 --- a/server/conf/bind_pri.domain.master +++ b/server/conf/bind_pri.domain.master @@ -20,6 +20,9 @@ $TTL {tmpl_var name='ttl'} {tmpl_var name='name'} {tmpl_var name='ttl'} CNAME {tmpl_var name='data'} + +{tmpl_var name='name'} {tmpl_var name='ttl'} CAA {tmpl_var name='data'} + {tmpl_var name='name'} {tmpl_var name='ttl'} CNAME {tmpl_var name='data'} @@ -53,5 +56,9 @@ $TTL {tmpl_var name='ttl'} {tmpl_var name='name'} {tmpl_var name='ttl'} TXT "{tmpl_var name='data'}" + +{tmpl_var name='name'} {tmpl_var name='ttl'} TYPE257 {tmpl_var name='data'} + + diff --git a/server/plugins-available/bind_plugin.inc.php b/server/plugins-available/bind_plugin.inc.php index 23856f0c8..edf7b93d9 100644 --- a/server/plugins-available/bind_plugin.inc.php +++ b/server/plugins-available/bind_plugin.inc.php @@ -236,6 +236,17 @@ class bind_plugin { //* load the server configuration options $dns_config = $app->getconf->get_server_config($conf["server_id"], 'dns'); + //* Get the bind version + $bind_caa = false; + $bind = explode("\n", shell_exec('which named bind')); + $bind = reset($bind); + if(is_executable($bind)) { + exec($bind . ' -v 2>&1', $tmp); + $bind_caa = @(version_compare($tmp[0],"BIND 9.9.6", '>='))?true:false; + unset($tmp); + } + unset($bind); + //* Write the domain file if(!empty($data['new']['id'])) { $tpl = new tpl(); @@ -253,6 +264,19 @@ class bind_plugin { if($records[$i]['type'] == 'TXT' && strlen($records[$i]['data']) > 255) { $records[$i]['data'] = implode('" "',str_split( $records[$i]['data'], 255)); } + //* CAA-Records - Type257 for older bind-versions + if($records[$i]['type'] == 'CAA' && !$bind_caa) { + $records[$i]['type'] = 'TYPE257'; + $temp = explode(' ', $records[$i]['data']); + unset($temp[0]); + $records[$i]['data'] = implode(' ', $temp); + $data_new = str_replace(array('"', ' '), '', $records[$i]['data']); + $hex = unpack('H*', $data_new); + $hex[1] = '0005'.strtoupper($hex[1]); + $length = strlen($hex[1])/2; + $data_new = "\# $length $hex[1]"; + $records[$i]['data'] = $data_new; + } } } $tpl->setLoop('zones', $records); -- GitLab From ed9f9e9f08ac0e66b105c65742b4359d7cf246b4 Mon Sep 17 00:00:00 2001 From: Florian Schaal Date: Mon, 25 Feb 2019 08:35:51 +0100 Subject: [PATCH 026/215] update some lng-files from caa-backport --- .../web/admin/lib/lang/br_system_config.lng | 28 ++++++++++++------- .../web/admin/lib/lang/de_system_config.lng | 2 -- .../web/admin/lib/lang/ru_system_config.lng | 13 +++++++-- 3 files changed, 28 insertions(+), 15 deletions(-) diff --git a/interface/web/admin/lib/lang/br_system_config.lng b/interface/web/admin/lib/lang/br_system_config.lng index 887dffb6e..8b5b6d016 100644 --- a/interface/web/admin/lib/lang/br_system_config.lng +++ b/interface/web/admin/lib/lang/br_system_config.lng @@ -1,6 +1,6 @@ <80><99>s do not recognize any other flag values as described in RFC 6844 +$wb['ca_iodef_txt'] = 'iodef'; +$wb['active_txt'] = 'Aktive'; +$wb['btn_save_txt'] = 'Save'; +$wb['btn_cancel_txt'] = 'Cancel'; +$wb['default_dbserver_txt'] = 'Servidor de banco de dados padrão'; +$wb['No'] = 'Não'; $wb['ca_name_txt'] = 'Name'; $wb['ca_issue_txt'] = 'Issue'; $wb['ca_wildcard_txt'] = 'Use Wildcard'; diff --git a/interface/web/admin/lib/lang/de_system_config.lng b/interface/web/admin/lib/lang/de_system_config.lng index 683291b1f..0771322ef 100644 --- a/interface/web/admin/lib/lang/de_system_config.lng +++ b/interface/web/admin/lib/lang/de_system_config.lng @@ -81,8 +81,6 @@ $wb['default_webserver_txt'] = 'Default Webserver'; $wb['default_dnsserver_txt'] = 'Default DNS Server'; $wb['default_slave_dnsserver_txt'] = 'Default Secondary DNS Server'; $wb['default_dbserver_txt'] = 'Default Database Server'; - - $wb['ca_name_txt'] = 'Name'; $wb['ca_issue_txt'] = 'Issue'; $wb['ca_wildcard_txt'] = 'Wildcard verwenden'; diff --git a/interface/web/admin/lib/lang/ru_system_config.lng b/interface/web/admin/lib/lang/ru_system_config.lng index 33f62e116..301827893 100644 --- a/interface/web/admin/lib/lang/ru_system_config.lng +++ b/interface/web/admin/lib/lang/ru_system_config.lng @@ -1,5 +1,4 @@ <80><99>s do not recognize any other flag values as described in RFC 6844 +$wb['ca_iodef_txt'] = 'iodef'; +$wb['active_txt'] = 'Aktive'; +$wb['btn_save_txt'] = 'Save'; +$wb['btn_cancel_txt'] = 'Cancel'; +$wb['ca_name_txt'] = 'Name'; +$wb['ca_issue_txt'] = 'Issue'; +$wb['ca_wildcard_txt'] = 'Use Wildcard'; $wb['ca_critical_txt'] = 'Strict Check'; //For future use. At this time, CA’s do not recognize any other flag values as described in RFC 6844 $wb['ca_iodef_txt'] = 'iodef'; $wb['active_txt'] = 'Aktive'; -- GitLab From 08795acfff0be58e4a1ac6f9ee8dd982920ab1cb Mon Sep 17 00:00:00 2001 From: Florian Schaal Date: Mon, 25 Feb 2019 08:57:49 +0100 Subject: [PATCH 027/215] update sql-files --- install/sql/incremental/upd_dev_collection.sql | 3 ++- install/sql/ispconfig3.sql | 7 +------ 2 files changed, 3 insertions(+), 7 deletions(-) diff --git a/install/sql/incremental/upd_dev_collection.sql b/install/sql/incremental/upd_dev_collection.sql index 45d5a2e00..4c436eec7 100644 --- a/install/sql/incremental/upd_dev_collection.sql +++ b/install/sql/incremental/upd_dev_collection.sql @@ -27,6 +27,8 @@ DELETE FROM `dns_ssl_ca` WHERE `ca_issue` = 'geotrust.com'; DELETE FROM `dns_ssl_ca` WHERE `ca_issue` = 'thawte.com'; UPDATE `dns_ssl_ca` SET `ca_name` = 'Symantec / Thawte / GeoTrust' WHERE `ca_issue` = 'symantec.com'; +ALTER TABLE `dns_rr` CHANGE `type` `type` ENUM('A','AAAA','ALIAS','CAA','CNAME','DS','HINFO','LOC','MX','NAPTR','NS','PTR','RP','SRV','TXT','TLSA','DNSKEY') CHARACTER SET utf8 COLLATE utf8_general_ci NULL DEFAULT NULL; + INSERT IGNORE INTO `dns_ssl_ca` (`id`, `sys_userid`, `sys_groupid`, `sys_perm_user`, `sys_perm_group`, `sys_perm_other`, `active`, `ca_name`, `ca_issue`, `ca_wildcard`, `ca_iodef`, `ca_critical`) VALUES (NULL, 1, 1, 'riud', 'riud', '', 'Y', 'AC Camerfirma', 'camerfirma.com', 'Y', '', 0), (NULL, 1, 1, 'riud', 'riud', '', 'Y', 'ACCV', 'accv.es', 'Y', '', 0), @@ -76,4 +78,3 @@ INSERT IGNORE INTO `dns_ssl_ca` (`id`, `sys_userid`, `sys_groupid`, `sys_perm_us (NULL, 1, 1, 'riud', 'riud', '', 'Y', 'WISeKey', 'wisekey.com', 'Y', '', 0), (NULL, 1, 1, 'riud', 'riud', '', 'Y', 'WoSign', 'wosign.com', 'Y', '', 0); -ALTER TABLE `dns_rr` CHANGE `type` `type` ENUM('A','AAAA','ALIAS','CAA','CNAME','DS','HINFO','LOC','MX','NAPTR','NS','PTR','RP','SRV','TXT','TLSA','DNSKEY') CHARACTER SET utf8 COLLATE utf8_general_ci NULL DEFAULT NULL; diff --git a/install/sql/ispconfig3.sql b/install/sql/ispconfig3.sql index 757247392..80a2165be 100644 --- a/install/sql/ispconfig3.sql +++ b/install/sql/ispconfig3.sql @@ -548,12 +548,7 @@ CREATE TABLE IF NOT EXISTS `dns_ssl_ca` ( ALTER TABLE `dns_ssl_ca` ADD UNIQUE(`ca_issue`); -UPDATE `dns_ssl_ca` SET `ca_issue` = 'comodo.com' WHERE `ca_issue` = 'comodoca.com'; -DELETE FROM `dns_ssl_ca` WHERE `ca_issue` = 'geotrust.com'; -DELETE FROM `dns_ssl_ca` WHERE `ca_issue` = 'thawte.com'; -UPDATE `dns_ssl_ca` SET `ca_name` = 'Symantec / Thawte / GeoTrust' WHERE `ca_issue` = 'symantec.com'; - -INSERT IGNORE INTO `dns_ssl_ca` (`id`, `sys_userid`, `sys_groupid`, `sys_perm_user`, `sys_perm_group`, `sys_perm_other`, `active`, `ca_name`, `ca_issue`, `ca_wildcard`, `ca_iodef`, `ca_critical`) VALUES +INSERT INTO `dns_ssl_ca` (`id`, `sys_userid`, `sys_groupid`, `sys_perm_user`, `sys_perm_group`, `sys_perm_other`, `active`, `ca_name`, `ca_issue`, `ca_wildcard`, `ca_iodef`, `ca_critical`) VALUES (NULL, 1, 1, 'riud', 'riud', '', 'Y', 'AC Camerfirma', 'camerfirma.com', 'Y', '', 0), (NULL, 1, 1, 'riud', 'riud', '', 'Y', 'ACCV', 'accv.es', 'Y', '', 0), (NULL, 1, 1, 'riud', 'riud', '', 'Y', 'Actalis', 'actalis.it', 'Y', '', 0), -- GitLab From d3cde6cb21f3a3685cf6aa2d12ebea56b273554c Mon Sep 17 00:00:00 2001 From: Florian Schaal Date: Mon, 25 Feb 2019 13:02:31 +0100 Subject: [PATCH 028/215] templates for caa --- .../sql/incremental/upd_dev_collection.sql | 2 +- install/sql/ispconfig3.sql | 1 - .../admin/templates/system_config_dns_ca.htm | 15 +++++++ .../templates/system_config_dns_ca_edit.htm | 41 +++++++++++++++++++ .../templates/system_config_dns_ca_list.htm | 25 +++++++++++ 5 files changed, 82 insertions(+), 2 deletions(-) create mode 100644 interface/web/admin/templates/system_config_dns_ca.htm create mode 100644 interface/web/admin/templates/system_config_dns_ca_edit.htm create mode 100644 interface/web/admin/templates/system_config_dns_ca_list.htm diff --git a/install/sql/incremental/upd_dev_collection.sql b/install/sql/incremental/upd_dev_collection.sql index 4c436eec7..ea0011b5a 100644 --- a/install/sql/incremental/upd_dev_collection.sql +++ b/install/sql/incremental/upd_dev_collection.sql @@ -28,7 +28,7 @@ DELETE FROM `dns_ssl_ca` WHERE `ca_issue` = 'thawte.com'; UPDATE `dns_ssl_ca` SET `ca_name` = 'Symantec / Thawte / GeoTrust' WHERE `ca_issue` = 'symantec.com'; ALTER TABLE `dns_rr` CHANGE `type` `type` ENUM('A','AAAA','ALIAS','CAA','CNAME','DS','HINFO','LOC','MX','NAPTR','NS','PTR','RP','SRV','TXT','TLSA','DNSKEY') CHARACTER SET utf8 COLLATE utf8_general_ci NULL DEFAULT NULL; - +ALTER TABLE `dns_rr` CHANGE `data` `data` TEXT NOT NULL; INSERT IGNORE INTO `dns_ssl_ca` (`id`, `sys_userid`, `sys_groupid`, `sys_perm_user`, `sys_perm_group`, `sys_perm_other`, `active`, `ca_name`, `ca_issue`, `ca_wildcard`, `ca_iodef`, `ca_critical`) VALUES (NULL, 1, 1, 'riud', 'riud', '', 'Y', 'AC Camerfirma', 'camerfirma.com', 'Y', '', 0), (NULL, 1, 1, 'riud', 'riud', '', 'Y', 'ACCV', 'accv.es', 'Y', '', 0), diff --git a/install/sql/ispconfig3.sql b/install/sql/ispconfig3.sql index 80a2165be..c52124503 100644 --- a/install/sql/ispconfig3.sql +++ b/install/sql/ispconfig3.sql @@ -478,7 +478,6 @@ CREATE TABLE IF NOT EXISTS `directive_snippets` ( -- -- Table structure for table `dns_rr` -- - CREATE TABLE `dns_rr` ( `id` int(11) unsigned NOT NULL auto_increment, `sys_userid` int(11) unsigned NOT NULL DEFAULT '0', diff --git a/interface/web/admin/templates/system_config_dns_ca.htm b/interface/web/admin/templates/system_config_dns_ca.htm new file mode 100644 index 000000000..7f430a85e --- /dev/null +++ b/interface/web/admin/templates/system_config_dns_ca.htm @@ -0,0 +1,15 @@ +

+

+ +{tmpl_var name='dns_ca'} +{tmpl_var name='dns_ca_list'} + diff --git a/interface/web/admin/templates/system_config_dns_ca_edit.htm b/interface/web/admin/templates/system_config_dns_ca_edit.htm new file mode 100644 index 000000000..739c3f93f --- /dev/null +++ b/interface/web/admin/templates/system_config_dns_ca_edit.htm @@ -0,0 +1,41 @@ + + +
{tmpl_var name='error'}
+
+ +
+ +
+
+ +
+ +
+
+ +
+ +
checked />
+
+ +
+ +
checked />
+
+ +
+ +
checked />
+
+ +
+
+ + +
+ diff --git a/interface/web/admin/templates/system_config_dns_ca_list.htm b/interface/web/admin/templates/system_config_dns_ca_list.htm new file mode 100644 index 000000000..7af2b78d1 --- /dev/null +++ b/interface/web/admin/templates/system_config_dns_ca_list.htm @@ -0,0 +1,25 @@ + + + + + + + + + + + + + + + + + + + + +
{tmpl_var name="active"}{tmpl_var name="name"} + + +
+
-- GitLab From c1fa1d92a7473856281ce0d632da0c28e8da53c0 Mon Sep 17 00:00:00 2001 From: Till Brehm Date: Mon, 25 Feb 2019 16:14:42 +0100 Subject: [PATCH 029/215] Update plugin_system_config_dns_ca.inc.php --- .../classes/plugin_system_config_dns_ca.inc.php | 14 +++++++------- 1 file changed, 7 insertions(+), 7 deletions(-) diff --git a/interface/lib/classes/plugin_system_config_dns_ca.inc.php b/interface/lib/classes/plugin_system_config_dns_ca.inc.php index f53662d82..d9a994965 100644 --- a/interface/lib/classes/plugin_system_config_dns_ca.inc.php +++ b/interface/lib/classes/plugin_system_config_dns_ca.inc.php @@ -43,7 +43,7 @@ class plugin_system_config_dns_ca extends plugin_base { $pluginTpl = new tpl; $pluginTpl->newTemplate('templates/system_config_dns_ca_edit.htm'); - include 'lib/lang/'.$_SESSION['s']['language'].'_system_config.lng'; + include 'lib/lang/'.$app->functions->check_language($_SESSION['s']['language']).'_system_config.lng'; $pluginTpl->setVar($wb); $ca_id = $app->functions->intval($_GET['id']); if(isset($_GET['action']) && ($_GET['action'] == 'edit') && $ca_id > 0) { @@ -59,12 +59,12 @@ class plugin_system_config_dns_ca extends plugin_base { } elseif(isset($_GET['action']) && ($_GET['action'] == 'save') && $ca_id > 0) { $pluginTpl->setVar('edit_record', 0); $pluginTpl->setVar('id', $ca_id); - $pluginTpl->setVar('ca_name', $_POST['ca_name']); - $pluginTpl->setVar('ca_issue', $_POST['ca_issue']); - $pluginTpl->setVar('ca_wildcard', $_POST['ca_wildcard']); - $pluginTpl->setVar('ca_critical', $_POST['ca_critical']); - $pluginTpl->setVar('ca_iodef', $_POST['ca_iodef']); - $pluginTpl->setVar('active', $_POST['active']); + $pluginTpl->setVar('ca_name', $app->functions->htmlentities($_POST['ca_name'])); + $pluginTpl->setVar('ca_issue', $app->functions->htmlentities($_POST['ca_issue'])); + $pluginTpl->setVar('ca_wildcard', $app->functions->htmlentities($_POST['ca_wildcard'])); + $pluginTpl->setVar('ca_critical', $app->functions->htmlentities($_POST['ca_critical'])); + $pluginTpl->setVar('ca_iodef', $app->functions->htmlentities($_POST['ca_iodef'])); + $pluginTpl->setVar('active', $app->functions->htmlentities($_POST['active'])); } else { $pluginTpl->setVar('edit_record', 0); } -- GitLab From 3372811c15abd369d7dcc62a73dc7d03a1d40873 Mon Sep 17 00:00:00 2001 From: Till Brehm Date: Mon, 25 Feb 2019 16:16:21 +0100 Subject: [PATCH 030/215] Update plugin_system_config_dns_ca_list.inc.php --- interface/lib/classes/plugin_system_config_dns_ca_list.inc.php | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/interface/lib/classes/plugin_system_config_dns_ca_list.inc.php b/interface/lib/classes/plugin_system_config_dns_ca_list.inc.php index eb5882bd3..6b82c0604 100644 --- a/interface/lib/classes/plugin_system_config_dns_ca_list.inc.php +++ b/interface/lib/classes/plugin_system_config_dns_ca_list.inc.php @@ -44,7 +44,7 @@ class plugin_system_config_dns_ca_list extends plugin_base { $listTpl->newTemplate('templates/system_config_dns_ca_list.htm'); //* Loading language file - $lng_file = 'lib/lang/'.$_SESSION['s']['language'].'_system_config.lng'; + $lng_file = 'lib/lang/'.$app->functions->check_language($_SESSION['s']['language']).'_system_config.lng'; include $lng_file; $listTpl->setVar($wb); if($_SESSION['s']['user']['typ'] == 'admin') { -- GitLab From 547fd262bcd00d4ba1932f72bf23bfb77971c953 Mon Sep 17 00:00:00 2001 From: Till Brehm Date: Mon, 25 Feb 2019 16:21:11 +0100 Subject: [PATCH 031/215] Update ajax_get_json.php --- interface/web/dns/ajax_get_json.php | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/interface/web/dns/ajax_get_json.php b/interface/web/dns/ajax_get_json.php index b2c381f3e..1dd9c518f 100644 --- a/interface/web/dns/ajax_get_json.php +++ b/interface/web/dns/ajax_get_json.php @@ -35,7 +35,7 @@ require_once '../../lib/app.inc.php'; $app->auth->check_module_permissions('dns'); $type = $_GET["type"]; -$ca_id = $_GET['ca_id']; +$ca_id = $app->functions->intval($_GET['ca_id']); if($type == 'get_ipv4'){ $result = array(); -- GitLab From 75854d8ab11037eb3bf34c701bccdcc4f2d39989 Mon Sep 17 00:00:00 2001 From: Florian Schaal Date: Tue, 26 Feb 2019 13:33:12 +0100 Subject: [PATCH 032/215] Placeholder for DNS-Templates --- interface/web/dns/lib/lang/ar_dns_template.lng | 1 + interface/web/dns/lib/lang/bg_dns_template.lng | 1 + interface/web/dns/lib/lang/br_dns_template.lng | 1 + interface/web/dns/lib/lang/ca_dns_template.lng | 1 + interface/web/dns/lib/lang/cz_dns_template.lng | 1 + interface/web/dns/lib/lang/de_dns_template.lng | 1 + interface/web/dns/lib/lang/dk_dns_template.lng | 1 + interface/web/dns/lib/lang/el_dns_template.lng | 1 + interface/web/dns/lib/lang/en_dns_template.lng | 1 + interface/web/dns/lib/lang/es_dns_template.lng | 1 + interface/web/dns/lib/lang/fi_dns_template.lng | 1 + interface/web/dns/lib/lang/fr_dns_template.lng | 1 + interface/web/dns/lib/lang/hr_dns_template.lng | 1 + interface/web/dns/lib/lang/hu_dns_template.lng | 1 + interface/web/dns/lib/lang/id_dns_template.lng | 1 + interface/web/dns/lib/lang/it_dns_template.lng | 1 + interface/web/dns/lib/lang/ja_dns_template.lng | 1 + interface/web/dns/lib/lang/nl_dns_template.lng | 1 + interface/web/dns/lib/lang/pl_dns_template.lng | 1 + interface/web/dns/lib/lang/pt_dns_template.lng | 1 + interface/web/dns/lib/lang/ro_dns_template.lng | 1 + interface/web/dns/lib/lang/ru_dns_template.lng | 1 + interface/web/dns/lib/lang/se_dns_template.lng | 1 + interface/web/dns/lib/lang/sk_dns_template.lng | 1 + interface/web/dns/lib/lang/tr_dns_template.lng | 1 + interface/web/dns/templates/dns_template_edit.htm | 7 +++++-- 26 files changed, 30 insertions(+), 2 deletions(-) diff --git a/interface/web/dns/lib/lang/ar_dns_template.lng b/interface/web/dns/lib/lang/ar_dns_template.lng index 3a09e3bb7..b598d0f0f 100644 --- a/interface/web/dns/lib/lang/ar_dns_template.lng +++ b/interface/web/dns/lib/lang/ar_dns_template.lng @@ -3,4 +3,5 @@ $wb['name_txt'] = 'Name'; $wb['fields_txt'] = 'Fields'; $wb['template_txt'] = 'Template'; $wb['visible_txt'] = 'Visible'; +$wb['placeholder_txt'] = 'Placeholder'; ?> diff --git a/interface/web/dns/lib/lang/bg_dns_template.lng b/interface/web/dns/lib/lang/bg_dns_template.lng index 808010e6e..37fcdcd61 100644 --- a/interface/web/dns/lib/lang/bg_dns_template.lng +++ b/interface/web/dns/lib/lang/bg_dns_template.lng @@ -3,4 +3,5 @@ $wb['name_txt'] = 'Име'; $wb['fields_txt'] = 'Полета'; $wb['template_txt'] = 'Шаблон'; $wb['visible_txt'] = 'Видим'; +$wb['placeholder_txt'] = 'Placeholder'; ?> diff --git a/interface/web/dns/lib/lang/br_dns_template.lng b/interface/web/dns/lib/lang/br_dns_template.lng index 9d7331b79..8b099ceb1 100644 --- a/interface/web/dns/lib/lang/br_dns_template.lng +++ b/interface/web/dns/lib/lang/br_dns_template.lng @@ -3,4 +3,5 @@ $wb['name_txt'] = 'Nome'; $wb['fields_txt'] = 'Campos'; $wb['template_txt'] = 'Gabarito'; $wb['visible_txt'] = 'Visível'; +$wb['placeholder_txt'] = 'Placeholder'; ?> diff --git a/interface/web/dns/lib/lang/ca_dns_template.lng b/interface/web/dns/lib/lang/ca_dns_template.lng index 1202cfd76..ff1b0a8e7 100644 --- a/interface/web/dns/lib/lang/ca_dns_template.lng +++ b/interface/web/dns/lib/lang/ca_dns_template.lng @@ -3,4 +3,5 @@ $wb['name_txt'] = 'Nom'; $wb['fields_txt'] = 'Champs'; $wb['template_txt'] = 'Modèle'; $wb['visible_txt'] = 'Visible'; +$wb['placeholder_txt'] = 'Placeholder'; ?> diff --git a/interface/web/dns/lib/lang/cz_dns_template.lng b/interface/web/dns/lib/lang/cz_dns_template.lng index be4ac0e94..5927faef5 100644 --- a/interface/web/dns/lib/lang/cz_dns_template.lng +++ b/interface/web/dns/lib/lang/cz_dns_template.lng @@ -3,4 +3,5 @@ $wb['name_txt'] = 'Název'; $wb['fields_txt'] = 'Pole'; $wb['template_txt'] = 'Šablona'; $wb['visible_txt'] = 'Viditelný'; +$wb['placeholder_txt'] = 'Placeholder'; ?> diff --git a/interface/web/dns/lib/lang/de_dns_template.lng b/interface/web/dns/lib/lang/de_dns_template.lng index 33d1090cb..f35b22fd0 100644 --- a/interface/web/dns/lib/lang/de_dns_template.lng +++ b/interface/web/dns/lib/lang/de_dns_template.lng @@ -3,4 +3,5 @@ $wb['name_txt'] = 'Name'; $wb['fields_txt'] = 'Felder'; $wb['template_txt'] = 'Vorlage'; $wb['visible_txt'] = 'Sichtbar'; +$wb['placeholder_txt'] = 'Platzhalter'; ?> diff --git a/interface/web/dns/lib/lang/dk_dns_template.lng b/interface/web/dns/lib/lang/dk_dns_template.lng index c9e8e7b28..e444295ed 100644 --- a/interface/web/dns/lib/lang/dk_dns_template.lng +++ b/interface/web/dns/lib/lang/dk_dns_template.lng @@ -3,4 +3,5 @@ $wb['name_txt'] = 'Navn'; $wb['fields_txt'] = 'Felter'; $wb['template_txt'] = 'Skabelon'; $wb['visible_txt'] = 'Synlig'; +$wb['placeholder_txt'] = 'Placeholder'; ?> diff --git a/interface/web/dns/lib/lang/el_dns_template.lng b/interface/web/dns/lib/lang/el_dns_template.lng index 20e9bf81b..7d00994bb 100644 --- a/interface/web/dns/lib/lang/el_dns_template.lng +++ b/interface/web/dns/lib/lang/el_dns_template.lng @@ -3,4 +3,5 @@ $wb['name_txt'] = 'Όνομα'; $wb['fields_txt'] = 'Πεδία'; $wb['template_txt'] = 'Πρότυπο'; $wb['visible_txt'] = 'Ενεργό'; +$wb['placeholder_txt'] = 'Placeholder'; ?> diff --git a/interface/web/dns/lib/lang/en_dns_template.lng b/interface/web/dns/lib/lang/en_dns_template.lng index 37643e119..426ff2c42 100644 --- a/interface/web/dns/lib/lang/en_dns_template.lng +++ b/interface/web/dns/lib/lang/en_dns_template.lng @@ -3,4 +3,5 @@ $wb["name_txt"] = 'Name'; $wb["fields_txt"] = 'Fields'; $wb["template_txt"] = 'Template'; $wb["visible_txt"] = 'Visible'; +$wb['placeholder_txt'] = 'Placeholder'; ?> \ No newline at end of file diff --git a/interface/web/dns/lib/lang/es_dns_template.lng b/interface/web/dns/lib/lang/es_dns_template.lng index b0fa12ba0..ffab71445 100755 --- a/interface/web/dns/lib/lang/es_dns_template.lng +++ b/interface/web/dns/lib/lang/es_dns_template.lng @@ -3,4 +3,5 @@ $wb['fields_txt'] = 'Campos'; $wb['name_txt'] = 'Nombre'; $wb['template_txt'] = 'Plantilla'; $wb['visible_txt'] = 'Visible'; +$wb['placeholder_txt'] = 'Placeholder'; ?> diff --git a/interface/web/dns/lib/lang/fi_dns_template.lng b/interface/web/dns/lib/lang/fi_dns_template.lng index b34a92d6a..57910455e 100755 --- a/interface/web/dns/lib/lang/fi_dns_template.lng +++ b/interface/web/dns/lib/lang/fi_dns_template.lng @@ -3,4 +3,5 @@ $wb['name_txt'] = 'Nimi'; $wb['fields_txt'] = 'Kentät'; $wb['template_txt'] = 'Malli'; $wb['visible_txt'] = 'Näkyvissä'; +$wb['placeholder_txt'] = 'Placeholder'; ?> diff --git a/interface/web/dns/lib/lang/fr_dns_template.lng b/interface/web/dns/lib/lang/fr_dns_template.lng index 1202cfd76..ff1b0a8e7 100644 --- a/interface/web/dns/lib/lang/fr_dns_template.lng +++ b/interface/web/dns/lib/lang/fr_dns_template.lng @@ -3,4 +3,5 @@ $wb['name_txt'] = 'Nom'; $wb['fields_txt'] = 'Champs'; $wb['template_txt'] = 'Modèle'; $wb['visible_txt'] = 'Visible'; +$wb['placeholder_txt'] = 'Placeholder'; ?> diff --git a/interface/web/dns/lib/lang/hr_dns_template.lng b/interface/web/dns/lib/lang/hr_dns_template.lng index 100c5c823..b55a0138f 100644 --- a/interface/web/dns/lib/lang/hr_dns_template.lng +++ b/interface/web/dns/lib/lang/hr_dns_template.lng @@ -3,4 +3,5 @@ $wb['name_txt'] = 'Naziv'; $wb['fields_txt'] = 'Polja'; $wb['template_txt'] = 'Predložak'; $wb['visible_txt'] = 'Vidljivo'; +$wb['placeholder_txt'] = 'Placeholder'; ?> diff --git a/interface/web/dns/lib/lang/hu_dns_template.lng b/interface/web/dns/lib/lang/hu_dns_template.lng index 22589ea24..8bbf0fcf2 100644 --- a/interface/web/dns/lib/lang/hu_dns_template.lng +++ b/interface/web/dns/lib/lang/hu_dns_template.lng @@ -3,4 +3,5 @@ $wb['name_txt'] = 'Név'; $wb['fields_txt'] = 'Mezők'; $wb['template_txt'] = 'Template'; $wb['visible_txt'] = 'Látható'; +$wb['placeholder_txt'] = 'Placeholder'; ?> diff --git a/interface/web/dns/lib/lang/id_dns_template.lng b/interface/web/dns/lib/lang/id_dns_template.lng index b0451ce1b..4337e8287 100644 --- a/interface/web/dns/lib/lang/id_dns_template.lng +++ b/interface/web/dns/lib/lang/id_dns_template.lng @@ -3,4 +3,5 @@ $wb['name_txt'] = 'Nama'; $wb['fields_txt'] = 'Kolom'; $wb['template_txt'] = 'Template'; $wb['visible_txt'] = 'Terlihat'; +$wb['placeholder_txt'] = 'Placeholder'; ?> diff --git a/interface/web/dns/lib/lang/it_dns_template.lng b/interface/web/dns/lib/lang/it_dns_template.lng index 290cf3e4b..ee07983b2 100644 --- a/interface/web/dns/lib/lang/it_dns_template.lng +++ b/interface/web/dns/lib/lang/it_dns_template.lng @@ -3,4 +3,5 @@ $wb['name_txt'] = 'Nome'; $wb['fields_txt'] = 'Fields'; $wb['template_txt'] = 'Template'; $wb['visible_txt'] = 'Visible'; +$wb['placeholder_txt'] = 'Placeholder'; ?> diff --git a/interface/web/dns/lib/lang/ja_dns_template.lng b/interface/web/dns/lib/lang/ja_dns_template.lng index 7c05ae1cc..e2c2e8405 100644 --- a/interface/web/dns/lib/lang/ja_dns_template.lng +++ b/interface/web/dns/lib/lang/ja_dns_template.lng @@ -3,4 +3,5 @@ $wb['name_txt'] = '名前'; $wb['fields_txt'] = 'フィールド'; $wb['template_txt'] = 'テンプレート'; $wb['visible_txt'] = '公開する'; +$wb['placeholder_txt'] = 'Placeholder'; ?> diff --git a/interface/web/dns/lib/lang/nl_dns_template.lng b/interface/web/dns/lib/lang/nl_dns_template.lng index ebf45549a..6bfa3a12d 100644 --- a/interface/web/dns/lib/lang/nl_dns_template.lng +++ b/interface/web/dns/lib/lang/nl_dns_template.lng @@ -3,4 +3,5 @@ $wb['name_txt'] = 'Naam'; $wb['fields_txt'] = 'Velden'; $wb['template_txt'] = 'Template'; $wb['visible_txt'] = 'Zichtbaar'; +$wb['placeholder_txt'] = 'Placeholder'; ?> diff --git a/interface/web/dns/lib/lang/pl_dns_template.lng b/interface/web/dns/lib/lang/pl_dns_template.lng index f3e756357..042f11823 100644 --- a/interface/web/dns/lib/lang/pl_dns_template.lng +++ b/interface/web/dns/lib/lang/pl_dns_template.lng @@ -3,4 +3,5 @@ $wb['name_txt'] = 'Nazwa'; $wb['fields_txt'] = 'Pola'; $wb['template_txt'] = 'Szablon'; $wb['visible_txt'] = 'Widoczność'; +$wb['placeholder_txt'] = 'Placeholder'; ?> diff --git a/interface/web/dns/lib/lang/pt_dns_template.lng b/interface/web/dns/lib/lang/pt_dns_template.lng index c3cc3a13d..211e31907 100644 --- a/interface/web/dns/lib/lang/pt_dns_template.lng +++ b/interface/web/dns/lib/lang/pt_dns_template.lng @@ -3,4 +3,5 @@ $wb['name_txt'] = 'Nome'; $wb['fields_txt'] = 'Campos'; $wb['template_txt'] = 'Template'; $wb['visible_txt'] = 'Visível'; +$wb['placeholder_txt'] = 'Placeholder'; ?> diff --git a/interface/web/dns/lib/lang/ro_dns_template.lng b/interface/web/dns/lib/lang/ro_dns_template.lng index f097bb3a0..13db8c7a2 100644 --- a/interface/web/dns/lib/lang/ro_dns_template.lng +++ b/interface/web/dns/lib/lang/ro_dns_template.lng @@ -3,4 +3,5 @@ $wb['name_txt'] = 'Nume'; $wb['fields_txt'] = 'Campuri'; $wb['template_txt'] = 'Template'; $wb['visible_txt'] = 'Vizibil'; +$wb['placeholder_txt'] = 'Placeholder'; ?> diff --git a/interface/web/dns/lib/lang/ru_dns_template.lng b/interface/web/dns/lib/lang/ru_dns_template.lng index a187abdad..e3cee369d 100644 --- a/interface/web/dns/lib/lang/ru_dns_template.lng +++ b/interface/web/dns/lib/lang/ru_dns_template.lng @@ -3,4 +3,5 @@ $wb['name_txt'] = 'Имя'; $wb['fields_txt'] = 'Поля'; $wb['template_txt'] = 'Шаблон'; $wb['visible_txt'] = 'Видимый'; +$wb['placeholder_txt'] = 'Placeholder'; ?> diff --git a/interface/web/dns/lib/lang/se_dns_template.lng b/interface/web/dns/lib/lang/se_dns_template.lng index 516d5c275..9a3e01c9f 100644 --- a/interface/web/dns/lib/lang/se_dns_template.lng +++ b/interface/web/dns/lib/lang/se_dns_template.lng @@ -3,4 +3,5 @@ $wb['name_txt'] = 'Namn'; $wb['fields_txt'] = 'Fält'; $wb['template_txt'] = 'Mall'; $wb['visible_txt'] = 'Synlig'; +$wb['placeholder_txt'] = 'Placeholder'; ?> diff --git a/interface/web/dns/lib/lang/sk_dns_template.lng b/interface/web/dns/lib/lang/sk_dns_template.lng index dab503e9b..bcd50f15d 100644 --- a/interface/web/dns/lib/lang/sk_dns_template.lng +++ b/interface/web/dns/lib/lang/sk_dns_template.lng @@ -3,4 +3,5 @@ $wb['name_txt'] = 'Meno'; $wb['fields_txt'] = 'Polia'; $wb['template_txt'] = 'Šablóna'; $wb['visible_txt'] = 'Viditeľné'; +$wb['placeholder_txt'] = 'Placeholder'; ?> diff --git a/interface/web/dns/lib/lang/tr_dns_template.lng b/interface/web/dns/lib/lang/tr_dns_template.lng index 37ba3b588..3ca594f62 100644 --- a/interface/web/dns/lib/lang/tr_dns_template.lng +++ b/interface/web/dns/lib/lang/tr_dns_template.lng @@ -3,4 +3,5 @@ $wb['name_txt'] = 'Ad'; $wb['fields_txt'] = 'Alanlar'; $wb['template_txt'] = 'Kalıp'; $wb['visible_txt'] = 'Görünür'; +$wb['placeholder_txt'] = 'Placeholder'; ?> diff --git a/interface/web/dns/templates/dns_template_edit.htm b/interface/web/dns/templates/dns_template_edit.htm index 132cc9281..9de8c9344 100644 --- a/interface/web/dns/templates/dns_template_edit.htm +++ b/interface/web/dns/templates/dns_template_edit.htm @@ -16,7 +16,10 @@
-
+
+   DNS {tmpl_var name='placeholder_txt'}: {DOMAIN}, {IP}, {IPV6}, {NS1}, {NS2}, {EMAIL} + +
@@ -31,4 +34,4 @@
-
\ No newline at end of file +
-- GitLab From 44d34be61eb7f9c99c1504bf8640d31dd1cb30ec Mon Sep 17 00:00:00 2001 From: Florian Schaal Date: Tue, 26 Feb 2019 13:50:30 +0100 Subject: [PATCH 033/215] DNS: xfer / also_notify fields too short (Fixes #5237) --- install/sql/incremental/upd_dev_collection.sql | 1 + install/sql/ispconfig3.sql | 2 +- 2 files changed, 2 insertions(+), 1 deletion(-) diff --git a/install/sql/incremental/upd_dev_collection.sql b/install/sql/incremental/upd_dev_collection.sql index ea0011b5a..4c855b541 100644 --- a/install/sql/incremental/upd_dev_collection.sql +++ b/install/sql/incremental/upd_dev_collection.sql @@ -78,3 +78,4 @@ INSERT IGNORE INTO `dns_ssl_ca` (`id`, `sys_userid`, `sys_groupid`, `sys_perm_us (NULL, 1, 1, 'riud', 'riud', '', 'Y', 'WISeKey', 'wisekey.com', 'Y', '', 0), (NULL, 1, 1, 'riud', 'riud', '', 'Y', 'WoSign', 'wosign.com', 'Y', '', 0); +ALTER TABLE `dns_soa` CHANGE `xfer` `xfer` TEXT NOT NULL DEFAULT ''; diff --git a/install/sql/ispconfig3.sql b/install/sql/ispconfig3.sql index c52124503..dd45aa209 100644 --- a/install/sql/ispconfig3.sql +++ b/install/sql/ispconfig3.sql @@ -620,7 +620,7 @@ CREATE TABLE `dns_soa` ( `minimum` int(11) unsigned NOT NULL default '3600', `ttl` int(11) unsigned NOT NULL default '3600', `active` enum('N','Y') NOT NULL DEFAULT 'N', - `xfer` varchar(255) NOT NULL DEFAULT '', + `xfer` TEXT NOT NULL DEFAULT '', `also_notify` varchar(255) default NULL, `update_acl` varchar(255) default NULL, `dnssec_initialized` ENUM('Y','N') NOT NULL DEFAULT 'N', -- GitLab From 3fa01645a653dbfcc75c0db9dd20e2381a0e06b4 Mon Sep 17 00:00:00 2001 From: Till Brehm Date: Tue, 26 Feb 2019 14:49:36 +0100 Subject: [PATCH 034/215] Fixes #5254 Cronjob locking not working properly --- server/lib/classes/cronjob.inc.php | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/server/lib/classes/cronjob.inc.php b/server/lib/classes/cronjob.inc.php index 23b3c766e..9fba5af3c 100644 --- a/server/lib/classes/cronjob.inc.php +++ b/server/lib/classes/cronjob.inc.php @@ -86,8 +86,8 @@ class cronjob { if($run_it == true) { $this->onRunJob(); $this->onAfterRun(); + $this->onCompleted(); } - $this->onCompleted(); return; } -- GitLab From 0f947a1a9ac8e6447770e7843707e6382caa46c7 Mon Sep 17 00:00:00 2001 From: Webslice Date: Mon, 4 Mar 2019 14:13:00 +0100 Subject: [PATCH 035/215] Don't hardcode /web folder for php-fpm-chroot, fixes #3220 --- server/conf/nginx_vhost.conf.master | 28 +++++++++---------- server/conf/php_fpm_pool.conf.master | 2 +- server/conf/vhost.conf.master | 2 +- .../plugins-available/apache2_plugin.inc.php | 6 ++-- server/plugins-available/nginx_plugin.inc.php | 6 ++-- 5 files changed, 24 insertions(+), 20 deletions(-) diff --git a/server/conf/nginx_vhost.conf.master b/server/conf/nginx_vhost.conf.master index 7a4e74379..63c926035 100644 --- a/server/conf/nginx_vhost.conf.master +++ b/server/conf/nginx_vhost.conf.master @@ -174,9 +174,9 @@ server {
fastcgi_index index.php; - fastcgi_param DOCUMENT_ROOT /web; - fastcgi_param HOME /web; - fastcgi_param SCRIPT_FILENAME /web$fastcgi_script_name; + fastcgi_param DOCUMENT_ROOT ; + fastcgi_param HOME ; + fastcgi_param SCRIPT_FILENAME $fastcgi_script_name; fastcgi_param SCRIPT_FILENAME $document_root$fastcgi_script_name; @@ -191,9 +191,9 @@ server { fastcgi_pass unix:/var/run/hhvm/hhvm..sock; fastcgi_index index.php; - fastcgi_param DOCUMENT_ROOT /web; - fastcgi_param HOME /web; - fastcgi_param SCRIPT_FILENAME /web$fastcgi_script_name; + fastcgi_param DOCUMENT_ROOT ; + fastcgi_param HOME ; + fastcgi_param SCRIPT_FILENAME $fastcgi_script_name; fastcgi_param SCRIPT_FILENAME $document_root$fastcgi_script_name; @@ -201,7 +201,7 @@ server { fastcgi_intercept_errors on; error_page 500 501 502 503 = @phpfallback; } - + location @phpfallback { try_files $uri =404; include /etc/nginx/fastcgi_params; @@ -213,9 +213,9 @@ server { fastcgi_index index.php; - fastcgi_param DOCUMENT_ROOT /web; - fastcgi_param HOME /web; - fastcgi_param SCRIPT_FILENAME /web$fastcgi_script_name; + fastcgi_param DOCUMENT_ROOT ; + fastcgi_param HOME ; + fastcgi_param SCRIPT_FILENAME $fastcgi_script_name; fastcgi_param SCRIPT_FILENAME $document_root$fastcgi_script_name; @@ -229,7 +229,7 @@ server { } - + location /cgi-bin/ { try_files $uri =404; @@ -239,9 +239,9 @@ server { fastcgi_pass unix:/var/run/fcgiwrap.socket; fastcgi_index index.cgi; - fastcgi_param DOCUMENT_ROOT /web; - fastcgi_param HOME /web; - fastcgi_param SCRIPT_FILENAME /web$fastcgi_script_name; + fastcgi_param DOCUMENT_ROOT ; + fastcgi_param HOME ; + fastcgi_param SCRIPT_FILENAME $fastcgi_script_name; fastcgi_param SCRIPT_FILENAME $document_root$fastcgi_script_name; diff --git a/server/conf/php_fpm_pool.conf.master b/server/conf/php_fpm_pool.conf.master index 8081c994a..fb5c4b44d 100644 --- a/server/conf/php_fpm_pool.conf.master +++ b/server/conf/php_fpm_pool.conf.master @@ -29,7 +29,7 @@ pm.max_requests = chdir = / chroot = -php_admin_value[doc_root] = /web +php_admin_value[doc_root] = php_admin_value[cgi.fix_pathinfo] = 0 diff --git a/server/conf/vhost.conf.master b/server/conf/vhost.conf.master index 1426961bb..a259c2990 100644 --- a/server/conf/vhost.conf.master +++ b/server/conf/vhost.conf.master @@ -378,7 +378,7 @@ - ProxyFCGISetEnvIf "true" DOCUMENT_ROOT "/web" + ProxyFCGISetEnvIf "true" DOCUMENT_ROOT "" ProxyFCGISetEnvIf "true" CONTEXT_DOCUMENT_ROOT "%{reqenv:DOCUMENT_ROOT}" ProxyFCGISetEnvIf "true" HOME "%{reqenv:DOCUMENT_ROOT}" ProxyFCGISetEnvIf "true" SCRIPT_FILENAME "%{reqenv:DOCUMENT_ROOT}%{reqenv:SCRIPT_NAME}" diff --git a/server/plugins-available/apache2_plugin.inc.php b/server/plugins-available/apache2_plugin.inc.php index dad2a26f3..8ebe11d92 100644 --- a/server/plugins-available/apache2_plugin.inc.php +++ b/server/plugins-available/apache2_plugin.inc.php @@ -1581,6 +1581,7 @@ class apache2_plugin { $tpl->setVar('use_tcp', $use_tcp); $tpl->setVar('use_socket', $use_socket); $tpl->setVar('php_fpm_chroot', $data['new']['php_fpm_chroot']); + $tpl->setVar('php_fpm_chroot_web_folder', sprintf('/%s', trim($web_folder, '/'))); $fpm_socket = $socket_dir.$pool_name.'.sock'; $tpl->setVar('fpm_socket', $fpm_socket); $tpl->setVar('fpm_port', $web_config['php_fpm_start_port'] + $data['new']['domain_id'] - 1); @@ -1823,7 +1824,7 @@ class apache2_plugin { $this->awstats_update($data, $web_config); } - $this->php_fpm_pool_update($data, $web_config, $pool_dir, $pool_name, $socket_dir); + $this->php_fpm_pool_update($data, $web_config, $pool_dir, $pool_name, $socket_dir, $web_folder); $this->hhvm_update($data, $web_config); if($web_config['check_apache_config'] == 'y') { @@ -3024,7 +3025,7 @@ class apache2_plugin { } //* Update the PHP-FPM pool configuration file - private function php_fpm_pool_update ($data, $web_config, $pool_dir, $pool_name, $socket_dir) { + private function php_fpm_pool_update ($data, $web_config, $pool_dir, $pool_name, $socket_dir, $web_folder = null) { global $app, $conf; $pool_dir = trim($pool_dir); //$reload = false; @@ -3115,6 +3116,7 @@ class apache2_plugin { if ($data['new']['php_fpm_chroot'] === 'y') { $tpl->setVar('php_fpm_chroot', $data['new']['php_fpm_chroot']); $tpl->setVar('php_fpm_chroot_dir', $data['new']['document_root']); + $tpl->setVar('php_fpm_chroot_web_folder', sprintf('/%s', trim($web_folder, '/'))); $tpl->setVar('php_open_basedir', str_replace($tpl->getVar('document_root'), '', $tpl->getVar('php_open_basedir'))); $tpl->setVar('document_root', ''); } diff --git a/server/plugins-available/nginx_plugin.inc.php b/server/plugins-available/nginx_plugin.inc.php index fb9712b1e..adac20c78 100644 --- a/server/plugins-available/nginx_plugin.inc.php +++ b/server/plugins-available/nginx_plugin.inc.php @@ -1042,6 +1042,7 @@ class nginx_plugin { $tpl->setVar('use_tcp', $use_tcp); $tpl->setVar('use_socket', $use_socket); $tpl->setVar('php_fpm_chroot', $data['new']['php_fpm_chroot']); + $tpl->setVar('php_fpm_chroot_web_folder', sprintf('/%s', trim($web_folder, '/'))); $fpm_socket = $socket_dir.$pool_name.'.sock'; $tpl->setVar('fpm_socket', $fpm_socket); $tpl->setVar('rnd_php_dummy_file', '/'.md5(uniqid(microtime(), 1)).'.htm'); @@ -1888,7 +1889,7 @@ class nginx_plugin { $this->awstats_update($data, $web_config); } - $this->php_fpm_pool_update($data, $web_config, $pool_dir, $pool_name, $socket_dir); + $this->php_fpm_pool_update($data, $web_config, $pool_dir, $pool_name, $socket_dir, $web_folder); $this->hhvm_update($data, $web_config); if($web_config['check_apache_config'] == 'y') { @@ -2641,7 +2642,7 @@ class nginx_plugin { } //* Update the PHP-FPM pool configuration file - private function php_fpm_pool_update ($data, $web_config, $pool_dir, $pool_name, $socket_dir) { + private function php_fpm_pool_update ($data, $web_config, $pool_dir, $pool_name, $socket_dir, $web_folder = null) { global $app, $conf; $pool_dir = trim($pool_dir); $rh_releasefiles = array('/etc/centos-release', '/etc/redhat-release'); @@ -2748,6 +2749,7 @@ class nginx_plugin { if ($data['new']['php_fpm_chroot'] === 'y') { $tpl->setVar('php_fpm_chroot', $data['new']['php_fpm_chroot']); $tpl->setVar('php_fpm_chroot_dir', $data['new']['document_root']); + $tpl->setVar('php_fpm_chroot_web_folder', sprintf('/%s', trim($web_folder, '/'))); $tpl->setVar('php_open_basedir', str_replace($tpl->getVar('document_root'), '', $tpl->getVar('php_open_basedir'))); $tpl->setVar('document_root', ''); } -- GitLab From cd18454906aa688af34030e45402edaa94076bce Mon Sep 17 00:00:00 2001 From: Webslice Date: Mon, 4 Mar 2019 15:20:09 +0100 Subject: [PATCH 036/215] Use 127.0.0.1 as APS db host if php_fpm_chroot, fixes #5235 --- interface/lib/classes/aps_guicontroller.inc.php | 9 +++++++++ 1 file changed, 9 insertions(+) diff --git a/interface/lib/classes/aps_guicontroller.inc.php b/interface/lib/classes/aps_guicontroller.inc.php index 80e011f4a..c895e40d0 100644 --- a/interface/lib/classes/aps_guicontroller.inc.php +++ b/interface/lib/classes/aps_guicontroller.inc.php @@ -249,6 +249,15 @@ class ApsGUIController extends ApsBase $settings['main_database_host'] = 'localhost'; $mysql_db_remote_access = 'n'; $mysql_db_remote_ips = ''; + + // If we are dealing with chrooted PHP-FPM, use a network connection instead because the MySQL socket file + // does not exist within the chroot. + $php_fpm_chroot = $app->db->queryOneRecord("SELECT php_fpm_chroot FROM web_domain WHERE domain_id = ?", $websrv['domain_id']); + if ($php_fpm_chroot['php_fpm_chroot'] === 'y') { + $settings['main_database_host'] = '127.0.0.1'; + $mysql_db_remote_access = 'y'; + $mysql_db_remote_ips = '127.0.0.1'; + } } else { //* get the default database server of the client $client = $app->db->queryOneRecord("SELECT default_dbserver FROM sys_group, client WHERE sys_group.client_id = client.client_id and sys_group.groupid = ?", $websrv['sys_groupid']); -- GitLab From 8c993eb7d082af85c5c168bb3420e19539f2886f Mon Sep 17 00:00:00 2001 From: Till Brehm Date: Mon, 4 Mar 2019 19:26:11 +0100 Subject: [PATCH 037/215] Fixeed #5262 Nginx ssl directive deprecated warning in ispconfig.vhost file --- install/dist/lib/fedora.lib.php | 4 ++-- install/dist/lib/gentoo.lib.php | 6 +++--- install/dist/lib/opensuse.lib.php | 4 ++-- install/lib/installer_base.lib.php | 6 +++--- install/tpl/nginx_apps.vhost.master | 6 +++--- install/tpl/nginx_ispconfig.vhost.master | 6 +++--- 6 files changed, 16 insertions(+), 16 deletions(-) diff --git a/install/dist/lib/fedora.lib.php b/install/dist/lib/fedora.lib.php index f1d57f9c8..889bd4288 100644 --- a/install/dist/lib/fedora.lib.php +++ b/install/dist/lib/fedora.lib.php @@ -1253,11 +1253,11 @@ class installer_dist extends installer_base { $content = str_replace('{vhost_port}', $conf['nginx']['vhost_port'], $content); if(is_file($install_dir.'/interface/ssl/ispserver.crt') && is_file($install_dir.'/interface/ssl/ispserver.key')) { - $content = str_replace('{ssl_on}', ' on', $content); + $content = str_replace('{ssl_on}', 'ssl', $content); $content = str_replace('{ssl_comment}', '', $content); $content = str_replace('{fastcgi_ssl}', 'on', $content); } else { - $content = str_replace('{ssl_on}', ' off', $content); + $content = str_replace('{ssl_on}', '', $content); $content = str_replace('{ssl_comment}', '#', $content); $content = str_replace('{fastcgi_ssl}', 'off', $content); } diff --git a/install/dist/lib/gentoo.lib.php b/install/dist/lib/gentoo.lib.php index af692b168..5bb0d9df1 100644 --- a/install/dist/lib/gentoo.lib.php +++ b/install/dist/lib/gentoo.lib.php @@ -785,7 +785,7 @@ class installer extends installer_base $content = str_replace('{cgi_socket}', $cgi_socket, $content); // SSL in apps vhost is off by default. Might change later. - $content = str_replace('{ssl_on}', 'off', $content); + $content = str_replace('{ssl_on}', 'ssl', $content); $content = str_replace('{ssl_comment}', '#', $content); wf($vhost_conf_dir.'/apps.vhost', $content); @@ -1139,11 +1139,11 @@ class installer extends installer_base $content = str_replace('{vhost_port}', $conf['nginx']['vhost_port'], $content); if(is_file($install_dir.'/interface/ssl/ispserver.crt') && is_file($install_dir.'/interface/ssl/ispserver.key')) { - $content = str_replace('{ssl_on}', ' on', $content); + $content = str_replace('{ssl_on}', 'ssl', $content); $content = str_replace('{ssl_comment}', '', $content); $content = str_replace('{fastcgi_ssl}', 'on', $content); } else { - $content = str_replace('{ssl_on}', ' off', $content); + $content = str_replace('{ssl_on}', '', $content); $content = str_replace('{ssl_comment}', '#', $content); $content = str_replace('{fastcgi_ssl}', 'off', $content); } diff --git a/install/dist/lib/opensuse.lib.php b/install/dist/lib/opensuse.lib.php index 6856317f9..21cfd9f2b 100644 --- a/install/dist/lib/opensuse.lib.php +++ b/install/dist/lib/opensuse.lib.php @@ -1264,11 +1264,11 @@ class installer_dist extends installer_base { $content = str_replace('{vhost_port}', $conf['nginx']['vhost_port'], $content); if(is_file($install_dir.'/interface/ssl/ispserver.crt') && is_file($install_dir.'/interface/ssl/ispserver.key')) { - $content = str_replace('{ssl_on}', ' on', $content); + $content = str_replace('{ssl_on}', 'ssl', $content); $content = str_replace('{ssl_comment}', '', $content); $content = str_replace('{fastcgi_ssl}', 'on', $content); } else { - $content = str_replace('{ssl_on}', ' off', $content); + $content = str_replace('{ssl_on}', '', $content); $content = str_replace('{ssl_comment}', '#', $content); $content = str_replace('{fastcgi_ssl}', 'off', $content); } diff --git a/install/lib/installer_base.lib.php b/install/lib/installer_base.lib.php index 10cfbaf96..385b6e13b 100644 --- a/install/lib/installer_base.lib.php +++ b/install/lib/installer_base.lib.php @@ -2131,7 +2131,7 @@ class installer_base { $content = str_replace('{use_socket}', $use_socket, $content); // SSL in apps vhost is off by default. Might change later. - $content = str_replace('{ssl_on}', 'off', $content); + $content = str_replace('{ssl_on}', '', $content); $content = str_replace('{ssl_comment}', '#', $content); // Fix socket path on PHP 7 systems @@ -2564,11 +2564,11 @@ class installer_base { $content = str_replace('{vhost_port}', $conf['nginx']['vhost_port'], $content); if(is_file($install_dir.'/interface/ssl/ispserver.crt') && is_file($install_dir.'/interface/ssl/ispserver.key')) { - $content = str_replace('{ssl_on}', 'on', $content); + $content = str_replace('{ssl_on}', 'ssl', $content); $content = str_replace('{ssl_comment}', '', $content); $content = str_replace('{fastcgi_ssl}', 'on', $content); } else { - $content = str_replace('{ssl_on}', 'off', $content); + $content = str_replace('{ssl_on}', '', $content); $content = str_replace('{ssl_comment}', '#', $content); $content = str_replace('{fastcgi_ssl}', 'off', $content); } diff --git a/install/tpl/nginx_apps.vhost.master b/install/tpl/nginx_apps.vhost.master index e1bb6d184..3d00d1110 100644 --- a/install/tpl/nginx_apps.vhost.master +++ b/install/tpl/nginx_apps.vhost.master @@ -1,7 +1,7 @@ server { - listen {apps_vhost_port}; - listen [::]:{apps_vhost_port} ipv6only=on; - ssl {ssl_on}; + listen {apps_vhost_port} {ssl_on}; + listen [::]:{apps_vhost_port} {ssl_on} ipv6only=on; + {ssl_comment}ssl_protocols TLSv1 TLSv1.1 TLSv1.2; {ssl_comment}ssl_certificate /usr/local/ispconfig/interface/ssl/ispserver.crt; {ssl_comment}ssl_certificate_key /usr/local/ispconfig/interface/ssl/ispserver.key; diff --git a/install/tpl/nginx_ispconfig.vhost.master b/install/tpl/nginx_ispconfig.vhost.master index 3c8bf5dba..aad670e97 100644 --- a/install/tpl/nginx_ispconfig.vhost.master +++ b/install/tpl/nginx_ispconfig.vhost.master @@ -1,7 +1,7 @@ server { - listen {vhost_port}; - listen [::]:{vhost_port} ipv6only=on; - ssl {ssl_on}; + listen {vhost_port} {ssl_on}; + listen [::]:{vhost_port} {ssl_on} ipv6only=on; + {ssl_comment}ssl_protocols TLSv1 TLSv1.1 TLSv1.2; {ssl_comment}ssl_certificate /usr/local/ispconfig/interface/ssl/ispserver.crt; {ssl_comment}ssl_certificate_key /usr/local/ispconfig/interface/ssl/ispserver.key; -- GitLab From 6591fc38e88b705ca984f2df4eec981a9852c2e8 Mon Sep 17 00:00:00 2001 From: Till Brehm Date: Mon, 4 Mar 2019 19:27:28 +0100 Subject: [PATCH 038/215] Set custom name for ISPConfig session to prevent collisions with other PHP applications. --- interface/lib/app.inc.php | 1 + 1 file changed, 1 insertion(+) diff --git a/interface/lib/app.inc.php b/interface/lib/app.inc.php index f8b59317d..ccc80fd25 100755 --- a/interface/lib/app.inc.php +++ b/interface/lib/app.inc.php @@ -88,6 +88,7 @@ class app { public function initialize_session() { //* Start the session if($this->_conf['start_session'] == true) { + session_name('ISPCSESS'); $this->uses('session'); $sess_timeout = $this->conf('interface', 'session_timeout'); $cookie_domain = $this->get_cookie_domain(); -- GitLab From 3f7f1e898a4314b57b895a2db75080296aed4e66 Mon Sep 17 00:00:00 2001 From: Till Brehm Date: Mon, 4 Mar 2019 19:33:27 +0100 Subject: [PATCH 039/215] Avoid apps vhost symlink warnings --- install/lib/installer_base.lib.php | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/install/lib/installer_base.lib.php b/install/lib/installer_base.lib.php index 385b6e13b..2c99f1bd0 100644 --- a/install/lib/installer_base.lib.php +++ b/install/lib/installer_base.lib.php @@ -2047,8 +2047,8 @@ class installer_base { //copy('tpl/apache_ispconfig.vhost.master', "$vhost_conf_dir/ispconfig.vhost"); //* and create the symlink if(@is_link($vhost_conf_enabled_dir.'/apps.vhost')) unlink($vhost_conf_enabled_dir.'/apps.vhost'); - if(!@is_link($vhost_conf_enabled_dir.'/000-apps.vhost')) { - symlink($vhost_conf_dir.'/apps.vhost', $vhost_conf_enabled_dir.'/000-apps.vhost'); + if(!@is_link($vhost_conf_enabled_dir.'/000-apps.vhost') && @is_file($vhost_conf_dir.'/apps.vhost')) { + @symlink($vhost_conf_dir.'/apps.vhost', $vhost_conf_enabled_dir.'/000-apps.vhost'); } if(!is_file($conf['web']['website_basedir'].'/php-fcgi-scripts/apps/.php-fcgi-starter')) { -- GitLab From 2844e9b858800fa0e0e30bfadd19d06326a5d1d5 Mon Sep 17 00:00:00 2001 From: Till Brehm Date: Tue, 5 Mar 2019 16:33:10 +0100 Subject: [PATCH 040/215] Fixes #5265 IDN Domain issues in email domain form Fixes #4972 Domain in spamfilter_user settings not punicode encoded --- .../plugins/mail_mail_domain_plugin.inc.php | 18 +++++---- interface/web/mail/mail_domain_edit.php | 38 +++++++++++-------- 2 files changed, 32 insertions(+), 24 deletions(-) diff --git a/interface/lib/plugins/mail_mail_domain_plugin.inc.php b/interface/lib/plugins/mail_mail_domain_plugin.inc.php index e72c4aa06..df6e3ffeb 100644 --- a/interface/lib/plugins/mail_mail_domain_plugin.inc.php +++ b/interface/lib/plugins/mail_mail_domain_plugin.inc.php @@ -26,6 +26,8 @@ class mail_mail_domain_plugin { */ function mail_mail_domain_edit($event_name, $page_form) { global $app, $conf; + + $domain = $app->functions->idn_encode($page_form->dataRecord['domain']); // make sure that the record belongs to the client group and not the admin group when a dmin inserts it // also make sure that the user can not delete entry created by an admin @@ -57,7 +59,7 @@ class mail_mail_domain_plugin { } //** If the domain name or owner has been changed, change the domain and owner in all mailbox records - if($page_form->oldDataRecord && ($page_form->oldDataRecord['domain'] != $page_form->dataRecord['domain'] || + if($page_form->oldDataRecord && ($page_form->oldDataRecord['domain'] != $domain || (isset($page_form->dataRecord['client_group_id']) && $page_form->oldDataRecord['sys_groupid'] != $page_form->dataRecord['client_group_id']))) { $app->uses('getconf'); $mail_config = $app->getconf->get_server_config($page_form->dataRecord["server_id"], 'mail'); @@ -71,9 +73,9 @@ class mail_mail_domain_plugin { foreach($mailusers as $rec) { // setting Maildir, Homedir, UID and GID $mail_parts = explode("@", $rec['email']); - $maildir = str_replace("[domain]", $page_form->dataRecord['domain'], $mail_config["maildir_path"]); + $maildir = str_replace("[domain]", $domain, $mail_config["maildir_path"]); $maildir = str_replace("[localpart]", $mail_parts[0], $maildir); - $email = $mail_parts[0].'@'.$page_form->dataRecord['domain']; + $email = $mail_parts[0].'@'.$domain; $app->db->datalogUpdate('mail_user', array("maildir" => $maildir, "email" => $email, "sys_userid" => $client_user_id, "sys_groupid" => $sys_groupid), 'mailuser_id', $rec['mailuser_id']); } } @@ -82,8 +84,8 @@ class mail_mail_domain_plugin { $forwardings = $app->db->queryAllRecords("SELECT * FROM mail_forwarding WHERE source LIKE ? OR destination LIKE ?", "%@" . $page_form->oldDataRecord['domain'], "%@" . $page_form->oldDataRecord['domain']); if(is_array($forwardings)) { foreach($forwardings as $rec) { - $destination = str_replace($page_form->oldDataRecord['domain'], $page_form->dataRecord['domain'], $rec['destination']); - $source = str_replace($page_form->oldDataRecord['domain'], $page_form->dataRecord['domain'], $rec['source']); + $destination = str_replace($page_form->oldDataRecord['domain'], $domain, $rec['destination']); + $source = str_replace($page_form->oldDataRecord['domain'], $domain, $rec['source']); $app->db->datalogUpdate('mail_forwarding', array("source" => $source, "destination" => $destination, "sys_userid" => $client_user_id, "sys_groupid" => $sys_groupid), 'forwarding_id', $rec['forwarding_id']); } } @@ -100,18 +102,18 @@ class mail_mail_domain_plugin { $mail_gets = $app->db->queryAllRecords("SELECT mailget_id, destination FROM mail_get WHERE destination LIKE ?", "%@" . $page_form->oldDataRecord['domain']); if(is_array($mail_gets)) { foreach($mail_gets as $rec) { - $destination = str_replace($page_form->oldDataRecord['domain'], $page_form->dataRecord['domain'], $rec['destination']); + $destination = str_replace($page_form->oldDataRecord['domain'], $domain, $rec['destination']); $app->db->datalogUpdate('mail_get', array("destination" => $destination, "sys_userid" => $client_user_id, "sys_groupid" => $sys_groupid), 'mailget_id', $rec['mailget_id']); } } - if ($page_form->oldDataRecord["domain"] != $page_form->dataRecord['domain']) { + if ($page_form->oldDataRecord["domain"] != $domain) { //* Delete the old spamfilter record $tmp = $app->db->queryOneRecord("SELECT id FROM spamfilter_users WHERE email = ?", "@" . $page_form->oldDataRecord["domain"]); $app->db->datalogDelete('spamfilter_users', 'id', $tmp["id"]); unset($tmp); } - $app->db->query("UPDATE spamfilter_users SET email=REPLACE(email, ?, ?), sys_userid = ?, sys_groupid = ? WHERE email LIKE ?", $page_form->oldDataRecord['domain'], $page_form->dataRecord['domain'], $client_user_id, $sys_groupid, "%@" . $page_form->oldDataRecord['domain']); + $app->db->query("UPDATE spamfilter_users SET email=REPLACE(email, ?, ?), sys_userid = ?, sys_groupid = ? WHERE email LIKE ?", $page_form->oldDataRecord['domain'], $domain, $client_user_id, $sys_groupid, "%@" . $page_form->oldDataRecord['domain']); } // end if domain name changed } diff --git a/interface/web/mail/mail_domain_edit.php b/interface/web/mail/mail_domain_edit.php index e39de91e0..72877a774 100644 --- a/interface/web/mail/mail_domain_edit.php +++ b/interface/web/mail/mail_domain_edit.php @@ -281,11 +281,13 @@ class page_action extends tform_actions { function onAfterInsert() { global $app, $conf; + + $domain = $app->functions->idn_encode($this->dataRecord["domain"]); // Spamfilter policy $policy_id = $app->functions->intval($this->dataRecord["policy"]); if($policy_id > 0) { - $tmp_user = $app->db->queryOneRecord("SELECT id FROM spamfilter_users WHERE email = ?", '@' . $this->dataRecord["domain"]); + $tmp_user = $app->db->queryOneRecord("SELECT id FROM spamfilter_users WHERE email = ?", '@' . $domain); if($tmp_user["id"] > 0) { // There is already a record that we will update $app->db->datalogUpdate('spamfilter_users', array("policy_id" => $policy_id), 'id', $tmp_user["id"]); @@ -301,8 +303,8 @@ class page_action extends tform_actions { "server_id" => $this->dataRecord["server_id"], "priority" => 5, "policy_id" => $policy_id, - "email" => '@' . $this->dataRecord["domain"], - "fullname" => '@' . $this->dataRecord["domain"], + "email" => '@' . $domain, + "fullname" => '@' . $domain, "local" => 'Y' ); $app->db->datalogInsert('spamfilter_users', $insert_data, 'id'); @@ -324,6 +326,8 @@ class page_action extends tform_actions { function onBeforeUpdate() { global $app, $conf; + + $domain = $app->functions->idn_encode($this->dataRecord["domain"]); //* Check if the server has been changed // We do this only for the admin or reseller users, as normal clients can not change the server ID anyway @@ -339,7 +343,7 @@ class page_action extends tform_actions { } else { //* We do not allow users to change a domain which has been created by the admin $rec = $app->db->queryOneRecord("SELECT domain from mail_domain WHERE domain_id = ?", $this->id); - if($rec['domain'] != $this->dataRecord["domain"] && !$app->tform->checkPerm($this->id, 'u')) { + if($rec['domain'] != $domain && !$app->tform->checkPerm($this->id, 'u')) { //* Add a error message and switch back to old server $app->tform->errorMessage .= $app->lng('The Domain can not be changed. Please ask your Administrator if you want to change the domain name.'); $this->dataRecord["domain"] = $rec['domain']; @@ -352,9 +356,11 @@ class page_action extends tform_actions { function onAfterUpdate() { global $app, $conf; + $domain = $app->functions->idn_encode($this->dataRecord["domain"]); + // Spamfilter policy $policy_id = $app->functions->intval($this->dataRecord["policy"]); - $tmp_user = $app->db->queryOneRecord("SELECT id FROM spamfilter_users WHERE email = ?", '@' . $this->dataRecord["domain"]); + $tmp_user = $app->db->queryOneRecord("SELECT id FROM spamfilter_users WHERE email = ?", '@' . $domain); if($policy_id > 0) { if($tmp_user["id"] > 0) { // There is already a record that we will update @@ -371,8 +377,8 @@ class page_action extends tform_actions { "server_id" => $this->dataRecord["server_id"], "priority" => 5, "policy_id" => $policy_id, - "email" => '@' . $this->dataRecord["domain"], - "fullname" => '@' . $this->dataRecord["domain"], + "email" => '@' . $domain, + "fullname" => '@' . $domain, "local" => 'Y' ); $app->db->datalogInsert('spamfilter_users', $insert_data, 'id'); @@ -385,7 +391,7 @@ class page_action extends tform_actions { } } // endif spamfilter policy //** If the domain name or owner has been changed, change the domain and owner in all mailbox records - if($this->oldDataRecord['domain'] != $this->dataRecord['domain'] || (isset($this->dataRecord['client_group_id']) && $this->oldDataRecord['sys_groupid'] != $this->dataRecord['client_group_id'])) { + if($this->oldDataRecord['domain'] != $domain || (isset($this->dataRecord['client_group_id']) && $this->oldDataRecord['sys_groupid'] != $this->dataRecord['client_group_id'])) { $app->uses('getconf'); $mail_config = $app->getconf->get_server_config($this->dataRecord["server_id"], 'mail'); @@ -398,7 +404,7 @@ class page_action extends tform_actions { foreach($mailusers as $rec) { // setting Maildir, Homedir, UID and GID $mail_parts = explode("@", $rec['email']); - $maildir = str_replace("[domain]", $this->dataRecord['domain'], $mail_config["maildir_path"]); + $maildir = str_replace("[domain]", $domain, $mail_config["maildir_path"]); $maildir = str_replace("[localpart]", $mail_parts[0], $maildir); $email = $mail_parts[0].'@'.$this->dataRecord['domain']; $app->db->datalogUpdate('mail_user', array("maildir" => $maildir, "email" => $email, "sys_userid" => $client_user_id, "sys_groupid" => $sys_groupid), 'mailuser_id', $rec['mailuser_id']); @@ -409,8 +415,8 @@ class page_action extends tform_actions { $forwardings = $app->db->queryAllRecords("SELECT * FROM mail_forwarding WHERE source like ? OR destination like ?", '%@' . $this->oldDataRecord['domain'], '%@' . $this->oldDataRecord['domain']); if(is_array($forwardings)) { foreach($forwardings as $rec) { - $destination = str_replace($this->oldDataRecord['domain'], $this->dataRecord['domain'], $rec['destination']); - $source = str_replace($this->oldDataRecord['domain'], $this->dataRecord['domain'], $rec['source']); + $destination = str_replace($this->oldDataRecord['domain'], $domain, $rec['destination']); + $source = str_replace($this->oldDataRecord['domain'], $domain, $rec['source']); $app->db->datalogUpdate('mail_forwarding', array("source" => $source, "destination" => $destination, "sys_userid" => $client_user_id, "sys_groupid" => $sys_groupid), 'forwarding_id', $rec['forwarding_id']); } } @@ -422,7 +428,7 @@ class page_action extends tform_actions { $fetchmail = $app->db->queryAllRecords("SELECT * FROM mail_get WHERE destination like ?", '%@' . $this->oldDataRecord['domain']); if(is_array($fetchmail)) { foreach($fetchmail as $rec) { - $destination = str_replace($this->oldDataRecord['domain'], $this->dataRecord['domain'], $rec['destination']); + $destination = str_replace($this->oldDataRecord['domain'], $domain, $rec['destination']); $app->db->datalogUpdate('mail_get', array("destination" => $destination, "sys_userid" => $client_user_id, "sys_groupid" => $sys_groupid), 'mailget_id', $rec['mailget_id']); } } @@ -436,15 +442,15 @@ class page_action extends tform_actions { //* update dns-record when the dkim record was changed // NOTE: only if the domain-name was not changed - if ( $this->dataRecord['active'] == 'y' && $this->dataRecord['domain'] == $this->oldDataRecord['domain'] ) { + if ( $this->dataRecord['active'] == 'y' && $domain == $this->oldDataRecord['domain'] ) { $dkim_active = @($this->dataRecord['dkim'] == 'y') ? true : false; $selector = @($this->dataRecord['dkim_selector'] != $this->oldDataRecord['dkim_selector']) ? true : false; $dkim_private = @($this->dataRecord['dkim_private'] != $this->oldDataRecord['dkim_private']) ? true : false; - $soaDomain = $this->dataRecord['domain'].'.'; + $soaDomain = $domain.'.'; while ((!isset($soa) && (substr_count($soaDomain,'.') > 1))) { $soa = $app->db->queryOneRecord("SELECT id AS zone, sys_userid, sys_groupid, sys_perm_user, sys_perm_group, sys_perm_other, server_id, ttl, serial FROM dns_soa WHERE active = 'Y' AND origin = ?", $soaDomain); - $soaDomain = preg_replace("/^\w+\./","",$soaDomain); + $soaDomain = preg_replace("/^[\w\-]+\./","",$soaDomain); } if ( ($selector || $dkim_private || $dkim_active) && $dkim_active ) @@ -455,7 +461,7 @@ class page_action extends tform_actions { if (! $dkim_active) { // updated existing dmarc-record to policy 'none' $sql = "SELECT * from dns_rr WHERE name = ? AND data LIKE 'v=DMARC1%' AND " . $app->tform->getAuthSQL('r'); - $rec = $app->db->queryOneRecord($sql, '_dmarc.'.$this->dataRecord['domain'].'.'); + $rec = $app->db->queryOneRecord($sql, '_dmarc.'.$domain.'.'); if (is_array($rec)) if (strpos($rec['data'], 'p=none=') === false) { $rec['data'] = str_replace(array('quarantine', 'reject'), 'none', $rec['data']); -- GitLab From 3785448ee207e33cdf4418384eeb2030c8b32a33 Mon Sep 17 00:00:00 2001 From: Till Brehm Date: Tue, 5 Mar 2019 17:51:21 +0100 Subject: [PATCH 041/215] Implemented #5237 DNS: xfer / also_notify fields too short --- install/sql/incremental/upd_dev_collection.sql | 2 ++ install/sql/ispconfig3.sql | 4 ++-- 2 files changed, 4 insertions(+), 2 deletions(-) diff --git a/install/sql/incremental/upd_dev_collection.sql b/install/sql/incremental/upd_dev_collection.sql index 4c855b541..b9fb91d46 100644 --- a/install/sql/incremental/upd_dev_collection.sql +++ b/install/sql/incremental/upd_dev_collection.sql @@ -79,3 +79,5 @@ INSERT IGNORE INTO `dns_ssl_ca` (`id`, `sys_userid`, `sys_groupid`, `sys_perm_us (NULL, 1, 1, 'riud', 'riud', '', 'Y', 'WoSign', 'wosign.com', 'Y', '', 0); ALTER TABLE `dns_soa` CHANGE `xfer` `xfer` TEXT NOT NULL DEFAULT ''; +ALTER TABLE `dns_soa` CHANGE `also_notify` `also_notify` TEXT NOT NULL DEFAULT ''; +ALTER TABLE `dns_slave` CHANGE `xfer` `xfer` TEXT NOT NULL DEFAULT ''; \ No newline at end of file diff --git a/install/sql/ispconfig3.sql b/install/sql/ispconfig3.sql index dd45aa209..f06a49b7e 100644 --- a/install/sql/ispconfig3.sql +++ b/install/sql/ispconfig3.sql @@ -516,7 +516,7 @@ CREATE TABLE `dns_slave` ( `origin` varchar(255) NOT NULL DEFAULT '', `ns` varchar(255) NOT NULL DEFAULT '', `active` enum('N','Y') NOT NULL DEFAULT 'N', - `xfer` varchar(255) NOT NULL DEFAULT '', + `xfer` TEXT NOT NULL DEFAULT '', PRIMARY KEY (`id`), UNIQUE KEY `slave` (`origin`,`server_id`), KEY `active` (`active`) @@ -621,7 +621,7 @@ CREATE TABLE `dns_soa` ( `ttl` int(11) unsigned NOT NULL default '3600', `active` enum('N','Y') NOT NULL DEFAULT 'N', `xfer` TEXT NOT NULL DEFAULT '', - `also_notify` varchar(255) default NULL, + `also_notify` TEXT NOT NULL DEFAULT '', `update_acl` varchar(255) default NULL, `dnssec_initialized` ENUM('Y','N') NOT NULL DEFAULT 'N', `dnssec_wanted` ENUM('Y','N') NOT NULL DEFAULT 'N', -- GitLab From 26c7874eafc76f1873d01e69d091ebb0024ed2bc Mon Sep 17 00:00:00 2001 From: Webslice <4052-webslice@users.noreply.git.ispconfig.org> Date: Tue, 5 Mar 2019 17:53:46 +0100 Subject: [PATCH 042/215] Feature/password strength checker for aps --- .../lib/classes/aps_guicontroller.inc.php | 10 ++ interface/web/sites/lib/lang/ar_aps.lng | 5 + interface/web/sites/lib/lang/bg_aps.lng | 7 +- interface/web/sites/lib/lang/br_aps.lng | 7 +- interface/web/sites/lib/lang/ca_aps.lng | 7 +- interface/web/sites/lib/lang/cz_aps.lng | 7 +- interface/web/sites/lib/lang/de_aps.lng | 7 +- interface/web/sites/lib/lang/dk_aps.lng | 5 + interface/web/sites/lib/lang/el_aps.lng | 5 + interface/web/sites/lib/lang/en_aps.lng | 5 + interface/web/sites/lib/lang/es_aps.lng | 5 + interface/web/sites/lib/lang/fi_aps.lng | 5 + interface/web/sites/lib/lang/fr_aps.lng | 5 + interface/web/sites/lib/lang/hr_aps.lng | 5 + interface/web/sites/lib/lang/hu_aps.lng | 5 + interface/web/sites/lib/lang/id_aps.lng | 5 + interface/web/sites/lib/lang/it_aps.lng | 5 + interface/web/sites/lib/lang/ja_aps.lng | 5 + interface/web/sites/lib/lang/nl_aps.lng | 5 + interface/web/sites/lib/lang/pl_aps.lng | 5 + interface/web/sites/lib/lang/pt_aps.lng | 5 + interface/web/sites/lib/lang/ro_aps.lng | 5 + interface/web/sites/lib/lang/ru_aps.lng | 5 + interface/web/sites/lib/lang/se_aps.lng | 5 + interface/web/sites/lib/lang/sk_aps.lng | 5 + interface/web/sites/lib/lang/tr_aps.lng | 5 + .../sites/templates/aps_install_package.htm | 155 +++++++++++++----- 27 files changed, 251 insertions(+), 49 deletions(-) diff --git a/interface/lib/classes/aps_guicontroller.inc.php b/interface/lib/classes/aps_guicontroller.inc.php index c895e40d0..8a764a9c5 100644 --- a/interface/lib/classes/aps_guicontroller.inc.php +++ b/interface/lib/classes/aps_guicontroller.inc.php @@ -567,6 +567,16 @@ class ApsGUIController extends ApsBase } else $error[] = $app->lng('error_main_domain'); + if(isset($postinput['admin_password'])) + { + $app->uses('validate_password'); + + $passwordError = $app->validate_password->password_check('', $postinput['admin_password'], ''); + if ($passwordError) { + $error[] = $passwordError; + } + } + // Main location (not obligatory but must be supplied) if(isset($postinput['main_location'])) { diff --git a/interface/web/sites/lib/lang/ar_aps.lng b/interface/web/sites/lib/lang/ar_aps.lng index 29fb7b6a4..881c146a4 100644 --- a/interface/web/sites/lib/lang/ar_aps.lng +++ b/interface/web/sites/lib/lang/ar_aps.lng @@ -55,4 +55,9 @@ $wb['packagelist_update_finished_txt'] = 'APS Packagelist update finished.'; $wb['btn_install_txt'] = 'Install'; $wb['btn_cancel_txt'] = 'Cancel'; $wb['limit_aps_txt'] = 'The max. number of APS instances for your account is reached.'; +$wb['generate_password_txt'] = 'Generate Password'; +$wb['repeat_password_txt'] = 'Repeat Password'; +$wb['password_mismatch_txt'] = 'The passwords do not match.'; +$wb['password_match_txt'] = 'The passwords do match.'; +$wb['password_strength_txt'] = 'Password strength'; ?> diff --git a/interface/web/sites/lib/lang/bg_aps.lng b/interface/web/sites/lib/lang/bg_aps.lng index 29fb7b6a4..5313f2d91 100644 --- a/interface/web/sites/lib/lang/bg_aps.lng +++ b/interface/web/sites/lib/lang/bg_aps.lng @@ -55,4 +55,9 @@ $wb['packagelist_update_finished_txt'] = 'APS Packagelist update finished.'; $wb['btn_install_txt'] = 'Install'; $wb['btn_cancel_txt'] = 'Cancel'; $wb['limit_aps_txt'] = 'The max. number of APS instances for your account is reached.'; -?> +$wb['generate_password_txt'] = 'Generate Password'; +$wb['repeat_password_txt'] = 'Repeat Password'; +$wb['password_mismatch_txt'] = 'The passwords do not match.'; +$wb['password_match_txt'] = 'The passwords do match.'; +$wb['password_strength_txt'] = 'Сила на паролата'; +?> \ No newline at end of file diff --git a/interface/web/sites/lib/lang/br_aps.lng b/interface/web/sites/lib/lang/br_aps.lng index 6c5be1da5..46cfabfb0 100644 --- a/interface/web/sites/lib/lang/br_aps.lng +++ b/interface/web/sites/lib/lang/br_aps.lng @@ -55,4 +55,9 @@ $wb['packagelist_update_finished_txt'] = 'Atualização da lista de pacotes fina $wb['btn_install_txt'] = 'Instalar'; $wb['btn_cancel_txt'] = 'Cancelar'; $wb['limit_aps_txt'] = 'O limite de instâncias de apps para esta conta foi alcançado.'; -?> +$wb['generate_password_txt'] = 'Gerar senha'; +$wb['repeat_password_txt'] = 'Repetir senha'; +$wb['password_mismatch_txt'] = 'A senhas não coincidem.'; +$wb['password_match_txt'] = 'A senhas coincidem.'; +$wb['password_strength_txt'] = 'Dificuldade da senha'; +?> \ No newline at end of file diff --git a/interface/web/sites/lib/lang/ca_aps.lng b/interface/web/sites/lib/lang/ca_aps.lng index 2c90556d6..bbf799bb3 100644 --- a/interface/web/sites/lib/lang/ca_aps.lng +++ b/interface/web/sites/lib/lang/ca_aps.lng @@ -55,4 +55,9 @@ $wb['packagelist_update_finished_txt'] = 'Mise à jour APS Packagelist terminée $wb['btn_install_txt'] = 'Installer'; $wb['btn_cancel_txt'] = 'Annuler'; $wb['limit_aps_txt'] = 'Le nombre max d\'instances APS pour votre compte a été atteint.'; -?> +$wb['generate_password_txt'] = 'Générer un mot de passe'; +$wb['repeat_password_txt'] = 'Vérification du mot de passe'; +$wb['password_mismatch_txt'] = 'Les mots de passe ne correspondent pas.'; +$wb['password_match_txt'] = 'Les mots de passe correspondent.'; +$wb['password_strength_txt'] = 'Force du mot de passe'; +?> \ No newline at end of file diff --git a/interface/web/sites/lib/lang/cz_aps.lng b/interface/web/sites/lib/lang/cz_aps.lng index 5ec94945d..36bc6816f 100644 --- a/interface/web/sites/lib/lang/cz_aps.lng +++ b/interface/web/sites/lib/lang/cz_aps.lng @@ -55,4 +55,9 @@ $wb['packagelist_update_finished_txt'] = 'APS aktualizace seznamu balíčků byl $wb['btn_install_txt'] = 'Instalovat'; $wb['btn_cancel_txt'] = 'Zrušit'; $wb['limit_aps_txt'] = 'Max. počet APS instancí u vašeho účtu je dosaženo.'; -?> +$wb['generate_password_txt'] = 'Generovat heslo'; +$wb['repeat_password_txt'] = 'Opakujte heslo'; +$wb['password_mismatch_txt'] = 'Hesla se neshodují.'; +$wb['password_match_txt'] = 'Hesla se shodují.'; +$wb['password_strength_txt'] = 'Bezpečnost hesla'; +?> \ No newline at end of file diff --git a/interface/web/sites/lib/lang/de_aps.lng b/interface/web/sites/lib/lang/de_aps.lng index aab6f4edf..bb986b5c4 100644 --- a/interface/web/sites/lib/lang/de_aps.lng +++ b/interface/web/sites/lib/lang/de_aps.lng @@ -55,4 +55,9 @@ $wb['installation_success_txt'] = 'Installiert'; $wb['installation_remove_txt'] = 'Deinstallation vorgemerkt'; $wb['packagelist_update_finished_txt'] = 'APS Paketlistenupdate beendet.'; $wb['limit_aps_txt'] = 'Die maximale Anzahl an APS-Instanzen für Ihr Konto wurde erreicht.'; -?> +$wb['generate_password_txt'] = 'Passwort erzeugen'; +$wb['repeat_password_txt'] = 'Passwort wiederholen'; +$wb['password_mismatch_txt'] = 'Die Passwörter stimmen nicht überein.'; +$wb['password_match_txt'] = 'Die Passwörter stimmen überein.'; +$wb['password_strength_txt'] = 'Passwortkomplexität'; +?> \ No newline at end of file diff --git a/interface/web/sites/lib/lang/dk_aps.lng b/interface/web/sites/lib/lang/dk_aps.lng index 835087535..ca006e2eb 100644 --- a/interface/web/sites/lib/lang/dk_aps.lng +++ b/interface/web/sites/lib/lang/dk_aps.lng @@ -55,4 +55,9 @@ $wb['installation_success_txt'] = 'Installeret'; $wb['installation_remove_txt'] = 'Fjernelse planlagt'; $wb['packagelist_update_finished_txt'] = 'APS Pakke Liste opdatering er færdig.'; $wb['limit_aps_txt'] = 'Max. antal af APS forekomster for din konto er nået.'; +$wb['generate_password_txt'] = 'Generer Adgangskode'; +$wb['repeat_password_txt'] = 'Gentage Adgangskode'; +$wb['password_mismatch_txt'] = 'Adgangskoderne stemmer ikke overens.'; +$wb['password_match_txt'] = 'Adgangskoderne stemmer overens.'; +$wb['password_strength_txt'] = 'Adgangskode styrke'; ?> diff --git a/interface/web/sites/lib/lang/el_aps.lng b/interface/web/sites/lib/lang/el_aps.lng index 29fb7b6a4..0209737f6 100644 --- a/interface/web/sites/lib/lang/el_aps.lng +++ b/interface/web/sites/lib/lang/el_aps.lng @@ -55,4 +55,9 @@ $wb['packagelist_update_finished_txt'] = 'APS Packagelist update finished.'; $wb['btn_install_txt'] = 'Install'; $wb['btn_cancel_txt'] = 'Cancel'; $wb['limit_aps_txt'] = 'The max. number of APS instances for your account is reached.'; +$wb['generate_password_txt'] = 'Generate Password'; +$wb['repeat_password_txt'] = 'Repeat Password'; +$wb['password_mismatch_txt'] = 'The passwords do not match.'; +$wb['password_match_txt'] = 'The passwords do match.'; +$wb['password_strength_txt'] = 'Δύναμη συνθηματικού'; ?> diff --git a/interface/web/sites/lib/lang/en_aps.lng b/interface/web/sites/lib/lang/en_aps.lng index bd33c1884..b0300fe0c 100644 --- a/interface/web/sites/lib/lang/en_aps.lng +++ b/interface/web/sites/lib/lang/en_aps.lng @@ -55,4 +55,9 @@ $wb['installation_success_txt'] = 'Installed'; $wb['installation_remove_txt'] = 'Removal planned'; $wb['packagelist_update_finished_txt'] = 'APS Packagelist update finished.'; $wb["limit_aps_txt"] = 'The max. number of APS instances for your account is reached.'; +$wb["generate_password_txt"] = 'Generate Password'; +$wb["repeat_password_txt"] = 'Repeat Password'; +$wb["password_mismatch_txt"] = 'The passwords do not match.'; +$wb["password_match_txt"] = 'The passwords do match.'; +$wb["password_strength_txt"] = "Password strength"; ?> \ No newline at end of file diff --git a/interface/web/sites/lib/lang/es_aps.lng b/interface/web/sites/lib/lang/es_aps.lng index 746631008..3780b32ed 100755 --- a/interface/web/sites/lib/lang/es_aps.lng +++ b/interface/web/sites/lib/lang/es_aps.lng @@ -55,4 +55,9 @@ $wb['supported_languages_txt'] = 'Idiomas soportados'; $wb['supported_php_versions_txt'] = 'Versiones de PHP soportadas'; $wb['version_txt'] = 'Versión'; $wb['yes_txt'] = 'Sí'; +$wb['generate_password_txt'] = 'Generar contraseña'; +$wb['repeat_password_txt'] = 'Repetir contraseña'; +$wb['password_mismatch_txt'] = 'Las contraseñas no coinciden.'; +$wb['password_match_txt'] = 'Las contraseñas coinciden.'; +$wb['password_strength_txt'] = 'Fortaleza de la contraseña'; ?> diff --git a/interface/web/sites/lib/lang/fi_aps.lng b/interface/web/sites/lib/lang/fi_aps.lng index 29fb7b6a4..d78701f27 100644 --- a/interface/web/sites/lib/lang/fi_aps.lng +++ b/interface/web/sites/lib/lang/fi_aps.lng @@ -55,4 +55,9 @@ $wb['packagelist_update_finished_txt'] = 'APS Packagelist update finished.'; $wb['btn_install_txt'] = 'Install'; $wb['btn_cancel_txt'] = 'Cancel'; $wb['limit_aps_txt'] = 'The max. number of APS instances for your account is reached.'; +$wb['generate_password_txt'] = 'Generate Password'; +$wb['repeat_password_txt'] = 'Repeat Password'; +$wb['password_mismatch_txt'] = 'The passwords do not match.'; +$wb['password_match_txt'] = 'The passwords do match.'; +$wb['password_strength_txt'] = 'Salasanan vahvuus'; ?> diff --git a/interface/web/sites/lib/lang/fr_aps.lng b/interface/web/sites/lib/lang/fr_aps.lng index 10b6edbcf..6beef9939 100644 --- a/interface/web/sites/lib/lang/fr_aps.lng +++ b/interface/web/sites/lib/lang/fr_aps.lng @@ -55,4 +55,9 @@ $wb['packagelist_update_finished_txt'] = 'Mise à jour APS Packagelist terminée $wb['btn_install_txt'] = 'Installer'; $wb['btn_cancel_txt'] = 'Annuler'; $wb['limit_aps_txt'] = 'Le nombre max d’instances APS pour votre compte a été atteint.'; +$wb['generate_password_txt'] = 'Générer un mot de passe'; +$wb['repeat_password_txt'] = 'Vérification du mot de passe'; +$wb['password_mismatch_txt'] = 'Les mots de passe ne correspondent pas.'; +$wb['password_match_txt'] = 'Les mots de passe correspondent.'; +$wb['password_strength_txt'] = 'Force du mot de passe'; ?> diff --git a/interface/web/sites/lib/lang/hr_aps.lng b/interface/web/sites/lib/lang/hr_aps.lng index 8b2fa6450..79d31cf7f 100644 --- a/interface/web/sites/lib/lang/hr_aps.lng +++ b/interface/web/sites/lib/lang/hr_aps.lng @@ -55,4 +55,9 @@ $wb['packagelist_update_finished_txt'] = 'Nadogradnja APS liste paketa je završ $wb['btn_install_txt'] = 'Instaliraj'; $wb['btn_cancel_txt'] = 'Odustani'; $wb['limit_aps_txt'] = 'Iskoristili ste maksimalan broj APS instanci za vaš račun.'; +$wb['generate_password_txt'] = 'Generiraj šifru'; +$wb['repeat_password_txt'] = 'Ponovi šifru'; +$wb['password_mismatch_txt'] = 'Šifre nisu identične.'; +$wb['password_match_txt'] = 'Šifre su identične.'; +$wb['password_strength_txt'] = 'Jačina šifre'; ?> diff --git a/interface/web/sites/lib/lang/hu_aps.lng b/interface/web/sites/lib/lang/hu_aps.lng index 29fb7b6a4..88708732d 100644 --- a/interface/web/sites/lib/lang/hu_aps.lng +++ b/interface/web/sites/lib/lang/hu_aps.lng @@ -55,4 +55,9 @@ $wb['packagelist_update_finished_txt'] = 'APS Packagelist update finished.'; $wb['btn_install_txt'] = 'Install'; $wb['btn_cancel_txt'] = 'Cancel'; $wb['limit_aps_txt'] = 'The max. number of APS instances for your account is reached.'; +$wb['generate_password_txt'] = 'Generate Password'; +$wb['repeat_password_txt'] = 'Repeat Password'; +$wb['password_mismatch_txt'] = 'The passwords do not match.'; +$wb['password_match_txt'] = 'The passwords do match.'; +$wb['password_strength_txt'] = 'Jelszó erőssége'; ?> diff --git a/interface/web/sites/lib/lang/id_aps.lng b/interface/web/sites/lib/lang/id_aps.lng index 29fb7b6a4..b8c9af215 100644 --- a/interface/web/sites/lib/lang/id_aps.lng +++ b/interface/web/sites/lib/lang/id_aps.lng @@ -55,4 +55,9 @@ $wb['packagelist_update_finished_txt'] = 'APS Packagelist update finished.'; $wb['btn_install_txt'] = 'Install'; $wb['btn_cancel_txt'] = 'Cancel'; $wb['limit_aps_txt'] = 'The max. number of APS instances for your account is reached.'; +$wb['generate_password_txt'] = 'Generate Password'; +$wb['repeat_password_txt'] = 'Repeat Password'; +$wb['password_mismatch_txt'] = 'The passwords do not match.'; +$wb['password_match_txt'] = 'The passwords do match.'; +$wb['password_strength_txt'] = 'Kekuatan Sandi'; ?> diff --git a/interface/web/sites/lib/lang/it_aps.lng b/interface/web/sites/lib/lang/it_aps.lng index ced17becd..0a6365f98 100644 --- a/interface/web/sites/lib/lang/it_aps.lng +++ b/interface/web/sites/lib/lang/it_aps.lng @@ -55,4 +55,9 @@ $wb['packagelist_update_finished_txt'] = 'Elenco aggiornamenti APS terminato.'; $wb['btn_install_txt'] = 'Installa'; $wb['btn_cancel_txt'] = 'Annulla'; $wb['limit_aps_txt'] = 'Nmero massimo di istanza APS raggiunto per il tuo account.'; +$wb['generate_password_txt'] = 'Genera Password'; +$wb['repeat_password_txt'] = 'Ripeti Password'; +$wb['password_mismatch_txt'] = 'Le password non coincidono.'; +$wb['password_match_txt'] = 'Le password coincidono.'; +$wb['password_strength_txt'] = 'Livello sicurezza Password'; ?> diff --git a/interface/web/sites/lib/lang/ja_aps.lng b/interface/web/sites/lib/lang/ja_aps.lng index 29fb7b6a4..dc6b22edf 100644 --- a/interface/web/sites/lib/lang/ja_aps.lng +++ b/interface/web/sites/lib/lang/ja_aps.lng @@ -55,4 +55,9 @@ $wb['packagelist_update_finished_txt'] = 'APS Packagelist update finished.'; $wb['btn_install_txt'] = 'Install'; $wb['btn_cancel_txt'] = 'Cancel'; $wb['limit_aps_txt'] = 'The max. number of APS instances for your account is reached.'; +$wb['generate_password_txt'] = 'Generate Password'; +$wb['repeat_password_txt'] = 'Repeat Password'; +$wb['password_mismatch_txt'] = 'The passwords do not match.'; +$wb['password_match_txt'] = 'The passwords do match.'; +$wb['password_strength_txt'] = 'パスワードの強度'; ?> diff --git a/interface/web/sites/lib/lang/nl_aps.lng b/interface/web/sites/lib/lang/nl_aps.lng index 9d51f7457..c0adacee9 100644 --- a/interface/web/sites/lib/lang/nl_aps.lng +++ b/interface/web/sites/lib/lang/nl_aps.lng @@ -55,4 +55,9 @@ $wb['packagelist_update_finished_txt'] = 'APS Packagelist update finished.'; $wb['btn_install_txt'] = 'Installeren'; $wb['btn_cancel_txt'] = 'Annuleren'; $wb['limit_aps_txt'] = 'The max. number of APS instances for your account is reached.'; +$wb['generate_password_txt'] = 'Generate Password'; +$wb['repeat_password_txt'] = 'Repeat Password'; +$wb['password_mismatch_txt'] = 'The passwords do not match.'; +$wb['password_match_txt'] = 'The passwords do match.'; +$wb['password_strength_txt'] = 'Wachtwoord sterkte'; ?> diff --git a/interface/web/sites/lib/lang/pl_aps.lng b/interface/web/sites/lib/lang/pl_aps.lng index 1a2ffad68..c17bbca53 100644 --- a/interface/web/sites/lib/lang/pl_aps.lng +++ b/interface/web/sites/lib/lang/pl_aps.lng @@ -55,4 +55,9 @@ $wb['packagelist_update_finished_txt'] = 'Aktualizacja listy pakietów APS zako $wb['btn_install_txt'] = 'Instaluj'; $wb['btn_cancel_txt'] = 'Anuluj'; $wb['limit_aps_txt'] = 'Maksymalna liczba instancji APS dla Twojego konta została wyczerpana.'; +$wb['generate_password_txt'] = 'Generuj hasło'; +$wb['repeat_password_txt'] = 'Powtórz hasło'; +$wb['password_mismatch_txt'] = 'Hasła nie pasują do siebie'; +$wb['password_match_txt'] = 'Hasła pasują'; +$wb['password_strength_txt'] = 'Siła hasła'; ?> diff --git a/interface/web/sites/lib/lang/pt_aps.lng b/interface/web/sites/lib/lang/pt_aps.lng index 29fb7b6a4..c17ef0091 100644 --- a/interface/web/sites/lib/lang/pt_aps.lng +++ b/interface/web/sites/lib/lang/pt_aps.lng @@ -55,4 +55,9 @@ $wb['packagelist_update_finished_txt'] = 'APS Packagelist update finished.'; $wb['btn_install_txt'] = 'Install'; $wb['btn_cancel_txt'] = 'Cancel'; $wb['limit_aps_txt'] = 'The max. number of APS instances for your account is reached.'; +$wb['generate_password_txt'] = 'Generate Password'; +$wb['repeat_password_txt'] = 'Repeat Password'; +$wb['password_mismatch_txt'] = 'The passwords do not match.'; +$wb['password_match_txt'] = 'The passwords do match.'; +$wb['password_strength_txt'] = 'Dificuldade da senha'; ?> diff --git a/interface/web/sites/lib/lang/ro_aps.lng b/interface/web/sites/lib/lang/ro_aps.lng index 29fb7b6a4..881c146a4 100644 --- a/interface/web/sites/lib/lang/ro_aps.lng +++ b/interface/web/sites/lib/lang/ro_aps.lng @@ -55,4 +55,9 @@ $wb['packagelist_update_finished_txt'] = 'APS Packagelist update finished.'; $wb['btn_install_txt'] = 'Install'; $wb['btn_cancel_txt'] = 'Cancel'; $wb['limit_aps_txt'] = 'The max. number of APS instances for your account is reached.'; +$wb['generate_password_txt'] = 'Generate Password'; +$wb['repeat_password_txt'] = 'Repeat Password'; +$wb['password_mismatch_txt'] = 'The passwords do not match.'; +$wb['password_match_txt'] = 'The passwords do match.'; +$wb['password_strength_txt'] = 'Password strength'; ?> diff --git a/interface/web/sites/lib/lang/ru_aps.lng b/interface/web/sites/lib/lang/ru_aps.lng index f403143e5..3dd4ad0a8 100644 --- a/interface/web/sites/lib/lang/ru_aps.lng +++ b/interface/web/sites/lib/lang/ru_aps.lng @@ -55,4 +55,9 @@ $wb['packagelist_update_finished_txt'] = 'Обновление списка па $wb['btn_install_txt'] = 'Установка'; $wb['btn_cancel_txt'] = 'Отменить'; $wb['limit_aps_txt'] = 'Макс. количество экземпляров APS достигнуто.'; +$wb['generate_password_txt'] = 'Создать пароль'; +$wb['repeat_password_txt'] = 'Повторить пароль'; +$wb['password_mismatch_txt'] = 'Пароли не совпадают.'; +$wb['password_match_txt'] = 'Эти пароли совпадают.'; +$wb['password_strength_txt'] = 'Стойкость пароля'; ?> diff --git a/interface/web/sites/lib/lang/se_aps.lng b/interface/web/sites/lib/lang/se_aps.lng index 1a21cd0fd..3b32095d6 100644 --- a/interface/web/sites/lib/lang/se_aps.lng +++ b/interface/web/sites/lib/lang/se_aps.lng @@ -55,4 +55,9 @@ $wb['packagelist_update_finished_txt'] = 'APS Packagelist update finished.'; $wb['btn_install_txt'] = 'Installera'; $wb['btn_cancel_txt'] = 'Avbryt'; $wb['limit_aps_txt'] = 'The max. number of APS instances for your account is reached.'; +$wb['generate_password_txt'] = 'Generate Password'; +$wb['repeat_password_txt'] = 'Repeat Password'; +$wb['password_mismatch_txt'] = 'The passwords do not match.'; +$wb['password_match_txt'] = 'The passwords do match.'; +$wb['password_strength_txt'] = 'Password strength'; ?> diff --git a/interface/web/sites/lib/lang/sk_aps.lng b/interface/web/sites/lib/lang/sk_aps.lng index 29fb7b6a4..d6e6c7f4c 100644 --- a/interface/web/sites/lib/lang/sk_aps.lng +++ b/interface/web/sites/lib/lang/sk_aps.lng @@ -55,4 +55,9 @@ $wb['packagelist_update_finished_txt'] = 'APS Packagelist update finished.'; $wb['btn_install_txt'] = 'Install'; $wb['btn_cancel_txt'] = 'Cancel'; $wb['limit_aps_txt'] = 'The max. number of APS instances for your account is reached.'; +$wb['generate_password_txt'] = 'Generate Password'; +$wb['repeat_password_txt'] = 'Repeat Password'; +$wb['password_mismatch_txt'] = 'The passwords do not match.'; +$wb['password_match_txt'] = 'The passwords do match.'; +$wb['password_strength_txt'] = 'Pevnosť hesla'; ?> diff --git a/interface/web/sites/lib/lang/tr_aps.lng b/interface/web/sites/lib/lang/tr_aps.lng index 534ee020a..1c6ccd49a 100644 --- a/interface/web/sites/lib/lang/tr_aps.lng +++ b/interface/web/sites/lib/lang/tr_aps.lng @@ -55,4 +55,9 @@ $wb['installation_success_txt'] = 'Yüklendi'; $wb['installation_remove_txt'] = 'Kaldırma planlandı'; $wb['packagelist_update_finished_txt'] = 'APS paket listesi güncellendi.'; $wb['limit_aps_txt'] = 'Hesabınıza ekleyebileceğiniz en fazla APS kopyası sayısına ulaştınız.'; +$wb['generate_password_txt'] = 'Parola Oluştur'; +$wb['repeat_password_txt'] = 'Parola Onayı'; +$wb['password_mismatch_txt'] = 'Parola ile onayı aynı değil.'; +$wb['password_match_txt'] = 'Parola ile onayı aynı.'; +$wb['password_strength_txt'] = 'Parola Güçlüğü'; ?> diff --git a/interface/web/sites/templates/aps_install_package.htm b/interface/web/sites/templates/aps_install_package.htm index d04d67153..2c4b48b9d 100644 --- a/interface/web/sites/templates/aps_install_package.htm +++ b/interface/web/sites/templates/aps_install_package.htm @@ -1,58 +1,125 @@

- {tmpl_var name='installation_txt'}: {tmpl_var name='pkg_name'} {tmpl_var name='pkg_version'}-{tmpl_var name='pkg_release'} - - - {tmpl_var name='pkg_name'} - - + {tmpl_var name='installation_txt'}: {tmpl_var name='pkg_name'} {tmpl_var name='pkg_version'}-{tmpl_var name='pkg_release'} + + + {tmpl_var name='pkg_name'} + +

- + -

ERROR

    {tmpl_var name='error'}
+

ERROR

    {tmpl_var name='error'}
- - {tmpl_var name='basic_settings_txt'} -
- -
-
+ + {tmpl_var name='basic_settings_txt'} +
+ +
+
http(s)://
DOMAIN_LIST_SPACE
/ -
+
-
+
-
- -
-
- - PKG_SETTINGS_SPACE - - {tmpl_var name='license_txt'} -
- - {tmpl_var name='pkg_license_name'}
- - {tmpl_var name='pkg_license_content'} - -
-
-
-
- -
checked/>   {tmpl_var name='acceptance_text'} -
- - - -
- - -
+
+ +
+
+ + + PKG_SETTINGS_SPACE + + {tmpl_var name='license_txt'} +
+ + {tmpl_var name='pkg_license_name'}
+ + {tmpl_var name='pkg_license_content'} + +
+
+
+
+ +
+ checked/>   {tmpl_var name='acceptance_text'} +
+
+ + + +
+
+ + +
+
+ + + + -- GitLab From 1a83392810d3b2829409e59a72975c3839cde69b Mon Sep 17 00:00:00 2001 From: Till Brehm Date: Tue, 5 Mar 2019 18:02:48 +0100 Subject: [PATCH 043/215] Fixed #5219 Run getmail only on master when server is a mirror --- server/plugins-available/getmail_plugin.inc.php | 3 +++ 1 file changed, 3 insertions(+) diff --git a/server/plugins-available/getmail_plugin.inc.php b/server/plugins-available/getmail_plugin.inc.php index 5b1edfbab..a4481037f 100644 --- a/server/plugins-available/getmail_plugin.inc.php +++ b/server/plugins-available/getmail_plugin.inc.php @@ -76,6 +76,9 @@ class getmail_plugin { function update($event_name, $data) { global $app, $conf; + + // Do not write getmail config files on mirror servers to avoid double fetching of emails. + if($conf['mirror_server_id'] > 0) return true; // load the server specific configuration options for getmail $app->uses("getconf"); -- GitLab From 40ce39d7df510fc6eb10c825d5f7b91fe9326484 Mon Sep 17 00:00:00 2001 From: Till Brehm Date: Tue, 5 Mar 2019 18:13:21 +0100 Subject: [PATCH 044/215] Fixed #5253 Server Config is having an error 500 with ISPConfig Version: 3.1.13p1 --- interface/web/admin/server_config_edit.php | 6 ++++-- 1 file changed, 4 insertions(+), 2 deletions(-) diff --git a/interface/web/admin/server_config_edit.php b/interface/web/admin/server_config_edit.php index 7eebb7f5b..523671c0c 100644 --- a/interface/web/admin/server_config_edit.php +++ b/interface/web/admin/server_config_edit.php @@ -83,8 +83,10 @@ class page_action extends tform_actions { function onShowEnd() { global $app; - - $app->tpl->setVar('server_name', $app->functions->htmlentities($app->db->queryOneRecord("SELECT server_name FROM server WHERE server_id = ? AND ((SELECT COUNT(*) FROM server) > 1)", $this->id)['server_name'])); + + $tmp = $app->db->queryOneRecord("SELECT server_name FROM server WHERE server_id = ? AND ((SELECT COUNT(*) FROM server) > 1)", $this->id); + $app->tpl->setVar('server_name', $app->functions->htmlentities($tmp['server_name'])); + unset($tmp); parent::onShowEnd(); } -- GitLab From 861a95c3315f36d9e1c8ea09aef7d87f33f9fc7c Mon Sep 17 00:00:00 2001 From: Herman van Rink Date: Thu, 7 Mar 2019 15:01:36 +0100 Subject: [PATCH 045/215] Sync copies of db_mysql.inc.php --- server/lib/classes/db_mysql.inc.php | 7 +++++-- 1 file changed, 5 insertions(+), 2 deletions(-) diff --git a/server/lib/classes/db_mysql.inc.php b/server/lib/classes/db_mysql.inc.php index 0bae3f92d..7d7b56898 100644 --- a/server/lib/classes/db_mysql.inc.php +++ b/server/lib/classes/db_mysql.inc.php @@ -719,8 +719,8 @@ class db if($action == 'INSERT') $action = 'i'; if($action == 'UPDATE') $action = 'u'; if($action == 'DELETE') $action = 'd'; - $sql = "INSERT INTO sys_datalog (dbtable,dbidx,server_id,action,tstamp,user,data) VALUES (?, ?, ?, ?, ?, ?, ?)"; - $app->db->query($sql, $db_table, $dbidx, $server_id, $action, time(), $username, $diffstr); + $sql = "INSERT INTO sys_datalog (dbtable,dbidx,server_id,action,tstamp,user,data,session_id) VALUES (?, ?, ?, ?, ?, ?, ?, ?)"; + $app->db->query($sql, $db_table, $dbidx, $server_id, $action, time(), $username, $diffstr, session_id()); } return true; @@ -759,6 +759,9 @@ class db $old_rec = array(); $index_value = $this->insertID(); + if(!$index_value && isset($insert_data[$index_field])) { + $index_value = $insert_data[$index_field]; + } $new_rec = $this->queryOneRecord("SELECT * FROM ?? WHERE ?? = ?", $tablename, $index_field, $index_value); $this->datalogSave($tablename, 'INSERT', $index_field, $index_value, $old_rec, $new_rec); -- GitLab From 8394c29676f629c59df9f8364776f3f70345b0fd Mon Sep 17 00:00:00 2001 From: Herman van Rink Date: Thu, 7 Mar 2019 15:12:54 +0100 Subject: [PATCH 046/215] Correct condition to use the new variable, #4901 --- server/plugins-available/shelluser_jailkit_plugin.inc.php | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/server/plugins-available/shelluser_jailkit_plugin.inc.php b/server/plugins-available/shelluser_jailkit_plugin.inc.php index db1d2b676..c7112c497 100755 --- a/server/plugins-available/shelluser_jailkit_plugin.inc.php +++ b/server/plugins-available/shelluser_jailkit_plugin.inc.php @@ -490,7 +490,7 @@ class shelluser_jailkit_plugin { // add root's key $app->file->mkdirs($sshdir, '0755'); $authorized_keys_template = $this->jailkit_config['jailkit_chroot_authorized_keys_template']; - if(is_file('/root/.ssh/authorized_keys')) $app->system->file_put_contents($sshkeys, $app->system->file_get_contents($authorized_keys_template)); + if(is_file($authorized_keys_template)) $app->system->file_put_contents($sshkeys, $app->system->file_get_contents($authorized_keys_template)); // Remove duplicate keys $existing_keys = @file($sshkeys, FILE_IGNORE_NEW_LINES); -- GitLab From 6ea7d4c89a477765fb2dea6025484712321eae74 Mon Sep 17 00:00:00 2001 From: Florian Schaal Date: Mon, 11 Mar 2019 11:16:35 +0100 Subject: [PATCH 047/215] stats Folder created even when Statistics set to none - Fixes #4977 --- .../plugins-available/apache2_plugin.inc.php | 35 +++++++++++-------- server/plugins-available/nginx_plugin.inc.php | 5 +++ 2 files changed, 26 insertions(+), 14 deletions(-) diff --git a/server/plugins-available/apache2_plugin.inc.php b/server/plugins-available/apache2_plugin.inc.php index 8ebe11d92..e9845eec3 100644 --- a/server/plugins-available/apache2_plugin.inc.php +++ b/server/plugins-available/apache2_plugin.inc.php @@ -1801,21 +1801,23 @@ class apache2_plugin { //* Create .htaccess and .htpasswd file for website statistics //if(!is_file($data['new']['document_root'].'/' . $web_folder . '/stats/.htaccess') or $data['old']['document_root'] != $data['new']['document_root']) { - if(!is_dir($data['new']['document_root'].'/' . $web_folder . '/stats')) $app->system->mkdir($data['new']['document_root'].'/' . $web_folder . '/stats'); - $ht_file = "AuthType Basic\nAuthName \"Members Only\"\nAuthUserFile ".$data['new']['document_root']."/web/stats/.htpasswd_stats\nrequire valid-user"; - $app->system->file_put_contents($data['new']['document_root'].'/' . $web_folder . '/stats/.htaccess', $ht_file); - $app->system->chmod($data['new']['document_root'].'/' . $web_folder . '/stats/.htaccess', 0755); - unset($ht_file); - //} - if(!is_file($data['new']['document_root'].'/web/stats/.htpasswd_stats') || $data['new']['stats_password'] != $data['old']['stats_password']) { - if(trim($data['new']['stats_password']) != '') { - $htp_file = 'admin:'.trim($data['new']['stats_password']); - $app->system->web_folder_protection($data['new']['document_root'], false); - $app->system->file_put_contents($data['new']['document_root'].'/web/stats/.htpasswd_stats', $htp_file); - $app->system->web_folder_protection($data['new']['document_root'], true); - $app->system->chmod($data['new']['document_root'].'/web/stats/.htpasswd_stats', 0755); - unset($htp_file); + if($data['new']['stats_type'] != '') { + if(!is_dir($data['new']['document_root'].'/' . $web_folder . '/stats')) $app->system->mkdir($data['new']['document_root'].'/' . $web_folder . '/stats'); + $ht_file = "AuthType Basic\nAuthName \"Members Only\"\nAuthUserFile ".$data['new']['document_root']."/web/stats/.htpasswd_stats\nrequire valid-user"; + $app->system->file_put_contents($data['new']['document_root'].'/' . $web_folder . '/stats/.htaccess', $ht_file); + $app->system->chmod($data['new']['document_root'].'/' . $web_folder . '/stats/.htaccess', 0755); + unset($ht_file); + + if(!is_file($data['new']['document_root'].'/web/stats/.htpasswd_stats') || $data['new']['stats_password'] != $data['old']['stats_password']) { + if(trim($data['new']['stats_password']) != '') { + $htp_file = 'admin:'.trim($data['new']['stats_password']); + $app->system->web_folder_protection($data['new']['document_root'], false); + $app->system->file_put_contents($data['new']['document_root'].'/web/stats/.htpasswd_stats', $htp_file); + $app->system->web_folder_protection($data['new']['document_root'], true); + $app->system->chmod($data['new']['document_root'].'/web/stats/.htpasswd_stats', 0755); + unset($htp_file); + } } } @@ -1824,6 +1826,11 @@ class apache2_plugin { $this->awstats_update($data, $web_config); } + //* Remove Stats-Folder when Statistics set to none + if($data['new']['stats_type'] == '' && ($data['new']['type'] == 'vhost' || $data['new']['type'] == 'vhostsubdomain' || $data['new']['type'] == 'vhostalias')) { + exec('rm -rf '.$data['new']['document_root'].'/web/stats'); + } + $this->php_fpm_pool_update($data, $web_config, $pool_dir, $pool_name, $socket_dir, $web_folder); $this->hhvm_update($data, $web_config); diff --git a/server/plugins-available/nginx_plugin.inc.php b/server/plugins-available/nginx_plugin.inc.php index adac20c78..94c588c8b 100644 --- a/server/plugins-available/nginx_plugin.inc.php +++ b/server/plugins-available/nginx_plugin.inc.php @@ -1889,6 +1889,11 @@ class nginx_plugin { $this->awstats_update($data, $web_config); } + //* Remove Stats-Folder when Statistics set to none + if($data['new']['stats_type'] == '' && ($data['new']['type'] == 'vhost' || $data['new']['type'] == 'vhostsubdomain' || $data['new']['type'] == 'vhostalias')) { + exec('rm -rf '.$data['new']['document_root'].'/web/stats'); + } + $this->php_fpm_pool_update($data, $web_config, $pool_dir, $pool_name, $socket_dir, $web_folder); $this->hhvm_update($data, $web_config); -- GitLab From 5d019bf55f67d9b0f657f7de0f6a38af6c9234dc Mon Sep 17 00:00:00 2001 From: Marius Burkard Date: Mon, 11 Mar 2019 12:13:40 +0100 Subject: [PATCH 048/215] - added new webroot map argument to cli call of certbot on versions >= 0.31, should fix #5258 --- server/lib/classes/letsencrypt.inc.php | 12 +++++++++++- 1 file changed, 11 insertions(+), 1 deletion(-) diff --git a/server/lib/classes/letsencrypt.inc.php b/server/lib/classes/letsencrypt.inc.php index 4f681cc48..3807149c1 100644 --- a/server/lib/classes/letsencrypt.inc.php +++ b/server/lib/classes/letsencrypt.inc.php @@ -284,7 +284,17 @@ class letsencrypt { } else { $acme_version = 'https://acme-v01.api.letsencrypt.org/directory'; } - $letsencrypt_cmd = $letsencrypt . " certonly -n --text --agree-tos --expand --authenticator webroot --server $acme_version --rsa-key-size 4096 --email postmaster@$domain $cli_domain_arg --webroot-path /usr/local/ispconfig/interface/acme"; + if ($letsencrypt_version >= 0.31) { + $webroot_map = array(); + for($i = 0; $i < count($temp_domains); $i++) { + $webroot_map[$temp_domains[$i]] = '/usr/local/ispconfig/interface/acme'; + } + $webroot_args = "--webroot-map " . escapeshellarg(str_replace(array("\r", "\n"), '', json_encode($webroot_map))); + } else { + $webroot_args = "$cli_domain_arg --webroot-path /usr/local/ispconfig/interface/acme"; + } + + $letsencrypt_cmd = $letsencrypt . " certonly -n --text --agree-tos --expand --authenticator webroot --server $acme_version --rsa-key-size 4096 --email postmaster@$domain $webroot_args"; $success = $app->system->_exec($letsencrypt_cmd); } } else { -- GitLab From 97d1dce043e4adccaee83f42a01f8cc7e828f049 Mon Sep 17 00:00:00 2001 From: Florian Schaal Date: Mon, 11 Mar 2019 12:32:23 +0100 Subject: [PATCH 049/215] Send emails to active customers and resellers only. - #5216 --- interface/web/client/client_message.php | 8 ++++---- 1 file changed, 4 insertions(+), 4 deletions(-) diff --git a/interface/web/client/client_message.php b/interface/web/client/client_message.php index 2617bbe67..a46aefa6b 100644 --- a/interface/web/client/client_message.php +++ b/interface/web/client/client_message.php @@ -71,18 +71,18 @@ if(isset($_POST) && count($_POST) > 1) { $where[] = 'client_id = '.$app->functions->intval($tmp_client_id); } if(!empty($where)) $where_clause = ' AND ('.implode(' OR ', $where).')'; - $sql = "SELECT * FROM client WHERE email != ''".$where_clause; + $sql = "SELECT * FROM client WHERE canceled != 'y' AND email != ''".$where_clause; } else { - $sql = "SELECT * FROM client WHERE 0"; + $sql = "SELECT * FROM client WHERE canceled != 'y'"; } } else { //* Select all clients and resellers if($_SESSION["s"]["user"]["typ"] == 'admin'){ - $sql = "SELECT * FROM client WHERE email != ''"; + $sql = "SELECT * FROM client WHERE email != '' AND canceled != 'y'"; } else { $client_id = $app->functions->intval($_SESSION['s']['user']['client_id']); if($client_id == 0) die('Invalid Client ID.'); - $sql = "SELECT * FROM client WHERE email != '' AND parent_client_id = '$client_id'"; + $sql = "SELECT * FROM client WHERE email != '' AND canceled != 'y' AND parent_client_id = '$client_id'"; } } -- GitLab From 89284110eb20176699afe42bd0487516eb0f3f0c Mon Sep 17 00:00:00 2001 From: Till Brehm Date: Mon, 11 Mar 2019 12:35:05 +0100 Subject: [PATCH 050/215] Update apache2_plugin.inc.php --- server/plugins-available/apache2_plugin.inc.php | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/server/plugins-available/apache2_plugin.inc.php b/server/plugins-available/apache2_plugin.inc.php index e9845eec3..3aa851f64 100644 --- a/server/plugins-available/apache2_plugin.inc.php +++ b/server/plugins-available/apache2_plugin.inc.php @@ -1828,7 +1828,7 @@ class apache2_plugin { //* Remove Stats-Folder when Statistics set to none if($data['new']['stats_type'] == '' && ($data['new']['type'] == 'vhost' || $data['new']['type'] == 'vhostsubdomain' || $data['new']['type'] == 'vhostalias')) { - exec('rm -rf '.$data['new']['document_root'].'/web/stats'); + $app->file->removeDirectory($data['new']['document_root'].'/web/stats'); } $this->php_fpm_pool_update($data, $web_config, $pool_dir, $pool_name, $socket_dir, $web_folder); -- GitLab From 9768d64e9044b9fb85de7689218d2ab8853c9a47 Mon Sep 17 00:00:00 2001 From: Till Brehm Date: Mon, 11 Mar 2019 12:36:21 +0100 Subject: [PATCH 051/215] Update nginx_plugin.inc.php --- server/plugins-available/nginx_plugin.inc.php | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/server/plugins-available/nginx_plugin.inc.php b/server/plugins-available/nginx_plugin.inc.php index 94c588c8b..189a6f88e 100644 --- a/server/plugins-available/nginx_plugin.inc.php +++ b/server/plugins-available/nginx_plugin.inc.php @@ -1891,7 +1891,7 @@ class nginx_plugin { //* Remove Stats-Folder when Statistics set to none if($data['new']['stats_type'] == '' && ($data['new']['type'] == 'vhost' || $data['new']['type'] == 'vhostsubdomain' || $data['new']['type'] == 'vhostalias')) { - exec('rm -rf '.$data['new']['document_root'].'/web/stats'); + $app->file->removeDirectory($data['new']['document_root'].'/web/stats'); } $this->php_fpm_pool_update($data, $web_config, $pool_dir, $pool_name, $socket_dir, $web_folder); -- GitLab From f3087460f54521f331646bc6bb2b0a5f5c3cdefe Mon Sep 17 00:00:00 2001 From: Till Brehm Date: Wed, 20 Mar 2019 18:44:03 +0100 Subject: [PATCH 052/215] Fixes #5275 DNS Wizard does not add new zone. --- install/sql/incremental/upd_dev_collection.sql | 6 +++--- install/sql/ispconfig3.sql | 6 +++--- 2 files changed, 6 insertions(+), 6 deletions(-) diff --git a/install/sql/incremental/upd_dev_collection.sql b/install/sql/incremental/upd_dev_collection.sql index b9fb91d46..279d3ce21 100644 --- a/install/sql/incremental/upd_dev_collection.sql +++ b/install/sql/incremental/upd_dev_collection.sql @@ -78,6 +78,6 @@ INSERT IGNORE INTO `dns_ssl_ca` (`id`, `sys_userid`, `sys_groupid`, `sys_perm_us (NULL, 1, 1, 'riud', 'riud', '', 'Y', 'WISeKey', 'wisekey.com', 'Y', '', 0), (NULL, 1, 1, 'riud', 'riud', '', 'Y', 'WoSign', 'wosign.com', 'Y', '', 0); -ALTER TABLE `dns_soa` CHANGE `xfer` `xfer` TEXT NOT NULL DEFAULT ''; -ALTER TABLE `dns_soa` CHANGE `also_notify` `also_notify` TEXT NOT NULL DEFAULT ''; -ALTER TABLE `dns_slave` CHANGE `xfer` `xfer` TEXT NOT NULL DEFAULT ''; \ No newline at end of file +ALTER TABLE `dns_soa` CHANGE `xfer` `xfer` TEXT NULL; +ALTER TABLE `dns_soa` CHANGE `also_notify` `also_notify` TEXT NULL; +ALTER TABLE `dns_slave` CHANGE `xfer` `xfer` TEXT NULL; \ No newline at end of file diff --git a/install/sql/ispconfig3.sql b/install/sql/ispconfig3.sql index f06a49b7e..4cfaebb39 100644 --- a/install/sql/ispconfig3.sql +++ b/install/sql/ispconfig3.sql @@ -516,7 +516,7 @@ CREATE TABLE `dns_slave` ( `origin` varchar(255) NOT NULL DEFAULT '', `ns` varchar(255) NOT NULL DEFAULT '', `active` enum('N','Y') NOT NULL DEFAULT 'N', - `xfer` TEXT NOT NULL DEFAULT '', + `xfer` TEXT NULL, PRIMARY KEY (`id`), UNIQUE KEY `slave` (`origin`,`server_id`), KEY `active` (`active`) @@ -620,8 +620,8 @@ CREATE TABLE `dns_soa` ( `minimum` int(11) unsigned NOT NULL default '3600', `ttl` int(11) unsigned NOT NULL default '3600', `active` enum('N','Y') NOT NULL DEFAULT 'N', - `xfer` TEXT NOT NULL DEFAULT '', - `also_notify` TEXT NOT NULL DEFAULT '', + `xfer` TEXT NULL, + `also_notify` TEXT NULL, `update_acl` varchar(255) default NULL, `dnssec_initialized` ENUM('Y','N') NOT NULL DEFAULT 'N', `dnssec_wanted` ENUM('Y','N') NOT NULL DEFAULT 'N', -- GitLab From 12f591327e3c6c8b6b3e475cd676a9f70801b173 Mon Sep 17 00:00:00 2001 From: Till Brehm Date: Wed, 20 Mar 2019 18:45:43 +0100 Subject: [PATCH 053/215] Added INSTALLER_UPDATE constant in update.php to allow easier detection if installer run is an update or new installation. --- install/update.php | 1 + 1 file changed, 1 insertion(+) diff --git a/install/update.php b/install/update.php index 62e8d5ef4..104aab57f 100644 --- a/install/update.php +++ b/install/update.php @@ -59,6 +59,7 @@ EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. error_reporting(E_ALL|E_STRICT); define('INSTALLER_RUN', true); +define('INSTALLER_UPDATE', true); //** The banner on the command line echo "\n\n".str_repeat('-', 80)."\n"; -- GitLab From 14807bde32856093b7a50a0da25e3c143783b937 Mon Sep 17 00:00:00 2001 From: Till Brehm Date: Mon, 8 Apr 2019 12:41:20 +0200 Subject: [PATCH 054/215] Fixed SQL query in DNS slave datasource component. --- interface/lib/classes/custom_datasource.inc.php | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/interface/lib/classes/custom_datasource.inc.php b/interface/lib/classes/custom_datasource.inc.php index 484d0fa05..c50d58502 100644 --- a/interface/lib/classes/custom_datasource.inc.php +++ b/interface/lib/classes/custom_datasource.inc.php @@ -72,7 +72,7 @@ class custom_datasource { $client = $app->db->queryOneRecord("SELECT default_slave_dnsserver FROM sys_group, client WHERE sys_group.client_id = client.client_id and sys_group.groupid = ?", $client_group_id); $sql = "SELECT server_id,server_name FROM server WHERE server_id = ?"; } else { - $sql = "SELECT server_id,server_name FROM server WHERE dns_server = 1 ORDER BY server_name AND mirror_server_id = 0"; + $sql = "SELECT server_id,server_name FROM server WHERE dns_server = 1 AND mirror_server_id = 0 ORDER BY server_name"; } $records = $app->db->queryAllRecords($sql, $client['default_slave_dnsserver']); $records_new = array(); -- GitLab From 03f54d5ebc557b408ed80e304d2c12dab4652597 Mon Sep 17 00:00:00 2001 From: Till Brehm Date: Mon, 8 Apr 2019 13:28:36 +0200 Subject: [PATCH 055/215] Fixed: WARNING - assumed 'LOGLEVEL_WARNING' (this will throw an Error in a future version of PHP) in /usr/local/ispconfig/server/lib/classes/services.inc.php on line 44 --- server/lib/classes/services.inc.php | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/server/lib/classes/services.inc.php b/server/lib/classes/services.inc.php index 7a8841ece..091408167 100644 --- a/server/lib/classes/services.inc.php +++ b/server/lib/classes/services.inc.php @@ -41,7 +41,7 @@ class services { if(is_array($this->registered_services[$service_name])) { $this->delayed_restarts[$service_name] = $action; } else { - $app->log("Unable to add a delayed restart for '$service_name'. Service not registered.", LOGLEVEL_WARNING); + $app->log("Unable to add a delayed restart for '$service_name'. Service not registered.", LOGLEVEL_WARN); } } -- GitLab From c33bba3c53f913099b76d2cd7708c2cc073c18f0 Mon Sep 17 00:00:00 2001 From: Till Brehm Date: Mon, 8 Apr 2019 18:33:44 +0200 Subject: [PATCH 056/215] Fixed #5288 Wrong permissions of dkim cert folder on CentOS 7 --- install/dist/lib/centos_base.lib.php | 19 +++++++++++++++++++ 1 file changed, 19 insertions(+) diff --git a/install/dist/lib/centos_base.lib.php b/install/dist/lib/centos_base.lib.php index 8e6741fd6..0fe988439 100644 --- a/install/dist/lib/centos_base.lib.php +++ b/install/dist/lib/centos_base.lib.php @@ -111,6 +111,25 @@ class installer_centos extends installer_dist { removeLine('/etc/sysconfig/freshclam', 'FRESHCLAM_DELAY=disabled-warn # REMOVE ME', 1); replaceLine('/etc/freshclam.conf', 'Example', '# Example', 1); + + // get shell-group for amavis + $amavis_group=exec('grep -o "^amavis:\|^vscan:" /etc/group'); + if(!empty($amavis_group)) { + $amavis_group=rtrim($amavis_group, ":"); + } + // get shell-user for amavis + $amavis_user=exec('grep -o "^amavis:\|^vscan:" /etc/passwd'); + if(!empty($amavis_user)) { + $amavis_user=rtrim($amavis_user, ":"); + } + + // Create the director for DKIM-Keys + if(!is_dir('/var/lib/amavis')) mkdir('/var/lib/amavis', 0750, true); + if(!empty($amavis_user)) exec('chown '.$amavis_user.' /var/lib/amavis'); + if(!empty($amavis_group)) exec('chgrp '.$amavis_group.' /var/lib/amavis'); + if(!is_dir('/var/lib/amavis/dkim')) mkdir('/var/lib/amavis/dkim', 0750); + if(!empty($amavis_user)) exec('chown -R '.$amavis_user.' /var/lib/amavis/dkim'); + if(!empty($amavis_group)) exec('chgrp -R '.$amavis_group.' /var/lib/amavis/dkim'); } -- GitLab From 470bb76e8cb96617c8dfbc026b3f49e68f8dca72 Mon Sep 17 00:00:00 2001 From: Webslice Date: Wed, 10 Apr 2019 19:08:24 +0200 Subject: [PATCH 057/215] Fix: dont use strict comparison to install server plugin --- server/plugins-available/z_php_fpm_incron_reload_plugin.inc.php | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/server/plugins-available/z_php_fpm_incron_reload_plugin.inc.php b/server/plugins-available/z_php_fpm_incron_reload_plugin.inc.php index bc88f4a19..f88cbe9c0 100644 --- a/server/plugins-available/z_php_fpm_incron_reload_plugin.inc.php +++ b/server/plugins-available/z_php_fpm_incron_reload_plugin.inc.php @@ -17,7 +17,7 @@ class z_php_fpm_incron_reload_plugin { function onInstall() { global $conf; - return $conf['services']['web'] === true; + return $conf['services']['web'] == true; } function onLoad() { -- GitLab From 249241ab586b402bf2357ea530ce9ec695ccca12 Mon Sep 17 00:00:00 2001 From: Marius Burkard Date: Mon, 15 Apr 2019 14:12:01 +0200 Subject: [PATCH 058/215] - using certificates command on certbot >= 0.30, fixes #5291 --- server/lib/classes/letsencrypt.inc.php | 64 +++++++++++++++++++++++--- 1 file changed, 57 insertions(+), 7 deletions(-) diff --git a/server/lib/classes/letsencrypt.inc.php b/server/lib/classes/letsencrypt.inc.php index 3807149c1..ea1e745a7 100644 --- a/server/lib/classes/letsencrypt.inc.php +++ b/server/lib/classes/letsencrypt.inc.php @@ -265,26 +265,34 @@ class letsencrypt { unset($subdomains); unset($aliasdomains); + $letsencrypt_use_certcommand = false; $letsencrypt_cmd = ''; + $letsencrypt = false; $success = false; + + $letsencrypt = explode("\n", shell_exec('which letsencrypt certbot /root/.local/share/letsencrypt/bin/letsencrypt /opt/eff.org/certbot/venv/bin/certbot')); + $letsencrypt = reset($letsencrypt); + if(!is_executable($letsencrypt)) { + $letsencrypt = false; + } if(!empty($cli_domain_arg)) { if(!isset($server_config['migration_mode']) || $server_config['migration_mode'] != 'y') { $app->log("Create Let's Encrypt SSL Cert for: $domain", LOGLEVEL_DEBUG); $app->log("Let's Encrypt SSL Cert domains: $cli_domain_arg", LOGLEVEL_DEBUG); - $letsencrypt = explode("\n", shell_exec('which letsencrypt certbot /root/.local/share/letsencrypt/bin/letsencrypt /opt/eff.org/certbot/venv/bin/certbot')); - $letsencrypt = reset($letsencrypt); - if(is_executable($letsencrypt)) { + if($letsencrypt) { $letsencrypt_version = exec($letsencrypt . ' --version 2>&1', $ret, $val); if(preg_match('/^(\S+|\w+)\s+(\d+(\.\d+)+)$/', $letsencrypt_version, $matches)) { $letsencrypt_version = $matches[2]; } - if ($letsencrypt_version >=0.22) { + if (version_compare($letsencrypt_version, '0.22', '>=')) { $acme_version = 'https://acme-v02.api.letsencrypt.org/directory'; } else { $acme_version = 'https://acme-v01.api.letsencrypt.org/directory'; } - if ($letsencrypt_version >= 0.31) { + if (version_compare($letsencrypt_version, '0.30', '>=')) { + $app->log("LE version is " . $letsencrypt_version . ", so using certificates command", LOGLEVEL_DEBUG); + $letsencrypt_use_certcommand = true; $webroot_map = array(); for($i = 0; $i < count($temp_domains); $i++) { $webroot_map[$temp_domains[$i]] = '/usr/local/ispconfig/interface/acme'; @@ -302,8 +310,50 @@ class letsencrypt { $success = true; } } - - $le_files = $this->get_letsencrypt_certificate_paths($temp_domains); + $le_files = array(); + if($letsencrypt_use_certcommand === true && $letsencrypt) { + $letsencrypt_cmd = $letsencrypt . " certificates " . $cli_domain_arg; + $output = explode("\n", shell_exec($letsencrypt_cmd . " 2>/dev/null | grep -v '^\$'")); + $le_path = ''; + $skip_to_next = true; + foreach($output as $outline) { + $outline = trim($outline); + $app->log("LE CERT OUTPUT: " . $outline, LOGLEVEL_DEBUG); + + if($skip_to_next === true && !preg_match('/^\s*Certificate Name/', $outline)) { + continue; + } + $skip_to_next = false; + + if(preg_match('/^\s*Expiry.*?VALID:\s+\D/', $outline)) { + $app->log("Found LE path is expired or invalid: " . $matches[1], LOGLEVEL_DEBUG); + $skip_to_next = true; + continue; + } + + if(preg_match('/^\s*Certificate Path:\s*(\/.*?)\s*$/', $outline, $matches)) { + $app->log("Found LE path: " . $matches[1], LOGLEVEL_DEBUG); + $le_path = dirname($matches[1]); + if(is_dir($le_path)) { + break; + } else { + $le_path = false; + } + } + } + + if($le_path) { + $le_files = array( + 'privkey' => $le_path . '/privkey.pem', + 'chain' => $le_path . '/chain.pem', + 'cert' => $le_path . '/cert.pem', + 'fullchain' => $le_path . '/fullchain.pem' + ); + } + } + if(empty($le_files)) { + $le_files = $this->get_letsencrypt_certificate_paths($temp_domains); + } unset($temp_domains); if($server_type != 'apache' || version_compare($app->system->getapacheversion(true), '2.4.8', '>=')) { -- GitLab From 9490993f0712f22032cb102e8853dfbe1f8d4949 Mon Sep 17 00:00:00 2001 From: Till Brehm Date: Mon, 15 Apr 2019 15:02:14 +0200 Subject: [PATCH 059/215] Implements #5290 in stable branch: Nginx - Allow certbot acme challenge on auth_basic protected websites --- server/conf/nginx_vhost.conf.master | 1 + 1 file changed, 1 insertion(+) diff --git a/server/conf/nginx_vhost.conf.master b/server/conf/nginx_vhost.conf.master index 63c926035..d46da535c 100644 --- a/server/conf/nginx_vhost.conf.master +++ b/server/conf/nginx_vhost.conf.master @@ -128,6 +128,7 @@ server { location ^~ /.well-known/acme-challenge/ { access_log off; log_not_found off; + auth_basic off; root /usr/local/ispconfig/interface/acme/; autoindex off; index index.html; -- GitLab From 5d1673ed91c4fd5bba49c11bc7eddad93b1be4ed Mon Sep 17 00:00:00 2001 From: Jesse Norell Date: Fri, 17 May 2019 17:44:17 +0200 Subject: [PATCH 060/215] Update rest.php to check if remote api is allowed. --- interface/web/remote/rest.php | 6 +++++- 1 file changed, 5 insertions(+), 1 deletion(-) diff --git a/interface/web/remote/rest.php b/interface/web/remote/rest.php index d57915004..4f202c6ee 100644 --- a/interface/web/remote/rest.php +++ b/interface/web/remote/rest.php @@ -6,7 +6,11 @@ require_once '../../lib/config.inc.php'; $conf['start_session'] = false; require_once '../../lib/app.inc.php'; -$app->load('rest_handler'); +$app->load('rest_handler,getconf'); + +$security_config = $app->getconf->get_security_config('permissions'); +if($security_config['remote_api_allowed'] != 'yes') die('Remote API is disabled in security settings.'); + $rest_handler = new ISPConfigRESTHandler(); $rest_handler->run(); -- GitLab From dda2b4745ef216566bf6acd6cfad9dc07770fdfb Mon Sep 17 00:00:00 2001 From: Marius Burkard Date: Wed, 26 Jun 2019 15:36:57 +0200 Subject: [PATCH 061/215] Renewal of letsencrypt does not restart/reload nginx, fixes #5033 --- server/cron.php | 5 ++++- server/lib/classes/modules.inc.php | 21 +++++++++++++++++++-- 2 files changed, 23 insertions(+), 3 deletions(-) diff --git a/server/cron.php b/server/cron.php index 6f74bd357..cd8f08ef0 100644 --- a/server/cron.php +++ b/server/cron.php @@ -69,9 +69,10 @@ $conf['server_id'] = intval($conf['server_id']); // Load required base-classes -$app->uses('ini_parser,file,services,getconf,system,cron,functions'); +$app->uses('modules,ini_parser,file,services,getconf,system,cron,functions'); $app->load('libdatetime,cronjob'); +$app->modules->loadModules('web'); // read all cron jobs $path = SCRIPT_PATH . '/lib/classes/cron.d'; @@ -114,6 +115,8 @@ foreach($files as $f) { } unset($files); +$app->services->processDelayedActions(); + // Remove lock @unlink($conf['temppath'] . $conf['fs_div'] . '.ispconfig_cron_lock'); $app->log('Remove Lock: ' . $conf['temppath'] . $conf['fs_div'] . '.ispconfig_cron_lock', LOGLEVEL_DEBUG); diff --git a/server/lib/classes/modules.inc.php b/server/lib/classes/modules.inc.php index aa95d473b..3fd788d0a 100644 --- a/server/lib/classes/modules.inc.php +++ b/server/lib/classes/modules.inc.php @@ -37,18 +37,32 @@ class modules { /* This function is called to load the modules from the mods-enabled or the mods-core folder */ - function loadModules($type) { + function loadModules($type = 'all') { global $app, $conf; $subPath = 'mods-enabled'; - if ($type == 'core') $subPath = 'mods-core'; + if ($type == 'core') { + $subPath = 'mods-core'; + } elseif ($type == 'all') { + $type = ''; + } elseif (!preg_match('/^\w+$/', $type)) { + $app->log('Invalid loadModules type ' . $type, LOGLEVEL_ERROR); + return false; + } else { + $subPath = 'mods-available'; + } + $loaded = false; $modules_dir = $conf['rootpath'].$conf['fs_div'].$subPath.$conf['fs_div']; if (is_dir($modules_dir)) { if ($dh = opendir($modules_dir)) { while (($file = readdir($dh)) !== false) { if($file != '.' && $file != '..' && substr($file, -8, 8) == '.inc.php') { $module_name = substr($file, 0, -8); + if($type && $type !== 'core' && $type != $module_name) { + continue; + } + $loaded = true; include_once $modules_dir.$file; if($this->debug) $app->log('Loading Module: '.$module_name, LOGLEVEL_DEBUG); $app->loaded_modules[$module_name] = new $module_name; @@ -60,6 +74,9 @@ class modules { $app->log('Modules directory missing: '.$modules_dir, LOGLEVEL_ERROR); } + if($type && $type !== 'core' && $loaded === false) { + $app->log('Module ' . $type . ' not found.', LOGLEVEL_ERROR); + } } /* -- GitLab From 9ceff3c13b9dbace5b4ee9acae2b76c8611fc603 Mon Sep 17 00:00:00 2001 From: Marius Burkard Date: Wed, 26 Jun 2019 15:44:08 +0200 Subject: [PATCH 062/215] LE Renewal issue on systems that use the relative symlink option for websites, fixes #5326 --- server/lib/classes/letsencrypt.inc.php | 24 ++++++------------------ server/lib/classes/system.inc.php | 2 +- 2 files changed, 7 insertions(+), 19 deletions(-) diff --git a/server/lib/classes/letsencrypt.inc.php b/server/lib/classes/letsencrypt.inc.php index ea1e745a7..583e1c25b 100644 --- a/server/lib/classes/letsencrypt.inc.php +++ b/server/lib/classes/letsencrypt.inc.php @@ -388,12 +388,8 @@ class letsencrypt { $app->system->unlink($key_file); } - if ($web_config["website_symlinks_rel"] == 'y') { - $app->system->create_relative_link(escapeshellcmd($key_tmp_file), escapeshellcmd($key_file)); - } else { - if(@is_link($key_file)) $app->system->unlink($key_file); - if(@file_exists($key_tmp_file)) exec("ln -s ".escapeshellcmd($key_tmp_file)." ".escapeshellcmd($key_file)); - } + if(@is_link($key_file)) $app->system->unlink($key_file); + if(@file_exists($key_tmp_file)) exec("ln -s ".escapeshellcmd($key_tmp_file)." ".escapeshellcmd($key_file)); if(is_file($crt_file)) { $app->system->copy($crt_file, $crt_file.'.old.'.$date); @@ -401,12 +397,8 @@ class letsencrypt { $app->system->unlink($crt_file); } - if($web_config["website_symlinks_rel"] == 'y') { - $app->system->create_relative_link(escapeshellcmd($crt_tmp_file), escapeshellcmd($crt_file)); - } else { - if(@is_link($crt_file)) $app->system->unlink($crt_file); - if(@file_exists($crt_tmp_file))exec("ln -s ".escapeshellcmd($crt_tmp_file)." ".escapeshellcmd($crt_file)); - } + if(@is_link($crt_file)) $app->system->unlink($crt_file); + if(@file_exists($crt_tmp_file))exec("ln -s ".escapeshellcmd($crt_tmp_file)." ".escapeshellcmd($crt_file)); if(is_file($bundle_file)) { $app->system->copy($bundle_file, $bundle_file.'.old.'.$date); @@ -414,12 +406,8 @@ class letsencrypt { $app->system->unlink($bundle_file); } - if($web_config["website_symlinks_rel"] == 'y') { - $app->system->create_relative_link(escapeshellcmd($bundle_tmp_file), escapeshellcmd($bundle_file)); - } else { - if(@is_link($bundle_file)) $app->system->unlink($bundle_file); - if(@file_exists($bundle_tmp_file)) exec("ln -s ".escapeshellcmd($bundle_tmp_file)." ".escapeshellcmd($bundle_file)); - } + if(@is_link($bundle_file)) $app->system->unlink($bundle_file); + if(@file_exists($bundle_tmp_file)) exec("ln -s ".escapeshellcmd($bundle_tmp_file)." ".escapeshellcmd($bundle_file)); return true; } else { diff --git a/server/lib/classes/system.inc.php b/server/lib/classes/system.inc.php index f4d94743a..5c277ada1 100644 --- a/server/lib/classes/system.inc.php +++ b/server/lib/classes/system.inc.php @@ -918,7 +918,7 @@ class system{ // Add ($cnt_to-1) number of "../" elements to left side of $cfrom for ($c = 0; $c < (count($a2)-1); $c++) { $cfrom = '../'.$cfrom; } - if(strstr($to,'/etc/letsencrypt/archive/')) $to = str_replace('/etc/letsencrypt/archive/','/etc/letsencrypt/live/',$to); + //if(strstr($to,'/etc/letsencrypt/archive/')) $to = str_replace('/etc/letsencrypt/archive/','/etc/letsencrypt/live/',$to); return symlink($cfrom, $to); } -- GitLab From eab22adbf98b61b3c4802b0ee72640f76784a721 Mon Sep 17 00:00:00 2001 From: Marius Burkard Date: Wed, 26 Jun 2019 15:48:54 +0200 Subject: [PATCH 063/215] Addition to commit dda2b474 for #5033 --- server/cron.php | 2 -- server/lib/classes/cron.d/900-letsencrypt.inc.php | 1 + 2 files changed, 1 insertion(+), 2 deletions(-) diff --git a/server/cron.php b/server/cron.php index cd8f08ef0..ba59ff404 100644 --- a/server/cron.php +++ b/server/cron.php @@ -72,8 +72,6 @@ $conf['server_id'] = intval($conf['server_id']); $app->uses('modules,ini_parser,file,services,getconf,system,cron,functions'); $app->load('libdatetime,cronjob'); -$app->modules->loadModules('web'); - // read all cron jobs $path = SCRIPT_PATH . '/lib/classes/cron.d'; if(!is_dir($path)) die('Cron path missing!'); diff --git a/server/lib/classes/cron.d/900-letsencrypt.inc.php b/server/lib/classes/cron.d/900-letsencrypt.inc.php index d03d4a184..30a23fe97 100644 --- a/server/lib/classes/cron.d/900-letsencrypt.inc.php +++ b/server/lib/classes/cron.d/900-letsencrypt.inc.php @@ -44,6 +44,7 @@ class cronjob_letsencrypt extends cronjob { public function onBeforeRun() { global $app; + $app->modules->loadModules('web_module'); return parent::onBeforeRun(); } -- GitLab From 7ca2762dc01c8aeb2f0fef6bb404a5468714bf5b Mon Sep 17 00:00:00 2001 From: Marius Burkard Date: Wed, 26 Jun 2019 16:05:30 +0200 Subject: [PATCH 064/215] Syntax errors in PHP 5.3.3, fixes #5129 --- interface/lib/app.inc.php | 3 ++- interface/web/dns/dns_caa_edit.php | 3 ++- interface/web/mail/ajax_get_json.php | 6 +++++- interface/web/sites/database_quota_stats.php | 3 ++- 4 files changed, 11 insertions(+), 4 deletions(-) diff --git a/interface/lib/app.inc.php b/interface/lib/app.inc.php index ccc80fd25..b02ae8526 100755 --- a/interface/lib/app.inc.php +++ b/interface/lib/app.inc.php @@ -335,7 +335,8 @@ class app { } private function get_cookie_domain() { - $proxy_panel_allowed = $this->getconf->get_security_config('permissions')['reverse_proxy_panel_allowed']; + $sec_config = $this->getconf->get_security_config('permissions'); + $proxy_panel_allowed = $sec_config['reverse_proxy_panel_allowed']; if ($proxy_panel_allowed == 'all') { return ''; } diff --git a/interface/web/dns/dns_caa_edit.php b/interface/web/dns/dns_caa_edit.php index c3d861841..0151600e4 100644 --- a/interface/web/dns/dns_caa_edit.php +++ b/interface/web/dns/dns_caa_edit.php @@ -165,7 +165,8 @@ class page_action extends tform_actions { // Set name if($this->dataRecord['additional'] != '') { - $temp = explode(',', $this->dataRecord['additional'])[0]; // if we have more hostnames the interface-plugin will be used + $temp = explode(',', $this->dataRecord['additional']); + $temp = $temp[0]; // if we have more hostnames the interface-plugin will be used $temp = trim($temp,'.'); if(trim($temp != '')) $this->dataRecord['name'] = $temp.'.'.$this->dataRecord['name']; unset($temp); diff --git a/interface/web/mail/ajax_get_json.php b/interface/web/mail/ajax_get_json.php index 2a1a75616..17fd4cf45 100644 --- a/interface/web/mail/ajax_get_json.php +++ b/interface/web/mail/ajax_get_json.php @@ -40,7 +40,11 @@ $domain_id = $_GET['domain_id']; if($type == 'create_dkim' && $domain_id != ''){ $dkim_public = $_GET['dkim_public']; $dkim_selector = $_GET['dkim_selector']; - $domain=@(is_numeric($domain_id))?$app->db->queryOneRecord("SELECT domain FROM domain WHERE domain_id = ? AND ".$app->tform->getAuthSQL('r'), $domain_id)['domain']:$domain_id; + $domain = $domain_id; + if(is_numeric($domain_id)) { + $temp = $app->db->queryOneRecord("SELECT domain FROM domain WHERE domain_id = ? AND ".$app->tform->getAuthSQL('r'), $domain_id); + $domain = $temp['domain']; + } $rec = $app->db->queryOneRecord("SELECT server_id, domain FROM mail_domain WHERE domain = ?", $domain); $server_id = $rec['server_id']; $maildomain = $rec['domain']; diff --git a/interface/web/sites/database_quota_stats.php b/interface/web/sites/database_quota_stats.php index 148aa127a..5f550cf8d 100644 --- a/interface/web/sites/database_quota_stats.php +++ b/interface/web/sites/database_quota_stats.php @@ -83,7 +83,8 @@ class list_action extends listform_actions { } else { $web_database = $app->db->queryOneRecord("SELECT * FROM web_database WHERE database_id = ?", $rec[$this->idx_key]); $rec['database'] = $rec['database_name']; - $rec['server_name'] = $app->db->queryOneRecord("SELECT server_name FROM server WHERE server_id = ?", $web_database['server_id'])['server_name']; + $temp = $app->db->queryOneRecord("SELECT server_name FROM server WHERE server_id = ?", $web_database['server_id']); + $rec['server_name'] = $temp['server_name']; $sys_group = $app->db->queryOneRecord("SELECT * FROM sys_group WHERE groupid = ?", $web_database['sys_groupid']); $client = $app->db->queryOneRecord("SELECT * FROM client WHERE client_id = ?", $sys_group['client_id']); $rec['client'] = $client['username']; -- GitLab From 23ca8059e5407b7606b0b3e9df5a8c8d7cd915d8 Mon Sep 17 00:00:00 2001 From: Marius Burkard Date: Wed, 26 Jun 2019 17:05:00 +0200 Subject: [PATCH 065/215] - added missing load for modules lib --- server/cron_debug.php | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/server/cron_debug.php b/server/cron_debug.php index 615a56d74..2ab9289d2 100644 --- a/server/cron_debug.php +++ b/server/cron_debug.php @@ -39,7 +39,7 @@ ini_set('error_reporting', E_ALL & ~E_NOTICE); $conf['server_id'] = intval($conf['server_id']); // Load required base-classes -$app->uses('ini_parser,file,services,getconf,system,cron,functions'); +$app->uses('modules,ini_parser,file,services,getconf,system,cron,functions'); $app->load('libdatetime,cronjob'); // Path settings -- GitLab From cb984ca1d806d32fa7b334347ca846f4ba70fd80 Mon Sep 17 00:00:00 2001 From: Till Brehm Date: Fri, 28 Jun 2019 16:03:48 +0200 Subject: [PATCH 066/215] Add support for Debian 10 (Buster) to OS detection code. --- install/dist/conf/debian100.conf.php | 234 +++++++++++++++++++++++ install/dist/conf/debiantesting.conf.php | 22 ++- install/lib/install.lib.php | 9 +- server/lib/classes/monitor_tools.inc.php | 12 +- 4 files changed, 266 insertions(+), 11 deletions(-) create mode 100644 install/dist/conf/debian100.conf.php diff --git a/install/dist/conf/debian100.conf.php b/install/dist/conf/debian100.conf.php new file mode 100644 index 000000000..28d82b807 --- /dev/null +++ b/install/dist/conf/debian100.conf.php @@ -0,0 +1,234 @@ + diff --git a/install/dist/conf/debiantesting.conf.php b/install/dist/conf/debiantesting.conf.php index 92787bf42..5e5e32f47 100644 --- a/install/dist/conf/debiantesting.conf.php +++ b/install/dist/conf/debiantesting.conf.php @@ -28,11 +28,11 @@ NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. */ -//*** Ubuntu 16.04 default settings +//*** Debian Testing default settings //* Main $conf['language'] = 'en'; -$conf['distname'] = 'ubuntu1604'; +$conf['distname'] = 'debian100'; $conf['hostname'] = 'server1.domain.tld'; // Full hostname $conf['ispconfig_install_dir'] = '/usr/local/ispconfig'; $conf['ispconfig_config_dir'] = '/usr/local/ispconfig'; @@ -83,8 +83,8 @@ $conf['apache']['version'] = '2.4'; $conf['apache']['vhost_conf_dir'] = '/etc/apache2/sites-available'; $conf['apache']['vhost_conf_enabled_dir'] = '/etc/apache2/sites-enabled'; $conf['apache']['vhost_port'] = '8080'; -$conf['apache']['php_ini_path_apache'] = '/etc/php/7.0/apache2/php.ini'; -$conf['apache']['php_ini_path_cgi'] = '/etc/php/7.0/cgi/php.ini'; +$conf['apache']['php_ini_path_apache'] = '/etc/php/7.3/apache2/php.ini'; +$conf['apache']['php_ini_path_cgi'] = '/etc/php/7.3/cgi/php.ini'; //* Website base settings $conf['web']['website_basedir'] = '/var/www'; @@ -99,7 +99,7 @@ $conf['web']['apps_vhost_user'] = 'ispapps'; $conf['web']['apps_vhost_group'] = 'ispapps'; //* Fastcgi -$conf['fastcgi']['fastcgi_phpini_path'] = '/etc/php/7.0/cgi/'; +$conf['fastcgi']['fastcgi_phpini_path'] = '/etc/php/7.3/cgi/'; $conf['fastcgi']['fastcgi_starter_path'] = '/var/www/php-fcgi-scripts/[system_user]/'; $conf['fastcgi']['fastcgi_bin'] = '/usr/bin/php-cgi'; @@ -120,6 +120,10 @@ $conf['mailman']['installed'] = false; // will be detected automatically during $conf['mailman']['config_dir'] = '/etc/mailman'; $conf['mailman']['init_script'] = 'mailman'; +//* mlmmj +$conf['mlmmj']['installed'] = false; // will be detected automatically during installation +$conf['mlmmj']['config_dir'] = '/etc/mlmmj'; + //* Getmail $conf['getmail']['installed'] = false; // will be detected automatically during installation $conf['getmail']['config_dir'] = '/etc/getmail'; @@ -201,11 +205,11 @@ $conf['nginx']['vhost_conf_enabled_dir'] = '/etc/nginx/sites-enabled'; $conf['nginx']['init_script'] = 'nginx'; $conf['nginx']['vhost_port'] = '8080'; $conf['nginx']['cgi_socket'] = '/var/run/fcgiwrap.socket'; -$conf['nginx']['php_fpm_init_script'] = 'php7.0-fpm'; -$conf['nginx']['php_fpm_ini_path'] = '/etc/php/7.0/fpm/php.ini'; -$conf['nginx']['php_fpm_pool_dir'] = '/etc/php/7.0/fpm/pool.d'; +$conf['nginx']['php_fpm_init_script'] = 'php7.3-fpm'; +$conf['nginx']['php_fpm_ini_path'] = '/etc/php/7.3/fpm/php.ini'; +$conf['nginx']['php_fpm_pool_dir'] = '/etc/php/7.3/fpm/pool.d'; $conf['nginx']['php_fpm_start_port'] = 9010; -$conf['nginx']['php_fpm_socket_dir'] = '/var/lib/php7.0-fpm'; +$conf['nginx']['php_fpm_socket_dir'] = '/var/lib/php7.3-fpm'; //* OpenVZ $conf['openvz']['installed'] = false; diff --git a/install/lib/install.lib.php b/install/lib/install.lib.php index 933c30fe3..6b3a7cd62 100644 --- a/install/lib/install.lib.php +++ b/install/lib/install.lib.php @@ -227,6 +227,13 @@ function get_distname() { $distid = 'debian60'; $distbaseid = 'debian'; swriteln("Operating System: Debian 9.0 (Stretch) or compatible\n"); + } elseif(substr(trim(file_get_contents('/etc/debian_version')),0,2) == '10') { + $distname = 'Debian'; + $distver = 'Buster'; + $distconfid = 'debian100'; + $distid = 'debian60'; + $distbaseid = 'debian'; + swriteln("Operating System: Debian 10.0 (Buster) or compatible\n"); } elseif(strstr(trim(file_get_contents('/etc/debian_version')), '/sid')) { $distname = 'Debian'; $distver = 'Testing'; @@ -238,7 +245,7 @@ function get_distname() { $distname = 'Debian'; $distver = 'Unknown'; $distid = 'debian60'; - $distconfid = 'debian90'; + $distconfid = 'debian100'; $distbaseid = 'debian'; swriteln("Operating System: Debian or compatible, unknown version.\n"); } diff --git a/server/lib/classes/monitor_tools.inc.php b/server/lib/classes/monitor_tools.inc.php index c4a60702b..a15514fd7 100644 --- a/server/lib/classes/monitor_tools.inc.php +++ b/server/lib/classes/monitor_tools.inc.php @@ -211,17 +211,27 @@ class monitor_tools { $distconfid = 'debian90'; $distid = 'debian60'; $distbaseid = 'debian'; + } elseif(substr(trim(file_get_contents('/etc/debian_version')),0,2) == '10') { + $distname = 'Debian'; + $distver = 'Buster'; + $distconfid = 'debian100'; + $distid = 'debian60'; + $distbaseid = 'debian'; + swriteln("Operating System: Debian 10.0 (Buster) or compatible\n"); } elseif(strstr(trim(file_get_contents('/etc/debian_version')), '/sid')) { $distname = 'Debian'; $distver = 'Testing'; $distid = 'debian60'; $distconfid = 'debiantesting'; $distbaseid = 'debian'; + swriteln("Operating System: Debian Testing\n"); } else { $distname = 'Debian'; $distver = 'Unknown'; - $distid = 'debian40'; + $distid = 'debian60'; + $distconfid = 'debian100'; $distbaseid = 'debian'; + swriteln("Operating System: Debian or compatible, unknown version.\n"); } } -- GitLab From 70c53657aa5ccf1eac53164a1ca941e2151382d4 Mon Sep 17 00:00:00 2001 From: Till Brehm Date: Wed, 3 Jul 2019 12:01:43 +0200 Subject: [PATCH 067/215] Fixed #5313 Extend custom php.ini check regex --- interface/web/sites/web_vhost_domain_edit.php | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/interface/web/sites/web_vhost_domain_edit.php b/interface/web/sites/web_vhost_domain_edit.php index 8d43e21fa..3d6ecc6fb 100644 --- a/interface/web/sites/web_vhost_domain_edit.php +++ b/interface/web/sites/web_vhost_domain_edit.php @@ -1301,7 +1301,7 @@ class page_action extends tform_actions { // value inside '' if(preg_match('@^\s*;*\s*[a-zA-Z0-9._]*\s*=\s*\'.*\'\s*;*\s*$@', $custom_php_ini_settings_line)) continue; // everything else - if(preg_match('@^\s*;*\s*[a-zA-Z0-9._]*\s*=\s*[-a-zA-Z0-9~&=_\@/,.#\s]*\s*;*\s*$@', $custom_php_ini_settings_line)) continue; + if(preg_match('@^\s*;*\s*[a-zA-Z0-9._]*\s*=\s*[-a-zA-Z0-9~&=_\@/,.#\s\|]*\s*;*\s*$@', $custom_php_ini_settings_line)) continue; $custom_php_ini_settings_are_valid = false; break; } -- GitLab From c6bf185c613df0f998c2858d0f0985feb1236edd Mon Sep 17 00:00:00 2001 From: Till Brehm Date: Wed, 3 Jul 2019 12:02:29 +0200 Subject: [PATCH 068/215] Added SSL SMTP port 465 to default ports in ISPConfig Firewall. --- interface/web/admin/form/firewall.tform.php | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/interface/web/admin/form/firewall.tform.php b/interface/web/admin/form/firewall.tform.php index ce7d2dbd0..75f190b3f 100644 --- a/interface/web/admin/form/firewall.tform.php +++ b/interface/web/admin/form/firewall.tform.php @@ -79,7 +79,7 @@ $form["tabs"]['firewall'] = array ( 'regex' => '/^[\s0-9\,\:]{0,255}$/', 'errmsg'=> 'tcp_ports_error_regex'), ), - 'default' => '20,21,22,25,53,80,110,143,443,587,993,995,3306,8080,8081,10000', + 'default' => '20,21,22,25,53,80,110,143,443,465,587,993,995,3306,8080,8081,10000', 'value' => '', 'width' => '30', 'maxlength' => '255' -- GitLab From b772b1b26c7fa3490997e67c271fba2c83bb1b38 Mon Sep 17 00:00:00 2001 From: Till Brehm Date: Wed, 3 Jul 2019 12:26:58 +0200 Subject: [PATCH 069/215] Implemented #5303 database Backup including routines --- server/lib/classes/cron.d/500-backup.inc.php | 7 ++++++- 1 file changed, 6 insertions(+), 1 deletion(-) diff --git a/server/lib/classes/cron.d/500-backup.inc.php b/server/lib/classes/cron.d/500-backup.inc.php index fa5743111..77b355fe6 100644 --- a/server/lib/classes/cron.d/500-backup.inc.php +++ b/server/lib/classes/cron.d/500-backup.inc.php @@ -225,6 +225,11 @@ class cronjob_backup extends cronjob { if(is_array($records)) { include '/usr/local/ispconfig/server/lib/mysql_clientdb.conf'; + + //* Check mysqldump capabilities + exec('mysqldump --help',$tmp); + $mysqldump_routines = (strpos(implode($tmp),'--routines') !== false)?'--routines':''; + unset($tmp); foreach($records as $rec) { @@ -252,7 +257,7 @@ class cronjob_backup extends cronjob { $db_name = $rec['database_name']; $db_backup_file = 'db_'.$db_name.'_'.date('Y-m-d_H-i').'.sql'; //$command = "mysqldump -h '".escapeshellcmd($clientdb_host)."' -u '".escapeshellcmd($clientdb_user)."' -p'".escapeshellcmd($clientdb_password)."' -c --add-drop-table --create-options --quick --result-file='".$db_backup_dir.'/'.$db_backup_file."' '".$db_name."'"; - $command = "mysqldump -h ".escapeshellarg($clientdb_host)." -u ".escapeshellarg($clientdb_user)." -p".escapeshellarg($clientdb_password)." -c --add-drop-table --create-options --quick --max_allowed_packet=512M --result-file='".$db_backup_dir.'/'.$db_backup_file."' '".$db_name."'"; + $command = "mysqldump -h ".escapeshellarg($clientdb_host)." -u ".escapeshellarg($clientdb_user)." -p".escapeshellarg($clientdb_password)." -c --add-drop-table --create-options --quick --max_allowed_packet=512M ".$mysqldump_routines." --result-file='".$db_backup_dir.'/'.$db_backup_file."' '".$db_name."'"; exec($command, $tmp_output, $retval); //* Compress the backup with gzip / pigz -- GitLab From 8c08db9bf18f7fb2e126a06de63cda3bdc1e5ef7 Mon Sep 17 00:00:00 2001 From: Till Brehm Date: Wed, 3 Jul 2019 12:31:09 +0200 Subject: [PATCH 070/215] Fixed #5293 If an email is submitted via SMTPUTF8 it will bounce --- install/tpl/amavisd_user_config.master | 1 - 1 file changed, 1 deletion(-) diff --git a/install/tpl/amavisd_user_config.master b/install/tpl/amavisd_user_config.master index 8663f0749..2738eac3a 100644 --- a/install/tpl/amavisd_user_config.master +++ b/install/tpl/amavisd_user_config.master @@ -83,7 +83,6 @@ $notify_method = 'smtp:127.0.0.1:*'; $interface_policy{'10026'} = 'ORIGINATING'; $policy_bank{'ORIGINATING'} = { originating => 1, - smtpd_discard_ehlo_keywords => ['8BITMIME'], }; # IP-Addresses for internal networks => load policy MYNETS -- GitLab From 7a62b126634da6b1375ecff57d1ea34ef4590317 Mon Sep 17 00:00:00 2001 From: Till Brehm Date: Wed, 3 Jul 2019 12:58:05 +0200 Subject: [PATCH 071/215] Fixed #5070 Firewall > Character not allowed in tcp port definition --- install/sql/incremental/upd_dev_collection.sql | 4 +++- install/sql/ispconfig3.sql | 4 ++-- 2 files changed, 5 insertions(+), 3 deletions(-) diff --git a/install/sql/incremental/upd_dev_collection.sql b/install/sql/incremental/upd_dev_collection.sql index 279d3ce21..55e3b846d 100644 --- a/install/sql/incremental/upd_dev_collection.sql +++ b/install/sql/incremental/upd_dev_collection.sql @@ -80,4 +80,6 @@ INSERT IGNORE INTO `dns_ssl_ca` (`id`, `sys_userid`, `sys_groupid`, `sys_perm_us ALTER TABLE `dns_soa` CHANGE `xfer` `xfer` TEXT NULL; ALTER TABLE `dns_soa` CHANGE `also_notify` `also_notify` TEXT NULL; -ALTER TABLE `dns_slave` CHANGE `xfer` `xfer` TEXT NULL; \ No newline at end of file +ALTER TABLE `dns_slave` CHANGE `xfer` `xfer` TEXT NULL; +ALTER TABLE `firewall` CHANGE `tcp_port` `tcp_port` TEXT CHARACTER SET utf8 COLLATE utf8_general_ci NULL DEFAULT NULL; +ALTER TABLE `firewall` CHANGE `udp_port` `udp_port` TEXT CHARACTER SET utf8 COLLATE utf8_general_ci NULL DEFAULT NULL; \ No newline at end of file diff --git a/install/sql/ispconfig3.sql b/install/sql/ispconfig3.sql index 4cfaebb39..b547a93df 100644 --- a/install/sql/ispconfig3.sql +++ b/install/sql/ispconfig3.sql @@ -682,8 +682,8 @@ CREATE TABLE `firewall` ( `sys_perm_group` varchar(5) default NULL, `sys_perm_other` varchar(5) default NULL, `server_id` int(11) unsigned NOT NULL default '0', - `tcp_port` varchar(255) default NULL, - `udp_port` varchar(255) default NULL, + `tcp_port` text, + `udp_port` text, `active` enum('n','y') NOT NULL default 'y', PRIMARY KEY (`firewall_id`) ) ENGINE=MyISAM DEFAULT CHARSET=utf8 AUTO_INCREMENT=1 ; -- GitLab From f6150fe64813bd442bb09c69987ca38fcdaf9489 Mon Sep 17 00:00:00 2001 From: Till Brehm Date: Wed, 3 Jul 2019 13:11:53 +0200 Subject: [PATCH 072/215] Fixed #4353 Layout Issues --- interface/lib/classes/listform_actions.inc.php | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/interface/lib/classes/listform_actions.inc.php b/interface/lib/classes/listform_actions.inc.php index a13c3fdb7..1b8426b89 100644 --- a/interface/lib/classes/listform_actions.inc.php +++ b/interface/lib/classes/listform_actions.inc.php @@ -264,7 +264,7 @@ class listform_actions { foreach($limits as $key => $val){ $options .= ''; } - $app->tpl->setVar('search_limit', ''); + $app->tpl->setVar('search_limit', ''); $app->tpl->setVar('toolsarea_head_txt', $app->lng('toolsarea_head_txt')); $app->tpl->setVar($app->listform->wordbook); -- GitLab From b019e483854d7d634fafac06353659b6ba673b2b Mon Sep 17 00:00:00 2001 From: Till Brehm Date: Wed, 3 Jul 2019 14:01:57 +0200 Subject: [PATCH 073/215] Fixed #4946 Problems with email starst not being written into the database. --- server/lib/classes/cron.d/100-mailbox_stats.inc.php | 5 +++++ 1 file changed, 5 insertions(+) diff --git a/server/lib/classes/cron.d/100-mailbox_stats.inc.php b/server/lib/classes/cron.d/100-mailbox_stats.inc.php index e5a0065a5..51c3a4548 100644 --- a/server/lib/classes/cron.d/100-mailbox_stats.inc.php +++ b/server/lib/classes/cron.d/100-mailbox_stats.inc.php @@ -173,6 +173,10 @@ class cronjob_mailbox_stats extends cronjob { continue; } } + + $this->mail_boxes = $mail_boxes; + $this->mail_rewrites = $mail_rewrites; + $this->add_mailbox_traffic($cur_line['from'], $cur_line['size'],$mail_boxes, $mail_rewrites); //echo "1\n"; //print_r($this->mailbox_traffic); @@ -221,6 +225,7 @@ class cronjob_mailbox_stats extends cronjob { $tstamp = date('Y-m'); $sql = "SELECT mailuser_id,email FROM mail_user WHERE server_id = ?"; $records = $app->db->queryAllRecords($sql, $conf['server_id']); + $mailbox_traffic = $this->mailbox_traffic; foreach($records as $rec) { if(array_key_exists($rec['email'], $mailbox_traffic)) { $sql = "SELECT * FROM mail_traffic WHERE month = ? AND mailuser_id = ?"; -- GitLab From 373a9f2b9fd5b011ebfc4bf5b70f6af3f15e1eb3 Mon Sep 17 00:00:00 2001 From: Till Brehm Date: Wed, 3 Jul 2019 14:50:37 +0200 Subject: [PATCH 074/215] implemented #5116 Cronjob on Jailkit Environment is not executed --- server/scripts/create_jailkit_user.sh | 6 ++++++ 1 file changed, 6 insertions(+) diff --git a/server/scripts/create_jailkit_user.sh b/server/scripts/create_jailkit_user.sh index 5e1060be2..efefafe3e 100755 --- a/server/scripts/create_jailkit_user.sh +++ b/server/scripts/create_jailkit_user.sh @@ -21,6 +21,12 @@ CHROOT_SHELL=$4 CHROOT_P_USER=$5 CHROOT_P_USER_HOMEDIR=$6 +### Check if USERHOMEDIR already exists ### +if [ ! -d $CHROOT_HOMEDIR/.$CHROOT_USERHOMEDIR ]; then + mkdir -p $CHROOT_HOMEDIR/.$CHROOT_USERHOMEDIR + chown -R $CHROOT_USERNAME $CHROOT_HOMEDIR/.$CHROOT_USERHOMEDIR +fi + ### Reconfigure the chroot home directory for the user ### usermod --home=$CHROOT_HOMEDIR/.$CHROOT_USERHOMEDIR $CHROOT_USERNAME 2>/dev/null -- GitLab From f1374f877a27ed182b072009260b1d5b40f9da29 Mon Sep 17 00:00:00 2001 From: Till Brehm Date: Wed, 3 Jul 2019 15:50:34 +0200 Subject: [PATCH 075/215] Fixed #5225 ISPConfig fails to create ispconfig user during initial installation with MySQL 8.0 --- install/lib/installer_base.lib.php | 10 +++++++--- 1 file changed, 7 insertions(+), 3 deletions(-) diff --git a/install/lib/installer_base.lib.php b/install/lib/installer_base.lib.php index 2c99f1bd0..1c32c6498 100644 --- a/install/lib/installer_base.lib.php +++ b/install/lib/installer_base.lib.php @@ -288,11 +288,15 @@ class installer_base { $this->db->query("DROP USER ?@?", $conf['mysql']['ispconfig_user'], $from_host); $this->db->query("DROP DATABASE IF EXISTS ?", $conf['mysql']['database']); - //* Create the ISPConfig database user in the local database - $query = 'GRANT SELECT, INSERT, UPDATE, DELETE ON ?? TO ?@? IDENTIFIED BY ?'; - if(!$this->db->query($query, $conf['mysql']['database'] . ".*", $conf['mysql']['ispconfig_user'], $from_host, $conf['mysql']['ispconfig_password'])) { + //* Create the ISPConfig database user and grant permissions in the local database + $query = 'CREATE USER ?@? IDENTIFIED BY ?'; + if(!$this->db->query($query, $conf['mysql']['ispconfig_user'], $from_host, $conf['mysql']['ispconfig_password'])) { $this->error('Unable to create database user: '.$conf['mysql']['ispconfig_user'].' Error: '.$this->db->errorMessage); } + $query = 'GRANT SELECT, INSERT, UPDATE, DELETE ON ?? TO ?@?'; + if(!$this->db->query($query, $conf['mysql']['database'] . ".*", $conf['mysql']['ispconfig_user'], $from_host)) { + $this->error('Unable to grant databse permissions to user: '.$conf['mysql']['ispconfig_user'].' Error: '.$this->db->errorMessage); + } //* Set the database name in the DB library $this->db->setDBName($conf['mysql']['database']); -- GitLab From de0ecf8f0a55e090ce0b5a66817437959b7c5848 Mon Sep 17 00:00:00 2001 From: Till Brehm Date: Wed, 3 Jul 2019 16:48:36 +0200 Subject: [PATCH 076/215] Fixed #5248 ISPConfig user login database record not created on percona DB --- interface/web/client/client_edit.php | 2 +- interface/web/client/reseller_edit.php | 2 +- 2 files changed, 2 insertions(+), 2 deletions(-) diff --git a/interface/web/client/client_edit.php b/interface/web/client/client_edit.php index 8577a1b32..bbc7849f1 100644 --- a/interface/web/client/client_edit.php +++ b/interface/web/client/client_edit.php @@ -266,7 +266,7 @@ class page_action extends tform_actions { $app->functions->generate_ssh_key($this->id, $username); // Create the controlpaneluser for the client - $sql = "INSERT INTO sys_user (username,passwort,modules,startmodule,app_theme,typ,active,language,groups,default_group,client_id) + $sql = "INSERT INTO sys_user (`username`,`passwort`,`modules`,`startmodule`,`app_theme`,`typ`,`active`,`language`,`groups`,`default_group`,`client_id`) VALUES (?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?)"; $app->db->query($sql, $username, $password, $modules, $startmodule, $usertheme, $type, $active, $language, $groups, $groupid, $this->id); diff --git a/interface/web/client/reseller_edit.php b/interface/web/client/reseller_edit.php index 7a84be525..a089558ca 100644 --- a/interface/web/client/reseller_edit.php +++ b/interface/web/client/reseller_edit.php @@ -222,7 +222,7 @@ class page_action extends tform_actions { $password = crypt(stripslashes($password), $salt); // Create the controlpaneluser for the reseller - $sql = "INSERT INTO sys_user (username,passwort,modules,startmodule,app_theme,typ,active,language,groups,default_group,client_id) + $sql = "INSERT INTO sys_user (`username`,`passwort`,`modules`,`startmodule`,`app_theme`,`typ,active`,`language`,`groups`,`default_group`,`client_id`) VALUES (?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?)"; $app->db->query($sql, $username, $password, $modules, $startmodule, $usertheme, $type, $active, $language, $groups, $groupid, $this->id); -- GitLab From cc87da34d2434a0e5d167d07034f19fcabe7c78f Mon Sep 17 00:00:00 2001 From: Herman van Rink Date: Wed, 3 Jul 2019 17:01:12 +0200 Subject: [PATCH 077/215] Add a space after ***SPAM*** The spamassassin default also has a space, like in install/tpl/amavisd_user_config.master --- install/sql/ispconfig3.sql | 2 +- interface/web/mail/form/mail_spamfilter.tform.php | 2 +- 2 files changed, 2 insertions(+), 2 deletions(-) diff --git a/install/sql/ispconfig3.sql b/install/sql/ispconfig3.sql index b547a93df..2417ef0d2 100644 --- a/install/sql/ispconfig3.sql +++ b/install/sql/ispconfig3.sql @@ -2521,7 +2521,7 @@ INSERT INTO `spamfilter_policy` (`id`, `sys_userid`, `sys_groupid`, `sys_perm_us INSERT INTO `spamfilter_policy` (`id`, `sys_userid`, `sys_groupid`, `sys_perm_user`, `sys_perm_group`, `sys_perm_other`, `policy_name`, `virus_lover`, `spam_lover`, `banned_files_lover`, `bad_header_lover`, `bypass_virus_checks`, `bypass_spam_checks`, `bypass_banned_checks`, `bypass_header_checks`, `spam_modifies_subj`, `virus_quarantine_to`, `spam_quarantine_to`, `banned_quarantine_to`, `bad_header_quarantine_to`, `clean_quarantine_to`, `other_quarantine_to`, `spam_tag_level`, `spam_tag2_level`, `spam_kill_level`, `spam_dsn_cutoff_level`, `spam_quarantine_cutoff_level`, `addr_extension_virus`, `addr_extension_spam`, `addr_extension_banned`, `addr_extension_bad_header`, `warnvirusrecip`, `warnbannedrecip`, `warnbadhrecip`, `newvirus_admin`, `virus_admin`, `banned_admin`, `bad_header_admin`, `spam_admin`, `spam_subject_tag`, `spam_subject_tag2`, `message_size_limit`, `banned_rulenames`) VALUES(2, 1, 0, 'riud', 'riud', 'r', 'Uncensored', 'Y', 'Y', 'Y', 'Y', 'N', 'N', 'N', 'N', 'N', NULL, NULL, NULL, NULL, NULL, NULL, 3, 999, 999, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL); INSERT INTO `spamfilter_policy` (`id`, `sys_userid`, `sys_groupid`, `sys_perm_user`, `sys_perm_group`, `sys_perm_other`, `policy_name`, `virus_lover`, `spam_lover`, `banned_files_lover`, `bad_header_lover`, `bypass_virus_checks`, `bypass_spam_checks`, `bypass_banned_checks`, `bypass_header_checks`, `spam_modifies_subj`, `virus_quarantine_to`, `spam_quarantine_to`, `banned_quarantine_to`, `bad_header_quarantine_to`, `clean_quarantine_to`, `other_quarantine_to`, `spam_tag_level`, `spam_tag2_level`, `spam_kill_level`, `spam_dsn_cutoff_level`, `spam_quarantine_cutoff_level`, `addr_extension_virus`, `addr_extension_spam`, `addr_extension_banned`, `addr_extension_bad_header`, `warnvirusrecip`, `warnbannedrecip`, `warnbadhrecip`, `newvirus_admin`, `virus_admin`, `banned_admin`, `bad_header_admin`, `spam_admin`, `spam_subject_tag`, `spam_subject_tag2`, `message_size_limit`, `banned_rulenames`) VALUES(3, 1, 0, 'riud', 'riud', 'r', 'Wants all spam', 'N', 'Y', 'N', 'N', 'N', 'N', 'N', 'N', 'Y', NULL, NULL, NULL, NULL, NULL, NULL, 3, 999, 999, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL); INSERT INTO `spamfilter_policy` (`id`, `sys_userid`, `sys_groupid`, `sys_perm_user`, `sys_perm_group`, `sys_perm_other`, `policy_name`, `virus_lover`, `spam_lover`, `banned_files_lover`, `bad_header_lover`, `bypass_virus_checks`, `bypass_spam_checks`, `bypass_banned_checks`, `bypass_header_checks`, `spam_modifies_subj`, `virus_quarantine_to`, `spam_quarantine_to`, `banned_quarantine_to`, `bad_header_quarantine_to`, `clean_quarantine_to`, `other_quarantine_to`, `spam_tag_level`, `spam_tag2_level`, `spam_kill_level`, `spam_dsn_cutoff_level`, `spam_quarantine_cutoff_level`, `addr_extension_virus`, `addr_extension_spam`, `addr_extension_banned`, `addr_extension_bad_header`, `warnvirusrecip`, `warnbannedrecip`, `warnbadhrecip`, `newvirus_admin`, `virus_admin`, `banned_admin`, `bad_header_admin`, `spam_admin`, `spam_subject_tag`, `spam_subject_tag2`, `message_size_limit`, `banned_rulenames`) VALUES(4, 1, 0, 'riud', 'riud', 'r', 'Wants viruses', 'Y', 'N', 'Y', 'Y', 'N', 'N', 'N', 'N', 'Y', NULL, NULL, NULL, NULL, NULL, NULL, 3, 6.9, 6.9, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL); -INSERT INTO `spamfilter_policy` (`id`, `sys_userid`, `sys_groupid`, `sys_perm_user`, `sys_perm_group`, `sys_perm_other`, `policy_name`, `virus_lover`, `spam_lover`, `banned_files_lover`, `bad_header_lover`, `bypass_virus_checks`, `bypass_spam_checks`, `bypass_banned_checks`, `bypass_header_checks`, `spam_modifies_subj`, `virus_quarantine_to`, `spam_quarantine_to`, `banned_quarantine_to`, `bad_header_quarantine_to`, `clean_quarantine_to`, `other_quarantine_to`, `spam_tag_level`, `spam_tag2_level`, `spam_kill_level`, `spam_dsn_cutoff_level`, `spam_quarantine_cutoff_level`, `addr_extension_virus`, `addr_extension_spam`, `addr_extension_banned`, `addr_extension_bad_header`, `warnvirusrecip`, `warnbannedrecip`, `warnbadhrecip`, `newvirus_admin`, `virus_admin`, `banned_admin`, `bad_header_admin`, `spam_admin`, `spam_subject_tag`, `spam_subject_tag2`, `message_size_limit`, `banned_rulenames`) VALUES(5, 1, 0, 'riud', 'riud', 'r', 'Normal', 'N', 'N', 'N', 'N', 'N', 'N', 'N', 'N', 'Y', '', '', '', '', '', '', 1, 4.5, 50, 0, 0, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, '', '***SPAM***', NULL, NULL); +INSERT INTO `spamfilter_policy` (`id`, `sys_userid`, `sys_groupid`, `sys_perm_user`, `sys_perm_group`, `sys_perm_other`, `policy_name`, `virus_lover`, `spam_lover`, `banned_files_lover`, `bad_header_lover`, `bypass_virus_checks`, `bypass_spam_checks`, `bypass_banned_checks`, `bypass_header_checks`, `spam_modifies_subj`, `virus_quarantine_to`, `spam_quarantine_to`, `banned_quarantine_to`, `bad_header_quarantine_to`, `clean_quarantine_to`, `other_quarantine_to`, `spam_tag_level`, `spam_tag2_level`, `spam_kill_level`, `spam_dsn_cutoff_level`, `spam_quarantine_cutoff_level`, `addr_extension_virus`, `addr_extension_spam`, `addr_extension_banned`, `addr_extension_bad_header`, `warnvirusrecip`, `warnbannedrecip`, `warnbadhrecip`, `newvirus_admin`, `virus_admin`, `banned_admin`, `bad_header_admin`, `spam_admin`, `spam_subject_tag`, `spam_subject_tag2`, `message_size_limit`, `banned_rulenames`) VALUES(5, 1, 0, 'riud', 'riud', 'r', 'Normal', 'N', 'N', 'N', 'N', 'N', 'N', 'N', 'N', 'Y', '', '', '', '', '', '', 1, 4.5, 50, 0, 0, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, '', '***SPAM*** ', NULL, NULL); INSERT INTO `spamfilter_policy` (`id`, `sys_userid`, `sys_groupid`, `sys_perm_user`, `sys_perm_group`, `sys_perm_other`, `policy_name`, `virus_lover`, `spam_lover`, `banned_files_lover`, `bad_header_lover`, `bypass_virus_checks`, `bypass_spam_checks`, `bypass_banned_checks`, `bypass_header_checks`, `spam_modifies_subj`, `virus_quarantine_to`, `spam_quarantine_to`, `banned_quarantine_to`, `bad_header_quarantine_to`, `clean_quarantine_to`, `other_quarantine_to`, `spam_tag_level`, `spam_tag2_level`, `spam_kill_level`, `spam_dsn_cutoff_level`, `spam_quarantine_cutoff_level`, `addr_extension_virus`, `addr_extension_spam`, `addr_extension_banned`, `addr_extension_bad_header`, `warnvirusrecip`, `warnbannedrecip`, `warnbadhrecip`, `newvirus_admin`, `virus_admin`, `banned_admin`, `bad_header_admin`, `spam_admin`, `spam_subject_tag`, `spam_subject_tag2`, `message_size_limit`, `banned_rulenames`) VALUES(6, 1, 0, 'riud', 'riud', 'r', 'Trigger happy', 'N', 'N', 'N', 'N', 'N', 'N', 'N', 'N', 'Y', NULL, NULL, NULL, NULL, NULL, NULL, 3, 5, 5, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL); INSERT INTO `spamfilter_policy` (`id`, `sys_userid`, `sys_groupid`, `sys_perm_user`, `sys_perm_group`, `sys_perm_other`, `policy_name`, `virus_lover`, `spam_lover`, `banned_files_lover`, `bad_header_lover`, `bypass_virus_checks`, `bypass_spam_checks`, `bypass_banned_checks`, `bypass_header_checks`, `spam_modifies_subj`, `virus_quarantine_to`, `spam_quarantine_to`, `banned_quarantine_to`, `bad_header_quarantine_to`, `clean_quarantine_to`, `other_quarantine_to`, `spam_tag_level`, `spam_tag2_level`, `spam_kill_level`, `spam_dsn_cutoff_level`, `spam_quarantine_cutoff_level`, `addr_extension_virus`, `addr_extension_spam`, `addr_extension_banned`, `addr_extension_bad_header`, `warnvirusrecip`, `warnbannedrecip`, `warnbadhrecip`, `newvirus_admin`, `virus_admin`, `banned_admin`, `bad_header_admin`, `spam_admin`, `spam_subject_tag`, `spam_subject_tag2`, `message_size_limit`, `banned_rulenames`) VALUES(7, 1, 0, 'riud', 'riud', 'r', 'Permissive', 'N', 'N', 'N', 'Y', 'N', 'N', 'N', 'N', 'Y', NULL, NULL, NULL, NULL, NULL, NULL, 3, 10, 20, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL); diff --git a/interface/web/mail/form/mail_spamfilter.tform.php b/interface/web/mail/form/mail_spamfilter.tform.php index fb9a3c311..d726a3eb7 100644 --- a/interface/web/mail/form/mail_spamfilter.tform.php +++ b/interface/web/mail/form/mail_spamfilter.tform.php @@ -114,7 +114,7 @@ $form["tabs"]['spamfilter'] = array ( 1 => array( 'event' => 'SAVE', 'type' => 'STRIPNL') ), - 'default' => '***SPAM***', + 'default' => '***SPAM*** ', 'value' => '', 'width' => '30', 'maxlength' => '255' -- GitLab From 1a5608d1320160e55e665146cfba6d8119199e59 Mon Sep 17 00:00:00 2001 From: Till Brehm Date: Thu, 4 Jul 2019 18:07:18 +0200 Subject: [PATCH 078/215] Implemented #5330 Limit available PHP Handlers globally in ISPConfig UI --- install/tpl/system.ini.master | 1 + interface/lib/classes/tform_base.inc.php | 123 ++++++++++-------- .../web/admin/form/system_config.tform.php | 10 ++ .../web/admin/lib/lang/de_system_config.lng | 1 + .../web/admin/lib/lang/en_system_config.lng | 1 + .../web/admin/lib/lang/es_system_config.lng | 1 + .../templates/server_config_web_edit.htm | 2 +- .../templates/system_config_sites_edit.htm | 6 + interface/web/client/form/client.tform.php | 2 +- .../web/client/form/client_template.tform.php | 2 +- interface/web/client/form/reseller.tform.php | 1 + .../web/sites/form/web_vhost_domain.tform.php | 2 +- 12 files changed, 94 insertions(+), 58 deletions(-) diff --git a/install/tpl/system.ini.master b/install/tpl/system.ini.master index 42a003b9c..c916a6254 100644 --- a/install/tpl/system.ini.master +++ b/install/tpl/system.ini.master @@ -33,6 +33,7 @@ vhost_aliasdomains=n client_username_web_check_disabled=n backups_include_into_web_quota=n reseller_can_use_options=n +web_php_options=no,fast-cgi,mod,php-fpm [tools] diff --git a/interface/lib/classes/tform_base.inc.php b/interface/lib/classes/tform_base.inc.php index 36de1371a..e6174d2da 100644 --- a/interface/lib/classes/tform_base.inc.php +++ b/interface/lib/classes/tform_base.inc.php @@ -336,69 +336,84 @@ class tform_base { } //* If the parameter 'valuelimit' is set - function applyValueLimit($limit, $values) { + function applyValueLimit($limit, $values, $current_value = '') { global $app; + + // we mas have multiple limits, therefore we explode by ; first + // Example: "system:sites:web_php_options;client:web_php_options" + $limits = explode(';',$limit); + + + foreach($limits as $limit) { - $limit_parts = explode(':', $limit); + $limit_parts = explode(':', $limit); - //* values are limited to a comma separated list - if($limit_parts[0] == 'list') { - $allowed = explode(',', $limit_parts[1]); - } - - //* values are limited to a field in the client settings - if($limit_parts[0] == 'client') { - if($_SESSION["s"]["user"]["typ"] == 'admin') { - return $values; - } else { - $client_group_id = $_SESSION["s"]["user"]["default_group"]; - $client = $app->db->queryOneRecord("SELECT ".$limit_parts[1]." as lm FROM sys_group, client WHERE sys_group.client_id = client.client_id and sys_group.groupid = ?", $client_group_id); - $allowed = explode(',', $client['lm']); + //* values are limited to a comma separated list + if($limit_parts[0] == 'list') { + $allowed = explode(',', $limit_parts[1]); } - } - //* values are limited to a field in the reseller settings - if($limit_parts[0] == 'reseller') { - if($_SESSION["s"]["user"]["typ"] == 'admin') { - return $values; - } else { - //* Get the limits of the client that is currently logged in - $client_group_id = $_SESSION["s"]["user"]["default_group"]; - $client = $app->db->queryOneRecord("SELECT parent_client_id FROM sys_group, client WHERE sys_group.client_id = client.client_id and sys_group.groupid = ?", $client_group_id); - //echo "SELECT parent_client_id FROM sys_group, client WHERE sys_group.client_id = client.client_id and sys_group.groupid = $client_group_id"; - //* If the client belongs to a reseller, we will check against the reseller Limit too - if($client['parent_client_id'] != 0) { - - //* first we need to know the groups of this reseller - $tmp = $app->db->queryOneRecord("SELECT userid, groups FROM sys_user WHERE client_id = ?", $client['parent_client_id']); - $reseller_groups = $tmp["groups"]; - $reseller_userid = $tmp["userid"]; - - // Get the limits of the reseller of the logged in client - $client_group_id = $_SESSION["s"]["user"]["default_group"]; - $reseller = $app->db->queryOneRecord("SELECT ".$limit_parts[1]." as lm FROM client WHERE client_id = ?", $client['parent_client_id']); - $allowed = explode(',', $reseller['lm']); - } else { + //* values are limited to a field in the client settings + if($limit_parts[0] == 'client') { + if($_SESSION["s"]["user"]["typ"] == 'admin') { return $values; + } else { + $client_group_id = $_SESSION["s"]["user"]["default_group"]; + $client = $app->db->queryOneRecord("SELECT ".$limit_parts[1]." as lm FROM sys_group, client WHERE sys_group.client_id = client.client_id and sys_group.groupid = ?", $client_group_id); + $allowed = explode(',', $client['lm']); } - } // end if admin - } // end if reseller - - //* values are limited to a field in the system settings - if($limit_parts[0] == 'system') { - $app->uses('getconf'); - $tmp_conf = $app->getconf->get_global_config($limit_parts[1]); - $tmp_key = $limit_parts[2]; - $allowed = $tmp_conf[$tmp_key]; - } + } + + //* values are limited to a field in the reseller settings + if($limit_parts[0] == 'reseller') { + if($_SESSION["s"]["user"]["typ"] == 'admin') { + return $values; + } else { + //* Get the limits of the client that is currently logged in + $client_group_id = $_SESSION["s"]["user"]["default_group"]; + $client = $app->db->queryOneRecord("SELECT parent_client_id FROM sys_group, client WHERE sys_group.client_id = client.client_id and sys_group.groupid = ?", $client_group_id); + //echo "SELECT parent_client_id FROM sys_group, client WHERE sys_group.client_id = client.client_id and sys_group.groupid = $client_group_id"; + //* If the client belongs to a reseller, we will check against the reseller Limit too + if($client['parent_client_id'] != 0) { + + //* first we need to know the groups of this reseller + $tmp = $app->db->queryOneRecord("SELECT userid, groups FROM sys_user WHERE client_id = ?", $client['parent_client_id']); + $reseller_groups = $tmp["groups"]; + $reseller_userid = $tmp["userid"]; + + // Get the limits of the reseller of the logged in client + $client_group_id = $_SESSION["s"]["user"]["default_group"]; + $reseller = $app->db->queryOneRecord("SELECT ".$limit_parts[1]." as lm FROM client WHERE client_id = ?", $client['parent_client_id']); + $allowed = explode(',', $reseller['lm']); + } else { + return $values; + } + } // end if admin + } // end if reseller + + //* values are limited to a field in the system settings + if($limit_parts[0] == 'system') { + $app->uses('getconf'); + $tmp_conf = $app->getconf->get_global_config($limit_parts[1]); + $tmp_key = $limit_parts[2]; + $allowed = $allowed = explode(',',$tmp_conf[$tmp_key]); + } + + // add the current value to the allowed array + $allowed[] = $current_value; + + // remove all values that are not allowed + $values_new = array(); + foreach($values as $key => $val) { + if(in_array($key, $allowed)) $values_new[$key] = $val; + } + + $values = $values_new; - $values_new = array(); - foreach($values as $key => $val) { - if(in_array($key, $allowed)) $values_new[$key] = $val; } - return $values_new; + return $values; } @@ -464,7 +479,7 @@ class tform_base { // If a limitation for the values is set if(isset($field['valuelimit']) && is_array($field["value"])) { - $field["value"] = $this->applyValueLimit($field['valuelimit'], $field["value"]); + $field["value"] = $this->applyValueLimit($field['valuelimit'], $field["value"], $val); } switch ($field['formtype']) { @@ -599,7 +614,7 @@ class tform_base { // If a limitation for the values is set if(isset($field['valuelimit']) && is_array($field["value"])) { - $field["value"] = $this->applyValueLimit($field['valuelimit'], $field["value"]); + $field["value"] = $this->applyValueLimit($field['valuelimit'], $field["value"], $field['default']); } switch ($field['formtype']) { diff --git a/interface/web/admin/form/system_config.tform.php b/interface/web/admin/form/system_config.tform.php index d718e4ef8..3fe7f0c7e 100644 --- a/interface/web/admin/form/system_config.tform.php +++ b/interface/web/admin/form/system_config.tform.php @@ -200,6 +200,16 @@ $form["tabs"]['sites'] = array ( 'value' => '', 'name' => 'default_dbserver' ), + 'web_php_options' => array ( + 'datatype' => 'VARCHAR', + 'formtype' => 'CHECKBOXARRAY', + 'validators' => array ( 0 => array ( 'type' => 'NOTEMPTY', + 'errmsg'=> 'web_php_options_notempty'), + ), + 'default' => '', + 'separator' => ',', + 'value' => array('no' => 'Disabled', 'fast-cgi' => 'Fast-CGI', 'cgi' => 'CGI', 'mod' => 'Mod-PHP', 'suphp' => 'SuPHP', 'php-fpm' => 'PHP-FPM', 'hhvm' => 'HHVM') + ), //################################# // ENDE Datatable fields //################################# diff --git a/interface/web/admin/lib/lang/de_system_config.lng b/interface/web/admin/lib/lang/de_system_config.lng index 0771322ef..59a3e8d11 100644 --- a/interface/web/admin/lib/lang/de_system_config.lng +++ b/interface/web/admin/lib/lang/de_system_config.lng @@ -89,4 +89,5 @@ $wb['ca_iodef_txt'] = 'iodef'; $wb['active_txt'] = 'Aktiv'; $wb['btn_save_txt'] = 'Speichern'; $wb['btn_cancel_txt'] = 'Abbrechen'; +$wb['web_php_options_txt'] = 'PHP Handler (Nur Apache)'; ?> diff --git a/interface/web/admin/lib/lang/en_system_config.lng b/interface/web/admin/lib/lang/en_system_config.lng index 29732e416..ef34493c9 100644 --- a/interface/web/admin/lib/lang/en_system_config.lng +++ b/interface/web/admin/lib/lang/en_system_config.lng @@ -92,4 +92,5 @@ $wb['ca_iodef_txt'] = 'iodef'; $wb['active_txt'] = 'Active'; $wb['btn_save_txt'] = 'Save'; $wb['btn_cancel_txt'] = 'Cancel'; +$wb['web_php_options_txt'] = 'PHP Handler (Apache only)'; ?> diff --git a/interface/web/admin/lib/lang/es_system_config.lng b/interface/web/admin/lib/lang/es_system_config.lng index 21575571f..6dc07dfd5 100755 --- a/interface/web/admin/lib/lang/es_system_config.lng +++ b/interface/web/admin/lib/lang/es_system_config.lng @@ -89,4 +89,5 @@ $wb['ca_iodef_txt'] = 'iodef'; $wb['active_txt'] = 'Aktive'; $wb['btn_save_txt'] = 'Save'; $wb['btn_cancel_txt'] = 'Cancel'; +$wb['web_php_options_txt'] = 'PHP Handler (Apache only)'; ?> diff --git a/interface/web/admin/templates/server_config_web_edit.htm b/interface/web/admin/templates/server_config_web_edit.htm index 8cc8dc434..8231e45cb 100644 --- a/interface/web/admin/templates/server_config_web_edit.htm +++ b/interface/web/admin/templates/server_config_web_edit.htm @@ -256,7 +256,7 @@
-
+
diff --git a/interface/web/admin/templates/system_config_sites_edit.htm b/interface/web/admin/templates/system_config_sites_edit.htm index 1c4c5c6f9..a0f95e479 100644 --- a/interface/web/admin/templates/system_config_sites_edit.htm +++ b/interface/web/admin/templates/system_config_sites_edit.htm @@ -63,6 +63,12 @@ {tmpl_var name='reseller_can_use_options'}
+
+ +
+ {tmpl_var name='web_php_options'} +
+
+ {tmpl_var name='php_fpm_reload_mode'} +
+
diff --git a/server/plugins-available/apache2_plugin.inc.php b/server/plugins-available/apache2_plugin.inc.php index 6fa3101ed..7ecbb7610 100644 --- a/server/plugins-available/apache2_plugin.inc.php +++ b/server/plugins-available/apache2_plugin.inc.php @@ -3058,6 +3058,8 @@ class apache2_plugin { $app->uses("getconf"); $web_config = $app->getconf->get_server_config($conf["server_id"], 'web'); + + $php_fpm_reload_mode = ($web_config['php_fpm_reload_mode'] == 'reload')?'reload':'restart'; if($data['new']['php'] != 'php-fpm'){ if(@is_file($pool_dir.$pool_name.'.conf')){ @@ -3066,9 +3068,9 @@ class apache2_plugin { } if($data['old']['php'] == 'php-fpm'){ if(!$default_php_fpm){ - $app->services->restartService('php-fpm', 'reload:'.$custom_php_fpm_init_script); + $app->services->restartService('php-fpm', $php_fpm_reload_mode.':'.$custom_php_fpm_init_script); } else { - $app->services->restartService('php-fpm', 'reload:'.$conf['init_scripts'].'/'.$web_config['php_fpm_init_script']); + $app->services->restartService('php-fpm', $php_fpm_reload_mode.':'.$conf['init_scripts'].'/'.$web_config['php_fpm_init_script']); } } //if($reload == true) $app->services->restartService('php-fpm','reload'); @@ -3205,7 +3207,7 @@ class apache2_plugin { if ( @is_file($default_pool_dir.$pool_name.'.conf') ) { $app->system->unlink($default_pool_dir.$pool_name.'.conf'); $app->log('Removed PHP-FPM config file: '.$default_pool_dir.$pool_name.'.conf', LOGLEVEL_DEBUG); - $app->services->restartService('php-fpm', 'reload:'.$conf['init_scripts'].'/'.$web_config['php_fpm_init_script']); + $app->services->restartService('php-fpm', $php_fpm_reload_mode.':'.$conf['init_scripts'].'/'.$web_config['php_fpm_init_script']); } } $php_versions = $app->db->queryAllRecords("SELECT * FROM server_php WHERE php_fpm_init_script != '' AND php_fpm_ini_dir != '' AND php_fpm_pool_dir != '' AND server_id = ?", $conf["server_id"]); @@ -3217,7 +3219,7 @@ class apache2_plugin { if ( @is_file($php_version['php_fpm_pool_dir'].$pool_name.'.conf') ) { $app->system->unlink($php_version['php_fpm_pool_dir'].$pool_name.'.conf'); $app->log('Removed PHP-FPM config file: '.$php_version['php_fpm_pool_dir'].$pool_name.'.conf', LOGLEVEL_DEBUG); - $app->services->restartService('php-fpm', 'reload:'.$php_version['php_fpm_init_script']); + $app->services->restartService('php-fpm', $php_fpm_reload_mode.':'.$php_version['php_fpm_init_script']); } } } @@ -3225,9 +3227,9 @@ class apache2_plugin { // Reload current PHP-FPM after all others sleep(1); if(!$default_php_fpm){ - $app->services->restartService('php-fpm', 'reload:'.$custom_php_fpm_init_script); + $app->services->restartService('php-fpm', $php_fpm_reload_mode.':'.$custom_php_fpm_init_script); } else { - $app->services->restartService('php-fpm', 'reload:'.$conf['init_scripts'].'/'.$web_config['php_fpm_init_script']); + $app->services->restartService('php-fpm', $php_fpm_reload_mode.':'.$conf['init_scripts'].'/'.$web_config['php_fpm_init_script']); } //$reload = true; @@ -3238,6 +3240,11 @@ class apache2_plugin { //* Delete the PHP-FPM pool configuration file private function php_fpm_pool_delete ($data, $web_config) { global $app, $conf; + + $app->uses("getconf"); + $web_config = $app->getconf->get_server_config($conf["server_id"], 'web'); + + $php_fpm_reload_mode = ($web_config['php_fpm_reload_mode'] == 'reload')?'reload':'restart'; if(trim($data['old']['fastcgi_php_version']) != '' && $data['old']['php'] == 'php-fpm'){ $default_php_fpm = false; @@ -3271,7 +3278,7 @@ class apache2_plugin { if ( @is_file($default_pool_dir.$pool_name.'.conf') ) { $app->system->unlink($default_pool_dir.$pool_name.'.conf'); $app->log('Removed PHP-FPM config file: '.$default_pool_dir.$pool_name.'.conf', LOGLEVEL_DEBUG); - $app->services->restartService('php-fpm', 'reload:'.$conf['init_scripts'].'/'.$web_config['php_fpm_init_script']); + $app->services->restartService('php-fpm', $php_fpm_reload_mode.':'.$conf['init_scripts'].'/'.$web_config['php_fpm_init_script']); } } $php_versions = $app->db->queryAllRecords("SELECT * FROM server_php WHERE php_fpm_init_script != '' AND php_fpm_ini_dir != '' AND php_fpm_pool_dir != '' AND server_id = ?", $data['old']['server_id']); @@ -3283,7 +3290,7 @@ class apache2_plugin { if ( @is_file($php_version['php_fpm_pool_dir'].$pool_name.'.conf') ) { $app->system->unlink($php_version['php_fpm_pool_dir'].$pool_name.'.conf'); $app->log('Removed PHP-FPM config file: '.$php_version['php_fpm_pool_dir'].$pool_name.'.conf', LOGLEVEL_DEBUG); - $app->services->restartService('php-fpm', 'reload:'.$php_version['php_fpm_init_script']); + $app->services->restartService('php-fpm', $php_fpm_reload_mode.':'.$php_version['php_fpm_init_script']); } } } @@ -3292,9 +3299,9 @@ class apache2_plugin { // Reload current PHP-FPM after all others sleep(1); if(!$default_php_fpm){ - $app->services->restartService('php-fpm', 'reload:'.$custom_php_fpm_init_script); + $app->services->restartService('php-fpm', $php_fpm_reload_mode.':'.$custom_php_fpm_init_script); } else { - $app->services->restartService('php-fpm', 'reload:'.$conf['init_scripts'].'/'.$web_config['php_fpm_init_script']); + $app->services->restartService('php-fpm', $php_fpm_reload_mode.':'.$conf['init_scripts'].'/'.$web_config['php_fpm_init_script']); } } -- GitLab From 9545334c5a54215d0c8c1aba8cee776a9a090d30 Mon Sep 17 00:00:00 2001 From: Till Brehm Date: Fri, 5 Jul 2019 18:35:55 +0200 Subject: [PATCH 086/215] Merged language files --- .../web/admin/lib/lang/ar_server_config.lng | 1 + .../web/admin/lib/lang/ar_server_php_list.lng | 1 + .../web/admin/lib/lang/ar_system_config.lng | 3 ++- .../web/admin/lib/lang/bg_server_config.lng | 1 + .../web/admin/lib/lang/bg_server_php_list.lng | 1 + .../web/admin/lib/lang/bg_system_config.lng | 3 ++- .../web/admin/lib/lang/br_server_config.lng | 2 ++ .../web/admin/lib/lang/br_server_php_list.lng | 1 + .../web/admin/lib/lang/br_system_config.lng | 13 +++------- .../web/admin/lib/lang/ca_server_config.lng | 1 + .../web/admin/lib/lang/ca_server_php_list.lng | 1 + .../web/admin/lib/lang/ca_system_config.lng | 3 ++- .../web/admin/lib/lang/cz_server_config.lng | 3 ++- .../web/admin/lib/lang/cz_server_php_list.lng | 1 + .../web/admin/lib/lang/cz_system_config.lng | 3 ++- .../web/admin/lib/lang/de_system_config.lng | 2 +- .../web/admin/lib/lang/dk_server_config.lng | 1 + .../web/admin/lib/lang/dk_server_php_list.lng | 1 + .../web/admin/lib/lang/dk_system_config.lng | 3 ++- .../web/admin/lib/lang/el_server_config.lng | 1 + .../web/admin/lib/lang/el_server_php_list.lng | 1 + .../web/admin/lib/lang/el_system_config.lng | 3 ++- .../web/admin/lib/lang/es_server_config.lng | 1 + .../web/admin/lib/lang/es_server_php_list.lng | 1 + .../web/admin/lib/lang/es_system_config.lng | 2 +- .../web/admin/lib/lang/fi_server_config.lng | 1 + .../web/admin/lib/lang/fi_server_php_list.lng | 1 + .../web/admin/lib/lang/fi_system_config.lng | 3 ++- .../web/admin/lib/lang/fr_server_config.lng | 1 + .../web/admin/lib/lang/fr_server_php_list.lng | 1 + .../web/admin/lib/lang/fr_system_config.lng | 3 ++- .../web/admin/lib/lang/hr_server_config.lng | 1 + .../web/admin/lib/lang/hr_server_php_list.lng | 1 + .../web/admin/lib/lang/hr_system_config.lng | 3 ++- .../web/admin/lib/lang/hu_server_config.lng | 1 + .../web/admin/lib/lang/hu_server_php_list.lng | 1 + .../web/admin/lib/lang/hu_system_config.lng | 3 ++- .../web/admin/lib/lang/id_server_config.lng | 1 + .../web/admin/lib/lang/id_server_php_list.lng | 1 + .../web/admin/lib/lang/id_system_config.lng | 3 ++- .../web/admin/lib/lang/it_server_config.lng | 1 + .../web/admin/lib/lang/it_server_php_list.lng | 1 + .../web/admin/lib/lang/it_system_config.lng | 3 ++- .../web/admin/lib/lang/ja_server_config.lng | 1 + .../web/admin/lib/lang/ja_server_php_list.lng | 1 + .../web/admin/lib/lang/ja_system_config.lng | 3 ++- .../web/admin/lib/lang/nl_server_config.lng | 1 + .../web/admin/lib/lang/nl_server_php_list.lng | 1 + .../web/admin/lib/lang/nl_system_config.lng | 3 ++- .../web/admin/lib/lang/pl_server_config.lng | 1 + .../web/admin/lib/lang/pl_server_php_list.lng | 1 + .../web/admin/lib/lang/pl_system_config.lng | 3 ++- .../web/admin/lib/lang/pt_server_config.lng | 1 + .../web/admin/lib/lang/pt_server_php_list.lng | 1 + .../web/admin/lib/lang/pt_system_config.lng | 3 ++- .../web/admin/lib/lang/ro_server_config.lng | 1 + .../web/admin/lib/lang/ro_server_php_list.lng | 1 + .../web/admin/lib/lang/ro_system_config.lng | 3 ++- interface/web/admin/lib/lang/ru_firewall.lng | 4 +-- .../web/admin/lib/lang/ru_server_config.lng | 3 ++- .../web/admin/lib/lang/ru_server_php_list.lng | 1 + .../web/admin/lib/lang/ru_system_config.lng | 15 +++-------- interface/web/admin/lib/lang/ru_users.lng | 2 +- .../web/admin/lib/lang/se_server_config.lng | 1 + .../web/admin/lib/lang/se_server_php_list.lng | 1 + .../web/admin/lib/lang/se_system_config.lng | 3 ++- .../web/admin/lib/lang/sk_server_config.lng | 1 + .../web/admin/lib/lang/sk_server_php_list.lng | 1 + .../web/admin/lib/lang/sk_system_config.lng | 3 ++- .../web/admin/lib/lang/tr_server_config.lng | 1 + .../web/admin/lib/lang/tr_server_php_list.lng | 1 + .../web/admin/lib/lang/tr_system_config.lng | 3 ++- .../lib/lang/ar_client_template_list.lng | 1 + .../lib/lang/bg_client_template_list.lng | 1 + interface/web/client/lib/lang/br_client.lng | 2 +- .../client/lib/lang/br_client_template.lng | 2 +- .../lib/lang/br_client_template_list.lng | 1 + .../lib/lang/ca_client_template_list.lng | 1 + .../lib/lang/cz_client_template_list.lng | 1 + .../lib/lang/de_client_template_list.lng | 2 +- .../lib/lang/dk_client_template_list.lng | 1 + .../lib/lang/el_client_template_list.lng | 1 + .../lib/lang/es_client_template_list.lng | 1 + .../lib/lang/fi_client_template_list.lng | 1 + .../lib/lang/fr_client_template_list.lng | 1 + .../lib/lang/hr_client_template_list.lng | 1 + .../lib/lang/hu_client_template_list.lng | 1 + .../lib/lang/id_client_template_list.lng | 1 + .../lib/lang/it_client_template_list.lng | 1 + .../lib/lang/ja_client_template_list.lng | 1 + .../lib/lang/nl_client_template_list.lng | 1 + .../lib/lang/pl_client_template_list.lng | 1 + .../lib/lang/pt_client_template_list.lng | 1 + .../lib/lang/ro_client_template_list.lng | 1 + interface/web/client/lib/lang/ru_client.lng | 4 +-- .../lib/lang/ru_client_template_list.lng | 1 + interface/web/client/lib/lang/ru_reseller.lng | 4 +-- .../lib/lang/se_client_template_list.lng | 1 + .../lib/lang/sk_client_template_list.lng | 1 + .../lib/lang/tr_client_template_list.lng | 1 + interface/web/dns/lib/lang/ar_dns_caa.lng | 2 +- interface/web/dns/lib/lang/bg_dns_caa.lng | 2 +- interface/web/dns/lib/lang/br_dns_caa.lng | 2 +- interface/web/dns/lib/lang/br_dns_dmarc.lng | 10 +++---- interface/web/dns/lib/lang/br_dns_tlsa.lng | 4 +-- interface/web/dns/lib/lang/ca_dns_caa.lng | 2 +- interface/web/dns/lib/lang/cz_dns_caa.lng | 2 +- interface/web/dns/lib/lang/de_dns_caa.lng | 2 +- interface/web/dns/lib/lang/dk_dns_caa.lng | 2 +- interface/web/dns/lib/lang/el_dns_caa.lng | 2 +- interface/web/dns/lib/lang/es_dns_caa.lng | 2 +- interface/web/dns/lib/lang/fi_dns_caa.lng | 2 +- interface/web/dns/lib/lang/fr_dns_caa.lng | 2 +- interface/web/dns/lib/lang/hr_dns_caa.lng | 2 +- interface/web/dns/lib/lang/hu_dns_caa.lng | 2 +- interface/web/dns/lib/lang/id_dns_caa.lng | 2 +- interface/web/dns/lib/lang/it_dns_caa.lng | 2 +- interface/web/dns/lib/lang/ja_dns_caa.lng | 2 +- interface/web/dns/lib/lang/nl_dns_caa.lng | 2 +- interface/web/dns/lib/lang/pl_dns_caa.lng | 2 +- interface/web/dns/lib/lang/pt_dns_caa.lng | 2 +- interface/web/dns/lib/lang/ro_dns_caa.lng | 2 +- interface/web/dns/lib/lang/ru_dns_caa.lng | 2 +- interface/web/dns/lib/lang/ru_dns_hinfo.lng | 2 +- interface/web/dns/lib/lang/se_dns_caa.lng | 2 +- interface/web/dns/lib/lang/sk_dns_caa.lng | 2 +- interface/web/dns/lib/lang/tr_dns_caa.lng | 2 +- .../web/help/lib/lang/br_support_message.lng | 2 +- interface/web/login/lib/lang/br_login_as.lng | 2 +- interface/web/login/lib/lang/ru_login_as.lng | 6 ++--- interface/web/mail/lib/lang/br_mail_user.lng | 4 +-- interface/web/mail/lib/lang/ru_mail_get.lng | 2 +- .../web/mail/lib/lang/ru_mail_user_filter.lng | 2 +- .../mailuser/lib/lang/ru_mail_user_filter.lng | 2 +- interface/web/monitor/lib/lang/ar.lng | 1 + .../lib/lang/ar_dataloghistory_list.lng | 8 ++++++ .../lib/lang/ar_dataloghistory_undo.lng | 7 +++++ .../lib/lang/ar_dataloghistory_view.lng | 26 +++++++++++++++++++ interface/web/monitor/lib/lang/bg.lng | 1 + .../lib/lang/bg_dataloghistory_list.lng | 8 ++++++ .../lib/lang/bg_dataloghistory_undo.lng | 7 +++++ .../lib/lang/bg_dataloghistory_view.lng | 26 +++++++++++++++++++ interface/web/monitor/lib/lang/br.lng | 1 + .../lib/lang/br_dataloghistory_list.lng | 8 ++++++ .../lib/lang/br_dataloghistory_undo.lng | 7 +++++ .../lib/lang/br_dataloghistory_view.lng | 26 +++++++++++++++++++ interface/web/monitor/lib/lang/ca.lng | 1 + .../lib/lang/ca_dataloghistory_list.lng | 8 ++++++ .../lib/lang/ca_dataloghistory_undo.lng | 7 +++++ .../lib/lang/ca_dataloghistory_view.lng | 26 +++++++++++++++++++ interface/web/monitor/lib/lang/cz.lng | 1 + .../lib/lang/cz_dataloghistory_list.lng | 8 ++++++ .../lib/lang/cz_dataloghistory_undo.lng | 7 +++++ .../lib/lang/cz_dataloghistory_view.lng | 26 +++++++++++++++++++ interface/web/monitor/lib/lang/dk.lng | 1 + .../lib/lang/dk_dataloghistory_list.lng | 8 ++++++ .../lib/lang/dk_dataloghistory_undo.lng | 7 +++++ .../lib/lang/dk_dataloghistory_view.lng | 26 +++++++++++++++++++ interface/web/monitor/lib/lang/el.lng | 1 + .../lib/lang/el_dataloghistory_list.lng | 8 ++++++ .../lib/lang/el_dataloghistory_undo.lng | 7 +++++ .../lib/lang/el_dataloghistory_view.lng | 26 +++++++++++++++++++ interface/web/monitor/lib/lang/es.lng | 1 + .../lib/lang/es_dataloghistory_list.lng | 8 ++++++ .../lib/lang/es_dataloghistory_undo.lng | 7 +++++ .../lib/lang/es_dataloghistory_view.lng | 26 +++++++++++++++++++ interface/web/monitor/lib/lang/fi.lng | 1 + .../lib/lang/fi_dataloghistory_list.lng | 8 ++++++ .../lib/lang/fi_dataloghistory_undo.lng | 7 +++++ .../lib/lang/fi_dataloghistory_view.lng | 26 +++++++++++++++++++ interface/web/monitor/lib/lang/fr.lng | 1 + .../lib/lang/fr_dataloghistory_list.lng | 8 ++++++ .../lib/lang/fr_dataloghistory_undo.lng | 7 +++++ .../lib/lang/fr_dataloghistory_view.lng | 26 +++++++++++++++++++ interface/web/monitor/lib/lang/hr.lng | 1 + .../lib/lang/hr_dataloghistory_list.lng | 8 ++++++ .../lib/lang/hr_dataloghistory_undo.lng | 7 +++++ .../lib/lang/hr_dataloghistory_view.lng | 26 +++++++++++++++++++ interface/web/monitor/lib/lang/hu.lng | 1 + .../lib/lang/hu_dataloghistory_list.lng | 8 ++++++ .../lib/lang/hu_dataloghistory_undo.lng | 7 +++++ .../lib/lang/hu_dataloghistory_view.lng | 26 +++++++++++++++++++ interface/web/monitor/lib/lang/id.lng | 1 + .../lib/lang/id_dataloghistory_list.lng | 8 ++++++ .../lib/lang/id_dataloghistory_undo.lng | 7 +++++ .../lib/lang/id_dataloghistory_view.lng | 26 +++++++++++++++++++ interface/web/monitor/lib/lang/it.lng | 1 + .../lib/lang/it_dataloghistory_list.lng | 8 ++++++ .../lib/lang/it_dataloghistory_undo.lng | 7 +++++ .../lib/lang/it_dataloghistory_view.lng | 26 +++++++++++++++++++ interface/web/monitor/lib/lang/ja.lng | 1 + .../lib/lang/ja_dataloghistory_list.lng | 8 ++++++ .../lib/lang/ja_dataloghistory_undo.lng | 7 +++++ .../lib/lang/ja_dataloghistory_view.lng | 26 +++++++++++++++++++ interface/web/monitor/lib/lang/nl.lng | 1 + .../lib/lang/nl_dataloghistory_list.lng | 8 ++++++ .../lib/lang/nl_dataloghistory_undo.lng | 7 +++++ .../lib/lang/nl_dataloghistory_view.lng | 26 +++++++++++++++++++ interface/web/monitor/lib/lang/pl.lng | 1 + .../lib/lang/pl_dataloghistory_list.lng | 8 ++++++ .../lib/lang/pl_dataloghistory_undo.lng | 7 +++++ .../lib/lang/pl_dataloghistory_view.lng | 26 +++++++++++++++++++ interface/web/monitor/lib/lang/pt.lng | 1 + .../lib/lang/pt_dataloghistory_list.lng | 8 ++++++ .../lib/lang/pt_dataloghistory_undo.lng | 7 +++++ .../lib/lang/pt_dataloghistory_view.lng | 26 +++++++++++++++++++ interface/web/monitor/lib/lang/ro.lng | 1 + .../lib/lang/ro_dataloghistory_list.lng | 8 ++++++ .../lib/lang/ro_dataloghistory_undo.lng | 7 +++++ .../lib/lang/ro_dataloghistory_view.lng | 26 +++++++++++++++++++ interface/web/monitor/lib/lang/ru.lng | 1 + .../lib/lang/ru_dataloghistory_list.lng | 8 ++++++ .../lib/lang/ru_dataloghistory_undo.lng | 7 +++++ .../lib/lang/ru_dataloghistory_view.lng | 26 +++++++++++++++++++ interface/web/monitor/lib/lang/se.lng | 1 + .../lib/lang/se_dataloghistory_list.lng | 8 ++++++ .../lib/lang/se_dataloghistory_undo.lng | 7 +++++ .../lib/lang/se_dataloghistory_view.lng | 26 +++++++++++++++++++ interface/web/monitor/lib/lang/sk.lng | 1 + .../lib/lang/sk_dataloghistory_list.lng | 8 ++++++ .../lib/lang/sk_dataloghistory_undo.lng | 7 +++++ .../lib/lang/sk_dataloghistory_view.lng | 26 +++++++++++++++++++ interface/web/monitor/lib/lang/tr.lng | 1 + .../lib/lang/tr_dataloghistory_list.lng | 8 ++++++ .../lib/lang/tr_dataloghistory_undo.lng | 7 +++++ .../lib/lang/tr_dataloghistory_view.lng | 26 +++++++++++++++++++ .../sites/lib/lang/ar_web_vhost_domain.lng | 1 + interface/web/sites/lib/lang/bg_aps.lng | 2 +- .../sites/lib/lang/bg_web_vhost_domain.lng | 1 + interface/web/sites/lib/lang/br.lng | 2 +- interface/web/sites/lib/lang/br_aps.lng | 2 +- interface/web/sites/lib/lang/br_cron.lng | 4 +-- interface/web/sites/lib/lang/br_database.lng | 2 +- .../web/sites/lib/lang/br_database_user.lng | 2 +- interface/web/sites/lib/lang/br_ftp_user.lng | 4 +-- .../web/sites/lib/lang/br_shell_user.lng | 4 +-- .../web/sites/lib/lang/br_web_aliasdomain.lng | 4 +-- .../web/sites/lib/lang/br_web_childdomain.lng | 6 ++--- .../web/sites/lib/lang/br_web_domain.lng | 2 +- .../web/sites/lib/lang/br_web_subdomain.lng | 2 +- .../sites/lib/lang/br_web_vhost_domain.lng | 5 ++-- .../sites/lib/lang/br_web_vhost_subdomain.lng | 10 +++---- .../web/sites/lib/lang/br_webdav_user.lng | 4 +-- interface/web/sites/lib/lang/ca_aps.lng | 2 +- .../sites/lib/lang/ca_web_vhost_domain.lng | 1 + interface/web/sites/lib/lang/cz_aps.lng | 2 +- .../sites/lib/lang/cz_web_vhost_domain.lng | 1 + interface/web/sites/lib/lang/de_aps.lng | 2 +- .../sites/lib/lang/dk_web_vhost_domain.lng | 1 + .../sites/lib/lang/el_web_vhost_domain.lng | 1 + .../sites/lib/lang/es_web_vhost_domain.lng | 1 + .../sites/lib/lang/fi_web_vhost_domain.lng | 1 + .../sites/lib/lang/fr_web_vhost_domain.lng | 1 + .../sites/lib/lang/hr_web_vhost_domain.lng | 1 + .../sites/lib/lang/hu_web_vhost_domain.lng | 1 + .../sites/lib/lang/id_web_vhost_domain.lng | 1 + .../sites/lib/lang/it_web_vhost_domain.lng | 1 + .../sites/lib/lang/ja_web_vhost_domain.lng | 1 + .../sites/lib/lang/nl_web_vhost_domain.lng | 1 + .../sites/lib/lang/pl_web_vhost_domain.lng | 1 + .../sites/lib/lang/pt_web_vhost_domain.lng | 1 + .../sites/lib/lang/ro_web_vhost_domain.lng | 1 + interface/web/sites/lib/lang/ru.lng | 2 +- interface/web/sites/lib/lang/ru_aps.lng | 16 ++++++------ interface/web/sites/lib/lang/ru_database.lng | 2 +- .../web/sites/lib/lang/ru_database_user.lng | 2 +- .../web/sites/lib/lang/ru_web_childdomain.lng | 2 +- .../web/sites/lib/lang/ru_web_subdomain.lng | 2 +- .../sites/lib/lang/ru_web_vhost_domain.lng | 1 + .../sites/lib/lang/se_web_vhost_domain.lng | 1 + .../sites/lib/lang/sk_web_vhost_domain.lng | 1 + .../sites/lib/lang/tr_web_vhost_domain.lng | 1 + 272 files changed, 1205 insertions(+), 140 deletions(-) create mode 100644 interface/web/monitor/lib/lang/ar_dataloghistory_list.lng create mode 100644 interface/web/monitor/lib/lang/ar_dataloghistory_undo.lng create mode 100644 interface/web/monitor/lib/lang/ar_dataloghistory_view.lng create mode 100644 interface/web/monitor/lib/lang/bg_dataloghistory_list.lng create mode 100644 interface/web/monitor/lib/lang/bg_dataloghistory_undo.lng create mode 100644 interface/web/monitor/lib/lang/bg_dataloghistory_view.lng create mode 100644 interface/web/monitor/lib/lang/br_dataloghistory_list.lng create mode 100644 interface/web/monitor/lib/lang/br_dataloghistory_undo.lng create mode 100644 interface/web/monitor/lib/lang/br_dataloghistory_view.lng create mode 100644 interface/web/monitor/lib/lang/ca_dataloghistory_list.lng create mode 100644 interface/web/monitor/lib/lang/ca_dataloghistory_undo.lng create mode 100644 interface/web/monitor/lib/lang/ca_dataloghistory_view.lng create mode 100644 interface/web/monitor/lib/lang/cz_dataloghistory_list.lng create mode 100644 interface/web/monitor/lib/lang/cz_dataloghistory_undo.lng create mode 100644 interface/web/monitor/lib/lang/cz_dataloghistory_view.lng create mode 100644 interface/web/monitor/lib/lang/dk_dataloghistory_list.lng create mode 100644 interface/web/monitor/lib/lang/dk_dataloghistory_undo.lng create mode 100644 interface/web/monitor/lib/lang/dk_dataloghistory_view.lng create mode 100644 interface/web/monitor/lib/lang/el_dataloghistory_list.lng create mode 100644 interface/web/monitor/lib/lang/el_dataloghistory_undo.lng create mode 100644 interface/web/monitor/lib/lang/el_dataloghistory_view.lng create mode 100644 interface/web/monitor/lib/lang/es_dataloghistory_list.lng create mode 100644 interface/web/monitor/lib/lang/es_dataloghistory_undo.lng create mode 100644 interface/web/monitor/lib/lang/es_dataloghistory_view.lng create mode 100644 interface/web/monitor/lib/lang/fi_dataloghistory_list.lng create mode 100644 interface/web/monitor/lib/lang/fi_dataloghistory_undo.lng create mode 100644 interface/web/monitor/lib/lang/fi_dataloghistory_view.lng create mode 100644 interface/web/monitor/lib/lang/fr_dataloghistory_list.lng create mode 100644 interface/web/monitor/lib/lang/fr_dataloghistory_undo.lng create mode 100644 interface/web/monitor/lib/lang/fr_dataloghistory_view.lng create mode 100644 interface/web/monitor/lib/lang/hr_dataloghistory_list.lng create mode 100644 interface/web/monitor/lib/lang/hr_dataloghistory_undo.lng create mode 100644 interface/web/monitor/lib/lang/hr_dataloghistory_view.lng create mode 100644 interface/web/monitor/lib/lang/hu_dataloghistory_list.lng create mode 100644 interface/web/monitor/lib/lang/hu_dataloghistory_undo.lng create mode 100644 interface/web/monitor/lib/lang/hu_dataloghistory_view.lng create mode 100644 interface/web/monitor/lib/lang/id_dataloghistory_list.lng create mode 100644 interface/web/monitor/lib/lang/id_dataloghistory_undo.lng create mode 100644 interface/web/monitor/lib/lang/id_dataloghistory_view.lng create mode 100644 interface/web/monitor/lib/lang/it_dataloghistory_list.lng create mode 100644 interface/web/monitor/lib/lang/it_dataloghistory_undo.lng create mode 100644 interface/web/monitor/lib/lang/it_dataloghistory_view.lng create mode 100644 interface/web/monitor/lib/lang/ja_dataloghistory_list.lng create mode 100644 interface/web/monitor/lib/lang/ja_dataloghistory_undo.lng create mode 100644 interface/web/monitor/lib/lang/ja_dataloghistory_view.lng create mode 100644 interface/web/monitor/lib/lang/nl_dataloghistory_list.lng create mode 100644 interface/web/monitor/lib/lang/nl_dataloghistory_undo.lng create mode 100644 interface/web/monitor/lib/lang/nl_dataloghistory_view.lng create mode 100644 interface/web/monitor/lib/lang/pl_dataloghistory_list.lng create mode 100644 interface/web/monitor/lib/lang/pl_dataloghistory_undo.lng create mode 100644 interface/web/monitor/lib/lang/pl_dataloghistory_view.lng create mode 100644 interface/web/monitor/lib/lang/pt_dataloghistory_list.lng create mode 100644 interface/web/monitor/lib/lang/pt_dataloghistory_undo.lng create mode 100644 interface/web/monitor/lib/lang/pt_dataloghistory_view.lng create mode 100644 interface/web/monitor/lib/lang/ro_dataloghistory_list.lng create mode 100644 interface/web/monitor/lib/lang/ro_dataloghistory_undo.lng create mode 100644 interface/web/monitor/lib/lang/ro_dataloghistory_view.lng create mode 100644 interface/web/monitor/lib/lang/ru_dataloghistory_list.lng create mode 100644 interface/web/monitor/lib/lang/ru_dataloghistory_undo.lng create mode 100644 interface/web/monitor/lib/lang/ru_dataloghistory_view.lng create mode 100644 interface/web/monitor/lib/lang/se_dataloghistory_list.lng create mode 100644 interface/web/monitor/lib/lang/se_dataloghistory_undo.lng create mode 100644 interface/web/monitor/lib/lang/se_dataloghistory_view.lng create mode 100644 interface/web/monitor/lib/lang/sk_dataloghistory_list.lng create mode 100644 interface/web/monitor/lib/lang/sk_dataloghistory_undo.lng create mode 100644 interface/web/monitor/lib/lang/sk_dataloghistory_view.lng create mode 100644 interface/web/monitor/lib/lang/tr_dataloghistory_list.lng create mode 100644 interface/web/monitor/lib/lang/tr_dataloghistory_undo.lng create mode 100644 interface/web/monitor/lib/lang/tr_dataloghistory_view.lng diff --git a/interface/web/admin/lib/lang/ar_server_config.lng b/interface/web/admin/lib/lang/ar_server_config.lng index 00e94f766..55d3f8949 100644 --- a/interface/web/admin/lib/lang/ar_server_config.lng +++ b/interface/web/admin/lib/lang/ar_server_config.lng @@ -295,4 +295,5 @@ $wb['log_retention_error_ispositive'] = 'Log retention must be a number > 0'; $wb['php_default_name_txt'] = 'Description Default PHP-Version'; $wb['php_default_name_error_empty'] = 'Description Default PHP-Version must not be empty'; $wb['error_mailbox_message_size_txt'] = 'Mailbox size must be larger or equal to message size'; +$wb['php_fpm_reload_mode_txt'] = 'PHP-FPM reload mode'; ?> diff --git a/interface/web/admin/lib/lang/ar_server_php_list.lng b/interface/web/admin/lib/lang/ar_server_php_list.lng index b402fd1ed..62cbe6168 100644 --- a/interface/web/admin/lib/lang/ar_server_php_list.lng +++ b/interface/web/admin/lib/lang/ar_server_php_list.lng @@ -4,4 +4,5 @@ $wb['server_id_txt'] = 'Server'; $wb['add_new_record_txt'] = 'Add new PHP version'; $wb['client_id_txt'] = 'Client'; $wb['name_txt'] = 'PHP Name'; +$wb['active_txt'] = 'Active'; ?> diff --git a/interface/web/admin/lib/lang/ar_system_config.lng b/interface/web/admin/lib/lang/ar_system_config.lng index 6bebcf39a..0a830014d 100644 --- a/interface/web/admin/lib/lang/ar_system_config.lng +++ b/interface/web/admin/lib/lang/ar_system_config.lng @@ -84,9 +84,10 @@ $wb['default_dbserver_txt'] = 'Default Database Server'; $wb['ca_name_txt'] = 'Name'; $wb['ca_issue_txt'] = 'Issue'; $wb['ca_wildcard_txt'] = 'Use Wildcard'; -$wb['ca_critical_txt'] = 'Strict Check'; //For future use. At this time, CA’s do not recognize any other flag values as described in RFC 6844 +$wb['ca_critical_txt'] = 'Strict Check'; $wb['ca_iodef_txt'] = 'iodef'; $wb['active_txt'] = 'Aktive'; $wb['btn_save_txt'] = 'Save'; $wb['btn_cancel_txt'] = 'Cancel'; +$wb['web_php_options_txt'] = 'PHP Handler (Apache only)'; ?> diff --git a/interface/web/admin/lib/lang/bg_server_config.lng b/interface/web/admin/lib/lang/bg_server_config.lng index 7c6ae9f2d..6b6377045 100644 --- a/interface/web/admin/lib/lang/bg_server_config.lng +++ b/interface/web/admin/lib/lang/bg_server_config.lng @@ -295,4 +295,5 @@ $wb['log_retention_error_ispositive'] = 'Log retention must be a number > 0'; $wb['php_default_name_txt'] = 'Description Default PHP-Version'; $wb['php_default_name_error_empty'] = 'Description Default PHP-Version must not be empty'; $wb['error_mailbox_message_size_txt'] = 'Mailbox size must be larger or equal to message size'; +$wb['php_fpm_reload_mode_txt'] = 'PHP-FPM reload mode'; ?> diff --git a/interface/web/admin/lib/lang/bg_server_php_list.lng b/interface/web/admin/lib/lang/bg_server_php_list.lng index b402fd1ed..62cbe6168 100644 --- a/interface/web/admin/lib/lang/bg_server_php_list.lng +++ b/interface/web/admin/lib/lang/bg_server_php_list.lng @@ -4,4 +4,5 @@ $wb['server_id_txt'] = 'Server'; $wb['add_new_record_txt'] = 'Add new PHP version'; $wb['client_id_txt'] = 'Client'; $wb['name_txt'] = 'PHP Name'; +$wb['active_txt'] = 'Active'; ?> diff --git a/interface/web/admin/lib/lang/bg_system_config.lng b/interface/web/admin/lib/lang/bg_system_config.lng index 8c3444e9c..130cb596a 100644 --- a/interface/web/admin/lib/lang/bg_system_config.lng +++ b/interface/web/admin/lib/lang/bg_system_config.lng @@ -84,9 +84,10 @@ $wb['default_dbserver_txt'] = 'Default Database Server'; $wb['ca_name_txt'] = 'Name'; $wb['ca_issue_txt'] = 'Issue'; $wb['ca_wildcard_txt'] = 'Use Wildcard'; -$wb['ca_critical_txt'] = 'Strict Check'; //For future use. At this time, CA’s do not recognize any other flag values as described in RFC 6844 +$wb['ca_critical_txt'] = 'Strict Check'; $wb['ca_iodef_txt'] = 'iodef'; $wb['active_txt'] = 'Aktive'; $wb['btn_save_txt'] = 'Save'; $wb['btn_cancel_txt'] = 'Cancel'; +$wb['web_php_options_txt'] = 'PHP Handler (Apache only)'; ?> diff --git a/interface/web/admin/lib/lang/br_server_config.lng b/interface/web/admin/lib/lang/br_server_config.lng index 9175790eb..088dac70b 100644 --- a/interface/web/admin/lib/lang/br_server_config.lng +++ b/interface/web/admin/lib/lang/br_server_config.lng @@ -294,4 +294,6 @@ $wb['log_retention_txt'] = 'Log retention (days)'; $wb['log_retention_error_ispositive'] = 'Log retention must be a number > 0'; $wb['php_default_name_txt'] = 'Description Default PHP-Version'; $wb['error_mailbox_message_size_txt'] = 'Mailbox size must be larger or equal to message size'; +$wb['php_default_name_error_empty'] = 'Description Default PHP-Version must not be empty'; +$wb['php_fpm_reload_mode_txt'] = 'PHP-FPM reload mode'; ?> diff --git a/interface/web/admin/lib/lang/br_server_php_list.lng b/interface/web/admin/lib/lang/br_server_php_list.lng index 31a2b13eb..88f1e38d2 100644 --- a/interface/web/admin/lib/lang/br_server_php_list.lng +++ b/interface/web/admin/lib/lang/br_server_php_list.lng @@ -4,4 +4,5 @@ $wb['server_id_txt'] = 'Servidor'; $wb['add_new_record_txt'] = 'Adicionar nova versão do php'; $wb['client_id_txt'] = 'Cliente'; $wb['name_txt'] = 'Nome da versão do php'; +$wb['active_txt'] = 'Active'; ?> diff --git a/interface/web/admin/lib/lang/br_system_config.lng b/interface/web/admin/lib/lang/br_system_config.lng index 8b5b6d016..8688ca53a 100644 --- a/interface/web/admin/lib/lang/br_system_config.lng +++ b/interface/web/admin/lib/lang/br_system_config.lng @@ -67,7 +67,7 @@ $wb['customer_no_template_error_regex_txt'] = 'O número do gabarito do cliente $wb['customer_no_start_txt'] = 'Valor inicial do código do cliente'; $wb['customer_no_counter_txt'] = 'Contador de código do cliente'; $wb['session_timeout_txt'] = 'Duração da sessão (minutos)'; -$wb['session_allow_endless_txt'] = 'Habilitar \"Manter-me conectado\"'; +$wb['session_allow_endless_txt'] = 'Habilitar \\"Manter-me conectado\\"'; $wb['min_password_length_txt'] = 'Comprimento mínimo da senha'; $wb['min_password_strength_txt'] = 'Dificuldade mínima da senha'; $wb['company_name_txt'] = 'Nome da empresa no título da página'; @@ -82,19 +82,12 @@ $wb['default_slave_dnsserver_txt'] = 'Servidor dns secundário padrão'; $wb['ca_name_txt'] = 'Name'; $wb['ca_issue_txt'] = 'Issue'; $wb['ca_wildcard_txt'] = 'Use Wildcard'; -$wb['ca_critical_txt'] = 'Strict Check'; //For future use. At this time, CA<80><99>s do not recognize any other flag values as described in RFC 6844 +$wb['ca_critical_txt'] = 'Strict Check'; $wb['ca_iodef_txt'] = 'iodef'; $wb['active_txt'] = 'Aktive'; $wb['btn_save_txt'] = 'Save'; $wb['btn_cancel_txt'] = 'Cancel'; $wb['default_dbserver_txt'] = 'Servidor de banco de dados padrão'; $wb['No'] = 'Não'; -$wb['ca_name_txt'] = 'Name'; -$wb['ca_issue_txt'] = 'Issue'; -$wb['ca_wildcard_txt'] = 'Use Wildcard'; -$wb['ca_critical_txt'] = 'Strict Check'; //For future use. At this time, CA’s do not recognize any other flag values as described in RFC 6844 -$wb['ca_iodef_txt'] = 'iodef'; -$wb['active_txt'] = 'Aktive'; -$wb['btn_save_txt'] = 'Save'; -$wb['btn_cancel_txt'] = 'Cancel'; +$wb['web_php_options_txt'] = 'PHP Handler (Apache only)'; ?> diff --git a/interface/web/admin/lib/lang/ca_server_config.lng b/interface/web/admin/lib/lang/ca_server_config.lng index dc44dd340..815dbd30b 100644 --- a/interface/web/admin/lib/lang/ca_server_config.lng +++ b/interface/web/admin/lib/lang/ca_server_config.lng @@ -295,4 +295,5 @@ $wb['log_retention_error_ispositive'] = 'Log retention must be a number > 0'; $wb['php_default_name_txt'] = 'Description Default PHP-Version'; $wb['php_default_name_error_empty'] = 'Description Default PHP-Version must not be empty'; $wb['error_mailbox_message_size_txt'] = 'Mailbox size must be larger or equal to message size'; +$wb['php_fpm_reload_mode_txt'] = 'PHP-FPM reload mode'; ?> diff --git a/interface/web/admin/lib/lang/ca_server_php_list.lng b/interface/web/admin/lib/lang/ca_server_php_list.lng index b402fd1ed..62cbe6168 100644 --- a/interface/web/admin/lib/lang/ca_server_php_list.lng +++ b/interface/web/admin/lib/lang/ca_server_php_list.lng @@ -4,4 +4,5 @@ $wb['server_id_txt'] = 'Server'; $wb['add_new_record_txt'] = 'Add new PHP version'; $wb['client_id_txt'] = 'Client'; $wb['name_txt'] = 'PHP Name'; +$wb['active_txt'] = 'Active'; ?> diff --git a/interface/web/admin/lib/lang/ca_system_config.lng b/interface/web/admin/lib/lang/ca_system_config.lng index ff46470f5..cc3c11c6c 100644 --- a/interface/web/admin/lib/lang/ca_system_config.lng +++ b/interface/web/admin/lib/lang/ca_system_config.lng @@ -84,9 +84,10 @@ $wb['login_link_error_regex'] = 'Invalid Link for Custom Login'; $wb['ca_name_txt'] = 'Name'; $wb['ca_issue_txt'] = 'Issue'; $wb['ca_wildcard_txt'] = 'Use Wildcard'; -$wb['ca_critical_txt'] = 'Strict Check'; //For future use. At this time, CA’s do not recognize any other flag values as described in RFC 6844 +$wb['ca_critical_txt'] = 'Strict Check'; $wb['ca_iodef_txt'] = 'iodef'; $wb['active_txt'] = 'Aktive'; $wb['btn_save_txt'] = 'Save'; $wb['btn_cancel_txt'] = 'Cancel'; +$wb['web_php_options_txt'] = 'PHP Handler (Apache only)'; ?> diff --git a/interface/web/admin/lib/lang/cz_server_config.lng b/interface/web/admin/lib/lang/cz_server_config.lng index e219a7b3e..ebccd8fce 100644 --- a/interface/web/admin/lib/lang/cz_server_config.lng +++ b/interface/web/admin/lib/lang/cz_server_config.lng @@ -143,7 +143,7 @@ $wb['php_fpm_socket_dir_error_empty'] = 'PHP-FPM adresář pro socket je prázdn $wb['try_rescue_txt'] = 'Povolit monitorování služeb a restartovat při selhání'; $wb['do_not_try_rescue_mysql_txt'] = 'Zakázat MySQL monitorování'; $wb['do_not_try_rescue_mail_txt'] = 'Zakázat E-mail monitorování'; -$wb['rescue_description_txt'] = 'Informace: Pokud chcete např. vypnout MySQL službu zatrhněte políčko \"Zakázat MySQL monitorování\" změna se provede do 2-3 minut.
Pokud nepočkáte 2-3 minuty, monitorování nastartuje službu MySQL automaticky znovu !'; +$wb['rescue_description_txt'] = 'Informace: Pokud chcete např. vypnout MySQL službu zatrhněte políčko \\"Zakázat MySQL monitorování\\" změna se provede do 2-3 minut.
Pokud nepočkáte 2-3 minuty, monitorování nastartuje službu MySQL automaticky znovu !'; $wb['enable_sni_txt'] = 'Aktivovat SNI (Server Name Indication)'; $wb['do_not_try_rescue_httpd_txt'] = 'Zakázat HTTPD monitorování'; $wb['set_folder_permissions_on_update_txt'] = 'Nastavení oprávnění složky při aktualizaci'; @@ -295,4 +295,5 @@ $wb['log_retention_error_ispositive'] = 'Log retention must be a number > 0'; $wb['php_default_name_txt'] = 'Description Default PHP-Version'; $wb['php_default_name_error_empty'] = 'Description Default PHP-Version must not be empty'; $wb['error_mailbox_message_size_txt'] = 'Mailbox size must be larger or equal to message size'; +$wb['php_fpm_reload_mode_txt'] = 'PHP-FPM reload mode'; ?> diff --git a/interface/web/admin/lib/lang/cz_server_php_list.lng b/interface/web/admin/lib/lang/cz_server_php_list.lng index 655f9a92b..f79d48219 100644 --- a/interface/web/admin/lib/lang/cz_server_php_list.lng +++ b/interface/web/admin/lib/lang/cz_server_php_list.lng @@ -4,4 +4,5 @@ $wb['server_id_txt'] = 'Server'; $wb['add_new_record_txt'] = 'Přidat verzi PHP'; $wb['client_id_txt'] = 'Klient'; $wb['name_txt'] = 'Verze PHP'; +$wb['active_txt'] = 'Active'; ?> diff --git a/interface/web/admin/lib/lang/cz_system_config.lng b/interface/web/admin/lib/lang/cz_system_config.lng index 4f0468833..a0abf2641 100644 --- a/interface/web/admin/lib/lang/cz_system_config.lng +++ b/interface/web/admin/lib/lang/cz_system_config.lng @@ -84,9 +84,10 @@ $wb['login_link_error_regex'] = 'Neplatný formát URL pro vlastní odkaz na př $wb['ca_name_txt'] = 'Name'; $wb['ca_issue_txt'] = 'Issue'; $wb['ca_wildcard_txt'] = 'Use Wildcard'; -$wb['ca_critical_txt'] = 'Strict Check'; //For future use. At this time, CA’s do not recognize any other flag values as described in RFC 6844 +$wb['ca_critical_txt'] = 'Strict Check'; $wb['ca_iodef_txt'] = 'iodef'; $wb['active_txt'] = 'Aktive'; $wb['btn_save_txt'] = 'Save'; $wb['btn_cancel_txt'] = 'Cancel'; +$wb['web_php_options_txt'] = 'PHP Handler (Apache only)'; ?> diff --git a/interface/web/admin/lib/lang/de_system_config.lng b/interface/web/admin/lib/lang/de_system_config.lng index 59a3e8d11..76910e1db 100644 --- a/interface/web/admin/lib/lang/de_system_config.lng +++ b/interface/web/admin/lib/lang/de_system_config.lng @@ -84,7 +84,7 @@ $wb['default_dbserver_txt'] = 'Default Database Server'; $wb['ca_name_txt'] = 'Name'; $wb['ca_issue_txt'] = 'Issue'; $wb['ca_wildcard_txt'] = 'Wildcard verwenden'; -$wb['ca_critical_txt'] = 'Strikte Überprüfung'; //For future use. At this time, CA’s do not recognize any other flag values as described in RFC 6844 +$wb['ca_critical_txt'] = 'Strikte Überprüfung'; $wb['ca_iodef_txt'] = 'iodef'; $wb['active_txt'] = 'Aktiv'; $wb['btn_save_txt'] = 'Speichern'; diff --git a/interface/web/admin/lib/lang/dk_server_config.lng b/interface/web/admin/lib/lang/dk_server_config.lng index 47daacd86..5bf2be008 100644 --- a/interface/web/admin/lib/lang/dk_server_config.lng +++ b/interface/web/admin/lib/lang/dk_server_config.lng @@ -295,4 +295,5 @@ $wb['log_retention_error_ispositive'] = 'Log retention must be a number > 0'; $wb['php_default_name_txt'] = 'Description Default PHP-Version'; $wb['php_default_name_error_empty'] = 'Description Default PHP-Version must not be empty'; $wb['error_mailbox_message_size_txt'] = 'Mailbox size must be larger or equal to message size'; +$wb['php_fpm_reload_mode_txt'] = 'PHP-FPM reload mode'; ?> diff --git a/interface/web/admin/lib/lang/dk_server_php_list.lng b/interface/web/admin/lib/lang/dk_server_php_list.lng index 8dbcdd211..43fb5fe21 100644 --- a/interface/web/admin/lib/lang/dk_server_php_list.lng +++ b/interface/web/admin/lib/lang/dk_server_php_list.lng @@ -4,4 +4,5 @@ $wb['server_id_txt'] = 'Server'; $wb['add_new_record_txt'] = 'Tilføj ny PHP version'; $wb['client_id_txt'] = 'Kunde'; $wb['name_txt'] = 'PHP Navn'; +$wb['active_txt'] = 'Active'; ?> diff --git a/interface/web/admin/lib/lang/dk_system_config.lng b/interface/web/admin/lib/lang/dk_system_config.lng index 5e96639d2..26b0fe7e7 100644 --- a/interface/web/admin/lib/lang/dk_system_config.lng +++ b/interface/web/admin/lib/lang/dk_system_config.lng @@ -84,9 +84,10 @@ $wb['login_link_error_regex'] = 'Invalid Link for Custom Login'; $wb['ca_name_txt'] = 'Name'; $wb['ca_issue_txt'] = 'Issue'; $wb['ca_wildcard_txt'] = 'Use Wildcard'; -$wb['ca_critical_txt'] = 'Strict Check'; //For future use. At this time, CA’s do not recognize any other flag values as described in RFC 6844 +$wb['ca_critical_txt'] = 'Strict Check'; $wb['ca_iodef_txt'] = 'iodef'; $wb['active_txt'] = 'Aktive'; $wb['btn_save_txt'] = 'Save'; $wb['btn_cancel_txt'] = 'Cancel'; +$wb['web_php_options_txt'] = 'PHP Handler (Apache only)'; ?> diff --git a/interface/web/admin/lib/lang/el_server_config.lng b/interface/web/admin/lib/lang/el_server_config.lng index 2755ade7c..ae0efc9e3 100644 --- a/interface/web/admin/lib/lang/el_server_config.lng +++ b/interface/web/admin/lib/lang/el_server_config.lng @@ -295,4 +295,5 @@ $wb['log_retention_error_ispositive'] = 'Log retention must be a number > 0'; $wb['php_default_name_txt'] = 'Description Default PHP-Version'; $wb['php_default_name_error_empty'] = 'Description Default PHP-Version must not be empty'; $wb['error_mailbox_message_size_txt'] = 'Mailbox size must be larger or equal to message size'; +$wb['php_fpm_reload_mode_txt'] = 'PHP-FPM reload mode'; ?> diff --git a/interface/web/admin/lib/lang/el_server_php_list.lng b/interface/web/admin/lib/lang/el_server_php_list.lng index b402fd1ed..62cbe6168 100644 --- a/interface/web/admin/lib/lang/el_server_php_list.lng +++ b/interface/web/admin/lib/lang/el_server_php_list.lng @@ -4,4 +4,5 @@ $wb['server_id_txt'] = 'Server'; $wb['add_new_record_txt'] = 'Add new PHP version'; $wb['client_id_txt'] = 'Client'; $wb['name_txt'] = 'PHP Name'; +$wb['active_txt'] = 'Active'; ?> diff --git a/interface/web/admin/lib/lang/el_system_config.lng b/interface/web/admin/lib/lang/el_system_config.lng index 0191eb85e..640d6f00a 100644 --- a/interface/web/admin/lib/lang/el_system_config.lng +++ b/interface/web/admin/lib/lang/el_system_config.lng @@ -84,9 +84,10 @@ $wb['default_dbserver_txt'] = 'Default Database Server'; $wb['ca_name_txt'] = 'Name'; $wb['ca_issue_txt'] = 'Issue'; $wb['ca_wildcard_txt'] = 'Use Wildcard'; -$wb['ca_critical_txt'] = 'Strict Check'; //For future use. At this time, CA’s do not recognize any other flag values as described in RFC 6844 +$wb['ca_critical_txt'] = 'Strict Check'; $wb['ca_iodef_txt'] = 'iodef'; $wb['active_txt'] = 'Aktive'; $wb['btn_save_txt'] = 'Save'; $wb['btn_cancel_txt'] = 'Cancel'; +$wb['web_php_options_txt'] = 'PHP Handler (Apache only)'; ?> diff --git a/interface/web/admin/lib/lang/es_server_config.lng b/interface/web/admin/lib/lang/es_server_config.lng index 042671e59..95eaf9e8a 100755 --- a/interface/web/admin/lib/lang/es_server_config.lng +++ b/interface/web/admin/lib/lang/es_server_config.lng @@ -295,4 +295,5 @@ $wb['log_retention_error_ispositive'] = 'Log retention must be a number > 0'; $wb['php_default_name_txt'] = 'Description Default PHP-Version'; $wb['php_default_name_error_empty'] = 'Description Default PHP-Version must not be empty'; $wb['error_mailbox_message_size_txt'] = 'Mailbox size must be larger or equal to message size'; +$wb['php_fpm_reload_mode_txt'] = 'PHP-FPM reload mode'; ?> diff --git a/interface/web/admin/lib/lang/es_server_php_list.lng b/interface/web/admin/lib/lang/es_server_php_list.lng index 2e6257cfa..111628b72 100755 --- a/interface/web/admin/lib/lang/es_server_php_list.lng +++ b/interface/web/admin/lib/lang/es_server_php_list.lng @@ -4,4 +4,5 @@ $wb['client_id_txt'] = 'Cliente'; $wb['list_head_txt'] = 'Versiones adicionales de PHP'; $wb['name_txt'] = 'Versión de PHP'; $wb['server_id_txt'] = 'Servidor'; +$wb['active_txt'] = 'Active'; ?> diff --git a/interface/web/admin/lib/lang/es_system_config.lng b/interface/web/admin/lib/lang/es_system_config.lng index 6dc07dfd5..043c52cfd 100755 --- a/interface/web/admin/lib/lang/es_system_config.lng +++ b/interface/web/admin/lib/lang/es_system_config.lng @@ -84,7 +84,7 @@ $wb['webmail_url_txt'] = 'URL de correo web'; $wb['ca_name_txt'] = 'Name'; $wb['ca_issue_txt'] = 'Issue'; $wb['ca_wildcard_txt'] = 'Use Wildcard'; -$wb['ca_critical_txt'] = 'Strict Check'; //For future use. At this time, CA’s do not recognize any other flag values as described in RFC 6844 +$wb['ca_critical_txt'] = 'Strict Check'; $wb['ca_iodef_txt'] = 'iodef'; $wb['active_txt'] = 'Aktive'; $wb['btn_save_txt'] = 'Save'; diff --git a/interface/web/admin/lib/lang/fi_server_config.lng b/interface/web/admin/lib/lang/fi_server_config.lng index 4d76c3f5e..c1e43b276 100755 --- a/interface/web/admin/lib/lang/fi_server_config.lng +++ b/interface/web/admin/lib/lang/fi_server_config.lng @@ -295,4 +295,5 @@ $wb['log_retention_error_ispositive'] = 'Log retention must be a number > 0'; $wb['php_default_name_txt'] = 'Description Default PHP-Version'; $wb['php_default_name_error_empty'] = 'Description Default PHP-Version must not be empty'; $wb['error_mailbox_message_size_txt'] = 'Mailbox size must be larger or equal to message size'; +$wb['php_fpm_reload_mode_txt'] = 'PHP-FPM reload mode'; ?> diff --git a/interface/web/admin/lib/lang/fi_server_php_list.lng b/interface/web/admin/lib/lang/fi_server_php_list.lng index b402fd1ed..62cbe6168 100644 --- a/interface/web/admin/lib/lang/fi_server_php_list.lng +++ b/interface/web/admin/lib/lang/fi_server_php_list.lng @@ -4,4 +4,5 @@ $wb['server_id_txt'] = 'Server'; $wb['add_new_record_txt'] = 'Add new PHP version'; $wb['client_id_txt'] = 'Client'; $wb['name_txt'] = 'PHP Name'; +$wb['active_txt'] = 'Active'; ?> diff --git a/interface/web/admin/lib/lang/fi_system_config.lng b/interface/web/admin/lib/lang/fi_system_config.lng index 7fe364c97..c0972c49d 100644 --- a/interface/web/admin/lib/lang/fi_system_config.lng +++ b/interface/web/admin/lib/lang/fi_system_config.lng @@ -84,9 +84,10 @@ $wb['default_dbserver_txt'] = 'Default Database Server'; $wb['ca_name_txt'] = 'Name'; $wb['ca_issue_txt'] = 'Issue'; $wb['ca_wildcard_txt'] = 'Use Wildcard'; -$wb['ca_critical_txt'] = 'Strict Check'; //For future use. At this time, CA’s do not recognize any other flag values as described in RFC 6844 +$wb['ca_critical_txt'] = 'Strict Check'; $wb['ca_iodef_txt'] = 'iodef'; $wb['active_txt'] = 'Aktive'; $wb['btn_save_txt'] = 'Save'; $wb['btn_cancel_txt'] = 'Cancel'; +$wb['web_php_options_txt'] = 'PHP Handler (Apache only)'; ?> diff --git a/interface/web/admin/lib/lang/fr_server_config.lng b/interface/web/admin/lib/lang/fr_server_config.lng index d1e229e7c..418f63367 100644 --- a/interface/web/admin/lib/lang/fr_server_config.lng +++ b/interface/web/admin/lib/lang/fr_server_config.lng @@ -295,4 +295,5 @@ $wb['log_retention_error_ispositive'] = 'Log retention must be a number > 0'; $wb['php_default_name_txt'] = 'Description Default PHP-Version'; $wb['php_default_name_error_empty'] = 'Description Default PHP-Version must not be empty'; $wb['error_mailbox_message_size_txt'] = 'Mailbox size must be larger or equal to message size'; +$wb['php_fpm_reload_mode_txt'] = 'PHP-FPM reload mode'; ?> diff --git a/interface/web/admin/lib/lang/fr_server_php_list.lng b/interface/web/admin/lib/lang/fr_server_php_list.lng index b402fd1ed..62cbe6168 100644 --- a/interface/web/admin/lib/lang/fr_server_php_list.lng +++ b/interface/web/admin/lib/lang/fr_server_php_list.lng @@ -4,4 +4,5 @@ $wb['server_id_txt'] = 'Server'; $wb['add_new_record_txt'] = 'Add new PHP version'; $wb['client_id_txt'] = 'Client'; $wb['name_txt'] = 'PHP Name'; +$wb['active_txt'] = 'Active'; ?> diff --git a/interface/web/admin/lib/lang/fr_system_config.lng b/interface/web/admin/lib/lang/fr_system_config.lng index 0d9d27d14..18f0dbbed 100644 --- a/interface/web/admin/lib/lang/fr_system_config.lng +++ b/interface/web/admin/lib/lang/fr_system_config.lng @@ -84,9 +84,10 @@ $wb['login_link_error_regex'] = 'Invalid Link for Custom Login'; $wb['ca_name_txt'] = 'Name'; $wb['ca_issue_txt'] = 'Issue'; $wb['ca_wildcard_txt'] = 'Use Wildcard'; -$wb['ca_critical_txt'] = 'Strict Check'; //For future use. At this time, CA’s do not recognize any other flag values as described in RFC 6844 +$wb['ca_critical_txt'] = 'Strict Check'; $wb['ca_iodef_txt'] = 'iodef'; $wb['active_txt'] = 'Aktive'; $wb['btn_save_txt'] = 'Save'; $wb['btn_cancel_txt'] = 'Cancel'; +$wb['web_php_options_txt'] = 'PHP Handler (Apache only)'; ?> diff --git a/interface/web/admin/lib/lang/hr_server_config.lng b/interface/web/admin/lib/lang/hr_server_config.lng index ebfe30a16..78d9a57a5 100644 --- a/interface/web/admin/lib/lang/hr_server_config.lng +++ b/interface/web/admin/lib/lang/hr_server_config.lng @@ -295,4 +295,5 @@ $wb['log_retention_error_ispositive'] = 'Log retention must be a number > 0'; $wb['php_default_name_txt'] = 'Description Default PHP-Version'; $wb['php_default_name_error_empty'] = 'Description Default PHP-Version must not be empty'; $wb['error_mailbox_message_size_txt'] = 'Mailbox size must be larger or equal to message size'; +$wb['php_fpm_reload_mode_txt'] = 'PHP-FPM reload mode'; ?> diff --git a/interface/web/admin/lib/lang/hr_server_php_list.lng b/interface/web/admin/lib/lang/hr_server_php_list.lng index 8fd3db7a0..9e9c0de98 100644 --- a/interface/web/admin/lib/lang/hr_server_php_list.lng +++ b/interface/web/admin/lib/lang/hr_server_php_list.lng @@ -4,4 +4,5 @@ $wb['server_id_txt'] = 'Server'; $wb['add_new_record_txt'] = 'Add new PHP version'; $wb['client_id_txt'] = 'Klijent'; $wb['name_txt'] = 'PHP Name'; +$wb['active_txt'] = 'Active'; ?> diff --git a/interface/web/admin/lib/lang/hr_system_config.lng b/interface/web/admin/lib/lang/hr_system_config.lng index ba926e3a7..a7735647b 100644 --- a/interface/web/admin/lib/lang/hr_system_config.lng +++ b/interface/web/admin/lib/lang/hr_system_config.lng @@ -84,9 +84,10 @@ $wb['default_dbserver_txt'] = 'Default Database Server'; $wb['ca_name_txt'] = 'Name'; $wb['ca_issue_txt'] = 'Issue'; $wb['ca_wildcard_txt'] = 'Use Wildcard'; -$wb['ca_critical_txt'] = 'Strict Check'; //For future use. At this time, CA’s do not recognize any other flag values as described in RFC 6844 +$wb['ca_critical_txt'] = 'Strict Check'; $wb['ca_iodef_txt'] = 'iodef'; $wb['active_txt'] = 'Aktive'; $wb['btn_save_txt'] = 'Save'; $wb['btn_cancel_txt'] = 'Cancel'; +$wb['web_php_options_txt'] = 'PHP Handler (Apache only)'; ?> diff --git a/interface/web/admin/lib/lang/hu_server_config.lng b/interface/web/admin/lib/lang/hu_server_config.lng index f491b4b2d..c2adb3efb 100644 --- a/interface/web/admin/lib/lang/hu_server_config.lng +++ b/interface/web/admin/lib/lang/hu_server_config.lng @@ -295,4 +295,5 @@ $wb['log_retention_error_ispositive'] = 'Log retention must be a number > 0'; $wb['php_default_name_txt'] = 'Description Default PHP-Version'; $wb['php_default_name_error_empty'] = 'Description Default PHP-Version must not be empty'; $wb['error_mailbox_message_size_txt'] = 'Mailbox size must be larger or equal to message size'; +$wb['php_fpm_reload_mode_txt'] = 'PHP-FPM reload mode'; ?> diff --git a/interface/web/admin/lib/lang/hu_server_php_list.lng b/interface/web/admin/lib/lang/hu_server_php_list.lng index b402fd1ed..62cbe6168 100644 --- a/interface/web/admin/lib/lang/hu_server_php_list.lng +++ b/interface/web/admin/lib/lang/hu_server_php_list.lng @@ -4,4 +4,5 @@ $wb['server_id_txt'] = 'Server'; $wb['add_new_record_txt'] = 'Add new PHP version'; $wb['client_id_txt'] = 'Client'; $wb['name_txt'] = 'PHP Name'; +$wb['active_txt'] = 'Active'; ?> diff --git a/interface/web/admin/lib/lang/hu_system_config.lng b/interface/web/admin/lib/lang/hu_system_config.lng index 9944f68b7..cee497fe1 100644 --- a/interface/web/admin/lib/lang/hu_system_config.lng +++ b/interface/web/admin/lib/lang/hu_system_config.lng @@ -84,9 +84,10 @@ $wb['default_dbserver_txt'] = 'Default Database Server'; $wb['ca_name_txt'] = 'Name'; $wb['ca_issue_txt'] = 'Issue'; $wb['ca_wildcard_txt'] = 'Use Wildcard'; -$wb['ca_critical_txt'] = 'Strict Check'; //For future use. At this time, CA’s do not recognize any other flag values as described in RFC 6844 +$wb['ca_critical_txt'] = 'Strict Check'; $wb['ca_iodef_txt'] = 'iodef'; $wb['active_txt'] = 'Aktive'; $wb['btn_save_txt'] = 'Save'; $wb['btn_cancel_txt'] = 'Cancel'; +$wb['web_php_options_txt'] = 'PHP Handler (Apache only)'; ?> diff --git a/interface/web/admin/lib/lang/id_server_config.lng b/interface/web/admin/lib/lang/id_server_config.lng index f56204188..36f3cd853 100644 --- a/interface/web/admin/lib/lang/id_server_config.lng +++ b/interface/web/admin/lib/lang/id_server_config.lng @@ -295,4 +295,5 @@ $wb['log_retention_error_ispositive'] = 'Log retention must be a number > 0'; $wb['php_default_name_txt'] = 'Description Default PHP-Version'; $wb['php_default_name_error_empty'] = 'Description Default PHP-Version must not be empty'; $wb['error_mailbox_message_size_txt'] = 'Mailbox size must be larger or equal to message size'; +$wb['php_fpm_reload_mode_txt'] = 'PHP-FPM reload mode'; ?> diff --git a/interface/web/admin/lib/lang/id_server_php_list.lng b/interface/web/admin/lib/lang/id_server_php_list.lng index b402fd1ed..62cbe6168 100644 --- a/interface/web/admin/lib/lang/id_server_php_list.lng +++ b/interface/web/admin/lib/lang/id_server_php_list.lng @@ -4,4 +4,5 @@ $wb['server_id_txt'] = 'Server'; $wb['add_new_record_txt'] = 'Add new PHP version'; $wb['client_id_txt'] = 'Client'; $wb['name_txt'] = 'PHP Name'; +$wb['active_txt'] = 'Active'; ?> diff --git a/interface/web/admin/lib/lang/id_system_config.lng b/interface/web/admin/lib/lang/id_system_config.lng index 65c176835..344185b84 100644 --- a/interface/web/admin/lib/lang/id_system_config.lng +++ b/interface/web/admin/lib/lang/id_system_config.lng @@ -84,9 +84,10 @@ $wb['default_dbserver_txt'] = 'Default Database Server'; $wb['ca_name_txt'] = 'Name'; $wb['ca_issue_txt'] = 'Issue'; $wb['ca_wildcard_txt'] = 'Use Wildcard'; -$wb['ca_critical_txt'] = 'Strict Check'; //For future use. At this time, CA’s do not recognize any other flag values as described in RFC 6844 +$wb['ca_critical_txt'] = 'Strict Check'; $wb['ca_iodef_txt'] = 'iodef'; $wb['active_txt'] = 'Aktive'; $wb['btn_save_txt'] = 'Save'; $wb['btn_cancel_txt'] = 'Cancel'; +$wb['web_php_options_txt'] = 'PHP Handler (Apache only)'; ?> diff --git a/interface/web/admin/lib/lang/it_server_config.lng b/interface/web/admin/lib/lang/it_server_config.lng index 24b89ee8b..766b7fb1a 100644 --- a/interface/web/admin/lib/lang/it_server_config.lng +++ b/interface/web/admin/lib/lang/it_server_config.lng @@ -295,4 +295,5 @@ $wb['log_retention_error_ispositive'] = 'Log retention must be a number > 0'; $wb['php_default_name_txt'] = 'Description Default PHP-Version'; $wb['php_default_name_error_empty'] = 'Description Default PHP-Version must not be empty'; $wb['error_mailbox_message_size_txt'] = 'Mailbox size must be larger or equal to message size'; +$wb['php_fpm_reload_mode_txt'] = 'PHP-FPM reload mode'; ?> diff --git a/interface/web/admin/lib/lang/it_server_php_list.lng b/interface/web/admin/lib/lang/it_server_php_list.lng index 36bfcbc40..296de9d0a 100644 --- a/interface/web/admin/lib/lang/it_server_php_list.lng +++ b/interface/web/admin/lib/lang/it_server_php_list.lng @@ -4,4 +4,5 @@ $wb['server_id_txt'] = 'Server'; $wb['add_new_record_txt'] = 'Aggiungi una nuova versione PHP'; $wb['client_id_txt'] = 'Cliente'; $wb['name_txt'] = 'Nome PHP'; +$wb['active_txt'] = 'Active'; ?> diff --git a/interface/web/admin/lib/lang/it_system_config.lng b/interface/web/admin/lib/lang/it_system_config.lng index e3c4fcaae..311b7c957 100644 --- a/interface/web/admin/lib/lang/it_system_config.lng +++ b/interface/web/admin/lib/lang/it_system_config.lng @@ -84,9 +84,10 @@ $wb['login_link_error_regex'] = 'Invalid Link for Custom Login'; $wb['ca_name_txt'] = 'Name'; $wb['ca_issue_txt'] = 'Issue'; $wb['ca_wildcard_txt'] = 'Use Wildcard'; -$wb['ca_critical_txt'] = 'Strict Check'; //For future use. At this time, CA’s do not recognize any other flag values as described in RFC 6844 +$wb['ca_critical_txt'] = 'Strict Check'; $wb['ca_iodef_txt'] = 'iodef'; $wb['active_txt'] = 'Aktive'; $wb['btn_save_txt'] = 'Save'; $wb['btn_cancel_txt'] = 'Cancel'; +$wb['web_php_options_txt'] = 'PHP Handler (Apache only)'; ?> diff --git a/interface/web/admin/lib/lang/ja_server_config.lng b/interface/web/admin/lib/lang/ja_server_config.lng index 72cecbccc..ccabb127e 100644 --- a/interface/web/admin/lib/lang/ja_server_config.lng +++ b/interface/web/admin/lib/lang/ja_server_config.lng @@ -295,4 +295,5 @@ $wb['log_retention_error_ispositive'] = 'Log retention must be a number > 0'; $wb['php_default_name_txt'] = 'Description Default PHP-Version'; $wb['php_default_name_error_empty'] = 'Description Default PHP-Version must not be empty'; $wb['error_mailbox_message_size_txt'] = 'Mailbox size must be larger or equal to message size'; +$wb['php_fpm_reload_mode_txt'] = 'PHP-FPM reload mode'; ?> diff --git a/interface/web/admin/lib/lang/ja_server_php_list.lng b/interface/web/admin/lib/lang/ja_server_php_list.lng index b402fd1ed..62cbe6168 100644 --- a/interface/web/admin/lib/lang/ja_server_php_list.lng +++ b/interface/web/admin/lib/lang/ja_server_php_list.lng @@ -4,4 +4,5 @@ $wb['server_id_txt'] = 'Server'; $wb['add_new_record_txt'] = 'Add new PHP version'; $wb['client_id_txt'] = 'Client'; $wb['name_txt'] = 'PHP Name'; +$wb['active_txt'] = 'Active'; ?> diff --git a/interface/web/admin/lib/lang/ja_system_config.lng b/interface/web/admin/lib/lang/ja_system_config.lng index ce16ad15b..aa5cc6a7a 100644 --- a/interface/web/admin/lib/lang/ja_system_config.lng +++ b/interface/web/admin/lib/lang/ja_system_config.lng @@ -84,9 +84,10 @@ $wb['default_dbserver_txt'] = 'Default Database Server'; $wb['ca_name_txt'] = 'Name'; $wb['ca_issue_txt'] = 'Issue'; $wb['ca_wildcard_txt'] = 'Use Wildcard'; -$wb['ca_critical_txt'] = 'Strict Check'; //For future use. At this time, CA’s do not recognize any other flag values as described in RFC 6844 +$wb['ca_critical_txt'] = 'Strict Check'; $wb['ca_iodef_txt'] = 'iodef'; $wb['active_txt'] = 'Aktive'; $wb['btn_save_txt'] = 'Save'; $wb['btn_cancel_txt'] = 'Cancel'; +$wb['web_php_options_txt'] = 'PHP Handler (Apache only)'; ?> diff --git a/interface/web/admin/lib/lang/nl_server_config.lng b/interface/web/admin/lib/lang/nl_server_config.lng index 389a0ea87..187ea86ec 100644 --- a/interface/web/admin/lib/lang/nl_server_config.lng +++ b/interface/web/admin/lib/lang/nl_server_config.lng @@ -295,4 +295,5 @@ $wb['log_retention_error_ispositive'] = 'Log retention must be a number > 0'; $wb['php_default_name_txt'] = 'Description Default PHP-Version'; $wb['php_default_name_error_empty'] = 'Description Default PHP-Version must not be empty'; $wb['error_mailbox_message_size_txt'] = 'Mailbox size must be larger or equal to message size'; +$wb['php_fpm_reload_mode_txt'] = 'PHP-FPM reload mode'; ?> diff --git a/interface/web/admin/lib/lang/nl_server_php_list.lng b/interface/web/admin/lib/lang/nl_server_php_list.lng index b402fd1ed..62cbe6168 100644 --- a/interface/web/admin/lib/lang/nl_server_php_list.lng +++ b/interface/web/admin/lib/lang/nl_server_php_list.lng @@ -4,4 +4,5 @@ $wb['server_id_txt'] = 'Server'; $wb['add_new_record_txt'] = 'Add new PHP version'; $wb['client_id_txt'] = 'Client'; $wb['name_txt'] = 'PHP Name'; +$wb['active_txt'] = 'Active'; ?> diff --git a/interface/web/admin/lib/lang/nl_system_config.lng b/interface/web/admin/lib/lang/nl_system_config.lng index 20df45f2b..44a58b764 100644 --- a/interface/web/admin/lib/lang/nl_system_config.lng +++ b/interface/web/admin/lib/lang/nl_system_config.lng @@ -84,9 +84,10 @@ $wb['default_dbserver_txt'] = 'Default Database Server'; $wb['ca_name_txt'] = 'Name'; $wb['ca_issue_txt'] = 'Issue'; $wb['ca_wildcard_txt'] = 'Use Wildcard'; -$wb['ca_critical_txt'] = 'Strict Check'; //For future use. At this time, CA’s do not recognize any other flag values as described in RFC 6844 +$wb['ca_critical_txt'] = 'Strict Check'; $wb['ca_iodef_txt'] = 'iodef'; $wb['active_txt'] = 'Aktive'; $wb['btn_save_txt'] = 'Save'; $wb['btn_cancel_txt'] = 'Cancel'; +$wb['web_php_options_txt'] = 'PHP Handler (Apache only)'; ?> diff --git a/interface/web/admin/lib/lang/pl_server_config.lng b/interface/web/admin/lib/lang/pl_server_config.lng index a05df0575..a50e27b33 100644 --- a/interface/web/admin/lib/lang/pl_server_config.lng +++ b/interface/web/admin/lib/lang/pl_server_config.lng @@ -295,4 +295,5 @@ $wb['log_retention_error_ispositive'] = 'Log retention must be a number > 0'; $wb['php_default_name_txt'] = 'Description Default PHP-Version'; $wb['php_default_name_error_empty'] = 'Description Default PHP-Version must not be empty'; $wb['error_mailbox_message_size_txt'] = 'Mailbox size must be larger or equal to message size'; +$wb['php_fpm_reload_mode_txt'] = 'PHP-FPM reload mode'; ?> diff --git a/interface/web/admin/lib/lang/pl_server_php_list.lng b/interface/web/admin/lib/lang/pl_server_php_list.lng index b402fd1ed..62cbe6168 100644 --- a/interface/web/admin/lib/lang/pl_server_php_list.lng +++ b/interface/web/admin/lib/lang/pl_server_php_list.lng @@ -4,4 +4,5 @@ $wb['server_id_txt'] = 'Server'; $wb['add_new_record_txt'] = 'Add new PHP version'; $wb['client_id_txt'] = 'Client'; $wb['name_txt'] = 'PHP Name'; +$wb['active_txt'] = 'Active'; ?> diff --git a/interface/web/admin/lib/lang/pl_system_config.lng b/interface/web/admin/lib/lang/pl_system_config.lng index 1c51b949a..a809251ec 100644 --- a/interface/web/admin/lib/lang/pl_system_config.lng +++ b/interface/web/admin/lib/lang/pl_system_config.lng @@ -84,9 +84,10 @@ $wb['default_dbserver_txt'] = 'Default Database Server'; $wb['ca_name_txt'] = 'Name'; $wb['ca_issue_txt'] = 'Issue'; $wb['ca_wildcard_txt'] = 'Use Wildcard'; -$wb['ca_critical_txt'] = 'Strict Check'; //For future use. At this time, CA’s do not recognize any other flag values as described in RFC 6844 +$wb['ca_critical_txt'] = 'Strict Check'; $wb['ca_iodef_txt'] = 'iodef'; $wb['active_txt'] = 'Aktive'; $wb['btn_save_txt'] = 'Save'; $wb['btn_cancel_txt'] = 'Cancel'; +$wb['web_php_options_txt'] = 'PHP Handler (Apache only)'; ?> diff --git a/interface/web/admin/lib/lang/pt_server_config.lng b/interface/web/admin/lib/lang/pt_server_config.lng index ba5bd3824..96c16d3a2 100644 --- a/interface/web/admin/lib/lang/pt_server_config.lng +++ b/interface/web/admin/lib/lang/pt_server_config.lng @@ -295,4 +295,5 @@ $wb['log_retention_error_ispositive'] = 'Log retention must be a number > 0'; $wb['php_default_name_txt'] = 'Description Default PHP-Version'; $wb['php_default_name_error_empty'] = 'Description Default PHP-Version must not be empty'; $wb['error_mailbox_message_size_txt'] = 'Mailbox size must be larger or equal to message size'; +$wb['php_fpm_reload_mode_txt'] = 'PHP-FPM reload mode'; ?> diff --git a/interface/web/admin/lib/lang/pt_server_php_list.lng b/interface/web/admin/lib/lang/pt_server_php_list.lng index b402fd1ed..62cbe6168 100644 --- a/interface/web/admin/lib/lang/pt_server_php_list.lng +++ b/interface/web/admin/lib/lang/pt_server_php_list.lng @@ -4,4 +4,5 @@ $wb['server_id_txt'] = 'Server'; $wb['add_new_record_txt'] = 'Add new PHP version'; $wb['client_id_txt'] = 'Client'; $wb['name_txt'] = 'PHP Name'; +$wb['active_txt'] = 'Active'; ?> diff --git a/interface/web/admin/lib/lang/pt_system_config.lng b/interface/web/admin/lib/lang/pt_system_config.lng index 4a28e49a7..6fc26344c 100644 --- a/interface/web/admin/lib/lang/pt_system_config.lng +++ b/interface/web/admin/lib/lang/pt_system_config.lng @@ -84,9 +84,10 @@ $wb['default_dbserver_txt'] = 'Default Database Server'; $wb['ca_name_txt'] = 'Name'; $wb['ca_issue_txt'] = 'Issue'; $wb['ca_wildcard_txt'] = 'Use Wildcard'; -$wb['ca_critical_txt'] = 'Strict Check'; //For future use. At this time, CA’s do not recognize any other flag values as described in RFC 6844 +$wb['ca_critical_txt'] = 'Strict Check'; $wb['ca_iodef_txt'] = 'iodef'; $wb['active_txt'] = 'Aktive'; $wb['btn_save_txt'] = 'Save'; $wb['btn_cancel_txt'] = 'Cancel'; +$wb['web_php_options_txt'] = 'PHP Handler (Apache only)'; ?> diff --git a/interface/web/admin/lib/lang/ro_server_config.lng b/interface/web/admin/lib/lang/ro_server_config.lng index 5a29d0eff..239a87dc7 100644 --- a/interface/web/admin/lib/lang/ro_server_config.lng +++ b/interface/web/admin/lib/lang/ro_server_config.lng @@ -295,4 +295,5 @@ $wb['log_retention_error_ispositive'] = 'Log retention must be a number > 0'; $wb['php_default_name_txt'] = 'Description Default PHP-Version'; $wb['php_default_name_error_empty'] = 'Description Default PHP-Version must not be empty'; $wb['error_mailbox_message_size_txt'] = 'Mailbox size must be larger or equal to message size'; +$wb['php_fpm_reload_mode_txt'] = 'PHP-FPM reload mode'; ?> diff --git a/interface/web/admin/lib/lang/ro_server_php_list.lng b/interface/web/admin/lib/lang/ro_server_php_list.lng index b402fd1ed..62cbe6168 100644 --- a/interface/web/admin/lib/lang/ro_server_php_list.lng +++ b/interface/web/admin/lib/lang/ro_server_php_list.lng @@ -4,4 +4,5 @@ $wb['server_id_txt'] = 'Server'; $wb['add_new_record_txt'] = 'Add new PHP version'; $wb['client_id_txt'] = 'Client'; $wb['name_txt'] = 'PHP Name'; +$wb['active_txt'] = 'Active'; ?> diff --git a/interface/web/admin/lib/lang/ro_system_config.lng b/interface/web/admin/lib/lang/ro_system_config.lng index efbc6bf26..2a39a454e 100644 --- a/interface/web/admin/lib/lang/ro_system_config.lng +++ b/interface/web/admin/lib/lang/ro_system_config.lng @@ -84,9 +84,10 @@ $wb['default_dbserver_txt'] = 'Default Database Server'; $wb['ca_name_txt'] = 'Name'; $wb['ca_issue_txt'] = 'Issue'; $wb['ca_wildcard_txt'] = 'Use Wildcard'; -$wb['ca_critical_txt'] = 'Strict Check'; //For future use. At this time, CA’s do not recognize any other flag values as described in RFC 6844 +$wb['ca_critical_txt'] = 'Strict Check'; $wb['ca_iodef_txt'] = 'iodef'; $wb['active_txt'] = 'Aktive'; $wb['btn_save_txt'] = 'Save'; $wb['btn_cancel_txt'] = 'Cancel'; +$wb['web_php_options_txt'] = 'PHP Handler (Apache only)'; ?> diff --git a/interface/web/admin/lib/lang/ru_firewall.lng b/interface/web/admin/lib/lang/ru_firewall.lng index c30f26f2e..70beb3043 100644 --- a/interface/web/admin/lib/lang/ru_firewall.lng +++ b/interface/web/admin/lib/lang/ru_firewall.lng @@ -6,6 +6,6 @@ $wb['tcp_port_help_txt'] = 'Перечислить порты TCP через з $wb['udp_port_help_txt'] = 'Перечислить порты UDP через запятую'; $wb['active_txt'] = 'Активно'; $wb['firewall_error_unique'] = 'Уже есть такая запись брандмауэра для этого сервера.'; -$wb['tcp_ports_error_regex'] = 'Недопустимый символ в указании tcp порта. Корректные сиволы - цифры, \":\" и \",\"'; -$wb['udp_ports_error_regex'] = 'Некорректный символ в указании UDP порта. Допустимые сиволы - цифры, \":\" и \",\"'; +$wb['tcp_ports_error_regex'] = 'Недопустимый символ в указании tcp порта. Корректные сиволы - цифры, \\":\\" и \\",\\"'; +$wb['udp_ports_error_regex'] = 'Некорректный символ в указании UDP порта. Допустимые сиволы - цифры, \\":\\" и \\",\\"'; ?> diff --git a/interface/web/admin/lib/lang/ru_server_config.lng b/interface/web/admin/lib/lang/ru_server_config.lng index 7ed1fb88a..02edb659d 100644 --- a/interface/web/admin/lib/lang/ru_server_config.lng +++ b/interface/web/admin/lib/lang/ru_server_config.lng @@ -152,7 +152,7 @@ $wb['php_fpm_socket_dir_error_empty'] = 'Каталог PHP-FPM сокета п $wb['try_rescue_txt'] = 'Включить мониторинг службы и перезапуск при сбое'; $wb['do_not_try_rescue_mysql_txt'] = 'Отключить мониторинг MySQL'; $wb['do_not_try_rescue_mail_txt'] = 'Отключить мониторинг Email'; -$wb['rescue_description_txt'] = 'Информация: Если вы хотите выключить MySQL, вы должны установить флажок \"Отключить мониторинг MySQL\" и подождать 2-3 минуты.
Если вы не подождёте 2-3 минуты, мониторинг будет пытаться перезапустить MySQL!'; +$wb['rescue_description_txt'] = 'Информация: Если вы хотите выключить MySQL, вы должны установить флажок \\"Отключить мониторинг MySQL\\" и подождать 2-3 минуты.
Если вы не подождёте 2-3 минуты, мониторинг будет пытаться перезапустить MySQL!'; $wb['enable_sni_txt'] = 'Включить SNI'; $wb['do_not_try_rescue_httpd_txt'] = 'Отключить мониторинг HTTPD'; $wb['set_folder_permissions_on_update_txt'] = 'Установить разрешения для папки на обновления'; @@ -295,4 +295,5 @@ $wb['log_retention_error_ispositive'] = 'Log retention must be a number > 0'; $wb['php_default_name_txt'] = 'Description Default PHP-Version'; $wb['php_default_name_error_empty'] = 'Description Default PHP-Version must not be empty'; $wb['error_mailbox_message_size_txt'] = 'Mailbox size must be larger or equal to message size'; +$wb['php_fpm_reload_mode_txt'] = 'PHP-FPM reload mode'; ?> diff --git a/interface/web/admin/lib/lang/ru_server_php_list.lng b/interface/web/admin/lib/lang/ru_server_php_list.lng index bb4cc308e..5c84917f1 100644 --- a/interface/web/admin/lib/lang/ru_server_php_list.lng +++ b/interface/web/admin/lib/lang/ru_server_php_list.lng @@ -4,4 +4,5 @@ $wb['server_id_txt'] = 'Сервер'; $wb['add_new_record_txt'] = 'Добавить новую версию PHP'; $wb['client_id_txt'] = 'ID Клиента'; $wb['name_txt'] = 'Имя PHP'; +$wb['active_txt'] = 'Active'; ?> diff --git a/interface/web/admin/lib/lang/ru_system_config.lng b/interface/web/admin/lib/lang/ru_system_config.lng index 301827893..baed497b0 100644 --- a/interface/web/admin/lib/lang/ru_system_config.lng +++ b/interface/web/admin/lib/lang/ru_system_config.lng @@ -14,7 +14,7 @@ $wb['mailboxlist_webmail_link_txt'] = 'Ссылка на веб-почту в с $wb['webmail_url_txt'] = 'URL веб-почты'; $wb['phpmyadmin_url_txt'] = 'URL PHPMyAdmin'; $wb['use_domain_module_txt'] = 'Использовать модуль домена, чтобы добавить новые домены'; -$wb['use_domain_module_hint'] = 'При использовании этого модуля, Ваши клиенты смогут выбрать только один из доменов, созданных для них администратором. Они не могут свободно редактировать поле \"домен\". Чтобы сделать эти изменения видимыми, Вы должны выйти и повторно войти в панель после изменения этого значения.'; +$wb['use_domain_module_hint'] = 'При использовании этого модуля, Ваши клиенты смогут выбрать только один из доменов, созданных для них администратором. Они не могут свободно редактировать поле \\"домен\\". Чтобы сделать эти изменения видимыми, Вы должны выйти и повторно войти в панель после изменения этого значения.'; $wb['new_domain_txt'] = 'HTML текст, чтобы создать новый домен'; $wb['webdavuser_prefix_txt'] = 'Префикс пользователя WebDAV'; $wb['webdavuser_prefix_error_regex'] = 'Некорректный символ в префиксе пользователя WebDAV.'; @@ -67,7 +67,7 @@ $wb['customer_no_template_error_regex_txt'] = 'Шаблон номера Кли $wb['customer_no_start_txt'] = 'Начальное значение номера Клиента'; $wb['customer_no_counter_txt'] = 'Счётчик номера Клиента'; $wb['session_timeout_txt'] = 'Тайм-аут сессии (в минутах)'; -$wb['session_allow_endless_txt'] = 'Включить \"оставаться в системе\"'; +$wb['session_allow_endless_txt'] = 'Включить \\"оставаться в системе\\"'; $wb['No'] = 'Нет'; $wb['min_password_length_txt'] = 'Минимальная длина пароля'; $wb['min_password_strength_txt'] = 'Минимальная стойкость пароля'; @@ -84,17 +84,10 @@ $wb['default_dbserver_txt'] = 'Сервер базы данных по умол $wb['ca_name_txt'] = 'Name'; $wb['ca_issue_txt'] = 'Issue'; $wb['ca_wildcard_txt'] = 'Use Wildcard'; -$wb['ca_critical_txt'] = 'Strict Check'; //For future use. At this time, CA<80><99>s do not recognize any other flag values as described in RFC 6844 -$wb['ca_iodef_txt'] = 'iodef'; -$wb['active_txt'] = 'Aktive'; -$wb['btn_save_txt'] = 'Save'; -$wb['btn_cancel_txt'] = 'Cancel'; -$wb['ca_name_txt'] = 'Name'; -$wb['ca_issue_txt'] = 'Issue'; -$wb['ca_wildcard_txt'] = 'Use Wildcard'; -$wb['ca_critical_txt'] = 'Strict Check'; //For future use. At this time, CA’s do not recognize any other flag values as described in RFC 6844 +$wb['ca_critical_txt'] = 'Strict Check'; $wb['ca_iodef_txt'] = 'iodef'; $wb['active_txt'] = 'Aktive'; $wb['btn_save_txt'] = 'Save'; $wb['btn_cancel_txt'] = 'Cancel'; +$wb['web_php_options_txt'] = 'PHP Handler (Apache only)'; ?> diff --git a/interface/web/admin/lib/lang/ru_users.lng b/interface/web/admin/lib/lang/ru_users.lng index bd1b8034f..63f081f91 100644 --- a/interface/web/admin/lib/lang/ru_users.lng +++ b/interface/web/admin/lib/lang/ru_users.lng @@ -29,7 +29,7 @@ $wb['generate_password_txt'] = 'Создать пароль'; $wb['repeat_password_txt'] = 'Повторить пароль'; $wb['password_mismatch_txt'] = 'Пароли не совпадают.'; $wb['password_match_txt'] = 'Эти пароли совпадают.'; -$wb['username_error_collision'] = 'Имя пользователя не может начинаться со слова \"web\" или \"web\" плюс число.'; +$wb['username_error_collision'] = 'Имя пользователя не может начинаться со слова \\"web\\" или \\"web\\" плюс число.'; $wb['client_not_admin_err'] = 'Пользователь, который принадлежит к клиенту не может быть установлен тип: admin'; $wb['lost_password_function_txt'] = 'Функция восстановления пароля доступна'; $wb['no_user_insert'] = 'CP-Users of type -user- get added and updated automatically when you add a client or reseller.'; diff --git a/interface/web/admin/lib/lang/se_server_config.lng b/interface/web/admin/lib/lang/se_server_config.lng index 196fe3ffd..c949c052b 100644 --- a/interface/web/admin/lib/lang/se_server_config.lng +++ b/interface/web/admin/lib/lang/se_server_config.lng @@ -295,4 +295,5 @@ $wb['log_retention_error_ispositive'] = 'Log retention must be a number > 0'; $wb['php_default_name_txt'] = 'Description Default PHP-Version'; $wb['php_default_name_error_empty'] = 'Description Default PHP-Version must not be empty'; $wb['error_mailbox_message_size_txt'] = 'Mailbox size must be larger or equal to message size'; +$wb['php_fpm_reload_mode_txt'] = 'PHP-FPM reload mode'; ?> diff --git a/interface/web/admin/lib/lang/se_server_php_list.lng b/interface/web/admin/lib/lang/se_server_php_list.lng index f5762ad3a..451236d1c 100644 --- a/interface/web/admin/lib/lang/se_server_php_list.lng +++ b/interface/web/admin/lib/lang/se_server_php_list.lng @@ -4,4 +4,5 @@ $wb['server_id_txt'] = 'Server'; $wb['add_new_record_txt'] = 'Lägg till ny PHP-version'; $wb['client_id_txt'] = 'Kund'; $wb['name_txt'] = 'PHP-namn'; +$wb['active_txt'] = 'Active'; ?> diff --git a/interface/web/admin/lib/lang/se_system_config.lng b/interface/web/admin/lib/lang/se_system_config.lng index c9ccca89e..74ae16734 100644 --- a/interface/web/admin/lib/lang/se_system_config.lng +++ b/interface/web/admin/lib/lang/se_system_config.lng @@ -84,9 +84,10 @@ $wb['default_dbserver_txt'] = 'Default Database Server'; $wb['ca_name_txt'] = 'Name'; $wb['ca_issue_txt'] = 'Issue'; $wb['ca_wildcard_txt'] = 'Use Wildcard'; -$wb['ca_critical_txt'] = 'Strict Check'; //For future use. At this time, CA’s do not recognize any other flag values as described in RFC 6844 +$wb['ca_critical_txt'] = 'Strict Check'; $wb['ca_iodef_txt'] = 'iodef'; $wb['active_txt'] = 'Aktive'; $wb['btn_save_txt'] = 'Save'; $wb['btn_cancel_txt'] = 'Cancel'; +$wb['web_php_options_txt'] = 'PHP Handler (Apache only)'; ?> diff --git a/interface/web/admin/lib/lang/sk_server_config.lng b/interface/web/admin/lib/lang/sk_server_config.lng index 9d4703c4b..709f7b928 100644 --- a/interface/web/admin/lib/lang/sk_server_config.lng +++ b/interface/web/admin/lib/lang/sk_server_config.lng @@ -295,4 +295,5 @@ $wb['log_retention_error_ispositive'] = 'Log retention must be a number > 0'; $wb['php_default_name_txt'] = 'Description Default PHP-Version'; $wb['php_default_name_error_empty'] = 'Description Default PHP-Version must not be empty'; $wb['error_mailbox_message_size_txt'] = 'Mailbox size must be larger or equal to message size'; +$wb['php_fpm_reload_mode_txt'] = 'PHP-FPM reload mode'; ?> diff --git a/interface/web/admin/lib/lang/sk_server_php_list.lng b/interface/web/admin/lib/lang/sk_server_php_list.lng index b402fd1ed..62cbe6168 100644 --- a/interface/web/admin/lib/lang/sk_server_php_list.lng +++ b/interface/web/admin/lib/lang/sk_server_php_list.lng @@ -4,4 +4,5 @@ $wb['server_id_txt'] = 'Server'; $wb['add_new_record_txt'] = 'Add new PHP version'; $wb['client_id_txt'] = 'Client'; $wb['name_txt'] = 'PHP Name'; +$wb['active_txt'] = 'Active'; ?> diff --git a/interface/web/admin/lib/lang/sk_system_config.lng b/interface/web/admin/lib/lang/sk_system_config.lng index fdeb1648c..90418e87d 100644 --- a/interface/web/admin/lib/lang/sk_system_config.lng +++ b/interface/web/admin/lib/lang/sk_system_config.lng @@ -84,9 +84,10 @@ $wb['default_dbserver_txt'] = 'Default Database Server'; $wb['ca_name_txt'] = 'Name'; $wb['ca_issue_txt'] = 'Issue'; $wb['ca_wildcard_txt'] = 'Use Wildcard'; -$wb['ca_critical_txt'] = 'Strict Check'; //For future use. At this time, CA’s do not recognize any other flag values as described in RFC 6844 +$wb['ca_critical_txt'] = 'Strict Check'; $wb['ca_iodef_txt'] = 'iodef'; $wb['active_txt'] = 'Aktive'; $wb['btn_save_txt'] = 'Save'; $wb['btn_cancel_txt'] = 'Cancel'; +$wb['web_php_options_txt'] = 'PHP Handler (Apache only)'; ?> diff --git a/interface/web/admin/lib/lang/tr_server_config.lng b/interface/web/admin/lib/lang/tr_server_config.lng index b6a742781..7d16f2145 100644 --- a/interface/web/admin/lib/lang/tr_server_config.lng +++ b/interface/web/admin/lib/lang/tr_server_config.lng @@ -295,4 +295,5 @@ $wb['log_retention_error_ispositive'] = 'Log retention must be a number > 0'; $wb['php_default_name_txt'] = 'Description Default PHP-Version'; $wb['php_default_name_error_empty'] = 'Description Default PHP-Version must not be empty'; $wb['error_mailbox_message_size_txt'] = 'Mailbox size must be larger or equal to message size'; +$wb['php_fpm_reload_mode_txt'] = 'PHP-FPM reload mode'; ?> diff --git a/interface/web/admin/lib/lang/tr_server_php_list.lng b/interface/web/admin/lib/lang/tr_server_php_list.lng index 3b1d39bdd..dd3d6b730 100644 --- a/interface/web/admin/lib/lang/tr_server_php_list.lng +++ b/interface/web/admin/lib/lang/tr_server_php_list.lng @@ -4,4 +4,5 @@ $wb['server_id_txt'] = 'Sunucu'; $wb['add_new_record_txt'] = 'PHP Sürümü Ekle'; $wb['client_id_txt'] = 'Müşteri'; $wb['name_txt'] = 'PHP Adı'; +$wb['active_txt'] = 'Active'; ?> diff --git a/interface/web/admin/lib/lang/tr_system_config.lng b/interface/web/admin/lib/lang/tr_system_config.lng index 18657743e..c52893f6b 100644 --- a/interface/web/admin/lib/lang/tr_system_config.lng +++ b/interface/web/admin/lib/lang/tr_system_config.lng @@ -84,9 +84,10 @@ $wb['login_link_error_regex'] = 'Invalid Link for Custom Login'; $wb['ca_name_txt'] = 'Name'; $wb['ca_issue_txt'] = 'Issue'; $wb['ca_wildcard_txt'] = 'Use Wildcard'; -$wb['ca_critical_txt'] = 'Strict Check'; //For future use. At this time, CA’s do not recognize any other flag values as described in RFC 6844 +$wb['ca_critical_txt'] = 'Strict Check'; $wb['ca_iodef_txt'] = 'iodef'; $wb['active_txt'] = 'Aktive'; $wb['btn_save_txt'] = 'Save'; $wb['btn_cancel_txt'] = 'Cancel'; +$wb['web_php_options_txt'] = 'PHP Handler (Apache only)'; ?> diff --git a/interface/web/client/lib/lang/ar_client_template_list.lng b/interface/web/client/lib/lang/ar_client_template_list.lng index 0840184a9..9112afc62 100644 --- a/interface/web/client/lib/lang/ar_client_template_list.lng +++ b/interface/web/client/lib/lang/ar_client_template_list.lng @@ -3,4 +3,5 @@ $wb['list_head_txt'] = 'Client-Templates'; $wb['template_type_txt'] = 'Type'; $wb['template_name_txt'] = 'Template name'; $wb['template_id_txt'] = 'Template ID'; +$wb['sys_groupid_txt'] = 'Reseller'; ?> diff --git a/interface/web/client/lib/lang/bg_client_template_list.lng b/interface/web/client/lib/lang/bg_client_template_list.lng index 0840184a9..9112afc62 100644 --- a/interface/web/client/lib/lang/bg_client_template_list.lng +++ b/interface/web/client/lib/lang/bg_client_template_list.lng @@ -3,4 +3,5 @@ $wb['list_head_txt'] = 'Client-Templates'; $wb['template_type_txt'] = 'Type'; $wb['template_name_txt'] = 'Template name'; $wb['template_id_txt'] = 'Template ID'; +$wb['sys_groupid_txt'] = 'Reseller'; ?> diff --git a/interface/web/client/lib/lang/br_client.lng b/interface/web/client/lib/lang/br_client.lng index ad9282aa4..992c1ea2c 100644 --- a/interface/web/client/lib/lang/br_client.lng +++ b/interface/web/client/lib/lang/br_client.lng @@ -141,7 +141,7 @@ $wb['email_error_isemail'] = 'Por favor, insira um e-mail válido.'; $wb['customer_no_error_unique'] = 'O código do cliente deve ser exclusivo (ou em branco).'; $wb['paypal_email_error_isemail'] = 'Por favor, insira um e-mail do PayPal válido.'; $wb['paypal_email_txt'] = 'e-mail do PayPal'; -$wb['err_msg_master_tpl_set'] = 'Todos as configurações de limites personalizadas são ignoradas se qualquer gabarito mestre ou algum gabarito \"personalizado\" for selecionado.'; +$wb['err_msg_master_tpl_set'] = 'Todos as configurações de limites personalizadas são ignoradas se qualquer gabarito mestre ou algum gabarito \\"personalizado\\" for selecionado.'; $wb['aps_limits_txt'] = 'Limites de apps instalados'; $wb['limit_aps_txt'] = 'Limite de instâncias de apps'; $wb['limit_aps_error_notint'] = 'Limite de instâncias de apps deve ser um número.'; diff --git a/interface/web/client/lib/lang/br_client_template.lng b/interface/web/client/lib/lang/br_client_template.lng index bc7124b16..4b2ce6555 100644 --- a/interface/web/client/lib/lang/br_client_template.lng +++ b/interface/web/client/lib/lang/br_client_template.lng @@ -76,7 +76,7 @@ $wb['limit_perl_txt'] = 'Perl disponível'; $wb['limit_ruby_txt'] = 'Ruby disponível'; $wb['limit_python_txt'] = 'Python disponível'; $wb['force_suexec_txt'] = 'Forçar SuEXEC'; -$wb['limit_hterror_txt'] = 'Diretório \"Custom error docs\" disponível'; +$wb['limit_hterror_txt'] = 'Diretório \\"Custom error docs\\" disponível'; $wb['limit_wildcard_txt'] = 'Curingas de subdomínios disponíveis'; $wb['limit_ssl_txt'] = 'SSL disponível'; $wb['web_limits_txt'] = 'Limites web'; diff --git a/interface/web/client/lib/lang/br_client_template_list.lng b/interface/web/client/lib/lang/br_client_template_list.lng index 462178801..db73df8ef 100644 --- a/interface/web/client/lib/lang/br_client_template_list.lng +++ b/interface/web/client/lib/lang/br_client_template_list.lng @@ -3,4 +3,5 @@ $wb['list_head_txt'] = 'Gabarito de limites para clientes'; $wb['template_type_txt'] = 'Tipo'; $wb['template_name_txt'] = 'Nome do Gabarito'; $wb['template_id_txt'] = 'ID do Gabarito'; +$wb['sys_groupid_txt'] = 'Reseller'; ?> diff --git a/interface/web/client/lib/lang/ca_client_template_list.lng b/interface/web/client/lib/lang/ca_client_template_list.lng index b5315018d..b22a375f4 100644 --- a/interface/web/client/lib/lang/ca_client_template_list.lng +++ b/interface/web/client/lib/lang/ca_client_template_list.lng @@ -3,4 +3,5 @@ $wb['list_head_txt'] = 'Modèles de clients'; $wb['template_type_txt'] = 'Type'; $wb['template_name_txt'] = 'Nom du modèle'; $wb['template_id_txt'] = 'ID du modèle'; +$wb['sys_groupid_txt'] = 'Reseller'; ?> diff --git a/interface/web/client/lib/lang/cz_client_template_list.lng b/interface/web/client/lib/lang/cz_client_template_list.lng index 3abbd09ad..28a5d3bf6 100644 --- a/interface/web/client/lib/lang/cz_client_template_list.lng +++ b/interface/web/client/lib/lang/cz_client_template_list.lng @@ -3,4 +3,5 @@ $wb['list_head_txt'] = 'Klientské šablony'; $wb['template_type_txt'] = 'Typ'; $wb['template_name_txt'] = 'Název šablony'; $wb['template_id_txt'] = 'ID šablony'; +$wb['sys_groupid_txt'] = 'Reseller'; ?> diff --git a/interface/web/client/lib/lang/de_client_template_list.lng b/interface/web/client/lib/lang/de_client_template_list.lng index cd5f339ee..adb3fecdc 100644 --- a/interface/web/client/lib/lang/de_client_template_list.lng +++ b/interface/web/client/lib/lang/de_client_template_list.lng @@ -3,5 +3,5 @@ $wb['list_head_txt'] = 'Kundenvorlagen'; $wb['template_type_txt'] = 'Typ'; $wb['template_name_txt'] = 'Vorlagenname'; $wb['template_id_txt'] = 'Template ID'; -$wb['sys_groupid_txt'] = 'Reseller'; +$wb['sys_groupid_txt'] = 'Reseller'; ?> diff --git a/interface/web/client/lib/lang/dk_client_template_list.lng b/interface/web/client/lib/lang/dk_client_template_list.lng index ca8365618..6be08eade 100644 --- a/interface/web/client/lib/lang/dk_client_template_list.lng +++ b/interface/web/client/lib/lang/dk_client_template_list.lng @@ -3,4 +3,5 @@ $wb['list_head_txt'] = 'Kunde og Forhandler Skabeloner'; $wb['template_type_txt'] = 'Type'; $wb['template_name_txt'] = 'Skabelon navn'; $wb['template_id_txt'] = 'Skabelon ID'; +$wb['sys_groupid_txt'] = 'Reseller'; ?> diff --git a/interface/web/client/lib/lang/el_client_template_list.lng b/interface/web/client/lib/lang/el_client_template_list.lng index 175c2bfb8..8bb3412df 100644 --- a/interface/web/client/lib/lang/el_client_template_list.lng +++ b/interface/web/client/lib/lang/el_client_template_list.lng @@ -3,4 +3,5 @@ $wb['list_head_txt'] = 'Πρότυπα Πελάτη'; $wb['template_type_txt'] = 'Τύπος'; $wb['template_name_txt'] = 'Όνομα Προτύπου'; $wb['template_id_txt'] = 'Template ID'; +$wb['sys_groupid_txt'] = 'Reseller'; ?> diff --git a/interface/web/client/lib/lang/es_client_template_list.lng b/interface/web/client/lib/lang/es_client_template_list.lng index 4a8032c6f..283a4ff17 100755 --- a/interface/web/client/lib/lang/es_client_template_list.lng +++ b/interface/web/client/lib/lang/es_client_template_list.lng @@ -3,4 +3,5 @@ $wb['list_head_txt'] = 'Plantillas de clientes'; $wb['template_id_txt'] = 'ID de la plantilla'; $wb['template_name_txt'] = 'Nombre de la plantilla'; $wb['template_type_txt'] = 'Tipo'; +$wb['sys_groupid_txt'] = 'Reseller'; ?> diff --git a/interface/web/client/lib/lang/fi_client_template_list.lng b/interface/web/client/lib/lang/fi_client_template_list.lng index b3f310f13..586f93e01 100755 --- a/interface/web/client/lib/lang/fi_client_template_list.lng +++ b/interface/web/client/lib/lang/fi_client_template_list.lng @@ -3,4 +3,5 @@ $wb['list_head_txt'] = 'Asiakasmallit'; $wb['template_type_txt'] = 'Tyyppi'; $wb['template_name_txt'] = 'Asiakasmallin nimi'; $wb['template_id_txt'] = 'Template ID'; +$wb['sys_groupid_txt'] = 'Reseller'; ?> diff --git a/interface/web/client/lib/lang/fr_client_template_list.lng b/interface/web/client/lib/lang/fr_client_template_list.lng index b5315018d..b22a375f4 100644 --- a/interface/web/client/lib/lang/fr_client_template_list.lng +++ b/interface/web/client/lib/lang/fr_client_template_list.lng @@ -3,4 +3,5 @@ $wb['list_head_txt'] = 'Modèles de clients'; $wb['template_type_txt'] = 'Type'; $wb['template_name_txt'] = 'Nom du modèle'; $wb['template_id_txt'] = 'ID du modèle'; +$wb['sys_groupid_txt'] = 'Reseller'; ?> diff --git a/interface/web/client/lib/lang/hr_client_template_list.lng b/interface/web/client/lib/lang/hr_client_template_list.lng index cdc2f0006..fc817c9c2 100644 --- a/interface/web/client/lib/lang/hr_client_template_list.lng +++ b/interface/web/client/lib/lang/hr_client_template_list.lng @@ -3,4 +3,5 @@ $wb['list_head_txt'] = 'Predlošci za klijente'; $wb['template_type_txt'] = 'Vrsta'; $wb['template_name_txt'] = 'Naziv predloška'; $wb['template_id_txt'] = 'Template ID'; +$wb['sys_groupid_txt'] = 'Reseller'; ?> diff --git a/interface/web/client/lib/lang/hu_client_template_list.lng b/interface/web/client/lib/lang/hu_client_template_list.lng index 316de6314..b04b3405e 100644 --- a/interface/web/client/lib/lang/hu_client_template_list.lng +++ b/interface/web/client/lib/lang/hu_client_template_list.lng @@ -3,4 +3,5 @@ $wb['list_head_txt'] = 'Ügyfél-Sablonok'; $wb['template_type_txt'] = 'típus'; $wb['template_name_txt'] = 'Sablon neve'; $wb['template_id_txt'] = 'Template ID'; +$wb['sys_groupid_txt'] = 'Reseller'; ?> diff --git a/interface/web/client/lib/lang/id_client_template_list.lng b/interface/web/client/lib/lang/id_client_template_list.lng index e0da97101..dd0259544 100644 --- a/interface/web/client/lib/lang/id_client_template_list.lng +++ b/interface/web/client/lib/lang/id_client_template_list.lng @@ -3,4 +3,5 @@ $wb['list_head_txt'] = 'Template Klien'; $wb['template_type_txt'] = 'Tipe'; $wb['template_name_txt'] = 'Nama Template'; $wb['template_id_txt'] = 'Template ID'; +$wb['sys_groupid_txt'] = 'Reseller'; ?> diff --git a/interface/web/client/lib/lang/it_client_template_list.lng b/interface/web/client/lib/lang/it_client_template_list.lng index d78faf877..43b1a5ca4 100644 --- a/interface/web/client/lib/lang/it_client_template_list.lng +++ b/interface/web/client/lib/lang/it_client_template_list.lng @@ -3,4 +3,5 @@ $wb['list_head_txt'] = 'Modelli cliente'; $wb['template_type_txt'] = 'Tipo'; $wb['template_name_txt'] = 'Nome modello'; $wb['template_id_txt'] = 'Template ID'; +$wb['sys_groupid_txt'] = 'Reseller'; ?> diff --git a/interface/web/client/lib/lang/ja_client_template_list.lng b/interface/web/client/lib/lang/ja_client_template_list.lng index 8adca01b1..3e67a0e00 100644 --- a/interface/web/client/lib/lang/ja_client_template_list.lng +++ b/interface/web/client/lib/lang/ja_client_template_list.lng @@ -3,4 +3,5 @@ $wb['list_head_txt'] = 'クライアントテンプレート'; $wb['template_type_txt'] = '種別'; $wb['template_name_txt'] = 'テンプレート名'; $wb['template_id_txt'] = 'Template ID'; +$wb['sys_groupid_txt'] = 'Reseller'; ?> diff --git a/interface/web/client/lib/lang/nl_client_template_list.lng b/interface/web/client/lib/lang/nl_client_template_list.lng index 8bbe7a5a0..fa62e4b79 100644 --- a/interface/web/client/lib/lang/nl_client_template_list.lng +++ b/interface/web/client/lib/lang/nl_client_template_list.lng @@ -3,4 +3,5 @@ $wb['list_head_txt'] = 'Client-Templates'; $wb['template_type_txt'] = 'Type'; $wb['template_name_txt'] = 'Template naam'; $wb['template_id_txt'] = 'Template ID'; +$wb['sys_groupid_txt'] = 'Reseller'; ?> diff --git a/interface/web/client/lib/lang/pl_client_template_list.lng b/interface/web/client/lib/lang/pl_client_template_list.lng index d6bd952d0..a7f7cf163 100644 --- a/interface/web/client/lib/lang/pl_client_template_list.lng +++ b/interface/web/client/lib/lang/pl_client_template_list.lng @@ -3,4 +3,5 @@ $wb['list_head_txt'] = 'Szablon klienta'; $wb['template_type_txt'] = 'Typ'; $wb['template_name_txt'] = 'Nazwa szablonu'; $wb['template_id_txt'] = 'Template ID'; +$wb['sys_groupid_txt'] = 'Reseller'; ?> diff --git a/interface/web/client/lib/lang/pt_client_template_list.lng b/interface/web/client/lib/lang/pt_client_template_list.lng index d5f451111..54b88241d 100644 --- a/interface/web/client/lib/lang/pt_client_template_list.lng +++ b/interface/web/client/lib/lang/pt_client_template_list.lng @@ -3,4 +3,5 @@ $wb['list_head_txt'] = 'Templates de Cliente '; $wb['template_type_txt'] = 'Tipo'; $wb['template_name_txt'] = 'Nome da template'; $wb['template_id_txt'] = 'Template ID'; +$wb['sys_groupid_txt'] = 'Reseller'; ?> diff --git a/interface/web/client/lib/lang/ro_client_template_list.lng b/interface/web/client/lib/lang/ro_client_template_list.lng index 17fbf995b..3f5764c50 100644 --- a/interface/web/client/lib/lang/ro_client_template_list.lng +++ b/interface/web/client/lib/lang/ro_client_template_list.lng @@ -3,4 +3,5 @@ $wb['list_head_txt'] = 'Template client'; $wb['template_type_txt'] = 'Tp'; $wb['template_name_txt'] = 'Nume Template'; $wb['template_id_txt'] = 'Template ID'; +$wb['sys_groupid_txt'] = 'Reseller'; ?> diff --git a/interface/web/client/lib/lang/ru_client.lng b/interface/web/client/lib/lang/ru_client.lng index a37d4673a..befd6b15b 100644 --- a/interface/web/client/lib/lang/ru_client.lng +++ b/interface/web/client/lib/lang/ru_client.lng @@ -108,7 +108,7 @@ $wb['limit_openvz_vm_template_id_txt'] = 'Принудительный шабл $wb['limit_openvz_vm_error_notint'] = 'Лимит виртуальных серверов должен быть числом.'; $wb['web_php_options_notempty'] = 'Нет выбранных параметров PHP. Выберите по крайней мере один параметр PHP.'; $wb['ssh_chroot_notempty'] = 'Не выбран параметр SSH-Chroot. Выберите по крайней мере один параметр SSH-Chroot.'; -$wb['username_error_collision'] = 'Имя пользователя не может начинаться со слова \"web\" или \"web\" плюс число.'; +$wb['username_error_collision'] = 'Имя пользователя не может начинаться со слова \\"web\\" или \\"web\\" плюс число.'; $wb['add_additional_template_txt'] = 'Добавить дополнительный шаблон'; $wb['delete_additional_template_txt'] = 'Удалить дополнительный шаблон'; $wb['limit_cgi_txt'] = 'CGI доступен'; @@ -141,7 +141,7 @@ $wb['email_error_isemail'] = 'Некорректный почтовый адре $wb['customer_no_error_unique'] = 'Счётчик номера Клиента должен быть уникален (или отсутствует).'; $wb['paypal_email_error_isemail'] = 'Пожалуйста, введите действующий адрес электронной почты PayPal.'; $wb['paypal_email_txt'] = 'Адрес электронной почты PayPal'; -$wb['err_msg_master_tpl_set'] = 'Значения, установленные здесь игнорируются, если не выбран в качестве главного шаблона \"Custom\"!'; +$wb['err_msg_master_tpl_set'] = 'Значения, установленные здесь игнорируются, если не выбран в качестве главного шаблона \\"Custom\\"!'; $wb['aps_limits_txt'] = 'Лимиты Установщика APS'; $wb['limit_aps_txt'] = 'Макс. количество экземпляров APS'; $wb['limit_aps_error_notint'] = 'Лимит экземпляров APS должен быть числом.'; diff --git a/interface/web/client/lib/lang/ru_client_template_list.lng b/interface/web/client/lib/lang/ru_client_template_list.lng index 30d0dfed4..2981e2167 100644 --- a/interface/web/client/lib/lang/ru_client_template_list.lng +++ b/interface/web/client/lib/lang/ru_client_template_list.lng @@ -3,4 +3,5 @@ $wb['list_head_txt'] = 'Шаблоны клиентов'; $wb['template_type_txt'] = 'Тип'; $wb['template_name_txt'] = 'Имя шаблона'; $wb['template_id_txt'] = 'ID шаблона'; +$wb['sys_groupid_txt'] = 'Reseller'; ?> diff --git a/interface/web/client/lib/lang/ru_reseller.lng b/interface/web/client/lib/lang/ru_reseller.lng index 4a177cccc..998a88699 100644 --- a/interface/web/client/lib/lang/ru_reseller.lng +++ b/interface/web/client/lib/lang/ru_reseller.lng @@ -108,7 +108,7 @@ $wb['limit_openvz_vm_template_id_txt'] = 'Принудительный шабл $wb['limit_openvz_vm_error_notint'] = 'Лимит виртуальных серверов должен быть числом.'; $wb['web_php_options_notempty'] = 'Нет выбранных параметров PHP. Выберите по крайней мере один параметр PHP.'; $wb['ssh_chroot_notempty'] = 'Не выбран параметр SSH-Chroot. Выберите по крайней мере один параметр SSH-Chroot.'; -$wb['username_error_collision'] = 'Имя пользователя не может начинаться со слова \"web\" или \"web\" плюс число.'; +$wb['username_error_collision'] = 'Имя пользователя не может начинаться со слова \\"web\\" или \\"web\\" плюс число.'; $wb['add_additional_template_txt'] = 'Добавить дополнительный шаблон'; $wb['delete_additional_template_txt'] = 'Удалить дополнительный шаблон'; $wb['limit_cgi_txt'] = 'CGI доступен'; @@ -159,7 +159,7 @@ $wb['added_date_txt'] = 'Дата добавления'; $wb['limit_domainmodule_error_notint'] = 'Лимит модулей домена должен быть числом.'; $wb['limit_domainmodule_txt'] = 'Лимит модулей домена'; $wb['client_limits_txt'] = 'Лимиты Клиента'; -$wb['err_msg_master_tpl_set'] = 'Значения, установленные здесь игнорируются, если не выбран в качестве главного шаблона \"Custom\"!'; +$wb['err_msg_master_tpl_set'] = 'Значения, установленные здесь игнорируются, если не выбран в качестве главного шаблона \\"Custom\\"!'; $wb['btn_save_txt'] = 'Сохранить'; $wb['btn_cancel_txt'] = 'Отменить'; $wb['email_error_empty'] = 'Адрес эл. почты пустой'; diff --git a/interface/web/client/lib/lang/se_client_template_list.lng b/interface/web/client/lib/lang/se_client_template_list.lng index b594337e7..37ce6de45 100644 --- a/interface/web/client/lib/lang/se_client_template_list.lng +++ b/interface/web/client/lib/lang/se_client_template_list.lng @@ -3,4 +3,5 @@ $wb['list_head_txt'] = 'Kundmallar'; $wb['template_type_txt'] = 'Typ'; $wb['template_name_txt'] = 'Mallnamn'; $wb['template_id_txt'] = 'Mall-ID'; +$wb['sys_groupid_txt'] = 'Reseller'; ?> diff --git a/interface/web/client/lib/lang/sk_client_template_list.lng b/interface/web/client/lib/lang/sk_client_template_list.lng index ac25b8f3a..94637b175 100644 --- a/interface/web/client/lib/lang/sk_client_template_list.lng +++ b/interface/web/client/lib/lang/sk_client_template_list.lng @@ -3,4 +3,5 @@ $wb['list_head_txt'] = 'Klient-Šablóny'; $wb['template_type_txt'] = 'Typ'; $wb['template_name_txt'] = 'Meno šablóny'; $wb['template_id_txt'] = 'Template ID'; +$wb['sys_groupid_txt'] = 'Reseller'; ?> diff --git a/interface/web/client/lib/lang/tr_client_template_list.lng b/interface/web/client/lib/lang/tr_client_template_list.lng index 1663e6e2d..fbe35efc9 100644 --- a/interface/web/client/lib/lang/tr_client_template_list.lng +++ b/interface/web/client/lib/lang/tr_client_template_list.lng @@ -3,4 +3,5 @@ $wb['list_head_txt'] = 'Müşteri ve Bayi Kalıpları'; $wb['template_type_txt'] = 'Tip'; $wb['template_name_txt'] = 'Kalıp adı'; $wb['template_id_txt'] = 'Kalıp kodu'; +$wb['sys_groupid_txt'] = 'Reseller'; ?> diff --git a/interface/web/dns/lib/lang/ar_dns_caa.lng b/interface/web/dns/lib/lang/ar_dns_caa.lng index 1fa7dcb7d..973a97ceb 100644 --- a/interface/web/dns/lib/lang/ar_dns_caa.lng +++ b/interface/web/dns/lib/lang/ar_dns_caa.lng @@ -6,7 +6,7 @@ $wb['ca_hostname_note_txt'] = '(Sepearated list with commas - empty for all host $wb['ca_options_txt'] = 'Additional Options'; $wb['ca_options_note_txt'] = 'requested by the CA (Sepearated list with commas)'; $wb['ca_wildcard_txt'] = 'Use Wildcard SSL'; -$wb['ca_critical_txt'] = 'Strict check'; //For future use. At this time, CAAs do not recognize any other flag values as described in RFC 6844 +$wb['ca_critical_txt'] = 'Strict check'; $wb['ttl_txt'] = 'TTL'; $wb['active_txt'] = 'Active'; $wb['select_txt'] = 'Select Certifiction Authority'; diff --git a/interface/web/dns/lib/lang/bg_dns_caa.lng b/interface/web/dns/lib/lang/bg_dns_caa.lng index 1fa7dcb7d..973a97ceb 100644 --- a/interface/web/dns/lib/lang/bg_dns_caa.lng +++ b/interface/web/dns/lib/lang/bg_dns_caa.lng @@ -6,7 +6,7 @@ $wb['ca_hostname_note_txt'] = '(Sepearated list with commas - empty for all host $wb['ca_options_txt'] = 'Additional Options'; $wb['ca_options_note_txt'] = 'requested by the CA (Sepearated list with commas)'; $wb['ca_wildcard_txt'] = 'Use Wildcard SSL'; -$wb['ca_critical_txt'] = 'Strict check'; //For future use. At this time, CAAs do not recognize any other flag values as described in RFC 6844 +$wb['ca_critical_txt'] = 'Strict check'; $wb['ttl_txt'] = 'TTL'; $wb['active_txt'] = 'Active'; $wb['select_txt'] = 'Select Certifiction Authority'; diff --git a/interface/web/dns/lib/lang/br_dns_caa.lng b/interface/web/dns/lib/lang/br_dns_caa.lng index 1fa7dcb7d..973a97ceb 100644 --- a/interface/web/dns/lib/lang/br_dns_caa.lng +++ b/interface/web/dns/lib/lang/br_dns_caa.lng @@ -6,7 +6,7 @@ $wb['ca_hostname_note_txt'] = '(Sepearated list with commas - empty for all host $wb['ca_options_txt'] = 'Additional Options'; $wb['ca_options_note_txt'] = 'requested by the CA (Sepearated list with commas)'; $wb['ca_wildcard_txt'] = 'Use Wildcard SSL'; -$wb['ca_critical_txt'] = 'Strict check'; //For future use. At this time, CAAs do not recognize any other flag values as described in RFC 6844 +$wb['ca_critical_txt'] = 'Strict check'; $wb['ttl_txt'] = 'TTL'; $wb['active_txt'] = 'Active'; $wb['select_txt'] = 'Select Certifiction Authority'; diff --git a/interface/web/dns/lib/lang/br_dns_dmarc.lng b/interface/web/dns/lib/lang/br_dns_dmarc.lng index 5b7201075..8bb35318f 100644 --- a/interface/web/dns/lib/lang/br_dns_dmarc.lng +++ b/interface/web/dns/lib/lang/br_dns_dmarc.lng @@ -2,7 +2,7 @@ $wb['data_txt'] = 'Registro DMARC'; $wb['domain_txt'] = 'Domínio'; $wb['dmarc_policy_txt'] = 'Política de recepção de e-mails'; -$wb['dmarc_policy_note_txt'] = 'Como os \"ISPs\" devem tratar as mensagens SPF ou DKIM com falha (DMARC).'; +$wb['dmarc_policy_note_txt'] = 'Como os \\"ISPs\\" devem tratar as mensagens SPF ou DKIM com falha (DMARC).'; $wb['dmarc_policy_none_txt'] = 'não fazer nada'; $wb['dmarc_policy_quarantine_txt'] = 'quarentena'; $wb['dmarc_policy_reject_txt'] = 'rejeitar'; @@ -11,16 +11,16 @@ $wb['dmarc_rua_note_txt'] = 'Endereços de e-mail para receber relatórios do si $wb['dmarc_ruf_txt'] = 'Relatório forense de dados por endereço'; $wb['dmarc_ruf_note_txt'] = 'Endereços de e-mail para receber amostras de mensagens com falha e controles DMARC do domínio (separados por espaço em branco)'; $wb['dmarc_fo_txt'] = 'Opções de relatório forense'; -$wb['dmarc_fo0_txt'] = 'Gerar relatórios se todos os mecanismos de autenticação subjacentes deixarem de produzir um resultado DMARC \"pass\".'; +$wb['dmarc_fo0_txt'] = 'Gerar relatórios se todos os mecanismos de autenticação subjacentes deixarem de produzir um resultado DMARC \\"pass\\".'; $wb['dmarc_fo1_txt'] = 'Gerar relatório se algum mecanismo falhar.'; $wb['dmarc_fod_txt'] = 'Gerar relatório se assinatura DKIM falhar na verificação.'; $wb['dmarc_fos_txt'] = 'Gerar relatório se o SPF falhar.'; $wb['dmarc_adkim_txt'] = 'Parametrização do identificador DKIM'; -$wb['dmarc_adkim_note_txt'] = 'Modo \"strict\" exige combinação exata entre o DKIM do domínio e e-mails'; +$wb['dmarc_adkim_note_txt'] = 'Modo \\"strict\\" exige combinação exata entre o DKIM do domínio e e-mails'; $wb['dmarc_adkim_r_txt'] = 'relaxed'; $wb['dmarc_adkim_s_txt'] = 'strict'; $wb['dmarc_aspf_txt'] = 'Parametrização do identificador SPF'; -$wb['dmarc_aspf_note_txt'] = 'Modo \"strict\" exige combinação exata entre o SPF do domínio e e-mails'; +$wb['dmarc_aspf_note_txt'] = 'Modo \\"strict\\" exige combinação exata entre o SPF do domínio e e-mails'; $wb['dmarc_aspf_r_txt'] = 'relaxed'; $wb['dmarc_aspf_s_txt'] = 'strict'; $wb['dmarc_rf_txt'] = 'Formatação do relatório'; @@ -37,7 +37,7 @@ $wb['dmarc_sp_quarantine_txt'] = 'quarentena'; $wb['dmarc_sp_reject_txt'] = 'rejeitar'; $wb['ttl_txt'] = 'TTL'; $wb['active_txt'] = 'Ativo'; -$wb['dmarc_policy_error_txt'] = 'Somente a política \"nenhum\" é permitida para e-mails sem assinatura DKIM.'; +$wb['dmarc_policy_error_txt'] = 'Somente a política \\"nenhum\\" é permitida para e-mails sem assinatura DKIM.'; $wb['dmarc_no_dkim_txt'] = 'Nenhum registro DKIM ativo.'; $wb['dmarc_no_spf_txt'] = 'Nenhum registro SPF ativo.'; $wb['dmarc_more_spf_txt'] = 'Mais de um registro SPF ativo.'; diff --git a/interface/web/dns/lib/lang/br_dns_tlsa.lng b/interface/web/dns/lib/lang/br_dns_tlsa.lng index c78c6fd19..5e1bf2256 100644 --- a/interface/web/dns/lib/lang/br_dns_tlsa.lng +++ b/interface/web/dns/lib/lang/br_dns_tlsa.lng @@ -9,8 +9,8 @@ $wb['active_txt'] = 'Ativo'; $wb['limit_dns_record_txt'] = 'O limite de registros dns para esta conta foi alcançado.'; $wb['no_zone_perm'] = 'Você não tem permissão para adicionar registros a esta zona dns.'; $wb['name_error_empty'] = 'Descritor de serviço está em branco.'; -$wb['name_error_regex'] = 'Descritor de serviço é inválido. Formato correto: \"_<port>._(tcp|udp).<hostname>\".'; +$wb['name_error_regex'] = 'Descritor de serviço é inválido. Formato correto: \\"_<port>._(tcp|udp).<hostname>\\".'; $wb['data_error_empty'] = 'Dados TLSA está em branco.'; -$wb['data_error_regex'] = 'Dados TLSA são inválidos. Formato correto: \"n n n HASH\".'; +$wb['data_error_regex'] = 'Dados TLSA são inválidos. Formato correto: \\"n n n HASH\\".'; $wb['ttl_range_error'] = 'O ttl mínimo são 60 segundos.'; ?> diff --git a/interface/web/dns/lib/lang/ca_dns_caa.lng b/interface/web/dns/lib/lang/ca_dns_caa.lng index 1fa7dcb7d..973a97ceb 100644 --- a/interface/web/dns/lib/lang/ca_dns_caa.lng +++ b/interface/web/dns/lib/lang/ca_dns_caa.lng @@ -6,7 +6,7 @@ $wb['ca_hostname_note_txt'] = '(Sepearated list with commas - empty for all host $wb['ca_options_txt'] = 'Additional Options'; $wb['ca_options_note_txt'] = 'requested by the CA (Sepearated list with commas)'; $wb['ca_wildcard_txt'] = 'Use Wildcard SSL'; -$wb['ca_critical_txt'] = 'Strict check'; //For future use. At this time, CAAs do not recognize any other flag values as described in RFC 6844 +$wb['ca_critical_txt'] = 'Strict check'; $wb['ttl_txt'] = 'TTL'; $wb['active_txt'] = 'Active'; $wb['select_txt'] = 'Select Certifiction Authority'; diff --git a/interface/web/dns/lib/lang/cz_dns_caa.lng b/interface/web/dns/lib/lang/cz_dns_caa.lng index 1fa7dcb7d..973a97ceb 100644 --- a/interface/web/dns/lib/lang/cz_dns_caa.lng +++ b/interface/web/dns/lib/lang/cz_dns_caa.lng @@ -6,7 +6,7 @@ $wb['ca_hostname_note_txt'] = '(Sepearated list with commas - empty for all host $wb['ca_options_txt'] = 'Additional Options'; $wb['ca_options_note_txt'] = 'requested by the CA (Sepearated list with commas)'; $wb['ca_wildcard_txt'] = 'Use Wildcard SSL'; -$wb['ca_critical_txt'] = 'Strict check'; //For future use. At this time, CAAs do not recognize any other flag values as described in RFC 6844 +$wb['ca_critical_txt'] = 'Strict check'; $wb['ttl_txt'] = 'TTL'; $wb['active_txt'] = 'Active'; $wb['select_txt'] = 'Select Certifiction Authority'; diff --git a/interface/web/dns/lib/lang/de_dns_caa.lng b/interface/web/dns/lib/lang/de_dns_caa.lng index 88dbf6e47..a71102368 100644 --- a/interface/web/dns/lib/lang/de_dns_caa.lng +++ b/interface/web/dns/lib/lang/de_dns_caa.lng @@ -6,7 +6,7 @@ $wb['ca_hostname_note_txt'] = '(mit Komma getrennte Liste - leer für alle Namen $wb['ca_options_txt'] = 'zusätzliche Angaben'; $wb['ca_options_note_txt'] = 'von der Zertifizierungsstelle vorgegeben (mit Komma getrennte Liste)'; $wb['ca_wildcard_txt'] = 'Wildcard verwenden'; -$wb['ca_critical_txt'] = 'Strikte Überprüfung durch die Zertifizierungsstelle'; //For future use. At this time, CA’s do not recognize any other flag values as described in RFC 6844 +$wb['ca_critical_txt'] = 'Strikte Überprüfung durch die Zertifizierungsstelle'; $wb['ttl_txt'] = 'TTL'; $wb['active_txt'] = 'Aktiv'; $wb['select_txt'] = 'Zertifizierungstelle auswählen'; diff --git a/interface/web/dns/lib/lang/dk_dns_caa.lng b/interface/web/dns/lib/lang/dk_dns_caa.lng index 1fa7dcb7d..973a97ceb 100644 --- a/interface/web/dns/lib/lang/dk_dns_caa.lng +++ b/interface/web/dns/lib/lang/dk_dns_caa.lng @@ -6,7 +6,7 @@ $wb['ca_hostname_note_txt'] = '(Sepearated list with commas - empty for all host $wb['ca_options_txt'] = 'Additional Options'; $wb['ca_options_note_txt'] = 'requested by the CA (Sepearated list with commas)'; $wb['ca_wildcard_txt'] = 'Use Wildcard SSL'; -$wb['ca_critical_txt'] = 'Strict check'; //For future use. At this time, CAAs do not recognize any other flag values as described in RFC 6844 +$wb['ca_critical_txt'] = 'Strict check'; $wb['ttl_txt'] = 'TTL'; $wb['active_txt'] = 'Active'; $wb['select_txt'] = 'Select Certifiction Authority'; diff --git a/interface/web/dns/lib/lang/el_dns_caa.lng b/interface/web/dns/lib/lang/el_dns_caa.lng index 1fa7dcb7d..973a97ceb 100644 --- a/interface/web/dns/lib/lang/el_dns_caa.lng +++ b/interface/web/dns/lib/lang/el_dns_caa.lng @@ -6,7 +6,7 @@ $wb['ca_hostname_note_txt'] = '(Sepearated list with commas - empty for all host $wb['ca_options_txt'] = 'Additional Options'; $wb['ca_options_note_txt'] = 'requested by the CA (Sepearated list with commas)'; $wb['ca_wildcard_txt'] = 'Use Wildcard SSL'; -$wb['ca_critical_txt'] = 'Strict check'; //For future use. At this time, CAAs do not recognize any other flag values as described in RFC 6844 +$wb['ca_critical_txt'] = 'Strict check'; $wb['ttl_txt'] = 'TTL'; $wb['active_txt'] = 'Active'; $wb['select_txt'] = 'Select Certifiction Authority'; diff --git a/interface/web/dns/lib/lang/es_dns_caa.lng b/interface/web/dns/lib/lang/es_dns_caa.lng index bf5b2ac8e..82de234d6 100644 --- a/interface/web/dns/lib/lang/es_dns_caa.lng +++ b/interface/web/dns/lib/lang/es_dns_caa.lng @@ -6,7 +6,7 @@ $wb['ca_hostname_note_txt'] = '(Sepearated list with commas - empty for all host $wb['ca_options_txt'] = 'Additional Options'; $wb['ca_options_note_txt'] = 'requested by the CA (Sepearated list with commas)'; $wb['ca_wildcard_txt'] = 'Use Wildcard SSL'; -$wb['ca_critical_txt'] = 'Strict check'; //For future use. At this time, CAAs do not recognize any other flag values as described in RFC 6844 +$wb['ca_critical_txt'] = 'Strict check'; $wb['ttl_txt'] = 'TTL'; $wb['active_txt'] = 'Active'; $wb['select_txt'] = 'Select Certifiction Authority'; diff --git a/interface/web/dns/lib/lang/fi_dns_caa.lng b/interface/web/dns/lib/lang/fi_dns_caa.lng index bf5b2ac8e..82de234d6 100644 --- a/interface/web/dns/lib/lang/fi_dns_caa.lng +++ b/interface/web/dns/lib/lang/fi_dns_caa.lng @@ -6,7 +6,7 @@ $wb['ca_hostname_note_txt'] = '(Sepearated list with commas - empty for all host $wb['ca_options_txt'] = 'Additional Options'; $wb['ca_options_note_txt'] = 'requested by the CA (Sepearated list with commas)'; $wb['ca_wildcard_txt'] = 'Use Wildcard SSL'; -$wb['ca_critical_txt'] = 'Strict check'; //For future use. At this time, CAAs do not recognize any other flag values as described in RFC 6844 +$wb['ca_critical_txt'] = 'Strict check'; $wb['ttl_txt'] = 'TTL'; $wb['active_txt'] = 'Active'; $wb['select_txt'] = 'Select Certifiction Authority'; diff --git a/interface/web/dns/lib/lang/fr_dns_caa.lng b/interface/web/dns/lib/lang/fr_dns_caa.lng index bf5b2ac8e..82de234d6 100644 --- a/interface/web/dns/lib/lang/fr_dns_caa.lng +++ b/interface/web/dns/lib/lang/fr_dns_caa.lng @@ -6,7 +6,7 @@ $wb['ca_hostname_note_txt'] = '(Sepearated list with commas - empty for all host $wb['ca_options_txt'] = 'Additional Options'; $wb['ca_options_note_txt'] = 'requested by the CA (Sepearated list with commas)'; $wb['ca_wildcard_txt'] = 'Use Wildcard SSL'; -$wb['ca_critical_txt'] = 'Strict check'; //For future use. At this time, CAAs do not recognize any other flag values as described in RFC 6844 +$wb['ca_critical_txt'] = 'Strict check'; $wb['ttl_txt'] = 'TTL'; $wb['active_txt'] = 'Active'; $wb['select_txt'] = 'Select Certifiction Authority'; diff --git a/interface/web/dns/lib/lang/hr_dns_caa.lng b/interface/web/dns/lib/lang/hr_dns_caa.lng index bf5b2ac8e..82de234d6 100644 --- a/interface/web/dns/lib/lang/hr_dns_caa.lng +++ b/interface/web/dns/lib/lang/hr_dns_caa.lng @@ -6,7 +6,7 @@ $wb['ca_hostname_note_txt'] = '(Sepearated list with commas - empty for all host $wb['ca_options_txt'] = 'Additional Options'; $wb['ca_options_note_txt'] = 'requested by the CA (Sepearated list with commas)'; $wb['ca_wildcard_txt'] = 'Use Wildcard SSL'; -$wb['ca_critical_txt'] = 'Strict check'; //For future use. At this time, CAAs do not recognize any other flag values as described in RFC 6844 +$wb['ca_critical_txt'] = 'Strict check'; $wb['ttl_txt'] = 'TTL'; $wb['active_txt'] = 'Active'; $wb['select_txt'] = 'Select Certifiction Authority'; diff --git a/interface/web/dns/lib/lang/hu_dns_caa.lng b/interface/web/dns/lib/lang/hu_dns_caa.lng index bf5b2ac8e..82de234d6 100644 --- a/interface/web/dns/lib/lang/hu_dns_caa.lng +++ b/interface/web/dns/lib/lang/hu_dns_caa.lng @@ -6,7 +6,7 @@ $wb['ca_hostname_note_txt'] = '(Sepearated list with commas - empty for all host $wb['ca_options_txt'] = 'Additional Options'; $wb['ca_options_note_txt'] = 'requested by the CA (Sepearated list with commas)'; $wb['ca_wildcard_txt'] = 'Use Wildcard SSL'; -$wb['ca_critical_txt'] = 'Strict check'; //For future use. At this time, CAAs do not recognize any other flag values as described in RFC 6844 +$wb['ca_critical_txt'] = 'Strict check'; $wb['ttl_txt'] = 'TTL'; $wb['active_txt'] = 'Active'; $wb['select_txt'] = 'Select Certifiction Authority'; diff --git a/interface/web/dns/lib/lang/id_dns_caa.lng b/interface/web/dns/lib/lang/id_dns_caa.lng index bf5b2ac8e..82de234d6 100644 --- a/interface/web/dns/lib/lang/id_dns_caa.lng +++ b/interface/web/dns/lib/lang/id_dns_caa.lng @@ -6,7 +6,7 @@ $wb['ca_hostname_note_txt'] = '(Sepearated list with commas - empty for all host $wb['ca_options_txt'] = 'Additional Options'; $wb['ca_options_note_txt'] = 'requested by the CA (Sepearated list with commas)'; $wb['ca_wildcard_txt'] = 'Use Wildcard SSL'; -$wb['ca_critical_txt'] = 'Strict check'; //For future use. At this time, CAAs do not recognize any other flag values as described in RFC 6844 +$wb['ca_critical_txt'] = 'Strict check'; $wb['ttl_txt'] = 'TTL'; $wb['active_txt'] = 'Active'; $wb['select_txt'] = 'Select Certifiction Authority'; diff --git a/interface/web/dns/lib/lang/it_dns_caa.lng b/interface/web/dns/lib/lang/it_dns_caa.lng index bf5b2ac8e..82de234d6 100644 --- a/interface/web/dns/lib/lang/it_dns_caa.lng +++ b/interface/web/dns/lib/lang/it_dns_caa.lng @@ -6,7 +6,7 @@ $wb['ca_hostname_note_txt'] = '(Sepearated list with commas - empty for all host $wb['ca_options_txt'] = 'Additional Options'; $wb['ca_options_note_txt'] = 'requested by the CA (Sepearated list with commas)'; $wb['ca_wildcard_txt'] = 'Use Wildcard SSL'; -$wb['ca_critical_txt'] = 'Strict check'; //For future use. At this time, CAAs do not recognize any other flag values as described in RFC 6844 +$wb['ca_critical_txt'] = 'Strict check'; $wb['ttl_txt'] = 'TTL'; $wb['active_txt'] = 'Active'; $wb['select_txt'] = 'Select Certifiction Authority'; diff --git a/interface/web/dns/lib/lang/ja_dns_caa.lng b/interface/web/dns/lib/lang/ja_dns_caa.lng index bf5b2ac8e..82de234d6 100644 --- a/interface/web/dns/lib/lang/ja_dns_caa.lng +++ b/interface/web/dns/lib/lang/ja_dns_caa.lng @@ -6,7 +6,7 @@ $wb['ca_hostname_note_txt'] = '(Sepearated list with commas - empty for all host $wb['ca_options_txt'] = 'Additional Options'; $wb['ca_options_note_txt'] = 'requested by the CA (Sepearated list with commas)'; $wb['ca_wildcard_txt'] = 'Use Wildcard SSL'; -$wb['ca_critical_txt'] = 'Strict check'; //For future use. At this time, CAAs do not recognize any other flag values as described in RFC 6844 +$wb['ca_critical_txt'] = 'Strict check'; $wb['ttl_txt'] = 'TTL'; $wb['active_txt'] = 'Active'; $wb['select_txt'] = 'Select Certifiction Authority'; diff --git a/interface/web/dns/lib/lang/nl_dns_caa.lng b/interface/web/dns/lib/lang/nl_dns_caa.lng index bf5b2ac8e..82de234d6 100644 --- a/interface/web/dns/lib/lang/nl_dns_caa.lng +++ b/interface/web/dns/lib/lang/nl_dns_caa.lng @@ -6,7 +6,7 @@ $wb['ca_hostname_note_txt'] = '(Sepearated list with commas - empty for all host $wb['ca_options_txt'] = 'Additional Options'; $wb['ca_options_note_txt'] = 'requested by the CA (Sepearated list with commas)'; $wb['ca_wildcard_txt'] = 'Use Wildcard SSL'; -$wb['ca_critical_txt'] = 'Strict check'; //For future use. At this time, CAAs do not recognize any other flag values as described in RFC 6844 +$wb['ca_critical_txt'] = 'Strict check'; $wb['ttl_txt'] = 'TTL'; $wb['active_txt'] = 'Active'; $wb['select_txt'] = 'Select Certifiction Authority'; diff --git a/interface/web/dns/lib/lang/pl_dns_caa.lng b/interface/web/dns/lib/lang/pl_dns_caa.lng index bf5b2ac8e..82de234d6 100644 --- a/interface/web/dns/lib/lang/pl_dns_caa.lng +++ b/interface/web/dns/lib/lang/pl_dns_caa.lng @@ -6,7 +6,7 @@ $wb['ca_hostname_note_txt'] = '(Sepearated list with commas - empty for all host $wb['ca_options_txt'] = 'Additional Options'; $wb['ca_options_note_txt'] = 'requested by the CA (Sepearated list with commas)'; $wb['ca_wildcard_txt'] = 'Use Wildcard SSL'; -$wb['ca_critical_txt'] = 'Strict check'; //For future use. At this time, CAAs do not recognize any other flag values as described in RFC 6844 +$wb['ca_critical_txt'] = 'Strict check'; $wb['ttl_txt'] = 'TTL'; $wb['active_txt'] = 'Active'; $wb['select_txt'] = 'Select Certifiction Authority'; diff --git a/interface/web/dns/lib/lang/pt_dns_caa.lng b/interface/web/dns/lib/lang/pt_dns_caa.lng index bf5b2ac8e..82de234d6 100644 --- a/interface/web/dns/lib/lang/pt_dns_caa.lng +++ b/interface/web/dns/lib/lang/pt_dns_caa.lng @@ -6,7 +6,7 @@ $wb['ca_hostname_note_txt'] = '(Sepearated list with commas - empty for all host $wb['ca_options_txt'] = 'Additional Options'; $wb['ca_options_note_txt'] = 'requested by the CA (Sepearated list with commas)'; $wb['ca_wildcard_txt'] = 'Use Wildcard SSL'; -$wb['ca_critical_txt'] = 'Strict check'; //For future use. At this time, CAAs do not recognize any other flag values as described in RFC 6844 +$wb['ca_critical_txt'] = 'Strict check'; $wb['ttl_txt'] = 'TTL'; $wb['active_txt'] = 'Active'; $wb['select_txt'] = 'Select Certifiction Authority'; diff --git a/interface/web/dns/lib/lang/ro_dns_caa.lng b/interface/web/dns/lib/lang/ro_dns_caa.lng index bf5b2ac8e..82de234d6 100644 --- a/interface/web/dns/lib/lang/ro_dns_caa.lng +++ b/interface/web/dns/lib/lang/ro_dns_caa.lng @@ -6,7 +6,7 @@ $wb['ca_hostname_note_txt'] = '(Sepearated list with commas - empty for all host $wb['ca_options_txt'] = 'Additional Options'; $wb['ca_options_note_txt'] = 'requested by the CA (Sepearated list with commas)'; $wb['ca_wildcard_txt'] = 'Use Wildcard SSL'; -$wb['ca_critical_txt'] = 'Strict check'; //For future use. At this time, CAAs do not recognize any other flag values as described in RFC 6844 +$wb['ca_critical_txt'] = 'Strict check'; $wb['ttl_txt'] = 'TTL'; $wb['active_txt'] = 'Active'; $wb['select_txt'] = 'Select Certifiction Authority'; diff --git a/interface/web/dns/lib/lang/ru_dns_caa.lng b/interface/web/dns/lib/lang/ru_dns_caa.lng index bf5b2ac8e..82de234d6 100644 --- a/interface/web/dns/lib/lang/ru_dns_caa.lng +++ b/interface/web/dns/lib/lang/ru_dns_caa.lng @@ -6,7 +6,7 @@ $wb['ca_hostname_note_txt'] = '(Sepearated list with commas - empty for all host $wb['ca_options_txt'] = 'Additional Options'; $wb['ca_options_note_txt'] = 'requested by the CA (Sepearated list with commas)'; $wb['ca_wildcard_txt'] = 'Use Wildcard SSL'; -$wb['ca_critical_txt'] = 'Strict check'; //For future use. At this time, CAAs do not recognize any other flag values as described in RFC 6844 +$wb['ca_critical_txt'] = 'Strict check'; $wb['ttl_txt'] = 'TTL'; $wb['active_txt'] = 'Active'; $wb['select_txt'] = 'Select Certifiction Authority'; diff --git a/interface/web/dns/lib/lang/ru_dns_hinfo.lng b/interface/web/dns/lib/lang/ru_dns_hinfo.lng index 830576fdf..363ed0eef 100644 --- a/interface/web/dns/lib/lang/ru_dns_hinfo.lng +++ b/interface/web/dns/lib/lang/ru_dns_hinfo.lng @@ -11,6 +11,6 @@ $wb['no_zone_perm'] = 'У Вас нет прав добавлять эту за $wb['name_error_empty'] = 'Имя пустое.'; $wb['name_error_regex'] = 'Имя узла имеет неправильный формат.'; $wb['data_error_empty'] = 'Информация об узле отсутсвует'; -$wb['data_error_regex'] = 'Поле \"Информация о хосте\" имеет неправильный формат'; +$wb['data_error_regex'] = 'Поле \\"Информация о хосте\\" имеет неправильный формат'; $wb['ttl_range_error'] = 'Мин. время TTL 60 секунд.'; ?> diff --git a/interface/web/dns/lib/lang/se_dns_caa.lng b/interface/web/dns/lib/lang/se_dns_caa.lng index bf5b2ac8e..82de234d6 100644 --- a/interface/web/dns/lib/lang/se_dns_caa.lng +++ b/interface/web/dns/lib/lang/se_dns_caa.lng @@ -6,7 +6,7 @@ $wb['ca_hostname_note_txt'] = '(Sepearated list with commas - empty for all host $wb['ca_options_txt'] = 'Additional Options'; $wb['ca_options_note_txt'] = 'requested by the CA (Sepearated list with commas)'; $wb['ca_wildcard_txt'] = 'Use Wildcard SSL'; -$wb['ca_critical_txt'] = 'Strict check'; //For future use. At this time, CAAs do not recognize any other flag values as described in RFC 6844 +$wb['ca_critical_txt'] = 'Strict check'; $wb['ttl_txt'] = 'TTL'; $wb['active_txt'] = 'Active'; $wb['select_txt'] = 'Select Certifiction Authority'; diff --git a/interface/web/dns/lib/lang/sk_dns_caa.lng b/interface/web/dns/lib/lang/sk_dns_caa.lng index bf5b2ac8e..82de234d6 100644 --- a/interface/web/dns/lib/lang/sk_dns_caa.lng +++ b/interface/web/dns/lib/lang/sk_dns_caa.lng @@ -6,7 +6,7 @@ $wb['ca_hostname_note_txt'] = '(Sepearated list with commas - empty for all host $wb['ca_options_txt'] = 'Additional Options'; $wb['ca_options_note_txt'] = 'requested by the CA (Sepearated list with commas)'; $wb['ca_wildcard_txt'] = 'Use Wildcard SSL'; -$wb['ca_critical_txt'] = 'Strict check'; //For future use. At this time, CAAs do not recognize any other flag values as described in RFC 6844 +$wb['ca_critical_txt'] = 'Strict check'; $wb['ttl_txt'] = 'TTL'; $wb['active_txt'] = 'Active'; $wb['select_txt'] = 'Select Certifiction Authority'; diff --git a/interface/web/dns/lib/lang/tr_dns_caa.lng b/interface/web/dns/lib/lang/tr_dns_caa.lng index bf5b2ac8e..82de234d6 100644 --- a/interface/web/dns/lib/lang/tr_dns_caa.lng +++ b/interface/web/dns/lib/lang/tr_dns_caa.lng @@ -6,7 +6,7 @@ $wb['ca_hostname_note_txt'] = '(Sepearated list with commas - empty for all host $wb['ca_options_txt'] = 'Additional Options'; $wb['ca_options_note_txt'] = 'requested by the CA (Sepearated list with commas)'; $wb['ca_wildcard_txt'] = 'Use Wildcard SSL'; -$wb['ca_critical_txt'] = 'Strict check'; //For future use. At this time, CAAs do not recognize any other flag values as described in RFC 6844 +$wb['ca_critical_txt'] = 'Strict check'; $wb['ttl_txt'] = 'TTL'; $wb['active_txt'] = 'Active'; $wb['select_txt'] = 'Select Certifiction Authority'; diff --git a/interface/web/help/lib/lang/br_support_message.lng b/interface/web/help/lib/lang/br_support_message.lng index 83097915b..19ae309a1 100644 --- a/interface/web/help/lib/lang/br_support_message.lng +++ b/interface/web/help/lib/lang/br_support_message.lng @@ -12,5 +12,5 @@ $wb['answer_to_support_request_txt'] = 'Você tem uma nova resposta para requisi $wb['answer_to_support_request_sent_txt'] = 'Sua resposta para requisição de suporte foi enviada. Por favor, não responda esse e-mail.'; $wb['support_request_sent_txt'] = 'Sua requisição de suporte foi enviada. Por favor não responda este e-mail.'; $wb['recipient_or_sender_email_address_not_valid_txt'] = 'A mensagem não foi enviada porque o e-mail do destinatário e/ou remetente não é válido.'; -$wb['subject_is_empty'] = 'Não é permitido o campo \"Assunto\" em branco.'; +$wb['subject_is_empty'] = 'Não é permitido o campo \\"Assunto\\" em branco.'; ?> diff --git a/interface/web/login/lib/lang/br_login_as.lng b/interface/web/login/lib/lang/br_login_as.lng index 4c02c963c..5d9fb269b 100644 --- a/interface/web/login/lib/lang/br_login_as.lng +++ b/interface/web/login/lib/lang/br_login_as.lng @@ -1,6 +1,6 @@ diff --git a/interface/web/mail/lib/lang/br_mail_user.lng b/interface/web/mail/lib/lang/br_mail_user.lng index a78656627..f91d40f62 100644 --- a/interface/web/mail/lib/lang/br_mail_user.lng +++ b/interface/web/mail/lib/lang/br_mail_user.lng @@ -35,7 +35,7 @@ $wb['name_txt'] = 'Nome real'; $wb['name_optional_txt'] = '(Opcional)'; $wb['autoresponder_active'] = 'Ativar autoresposta'; $wb['cc_txt'] = 'Enviar cópia para'; -$wb['cc_error_isemail'] = 'O campo \"Enviar cópia para\" deve conter um endereço de e-mail válido'; +$wb['cc_error_isemail'] = 'O campo \\"Enviar cópia para\\" deve conter um endereço de e-mail válido'; $wb['domain_txt'] = 'Domínio'; $wb['now_txt'] = 'Agora'; $wb['login_error_unique'] = 'O acesso já está em uso.'; @@ -48,7 +48,7 @@ $wb['generate_password_txt'] = 'Gerar senha'; $wb['repeat_password_txt'] = 'Repetir senha'; $wb['password_mismatch_txt'] = 'A senhas não coincidem.'; $wb['password_match_txt'] = 'A senhas coincidem.'; -$wb['email_error_isascii'] = 'Por favor não use caracteres \"unicode\" para a senha. Esta ação poderá causar problemas com seu cliente de e-mail (mua).'; +$wb['email_error_isascii'] = 'Por favor não use caracteres \\"unicode\\" para a senha. Esta ação poderá causar problemas com seu cliente de e-mail (mua).'; $wb['cc_note_txt'] = '(Múltiplos e-mails separados por vírgulas)'; $wb['disablesmtp_txt'] = 'Desabilitar smtp (envio)'; $wb['autoresponder_start_date_is_required'] = 'Data de início deve ser configurada quando \'autoresposta\' é habilitada.'; diff --git a/interface/web/mail/lib/lang/ru_mail_get.lng b/interface/web/mail/lib/lang/ru_mail_get.lng index 0ce613cd0..b3f2f0b6b 100644 --- a/interface/web/mail/lib/lang/ru_mail_get.lng +++ b/interface/web/mail/lib/lang/ru_mail_get.lng @@ -14,6 +14,6 @@ $wb['source_password_error_isempty'] = 'Пустой пароль.'; $wb['destination_error_isemail'] = 'Не выбран получатель или запись некорректна.'; $wb['source_server_error_regex'] = 'Некорректное доменное имя для сервера POP3/IMAP.'; $wb['source_read_all_txt'] = 'Получать все сообщения электронной почты (включая прочитанные письма)'; -$wb['error_delete_read_all_combination'] = 'Недопустимая комбинация параметров. Вы не можете использовать \"Удалить письма после получения\" = НЕТ вместе с \"Получить все письма\" = ДА'; +$wb['error_delete_read_all_combination'] = 'Недопустимая комбинация параметров. Вы не можете использовать \\"Удалить письма после получения\\" = НЕТ вместе с \\"Получить все письма\\" = ДА'; $wb['source_delete_note_txt'] = 'Пожалуйста, прежде чем активировать этот параметр, убедитесь в том, что сборщик почты работает.'; ?> diff --git a/interface/web/mail/lib/lang/ru_mail_user_filter.lng b/interface/web/mail/lib/lang/ru_mail_user_filter.lng index ecc2d25b9..c8306f983 100644 --- a/interface/web/mail/lib/lang/ru_mail_user_filter.lng +++ b/interface/web/mail/lib/lang/ru_mail_user_filter.lng @@ -6,7 +6,7 @@ $wb['active_txt'] = 'Активно'; $wb['rulename_error_empty'] = 'Имя пустое.'; $wb['searchterm_is_empty'] = 'Поле поиска пустое.'; $wb['source_txt'] = 'Источник'; -$wb['target_error_regex'] = 'Назначение может содержать только следующие символы: \"a-z\", \"0-9\", \"-\", \".\", \"_\" и {пробел}'; +$wb['target_error_regex'] = 'Назначение может содержать только следующие символы: \\"a-z\\", \\"0-9\\", \\"-\\", \\".\\", \\"_\\" и {пробел}'; $wb['limit_mailfilter_txt'] = 'Максимальное число почтовых фильтров достигнуто.'; $wb['subject_txt'] = 'Тема'; $wb['from_txt'] = 'От'; diff --git a/interface/web/mailuser/lib/lang/ru_mail_user_filter.lng b/interface/web/mailuser/lib/lang/ru_mail_user_filter.lng index f10dd4ddb..d834e4057 100644 --- a/interface/web/mailuser/lib/lang/ru_mail_user_filter.lng +++ b/interface/web/mailuser/lib/lang/ru_mail_user_filter.lng @@ -6,7 +6,7 @@ $wb['active_txt'] = 'Активно'; $wb['rulename_error_empty'] = 'Имя пустое.'; $wb['searchterm_is_empty'] = 'Поле поиска пустое.'; $wb['source_txt'] = 'Источник'; -$wb['target_error_regex'] = 'Назначение может содержать только следующие символы: \"a-z\", \"0-9\", \"-\", \".\", \"_\" и {пробел}'; +$wb['target_error_regex'] = 'Назначение может содержать только следующие символы: \\"a-z\\", \\"0-9\\", \\"-\\", \\".\\", \\"_\\" и {пробел}'; $wb['limit_mailfilter_txt'] = 'Максимальное число почтовых фильтров достигнуто.'; $wb['subject_txt'] = 'Тема'; $wb['from_txt'] = 'От'; diff --git a/interface/web/monitor/lib/lang/ar.lng b/interface/web/monitor/lib/lang/ar.lng index e00287a8e..9d54ea1f5 100644 --- a/interface/web/monitor/lib/lang/ar.lng +++ b/interface/web/monitor/lib/lang/ar.lng @@ -161,4 +161,5 @@ $wb['monitor_database_domain_txt'] = 'Domain'; $wb['Show MongoDB-Log'] = 'Show MongoDB-Log'; $wb['monitor_services_mongodb_txt'] = 'MongoDB-Server:'; $wb['monitor_title_mongodb_txt'] = 'MongoDB Log'; +$wb['Show Data Log History'] = 'Show Data Log History'; ?> diff --git a/interface/web/monitor/lib/lang/ar_dataloghistory_list.lng b/interface/web/monitor/lib/lang/ar_dataloghistory_list.lng new file mode 100644 index 000000000..9f9afd634 --- /dev/null +++ b/interface/web/monitor/lib/lang/ar_dataloghistory_list.lng @@ -0,0 +1,8 @@ + diff --git a/interface/web/monitor/lib/lang/ar_dataloghistory_undo.lng b/interface/web/monitor/lib/lang/ar_dataloghistory_undo.lng new file mode 100644 index 000000000..0e040a3e7 --- /dev/null +++ b/interface/web/monitor/lib/lang/ar_dataloghistory_undo.lng @@ -0,0 +1,7 @@ + diff --git a/interface/web/monitor/lib/lang/ar_dataloghistory_view.lng b/interface/web/monitor/lib/lang/ar_dataloghistory_view.lng new file mode 100644 index 000000000..df9ddd286 --- /dev/null +++ b/interface/web/monitor/lib/lang/ar_dataloghistory_view.lng @@ -0,0 +1,26 @@ + diff --git a/interface/web/monitor/lib/lang/bg.lng b/interface/web/monitor/lib/lang/bg.lng index 0db4623d0..a8b7f491a 100644 --- a/interface/web/monitor/lib/lang/bg.lng +++ b/interface/web/monitor/lib/lang/bg.lng @@ -161,4 +161,5 @@ $wb['monitor_database_domain_txt'] = 'Domain'; $wb['Show MongoDB-Log'] = 'Show MongoDB-Log'; $wb['monitor_services_mongodb_txt'] = 'MongoDB-Server:'; $wb['monitor_title_mongodb_txt'] = 'MongoDB Log'; +$wb['Show Data Log History'] = 'Show Data Log History'; ?> diff --git a/interface/web/monitor/lib/lang/bg_dataloghistory_list.lng b/interface/web/monitor/lib/lang/bg_dataloghistory_list.lng new file mode 100644 index 000000000..9f9afd634 --- /dev/null +++ b/interface/web/monitor/lib/lang/bg_dataloghistory_list.lng @@ -0,0 +1,8 @@ + diff --git a/interface/web/monitor/lib/lang/bg_dataloghistory_undo.lng b/interface/web/monitor/lib/lang/bg_dataloghistory_undo.lng new file mode 100644 index 000000000..0e040a3e7 --- /dev/null +++ b/interface/web/monitor/lib/lang/bg_dataloghistory_undo.lng @@ -0,0 +1,7 @@ + diff --git a/interface/web/monitor/lib/lang/bg_dataloghistory_view.lng b/interface/web/monitor/lib/lang/bg_dataloghistory_view.lng new file mode 100644 index 000000000..df9ddd286 --- /dev/null +++ b/interface/web/monitor/lib/lang/bg_dataloghistory_view.lng @@ -0,0 +1,26 @@ + diff --git a/interface/web/monitor/lib/lang/br.lng b/interface/web/monitor/lib/lang/br.lng index 048fec64b..72325cc5b 100644 --- a/interface/web/monitor/lib/lang/br.lng +++ b/interface/web/monitor/lib/lang/br.lng @@ -161,4 +161,5 @@ $wb['monitor_database_domain_txt'] = 'Domínio'; $wb['Show MongoDB-Log'] = 'Exibir logs do MongoDB'; $wb['monitor_services_mongodb_txt'] = 'Servidor MongoDB:'; $wb['monitor_title_mongodb_txt'] = 'Logs do MongoDB'; +$wb['Show Data Log History'] = 'Show Data Log History'; ?> diff --git a/interface/web/monitor/lib/lang/br_dataloghistory_list.lng b/interface/web/monitor/lib/lang/br_dataloghistory_list.lng new file mode 100644 index 000000000..9f9afd634 --- /dev/null +++ b/interface/web/monitor/lib/lang/br_dataloghistory_list.lng @@ -0,0 +1,8 @@ + diff --git a/interface/web/monitor/lib/lang/br_dataloghistory_undo.lng b/interface/web/monitor/lib/lang/br_dataloghistory_undo.lng new file mode 100644 index 000000000..0e040a3e7 --- /dev/null +++ b/interface/web/monitor/lib/lang/br_dataloghistory_undo.lng @@ -0,0 +1,7 @@ + diff --git a/interface/web/monitor/lib/lang/br_dataloghistory_view.lng b/interface/web/monitor/lib/lang/br_dataloghistory_view.lng new file mode 100644 index 000000000..df9ddd286 --- /dev/null +++ b/interface/web/monitor/lib/lang/br_dataloghistory_view.lng @@ -0,0 +1,26 @@ + diff --git a/interface/web/monitor/lib/lang/ca.lng b/interface/web/monitor/lib/lang/ca.lng index 4575be2ff..b57b255a7 100644 --- a/interface/web/monitor/lib/lang/ca.lng +++ b/interface/web/monitor/lib/lang/ca.lng @@ -161,4 +161,5 @@ $wb['monitor_database_client_txt'] = 'Client'; $wb['monitor_database_domain_txt'] = 'Domain'; $wb['monitor_services_mongodb_txt'] = 'MongoDB-Server:'; $wb['monitor_title_mongodb_txt'] = 'MongoDB Log'; +$wb['Show Data Log History'] = 'Show Data Log History'; ?> diff --git a/interface/web/monitor/lib/lang/ca_dataloghistory_list.lng b/interface/web/monitor/lib/lang/ca_dataloghistory_list.lng new file mode 100644 index 000000000..9f9afd634 --- /dev/null +++ b/interface/web/monitor/lib/lang/ca_dataloghistory_list.lng @@ -0,0 +1,8 @@ + diff --git a/interface/web/monitor/lib/lang/ca_dataloghistory_undo.lng b/interface/web/monitor/lib/lang/ca_dataloghistory_undo.lng new file mode 100644 index 000000000..0e040a3e7 --- /dev/null +++ b/interface/web/monitor/lib/lang/ca_dataloghistory_undo.lng @@ -0,0 +1,7 @@ + diff --git a/interface/web/monitor/lib/lang/ca_dataloghistory_view.lng b/interface/web/monitor/lib/lang/ca_dataloghistory_view.lng new file mode 100644 index 000000000..df9ddd286 --- /dev/null +++ b/interface/web/monitor/lib/lang/ca_dataloghistory_view.lng @@ -0,0 +1,26 @@ + diff --git a/interface/web/monitor/lib/lang/cz.lng b/interface/web/monitor/lib/lang/cz.lng index dc3e3cb34..9e054aacf 100644 --- a/interface/web/monitor/lib/lang/cz.lng +++ b/interface/web/monitor/lib/lang/cz.lng @@ -161,4 +161,5 @@ $wb['monitor_database_client_txt'] = 'Klient'; $wb['monitor_database_domain_txt'] = 'Doména'; $wb['monitor_services_mongodb_txt'] = 'MongoDB-Server:'; $wb['monitor_title_mongodb_txt'] = 'MongoDB Log'; +$wb['Show Data Log History'] = 'Show Data Log History'; ?> diff --git a/interface/web/monitor/lib/lang/cz_dataloghistory_list.lng b/interface/web/monitor/lib/lang/cz_dataloghistory_list.lng new file mode 100644 index 000000000..9f9afd634 --- /dev/null +++ b/interface/web/monitor/lib/lang/cz_dataloghistory_list.lng @@ -0,0 +1,8 @@ + diff --git a/interface/web/monitor/lib/lang/cz_dataloghistory_undo.lng b/interface/web/monitor/lib/lang/cz_dataloghistory_undo.lng new file mode 100644 index 000000000..0e040a3e7 --- /dev/null +++ b/interface/web/monitor/lib/lang/cz_dataloghistory_undo.lng @@ -0,0 +1,7 @@ + diff --git a/interface/web/monitor/lib/lang/cz_dataloghistory_view.lng b/interface/web/monitor/lib/lang/cz_dataloghistory_view.lng new file mode 100644 index 000000000..df9ddd286 --- /dev/null +++ b/interface/web/monitor/lib/lang/cz_dataloghistory_view.lng @@ -0,0 +1,26 @@ + diff --git a/interface/web/monitor/lib/lang/dk.lng b/interface/web/monitor/lib/lang/dk.lng index dc43c1306..4c7bfab1e 100644 --- a/interface/web/monitor/lib/lang/dk.lng +++ b/interface/web/monitor/lib/lang/dk.lng @@ -161,4 +161,5 @@ $wb['monitor_database_client_txt'] = 'Client'; $wb['monitor_database_domain_txt'] = 'Domain'; $wb['monitor_services_mongodb_txt'] = 'MongoDB-Server:'; $wb['monitor_title_mongodb_txt'] = 'MongoDB Log'; +$wb['Show Data Log History'] = 'Show Data Log History'; ?> diff --git a/interface/web/monitor/lib/lang/dk_dataloghistory_list.lng b/interface/web/monitor/lib/lang/dk_dataloghistory_list.lng new file mode 100644 index 000000000..9f9afd634 --- /dev/null +++ b/interface/web/monitor/lib/lang/dk_dataloghistory_list.lng @@ -0,0 +1,8 @@ + diff --git a/interface/web/monitor/lib/lang/dk_dataloghistory_undo.lng b/interface/web/monitor/lib/lang/dk_dataloghistory_undo.lng new file mode 100644 index 000000000..0e040a3e7 --- /dev/null +++ b/interface/web/monitor/lib/lang/dk_dataloghistory_undo.lng @@ -0,0 +1,7 @@ + diff --git a/interface/web/monitor/lib/lang/dk_dataloghistory_view.lng b/interface/web/monitor/lib/lang/dk_dataloghistory_view.lng new file mode 100644 index 000000000..df9ddd286 --- /dev/null +++ b/interface/web/monitor/lib/lang/dk_dataloghistory_view.lng @@ -0,0 +1,26 @@ + diff --git a/interface/web/monitor/lib/lang/el.lng b/interface/web/monitor/lib/lang/el.lng index 414642e2e..245c80c66 100644 --- a/interface/web/monitor/lib/lang/el.lng +++ b/interface/web/monitor/lib/lang/el.lng @@ -161,4 +161,5 @@ $wb['monitor_database_client_txt'] = 'Client'; $wb['monitor_database_domain_txt'] = 'Domain'; $wb['monitor_services_mongodb_txt'] = 'MongoDB-Server:'; $wb['monitor_title_mongodb_txt'] = 'MongoDB Log'; +$wb['Show Data Log History'] = 'Show Data Log History'; ?> diff --git a/interface/web/monitor/lib/lang/el_dataloghistory_list.lng b/interface/web/monitor/lib/lang/el_dataloghistory_list.lng new file mode 100644 index 000000000..9f9afd634 --- /dev/null +++ b/interface/web/monitor/lib/lang/el_dataloghistory_list.lng @@ -0,0 +1,8 @@ + diff --git a/interface/web/monitor/lib/lang/el_dataloghistory_undo.lng b/interface/web/monitor/lib/lang/el_dataloghistory_undo.lng new file mode 100644 index 000000000..0e040a3e7 --- /dev/null +++ b/interface/web/monitor/lib/lang/el_dataloghistory_undo.lng @@ -0,0 +1,7 @@ + diff --git a/interface/web/monitor/lib/lang/el_dataloghistory_view.lng b/interface/web/monitor/lib/lang/el_dataloghistory_view.lng new file mode 100644 index 000000000..df9ddd286 --- /dev/null +++ b/interface/web/monitor/lib/lang/el_dataloghistory_view.lng @@ -0,0 +1,26 @@ + diff --git a/interface/web/monitor/lib/lang/es.lng b/interface/web/monitor/lib/lang/es.lng index 8cc87b480..f4acb3c45 100755 --- a/interface/web/monitor/lib/lang/es.lng +++ b/interface/web/monitor/lib/lang/es.lng @@ -161,4 +161,5 @@ $wb['System load 15 minutes'] = 'Carga del sistema hace 15 minutos'; $wb['System load 5 minutes'] = 'Carga del sistema hace 5 minutos'; $wb['System State (All Servers)'] = 'Estado de los sistemas'; $wb['Users online'] = 'Usuarios en línea'; +$wb['Show Data Log History'] = 'Show Data Log History'; ?> diff --git a/interface/web/monitor/lib/lang/es_dataloghistory_list.lng b/interface/web/monitor/lib/lang/es_dataloghistory_list.lng new file mode 100644 index 000000000..9f9afd634 --- /dev/null +++ b/interface/web/monitor/lib/lang/es_dataloghistory_list.lng @@ -0,0 +1,8 @@ + diff --git a/interface/web/monitor/lib/lang/es_dataloghistory_undo.lng b/interface/web/monitor/lib/lang/es_dataloghistory_undo.lng new file mode 100644 index 000000000..0e040a3e7 --- /dev/null +++ b/interface/web/monitor/lib/lang/es_dataloghistory_undo.lng @@ -0,0 +1,7 @@ + diff --git a/interface/web/monitor/lib/lang/es_dataloghistory_view.lng b/interface/web/monitor/lib/lang/es_dataloghistory_view.lng new file mode 100644 index 000000000..df9ddd286 --- /dev/null +++ b/interface/web/monitor/lib/lang/es_dataloghistory_view.lng @@ -0,0 +1,26 @@ + diff --git a/interface/web/monitor/lib/lang/fi.lng b/interface/web/monitor/lib/lang/fi.lng index 44143f3d2..911aae9bd 100755 --- a/interface/web/monitor/lib/lang/fi.lng +++ b/interface/web/monitor/lib/lang/fi.lng @@ -161,4 +161,5 @@ $wb['monitor_database_domain_txt'] = 'Domain'; $wb['Show MongoDB-Log'] = 'Show MongoDB-Log'; $wb['monitor_services_mongodb_txt'] = 'MongoDB-Server:'; $wb['monitor_title_mongodb_txt'] = 'MongoDB Log'; +$wb['Show Data Log History'] = 'Show Data Log History'; ?> diff --git a/interface/web/monitor/lib/lang/fi_dataloghistory_list.lng b/interface/web/monitor/lib/lang/fi_dataloghistory_list.lng new file mode 100644 index 000000000..9f9afd634 --- /dev/null +++ b/interface/web/monitor/lib/lang/fi_dataloghistory_list.lng @@ -0,0 +1,8 @@ + diff --git a/interface/web/monitor/lib/lang/fi_dataloghistory_undo.lng b/interface/web/monitor/lib/lang/fi_dataloghistory_undo.lng new file mode 100644 index 000000000..0e040a3e7 --- /dev/null +++ b/interface/web/monitor/lib/lang/fi_dataloghistory_undo.lng @@ -0,0 +1,7 @@ + diff --git a/interface/web/monitor/lib/lang/fi_dataloghistory_view.lng b/interface/web/monitor/lib/lang/fi_dataloghistory_view.lng new file mode 100644 index 000000000..df9ddd286 --- /dev/null +++ b/interface/web/monitor/lib/lang/fi_dataloghistory_view.lng @@ -0,0 +1,26 @@ + diff --git a/interface/web/monitor/lib/lang/fr.lng b/interface/web/monitor/lib/lang/fr.lng index 9fb2ab5e8..c08fe7494 100644 --- a/interface/web/monitor/lib/lang/fr.lng +++ b/interface/web/monitor/lib/lang/fr.lng @@ -161,4 +161,5 @@ $wb['monitor_database_client_txt'] = 'Client'; $wb['monitor_database_domain_txt'] = 'Domain'; $wb['monitor_services_mongodb_txt'] = 'MongoDB-Server:'; $wb['monitor_title_mongodb_txt'] = 'MongoDB Log'; +$wb['Show Data Log History'] = 'Show Data Log History'; ?> diff --git a/interface/web/monitor/lib/lang/fr_dataloghistory_list.lng b/interface/web/monitor/lib/lang/fr_dataloghistory_list.lng new file mode 100644 index 000000000..9f9afd634 --- /dev/null +++ b/interface/web/monitor/lib/lang/fr_dataloghistory_list.lng @@ -0,0 +1,8 @@ + diff --git a/interface/web/monitor/lib/lang/fr_dataloghistory_undo.lng b/interface/web/monitor/lib/lang/fr_dataloghistory_undo.lng new file mode 100644 index 000000000..0e040a3e7 --- /dev/null +++ b/interface/web/monitor/lib/lang/fr_dataloghistory_undo.lng @@ -0,0 +1,7 @@ + diff --git a/interface/web/monitor/lib/lang/fr_dataloghistory_view.lng b/interface/web/monitor/lib/lang/fr_dataloghistory_view.lng new file mode 100644 index 000000000..df9ddd286 --- /dev/null +++ b/interface/web/monitor/lib/lang/fr_dataloghistory_view.lng @@ -0,0 +1,26 @@ + diff --git a/interface/web/monitor/lib/lang/hr.lng b/interface/web/monitor/lib/lang/hr.lng index d87856810..17899ff3f 100644 --- a/interface/web/monitor/lib/lang/hr.lng +++ b/interface/web/monitor/lib/lang/hr.lng @@ -161,4 +161,5 @@ $wb['monitor_database_client_txt'] = 'Client'; $wb['monitor_database_domain_txt'] = 'Domain'; $wb['monitor_services_mongodb_txt'] = 'MongoDB-Server:'; $wb['monitor_title_mongodb_txt'] = 'MongoDB Log'; +$wb['Show Data Log History'] = 'Show Data Log History'; ?> diff --git a/interface/web/monitor/lib/lang/hr_dataloghistory_list.lng b/interface/web/monitor/lib/lang/hr_dataloghistory_list.lng new file mode 100644 index 000000000..9f9afd634 --- /dev/null +++ b/interface/web/monitor/lib/lang/hr_dataloghistory_list.lng @@ -0,0 +1,8 @@ + diff --git a/interface/web/monitor/lib/lang/hr_dataloghistory_undo.lng b/interface/web/monitor/lib/lang/hr_dataloghistory_undo.lng new file mode 100644 index 000000000..0e040a3e7 --- /dev/null +++ b/interface/web/monitor/lib/lang/hr_dataloghistory_undo.lng @@ -0,0 +1,7 @@ + diff --git a/interface/web/monitor/lib/lang/hr_dataloghistory_view.lng b/interface/web/monitor/lib/lang/hr_dataloghistory_view.lng new file mode 100644 index 000000000..df9ddd286 --- /dev/null +++ b/interface/web/monitor/lib/lang/hr_dataloghistory_view.lng @@ -0,0 +1,26 @@ + diff --git a/interface/web/monitor/lib/lang/hu.lng b/interface/web/monitor/lib/lang/hu.lng index 85fda9790..9a5c41654 100644 --- a/interface/web/monitor/lib/lang/hu.lng +++ b/interface/web/monitor/lib/lang/hu.lng @@ -161,4 +161,5 @@ $wb['monitor_database_domain_txt'] = 'Domain'; $wb['Show MongoDB-Log'] = 'Show MongoDB-Log'; $wb['monitor_services_mongodb_txt'] = 'MongoDB-Server:'; $wb['monitor_title_mongodb_txt'] = 'MongoDB Log'; +$wb['Show Data Log History'] = 'Show Data Log History'; ?> diff --git a/interface/web/monitor/lib/lang/hu_dataloghistory_list.lng b/interface/web/monitor/lib/lang/hu_dataloghistory_list.lng new file mode 100644 index 000000000..9f9afd634 --- /dev/null +++ b/interface/web/monitor/lib/lang/hu_dataloghistory_list.lng @@ -0,0 +1,8 @@ + diff --git a/interface/web/monitor/lib/lang/hu_dataloghistory_undo.lng b/interface/web/monitor/lib/lang/hu_dataloghistory_undo.lng new file mode 100644 index 000000000..0e040a3e7 --- /dev/null +++ b/interface/web/monitor/lib/lang/hu_dataloghistory_undo.lng @@ -0,0 +1,7 @@ + diff --git a/interface/web/monitor/lib/lang/hu_dataloghistory_view.lng b/interface/web/monitor/lib/lang/hu_dataloghistory_view.lng new file mode 100644 index 000000000..df9ddd286 --- /dev/null +++ b/interface/web/monitor/lib/lang/hu_dataloghistory_view.lng @@ -0,0 +1,26 @@ + diff --git a/interface/web/monitor/lib/lang/id.lng b/interface/web/monitor/lib/lang/id.lng index d77f14564..4cdbf5d8b 100644 --- a/interface/web/monitor/lib/lang/id.lng +++ b/interface/web/monitor/lib/lang/id.lng @@ -161,4 +161,5 @@ $wb['monitor_database_domain_txt'] = 'Domain'; $wb['Show MongoDB-Log'] = 'Show MongoDB-Log'; $wb['monitor_services_mongodb_txt'] = 'MongoDB-Server:'; $wb['monitor_title_mongodb_txt'] = 'MongoDB Log'; +$wb['Show Data Log History'] = 'Show Data Log History'; ?> diff --git a/interface/web/monitor/lib/lang/id_dataloghistory_list.lng b/interface/web/monitor/lib/lang/id_dataloghistory_list.lng new file mode 100644 index 000000000..9f9afd634 --- /dev/null +++ b/interface/web/monitor/lib/lang/id_dataloghistory_list.lng @@ -0,0 +1,8 @@ + diff --git a/interface/web/monitor/lib/lang/id_dataloghistory_undo.lng b/interface/web/monitor/lib/lang/id_dataloghistory_undo.lng new file mode 100644 index 000000000..0e040a3e7 --- /dev/null +++ b/interface/web/monitor/lib/lang/id_dataloghistory_undo.lng @@ -0,0 +1,7 @@ + diff --git a/interface/web/monitor/lib/lang/id_dataloghistory_view.lng b/interface/web/monitor/lib/lang/id_dataloghistory_view.lng new file mode 100644 index 000000000..df9ddd286 --- /dev/null +++ b/interface/web/monitor/lib/lang/id_dataloghistory_view.lng @@ -0,0 +1,26 @@ + diff --git a/interface/web/monitor/lib/lang/it.lng b/interface/web/monitor/lib/lang/it.lng index c7a682368..e6feadf01 100644 --- a/interface/web/monitor/lib/lang/it.lng +++ b/interface/web/monitor/lib/lang/it.lng @@ -161,4 +161,5 @@ $wb['monitor_database_client_txt'] = 'Client'; $wb['monitor_database_domain_txt'] = 'Domain'; $wb['monitor_services_mongodb_txt'] = 'MongoDB-Server:'; $wb['monitor_title_mongodb_txt'] = 'MongoDB Log'; +$wb['Show Data Log History'] = 'Show Data Log History'; ?> diff --git a/interface/web/monitor/lib/lang/it_dataloghistory_list.lng b/interface/web/monitor/lib/lang/it_dataloghistory_list.lng new file mode 100644 index 000000000..9f9afd634 --- /dev/null +++ b/interface/web/monitor/lib/lang/it_dataloghistory_list.lng @@ -0,0 +1,8 @@ + diff --git a/interface/web/monitor/lib/lang/it_dataloghistory_undo.lng b/interface/web/monitor/lib/lang/it_dataloghistory_undo.lng new file mode 100644 index 000000000..0e040a3e7 --- /dev/null +++ b/interface/web/monitor/lib/lang/it_dataloghistory_undo.lng @@ -0,0 +1,7 @@ + diff --git a/interface/web/monitor/lib/lang/it_dataloghistory_view.lng b/interface/web/monitor/lib/lang/it_dataloghistory_view.lng new file mode 100644 index 000000000..df9ddd286 --- /dev/null +++ b/interface/web/monitor/lib/lang/it_dataloghistory_view.lng @@ -0,0 +1,26 @@ + diff --git a/interface/web/monitor/lib/lang/ja.lng b/interface/web/monitor/lib/lang/ja.lng index bc2c7d2b5..cccd678cb 100644 --- a/interface/web/monitor/lib/lang/ja.lng +++ b/interface/web/monitor/lib/lang/ja.lng @@ -161,4 +161,5 @@ $wb['monitor_database_domain_txt'] = 'Domain'; $wb['Show MongoDB-Log'] = 'Show MongoDB-Log'; $wb['monitor_services_mongodb_txt'] = 'MongoDB-Server:'; $wb['monitor_title_mongodb_txt'] = 'MongoDB Log'; +$wb['Show Data Log History'] = 'Show Data Log History'; ?> diff --git a/interface/web/monitor/lib/lang/ja_dataloghistory_list.lng b/interface/web/monitor/lib/lang/ja_dataloghistory_list.lng new file mode 100644 index 000000000..9f9afd634 --- /dev/null +++ b/interface/web/monitor/lib/lang/ja_dataloghistory_list.lng @@ -0,0 +1,8 @@ + diff --git a/interface/web/monitor/lib/lang/ja_dataloghistory_undo.lng b/interface/web/monitor/lib/lang/ja_dataloghistory_undo.lng new file mode 100644 index 000000000..0e040a3e7 --- /dev/null +++ b/interface/web/monitor/lib/lang/ja_dataloghistory_undo.lng @@ -0,0 +1,7 @@ + diff --git a/interface/web/monitor/lib/lang/ja_dataloghistory_view.lng b/interface/web/monitor/lib/lang/ja_dataloghistory_view.lng new file mode 100644 index 000000000..df9ddd286 --- /dev/null +++ b/interface/web/monitor/lib/lang/ja_dataloghistory_view.lng @@ -0,0 +1,26 @@ + diff --git a/interface/web/monitor/lib/lang/nl.lng b/interface/web/monitor/lib/lang/nl.lng index 81caa02b7..a534b9afb 100644 --- a/interface/web/monitor/lib/lang/nl.lng +++ b/interface/web/monitor/lib/lang/nl.lng @@ -161,4 +161,5 @@ $wb['monitor_database_domain_txt'] = 'Domain'; $wb['Show MongoDB-Log'] = 'Show MongoDB-Log'; $wb['monitor_services_mongodb_txt'] = 'MongoDB-Server:'; $wb['monitor_title_mongodb_txt'] = 'MongoDB Log'; +$wb['Show Data Log History'] = 'Show Data Log History'; ?> diff --git a/interface/web/monitor/lib/lang/nl_dataloghistory_list.lng b/interface/web/monitor/lib/lang/nl_dataloghistory_list.lng new file mode 100644 index 000000000..9f9afd634 --- /dev/null +++ b/interface/web/monitor/lib/lang/nl_dataloghistory_list.lng @@ -0,0 +1,8 @@ + diff --git a/interface/web/monitor/lib/lang/nl_dataloghistory_undo.lng b/interface/web/monitor/lib/lang/nl_dataloghistory_undo.lng new file mode 100644 index 000000000..0e040a3e7 --- /dev/null +++ b/interface/web/monitor/lib/lang/nl_dataloghistory_undo.lng @@ -0,0 +1,7 @@ + diff --git a/interface/web/monitor/lib/lang/nl_dataloghistory_view.lng b/interface/web/monitor/lib/lang/nl_dataloghistory_view.lng new file mode 100644 index 000000000..df9ddd286 --- /dev/null +++ b/interface/web/monitor/lib/lang/nl_dataloghistory_view.lng @@ -0,0 +1,26 @@ + diff --git a/interface/web/monitor/lib/lang/pl.lng b/interface/web/monitor/lib/lang/pl.lng index 77d05e056..a8e1b3e53 100644 --- a/interface/web/monitor/lib/lang/pl.lng +++ b/interface/web/monitor/lib/lang/pl.lng @@ -161,4 +161,5 @@ $wb['monitor_database_domain_txt'] = 'Domain'; $wb['Show MongoDB-Log'] = 'Show MongoDB-Log'; $wb['monitor_services_mongodb_txt'] = 'MongoDB-Server:'; $wb['monitor_title_mongodb_txt'] = 'MongoDB Log'; +$wb['Show Data Log History'] = 'Show Data Log History'; ?> diff --git a/interface/web/monitor/lib/lang/pl_dataloghistory_list.lng b/interface/web/monitor/lib/lang/pl_dataloghistory_list.lng new file mode 100644 index 000000000..9f9afd634 --- /dev/null +++ b/interface/web/monitor/lib/lang/pl_dataloghistory_list.lng @@ -0,0 +1,8 @@ + diff --git a/interface/web/monitor/lib/lang/pl_dataloghistory_undo.lng b/interface/web/monitor/lib/lang/pl_dataloghistory_undo.lng new file mode 100644 index 000000000..0e040a3e7 --- /dev/null +++ b/interface/web/monitor/lib/lang/pl_dataloghistory_undo.lng @@ -0,0 +1,7 @@ + diff --git a/interface/web/monitor/lib/lang/pl_dataloghistory_view.lng b/interface/web/monitor/lib/lang/pl_dataloghistory_view.lng new file mode 100644 index 000000000..df9ddd286 --- /dev/null +++ b/interface/web/monitor/lib/lang/pl_dataloghistory_view.lng @@ -0,0 +1,26 @@ + diff --git a/interface/web/monitor/lib/lang/pt.lng b/interface/web/monitor/lib/lang/pt.lng index 2218ede89..7930febda 100644 --- a/interface/web/monitor/lib/lang/pt.lng +++ b/interface/web/monitor/lib/lang/pt.lng @@ -161,4 +161,5 @@ $wb['monitor_database_domain_txt'] = 'Domain'; $wb['Show MongoDB-Log'] = 'Show MongoDB-Log'; $wb['monitor_services_mongodb_txt'] = 'MongoDB-Server:'; $wb['monitor_title_mongodb_txt'] = 'MongoDB Log'; +$wb['Show Data Log History'] = 'Show Data Log History'; ?> diff --git a/interface/web/monitor/lib/lang/pt_dataloghistory_list.lng b/interface/web/monitor/lib/lang/pt_dataloghistory_list.lng new file mode 100644 index 000000000..9f9afd634 --- /dev/null +++ b/interface/web/monitor/lib/lang/pt_dataloghistory_list.lng @@ -0,0 +1,8 @@ + diff --git a/interface/web/monitor/lib/lang/pt_dataloghistory_undo.lng b/interface/web/monitor/lib/lang/pt_dataloghistory_undo.lng new file mode 100644 index 000000000..0e040a3e7 --- /dev/null +++ b/interface/web/monitor/lib/lang/pt_dataloghistory_undo.lng @@ -0,0 +1,7 @@ + diff --git a/interface/web/monitor/lib/lang/pt_dataloghistory_view.lng b/interface/web/monitor/lib/lang/pt_dataloghistory_view.lng new file mode 100644 index 000000000..df9ddd286 --- /dev/null +++ b/interface/web/monitor/lib/lang/pt_dataloghistory_view.lng @@ -0,0 +1,26 @@ + diff --git a/interface/web/monitor/lib/lang/ro.lng b/interface/web/monitor/lib/lang/ro.lng index 7b06c4ba0..96a2ce10e 100644 --- a/interface/web/monitor/lib/lang/ro.lng +++ b/interface/web/monitor/lib/lang/ro.lng @@ -161,4 +161,5 @@ $wb['monitor_database_domain_txt'] = 'Domain'; $wb['Show MongoDB-Log'] = 'Show MongoDB-Log'; $wb['monitor_services_mongodb_txt'] = 'MongoDB-Server:'; $wb['monitor_title_mongodb_txt'] = 'MongoDB Log'; +$wb['Show Data Log History'] = 'Show Data Log History'; ?> diff --git a/interface/web/monitor/lib/lang/ro_dataloghistory_list.lng b/interface/web/monitor/lib/lang/ro_dataloghistory_list.lng new file mode 100644 index 000000000..9f9afd634 --- /dev/null +++ b/interface/web/monitor/lib/lang/ro_dataloghistory_list.lng @@ -0,0 +1,8 @@ + diff --git a/interface/web/monitor/lib/lang/ro_dataloghistory_undo.lng b/interface/web/monitor/lib/lang/ro_dataloghistory_undo.lng new file mode 100644 index 000000000..0e040a3e7 --- /dev/null +++ b/interface/web/monitor/lib/lang/ro_dataloghistory_undo.lng @@ -0,0 +1,7 @@ + diff --git a/interface/web/monitor/lib/lang/ro_dataloghistory_view.lng b/interface/web/monitor/lib/lang/ro_dataloghistory_view.lng new file mode 100644 index 000000000..df9ddd286 --- /dev/null +++ b/interface/web/monitor/lib/lang/ro_dataloghistory_view.lng @@ -0,0 +1,26 @@ + diff --git a/interface/web/monitor/lib/lang/ru.lng b/interface/web/monitor/lib/lang/ru.lng index 49e9d4604..823174b71 100644 --- a/interface/web/monitor/lib/lang/ru.lng +++ b/interface/web/monitor/lib/lang/ru.lng @@ -161,4 +161,5 @@ $wb['monitor_database_domain_txt'] = 'Домен'; $wb['Show MongoDB-Log'] = 'Показать журнал MongoDB'; $wb['monitor_services_mongodb_txt'] = 'MongoDB-сервер:'; $wb['monitor_title_mongodb_txt'] = 'Журнал MongoDB'; +$wb['Show Data Log History'] = 'Show Data Log History'; ?> diff --git a/interface/web/monitor/lib/lang/ru_dataloghistory_list.lng b/interface/web/monitor/lib/lang/ru_dataloghistory_list.lng new file mode 100644 index 000000000..9f9afd634 --- /dev/null +++ b/interface/web/monitor/lib/lang/ru_dataloghistory_list.lng @@ -0,0 +1,8 @@ + diff --git a/interface/web/monitor/lib/lang/ru_dataloghistory_undo.lng b/interface/web/monitor/lib/lang/ru_dataloghistory_undo.lng new file mode 100644 index 000000000..0e040a3e7 --- /dev/null +++ b/interface/web/monitor/lib/lang/ru_dataloghistory_undo.lng @@ -0,0 +1,7 @@ + diff --git a/interface/web/monitor/lib/lang/ru_dataloghistory_view.lng b/interface/web/monitor/lib/lang/ru_dataloghistory_view.lng new file mode 100644 index 000000000..df9ddd286 --- /dev/null +++ b/interface/web/monitor/lib/lang/ru_dataloghistory_view.lng @@ -0,0 +1,26 @@ + diff --git a/interface/web/monitor/lib/lang/se.lng b/interface/web/monitor/lib/lang/se.lng index 732805d2a..78dd5ed1b 100644 --- a/interface/web/monitor/lib/lang/se.lng +++ b/interface/web/monitor/lib/lang/se.lng @@ -161,4 +161,5 @@ $wb['no_permissions_to_view_munin_txt'] = 'Du har inte behörighet att visa Muni $wb['Show MongoDB-Log'] = 'Show MongoDB-Log'; $wb['monitor_services_mongodb_txt'] = 'MongoDB-Server:'; $wb['monitor_title_mongodb_txt'] = 'MongoDB Log'; +$wb['Show Data Log History'] = 'Show Data Log History'; ?> diff --git a/interface/web/monitor/lib/lang/se_dataloghistory_list.lng b/interface/web/monitor/lib/lang/se_dataloghistory_list.lng new file mode 100644 index 000000000..9f9afd634 --- /dev/null +++ b/interface/web/monitor/lib/lang/se_dataloghistory_list.lng @@ -0,0 +1,8 @@ + diff --git a/interface/web/monitor/lib/lang/se_dataloghistory_undo.lng b/interface/web/monitor/lib/lang/se_dataloghistory_undo.lng new file mode 100644 index 000000000..0e040a3e7 --- /dev/null +++ b/interface/web/monitor/lib/lang/se_dataloghistory_undo.lng @@ -0,0 +1,7 @@ + diff --git a/interface/web/monitor/lib/lang/se_dataloghistory_view.lng b/interface/web/monitor/lib/lang/se_dataloghistory_view.lng new file mode 100644 index 000000000..df9ddd286 --- /dev/null +++ b/interface/web/monitor/lib/lang/se_dataloghistory_view.lng @@ -0,0 +1,26 @@ + diff --git a/interface/web/monitor/lib/lang/sk.lng b/interface/web/monitor/lib/lang/sk.lng index 769724238..36af834ea 100644 --- a/interface/web/monitor/lib/lang/sk.lng +++ b/interface/web/monitor/lib/lang/sk.lng @@ -161,4 +161,5 @@ $wb['monitor_database_domain_txt'] = 'Domain'; $wb['Show MongoDB-Log'] = 'Show MongoDB-Log'; $wb['monitor_services_mongodb_txt'] = 'MongoDB-Server:'; $wb['monitor_title_mongodb_txt'] = 'MongoDB Log'; +$wb['Show Data Log History'] = 'Show Data Log History'; ?> diff --git a/interface/web/monitor/lib/lang/sk_dataloghistory_list.lng b/interface/web/monitor/lib/lang/sk_dataloghistory_list.lng new file mode 100644 index 000000000..9f9afd634 --- /dev/null +++ b/interface/web/monitor/lib/lang/sk_dataloghistory_list.lng @@ -0,0 +1,8 @@ + diff --git a/interface/web/monitor/lib/lang/sk_dataloghistory_undo.lng b/interface/web/monitor/lib/lang/sk_dataloghistory_undo.lng new file mode 100644 index 000000000..0e040a3e7 --- /dev/null +++ b/interface/web/monitor/lib/lang/sk_dataloghistory_undo.lng @@ -0,0 +1,7 @@ + diff --git a/interface/web/monitor/lib/lang/sk_dataloghistory_view.lng b/interface/web/monitor/lib/lang/sk_dataloghistory_view.lng new file mode 100644 index 000000000..df9ddd286 --- /dev/null +++ b/interface/web/monitor/lib/lang/sk_dataloghistory_view.lng @@ -0,0 +1,26 @@ + diff --git a/interface/web/monitor/lib/lang/tr.lng b/interface/web/monitor/lib/lang/tr.lng index 00beedb1d..005b4d97e 100644 --- a/interface/web/monitor/lib/lang/tr.lng +++ b/interface/web/monitor/lib/lang/tr.lng @@ -161,4 +161,5 @@ $wb['monitor_database_domain_txt'] = 'Domain'; $wb['monitor_serverstate_updatesunknown_txt'] = 'System Update: ???'; $wb['monitor_services_mongodb_txt'] = 'MongoDB-Server:'; $wb['monitor_title_mongodb_txt'] = 'MongoDB Log'; +$wb['Show Data Log History'] = 'Show Data Log History'; ?> diff --git a/interface/web/monitor/lib/lang/tr_dataloghistory_list.lng b/interface/web/monitor/lib/lang/tr_dataloghistory_list.lng new file mode 100644 index 000000000..9f9afd634 --- /dev/null +++ b/interface/web/monitor/lib/lang/tr_dataloghistory_list.lng @@ -0,0 +1,8 @@ + diff --git a/interface/web/monitor/lib/lang/tr_dataloghistory_undo.lng b/interface/web/monitor/lib/lang/tr_dataloghistory_undo.lng new file mode 100644 index 000000000..0e040a3e7 --- /dev/null +++ b/interface/web/monitor/lib/lang/tr_dataloghistory_undo.lng @@ -0,0 +1,7 @@ + diff --git a/interface/web/monitor/lib/lang/tr_dataloghistory_view.lng b/interface/web/monitor/lib/lang/tr_dataloghistory_view.lng new file mode 100644 index 000000000..df9ddd286 --- /dev/null +++ b/interface/web/monitor/lib/lang/tr_dataloghistory_view.lng @@ -0,0 +1,26 @@ + diff --git a/interface/web/sites/lib/lang/ar_web_vhost_domain.lng b/interface/web/sites/lib/lang/ar_web_vhost_domain.lng index bfaf07f22..f208ab3f3 100644 --- a/interface/web/sites/lib/lang/ar_web_vhost_domain.lng +++ b/interface/web/sites/lib/lang/ar_web_vhost_domain.lng @@ -152,4 +152,5 @@ $wb['https_port_error_regex'] = 'HTTPS Port invalid.'; $wb['enable_pagespeed_txt'] = 'Enable PageSpeed'; $wb['log_retention_txt'] = 'Logfiles retention time'; $wb['log_retention_error_regex'] = 'Retention time in days (allowed values: min. 0 - max. 9999)'; +$wb['limit_web_quota_not_0_txt'] = 'Harddisk Quota cannot be set to 0.'; ?> diff --git a/interface/web/sites/lib/lang/bg_aps.lng b/interface/web/sites/lib/lang/bg_aps.lng index 5313f2d91..6a5f98194 100644 --- a/interface/web/sites/lib/lang/bg_aps.lng +++ b/interface/web/sites/lib/lang/bg_aps.lng @@ -60,4 +60,4 @@ $wb['repeat_password_txt'] = 'Repeat Password'; $wb['password_mismatch_txt'] = 'The passwords do not match.'; $wb['password_match_txt'] = 'The passwords do match.'; $wb['password_strength_txt'] = 'Сила на паролата'; -?> \ No newline at end of file +?> diff --git a/interface/web/sites/lib/lang/bg_web_vhost_domain.lng b/interface/web/sites/lib/lang/bg_web_vhost_domain.lng index 0c01cbfda..a84d91523 100644 --- a/interface/web/sites/lib/lang/bg_web_vhost_domain.lng +++ b/interface/web/sites/lib/lang/bg_web_vhost_domain.lng @@ -152,4 +152,5 @@ $wb['enable_pagespeed_txt'] = 'Enable PageSpeed'; $wb['log_retention_txt'] = 'Logfiles retention time'; $wb['log_retention_error_regex'] = 'Retention time in days (allowed values: min. 0 - max. 9999)'; $wb['domain_error_acme_invalid'] = 'Domain name acme.invalid not permitted.'; +$wb['limit_web_quota_not_0_txt'] = 'Harddisk Quota cannot be set to 0.'; ?> diff --git a/interface/web/sites/lib/lang/br.lng b/interface/web/sites/lib/lang/br.lng index 3fdd93585..685ce6ed2 100644 --- a/interface/web/sites/lib/lang/br.lng +++ b/interface/web/sites/lib/lang/br.lng @@ -30,6 +30,6 @@ $wb['Available packages'] = 'Pacotes disponíveis'; $wb['Installed packages'] = 'Pacotes instalados'; $wb['Update Packagelist'] = 'Atualizar lista de pacotes'; $wb['Subdomain (Vhost)'] = 'Subdomínio (vhost)'; -$wb['error_proxy_requires_url'] = 'Tipo de redirecionamento \"proxy\" exige uma url como caminho do redirecionamento.'; +$wb['error_proxy_requires_url'] = 'Tipo de redirecionamento \\"proxy\\" exige uma url como caminho do redirecionamento.'; $wb['Domain'] = 'Domínio'; ?> diff --git a/interface/web/sites/lib/lang/br_aps.lng b/interface/web/sites/lib/lang/br_aps.lng index 46cfabfb0..27e743435 100644 --- a/interface/web/sites/lib/lang/br_aps.lng +++ b/interface/web/sites/lib/lang/br_aps.lng @@ -60,4 +60,4 @@ $wb['repeat_password_txt'] = 'Repetir senha'; $wb['password_mismatch_txt'] = 'A senhas não coincidem.'; $wb['password_match_txt'] = 'A senhas coincidem.'; $wb['password_strength_txt'] = 'Dificuldade da senha'; -?> \ No newline at end of file +?> diff --git a/interface/web/sites/lib/lang/br_cron.lng b/interface/web/sites/lib/lang/br_cron.lng index eab5b9f68..2bbadf6d1 100644 --- a/interface/web/sites/lib/lang/br_cron.lng +++ b/interface/web/sites/lib/lang/br_cron.lng @@ -19,8 +19,8 @@ $wb['run_wday_error_format'] = 'Formato dos dias da semana é inválido.'; $wb['command_error_format'] = 'Formato de comando é inválido. Somente endereços url http/https são permitidos.'; $wb['unknown_fieldtype_error'] = 'Um tipo desconhecido de campo foi usado.'; $wb['server_id_error_empty'] = 'O ID do servidor está em branco.'; -$wb['limit_cron_url_txt'] = 'Somente url do cron. Por favor, insira uma url iniciando com \"http://\" e um comando do cron.'; +$wb['limit_cron_url_txt'] = 'Somente url do cron. Por favor, insira uma url iniciando com \\"http://\\" e um comando do cron.'; $wb['command_error_empty'] = 'Comando está em branco.'; -$wb['command_hint_txt'] = 'Você poderá usar, por exemplo: \"/var/www/clients/clientX/webY/meu_script.sh\" ou \"http://www.dominio.com.br/path/script.php\" e também a palavra reservada \"[web_root]\" substituído por \"/var/www/clients/clientX/webY/web\".'; +$wb['command_hint_txt'] = 'Você poderá usar, por exemplo: \\"/var/www/clients/clientX/webY/meu_script.sh\\" ou \\"http://www.dominio.com.br/path/script.php\\" e também a palavra reservada \\"[web_root]\\" substituído por \\"/var/www/clients/clientX/webY/web\\".'; $wb['log_output_txt'] = 'Saída do Log'; ?> diff --git a/interface/web/sites/lib/lang/br_database.lng b/interface/web/sites/lib/lang/br_database.lng index 57b97693e..ac916feef 100644 --- a/interface/web/sites/lib/lang/br_database.lng +++ b/interface/web/sites/lib/lang/br_database.lng @@ -23,7 +23,7 @@ $wb['database_remote_error_ips'] = 'Pelo menos um dos endereços IP informados n $wb['database_name_error_len'] = 'Nome do banco de dados - {db} - é muito longo. 64 caracteres, incluindo o prefixo, é o limite permitido.'; $wb['database_user_error_len'] = 'Nome do usuário do banco de dados \'{user}\' é muito longo. 16 caracteres, incluindo o prefixo, é o limite permitido.'; $wb['parent_domain_id_txt'] = 'Site'; -$wb['database_site_error_empty'] = 'Selecione o \"site\" ao qual o banco de dados pertence.'; +$wb['database_site_error_empty'] = 'Selecione o \\"site\\" ao qual o banco de dados pertence.'; $wb['select_site_txt'] = '- Selecionar site -'; $wb['btn_save_txt'] = 'Salvar'; $wb['btn_cancel_txt'] = 'Cancelar'; diff --git a/interface/web/sites/lib/lang/br_database_user.lng b/interface/web/sites/lib/lang/br_database_user.lng index 518f0296e..59b9fce62 100644 --- a/interface/web/sites/lib/lang/br_database_user.lng +++ b/interface/web/sites/lib/lang/br_database_user.lng @@ -6,7 +6,7 @@ $wb['client_txt'] = 'Cliente'; $wb['active_txt'] = 'Ativo'; $wb['database_user_error_empty'] = 'Usuário do banco de dados está em branco.'; $wb['database_user_error_unique'] = 'Já existe um usuário do banco de dados com este nome no servidor. Para configurar um nome exclusivo, use como prefixo o domínio para o nome do usuário.'; -$wb['database_user_error_regex'] = 'Usuário do banco de dados inválido! O nome do usuário pode conter os seguintes caracteres: \'\"a-z\', \'A-Z\', \'0-9\' e o \'underscore\'. Tamanho: 2 - 64 caracteres.'; +$wb['database_user_error_regex'] = 'Usuário do banco de dados inválido! O nome do usuário pode conter os seguintes caracteres: \'\\"a-z\', \'A-Z\', \'0-9\' e o \'underscore\'. Tamanho: 2 - 64 caracteres.'; $wb['database_user_error_len'] = 'O usuário do banco de dados - {user} - é muito longo. O limite do nome do usuário, incluindo o prefixo, são 16 caracteres.'; $wb['btn_save_txt'] = 'Salvar'; $wb['btn_cancel_txt'] = 'Cancelar'; diff --git a/interface/web/sites/lib/lang/br_ftp_user.lng b/interface/web/sites/lib/lang/br_ftp_user.lng index bb8d99ceb..3df741ed9 100644 --- a/interface/web/sites/lib/lang/br_ftp_user.lng +++ b/interface/web/sites/lib/lang/br_ftp_user.lng @@ -25,8 +25,8 @@ $wb['directory_error_empty'] = 'Diretório está em branco.'; $wb['directory_error_notinweb'] = 'O diretório não está dentro do diretório web principal.'; $wb['parent_domain_id_error_empty'] = 'Nenhum site selecionado.'; $wb['quota_size_error_regex'] = 'Cota: insira -1 para ilimitado ou um número > 0'; -$wb['dir_dot_error'] = 'Não é permitido \"..\" no caminho.'; -$wb['dir_slashdot_error'] = 'Não é permitido \"./\" no caminho.'; +$wb['dir_dot_error'] = 'Não é permitido \\"..\\" no caminho.'; +$wb['dir_slashdot_error'] = 'Não é permitido \\"./\\" no caminho.'; $wb['generate_password_txt'] = 'Gerar senha'; $wb['repeat_password_txt'] = 'Repetir senha'; $wb['password_mismatch_txt'] = 'A senhas não coincidem.'; diff --git a/interface/web/sites/lib/lang/br_shell_user.lng b/interface/web/sites/lib/lang/br_shell_user.lng index c92bf5baa..3cbc911ab 100644 --- a/interface/web/sites/lib/lang/br_shell_user.lng +++ b/interface/web/sites/lib/lang/br_shell_user.lng @@ -20,8 +20,8 @@ $wb['parent_domain_id_error_empty'] = 'Nenhum site selecionado.'; $wb['puser_txt'] = 'Usuário web'; $wb['pgroup_txt'] = 'Grupo web'; $wb['ssh_rsa_txt'] = 'Chave pública SSH-RSA (para acessos baseados em chave)'; -$wb['dir_dot_error'] = 'Não é permitido \"..\" no caminho.'; -$wb['dir_slashdot_error'] = 'Não é permitido \"./\" no caminho.'; +$wb['dir_dot_error'] = 'Não é permitido \\"..\\" no caminho.'; +$wb['dir_slashdot_error'] = 'Não é permitido \\"./\\" no caminho.'; $wb['generate_password_txt'] = 'Gerar senha'; $wb['repeat_password_txt'] = 'Repetir senha'; $wb['password_mismatch_txt'] = 'A senhas não coincidem.'; diff --git a/interface/web/sites/lib/lang/br_web_aliasdomain.lng b/interface/web/sites/lib/lang/br_web_aliasdomain.lng index 9d4f1951d..4acadb2c5 100644 --- a/interface/web/sites/lib/lang/br_web_aliasdomain.lng +++ b/interface/web/sites/lib/lang/br_web_aliasdomain.lng @@ -14,7 +14,7 @@ $wb['ssl_bundle_txt'] = 'Pacote'; $wb['ssl_action_txt'] = 'Ação'; $wb['ssl_domain_txt'] = 'Domínio'; $wb['server_id_txt'] = 'Servidor'; -$wb['web_folder_error_regex'] = 'Pasta inválida inserida. Por favor, não use barra \"/\".'; +$wb['web_folder_error_regex'] = 'Pasta inválida inserida. Por favor, não use barra \\"/\\".'; $wb['type_txt'] = 'Tipo'; $wb['parent_domain_id_txt'] = 'Site pai'; $wb['redirect_type_txt'] = 'Tipo de redirecionamento'; @@ -62,7 +62,7 @@ $wb['ssl_organisation_error_regex'] = 'Campo \'Empresa\' é inválido. São cara $wb['ssl_organistaion_unit_error_regex'] = 'Campo \'Departamento\' é inválido. São caracteres válidos: \'a-z\', \'0-9\' e \'.,-_\'.'; $wb['ssl_country_error_regex'] = 'Campo \'País\' é inválido. São caracteres válidos: \'A-Z\'.'; $wb['limit_traffic_quota_free_txt'] = 'Cota máxima de tráfego disponível'; -$wb['redirect_error_regex'] = 'Caminho de redirecionamento é inválido. Exemplos de caminhos válidos: \"/teste/\" ou \"http://www.dominio.com.br/teste/\".'; +$wb['redirect_error_regex'] = 'Caminho de redirecionamento é inválido. Exemplos de caminhos válidos: \\"/teste/\\" ou \\"http://www.dominio.com.br/teste/\\".'; $wb['php_open_basedir_txt'] = 'Diretório open_basedir do PHP'; $wb['traffic_quota_exceeded_txt'] = 'Cota de tráfego excedida'; $wb['ruby_txt'] = 'Ruby'; diff --git a/interface/web/sites/lib/lang/br_web_childdomain.lng b/interface/web/sites/lib/lang/br_web_childdomain.lng index 1c53d1658..ecff0c2ae 100644 --- a/interface/web/sites/lib/lang/br_web_childdomain.lng +++ b/interface/web/sites/lib/lang/br_web_childdomain.lng @@ -36,18 +36,18 @@ $wb['domain_error_empty'] = 'Domínio está em branco.'; $wb['domain_error_unique'] = 'Já existe apelido de domínio ou subdomínio com este nome.'; $wb['domain_error_regex'] = 'Nome de domínio é inválido.'; $wb['host_txt'] = 'Nome do servidor'; -$wb['redirect_error_regex'] = 'Caminho de redirecionamento é inválido. Exemplo de caminho válido: \"/teste/\" ou \"http://www.dominio.com.br/teste/\".'; +$wb['redirect_error_regex'] = 'Caminho de redirecionamento é inválido. Exemplo de caminho válido: \\"/teste/\\" ou \\"http://www.dominio.com.br/teste/\\".'; $wb['no_redirect_txt'] = 'Sem redirecionamento'; $wb['no_flag_txt'] = 'Sem marcas'; $wb['domain_error_wildcard'] = 'Curingas para subdomínios não são permitidos.'; $wb['proxy_directives_txt'] = 'Diretivas do proxy'; $wb['available_proxy_directive_snippets_txt'] = 'Diretivas de trechos de código do proxy disponíveis:'; -$wb['error_proxy_requires_url'] = 'O tipo de redirecionamento \"proxy\" exige uma url no caminho de redirecionamento.'; +$wb['error_proxy_requires_url'] = 'O tipo de redirecionamento \\"proxy\\" exige uma url no caminho de redirecionamento.'; $wb['backup_interval_txt'] = 'Intervalo de backup'; $wb['backup_copies_txt'] = 'Limite de cópias do backup'; $wb['ssl_key_txt'] = 'Chave'; $wb['ssl_domain_txt'] = 'Domínio do SSL'; -$wb['web_folder_error_regex'] = 'Pasta inválida informada. Por favor não use uma barra - \"/\".'; +$wb['web_folder_error_regex'] = 'Pasta inválida informada. Por favor não use uma barra - \\"/\\".'; $wb['ipv6_address_txt'] = 'Endereço IPv6'; $wb['errordocs_txt'] = 'Pasta personalizada Error-Documents'; $wb['subdomain_txt'] = 'Subdomínio automático'; diff --git a/interface/web/sites/lib/lang/br_web_domain.lng b/interface/web/sites/lib/lang/br_web_domain.lng index f0fdabb75..662fdb407 100644 --- a/interface/web/sites/lib/lang/br_web_domain.lng +++ b/interface/web/sites/lib/lang/br_web_domain.lng @@ -55,7 +55,7 @@ $wb['ssl_organisation_error_regex'] = 'Campo \'Empresa\' é inválido. São cara $wb['ssl_organistaion_unit_error_regex'] = 'Campo \'Departamento\' é inválido. São caracteres válidos: \\"a-z\\", \'0-9\' e \'.,-_\'.'; $wb['ssl_country_error_regex'] = 'Campo \'País\' é inválido. São caracteres válidos: \'A-Z\'.'; $wb['limit_traffic_quota_free_txt'] = 'Cota máxima de tráfego disponível'; -$wb['redirect_error_regex'] = 'Caminho de redirecionamento é inválido. Exemplos de caminhos válidos: \"/teste/\" ou \"http://www.dominio.com.br/teste/\".'; +$wb['redirect_error_regex'] = 'Caminho de redirecionamento é inválido. Exemplos de caminhos válidos: \\"/teste/\\" ou \\"http://www.dominio.com.br/teste/\\".'; $wb['php_open_basedir_txt'] = 'Diretório open_basedir do php'; $wb['traffic_quota_exceeded_txt'] = 'Cota de tráfego excedida'; $wb['backup_interval_txt'] = 'Intervalo de backup'; diff --git a/interface/web/sites/lib/lang/br_web_subdomain.lng b/interface/web/sites/lib/lang/br_web_subdomain.lng index 8abb05043..0ccc57480 100644 --- a/interface/web/sites/lib/lang/br_web_subdomain.lng +++ b/interface/web/sites/lib/lang/br_web_subdomain.lng @@ -36,7 +36,7 @@ $wb['domain_error_empty'] = 'Domínio está em branco.'; $wb['domain_error_unique'] = 'Já existe apelido de domínio ou subdomínio com este nome.'; $wb['domain_error_regex'] = 'Nome do domínio é inválido.'; $wb['host_txt'] = 'Host'; -$wb['redirect_error_regex'] = 'Caminho de redirecionamento é inválido. Exemplo de caminho válido: \"/teste/\" ou \"http://www.dominio.com.br/teste/\".'; +$wb['redirect_error_regex'] = 'Caminho de redirecionamento é inválido. Exemplo de caminho válido: \\"/teste/\\" ou \\"http://www.dominio.com.br/teste/\\".'; $wb['no_redirect_txt'] = 'Sem redirecionamento'; $wb['no_flag_txt'] = 'Sem marcas'; $wb['domain_error_wildcard'] = 'Curingas de subdomínios não são permitidos.'; diff --git a/interface/web/sites/lib/lang/br_web_vhost_domain.lng b/interface/web/sites/lib/lang/br_web_vhost_domain.lng index 413863f1e..4c72b1fd8 100644 --- a/interface/web/sites/lib/lang/br_web_vhost_domain.lng +++ b/interface/web/sites/lib/lang/br_web_vhost_domain.lng @@ -56,7 +56,7 @@ $wb['ssl_organisation_error_regex'] = 'Campo \'Empresa\' é inválido. São cara $wb['ssl_organistaion_unit_error_regex'] = 'Campo \'Departamento\' é inválido. São caracteres válidos: \'a-z\', \'0-9\' e \'.,-_\'.'; $wb['ssl_country_error_regex'] = 'Campo \'País\' é inválido. São caracteres válidos: \'A-Z\'.'; $wb['limit_traffic_quota_free_txt'] = 'Limite da cota de tráfego'; -$wb['redirect_error_regex'] = 'Caminho de redirecionamento é inválido. Exemplos de caminhos válidos: \"/teste\" ou \"http://www.dominio.com.br/teste/\".'; +$wb['redirect_error_regex'] = 'Caminho de redirecionamento é inválido. Exemplos de caminhos válidos: \\"/teste\\" ou \\"http://www.dominio.com.br/teste/\\".'; $wb['php_open_basedir_txt'] = 'Diretório open_basedir do php'; $wb['traffic_quota_exceeded_txt'] = 'Cota de tráfego excedida'; $wb['backup_interval_txt'] = 'Intervalo de backup'; @@ -106,7 +106,7 @@ $wb['generate_password_txt'] = 'Gerar senha'; $wb['repeat_password_txt'] = 'Repetir senha'; $wb['password_mismatch_txt'] = 'A senhas não coincidem.'; $wb['password_match_txt'] = 'A senhas coincidem.'; -$wb['web_folder_error_regex'] = 'Pasta inválida informada. Por favor não insira barra - \"\\".'; +$wb['web_folder_error_regex'] = 'Pasta inválida informada. Por favor não insira barra - \\"\\".'; $wb['domain_error_autosub'] = 'Já existe um subdomínio com essas configurações.'; $wb['available_php_directive_snippets_txt'] = 'Diretivas de trechos de código do php disponíveis:'; $wb['available_apache_directive_snippets_txt'] = 'Diretivas de trechos de código do apache disponíveis:'; @@ -152,4 +152,5 @@ $wb['enable_pagespeed_txt'] = 'Habilitar PageSpeed'; $wb['log_retention_txt'] = 'Tempo de armazenamenro dos arquivos de log'; $wb['log_retention_error_regex'] = 'Tempo de armazenamento, em dias (valores permitidos: min. 0 - max. 9999)'; $wb['domain_error_acme_invalid'] = 'Domain name acme.invalid not permitted.'; +$wb['limit_web_quota_not_0_txt'] = 'Harddisk Quota cannot be set to 0.'; ?> diff --git a/interface/web/sites/lib/lang/br_web_vhost_subdomain.lng b/interface/web/sites/lib/lang/br_web_vhost_subdomain.lng index 8a0c3e6a1..fa6ddad48 100644 --- a/interface/web/sites/lib/lang/br_web_vhost_subdomain.lng +++ b/interface/web/sites/lib/lang/br_web_vhost_subdomain.lng @@ -19,7 +19,7 @@ $wb['ssl_domain_txt'] = 'Domínio'; $wb['server_id_txt'] = 'Servidor'; $wb['domain_txt'] = 'Domínio'; $wb['host_txt'] = 'Hostname'; -$wb['web_folder_error_regex'] = 'Pasta informada é inválida. Por favor, não insira barra - \"/\".'; +$wb['web_folder_error_regex'] = 'Pasta informada é inválida. Por favor, não insira barra - \\"/\\".'; $wb['type_txt'] = 'Tipo'; $wb['redirect_type_txt'] = 'Tipo de redirecionamento'; $wb['redirect_path_txt'] = 'Caminho para redirecionamento'; @@ -60,13 +60,13 @@ $wb['client_group_id_txt'] = 'Cliente'; $wb['stats_password_txt'] = 'Senha para estatísticas web'; $wb['allow_override_txt'] = 'Diretiva Apache AllowOverride'; $wb['limit_web_quota_free_txt'] = 'Cota de disco'; -$wb['ssl_state_error_regex'] = 'Campo \'Estado\' é inválido. Caracteres válidos são: \'0-9\' e \".,-_\".'; +$wb['ssl_state_error_regex'] = 'Campo \'Estado\' é inválido. Caracteres válidos são: \'0-9\' e \\".,-_\\".'; $wb['ssl_locality_error_regex'] = 'Campo \'Cidade\' é inválido. Caracteres válidos são: \'a-z\', \'0-9\' e \'.,-_\'.'; $wb['ssl_organisation_error_regex'] = 'Campo \'Empresa\' é inválido. Caracteres válidos são: \'a-z\', \'0-9\' e \'.,-_\'.'; $wb['ssl_organistaion_unit_error_regex'] = 'Campo \'Departamento\' é inválido. Caracteres válidos são: \'a-z\', \'0-9\' e \'.,-_\'.'; $wb['ssl_country_error_regex'] = 'Campo \'País\' é inválido. Caracteres válidos são: \'A-Z\'.'; $wb['limit_traffic_quota_free_txt'] = 'Cota de tráfego'; -$wb['redirect_error_regex'] = 'Caminho de redirecionamento é inválido. Exemplo de caminho válido: \"/teste/\" ou \"http://www.dominio.com.br/teste/\".'; +$wb['redirect_error_regex'] = 'Caminho de redirecionamento é inválido. Exemplo de caminho válido: \\"/teste/\\" ou \\"http://www.dominio.com.br/teste/\\".'; $wb['php_open_basedir_txt'] = 'Diretório open_basedir do PHP'; $wb['traffic_quota_exceeded_txt'] = 'Cota de tráfego excedida'; $wb['ruby_txt'] = 'Ruby'; @@ -121,9 +121,9 @@ $wb['allowed_rewrite_rule_directives_txt'] = 'Diretivas Permitidas:'; $wb['configuration_error_txt'] = 'ERRO DE CONFIGURAÇÃO'; $wb['variables_txt'] = 'Variáveis'; $wb['backup_excludes_txt'] = 'Diretórios Excluídos'; -$wb['backup_excludes_note_txt'] = '(Separar múltiplos diretórios por vírgulas. Exemplo: \"web/cache/*,web/backup\".)'; +$wb['backup_excludes_note_txt'] = '(Separar múltiplos diretórios por vírgulas. Exemplo: \\"web/cache/*,web/backup\\".)'; $wb['backup_excludes_error_regex'] = 'Os diretórios excluídos contém caracteres inválidos.'; -$wb['subdomain_error_empty'] = 'O campo \"Subdomínio\" está em branco ou contém caracteres inválidos.'; +$wb['subdomain_error_empty'] = 'O campo \\"Subdomínio\\" está em branco ou contém caracteres inválidos.'; $wb['http_port_txt'] = 'Porta HTTP'; $wb['https_port_txt'] = 'Porta HTTPS'; $wb['http_port_error_regex'] = 'Porta HTTP inválida.'; diff --git a/interface/web/sites/lib/lang/br_webdav_user.lng b/interface/web/sites/lib/lang/br_webdav_user.lng index b135d5e0f..4347f8ae3 100644 --- a/interface/web/sites/lib/lang/br_webdav_user.lng +++ b/interface/web/sites/lib/lang/br_webdav_user.lng @@ -12,8 +12,8 @@ $wb['username_error_unique'] = 'O nome do usuário deve ser exclusivo.'; $wb['username_error_regex'] = 'O nome do usuário contém caracteres não permitidos.'; $wb['directory_error_empty'] = 'Diretório está em branco.'; $wb['parent_domain_id_error_empty'] = 'Nenhum site selecionado.'; -$wb['dir_dot_error'] = 'Não é permitido \"..\" no caminho.'; -$wb['dir_slashdot_error'] = 'Não é permitido \"./\" no caminho.'; +$wb['dir_dot_error'] = 'Não é permitido \\"..\\" no caminho.'; +$wb['dir_slashdot_error'] = 'Não é permitido \\"./\\" no caminho.'; $wb['generate_password_txt'] = 'Gerar senha'; $wb['repeat_password_txt'] = 'Repetir senha'; $wb['password_mismatch_txt'] = 'A senhas não coincidem.'; diff --git a/interface/web/sites/lib/lang/ca_aps.lng b/interface/web/sites/lib/lang/ca_aps.lng index bbf799bb3..062d6ea58 100644 --- a/interface/web/sites/lib/lang/ca_aps.lng +++ b/interface/web/sites/lib/lang/ca_aps.lng @@ -60,4 +60,4 @@ $wb['repeat_password_txt'] = 'Vérification du mot de passe'; $wb['password_mismatch_txt'] = 'Les mots de passe ne correspondent pas.'; $wb['password_match_txt'] = 'Les mots de passe correspondent.'; $wb['password_strength_txt'] = 'Force du mot de passe'; -?> \ No newline at end of file +?> diff --git a/interface/web/sites/lib/lang/ca_web_vhost_domain.lng b/interface/web/sites/lib/lang/ca_web_vhost_domain.lng index c9cdb68c9..aae2f4633 100644 --- a/interface/web/sites/lib/lang/ca_web_vhost_domain.lng +++ b/interface/web/sites/lib/lang/ca_web_vhost_domain.lng @@ -152,4 +152,5 @@ $wb['https_port_error_regex'] = 'HTTPS Port invalid.'; $wb['enable_pagespeed_txt'] = 'Enable PageSpeed'; $wb['log_retention_txt'] = 'Logfiles retention time'; $wb['log_retention_error_regex'] = 'Retention time in days (allowed values: min. 0 - max. 9999)'; +$wb['limit_web_quota_not_0_txt'] = 'Harddisk Quota cannot be set to 0.'; ?> diff --git a/interface/web/sites/lib/lang/cz_aps.lng b/interface/web/sites/lib/lang/cz_aps.lng index 36bc6816f..adf6ccf58 100644 --- a/interface/web/sites/lib/lang/cz_aps.lng +++ b/interface/web/sites/lib/lang/cz_aps.lng @@ -60,4 +60,4 @@ $wb['repeat_password_txt'] = 'Opakujte heslo'; $wb['password_mismatch_txt'] = 'Hesla se neshodují.'; $wb['password_match_txt'] = 'Hesla se shodují.'; $wb['password_strength_txt'] = 'Bezpečnost hesla'; -?> \ No newline at end of file +?> diff --git a/interface/web/sites/lib/lang/cz_web_vhost_domain.lng b/interface/web/sites/lib/lang/cz_web_vhost_domain.lng index 9f40aaec6..269b6b586 100644 --- a/interface/web/sites/lib/lang/cz_web_vhost_domain.lng +++ b/interface/web/sites/lib/lang/cz_web_vhost_domain.lng @@ -152,4 +152,5 @@ $wb['enable_pagespeed_txt'] = 'Enable PageSpeed'; $wb['log_retention_txt'] = 'Logfiles retention time'; $wb['log_retention_error_regex'] = 'Retention time in days (allowed values: min. 0 - max. 9999)'; $wb['domain_error_acme_invalid'] = 'Domain name acme.invalid not permitted.'; +$wb['limit_web_quota_not_0_txt'] = 'Harddisk Quota cannot be set to 0.'; ?> diff --git a/interface/web/sites/lib/lang/de_aps.lng b/interface/web/sites/lib/lang/de_aps.lng index bb986b5c4..6c9ff30ee 100644 --- a/interface/web/sites/lib/lang/de_aps.lng +++ b/interface/web/sites/lib/lang/de_aps.lng @@ -60,4 +60,4 @@ $wb['repeat_password_txt'] = 'Passwort wiederholen'; $wb['password_mismatch_txt'] = 'Die Passwörter stimmen nicht überein.'; $wb['password_match_txt'] = 'Die Passwörter stimmen überein.'; $wb['password_strength_txt'] = 'Passwortkomplexität'; -?> \ No newline at end of file +?> diff --git a/interface/web/sites/lib/lang/dk_web_vhost_domain.lng b/interface/web/sites/lib/lang/dk_web_vhost_domain.lng index c9cdb68c9..aae2f4633 100644 --- a/interface/web/sites/lib/lang/dk_web_vhost_domain.lng +++ b/interface/web/sites/lib/lang/dk_web_vhost_domain.lng @@ -152,4 +152,5 @@ $wb['https_port_error_regex'] = 'HTTPS Port invalid.'; $wb['enable_pagespeed_txt'] = 'Enable PageSpeed'; $wb['log_retention_txt'] = 'Logfiles retention time'; $wb['log_retention_error_regex'] = 'Retention time in days (allowed values: min. 0 - max. 9999)'; +$wb['limit_web_quota_not_0_txt'] = 'Harddisk Quota cannot be set to 0.'; ?> diff --git a/interface/web/sites/lib/lang/el_web_vhost_domain.lng b/interface/web/sites/lib/lang/el_web_vhost_domain.lng index 1d238b64e..0ea2c2a79 100644 --- a/interface/web/sites/lib/lang/el_web_vhost_domain.lng +++ b/interface/web/sites/lib/lang/el_web_vhost_domain.lng @@ -152,4 +152,5 @@ $wb['https_port_error_regex'] = 'HTTPS Port invalid.'; $wb['enable_pagespeed_txt'] = 'Enable PageSpeed'; $wb['log_retention_txt'] = 'Logfiles retention time'; $wb['log_retention_error_regex'] = 'Retention time in days (allowed values: min. 0 - max. 9999)'; +$wb['limit_web_quota_not_0_txt'] = 'Harddisk Quota cannot be set to 0.'; ?> diff --git a/interface/web/sites/lib/lang/es_web_vhost_domain.lng b/interface/web/sites/lib/lang/es_web_vhost_domain.lng index 8421966c0..f98c02db1 100644 --- a/interface/web/sites/lib/lang/es_web_vhost_domain.lng +++ b/interface/web/sites/lib/lang/es_web_vhost_domain.lng @@ -152,4 +152,5 @@ $wb['enable_pagespeed_txt'] = 'Enable PageSpeed'; $wb['log_retention_txt'] = 'Logfiles retention time'; $wb['log_retention_error_regex'] = 'Retention time in days (allowed values: min. 0 - max. 9999)'; $wb['domain_error_acme_invalid'] = 'Domain name acme.invalid not permitted.'; +$wb['limit_web_quota_not_0_txt'] = 'Harddisk Quota cannot be set to 0.'; ?> diff --git a/interface/web/sites/lib/lang/fi_web_vhost_domain.lng b/interface/web/sites/lib/lang/fi_web_vhost_domain.lng index 1a4d753b5..c7c4a1443 100644 --- a/interface/web/sites/lib/lang/fi_web_vhost_domain.lng +++ b/interface/web/sites/lib/lang/fi_web_vhost_domain.lng @@ -152,4 +152,5 @@ $wb['enable_pagespeed_txt'] = 'Enable PageSpeed'; $wb['log_retention_txt'] = 'Logfiles retention time'; $wb['log_retention_error_regex'] = 'Retention time in days (allowed values: min. 0 - max. 9999)'; $wb['domain_error_acme_invalid'] = 'Domain name acme.invalid not permitted.'; +$wb['limit_web_quota_not_0_txt'] = 'Harddisk Quota cannot be set to 0.'; ?> diff --git a/interface/web/sites/lib/lang/fr_web_vhost_domain.lng b/interface/web/sites/lib/lang/fr_web_vhost_domain.lng index ab34cdf35..931c00a53 100644 --- a/interface/web/sites/lib/lang/fr_web_vhost_domain.lng +++ b/interface/web/sites/lib/lang/fr_web_vhost_domain.lng @@ -152,4 +152,5 @@ $wb['enable_pagespeed_txt'] = 'Enable PageSpeed'; $wb['log_retention_txt'] = 'Logfiles retention time'; $wb['log_retention_error_regex'] = 'Retention time in days (allowed values: min. 0 - max. 9999)'; $wb['domain_error_acme_invalid'] = 'Domain name acme.invalid not permitted.'; +$wb['limit_web_quota_not_0_txt'] = 'Harddisk Quota cannot be set to 0.'; ?> diff --git a/interface/web/sites/lib/lang/hr_web_vhost_domain.lng b/interface/web/sites/lib/lang/hr_web_vhost_domain.lng index 0ef7e9385..7842d770b 100644 --- a/interface/web/sites/lib/lang/hr_web_vhost_domain.lng +++ b/interface/web/sites/lib/lang/hr_web_vhost_domain.lng @@ -152,4 +152,5 @@ $wb['enable_pagespeed_txt'] = 'Enable PageSpeed'; $wb['log_retention_txt'] = 'Logfiles retention time'; $wb['log_retention_error_regex'] = 'Retention time in days (allowed values: min. 0 - max. 9999)'; $wb['domain_error_acme_invalid'] = 'Domain name acme.invalid not permitted.'; +$wb['limit_web_quota_not_0_txt'] = 'Harddisk Quota cannot be set to 0.'; ?> diff --git a/interface/web/sites/lib/lang/hu_web_vhost_domain.lng b/interface/web/sites/lib/lang/hu_web_vhost_domain.lng index da4391a92..a40a4b62a 100644 --- a/interface/web/sites/lib/lang/hu_web_vhost_domain.lng +++ b/interface/web/sites/lib/lang/hu_web_vhost_domain.lng @@ -152,4 +152,5 @@ $wb['enable_pagespeed_txt'] = 'Enable PageSpeed'; $wb['log_retention_txt'] = 'Logfiles retention time'; $wb['log_retention_error_regex'] = 'Retention time in days (allowed values: min. 0 - max. 9999)'; $wb['domain_error_acme_invalid'] = 'Domain name acme.invalid not permitted.'; +$wb['limit_web_quota_not_0_txt'] = 'Harddisk Quota cannot be set to 0.'; ?> diff --git a/interface/web/sites/lib/lang/id_web_vhost_domain.lng b/interface/web/sites/lib/lang/id_web_vhost_domain.lng index 6d16061cf..617e7fe76 100644 --- a/interface/web/sites/lib/lang/id_web_vhost_domain.lng +++ b/interface/web/sites/lib/lang/id_web_vhost_domain.lng @@ -152,4 +152,5 @@ $wb['enable_pagespeed_txt'] = 'Enable PageSpeed'; $wb['log_retention_txt'] = 'Logfiles retention time'; $wb['log_retention_error_regex'] = 'Retention time in days (allowed values: min. 0 - max. 9999)'; $wb['domain_error_acme_invalid'] = 'Domain name acme.invalid not permitted.'; +$wb['limit_web_quota_not_0_txt'] = 'Harddisk Quota cannot be set to 0.'; ?> diff --git a/interface/web/sites/lib/lang/it_web_vhost_domain.lng b/interface/web/sites/lib/lang/it_web_vhost_domain.lng index adb557f39..9fbca551a 100644 --- a/interface/web/sites/lib/lang/it_web_vhost_domain.lng +++ b/interface/web/sites/lib/lang/it_web_vhost_domain.lng @@ -152,4 +152,5 @@ $wb['https_port_error_regex'] = 'HTTPS Port invalid.'; $wb['enable_pagespeed_txt'] = 'Enable PageSpeed'; $wb['log_retention_txt'] = 'Logfiles retention time'; $wb['log_retention_error_regex'] = 'Retention time in days (allowed values: min. 0 - max. 9999)'; +$wb['limit_web_quota_not_0_txt'] = 'Harddisk Quota cannot be set to 0.'; ?> diff --git a/interface/web/sites/lib/lang/ja_web_vhost_domain.lng b/interface/web/sites/lib/lang/ja_web_vhost_domain.lng index 9dd8cd7af..0efd97118 100644 --- a/interface/web/sites/lib/lang/ja_web_vhost_domain.lng +++ b/interface/web/sites/lib/lang/ja_web_vhost_domain.lng @@ -152,4 +152,5 @@ $wb['enable_pagespeed_txt'] = 'Enable PageSpeed'; $wb['log_retention_txt'] = 'Logfiles retention time'; $wb['log_retention_error_regex'] = 'Retention time in days (allowed values: min. 0 - max. 9999)'; $wb['domain_error_acme_invalid'] = 'Domain name acme.invalid not permitted.'; +$wb['limit_web_quota_not_0_txt'] = 'Harddisk Quota cannot be set to 0.'; ?> diff --git a/interface/web/sites/lib/lang/nl_web_vhost_domain.lng b/interface/web/sites/lib/lang/nl_web_vhost_domain.lng index 1301001bd..dd007d549 100644 --- a/interface/web/sites/lib/lang/nl_web_vhost_domain.lng +++ b/interface/web/sites/lib/lang/nl_web_vhost_domain.lng @@ -152,4 +152,5 @@ $wb['enable_pagespeed_txt'] = 'Enable PageSpeed'; $wb['log_retention_txt'] = 'Logfiles retention time'; $wb['log_retention_error_regex'] = 'Retention time in days (allowed values: min. 0 - max. 9999)'; $wb['domain_error_acme_invalid'] = 'Domain name acme.invalid not permitted.'; +$wb['limit_web_quota_not_0_txt'] = 'Harddisk Quota cannot be set to 0.'; ?> diff --git a/interface/web/sites/lib/lang/pl_web_vhost_domain.lng b/interface/web/sites/lib/lang/pl_web_vhost_domain.lng index e6fd60112..8a426b0a1 100644 --- a/interface/web/sites/lib/lang/pl_web_vhost_domain.lng +++ b/interface/web/sites/lib/lang/pl_web_vhost_domain.lng @@ -152,4 +152,5 @@ $wb['enable_pagespeed_txt'] = 'Enable PageSpeed'; $wb['log_retention_txt'] = 'Logfiles retention time'; $wb['log_retention_error_regex'] = 'Retention time in days (allowed values: min. 0 - max. 9999)'; $wb['domain_error_acme_invalid'] = 'Domain name acme.invalid not permitted.'; +$wb['limit_web_quota_not_0_txt'] = 'Harddisk Quota cannot be set to 0.'; ?> diff --git a/interface/web/sites/lib/lang/pt_web_vhost_domain.lng b/interface/web/sites/lib/lang/pt_web_vhost_domain.lng index a33ac11fc..170f2feb0 100644 --- a/interface/web/sites/lib/lang/pt_web_vhost_domain.lng +++ b/interface/web/sites/lib/lang/pt_web_vhost_domain.lng @@ -152,4 +152,5 @@ $wb['enable_pagespeed_txt'] = 'Enable PageSpeed'; $wb['log_retention_txt'] = 'Logfiles retention time'; $wb['log_retention_error_regex'] = 'Retention time in days (allowed values: min. 0 - max. 9999)'; $wb['domain_error_acme_invalid'] = 'Domain name acme.invalid not permitted.'; +$wb['limit_web_quota_not_0_txt'] = 'Harddisk Quota cannot be set to 0.'; ?> diff --git a/interface/web/sites/lib/lang/ro_web_vhost_domain.lng b/interface/web/sites/lib/lang/ro_web_vhost_domain.lng index cb5fc4d82..046c2c71a 100644 --- a/interface/web/sites/lib/lang/ro_web_vhost_domain.lng +++ b/interface/web/sites/lib/lang/ro_web_vhost_domain.lng @@ -152,4 +152,5 @@ $wb['https_port_error_regex'] = 'HTTPS Port invalid.'; $wb['enable_pagespeed_txt'] = 'Enable PageSpeed'; $wb['log_retention_txt'] = 'Logfiles retention time'; $wb['log_retention_error_regex'] = 'Retention time in days (allowed values: min. 0 - max. 9999)'; +$wb['limit_web_quota_not_0_txt'] = 'Harddisk Quota cannot be set to 0.'; ?> diff --git a/interface/web/sites/lib/lang/ru.lng b/interface/web/sites/lib/lang/ru.lng index 6316c21d1..dbf292604 100644 --- a/interface/web/sites/lib/lang/ru.lng +++ b/interface/web/sites/lib/lang/ru.lng @@ -31,5 +31,5 @@ $wb['Available packages'] = 'Доступные пакеты'; $wb['Installed packages'] = 'Установленные пакеты'; $wb['Update Packagelist'] = 'Обновить список пакетов'; $wb['Subdomain (Vhost)'] = 'Поддомен (Vhost)'; -$wb['error_proxy_requires_url'] = 'Тип редиректа \"proxy\" требует URL в качестве пути перенаправления.'; +$wb['error_proxy_requires_url'] = 'Тип редиректа \\"proxy\\" требует URL в качестве пути перенаправления.'; ?> diff --git a/interface/web/sites/lib/lang/ru_aps.lng b/interface/web/sites/lib/lang/ru_aps.lng index 3dd4ad0a8..d2225358c 100644 --- a/interface/web/sites/lib/lang/ru_aps.lng +++ b/interface/web/sites/lib/lang/ru_aps.lng @@ -38,14 +38,14 @@ $wb['error_inv_main_location'] = 'Вы указали некорректную $wb['error_license_agreement'] = 'Для продолжения нужно принять лицензионное соглашение.'; $wb['error_no_database_pw'] = 'Вы предоставили не правильный пароль базы данных.'; $wb['error_short_database_pw'] = 'Пожалуйста, выберите более длинный пароль базы данных.'; -$wb['error_no_value_for'] = 'Поле \"%s\" не может быть пустым.'; -$wb['error_short_value_for'] = 'Поле \"%s\" требует более длинного входного значения.'; -$wb['error_long_value_for'] = 'Поле \"%s\"требует более короткого входного значения.'; -$wb['error_inv_value_for'] = 'Вы ввели неверное значение для поля \"%s\".'; -$wb['error_inv_email_for'] = 'Вы ввели некорректный адрес электронной почты для поля \"%s\".'; -$wb['error_inv_domain_for'] = 'Вы ввели некорректный домен для поля \"%s\".'; -$wb['error_inv_integer_for'] = 'Вы ввели некорректное число для поля \"%s\".'; -$wb['error_inv_float_for'] = 'Вы ввели некорректное число с плавающей точкой для поля \"%s\".'; +$wb['error_no_value_for'] = 'Поле \\"%s\\" не может быть пустым.'; +$wb['error_short_value_for'] = 'Поле \\"%s\\" требует более длинного входного значения.'; +$wb['error_long_value_for'] = 'Поле \\"%s\\"требует более короткого входного значения.'; +$wb['error_inv_value_for'] = 'Вы ввели неверное значение для поля \\"%s\\".'; +$wb['error_inv_email_for'] = 'Вы ввели некорректный адрес электронной почты для поля \\"%s\\".'; +$wb['error_inv_domain_for'] = 'Вы ввели некорректный домен для поля \\"%s\\".'; +$wb['error_inv_integer_for'] = 'Вы ввели некорректное число для поля \\"%s\\".'; +$wb['error_inv_float_for'] = 'Вы ввели некорректное число с плавающей точкой для поля \\"%s\\".'; $wb['error_used_location'] = 'Путь установки уже содержит установочный пакет.'; $wb['installation_task_txt'] = 'Запланирована установка'; $wb['installation_error_txt'] = 'Ошибка установки'; diff --git a/interface/web/sites/lib/lang/ru_database.lng b/interface/web/sites/lib/lang/ru_database.lng index b931b715f..0f5eaf318 100644 --- a/interface/web/sites/lib/lang/ru_database.lng +++ b/interface/web/sites/lib/lang/ru_database.lng @@ -13,7 +13,7 @@ $wb['database_name_error_unique'] = 'Имя базы данных уже сущ $wb['database_name_error_regex'] = 'Неверное имя базы данных. Имя базы данных может содержать только следующие символы: a-z, A-Z, 0-9 и нижний пробел _. Длина: 2 - 64 символа.'; $wb['database_user_error_empty'] = 'Логин базы данных пустой'; $wb['database_user_error_unique'] = 'Такой пользователь базы данных уже существует. Что бы получить уникальное имя, например, сложите название сайта и ваше имя.'; -$wb['database_user_error_regex'] = 'Некорректный логин для базы данных. Логин может содержать только следующие символы: a-z, A-Z, 0-9 и \"_\". Длина: 2 - 16 символов.'; +$wb['database_user_error_regex'] = 'Некорректный логин для базы данных. Логин может содержать только следующие символы: a-z, A-Z, 0-9 и \\"_\\". Длина: 2 - 16 символов.'; $wb['limit_database_txt'] = 'Достигнуто максимальное количество БД.'; $wb['database_name_change_txt'] = 'Имя базы данных не может быть изменено.'; $wb['database_charset_change_txt'] = 'Кодировка базы данных не может быть изменена'; diff --git a/interface/web/sites/lib/lang/ru_database_user.lng b/interface/web/sites/lib/lang/ru_database_user.lng index df927317c..7de99a11d 100644 --- a/interface/web/sites/lib/lang/ru_database_user.lng +++ b/interface/web/sites/lib/lang/ru_database_user.lng @@ -6,7 +6,7 @@ $wb['client_txt'] = 'Клиент'; $wb['active_txt'] = 'Активно'; $wb['database_user_error_empty'] = 'Логин базы данных пустой'; $wb['database_user_error_unique'] = 'Такой пользователь базы данных уже существует. Что бы получить уникальное имя, например, сложите название сайта и ваше имя.'; -$wb['database_user_error_regex'] = 'Некорректный логин для базы данных. Логин может содержать только следующие символы: a-z, A-Z, 0-9 и \"_\". Длина: 2 - 16 символов.'; +$wb['database_user_error_regex'] = 'Некорректный логин для базы данных. Логин может содержать только следующие символы: a-z, A-Z, 0-9 и \\"_\\". Длина: 2 - 16 символов.'; $wb['database_user_error_len'] = 'Логин для базы данных - {user} - cлишком длинный. Максимальная длина логина - 16 символов'; $wb['btn_save_txt'] = 'Сохранить'; $wb['btn_cancel_txt'] = 'Отменить'; diff --git a/interface/web/sites/lib/lang/ru_web_childdomain.lng b/interface/web/sites/lib/lang/ru_web_childdomain.lng index 49905e77e..af71669a4 100644 --- a/interface/web/sites/lib/lang/ru_web_childdomain.lng +++ b/interface/web/sites/lib/lang/ru_web_childdomain.lng @@ -42,7 +42,7 @@ $wb['no_flag_txt'] = 'Нет флага'; $wb['domain_error_wildcard'] = 'Wildcard поддомены не допускаются.'; $wb['proxy_directives_txt'] = 'Директивы прокси'; $wb['available_proxy_directive_snippets_txt'] = 'Доступные заготовки директив Proxy:'; -$wb['error_proxy_requires_url'] = 'Тип редиректа \"proxy\" требует URL в качестве пути перенаправления.'; +$wb['error_proxy_requires_url'] = 'Тип редиректа \\"proxy\\" требует URL в качестве пути перенаправления.'; $wb['backup_interval_txt'] = 'Интервал резервного копирования'; $wb['backup_copies_txt'] = 'Количество резервных копий'; $wb['ssl_key_txt'] = 'SSL-ключ'; diff --git a/interface/web/sites/lib/lang/ru_web_subdomain.lng b/interface/web/sites/lib/lang/ru_web_subdomain.lng index 46203a181..376c78943 100644 --- a/interface/web/sites/lib/lang/ru_web_subdomain.lng +++ b/interface/web/sites/lib/lang/ru_web_subdomain.lng @@ -42,7 +42,7 @@ $wb['no_flag_txt'] = 'Нет флага'; $wb['domain_error_wildcard'] = 'Wildcard-поддомены не допускаются.'; $wb['proxy_directives_txt'] = 'Директивы прокси'; $wb['available_proxy_directive_snippets_txt'] = 'Доступные заготовки директив Proxy:'; -$wb['error_proxy_requires_url'] = 'Тип редиректа \"proxy\" требует URL в качестве пути перенаправления.'; +$wb['error_proxy_requires_url'] = 'Тип редиректа \\"proxy\\" требует URL в качестве пути перенаправления.'; $wb['http_port_txt'] = 'Порт HTTP'; $wb['https_port_txt'] = 'Порт HTTPS'; $wb['http_port_error_regex'] = 'Некорректный порт HTTP.'; diff --git a/interface/web/sites/lib/lang/ru_web_vhost_domain.lng b/interface/web/sites/lib/lang/ru_web_vhost_domain.lng index b8a3b4175..e87af3b65 100644 --- a/interface/web/sites/lib/lang/ru_web_vhost_domain.lng +++ b/interface/web/sites/lib/lang/ru_web_vhost_domain.lng @@ -152,4 +152,5 @@ $wb['enable_pagespeed_txt'] = 'Включить PageSpeed'; $wb['domain_error_acme_invalid'] = 'Domain name acme.invalid not permitted.'; $wb['log_retention_txt'] = 'Logfiles retention time'; $wb['log_retention_error_regex'] = 'Retention time in days (allowed values: min. 0 - max. 9999)'; +$wb['limit_web_quota_not_0_txt'] = 'Harddisk Quota cannot be set to 0.'; ?> diff --git a/interface/web/sites/lib/lang/se_web_vhost_domain.lng b/interface/web/sites/lib/lang/se_web_vhost_domain.lng index 2a6796657..1a2572b95 100644 --- a/interface/web/sites/lib/lang/se_web_vhost_domain.lng +++ b/interface/web/sites/lib/lang/se_web_vhost_domain.lng @@ -152,4 +152,5 @@ $wb['https_port_error_regex'] = 'HTTPS Port invalid.'; $wb['enable_pagespeed_txt'] = 'Enable PageSpeed'; $wb['log_retention_txt'] = 'Logfiles retention time'; $wb['log_retention_error_regex'] = 'Retention time in days (allowed values: min. 0 - max. 9999)'; +$wb['limit_web_quota_not_0_txt'] = 'Harddisk Quota cannot be set to 0.'; ?> diff --git a/interface/web/sites/lib/lang/sk_web_vhost_domain.lng b/interface/web/sites/lib/lang/sk_web_vhost_domain.lng index 2d354ce9d..17e60da6e 100644 --- a/interface/web/sites/lib/lang/sk_web_vhost_domain.lng +++ b/interface/web/sites/lib/lang/sk_web_vhost_domain.lng @@ -152,4 +152,5 @@ $wb['enable_pagespeed_txt'] = 'Enable PageSpeed'; $wb['log_retention_txt'] = 'Logfiles retention time'; $wb['log_retention_error_regex'] = 'Retention time in days (allowed values: min. 0 - max. 9999)'; $wb['domain_error_acme_invalid'] = 'Domain name acme.invalid not permitted.'; +$wb['limit_web_quota_not_0_txt'] = 'Harddisk Quota cannot be set to 0.'; ?> diff --git a/interface/web/sites/lib/lang/tr_web_vhost_domain.lng b/interface/web/sites/lib/lang/tr_web_vhost_domain.lng index 8a04a244e..2e9384fee 100644 --- a/interface/web/sites/lib/lang/tr_web_vhost_domain.lng +++ b/interface/web/sites/lib/lang/tr_web_vhost_domain.lng @@ -152,4 +152,5 @@ $wb['enable_pagespeed_txt'] = 'Enable PageSpeed'; $wb['log_retention_txt'] = 'Logfiles retention time'; $wb['log_retention_error_regex'] = 'Retention time in days (allowed values: min. 0 - max. 9999)'; $wb['domain_error_acme_invalid'] = 'Domain name acme.invalid not permitted.'; +$wb['limit_web_quota_not_0_txt'] = 'Harddisk Quota cannot be set to 0.'; ?> -- GitLab From de9ac2e8960471375dd1929150ee5d845ca78b36 Mon Sep 17 00:00:00 2001 From: Till Brehm Date: Fri, 5 Jul 2019 19:24:08 +0200 Subject: [PATCH 087/215] Fixed double quoting in language files. --- interface/lib/lang/ar.lng | 2 +- interface/lib/lang/bg.lng | 2 +- interface/lib/lang/ca.lng | 2 +- interface/lib/lang/cz.lng | 2 +- interface/lib/lang/de.lng | 2 +- interface/lib/lang/dk.lng | 2 +- interface/lib/lang/el.lng | 2 +- interface/lib/lang/es.lng | 2 +- interface/lib/lang/fi.lng | 2 +- interface/lib/lang/hr.lng | 2 +- interface/lib/lang/hu.lng | 2 +- interface/lib/lang/id.lng | 2 +- interface/lib/lang/it.lng | 2 +- interface/lib/lang/ja.lng | 2 +- interface/lib/lang/nl.lng | 2 +- interface/lib/lang/pl.lng | 2 +- interface/lib/lang/pt.lng | 2 +- interface/lib/lang/ro.lng | 2 +- interface/lib/lang/ru.lng | 2 +- interface/lib/lang/se.lng | 2 +- interface/lib/lang/sk.lng | 2 +- interface/lib/lang/tr.lng | 2 +- .../web/admin/lib/lang/ar_system_config.lng | 2 +- interface/web/admin/lib/lang/ar_users.lng | 2 +- .../web/admin/lib/lang/bg_system_config.lng | 2 +- interface/web/admin/lib/lang/bg_users.lng | 2 +- .../web/admin/lib/lang/br_system_config.lng | 2 +- interface/web/admin/lib/lang/ca_firewall.lng | 4 ++-- .../web/admin/lib/lang/ca_server_config.lng | 2 +- .../web/admin/lib/lang/ca_system_config.lng | 2 +- interface/web/admin/lib/lang/ca_users.lng | 2 +- .../web/admin/lib/lang/cz_remote_action.lng | 4 ++-- .../web/admin/lib/lang/cz_server_config.lng | 2 +- interface/web/admin/lib/lang/dk_firewall.lng | 4 ++-- .../web/admin/lib/lang/dk_server_config.lng | 2 +- .../web/admin/lib/lang/dk_system_config.lng | 2 +- interface/web/admin/lib/lang/dk_users.lng | 2 +- .../web/admin/lib/lang/el_system_config.lng | 2 +- interface/web/admin/lib/lang/el_users.lng | 2 +- interface/web/admin/lib/lang/es_firewall.lng | 4 ++-- .../web/admin/lib/lang/es_server_config.lng | 2 +- .../web/admin/lib/lang/es_system_config.lng | 4 ++-- .../web/admin/lib/lang/fi_system_config.lng | 2 +- interface/web/admin/lib/lang/fi_users.lng | 2 +- .../web/admin/lib/lang/fr_remote_action.lng | 2 +- .../web/admin/lib/lang/fr_system_config.lng | 2 +- .../web/admin/lib/lang/hr_system_config.lng | 2 +- interface/web/admin/lib/lang/hr_users.lng | 2 +- interface/web/admin/lib/lang/hr_users_list.lng | 2 +- .../web/admin/lib/lang/hu_system_config.lng | 2 +- interface/web/admin/lib/lang/hu_users.lng | 2 +- .../web/admin/lib/lang/id_system_config.lng | 2 +- interface/web/admin/lib/lang/id_users.lng | 2 +- .../web/admin/lib/lang/it_system_config.lng | 2 +- interface/web/admin/lib/lang/it_users.lng | 2 +- .../web/admin/lib/lang/ja_system_config.lng | 2 +- interface/web/admin/lib/lang/ja_users.lng | 2 +- .../web/admin/lib/lang/nl_system_config.lng | 2 +- interface/web/admin/lib/lang/nl_users.lng | 2 +- .../web/admin/lib/lang/pl_system_config.lng | 2 +- .../web/admin/lib/lang/pt_system_config.lng | 2 +- interface/web/admin/lib/lang/pt_users.lng | 2 +- .../web/admin/lib/lang/ro_system_config.lng | 2 +- interface/web/admin/lib/lang/ro_users.lng | 2 +- interface/web/admin/lib/lang/ru_firewall.lng | 4 ++-- .../web/admin/lib/lang/ru_server_config.lng | 2 +- .../web/admin/lib/lang/ru_system_config.lng | 4 ++-- interface/web/admin/lib/lang/ru_users.lng | 2 +- .../web/admin/lib/lang/se_system_config.lng | 2 +- .../web/admin/lib/lang/sk_system_config.lng | 2 +- interface/web/admin/lib/lang/sk_users.lng | 2 +- interface/web/admin/lib/lang/tr_firewall.lng | 4 ++-- .../web/admin/lib/lang/tr_remote_action.lng | 4 ++-- .../web/admin/lib/lang/tr_server_config.lng | 2 +- .../web/admin/lib/lang/tr_system_config.lng | 2 +- interface/web/admin/lib/lang/tr_users.lng | 2 +- interface/web/client/lib/lang/ar_client.lng | 2 +- interface/web/client/lib/lang/ar_reseller.lng | 2 +- interface/web/client/lib/lang/bg_client.lng | 2 +- interface/web/client/lib/lang/bg_reseller.lng | 2 +- interface/web/client/lib/lang/br_client.lng | 2 +- .../web/client/lib/lang/br_client_template.lng | 2 +- interface/web/client/lib/lang/br_reseller.lng | 2 +- interface/web/client/lib/lang/ca_client.lng | 2 +- interface/web/client/lib/lang/ca_reseller.lng | 2 +- interface/web/client/lib/lang/cz_client.lng | 2 +- interface/web/client/lib/lang/cz_reseller.lng | 2 +- interface/web/client/lib/lang/de_reseller.lng | 2 +- interface/web/client/lib/lang/dk_client.lng | 2 +- interface/web/client/lib/lang/dk_reseller.lng | 2 +- interface/web/client/lib/lang/el_client.lng | 2 +- interface/web/client/lib/lang/el_reseller.lng | 2 +- interface/web/client/lib/lang/es_client.lng | 4 ++-- .../web/client/lib/lang/es_client_template.lng | 4 ++-- interface/web/client/lib/lang/es_reseller.lng | 4 ++-- interface/web/client/lib/lang/fi_client.lng | 2 +- interface/web/client/lib/lang/fi_reseller.lng | 2 +- interface/web/client/lib/lang/fr_client.lng | 2 +- interface/web/client/lib/lang/fr_reseller.lng | 2 +- interface/web/client/lib/lang/hr_client.lng | 2 +- interface/web/client/lib/lang/hr_reseller.lng | 2 +- interface/web/client/lib/lang/hu_client.lng | 2 +- interface/web/client/lib/lang/hu_reseller.lng | 2 +- interface/web/client/lib/lang/id_client.lng | 2 +- interface/web/client/lib/lang/id_reseller.lng | 2 +- interface/web/client/lib/lang/it_client.lng | 2 +- interface/web/client/lib/lang/it_reseller.lng | 2 +- interface/web/client/lib/lang/ja_client.lng | 2 +- interface/web/client/lib/lang/ja_reseller.lng | 2 +- interface/web/client/lib/lang/nl_client.lng | 2 +- interface/web/client/lib/lang/nl_reseller.lng | 2 +- interface/web/client/lib/lang/pl_reseller.lng | 2 +- interface/web/client/lib/lang/pt_client.lng | 2 +- interface/web/client/lib/lang/pt_reseller.lng | 2 +- interface/web/client/lib/lang/ro_client.lng | 2 +- interface/web/client/lib/lang/ro_reseller.lng | 2 +- interface/web/client/lib/lang/ru_client.lng | 4 ++-- interface/web/client/lib/lang/ru_reseller.lng | 4 ++-- interface/web/client/lib/lang/se_client.lng | 2 +- interface/web/client/lib/lang/se_reseller.lng | 2 +- interface/web/client/lib/lang/sk_client.lng | 2 +- interface/web/client/lib/lang/sk_reseller.lng | 2 +- interface/web/client/lib/lang/tr_client.lng | 2 +- interface/web/client/lib/lang/tr_reseller.lng | 2 +- .../web/dashboard/lib/lang/es_dashlet_limits.lng | 2 +- interface/web/dns/lib/lang/br_dns_dmarc.lng | 10 +++++----- interface/web/dns/lib/lang/br_dns_tlsa.lng | 4 ++-- interface/web/dns/lib/lang/ru_dns_hinfo.lng | 2 +- .../web/help/lib/lang/br_support_message.lng | 2 +- interface/web/login/lib/lang/ar_login_as.lng | 6 +++--- interface/web/login/lib/lang/bg_login_as.lng | 6 +++--- interface/web/login/lib/lang/br_login_as.lng | 2 +- interface/web/login/lib/lang/ca_login_as.lng | 6 +++--- interface/web/login/lib/lang/dk_login_as.lng | 6 +++--- interface/web/login/lib/lang/el_login_as.lng | 6 +++--- interface/web/login/lib/lang/es_login_as.lng | 6 +++--- interface/web/login/lib/lang/fi_login_as.lng | 6 +++--- interface/web/login/lib/lang/hr_login_as.lng | 6 +++--- interface/web/login/lib/lang/hu_login_as.lng | 6 +++--- interface/web/login/lib/lang/id_login_as.lng | 6 +++--- interface/web/login/lib/lang/it_login_as.lng | 6 +++--- interface/web/login/lib/lang/ja_login_as.lng | 6 +++--- interface/web/login/lib/lang/nl_login_as.lng | 4 ++-- interface/web/login/lib/lang/pt_login_as.lng | 6 +++--- interface/web/login/lib/lang/ro_login_as.lng | 6 +++--- interface/web/login/lib/lang/ru_login_as.lng | 6 +++--- interface/web/login/lib/lang/se_login_as.lng | 6 +++--- interface/web/login/lib/lang/sk_login_as.lng | 6 +++--- interface/web/login/lib/lang/tr_login_as.lng | 6 +++--- interface/web/mail/lib/lang/ar_mail_get.lng | 2 +- interface/web/mail/lib/lang/bg_mail_get.lng | 2 +- interface/web/mail/lib/lang/br_mail_user.lng | 4 ++-- interface/web/mail/lib/lang/ca_mail_get.lng | 2 +- interface/web/mail/lib/lang/cz_mail_get.lng | 2 +- .../web/mail/lib/lang/cz_mail_mailinglist.lng | 2 +- interface/web/mail/lib/lang/dk_mail_get.lng | 2 +- interface/web/mail/lib/lang/el_mail_get.lng | 2 +- interface/web/mail/lib/lang/es.lng | 2 +- .../mail/lib/lang/es_mail_domain_catchall.lng | 4 ++-- .../lib/lang/es_mail_domain_catchall_list.lng | 4 ++-- interface/web/mail/lib/lang/es_mail_get.lng | 2 +- interface/web/mail/lib/lang/fi_mail_get.lng | 2 +- interface/web/mail/lib/lang/fr_mail_get.lng | 2 +- interface/web/mail/lib/lang/hr_mail_get.lng | 2 +- interface/web/mail/lib/lang/hu_mail_get.lng | 2 +- interface/web/mail/lib/lang/id_mail_get.lng | 2 +- interface/web/mail/lib/lang/it_mail_get.lng | 2 +- interface/web/mail/lib/lang/ja_mail_get.lng | 2 +- interface/web/mail/lib/lang/nl_mail_get.lng | 2 +- interface/web/mail/lib/lang/nl_mail_user.lng | 4 ++-- interface/web/mail/lib/lang/pt_mail_get.lng | 2 +- interface/web/mail/lib/lang/ro_mail_get.lng | 2 +- interface/web/mail/lib/lang/ru_mail_get.lng | 2 +- .../web/mail/lib/lang/ru_mail_user_filter.lng | 2 +- interface/web/mail/lib/lang/se_mail_get.lng | 2 +- interface/web/mail/lib/lang/sk_mail_get.lng | 2 +- interface/web/mail/lib/lang/tr_mail_get.lng | 2 +- .../mailuser/lib/lang/ru_mail_user_filter.lng | 2 +- interface/web/monitor/lib/lang/es.lng | 2 +- interface/web/sites/lib/lang/ar.lng | 2 +- interface/web/sites/lib/lang/ar_aps.lng | 16 ++++++++-------- .../web/sites/lib/lang/ar_web_childdomain.lng | 2 +- .../web/sites/lib/lang/ar_web_subdomain.lng | 2 +- interface/web/sites/lib/lang/bg.lng | 2 +- interface/web/sites/lib/lang/bg_aps.lng | 16 ++++++++-------- .../web/sites/lib/lang/bg_web_childdomain.lng | 2 +- .../web/sites/lib/lang/bg_web_subdomain.lng | 2 +- interface/web/sites/lib/lang/br.lng | 2 +- interface/web/sites/lib/lang/br_cron.lng | 4 ++-- interface/web/sites/lib/lang/br_database.lng | 2 +- .../web/sites/lib/lang/br_database_user.lng | 2 +- interface/web/sites/lib/lang/br_ftp_user.lng | 4 ++-- interface/web/sites/lib/lang/br_shell_user.lng | 4 ++-- .../web/sites/lib/lang/br_web_aliasdomain.lng | 4 ++-- .../web/sites/lib/lang/br_web_childdomain.lng | 6 +++--- interface/web/sites/lib/lang/br_web_domain.lng | 6 +++--- .../web/sites/lib/lang/br_web_subdomain.lng | 2 +- .../web/sites/lib/lang/br_web_vhost_domain.lng | 4 ++-- .../sites/lib/lang/br_web_vhost_subdomain.lng | 10 +++++----- interface/web/sites/lib/lang/br_webdav_user.lng | 4 ++-- interface/web/sites/lib/lang/ca.lng | 2 +- interface/web/sites/lib/lang/ca_aps.lng | 16 ++++++++-------- .../web/sites/lib/lang/ca_web_childdomain.lng | 2 +- .../web/sites/lib/lang/ca_web_subdomain.lng | 2 +- interface/web/sites/lib/lang/cz.lng | 2 +- interface/web/sites/lib/lang/cz_aps.lng | 16 ++++++++-------- .../web/sites/lib/lang/cz_web_childdomain.lng | 2 +- .../web/sites/lib/lang/cz_web_subdomain.lng | 2 +- .../web/sites/lib/lang/de_web_childdomain.lng | 2 +- .../web/sites/lib/lang/de_web_subdomain.lng | 2 +- interface/web/sites/lib/lang/dk.lng | 2 +- interface/web/sites/lib/lang/dk_aps.lng | 16 ++++++++-------- .../web/sites/lib/lang/dk_web_childdomain.lng | 2 +- .../web/sites/lib/lang/dk_web_subdomain.lng | 2 +- interface/web/sites/lib/lang/el.lng | 2 +- interface/web/sites/lib/lang/el_aps.lng | 16 ++++++++-------- .../web/sites/lib/lang/el_web_childdomain.lng | 2 +- .../web/sites/lib/lang/el_web_subdomain.lng | 2 +- interface/web/sites/lib/lang/es.lng | 2 +- interface/web/sites/lib/lang/es_aps.lng | 16 ++++++++-------- .../web/sites/lib/lang/es_web_childdomain.lng | 4 ++-- .../web/sites/lib/lang/es_web_subdomain.lng | 2 +- .../web/sites/lib/lang/es_web_vhost_domain.lng | 2 +- interface/web/sites/lib/lang/fi.lng | 2 +- interface/web/sites/lib/lang/fi_aps.lng | 16 ++++++++-------- .../web/sites/lib/lang/fi_web_childdomain.lng | 2 +- .../web/sites/lib/lang/fi_web_subdomain.lng | 2 +- interface/web/sites/lib/lang/fr.lng | 2 +- interface/web/sites/lib/lang/fr_aps.lng | 16 ++++++++-------- .../web/sites/lib/lang/fr_web_childdomain.lng | 2 +- .../web/sites/lib/lang/fr_web_subdomain.lng | 2 +- interface/web/sites/lib/lang/hr.lng | 2 +- interface/web/sites/lib/lang/hr_aps.lng | 16 ++++++++-------- .../web/sites/lib/lang/hr_web_childdomain.lng | 2 +- .../web/sites/lib/lang/hr_web_subdomain.lng | 2 +- interface/web/sites/lib/lang/hu.lng | 2 +- interface/web/sites/lib/lang/hu_aps.lng | 16 ++++++++-------- .../web/sites/lib/lang/hu_web_childdomain.lng | 2 +- .../web/sites/lib/lang/hu_web_subdomain.lng | 2 +- interface/web/sites/lib/lang/id.lng | 2 +- interface/web/sites/lib/lang/id_aps.lng | 16 ++++++++-------- .../web/sites/lib/lang/id_web_childdomain.lng | 2 +- .../web/sites/lib/lang/id_web_subdomain.lng | 2 +- interface/web/sites/lib/lang/it.lng | 2 +- interface/web/sites/lib/lang/it_aps.lng | 16 ++++++++-------- .../web/sites/lib/lang/it_web_childdomain.lng | 2 +- .../web/sites/lib/lang/it_web_subdomain.lng | 2 +- interface/web/sites/lib/lang/ja.lng | 2 +- interface/web/sites/lib/lang/ja_aps.lng | 16 ++++++++-------- .../web/sites/lib/lang/ja_web_childdomain.lng | 2 +- .../web/sites/lib/lang/ja_web_subdomain.lng | 2 +- interface/web/sites/lib/lang/nl.lng | 2 +- interface/web/sites/lib/lang/nl_aps.lng | 16 ++++++++-------- .../web/sites/lib/lang/nl_web_childdomain.lng | 2 +- .../web/sites/lib/lang/nl_web_subdomain.lng | 2 +- interface/web/sites/lib/lang/pl_aps.lng | 16 ++++++++-------- interface/web/sites/lib/lang/pt.lng | 2 +- interface/web/sites/lib/lang/pt_aps.lng | 16 ++++++++-------- .../web/sites/lib/lang/pt_web_childdomain.lng | 2 +- .../web/sites/lib/lang/pt_web_subdomain.lng | 2 +- interface/web/sites/lib/lang/ro.lng | 2 +- interface/web/sites/lib/lang/ro_aps.lng | 16 ++++++++-------- .../web/sites/lib/lang/ro_web_childdomain.lng | 2 +- .../web/sites/lib/lang/ro_web_subdomain.lng | 2 +- interface/web/sites/lib/lang/ru.lng | 2 +- interface/web/sites/lib/lang/ru_aps.lng | 16 ++++++++-------- interface/web/sites/lib/lang/ru_database.lng | 2 +- .../web/sites/lib/lang/ru_database_user.lng | 2 +- .../web/sites/lib/lang/ru_web_childdomain.lng | 2 +- .../web/sites/lib/lang/ru_web_subdomain.lng | 2 +- interface/web/sites/lib/lang/se.lng | 2 +- interface/web/sites/lib/lang/se_aps.lng | 16 ++++++++-------- .../web/sites/lib/lang/se_web_childdomain.lng | 2 +- .../web/sites/lib/lang/se_web_subdomain.lng | 2 +- interface/web/sites/lib/lang/sk.lng | 2 +- interface/web/sites/lib/lang/sk_aps.lng | 16 ++++++++-------- .../web/sites/lib/lang/sk_web_childdomain.lng | 2 +- .../web/sites/lib/lang/sk_web_subdomain.lng | 2 +- interface/web/sites/lib/lang/tr.lng | 2 +- interface/web/sites/lib/lang/tr_aps.lng | 16 ++++++++-------- .../web/sites/lib/lang/tr_web_childdomain.lng | 2 +- .../web/sites/lib/lang/tr_web_subdomain.lng | 2 +- interface/web/vm/lib/lang/dk_openvz_template.lng | 2 +- interface/web/vm/lib/lang/es_openvz_template.lng | 2 +- interface/web/vm/lib/lang/tr_openvz_template.lng | 2 +- 285 files changed, 514 insertions(+), 514 deletions(-) diff --git a/interface/lib/lang/ar.lng b/interface/lib/lang/ar.lng index 25dd92083..c8ee365e4 100644 --- a/interface/lib/lang/ar.lng +++ b/interface/lib/lang/ar.lng @@ -145,7 +145,7 @@ $wb['strength_2'] = 'Fair'; $wb['strength_3'] = 'Good'; $wb['strength_4'] = 'Strong'; $wb['strength_5'] = 'Very Strong'; -$wb['weak_password_txt'] = 'The chosen password does not match the security guidelines. It has to be at least {chars} chars in length and have a strength of \\"{strength}\\".'; +$wb['weak_password_txt'] = 'The chosen password does not match the security guidelines. It has to be at least {chars} chars in length and have a strength of \"{strength}\".'; $wb['weak_password_length_txt'] = 'The chosen password does not match the security guidelines. It has to be at least {chars} chars in length.'; $wb['security_check1_txt'] = 'Check for security permission:'; $wb['security_check2_txt'] = 'failed.'; diff --git a/interface/lib/lang/bg.lng b/interface/lib/lang/bg.lng index ff1e39fe3..eafc8334d 100644 --- a/interface/lib/lang/bg.lng +++ b/interface/lib/lang/bg.lng @@ -145,7 +145,7 @@ $wb['strength_2'] = 'Fair'; $wb['strength_3'] = 'Good'; $wb['strength_4'] = 'Strong'; $wb['strength_5'] = 'Very Strong'; -$wb['weak_password_txt'] = 'The chosen password does not match the security guidelines. It has to be at least {chars} chars in length and have a strength of \\"{strength}\\".'; +$wb['weak_password_txt'] = 'The chosen password does not match the security guidelines. It has to be at least {chars} chars in length and have a strength of \"{strength}\".'; $wb['weak_password_length_txt'] = 'The chosen password does not match the security guidelines. It has to be at least {chars} chars in length.'; $wb['security_check1_txt'] = 'Check for security permission:'; $wb['security_check2_txt'] = 'failed.'; diff --git a/interface/lib/lang/ca.lng b/interface/lib/lang/ca.lng index c39cd0db2..03b9e65a0 100644 --- a/interface/lib/lang/ca.lng +++ b/interface/lib/lang/ca.lng @@ -145,7 +145,7 @@ $wb['strength_2'] = 'Moyen'; $wb['strength_3'] = 'Bon'; $wb['strength_4'] = 'Fort'; $wb['strength_5'] = 'Très fort'; -$wb['weak_password_txt'] = 'Le mot de passe choisi ne rencontre pas les minimas requis : {chars} caractères minimums et une force de \\"{strength}\\".'; +$wb['weak_password_txt'] = 'Le mot de passe choisi ne rencontre pas les minimas requis : {chars} caractères minimums et une force de \"{strength}\".'; $wb['weak_password_length_txt'] = 'Le mot de passe choisi ne rencontre pas les minimas requis : {chars} caractères minimums.'; $wb['security_check1_txt'] = 'Vérifier les permissions de sécurité:'; $wb['security_check2_txt'] = 'Echec'; diff --git a/interface/lib/lang/cz.lng b/interface/lib/lang/cz.lng index 6bd61dd6d..6d95c1249 100644 --- a/interface/lib/lang/cz.lng +++ b/interface/lib/lang/cz.lng @@ -145,7 +145,7 @@ $wb['strength_2'] = 'Podprůměrná'; $wb['strength_3'] = 'Dobrá'; $wb['strength_4'] = 'Silná'; $wb['strength_5'] = 'Velmi silná'; -$wb['weak_password_txt'] = 'Zvolené heslo neodpovídá požadavkům zásad pro tvorbu hesel. Heslo musí být alespoň {chars} znaků dlouhé a mající sílu \\"{strength}\\".'; +$wb['weak_password_txt'] = 'Zvolené heslo neodpovídá požadavkům zásad pro tvorbu hesel. Heslo musí být alespoň {chars} znaků dlouhé a mající sílu \"{strength}\".'; $wb['weak_password_length_txt'] = 'Zvolené heslo neodpovídá požadavkům zásad pro tvorbu hesel. Heslo musí být alespoň {chars} znaků dlouhé.'; $wb['security_check1_txt'] = 'Check for security permission:'; $wb['security_check2_txt'] = 'failed.'; diff --git a/interface/lib/lang/de.lng b/interface/lib/lang/de.lng index 61551ceea..6f2e2d00b 100644 --- a/interface/lib/lang/de.lng +++ b/interface/lib/lang/de.lng @@ -152,7 +152,7 @@ $wb['strength_2'] = 'Mittel'; $wb['strength_3'] = 'Gut'; $wb['strength_4'] = 'Stark'; $wb['strength_5'] = 'Sehr stark'; -$wb['weak_password_txt'] = 'Das gewählte Passwort erfüllt die Sicherheitsanforderungen nicht. Es muss mindestens {chars} Zeichen lang sein und die Stärke \\"{strength}\\" besitzen.'; +$wb['weak_password_txt'] = 'Das gewählte Passwort erfüllt die Sicherheitsanforderungen nicht. Es muss mindestens {chars} Zeichen lang sein und die Stärke \"{strength}\" besitzen.'; $wb['weak_password_length_txt'] = 'Das gewählte Passwort erfüllt die Sicherheitsanforderungen nicht. Es muss mindestens {chars} Zeichen lang sein.'; $wb['security_check1_txt'] = 'Sicherheitsüberprüfung für:'; $wb['security_check2_txt'] = 'fehlgeschlagen.'; diff --git a/interface/lib/lang/dk.lng b/interface/lib/lang/dk.lng index 798d2ccd4..2f7aeb279 100644 --- a/interface/lib/lang/dk.lng +++ b/interface/lib/lang/dk.lng @@ -146,7 +146,7 @@ $wb['strength_2'] = 'Nogenlunde'; $wb['strength_3'] = 'God'; $wb['strength_4'] = 'Stærk'; $wb['strength_5'] = 'Meget Stærk'; -$wb['weak_password_txt'] = 'Den valgte adgangskode matcher ikke retningslinjerne for sikkerhedsindstillingerne. Det skal være mindst {chars} tegn i længden og have en styrke på \\"{strength}\\".'; +$wb['weak_password_txt'] = 'Den valgte adgangskode matcher ikke retningslinjerne for sikkerhedsindstillingerne. Det skal være mindst {chars} tegn i længden og have en styrke på \"{strength}\".'; $wb['weak_password_length_txt'] = 'Den valgte adgangskode matcher ikke retningslinjerne for sikkerhedsindstillingerne. Det skal være mindst {chars} tegn i længden.'; $wb['security_check1_txt'] = 'Check for sikkerheds tilladelse:'; $wb['security_check2_txt'] = 'mislykkedes.'; diff --git a/interface/lib/lang/el.lng b/interface/lib/lang/el.lng index 382bf4a75..53cd56f17 100644 --- a/interface/lib/lang/el.lng +++ b/interface/lib/lang/el.lng @@ -145,7 +145,7 @@ $wb['strength_2'] = 'Fair'; $wb['strength_3'] = 'Good'; $wb['strength_4'] = 'Strong'; $wb['strength_5'] = 'Very Strong'; -$wb['weak_password_txt'] = 'The chosen password does not match the security guidelines. It has to be at least {chars} chars in length and have a strength of \\"{strength}\\".'; +$wb['weak_password_txt'] = 'The chosen password does not match the security guidelines. It has to be at least {chars} chars in length and have a strength of \"{strength}\".'; $wb['weak_password_length_txt'] = 'The chosen password does not match the security guidelines. It has to be at least {chars} chars in length.'; $wb['security_check1_txt'] = 'Check for security permission:'; $wb['security_check2_txt'] = 'failed.'; diff --git a/interface/lib/lang/es.lng b/interface/lib/lang/es.lng index 3b1bae0b4..8b9bc94ef 100644 --- a/interface/lib/lang/es.lng +++ b/interface/lib/lang/es.lng @@ -146,7 +146,7 @@ $wb['strength_2'] = 'Aceptable'; $wb['strength_3'] = 'Buena'; $wb['strength_4'] = 'Fuerte'; $wb['strength_5'] = 'Muy fuerte'; -$wb['weak_password_txt'] = 'La contraseña elegida no coincide con las directrices de seguridad. Debe contener al menos {chars} caracteres y tener una fortaleza \\"{strength}\\".'; +$wb['weak_password_txt'] = 'La contraseña elegida no coincide con las directrices de seguridad. Debe contener al menos {chars} caracteres y tener una fortaleza \"{strength}\".'; $wb['weak_password_length_txt'] = 'La contraseña elegida no coincide con las directrices de seguridad. Debe contener al menos {chars} caracteres.'; $wb['security_check1_txt'] = 'Verificar permisos de seguridad:'; $wb['security_check2_txt'] = 'ha fallado.'; diff --git a/interface/lib/lang/fi.lng b/interface/lib/lang/fi.lng index d4c23ca77..0439142c5 100755 --- a/interface/lib/lang/fi.lng +++ b/interface/lib/lang/fi.lng @@ -145,7 +145,7 @@ $wb['strength_2'] = 'Fair'; $wb['strength_3'] = 'Good'; $wb['strength_4'] = 'Strong'; $wb['strength_5'] = 'Very Strong'; -$wb['weak_password_txt'] = 'The chosen password does not match the security guidelines. It has to be at least {chars} chars in length and have a strength of \\"{strength}\\".'; +$wb['weak_password_txt'] = 'The chosen password does not match the security guidelines. It has to be at least {chars} chars in length and have a strength of \"{strength}\".'; $wb['weak_password_length_txt'] = 'The chosen password does not match the security guidelines. It has to be at least {chars} chars in length.'; $wb['security_check1_txt'] = 'Check for security permission:'; $wb['security_check2_txt'] = 'failed.'; diff --git a/interface/lib/lang/hr.lng b/interface/lib/lang/hr.lng index 310371be4..c6a1b74d8 100644 --- a/interface/lib/lang/hr.lng +++ b/interface/lib/lang/hr.lng @@ -145,7 +145,7 @@ $wb['strength_2'] = 'Dobro'; $wb['strength_3'] = 'Bolje'; $wb['strength_4'] = 'Jako'; $wb['strength_5'] = 'Odlično'; -$wb['weak_password_txt'] = 'Unešena šifra nije dobra. Mora biti dugačka barem {chars} znakova i jačine \\"{strength}\\".'; +$wb['weak_password_txt'] = 'Unešena šifra nije dobra. Mora biti dugačka barem {chars} znakova i jačine \"{strength}\".'; $wb['weak_password_length_txt'] = 'Unešena šifra nije dobra. Mora biti dugačka barem {chars} znakova.'; $wb['security_check1_txt'] = 'Provjerite sigurnosne dozvole:'; $wb['security_check2_txt'] = 'greška.'; diff --git a/interface/lib/lang/hu.lng b/interface/lib/lang/hu.lng index dd4cce79b..1ef741d6a 100644 --- a/interface/lib/lang/hu.lng +++ b/interface/lib/lang/hu.lng @@ -145,7 +145,7 @@ $wb['strength_2'] = 'Fair'; $wb['strength_3'] = 'Good'; $wb['strength_4'] = 'Strong'; $wb['strength_5'] = 'Very Strong'; -$wb['weak_password_txt'] = 'The chosen password does not match the security guidelines. It has to be at least {chars} chars in length and have a strength of \\"{strength}\\".'; +$wb['weak_password_txt'] = 'The chosen password does not match the security guidelines. It has to be at least {chars} chars in length and have a strength of \"{strength}\".'; $wb['weak_password_length_txt'] = 'The chosen password does not match the security guidelines. It has to be at least {chars} chars in length.'; $wb['security_check1_txt'] = 'Check for security permission:'; $wb['security_check2_txt'] = 'failed.'; diff --git a/interface/lib/lang/id.lng b/interface/lib/lang/id.lng index bd90fd5a1..6483418b3 100644 --- a/interface/lib/lang/id.lng +++ b/interface/lib/lang/id.lng @@ -145,7 +145,7 @@ $wb['strength_2'] = 'Fair'; $wb['strength_3'] = 'Good'; $wb['strength_4'] = 'Strong'; $wb['strength_5'] = 'Very Strong'; -$wb['weak_password_txt'] = 'The chosen password does not match the security guidelines. It has to be at least {chars} chars in length and have a strength of \\"{strength}\\".'; +$wb['weak_password_txt'] = 'The chosen password does not match the security guidelines. It has to be at least {chars} chars in length and have a strength of \"{strength}\".'; $wb['weak_password_length_txt'] = 'The chosen password does not match the security guidelines. It has to be at least {chars} chars in length.'; $wb['security_check1_txt'] = 'Check for security permission:'; $wb['security_check2_txt'] = 'failed.'; diff --git a/interface/lib/lang/it.lng b/interface/lib/lang/it.lng index 33d16c3d5..332cd1ab9 100644 --- a/interface/lib/lang/it.lng +++ b/interface/lib/lang/it.lng @@ -138,7 +138,7 @@ $wb['strength_2'] = 'Mediocre'; $wb['strength_3'] = 'Buono'; $wb['strength_4'] = 'Forte'; $wb['strength_5'] = 'Molto forte'; -$wb['weak_password_txt'] = 'La password indicata non segue le impostazioni di sicurezza. Deve essere lunga almeno {chars} caratteri ed avere un livello di sicurezza pari a \\"{strength}\\".'; +$wb['weak_password_txt'] = 'La password indicata non segue le impostazioni di sicurezza. Deve essere lunga almeno {chars} caratteri ed avere un livello di sicurezza pari a \"{strength}\".'; $wb['weak_password_length_txt'] = 'La password indicata non segue le impostazioni di sicurezza. Deve essere lunga almeno {chars} caratteri.'; $wb['security_check1_txt'] = 'Verifica permessi di sicurezza:'; $wb['security_check2_txt'] = 'fallito.'; diff --git a/interface/lib/lang/ja.lng b/interface/lib/lang/ja.lng index 2a56e7739..5f8b20add 100644 --- a/interface/lib/lang/ja.lng +++ b/interface/lib/lang/ja.lng @@ -145,7 +145,7 @@ $wb['strength_2'] = 'Fair'; $wb['strength_3'] = 'Good'; $wb['strength_4'] = 'Strong'; $wb['strength_5'] = 'Very Strong'; -$wb['weak_password_txt'] = 'The chosen password does not match the security guidelines. It has to be at least {chars} chars in length and have a strength of \\"{strength}\\".'; +$wb['weak_password_txt'] = 'The chosen password does not match the security guidelines. It has to be at least {chars} chars in length and have a strength of \"{strength}\".'; $wb['weak_password_length_txt'] = 'The chosen password does not match the security guidelines. It has to be at least {chars} chars in length.'; $wb['security_check1_txt'] = 'Check for security permission:'; $wb['security_check2_txt'] = 'failed.'; diff --git a/interface/lib/lang/nl.lng b/interface/lib/lang/nl.lng index 888f9c020..561e4cdb7 100644 --- a/interface/lib/lang/nl.lng +++ b/interface/lib/lang/nl.lng @@ -145,7 +145,7 @@ $wb['strength_2'] = 'Fair'; $wb['strength_3'] = 'Good'; $wb['strength_4'] = 'Strong'; $wb['strength_5'] = 'Very Strong'; -$wb['weak_password_txt'] = 'The chosen password does not match the security guidelines. It has to be at least {chars} chars in length and have a strength of \\"{strength}\\".'; +$wb['weak_password_txt'] = 'The chosen password does not match the security guidelines. It has to be at least {chars} chars in length and have a strength of \"{strength}\".'; $wb['weak_password_length_txt'] = 'The chosen password does not match the security guidelines. It has to be at least {chars} chars in length.'; $wb['security_check1_txt'] = 'Check for security permission:'; $wb['security_check2_txt'] = 'failed.'; diff --git a/interface/lib/lang/pl.lng b/interface/lib/lang/pl.lng index b5b62c816..abbb98ee1 100644 --- a/interface/lib/lang/pl.lng +++ b/interface/lib/lang/pl.lng @@ -145,7 +145,7 @@ $wb['strength_2'] = 'Fair'; $wb['strength_3'] = 'Good'; $wb['strength_4'] = 'Strong'; $wb['strength_5'] = 'Very Strong'; -$wb['weak_password_txt'] = 'The chosen password does not match the security guidelines. It has to be at least {chars} chars in length and have a strength of \\"{strength}\\".'; +$wb['weak_password_txt'] = 'The chosen password does not match the security guidelines. It has to be at least {chars} chars in length and have a strength of \"{strength}\".'; $wb['weak_password_length_txt'] = 'The chosen password does not match the security guidelines. It has to be at least {chars} chars in length.'; $wb['security_check1_txt'] = 'Check for security permission:'; $wb['security_check2_txt'] = 'failed.'; diff --git a/interface/lib/lang/pt.lng b/interface/lib/lang/pt.lng index 7845520a5..026aff80a 100644 --- a/interface/lib/lang/pt.lng +++ b/interface/lib/lang/pt.lng @@ -145,7 +145,7 @@ $wb['strength_2'] = 'Fair'; $wb['strength_3'] = 'Good'; $wb['strength_4'] = 'Strong'; $wb['strength_5'] = 'Very Strong'; -$wb['weak_password_txt'] = 'The chosen password does not match the security guidelines. It has to be at least {chars} chars in length and have a strength of \\"{strength}\\".'; +$wb['weak_password_txt'] = 'The chosen password does not match the security guidelines. It has to be at least {chars} chars in length and have a strength of \"{strength}\".'; $wb['weak_password_length_txt'] = 'The chosen password does not match the security guidelines. It has to be at least {chars} chars in length.'; $wb['security_check1_txt'] = 'Check for security permission:'; $wb['security_check2_txt'] = 'failed.'; diff --git a/interface/lib/lang/ro.lng b/interface/lib/lang/ro.lng index 613f2377a..bfbd725da 100644 --- a/interface/lib/lang/ro.lng +++ b/interface/lib/lang/ro.lng @@ -145,7 +145,7 @@ $wb['strength_2'] = 'Fair'; $wb['strength_3'] = 'Good'; $wb['strength_4'] = 'Strong'; $wb['strength_5'] = 'Very Strong'; -$wb['weak_password_txt'] = 'The chosen password does not match the security guidelines. It has to be at least {chars} chars in length and have a strength of \\"{strength}\\".'; +$wb['weak_password_txt'] = 'The chosen password does not match the security guidelines. It has to be at least {chars} chars in length and have a strength of \"{strength}\".'; $wb['weak_password_length_txt'] = 'The chosen password does not match the security guidelines. It has to be at least {chars} chars in length.'; $wb['security_check1_txt'] = 'Check for security permission:'; $wb['security_check2_txt'] = 'failed.'; diff --git a/interface/lib/lang/ru.lng b/interface/lib/lang/ru.lng index e5e8ce627..823ef44c7 100644 --- a/interface/lib/lang/ru.lng +++ b/interface/lib/lang/ru.lng @@ -145,7 +145,7 @@ $wb['strength_2'] = 'Средний'; $wb['strength_3'] = 'Хороший'; $wb['strength_4'] = 'Стойкий'; $wb['strength_5'] = 'Очень стойкий'; -$wb['weak_password_txt'] = 'Выбранный пароль не соответствует требованиям безопасности. Он должен быть как минимум {chars} символов в длину и стойкость \\"{strength}\\".'; +$wb['weak_password_txt'] = 'Выбранный пароль не соответствует требованиям безопасности. Он должен быть как минимум {chars} символов в длину и стойкость \"{strength}\".'; $wb['weak_password_length_txt'] = 'Выбранный пароль не соответствует требованиям безопасности. Он должен быть как минимум {chars} символов в длину.'; $wb['security_check1_txt'] = 'Проверка разрешений безопасности:'; $wb['security_check2_txt'] = 'не удалось.'; diff --git a/interface/lib/lang/se.lng b/interface/lib/lang/se.lng index b6767144d..4f67c2802 100644 --- a/interface/lib/lang/se.lng +++ b/interface/lib/lang/se.lng @@ -145,7 +145,7 @@ $wb['strength_2'] = 'Sådär'; $wb['strength_3'] = 'Bra'; $wb['strength_4'] = 'Starkt'; $wb['strength_5'] = 'Väldigt starkt'; -$wb['weak_password_txt'] = 'The chosen password does not match the security guidelines. It has to be at least {chars} chars in length and have a strength of \\"{strength}\\".'; +$wb['weak_password_txt'] = 'The chosen password does not match the security guidelines. It has to be at least {chars} chars in length and have a strength of \"{strength}\".'; $wb['weak_password_length_txt'] = 'The chosen password does not match the security guidelines. It has to be at least {chars} chars in length.'; $wb['security_check1_txt'] = 'Check for security permission:'; $wb['security_check2_txt'] = 'failed.'; diff --git a/interface/lib/lang/sk.lng b/interface/lib/lang/sk.lng index 6b4ef7676..b647226e3 100644 --- a/interface/lib/lang/sk.lng +++ b/interface/lib/lang/sk.lng @@ -145,7 +145,7 @@ $wb['strength_2'] = 'Fair'; $wb['strength_3'] = 'Good'; $wb['strength_4'] = 'Strong'; $wb['strength_5'] = 'Very Strong'; -$wb['weak_password_txt'] = 'The chosen password does not match the security guidelines. It has to be at least {chars} chars in length and have a strength of \\"{strength}\\".'; +$wb['weak_password_txt'] = 'The chosen password does not match the security guidelines. It has to be at least {chars} chars in length and have a strength of \"{strength}\".'; $wb['weak_password_length_txt'] = 'The chosen password does not match the security guidelines. It has to be at least {chars} chars in length.'; $wb['security_check1_txt'] = 'Check for security permission:'; $wb['security_check2_txt'] = 'failed.'; diff --git a/interface/lib/lang/tr.lng b/interface/lib/lang/tr.lng index 115bc890b..551fae8d8 100644 --- a/interface/lib/lang/tr.lng +++ b/interface/lib/lang/tr.lng @@ -146,7 +146,7 @@ $wb['strength_2'] = 'Yeterli'; $wb['strength_3'] = 'İyi'; $wb['strength_4'] = 'Güçlü'; $wb['strength_5'] = 'Çok Güçlü'; -$wb['weak_password_txt'] = 'Yazdığınız parola güvenlik ilkesine uygun değil. Parola en az {chars} karakter uzunluğunda ve \\"{strength}\\" güçlüğünde olmalı.'; +$wb['weak_password_txt'] = 'Yazdığınız parola güvenlik ilkesine uygun değil. Parola en az {chars} karakter uzunluğunda ve \"{strength}\" güçlüğünde olmalı.'; $wb['weak_password_length_txt'] = 'Yazdığınız parola güvenlik ilkesine uygun değil. Parola en az {chars} karakter uzunluğunda olmalı.'; $wb['security_check1_txt'] = 'Güvenlik iznini denetle:'; $wb['security_check2_txt'] = 'başarısız.'; diff --git a/interface/web/admin/lib/lang/ar_system_config.lng b/interface/web/admin/lib/lang/ar_system_config.lng index 0a830014d..b65092906 100644 --- a/interface/web/admin/lib/lang/ar_system_config.lng +++ b/interface/web/admin/lib/lang/ar_system_config.lng @@ -67,7 +67,7 @@ $wb['customer_no_template_error_regex_txt'] = 'The customer No. template contain $wb['customer_no_start_txt'] = 'Customer No. start value'; $wb['customer_no_counter_txt'] = 'Customer No. counter'; $wb['session_timeout_txt'] = 'Session timeout (minutes)'; -$wb['session_allow_endless_txt'] = 'Enable \\"stay logged in\\"'; +$wb['session_allow_endless_txt'] = 'Enable \"stay logged in\"'; $wb['No'] = 'No'; $wb['min_password_length_txt'] = 'Minimum password length'; $wb['min_password_strength_txt'] = 'Minimum password strength'; diff --git a/interface/web/admin/lib/lang/ar_users.lng b/interface/web/admin/lib/lang/ar_users.lng index dcbc4f472..9d9923b63 100644 --- a/interface/web/admin/lib/lang/ar_users.lng +++ b/interface/web/admin/lib/lang/ar_users.lng @@ -29,7 +29,7 @@ $wb['generate_password_txt'] = 'Generate Password'; $wb['repeat_password_txt'] = 'Repeat Password'; $wb['password_mismatch_txt'] = 'The passwords do not match.'; $wb['password_match_txt'] = 'The passwords do match.'; -$wb['username_error_collision'] = 'The username may not be web or web plus a number.\\"'; +$wb['username_error_collision'] = 'The username may not be web or web plus a number.\"'; $wb['client_not_admin_err'] = 'A user that belongs to a client can not be set to type: admin'; $wb['lost_password_function_txt'] = 'Forgot password function is available'; $wb['no_user_insert'] = 'CP-Users of type -user- get added and updated automatically when you add a client or reseller.'; diff --git a/interface/web/admin/lib/lang/bg_system_config.lng b/interface/web/admin/lib/lang/bg_system_config.lng index 130cb596a..15d533870 100644 --- a/interface/web/admin/lib/lang/bg_system_config.lng +++ b/interface/web/admin/lib/lang/bg_system_config.lng @@ -67,7 +67,7 @@ $wb['customer_no_template_error_regex_txt'] = 'The customer No. template contain $wb['customer_no_start_txt'] = 'Customer No. start value'; $wb['customer_no_counter_txt'] = 'Customer No. counter'; $wb['session_timeout_txt'] = 'Session timeout (minutes)'; -$wb['session_allow_endless_txt'] = 'Enable \\"stay logged in\\"'; +$wb['session_allow_endless_txt'] = 'Enable \"stay logged in\"'; $wb['No'] = 'No'; $wb['min_password_length_txt'] = 'Minimum password length'; $wb['min_password_strength_txt'] = 'Minimum password strength'; diff --git a/interface/web/admin/lib/lang/bg_users.lng b/interface/web/admin/lib/lang/bg_users.lng index e8dc631a5..e36d2d9d3 100644 --- a/interface/web/admin/lib/lang/bg_users.lng +++ b/interface/web/admin/lib/lang/bg_users.lng @@ -29,7 +29,7 @@ $wb['generate_password_txt'] = 'Generate Password'; $wb['repeat_password_txt'] = 'Repeat Password'; $wb['password_mismatch_txt'] = 'The passwords do not match.'; $wb['password_match_txt'] = 'The passwords do match.'; -$wb['username_error_collision'] = 'The username may not be web or web plus a number.\\"'; +$wb['username_error_collision'] = 'The username may not be web or web plus a number.\"'; $wb['client_not_admin_err'] = 'A user that belongs to a client can not be set to type: admin'; $wb['lost_password_function_txt'] = 'Forgot password function is available'; $wb['no_user_insert'] = 'CP-Users of type -user- get added and updated automatically when you add a client or reseller.'; diff --git a/interface/web/admin/lib/lang/br_system_config.lng b/interface/web/admin/lib/lang/br_system_config.lng index 8688ca53a..3d8ea38e1 100644 --- a/interface/web/admin/lib/lang/br_system_config.lng +++ b/interface/web/admin/lib/lang/br_system_config.lng @@ -67,7 +67,7 @@ $wb['customer_no_template_error_regex_txt'] = 'O número do gabarito do cliente $wb['customer_no_start_txt'] = 'Valor inicial do código do cliente'; $wb['customer_no_counter_txt'] = 'Contador de código do cliente'; $wb['session_timeout_txt'] = 'Duração da sessão (minutos)'; -$wb['session_allow_endless_txt'] = 'Habilitar \\"Manter-me conectado\\"'; +$wb['session_allow_endless_txt'] = 'Habilitar \"Manter-me conectado\"'; $wb['min_password_length_txt'] = 'Comprimento mínimo da senha'; $wb['min_password_strength_txt'] = 'Dificuldade mínima da senha'; $wb['company_name_txt'] = 'Nome da empresa no título da página'; diff --git a/interface/web/admin/lib/lang/ca_firewall.lng b/interface/web/admin/lib/lang/ca_firewall.lng index 06a51c80c..0e08215f7 100644 --- a/interface/web/admin/lib/lang/ca_firewall.lng +++ b/interface/web/admin/lib/lang/ca_firewall.lng @@ -6,6 +6,6 @@ $wb['tcp_port_help_txt'] = 'Separated by comma'; $wb['udp_port_help_txt'] = 'Separated by comma'; $wb['active_txt'] = 'Active'; $wb['firewall_error_unique'] = 'There is already a firewall record for this server.'; -$wb['tcp_ports_error_regex'] = 'Character not allowed in tcp port definition. Allowed characters are numbers, \\":\\" and \\",\\".'; -$wb['udp_ports_error_regex'] = 'Character not allowed in udp port definition. Allowed characters are numbers, \\":\\" and \\",\\".'; +$wb['tcp_ports_error_regex'] = 'Character not allowed in tcp port definition. Allowed characters are numbers, \":\" and \",\".'; +$wb['udp_ports_error_regex'] = 'Character not allowed in udp port definition. Allowed characters are numbers, \":\" and \",\".'; ?> diff --git a/interface/web/admin/lib/lang/ca_server_config.lng b/interface/web/admin/lib/lang/ca_server_config.lng index 815dbd30b..42fb15c24 100644 --- a/interface/web/admin/lib/lang/ca_server_config.lng +++ b/interface/web/admin/lib/lang/ca_server_config.lng @@ -161,7 +161,7 @@ $wb['do_not_try_rescue_httpd_txt'] = 'Disable HTTPD monitoring'; $wb['do_not_try_rescue_mongodb_txt'] = 'Disable MongoDB monitoring'; $wb['do_not_try_rescue_mysql_txt'] = 'Disable MySQL monitoring'; $wb['do_not_try_rescue_mail_txt'] = 'Disable Email monitoring'; -$wb['rescue_description_txt'] = 'Information: If you want to shut down mysql you have to select the \\"Disable MySQL monitor\\" checkbox and then wait 2-3 minutes.
If you do not wait 2-3 minutes, rescue will try to restart mysql!'; +$wb['rescue_description_txt'] = 'Information: If you want to shut down mysql you have to select the \"Disable MySQL monitor\" checkbox and then wait 2-3 minutes.
If you do not wait 2-3 minutes, rescue will try to restart mysql!'; $wb['enable_sni_txt'] = 'Enable SNI'; $wb['set_folder_permissions_on_update_txt'] = 'Set folder permissions on update'; $wb['add_web_users_to_sshusers_group_txt'] = 'Add web users to -sshusers- group'; diff --git a/interface/web/admin/lib/lang/ca_system_config.lng b/interface/web/admin/lib/lang/ca_system_config.lng index cc3c11c6c..326b3b275 100644 --- a/interface/web/admin/lib/lang/ca_system_config.lng +++ b/interface/web/admin/lib/lang/ca_system_config.lng @@ -67,7 +67,7 @@ $wb['customer_no_template_error_regex_txt'] = 'The customer No. template contain $wb['customer_no_start_txt'] = 'Customer No. start value'; $wb['customer_no_counter_txt'] = 'Customer No. counter'; $wb['session_timeout_txt'] = 'Session timeout (minutes)'; -$wb['session_allow_endless_txt'] = 'Enable \\"stay logged in\\"'; +$wb['session_allow_endless_txt'] = 'Enable \"stay logged in\"'; $wb['No'] = 'No'; $wb['min_password_length_txt'] = 'Minimum password length'; $wb['min_password_strength_txt'] = 'Minimum password strength'; diff --git a/interface/web/admin/lib/lang/ca_users.lng b/interface/web/admin/lib/lang/ca_users.lng index dcbc4f472..9d9923b63 100644 --- a/interface/web/admin/lib/lang/ca_users.lng +++ b/interface/web/admin/lib/lang/ca_users.lng @@ -29,7 +29,7 @@ $wb['generate_password_txt'] = 'Generate Password'; $wb['repeat_password_txt'] = 'Repeat Password'; $wb['password_mismatch_txt'] = 'The passwords do not match.'; $wb['password_match_txt'] = 'The passwords do match.'; -$wb['username_error_collision'] = 'The username may not be web or web plus a number.\\"'; +$wb['username_error_collision'] = 'The username may not be web or web plus a number.\"'; $wb['client_not_admin_err'] = 'A user that belongs to a client can not be set to type: admin'; $wb['lost_password_function_txt'] = 'Forgot password function is available'; $wb['no_user_insert'] = 'CP-Users of type -user- get added and updated automatically when you add a client or reseller.'; diff --git a/interface/web/admin/lib/lang/cz_remote_action.lng b/interface/web/admin/lib/lang/cz_remote_action.lng index e1908e2d0..68da1c065 100644 --- a/interface/web/admin/lib/lang/cz_remote_action.lng +++ b/interface/web/admin/lib/lang/cz_remote_action.lng @@ -2,9 +2,9 @@ $wb['select_server_txt'] = 'Zvolit server'; $wb['btn_do_txt'] = 'Provést akci'; $wb['do_osupdate_caption'] = 'Aktualizace operačního systému na vzdáleném serveru.'; -$wb['do_osupdate_desc'] = 'Tato akce provede \\"aptitude -y\\" aktualizaci na vybraném serveru.

POUŽITÍ TÉTO AKCE NA VLASTNÍ NEBEZPEČÍ !'; +$wb['do_osupdate_desc'] = 'Tato akce provede \"aptitude -y\" aktualizaci na vybraném serveru.

POUŽITÍ TÉTO AKCE NA VLASTNÍ NEBEZPEČÍ !'; $wb['do_ispcupdate_caption'] = 'Provedení ISPConfig 3 - aktualizace na vzdáleném serveru'; -$wb['do_ispcupdate_desc'] = 'Tato akce provede \\"ISPConfig 3\\" aktualizaci na vašem vybraném serveru.

POUŽITÍ TÉTO AKCE NA VLASTNÍ NEBEZPEČÍ !'; +$wb['do_ispcupdate_desc'] = 'Tato akce provede \"ISPConfig 3\" aktualizaci na vašem vybraném serveru.

POUŽITÍ TÉTO AKCE NA VLASTNÍ NEBEZPEČÍ !'; $wb['action_scheduled'] = 'Akce je naplánována na provedení'; $wb['select_all_server'] = 'Všechny servery'; $wb['ispconfig_update_title'] = 'ISPConfig pokyny k aktualizaci'; diff --git a/interface/web/admin/lib/lang/cz_server_config.lng b/interface/web/admin/lib/lang/cz_server_config.lng index ebccd8fce..40af41289 100644 --- a/interface/web/admin/lib/lang/cz_server_config.lng +++ b/interface/web/admin/lib/lang/cz_server_config.lng @@ -143,7 +143,7 @@ $wb['php_fpm_socket_dir_error_empty'] = 'PHP-FPM adresář pro socket je prázdn $wb['try_rescue_txt'] = 'Povolit monitorování služeb a restartovat při selhání'; $wb['do_not_try_rescue_mysql_txt'] = 'Zakázat MySQL monitorování'; $wb['do_not_try_rescue_mail_txt'] = 'Zakázat E-mail monitorování'; -$wb['rescue_description_txt'] = 'Informace: Pokud chcete např. vypnout MySQL službu zatrhněte políčko \\"Zakázat MySQL monitorování\\" změna se provede do 2-3 minut.
Pokud nepočkáte 2-3 minuty, monitorování nastartuje službu MySQL automaticky znovu !'; +$wb['rescue_description_txt'] = 'Informace: Pokud chcete např. vypnout MySQL službu zatrhněte políčko \"Zakázat MySQL monitorování\" změna se provede do 2-3 minut.
Pokud nepočkáte 2-3 minuty, monitorování nastartuje službu MySQL automaticky znovu !'; $wb['enable_sni_txt'] = 'Aktivovat SNI (Server Name Indication)'; $wb['do_not_try_rescue_httpd_txt'] = 'Zakázat HTTPD monitorování'; $wb['set_folder_permissions_on_update_txt'] = 'Nastavení oprávnění složky při aktualizaci'; diff --git a/interface/web/admin/lib/lang/dk_firewall.lng b/interface/web/admin/lib/lang/dk_firewall.lng index 96608b283..9a2069838 100644 --- a/interface/web/admin/lib/lang/dk_firewall.lng +++ b/interface/web/admin/lib/lang/dk_firewall.lng @@ -6,6 +6,6 @@ $wb['tcp_port_help_txt'] = 'Adskilt af komma'; $wb['udp_port_help_txt'] = 'Adskilt af komma'; $wb['active_txt'] = 'Aktiv'; $wb['firewall_error_unique'] = 'Der er allerede en firewall post for denne server.'; -$wb['tcp_ports_error_regex'] = 'Tegn ikke tilladt i tcp port definition. Tilladt tegn er tal, \\":\\" og \\",\\".'; -$wb['udp_ports_error_regex'] = 'Tegn ikke tilladt i udp port definition. Tilladt tegn er tal, \\":\\" og \\",\\".'; +$wb['tcp_ports_error_regex'] = 'Tegn ikke tilladt i tcp port definition. Tilladt tegn er tal, \":\" og \",\".'; +$wb['udp_ports_error_regex'] = 'Tegn ikke tilladt i udp port definition. Tilladt tegn er tal, \":\" og \",\".'; ?> diff --git a/interface/web/admin/lib/lang/dk_server_config.lng b/interface/web/admin/lib/lang/dk_server_config.lng index 5bf2be008..a4e0a12d9 100644 --- a/interface/web/admin/lib/lang/dk_server_config.lng +++ b/interface/web/admin/lib/lang/dk_server_config.lng @@ -152,7 +152,7 @@ $wb['try_rescue_txt'] = 'Aktiver overvågnings service og genstarte ved fejl'; $wb['do_not_try_rescue_httpd_txt'] = 'Deaktiver HTTPD monitoring'; $wb['do_not_try_rescue_mysql_txt'] = 'Deaktiver MySQL monitoring'; $wb['do_not_try_rescue_mail_txt'] = 'Deaktiver E-mail monitoring'; -$wb['rescue_description_txt'] = 'Information: Hvis du ønsker nedlukning af mysql skal du vælge \\"Deaktiver MySQL monitor\\" afkrydsningsfeltet og derefter vente 2-3 minutter.
Hvis du ikke vente 2-3 minutter, vil redning forsøge at genstarte mysql!'; +$wb['rescue_description_txt'] = 'Information: Hvis du ønsker nedlukning af mysql skal du vælge \"Deaktiver MySQL monitor\" afkrydsningsfeltet og derefter vente 2-3 minutter.
Hvis du ikke vente 2-3 minutter, vil redning forsøge at genstarte mysql!'; $wb['enable_sni_txt'] = 'Enable SNI'; $wb['set_folder_permissions_on_update_txt'] = 'Indstil mappe tilladelser ved opdatering'; $wb['add_web_users_to_sshusers_group_txt'] = 'Tilføj web-brugere til -sshusers- gruppe'; diff --git a/interface/web/admin/lib/lang/dk_system_config.lng b/interface/web/admin/lib/lang/dk_system_config.lng index 26b0fe7e7..75e55f1eb 100644 --- a/interface/web/admin/lib/lang/dk_system_config.lng +++ b/interface/web/admin/lib/lang/dk_system_config.lng @@ -64,7 +64,7 @@ $wb['customer_no_template_error_regex_txt'] = 'Kunde Nr. skabelon indeholder ugy $wb['customer_no_start_txt'] = 'Kunde Nr. start værdi'; $wb['customer_no_counter_txt'] = 'Kunde Nr. tæller'; $wb['session_timeout_txt'] = 'Session timeout (minutter)'; -$wb['session_allow_endless_txt'] = 'Aktiver \\"forbliv logget ind\\"'; +$wb['session_allow_endless_txt'] = 'Aktiver \"forbliv logget ind\"'; $wb['No'] = 'No'; $wb['min_password_length_txt'] = 'Minimum adgangskode længde'; $wb['min_password_strength_txt'] = 'Minimum adgangskode styrke'; diff --git a/interface/web/admin/lib/lang/dk_users.lng b/interface/web/admin/lib/lang/dk_users.lng index 2e86ab4ca..a70cc1dbf 100644 --- a/interface/web/admin/lib/lang/dk_users.lng +++ b/interface/web/admin/lib/lang/dk_users.lng @@ -29,7 +29,7 @@ $wb['generate_password_txt'] = 'Generer Adgangskode'; $wb['repeat_password_txt'] = 'Gentage Adgangskode'; $wb['password_mismatch_txt'] = 'Adgangskoderne stemmer ikke overens.'; $wb['password_match_txt'] = 'Adgangskoderne stemmer overens.'; -$wb['username_error_collision'] = 'Brugernavn må ikke være web eller web plus et tal.\\"'; +$wb['username_error_collision'] = 'Brugernavn må ikke være web eller web plus et tal.\"'; $wb['client_not_admin_err'] = 'En bruger der hører til en klient kan ikke indstilles til typen: admin'; $wb['lost_password_function_txt'] = 'Forgot password function is available'; $wb['no_user_insert'] = 'CP-Users of type -user- get added and updated automatically when you add a client or reseller.'; diff --git a/interface/web/admin/lib/lang/el_system_config.lng b/interface/web/admin/lib/lang/el_system_config.lng index 640d6f00a..80ddaca14 100644 --- a/interface/web/admin/lib/lang/el_system_config.lng +++ b/interface/web/admin/lib/lang/el_system_config.lng @@ -67,7 +67,7 @@ $wb['customer_no_template_error_regex_txt'] = 'The customer No. template contain $wb['customer_no_start_txt'] = 'Customer No. start value'; $wb['customer_no_counter_txt'] = 'Customer No. counter'; $wb['session_timeout_txt'] = 'Session timeout (minutes)'; -$wb['session_allow_endless_txt'] = 'Enable \\"stay logged in\\"'; +$wb['session_allow_endless_txt'] = 'Enable \"stay logged in\"'; $wb['No'] = 'No'; $wb['min_password_length_txt'] = 'Minimum password length'; $wb['min_password_strength_txt'] = 'Minimum password strength'; diff --git a/interface/web/admin/lib/lang/el_users.lng b/interface/web/admin/lib/lang/el_users.lng index f0307b95e..e5ce7a879 100644 --- a/interface/web/admin/lib/lang/el_users.lng +++ b/interface/web/admin/lib/lang/el_users.lng @@ -29,7 +29,7 @@ $wb['generate_password_txt'] = 'Generate Password'; $wb['repeat_password_txt'] = 'Repeat Password'; $wb['password_mismatch_txt'] = 'The passwords do not match.'; $wb['password_match_txt'] = 'The passwords do match.'; -$wb['username_error_collision'] = 'The username may not be web or web plus a number.\\"'; +$wb['username_error_collision'] = 'The username may not be web or web plus a number.\"'; $wb['client_not_admin_err'] = 'A user that belongs to a client can not be set to type: admin'; $wb['lost_password_function_txt'] = 'Forgot password function is available'; $wb['no_user_insert'] = 'CP-Users of type -user- get added and updated automatically when you add a client or reseller.'; diff --git a/interface/web/admin/lib/lang/es_firewall.lng b/interface/web/admin/lib/lang/es_firewall.lng index 81cad3c0a..db09b5784 100755 --- a/interface/web/admin/lib/lang/es_firewall.lng +++ b/interface/web/admin/lib/lang/es_firewall.lng @@ -4,8 +4,8 @@ $wb['firewall_error_unique'] = 'Ya existe un registro de cortafuegos para este s $wb['server_id_txt'] = 'Servidor'; $wb['tcp_port_help_txt'] = 'Separados por coma'; $wb['tcp_port_txt'] = 'Puertos TCP abiertos'; -$wb['tcp_ports_error_regex'] = 'Caracteres no permitidos en la definición de puertos tcp. Los caracteres permitidos son: números, \\":\\" y \\",\\".'; +$wb['tcp_ports_error_regex'] = 'Caracteres no permitidos en la definición de puertos tcp. Los caracteres permitidos son: números, \":\" y \",\".'; $wb['udp_port_help_txt'] = 'Separados por coma'; $wb['udp_port_txt'] = 'Puertos UDP abiertos'; -$wb['udp_ports_error_regex'] = 'Caracteres no permitidos en la definición de puertos udp. Los caracteres permitidos son: números, \\":\\" y \\",\\".'; +$wb['udp_ports_error_regex'] = 'Caracteres no permitidos en la definición de puertos udp. Los caracteres permitidos son: números, \":\" y \",\".'; ?> diff --git a/interface/web/admin/lib/lang/es_server_config.lng b/interface/web/admin/lib/lang/es_server_config.lng index 95eaf9e8a..01c9978ae 100755 --- a/interface/web/admin/lib/lang/es_server_config.lng +++ b/interface/web/admin/lib/lang/es_server_config.lng @@ -228,7 +228,7 @@ $wb['reject_sender_login_mismatch_txt'] = 'Rechazar remitente e inicio de sesió $wb['relayhost_password_txt'] = 'Contraseña del servidor de retransmisión'; $wb['relayhost_txt'] = 'Servidor de retransmisión'; $wb['relayhost_user_txt'] = 'Usuario del servidor de retransmisión'; -$wb['rescue_description_txt'] = 'Información: Si desea detener el servicio de MySQL debe seleccionar la casilla \\"Deshabilitar monitorización de MySQL\\" y luego esperar 2-3 minutos.
Si no espera 2-3 minutos, el rescatador intentará reiniciar el servicio'; +$wb['rescue_description_txt'] = 'Información: Si desea detener el servicio de MySQL debe seleccionar la casilla \"Deshabilitar monitorización de MySQL\" y luego esperar 2-3 minutos.
Si no espera 2-3 minutos, el rescatador intentará reiniciar el servicio'; $wb['security_level_txt'] = 'Nivel de seguridad'; $wb['server_type_txt'] = 'Tipo de servidor'; $wb['set_folder_permissions_on_update_txt'] = 'Establecer permisos de carpetas al actualizar'; diff --git a/interface/web/admin/lib/lang/es_system_config.lng b/interface/web/admin/lib/lang/es_system_config.lng index 043c52cfd..b927ab043 100755 --- a/interface/web/admin/lib/lang/es_system_config.lng +++ b/interface/web/admin/lib/lang/es_system_config.lng @@ -7,7 +7,7 @@ $wb['available_dashlets_note_txt'] = 'Componentes disponibles:'; $wb['backups_include_into_web_quota_txt'] = 'Incluir archivos de copia de seguridad en la cuota web.'; $wb['client_dashlets_left_txt'] = 'Componentes del cliente a la izquierda'; $wb['client_dashlets_right_txt'] = 'Componentes del cliente a la derecha'; -$wb['client_username_web_check_disabled_txt'] = 'Desactivar la comprobación de la palabra \\"web\\" en los nombres de clientes.'; +$wb['client_username_web_check_disabled_txt'] = 'Desactivar la comprobación de la palabra \"web\" en los nombres de clientes.'; $wb['company_name_txt'] = 'Nombre de la compañía para el título de la página'; $wb['custom_login_link_txt'] = 'Enlace personalizado para la página de Inicio de Sesión'; $wb['custom_login_text_txt'] = 'Texto personalizado para la página de Inicio de Sesión'; @@ -51,7 +51,7 @@ $wb['phpmyadmin_url_txt'] = 'Enlace a phpMyAdmin'; $wb['reseller_can_use_options_txt'] = 'El revendedor puede utilizar la pestaña opciones para los sitios webs'; $wb['reseller_dashlets_left_txt'] = 'Componentes de revendedores a la izquierda'; $wb['reseller_dashlets_right_txt'] = 'Componentes de revendedores a la derecha'; -$wb['session_allow_endless_txt'] = 'Habilitar \\"mantenerme conectado\\"'; +$wb['session_allow_endless_txt'] = 'Habilitar \"mantenerme conectado\"'; $wb['session_timeout_txt'] = 'Tiempo límite de sesión (minutos)'; $wb['shelluser_prefix_error_regex'] = 'Carácter no permitido en el prefijo de usuario del shell.'; $wb['shelluser_prefix_txt'] = 'Prefijo del usuario del Shell'; diff --git a/interface/web/admin/lib/lang/fi_system_config.lng b/interface/web/admin/lib/lang/fi_system_config.lng index c0972c49d..72e7aaa2e 100644 --- a/interface/web/admin/lib/lang/fi_system_config.lng +++ b/interface/web/admin/lib/lang/fi_system_config.lng @@ -67,7 +67,7 @@ $wb['customer_no_template_error_regex_txt'] = 'The customer No. template contain $wb['customer_no_start_txt'] = 'Customer No. start value'; $wb['customer_no_counter_txt'] = 'Customer No. counter'; $wb['session_timeout_txt'] = 'Session timeout (minutes)'; -$wb['session_allow_endless_txt'] = 'Enable \\"stay logged in\\"'; +$wb['session_allow_endless_txt'] = 'Enable \"stay logged in\"'; $wb['No'] = 'No'; $wb['min_password_length_txt'] = 'Minimum password length'; $wb['min_password_strength_txt'] = 'Minimum password strength'; diff --git a/interface/web/admin/lib/lang/fi_users.lng b/interface/web/admin/lib/lang/fi_users.lng index 199601f52..4fde01b87 100755 --- a/interface/web/admin/lib/lang/fi_users.lng +++ b/interface/web/admin/lib/lang/fi_users.lng @@ -29,7 +29,7 @@ $wb['generate_password_txt'] = 'Generate Password'; $wb['repeat_password_txt'] = 'Repeat Password'; $wb['password_mismatch_txt'] = 'The passwords do not match.'; $wb['password_match_txt'] = 'The passwords do match.'; -$wb['username_error_collision'] = 'The username may not be web or web plus a number.\\"'; +$wb['username_error_collision'] = 'The username may not be web or web plus a number.\"'; $wb['client_not_admin_err'] = 'A user that belongs to a client can not be set to type: admin'; $wb['lost_password_function_txt'] = 'Forgot password function is available'; $wb['no_user_insert'] = 'CP-Users of type -user- get added and updated automatically when you add a client or reseller.'; diff --git a/interface/web/admin/lib/lang/fr_remote_action.lng b/interface/web/admin/lib/lang/fr_remote_action.lng index bb3443b40..0072271d6 100644 --- a/interface/web/admin/lib/lang/fr_remote_action.lng +++ b/interface/web/admin/lib/lang/fr_remote_action.lng @@ -8,5 +8,5 @@ $wb['do_ispcupdate_desc'] = 'Cette action met à jour ISPConfig3 sur le serveur $wb['action_scheduled'] = 'L’action est marquée pour exécution'; $wb['select_all_server'] = 'Tout serveur'; $wb['ispconfig_update_title'] = 'ISPConfig update instructions'; -$wb['ispconfig_update_text'] = 'Login as root user on the shell of your server and execute the command

ispconfig_update.sh

to start the ISPConfig update.

Click here for detailed update instructions'; +$wb['ispconfig_update_text'] = 'Login as root user on the shell of your server and execute the command

ispconfig_update.sh

to start the ISPConfig update.

Click here for detailed update instructions'; ?> diff --git a/interface/web/admin/lib/lang/fr_system_config.lng b/interface/web/admin/lib/lang/fr_system_config.lng index 18f0dbbed..df90e0301 100644 --- a/interface/web/admin/lib/lang/fr_system_config.lng +++ b/interface/web/admin/lib/lang/fr_system_config.lng @@ -64,7 +64,7 @@ $wb['customer_no_template_error_regex_txt'] = 'The customer No. template contain $wb['customer_no_start_txt'] = 'Customer No. start value'; $wb['customer_no_counter_txt'] = 'Customer No. counter'; $wb['session_timeout_txt'] = 'Session timeout (minutes)'; -$wb['session_allow_endless_txt'] = 'Enable \\"stay logged in\\"'; +$wb['session_allow_endless_txt'] = 'Enable \"stay logged in\"'; $wb['No'] = 'No'; $wb['min_password_length_txt'] = 'Minimum password length'; $wb['min_password_strength_txt'] = 'Minimum password strength'; diff --git a/interface/web/admin/lib/lang/hr_system_config.lng b/interface/web/admin/lib/lang/hr_system_config.lng index a7735647b..a8b44528c 100644 --- a/interface/web/admin/lib/lang/hr_system_config.lng +++ b/interface/web/admin/lib/lang/hr_system_config.lng @@ -67,7 +67,7 @@ $wb['customer_no_template_error_regex_txt'] = 'The customer No. template contain $wb['customer_no_start_txt'] = 'Customer No. start value'; $wb['customer_no_counter_txt'] = 'Customer No. counter'; $wb['session_timeout_txt'] = 'Session timeout (minutes)'; -$wb['session_allow_endless_txt'] = 'Enable \\"stay logged in\\"'; +$wb['session_allow_endless_txt'] = 'Enable \"stay logged in\"'; $wb['No'] = 'No'; $wb['min_password_length_txt'] = 'Minimum password length'; $wb['min_password_strength_txt'] = 'Minimum password strength'; diff --git a/interface/web/admin/lib/lang/hr_users.lng b/interface/web/admin/lib/lang/hr_users.lng index 7be3f968f..52f0bdff3 100644 --- a/interface/web/admin/lib/lang/hr_users.lng +++ b/interface/web/admin/lib/lang/hr_users.lng @@ -29,7 +29,7 @@ $wb['generate_password_txt'] = 'Generiraj šifru'; $wb['repeat_password_txt'] = 'Ponovi šifru'; $wb['password_mismatch_txt'] = 'Šifre nisu identične.'; $wb['password_match_txt'] = 'Šifre su identične.'; -$wb['username_error_collision'] = 'Korisničko ime ne može biti web ili web sa brojem.\\"'; +$wb['username_error_collision'] = 'Korisničko ime ne može biti web ili web sa brojem.\"'; $wb['client_not_admin_err'] = 'Korisnik koji je u grupi klijenti ne može biti admin'; $wb['lost_password_function_txt'] = 'Forgot password function is available'; $wb['no_user_insert'] = 'CP-Users of type -user- get added and updated automatically when you add a client or reseller.'; diff --git a/interface/web/admin/lib/lang/hr_users_list.lng b/interface/web/admin/lib/lang/hr_users_list.lng index c102e5f7f..7725ce2b9 100644 --- a/interface/web/admin/lib/lang/hr_users_list.lng +++ b/interface/web/admin/lib/lang/hr_users_list.lng @@ -4,6 +4,6 @@ $wb['username_txt'] = 'Korisničko ime'; $wb['client_id_txt'] = 'Client ID'; $wb['active_txt'] = 'Active'; $wb['add_new_record_txt'] = 'Dodaj klijenta'; -$wb['warning_txt'] = 'UPOZORENJE: Ovdje nemojte mijenjati podatke klijenta. Koristite \\"Klijent\\" i \\"Preprodavač\\" postavke u Klijent modulu. Mijenjanjem postavki klijenata ili grupa može doći do gubitka podataka!'; +$wb['warning_txt'] = 'UPOZORENJE: Ovdje nemojte mijenjati podatke klijenta. Koristite \"Klijent\" i \"Preprodavač\" postavke u Klijent modulu. Mijenjanjem postavki klijenata ili grupa može doći do gubitka podataka!'; $wb['groups_txt'] = 'Groups'; ?> diff --git a/interface/web/admin/lib/lang/hu_system_config.lng b/interface/web/admin/lib/lang/hu_system_config.lng index cee497fe1..e983379e3 100644 --- a/interface/web/admin/lib/lang/hu_system_config.lng +++ b/interface/web/admin/lib/lang/hu_system_config.lng @@ -67,7 +67,7 @@ $wb['customer_no_template_error_regex_txt'] = 'The customer No. template contain $wb['customer_no_start_txt'] = 'Customer No. start value'; $wb['customer_no_counter_txt'] = 'Customer No. counter'; $wb['session_timeout_txt'] = 'Session timeout (minutes)'; -$wb['session_allow_endless_txt'] = 'Enable \\"stay logged in\\"'; +$wb['session_allow_endless_txt'] = 'Enable \"stay logged in\"'; $wb['No'] = 'No'; $wb['min_password_length_txt'] = 'Minimum password length'; $wb['min_password_strength_txt'] = 'Minimum password strength'; diff --git a/interface/web/admin/lib/lang/hu_users.lng b/interface/web/admin/lib/lang/hu_users.lng index e2cf25fb7..05f3554df 100644 --- a/interface/web/admin/lib/lang/hu_users.lng +++ b/interface/web/admin/lib/lang/hu_users.lng @@ -29,7 +29,7 @@ $wb['generate_password_txt'] = 'Generate Password'; $wb['repeat_password_txt'] = 'Repeat Password'; $wb['password_mismatch_txt'] = 'The passwords do not match.'; $wb['password_match_txt'] = 'The passwords do match.'; -$wb['username_error_collision'] = 'The username may not be web or web plus a number.\\"'; +$wb['username_error_collision'] = 'The username may not be web or web plus a number.\"'; $wb['client_not_admin_err'] = 'A user that belongs to a client can not be set to type: admin'; $wb['lost_password_function_txt'] = 'Forgot password function is available'; $wb['no_user_insert'] = 'CP-Users of type -user- get added and updated automatically when you add a client or reseller.'; diff --git a/interface/web/admin/lib/lang/id_system_config.lng b/interface/web/admin/lib/lang/id_system_config.lng index 344185b84..41dd67fba 100644 --- a/interface/web/admin/lib/lang/id_system_config.lng +++ b/interface/web/admin/lib/lang/id_system_config.lng @@ -67,7 +67,7 @@ $wb['customer_no_template_error_regex_txt'] = 'The customer No. template contain $wb['customer_no_start_txt'] = 'Customer No. start value'; $wb['customer_no_counter_txt'] = 'Customer No. counter'; $wb['session_timeout_txt'] = 'Session timeout (minutes)'; -$wb['session_allow_endless_txt'] = 'Enable \\"stay logged in\\"'; +$wb['session_allow_endless_txt'] = 'Enable \"stay logged in\"'; $wb['No'] = 'No'; $wb['min_password_length_txt'] = 'Minimum password length'; $wb['min_password_strength_txt'] = 'Minimum password strength'; diff --git a/interface/web/admin/lib/lang/id_users.lng b/interface/web/admin/lib/lang/id_users.lng index f9e961192..f5ae7efea 100644 --- a/interface/web/admin/lib/lang/id_users.lng +++ b/interface/web/admin/lib/lang/id_users.lng @@ -29,7 +29,7 @@ $wb['generate_password_txt'] = 'Generate Password'; $wb['repeat_password_txt'] = 'Repeat Password'; $wb['password_mismatch_txt'] = 'The passwords do not match.'; $wb['password_match_txt'] = 'The passwords do match.'; -$wb['username_error_collision'] = 'The username may not be web or web plus a number.\\"'; +$wb['username_error_collision'] = 'The username may not be web or web plus a number.\"'; $wb['client_not_admin_err'] = 'A user that belongs to a client can not be set to type: admin'; $wb['lost_password_function_txt'] = 'Forgot password function is available'; $wb['no_user_insert'] = 'CP-Users of type -user- get added and updated automatically when you add a client or reseller.'; diff --git a/interface/web/admin/lib/lang/it_system_config.lng b/interface/web/admin/lib/lang/it_system_config.lng index 311b7c957..35e625bd2 100644 --- a/interface/web/admin/lib/lang/it_system_config.lng +++ b/interface/web/admin/lib/lang/it_system_config.lng @@ -64,7 +64,7 @@ $wb['customer_no_template_error_regex_txt'] = 'The customer No. template contain $wb['customer_no_start_txt'] = 'Customer No. start value'; $wb['customer_no_counter_txt'] = 'Customer No. counter'; $wb['session_timeout_txt'] = 'Session timeout (minutes)'; -$wb['session_allow_endless_txt'] = 'Enable \\"stay logged in\\"'; +$wb['session_allow_endless_txt'] = 'Enable \"stay logged in\"'; $wb['No'] = 'No'; $wb['min_password_length_txt'] = 'Minimum password length'; $wb['min_password_strength_txt'] = 'Minimum password strength'; diff --git a/interface/web/admin/lib/lang/it_users.lng b/interface/web/admin/lib/lang/it_users.lng index 1bde73a67..be1294cdb 100644 --- a/interface/web/admin/lib/lang/it_users.lng +++ b/interface/web/admin/lib/lang/it_users.lng @@ -29,7 +29,7 @@ $wb['generate_password_txt'] = 'Genera Password'; $wb['repeat_password_txt'] = 'Ripeti Password'; $wb['password_mismatch_txt'] = 'Le password non coincidono.'; $wb['password_match_txt'] = 'Le password coincidono.'; -$wb['username_error_collision'] = 'The username may not be web or web plus a number.\\"'; +$wb['username_error_collision'] = 'The username may not be web or web plus a number.\"'; $wb['client_not_admin_err'] = 'A user that belongs to a client can not be set to type: admin'; $wb['lost_password_function_txt'] = 'Forgot password function is available'; $wb['no_user_insert'] = 'CP-Users of type -user- get added and updated automatically when you add a client or reseller.'; diff --git a/interface/web/admin/lib/lang/ja_system_config.lng b/interface/web/admin/lib/lang/ja_system_config.lng index aa5cc6a7a..494f90dd3 100644 --- a/interface/web/admin/lib/lang/ja_system_config.lng +++ b/interface/web/admin/lib/lang/ja_system_config.lng @@ -67,7 +67,7 @@ $wb['customer_no_template_error_regex_txt'] = 'The customer No. template contain $wb['customer_no_start_txt'] = 'Customer No. start value'; $wb['customer_no_counter_txt'] = 'Customer No. counter'; $wb['session_timeout_txt'] = 'Session timeout (minutes)'; -$wb['session_allow_endless_txt'] = 'Enable \\"stay logged in\\"'; +$wb['session_allow_endless_txt'] = 'Enable \"stay logged in\"'; $wb['No'] = 'No'; $wb['min_password_length_txt'] = 'Minimum password length'; $wb['min_password_strength_txt'] = 'Minimum password strength'; diff --git a/interface/web/admin/lib/lang/ja_users.lng b/interface/web/admin/lib/lang/ja_users.lng index 64f8339ff..2e6ad9fb7 100644 --- a/interface/web/admin/lib/lang/ja_users.lng +++ b/interface/web/admin/lib/lang/ja_users.lng @@ -29,7 +29,7 @@ $wb['generate_password_txt'] = 'Generate Password'; $wb['repeat_password_txt'] = 'Repeat Password'; $wb['password_mismatch_txt'] = 'The passwords do not match.'; $wb['password_match_txt'] = 'The passwords do match.'; -$wb['username_error_collision'] = 'The username may not be web or web plus a number.\\"'; +$wb['username_error_collision'] = 'The username may not be web or web plus a number.\"'; $wb['client_not_admin_err'] = 'A user that belongs to a client can not be set to type: admin'; $wb['lost_password_function_txt'] = 'Forgot password function is available'; $wb['no_user_insert'] = 'CP-Users of type -user- get added and updated automatically when you add a client or reseller.'; diff --git a/interface/web/admin/lib/lang/nl_system_config.lng b/interface/web/admin/lib/lang/nl_system_config.lng index 44a58b764..89e3ff8e4 100644 --- a/interface/web/admin/lib/lang/nl_system_config.lng +++ b/interface/web/admin/lib/lang/nl_system_config.lng @@ -67,7 +67,7 @@ $wb['customer_no_template_error_regex_txt'] = 'The customer No. template contain $wb['customer_no_start_txt'] = 'Customer No. start value'; $wb['customer_no_counter_txt'] = 'Customer No. counter'; $wb['session_timeout_txt'] = 'Session timeout (minutes)'; -$wb['session_allow_endless_txt'] = 'Enable \\"stay logged in\\"'; +$wb['session_allow_endless_txt'] = 'Enable \"stay logged in\"'; $wb['No'] = 'No'; $wb['min_password_length_txt'] = 'Minimum password length'; $wb['min_password_strength_txt'] = 'Minimum password strength'; diff --git a/interface/web/admin/lib/lang/nl_users.lng b/interface/web/admin/lib/lang/nl_users.lng index 1e6d4ef58..782bfc5f9 100644 --- a/interface/web/admin/lib/lang/nl_users.lng +++ b/interface/web/admin/lib/lang/nl_users.lng @@ -29,7 +29,7 @@ $wb['generate_password_txt'] = 'Generate Password'; $wb['repeat_password_txt'] = 'Repeat Password'; $wb['password_mismatch_txt'] = 'The passwords do not match.'; $wb['password_match_txt'] = 'The passwords do match.'; -$wb['username_error_collision'] = 'The username may not be web or web plus a number.\\"'; +$wb['username_error_collision'] = 'The username may not be web or web plus a number.\"'; $wb['client_not_admin_err'] = 'A user that belongs to a client can not be set to type: admin'; $wb['lost_password_function_txt'] = 'Forgot password function is available'; $wb['no_user_insert'] = 'CP-Users of type -user- get added and updated automatically when you add a client or reseller.'; diff --git a/interface/web/admin/lib/lang/pl_system_config.lng b/interface/web/admin/lib/lang/pl_system_config.lng index a809251ec..bbbbf95ec 100644 --- a/interface/web/admin/lib/lang/pl_system_config.lng +++ b/interface/web/admin/lib/lang/pl_system_config.lng @@ -67,7 +67,7 @@ $wb['customer_no_template_error_regex_txt'] = 'The customer No. template contain $wb['customer_no_start_txt'] = 'Customer No. start value'; $wb['customer_no_counter_txt'] = 'Customer No. counter'; $wb['session_timeout_txt'] = 'Session timeout (minutes)'; -$wb['session_allow_endless_txt'] = 'Enable \\"stay logged in\\"'; +$wb['session_allow_endless_txt'] = 'Enable \"stay logged in\"'; $wb['No'] = 'No'; $wb['min_password_length_txt'] = 'Minimum password length'; $wb['min_password_strength_txt'] = 'Minimum password strength'; diff --git a/interface/web/admin/lib/lang/pt_system_config.lng b/interface/web/admin/lib/lang/pt_system_config.lng index 6fc26344c..a72ca0e95 100644 --- a/interface/web/admin/lib/lang/pt_system_config.lng +++ b/interface/web/admin/lib/lang/pt_system_config.lng @@ -67,7 +67,7 @@ $wb['customer_no_template_error_regex_txt'] = 'The customer No. template contain $wb['customer_no_start_txt'] = 'Customer No. start value'; $wb['customer_no_counter_txt'] = 'Customer No. counter'; $wb['session_timeout_txt'] = 'Session timeout (minutes)'; -$wb['session_allow_endless_txt'] = 'Enable \\"stay logged in\\"'; +$wb['session_allow_endless_txt'] = 'Enable \"stay logged in\"'; $wb['No'] = 'No'; $wb['min_password_length_txt'] = 'Minimum password length'; $wb['min_password_strength_txt'] = 'Minimum password strength'; diff --git a/interface/web/admin/lib/lang/pt_users.lng b/interface/web/admin/lib/lang/pt_users.lng index 67cfe4f57..b53790e6f 100644 --- a/interface/web/admin/lib/lang/pt_users.lng +++ b/interface/web/admin/lib/lang/pt_users.lng @@ -29,7 +29,7 @@ $wb['generate_password_txt'] = 'Generate Password'; $wb['repeat_password_txt'] = 'Repeat Password'; $wb['password_mismatch_txt'] = 'The passwords do not match.'; $wb['password_match_txt'] = 'The passwords do match.'; -$wb['username_error_collision'] = 'The username may not be web or web plus a number.\\"'; +$wb['username_error_collision'] = 'The username may not be web or web plus a number.\"'; $wb['client_not_admin_err'] = 'A user that belongs to a client can not be set to type: admin'; $wb['lost_password_function_txt'] = 'Forgot password function is available'; $wb['no_user_insert'] = 'CP-Users of type -user- get added and updated automatically when you add a client or reseller.'; diff --git a/interface/web/admin/lib/lang/ro_system_config.lng b/interface/web/admin/lib/lang/ro_system_config.lng index 2a39a454e..93ccf3947 100644 --- a/interface/web/admin/lib/lang/ro_system_config.lng +++ b/interface/web/admin/lib/lang/ro_system_config.lng @@ -67,7 +67,7 @@ $wb['customer_no_template_error_regex_txt'] = 'The customer No. template contain $wb['customer_no_start_txt'] = 'Customer No. start value'; $wb['customer_no_counter_txt'] = 'Customer No. counter'; $wb['session_timeout_txt'] = 'Session timeout (minutes)'; -$wb['session_allow_endless_txt'] = 'Enable \\"stay logged in\\"'; +$wb['session_allow_endless_txt'] = 'Enable \"stay logged in\"'; $wb['No'] = 'No'; $wb['min_password_length_txt'] = 'Minimum password length'; $wb['min_password_strength_txt'] = 'Minimum password strength'; diff --git a/interface/web/admin/lib/lang/ro_users.lng b/interface/web/admin/lib/lang/ro_users.lng index dcbc4f472..9d9923b63 100644 --- a/interface/web/admin/lib/lang/ro_users.lng +++ b/interface/web/admin/lib/lang/ro_users.lng @@ -29,7 +29,7 @@ $wb['generate_password_txt'] = 'Generate Password'; $wb['repeat_password_txt'] = 'Repeat Password'; $wb['password_mismatch_txt'] = 'The passwords do not match.'; $wb['password_match_txt'] = 'The passwords do match.'; -$wb['username_error_collision'] = 'The username may not be web or web plus a number.\\"'; +$wb['username_error_collision'] = 'The username may not be web or web plus a number.\"'; $wb['client_not_admin_err'] = 'A user that belongs to a client can not be set to type: admin'; $wb['lost_password_function_txt'] = 'Forgot password function is available'; $wb['no_user_insert'] = 'CP-Users of type -user- get added and updated automatically when you add a client or reseller.'; diff --git a/interface/web/admin/lib/lang/ru_firewall.lng b/interface/web/admin/lib/lang/ru_firewall.lng index 70beb3043..c30f26f2e 100644 --- a/interface/web/admin/lib/lang/ru_firewall.lng +++ b/interface/web/admin/lib/lang/ru_firewall.lng @@ -6,6 +6,6 @@ $wb['tcp_port_help_txt'] = 'Перечислить порты TCP через з $wb['udp_port_help_txt'] = 'Перечислить порты UDP через запятую'; $wb['active_txt'] = 'Активно'; $wb['firewall_error_unique'] = 'Уже есть такая запись брандмауэра для этого сервера.'; -$wb['tcp_ports_error_regex'] = 'Недопустимый символ в указании tcp порта. Корректные сиволы - цифры, \\":\\" и \\",\\"'; -$wb['udp_ports_error_regex'] = 'Некорректный символ в указании UDP порта. Допустимые сиволы - цифры, \\":\\" и \\",\\"'; +$wb['tcp_ports_error_regex'] = 'Недопустимый символ в указании tcp порта. Корректные сиволы - цифры, \":\" и \",\"'; +$wb['udp_ports_error_regex'] = 'Некорректный символ в указании UDP порта. Допустимые сиволы - цифры, \":\" и \",\"'; ?> diff --git a/interface/web/admin/lib/lang/ru_server_config.lng b/interface/web/admin/lib/lang/ru_server_config.lng index 02edb659d..ca66b325b 100644 --- a/interface/web/admin/lib/lang/ru_server_config.lng +++ b/interface/web/admin/lib/lang/ru_server_config.lng @@ -152,7 +152,7 @@ $wb['php_fpm_socket_dir_error_empty'] = 'Каталог PHP-FPM сокета п $wb['try_rescue_txt'] = 'Включить мониторинг службы и перезапуск при сбое'; $wb['do_not_try_rescue_mysql_txt'] = 'Отключить мониторинг MySQL'; $wb['do_not_try_rescue_mail_txt'] = 'Отключить мониторинг Email'; -$wb['rescue_description_txt'] = 'Информация: Если вы хотите выключить MySQL, вы должны установить флажок \\"Отключить мониторинг MySQL\\" и подождать 2-3 минуты.
Если вы не подождёте 2-3 минуты, мониторинг будет пытаться перезапустить MySQL!'; +$wb['rescue_description_txt'] = 'Информация: Если вы хотите выключить MySQL, вы должны установить флажок \"Отключить мониторинг MySQL\" и подождать 2-3 минуты.
Если вы не подождёте 2-3 минуты, мониторинг будет пытаться перезапустить MySQL!'; $wb['enable_sni_txt'] = 'Включить SNI'; $wb['do_not_try_rescue_httpd_txt'] = 'Отключить мониторинг HTTPD'; $wb['set_folder_permissions_on_update_txt'] = 'Установить разрешения для папки на обновления'; diff --git a/interface/web/admin/lib/lang/ru_system_config.lng b/interface/web/admin/lib/lang/ru_system_config.lng index baed497b0..52324f3c7 100644 --- a/interface/web/admin/lib/lang/ru_system_config.lng +++ b/interface/web/admin/lib/lang/ru_system_config.lng @@ -14,7 +14,7 @@ $wb['mailboxlist_webmail_link_txt'] = 'Ссылка на веб-почту в с $wb['webmail_url_txt'] = 'URL веб-почты'; $wb['phpmyadmin_url_txt'] = 'URL PHPMyAdmin'; $wb['use_domain_module_txt'] = 'Использовать модуль домена, чтобы добавить новые домены'; -$wb['use_domain_module_hint'] = 'При использовании этого модуля, Ваши клиенты смогут выбрать только один из доменов, созданных для них администратором. Они не могут свободно редактировать поле \\"домен\\". Чтобы сделать эти изменения видимыми, Вы должны выйти и повторно войти в панель после изменения этого значения.'; +$wb['use_domain_module_hint'] = 'При использовании этого модуля, Ваши клиенты смогут выбрать только один из доменов, созданных для них администратором. Они не могут свободно редактировать поле \"домен\". Чтобы сделать эти изменения видимыми, Вы должны выйти и повторно войти в панель после изменения этого значения.'; $wb['new_domain_txt'] = 'HTML текст, чтобы создать новый домен'; $wb['webdavuser_prefix_txt'] = 'Префикс пользователя WebDAV'; $wb['webdavuser_prefix_error_regex'] = 'Некорректный символ в префиксе пользователя WebDAV.'; @@ -67,7 +67,7 @@ $wb['customer_no_template_error_regex_txt'] = 'Шаблон номера Кли $wb['customer_no_start_txt'] = 'Начальное значение номера Клиента'; $wb['customer_no_counter_txt'] = 'Счётчик номера Клиента'; $wb['session_timeout_txt'] = 'Тайм-аут сессии (в минутах)'; -$wb['session_allow_endless_txt'] = 'Включить \\"оставаться в системе\\"'; +$wb['session_allow_endless_txt'] = 'Включить \"оставаться в системе\"'; $wb['No'] = 'Нет'; $wb['min_password_length_txt'] = 'Минимальная длина пароля'; $wb['min_password_strength_txt'] = 'Минимальная стойкость пароля'; diff --git a/interface/web/admin/lib/lang/ru_users.lng b/interface/web/admin/lib/lang/ru_users.lng index 63f081f91..bd1b8034f 100644 --- a/interface/web/admin/lib/lang/ru_users.lng +++ b/interface/web/admin/lib/lang/ru_users.lng @@ -29,7 +29,7 @@ $wb['generate_password_txt'] = 'Создать пароль'; $wb['repeat_password_txt'] = 'Повторить пароль'; $wb['password_mismatch_txt'] = 'Пароли не совпадают.'; $wb['password_match_txt'] = 'Эти пароли совпадают.'; -$wb['username_error_collision'] = 'Имя пользователя не может начинаться со слова \\"web\\" или \\"web\\" плюс число.'; +$wb['username_error_collision'] = 'Имя пользователя не может начинаться со слова \"web\" или \"web\" плюс число.'; $wb['client_not_admin_err'] = 'Пользователь, который принадлежит к клиенту не может быть установлен тип: admin'; $wb['lost_password_function_txt'] = 'Функция восстановления пароля доступна'; $wb['no_user_insert'] = 'CP-Users of type -user- get added and updated automatically when you add a client or reseller.'; diff --git a/interface/web/admin/lib/lang/se_system_config.lng b/interface/web/admin/lib/lang/se_system_config.lng index 74ae16734..0c5643bf4 100644 --- a/interface/web/admin/lib/lang/se_system_config.lng +++ b/interface/web/admin/lib/lang/se_system_config.lng @@ -67,7 +67,7 @@ $wb['customer_no_template_error_regex_txt'] = 'Kundnummermallen innehåller otil $wb['customer_no_start_txt'] = 'Kundnummer startvärde'; $wb['customer_no_counter_txt'] = 'Kundnummer räknare'; $wb['session_timeout_txt'] = 'Session timeout (minuter)'; -$wb['session_allow_endless_txt'] = 'Aktivera \\"håll mig inloggad\\"'; +$wb['session_allow_endless_txt'] = 'Aktivera \"håll mig inloggad\"'; $wb['No'] = 'Nej'; $wb['min_password_length_txt'] = 'Minsta lösenordslängd'; $wb['min_password_strength_txt'] = 'Minsta lösenordsstyrka'; diff --git a/interface/web/admin/lib/lang/sk_system_config.lng b/interface/web/admin/lib/lang/sk_system_config.lng index 90418e87d..390458886 100644 --- a/interface/web/admin/lib/lang/sk_system_config.lng +++ b/interface/web/admin/lib/lang/sk_system_config.lng @@ -67,7 +67,7 @@ $wb['customer_no_template_error_regex_txt'] = 'The customer No. template contain $wb['customer_no_start_txt'] = 'Customer No. start value'; $wb['customer_no_counter_txt'] = 'Customer No. counter'; $wb['session_timeout_txt'] = 'Session timeout (minutes)'; -$wb['session_allow_endless_txt'] = 'Enable \\"stay logged in\\"'; +$wb['session_allow_endless_txt'] = 'Enable \"stay logged in\"'; $wb['No'] = 'No'; $wb['min_password_length_txt'] = 'Minimum password length'; $wb['min_password_strength_txt'] = 'Minimum password strength'; diff --git a/interface/web/admin/lib/lang/sk_users.lng b/interface/web/admin/lib/lang/sk_users.lng index d71952fa3..60a0aa99e 100644 --- a/interface/web/admin/lib/lang/sk_users.lng +++ b/interface/web/admin/lib/lang/sk_users.lng @@ -29,7 +29,7 @@ $wb['generate_password_txt'] = 'Generate Password'; $wb['repeat_password_txt'] = 'Repeat Password'; $wb['password_mismatch_txt'] = 'The passwords do not match.'; $wb['password_match_txt'] = 'The passwords do match.'; -$wb['username_error_collision'] = 'The username may not be web or web plus a number.\\"'; +$wb['username_error_collision'] = 'The username may not be web or web plus a number.\"'; $wb['client_not_admin_err'] = 'A user that belongs to a client can not be set to type: admin'; $wb['lost_password_function_txt'] = 'Forgot password function is available'; $wb['no_user_insert'] = 'CP-Users of type -user- get added and updated automatically when you add a client or reseller.'; diff --git a/interface/web/admin/lib/lang/tr_firewall.lng b/interface/web/admin/lib/lang/tr_firewall.lng index a45998d4e..8db312ff0 100644 --- a/interface/web/admin/lib/lang/tr_firewall.lng +++ b/interface/web/admin/lib/lang/tr_firewall.lng @@ -6,6 +6,6 @@ $wb['tcp_port_help_txt'] = 'Virgül ile ayırarak yazın'; $wb['udp_port_help_txt'] = 'Virgül ile ayırarak yazın'; $wb['active_txt'] = 'Etkin'; $wb['firewall_error_unique'] = 'Bu sunucu için bir güvenlik duvarı kaydı zaten var.'; -$wb['tcp_ports_error_regex'] = 'TCP kapı açıklamasında karakter kullanılamaz. Yalnız rakam, \\":\\" ve \\",\\" karakterleri kullanılabilir.'; -$wb['udp_ports_error_regex'] = 'UDP kapı açıklamasında karakter kullanılamaz. Yalnız rakam, \\":\\" ve \\",\\" karakterleri kullanılabilir.'; +$wb['tcp_ports_error_regex'] = 'TCP kapı açıklamasında karakter kullanılamaz. Yalnız rakam, \":\" ve \",\" karakterleri kullanılabilir.'; +$wb['udp_ports_error_regex'] = 'UDP kapı açıklamasında karakter kullanılamaz. Yalnız rakam, \":\" ve \",\" karakterleri kullanılabilir.'; ?> diff --git a/interface/web/admin/lib/lang/tr_remote_action.lng b/interface/web/admin/lib/lang/tr_remote_action.lng index c067f67e8..2f124714e 100644 --- a/interface/web/admin/lib/lang/tr_remote_action.lng +++ b/interface/web/admin/lib/lang/tr_remote_action.lng @@ -2,11 +2,11 @@ $wb['select_server_txt'] = 'Sunucu Seçin'; $wb['btn_do_txt'] = 'İşlemi Başlatın'; $wb['do_osupdate_caption'] = 'Uzak sunucudaki işletim sistemini güncelleyin'; -$wb['do_osupdate_desc'] = 'Bu işlem seçilmiş sunucuda \\"aptitude -y upgrade\\" komutunu yürütür.

OLUŞABİLECEK RİSKLER SİZE AİTTİR!'; +$wb['do_osupdate_desc'] = 'Bu işlem seçilmiş sunucuda \"aptitude -y upgrade\" komutunu yürütür.

OLUŞABİLECEK RİSKLER SİZE AİTTİR!'; $wb['do_ispcupdate_caption'] = 'Uzak sunucudaki ISPConfig 3 - sürümünü güncelleyin'; $wb['do_ispcupdate_desc'] = 'Bu işlem seçilmiş sunucuda ISPConfig3 güncellemesini yürütür.

OLUŞABİLECEK RİSKLER SÜZE AİTTİR!'; $wb['action_scheduled'] = 'İşlem yürütülmek üzere zamanlandı'; $wb['select_all_server'] = 'Tüm Sunucularda'; $wb['ispconfig_update_title'] = 'ISPConfig güncelleme yönergeleri'; -$wb['ispconfig_update_text'] = 'Sunucunuzda root kullanıcısı ile bir kabuk oturumu açın ve ISPConfig güncellemesini başlatmak için

ispconfig_update.sh

komutunu yürütün.

Ayrıntılı güncelleme bilgilerine bakmak için buraya tıklayın'; +$wb['ispconfig_update_text'] = 'Sunucunuzda root kullanıcısı ile bir kabuk oturumu açın ve ISPConfig güncellemesini başlatmak için

ispconfig_update.sh

komutunu yürütün.

Ayrıntılı güncelleme bilgilerine bakmak için buraya tıklayın'; ?> diff --git a/interface/web/admin/lib/lang/tr_server_config.lng b/interface/web/admin/lib/lang/tr_server_config.lng index 7d16f2145..4abfd909b 100644 --- a/interface/web/admin/lib/lang/tr_server_config.lng +++ b/interface/web/admin/lib/lang/tr_server_config.lng @@ -152,7 +152,7 @@ $wb['try_rescue_txt'] = 'Hizmetler izlensin ve sorun çıktığında yeniden ba $wb['do_not_try_rescue_httpd_txt'] = 'HTTPD izlenmesin'; $wb['do_not_try_rescue_mysql_txt'] = 'MySQL izlenmesin'; $wb['do_not_try_rescue_mail_txt'] = 'E-posta izlenmesin'; -$wb['rescue_description_txt'] = 'Uyarı: mysql sunucusunu kapatmak istiyorsanız \\"MySQL izlenmesin\\" seçeneğini işaretleyip 2-3 dakika bekleyin.
2-3 dakika beklemezseniz, kurtarma işlemi mysql sunucusunu yeniden başlatmaya çalışır!'; +$wb['rescue_description_txt'] = 'Uyarı: mysql sunucusunu kapatmak istiyorsanız \"MySQL izlenmesin\" seçeneğini işaretleyip 2-3 dakika bekleyin.
2-3 dakika beklemezseniz, kurtarma işlemi mysql sunucusunu yeniden başlatmaya çalışır!'; $wb['enable_sni_txt'] = 'SNI Kullanılsın'; $wb['set_folder_permissions_on_update_txt'] = 'Güncellenirken klasör izinleri ayarlansın'; $wb['add_web_users_to_sshusers_group_txt'] = 'Web kullanıcıları -sshusers- grubuna eklensin'; diff --git a/interface/web/admin/lib/lang/tr_system_config.lng b/interface/web/admin/lib/lang/tr_system_config.lng index c52893f6b..b4b213697 100644 --- a/interface/web/admin/lib/lang/tr_system_config.lng +++ b/interface/web/admin/lib/lang/tr_system_config.lng @@ -64,7 +64,7 @@ $wb['customer_no_template_error_regex_txt'] = 'Müşteri no kalıbında geçersi $wb['customer_no_start_txt'] = 'Müşteri No Başlangıç Değeri'; $wb['customer_no_counter_txt'] = 'Müşteri No Sayacı'; $wb['session_timeout_txt'] = 'Oturum Zaman Aşımı (dakika)'; -$wb['session_allow_endless_txt'] = '\\"Oturum açık kalsın\\" kullanılabilsin'; +$wb['session_allow_endless_txt'] = '\"Oturum açık kalsın\" kullanılabilsin'; $wb['No'] = 'No'; $wb['min_password_length_txt'] = 'En Az Parola Uzunluğu'; $wb['min_password_strength_txt'] = 'En Az Parola Güçlüğü'; diff --git a/interface/web/admin/lib/lang/tr_users.lng b/interface/web/admin/lib/lang/tr_users.lng index 002921477..b639bf9a1 100644 --- a/interface/web/admin/lib/lang/tr_users.lng +++ b/interface/web/admin/lib/lang/tr_users.lng @@ -29,7 +29,7 @@ $wb['generate_password_txt'] = 'Parola Oluştur'; $wb['repeat_password_txt'] = 'Parola Onayı'; $wb['password_mismatch_txt'] = 'Parola ile onayı aynı değil.'; $wb['password_match_txt'] = 'Parola ile onayı aynı.'; -$wb['username_error_collision'] = 'Kullanıcı adı -web- ya da -web- sözcüğünü izleyen bir sayı ile başlayamaz.\\"'; +$wb['username_error_collision'] = 'Kullanıcı adı -web- ya da -web- sözcüğünü izleyen bir sayı ile başlayamaz.\"'; $wb['client_not_admin_err'] = 'Bir müşteriye ait bir kullanıcının tipi admin olarak atanamaz'; $wb['lost_password_function_txt'] = 'Forgot password function is available'; $wb['no_user_insert'] = 'CP-Users of type -user- get added and updated automatically when you add a client or reseller.'; diff --git a/interface/web/client/lib/lang/ar_client.lng b/interface/web/client/lib/lang/ar_client.lng index 71bc0fc1f..4d2bcccef 100644 --- a/interface/web/client/lib/lang/ar_client.lng +++ b/interface/web/client/lib/lang/ar_client.lng @@ -141,7 +141,7 @@ $wb['email_error_isemail'] = 'Please enter a valid email address.'; $wb['customer_no_error_unique'] = 'The customer no. must be unique (or empty).'; $wb['paypal_email_error_isemail'] = 'Please enter a valid PayPal email address.'; $wb['paypal_email_txt'] = 'PayPal Email'; -$wb['err_msg_master_tpl_set'] = 'All custom limit settings are ignored if any master template other than \\"custom\\" is selected.'; +$wb['err_msg_master_tpl_set'] = 'All custom limit settings are ignored if any master template other than \"custom\" is selected.'; $wb['aps_limits_txt'] = 'APS Installer Limits'; $wb['limit_aps_txt'] = 'Max. number of APS instances'; $wb['limit_aps_error_notint'] = 'The APS instances limit must be a number.'; diff --git a/interface/web/client/lib/lang/ar_reseller.lng b/interface/web/client/lib/lang/ar_reseller.lng index 68e8a950f..553abe0ae 100644 --- a/interface/web/client/lib/lang/ar_reseller.lng +++ b/interface/web/client/lib/lang/ar_reseller.lng @@ -159,7 +159,7 @@ $wb['added_date_txt'] = 'Added date'; $wb['limit_domainmodule_error_notint'] = 'Domainmodule limit must be a number.'; $wb['limit_domainmodule_txt'] = 'Domainmodule Limit'; $wb['client_limits_txt'] = 'Client Limits'; -$wb['err_msg_master_tpl_set'] = 'All custom limit settings are ignored if any master template other than \\"custom\\" is selected.'; +$wb['err_msg_master_tpl_set'] = 'All custom limit settings are ignored if any master template other than \"custom\" is selected.'; $wb['btn_save_txt'] = 'Save'; $wb['btn_cancel_txt'] = 'Cancel'; $wb['email_error_empty'] = 'Email is empty'; diff --git a/interface/web/client/lib/lang/bg_client.lng b/interface/web/client/lib/lang/bg_client.lng index 36da0a042..163f67704 100644 --- a/interface/web/client/lib/lang/bg_client.lng +++ b/interface/web/client/lib/lang/bg_client.lng @@ -141,7 +141,7 @@ $wb['email_error_isemail'] = 'Please enter a valid email address.'; $wb['customer_no_error_unique'] = 'The customer no. must be unique (or empty).'; $wb['paypal_email_error_isemail'] = 'Please enter a valid PayPal email address.'; $wb['paypal_email_txt'] = 'PayPal Email'; -$wb['err_msg_master_tpl_set'] = 'All custom limit settings are ignored if any master template other than \\"custom\\" is selected.'; +$wb['err_msg_master_tpl_set'] = 'All custom limit settings are ignored if any master template other than \"custom\" is selected.'; $wb['aps_limits_txt'] = 'APS Installer Limits'; $wb['limit_aps_txt'] = 'Max. number of APS instances'; $wb['limit_aps_error_notint'] = 'The APS instances limit must be a number.'; diff --git a/interface/web/client/lib/lang/bg_reseller.lng b/interface/web/client/lib/lang/bg_reseller.lng index 211b6daf9..7daa4cff2 100644 --- a/interface/web/client/lib/lang/bg_reseller.lng +++ b/interface/web/client/lib/lang/bg_reseller.lng @@ -159,7 +159,7 @@ $wb['added_date_txt'] = 'Added date'; $wb['limit_domainmodule_error_notint'] = 'Domainmodule limit must be a number.'; $wb['limit_domainmodule_txt'] = 'Domainmodule Limit'; $wb['client_limits_txt'] = 'Client Limits'; -$wb['err_msg_master_tpl_set'] = 'All custom limit settings are ignored if any master template other than \\"custom\\" is selected.'; +$wb['err_msg_master_tpl_set'] = 'All custom limit settings are ignored if any master template other than \"custom\" is selected.'; $wb['btn_save_txt'] = 'Save'; $wb['btn_cancel_txt'] = 'Cancel'; $wb['email_error_empty'] = 'Email is empty'; diff --git a/interface/web/client/lib/lang/br_client.lng b/interface/web/client/lib/lang/br_client.lng index 992c1ea2c..ad9282aa4 100644 --- a/interface/web/client/lib/lang/br_client.lng +++ b/interface/web/client/lib/lang/br_client.lng @@ -141,7 +141,7 @@ $wb['email_error_isemail'] = 'Por favor, insira um e-mail válido.'; $wb['customer_no_error_unique'] = 'O código do cliente deve ser exclusivo (ou em branco).'; $wb['paypal_email_error_isemail'] = 'Por favor, insira um e-mail do PayPal válido.'; $wb['paypal_email_txt'] = 'e-mail do PayPal'; -$wb['err_msg_master_tpl_set'] = 'Todos as configurações de limites personalizadas são ignoradas se qualquer gabarito mestre ou algum gabarito \\"personalizado\\" for selecionado.'; +$wb['err_msg_master_tpl_set'] = 'Todos as configurações de limites personalizadas são ignoradas se qualquer gabarito mestre ou algum gabarito \"personalizado\" for selecionado.'; $wb['aps_limits_txt'] = 'Limites de apps instalados'; $wb['limit_aps_txt'] = 'Limite de instâncias de apps'; $wb['limit_aps_error_notint'] = 'Limite de instâncias de apps deve ser um número.'; diff --git a/interface/web/client/lib/lang/br_client_template.lng b/interface/web/client/lib/lang/br_client_template.lng index 4b2ce6555..bc7124b16 100644 --- a/interface/web/client/lib/lang/br_client_template.lng +++ b/interface/web/client/lib/lang/br_client_template.lng @@ -76,7 +76,7 @@ $wb['limit_perl_txt'] = 'Perl disponível'; $wb['limit_ruby_txt'] = 'Ruby disponível'; $wb['limit_python_txt'] = 'Python disponível'; $wb['force_suexec_txt'] = 'Forçar SuEXEC'; -$wb['limit_hterror_txt'] = 'Diretório \\"Custom error docs\\" disponível'; +$wb['limit_hterror_txt'] = 'Diretório \"Custom error docs\" disponível'; $wb['limit_wildcard_txt'] = 'Curingas de subdomínios disponíveis'; $wb['limit_ssl_txt'] = 'SSL disponível'; $wb['web_limits_txt'] = 'Limites web'; diff --git a/interface/web/client/lib/lang/br_reseller.lng b/interface/web/client/lib/lang/br_reseller.lng index d90d3b15a..524f875f7 100644 --- a/interface/web/client/lib/lang/br_reseller.lng +++ b/interface/web/client/lib/lang/br_reseller.lng @@ -159,7 +159,7 @@ $wb['added_date_txt'] = 'Data do cadastro'; $wb['limit_domainmodule_error_notint'] = 'Limite de módulos de domínio deve ser um número.'; $wb['limit_domainmodule_txt'] = 'Limites de módulos de domínio'; $wb['client_limits_txt'] = 'Limite de clientes'; -$wb['err_msg_master_tpl_set'] = 'Todas as configurações personalizadas de limites serão ignoradas se um gabarito mestre ou \\"personalizado\\" for selecionado.'; +$wb['err_msg_master_tpl_set'] = 'Todas as configurações personalizadas de limites serão ignoradas se um gabarito mestre ou \"personalizado\" for selecionado.'; $wb['btn_save_txt'] = 'Salvar'; $wb['btn_cancel_txt'] = 'Cancelar'; $wb['email_error_empty'] = 'e-mail está em branco.'; diff --git a/interface/web/client/lib/lang/ca_client.lng b/interface/web/client/lib/lang/ca_client.lng index bfa38a340..7f460522f 100644 --- a/interface/web/client/lib/lang/ca_client.lng +++ b/interface/web/client/lib/lang/ca_client.lng @@ -139,7 +139,7 @@ $wb['email_error_isemail'] = 'Saisissez une adresse courriel valide.'; $wb['customer_no_error_unique'] = 'Le numéro client doit être unique (ou vide).'; $wb['paypal_email_error_isemail'] = 'Saisissez un compte Paypal valide.'; $wb['paypal_email_txt'] = 'Compte Paypal'; -$wb['err_msg_master_tpl_set'] = 'Les paramètres de limites personnalisés seront ignorés si un modèle maître autre que \\"custom\\" est sélectionné.'; +$wb['err_msg_master_tpl_set'] = 'Les paramètres de limites personnalisés seront ignorés si un modèle maître autre que \"custom\" est sélectionné.'; $wb['aps_limits_txt'] = 'Nombre max d\'Installeur APS'; $wb['limit_aps_txt'] = 'Nombre max d\'instances APS'; $wb['limit_aps_error_notint'] = 'La limite d\'instances APS doit être un nombre'; diff --git a/interface/web/client/lib/lang/ca_reseller.lng b/interface/web/client/lib/lang/ca_reseller.lng index f83d3aaff..7125b01a7 100644 --- a/interface/web/client/lib/lang/ca_reseller.lng +++ b/interface/web/client/lib/lang/ca_reseller.lng @@ -156,7 +156,7 @@ $wb['added_date_txt'] = 'Ajouté le'; $wb['limit_domainmodule_error_notint'] = 'Domainmodule limit must be a number.'; $wb['limit_domainmodule_txt'] = 'Domainmodule Limit'; $wb['client_limits_txt'] = 'Client Limits'; -$wb['err_msg_master_tpl_set'] = 'All custom limit settings are ignored if any master template other than \\"custom\\" is selected.'; +$wb['err_msg_master_tpl_set'] = 'All custom limit settings are ignored if any master template other than \"custom\" is selected.'; $wb['contact_firstname_txt'] = 'Contact firstname'; $wb['limit_backup_txt'] = 'Backupfunction available'; $wb['limit_client_error_positive_or_unlimited'] = 'The number of clients must be > 0 or -1 (unlimited)'; diff --git a/interface/web/client/lib/lang/cz_client.lng b/interface/web/client/lib/lang/cz_client.lng index 3351ac58e..edd366830 100644 --- a/interface/web/client/lib/lang/cz_client.lng +++ b/interface/web/client/lib/lang/cz_client.lng @@ -139,7 +139,7 @@ $wb['email_error_isemail'] = 'Zadejte prosím platnou e-mailovou adresu.'; $wb['customer_no_error_unique'] = 'Zákaznické číslo musí být jedinečné (nebo prázdné).'; $wb['paypal_email_error_isemail'] = 'Zadejte prosím platnou PayPal e-mail addresu.'; $wb['paypal_email_txt'] = 'PayPal e-mail'; -$wb['err_msg_master_tpl_set'] = 'Nelze nastavit vlastní limity, pokud chtete nastavit vlatní limity musí být \\"hlavní šablona\\" nastavena na volbu \\"Custom\\".'; +$wb['err_msg_master_tpl_set'] = 'Nelze nastavit vlastní limity, pokud chtete nastavit vlatní limity musí být \"hlavní šablona\" nastavena na volbu \"Custom\".'; $wb['aps_limits_txt'] = 'APS limity instalátoru'; $wb['limit_aps_txt'] = 'Max. počet APS instalací'; $wb['limit_aps_error_notint'] = 'Limit pro APS instalace musí být číslo.'; diff --git a/interface/web/client/lib/lang/cz_reseller.lng b/interface/web/client/lib/lang/cz_reseller.lng index adfea62ac..011b98531 100644 --- a/interface/web/client/lib/lang/cz_reseller.lng +++ b/interface/web/client/lib/lang/cz_reseller.lng @@ -156,7 +156,7 @@ $wb['added_date_txt'] = 'Datum vytvoření účtu'; $wb['limit_domainmodule_error_notint'] = 'Domainmodule limit must be a number.'; $wb['limit_domainmodule_txt'] = 'Domainmodule Limit'; $wb['client_limits_txt'] = 'Klientské limity'; -$wb['err_msg_master_tpl_set'] = 'Nelze nastavit vlastní limity, pokud chtete nastavit vlatní limity musí být \\"hlavní šablona\\" nastavena na volbu \\"Custom\\".'; +$wb['err_msg_master_tpl_set'] = 'Nelze nastavit vlastní limity, pokud chtete nastavit vlatní limity musí být \"hlavní šablona\" nastavena na volbu \"Custom\".'; $wb['contact_firstname_txt'] = 'Kontakt křestní jméno'; $wb['limit_backup_txt'] = 'Funkce zálohování (volitelné)'; $wb['limit_client_error_positive_or_unlimited'] = 'The number of clients must be > 0 or -1 (unlimited)'; diff --git a/interface/web/client/lib/lang/de_reseller.lng b/interface/web/client/lib/lang/de_reseller.lng index e37ca395a..48460658c 100644 --- a/interface/web/client/lib/lang/de_reseller.lng +++ b/interface/web/client/lib/lang/de_reseller.lng @@ -160,7 +160,7 @@ $wb['added_date_txt'] = 'Added date'; $wb['limit_domainmodule_error_notint'] = 'Domainmodule limit must be a number.'; $wb['limit_domainmodule_txt'] = 'Domainmodule Limit'; $wb['client_limits_txt'] = 'Client Limits'; -$wb['err_msg_master_tpl_set'] = 'All custom limit settings are ignored if any master template other than \\"custom\\" is selected.'; +$wb['err_msg_master_tpl_set'] = 'All custom limit settings are ignored if any master template other than \"custom\" is selected.'; $wb['invalid_vat_id'] = 'Die USt.-ID ist ungültig.'; $wb['btn_save_txt'] = 'Speichern'; $wb['btn_cancel_txt'] = 'Abbrechen'; diff --git a/interface/web/client/lib/lang/dk_client.lng b/interface/web/client/lib/lang/dk_client.lng index b944e0317..f0a8d1a7c 100644 --- a/interface/web/client/lib/lang/dk_client.lng +++ b/interface/web/client/lib/lang/dk_client.lng @@ -139,7 +139,7 @@ $wb['email_error_isemail'] = 'Indtast en gyldig e-mail adresse.'; $wb['customer_no_error_unique'] = 'Kunde nr. skal være unikke (eller tomt).'; $wb['paypal_email_error_isemail'] = 'Indtast en gyldig PayPal e-mail adresse.'; $wb['paypal_email_txt'] = 'PayPal E-mail'; -$wb['err_msg_master_tpl_set'] = 'Alle brugerdefinerede grænse indstillinger ignoreres, hvis nogen anden master skabelonen end \\"custom\\" er valgt.'; +$wb['err_msg_master_tpl_set'] = 'Alle brugerdefinerede grænse indstillinger ignoreres, hvis nogen anden master skabelonen end \"custom\" er valgt.'; $wb['aps_limits_txt'] = 'APS Installer Begrænsninger'; $wb['limit_aps_txt'] = 'Max. antal af APS forekomster'; $wb['limit_aps_error_notint'] = 'APS forekomster grænse skal være et tal.'; diff --git a/interface/web/client/lib/lang/dk_reseller.lng b/interface/web/client/lib/lang/dk_reseller.lng index b06301ccd..93cd7c403 100644 --- a/interface/web/client/lib/lang/dk_reseller.lng +++ b/interface/web/client/lib/lang/dk_reseller.lng @@ -156,7 +156,7 @@ $wb['added_date_txt'] = 'Tilføjet d.'; $wb['limit_domainmodule_error_notint'] = 'Domænemodul grænse skal være et tal.'; $wb['limit_domainmodule_txt'] = 'Domænemodul Begrænsning'; $wb['client_limits_txt'] = 'Kunde Begrænsninger'; -$wb['err_msg_master_tpl_set'] = 'Alle brugerdefinerede grænse indstillinger ignoreres, hvis nogen anden master skabelonen end \\"custom\\" er valgt.'; +$wb['err_msg_master_tpl_set'] = 'Alle brugerdefinerede grænse indstillinger ignoreres, hvis nogen anden master skabelonen end \"custom\" er valgt.'; $wb['contact_firstname_txt'] = 'Contact firstname'; $wb['password_click_to_set_txt'] = 'Click to set'; $wb['limit_database_user_txt'] = 'Max. Database users'; diff --git a/interface/web/client/lib/lang/el_client.lng b/interface/web/client/lib/lang/el_client.lng index b85f653d4..8c2d7d738 100644 --- a/interface/web/client/lib/lang/el_client.lng +++ b/interface/web/client/lib/lang/el_client.lng @@ -141,7 +141,7 @@ $wb['email_error_isemail'] = 'Please enter a valid email address.'; $wb['customer_no_error_unique'] = 'The customer no. must be unique (or empty).'; $wb['paypal_email_error_isemail'] = 'Please enter a valid PayPal email address.'; $wb['paypal_email_txt'] = 'PayPal Email'; -$wb['err_msg_master_tpl_set'] = 'All custom limit settings are ignored if any master template other than \\"custom\\" is selected.'; +$wb['err_msg_master_tpl_set'] = 'All custom limit settings are ignored if any master template other than \"custom\" is selected.'; $wb['aps_limits_txt'] = 'APS Installer Limits'; $wb['limit_aps_txt'] = 'Max. number of APS instances'; $wb['limit_aps_error_notint'] = 'The APS instances limit must be a number.'; diff --git a/interface/web/client/lib/lang/el_reseller.lng b/interface/web/client/lib/lang/el_reseller.lng index b409c169e..13a38caf9 100644 --- a/interface/web/client/lib/lang/el_reseller.lng +++ b/interface/web/client/lib/lang/el_reseller.lng @@ -159,7 +159,7 @@ $wb['added_date_txt'] = 'Added date'; $wb['limit_domainmodule_error_notint'] = 'Domainmodule limit must be a number.'; $wb['limit_domainmodule_txt'] = 'Domainmodule Limit'; $wb['client_limits_txt'] = 'Client Limits'; -$wb['err_msg_master_tpl_set'] = 'All custom limit settings are ignored if any master template other than \\"custom\\" is selected.'; +$wb['err_msg_master_tpl_set'] = 'All custom limit settings are ignored if any master template other than \"custom\" is selected.'; $wb['btn_save_txt'] = 'Save'; $wb['btn_cancel_txt'] = 'Cancel'; $wb['email_error_empty'] = 'Email is empty'; diff --git a/interface/web/client/lib/lang/es_client.lng b/interface/web/client/lib/lang/es_client.lng index 75125024f..1935b168a 100755 --- a/interface/web/client/lib/lang/es_client.lng +++ b/interface/web/client/lib/lang/es_client.lng @@ -42,7 +42,7 @@ $wb['email_error_empty'] = 'El correo electrónico está vacío'; $wb['email_error_isemail'] = 'Por favor ingrese una dirección de correo válida.'; $wb['email_limits_txt'] = 'Límites de correo'; $wb['email_txt'] = 'Correo'; -$wb['err_msg_master_tpl_set'] = 'Todas las opciones personalizadas de límites serán ignoradas si se utiliza otra plantilla maestra diferente a \\"personalizada\\".'; +$wb['err_msg_master_tpl_set'] = 'Todas las opciones personalizadas de límites serán ignoradas si se utiliza otra plantilla maestra diferente a \"personalizada\".'; $wb['fax_txt'] = 'Fax'; $wb['firstname_error_empty'] = 'El nombre está vacío.'; $wb['firstname_txt'] = 'Nombre'; @@ -90,7 +90,7 @@ $wb['limit_mailaliasdomain_error_notint'] = 'El límite de alias de dominio de c $wb['limit_mailaliasdomain_txt'] = 'Cantidad máx. de alias de dominio'; $wb['limit_mailbox_error_notint'] = 'El límite de buzones debe ser un número.'; $wb['limit_mailbox_txt'] = 'Cantidad máx. de buzones'; -$wb['limit_mailcatchall_error_notint'] = 'El límite de correos \\"recoge-todo\\" debe ser un número.'; +$wb['limit_mailcatchall_error_notint'] = 'El límite de correos \"recoge-todo\" debe ser un número.'; $wb['limit_mailcatchall_txt'] = 'Cantidad máx. de receptores de correos huérfanos'; $wb['limit_maildomain_error_notint'] = 'El límite de dominio de correo debe ser un número.'; $wb['limit_maildomain_txt'] = 'Cantidad máx. de dominios para correo'; diff --git a/interface/web/client/lib/lang/es_client_template.lng b/interface/web/client/lib/lang/es_client_template.lng index 4fd6f650f..6a5145960 100755 --- a/interface/web/client/lib/lang/es_client_template.lng +++ b/interface/web/client/lib/lang/es_client_template.lng @@ -46,8 +46,8 @@ $wb['limit_mailaliasdomain_error_notint'] = 'El límite de alias de dominio de c $wb['limit_mailaliasdomain_txt'] = 'Cantidad máx. de alias de dominio'; $wb['limit_mailbox_error_notint'] = 'El límite de buzones debe ser un número.'; $wb['limit_mailbox_txt'] = 'Cantidad máx. de buzones'; -$wb['limit_mailcatchall_error_notint'] = 'El límite de receptores de correo \\"recoge-todo\\" debe ser un número.'; -$wb['limit_mailcatchall_txt'] = 'Cantidad máx. de receptores de correo \\"recoge-todo\\" '; +$wb['limit_mailcatchall_error_notint'] = 'El límite de receptores de correo \"recoge-todo\" debe ser un número.'; +$wb['limit_mailcatchall_txt'] = 'Cantidad máx. de receptores de correo \"recoge-todo\" '; $wb['limit_maildomain_error_notint'] = 'El límite de dominio de correo debe ser un número.'; $wb['limit_maildomain_txt'] = 'Cantidad máx. de dominios para correo'; $wb['limit_mailfetchmail_error_notint'] = 'El límite de recuperadores de correo debe ser un número.'; diff --git a/interface/web/client/lib/lang/es_reseller.lng b/interface/web/client/lib/lang/es_reseller.lng index 5a94b9e80..a1de1fb7b 100755 --- a/interface/web/client/lib/lang/es_reseller.lng +++ b/interface/web/client/lib/lang/es_reseller.lng @@ -46,7 +46,7 @@ $wb['email_error_empty'] = 'El correo electrónico está vacío'; $wb['email_error_isemail'] = 'Por favor ingrese una dirección de correo válida.'; $wb['email_limits_txt'] = 'Límites de correo'; $wb['email_txt'] = 'Correo'; -$wb['err_msg_master_tpl_set'] = 'Todas las opciones personalizadas de límites serán ignoradas si se utiliza otra plantilla maestra diferente a \\"personalizada\\".'; +$wb['err_msg_master_tpl_set'] = 'Todas las opciones personalizadas de límites serán ignoradas si se utiliza otra plantilla maestra diferente a \"personalizada\".'; $wb['fax_txt'] = 'Fax'; $wb['firstname_error_empty'] = 'El nombre está vacío.'; $wb['firstname_txt'] = 'Nombre'; @@ -97,7 +97,7 @@ $wb['limit_mailalias_txt'] = 'Cantidad máx. de alias de correo'; $wb['limit_mailaliasdomain_txt'] = 'Cantidad máx. de alias de dominio'; $wb['limit_mailbox_error_notint'] = 'El límite de buzones debe ser un número.'; $wb['limit_mailbox_txt'] = 'Cantidad máx. de buzones'; -$wb['limit_mailcatchall_error_notint'] = 'El límite de correos \\"recoge-todo\\" debe ser un número.'; +$wb['limit_mailcatchall_error_notint'] = 'El límite de correos \"recoge-todo\" debe ser un número.'; $wb['limit_mailcatchall_txt'] = 'Cantidad máx. de receptores de correos huérfanos'; $wb['limit_maildomain_error_notint'] = 'El límite de dominio de correo debe ser un número.'; $wb['limit_maildomain_txt'] = 'Cantidad máx. de dominios para correo'; diff --git a/interface/web/client/lib/lang/fi_client.lng b/interface/web/client/lib/lang/fi_client.lng index 6df30e775..a90a3d7c2 100755 --- a/interface/web/client/lib/lang/fi_client.lng +++ b/interface/web/client/lib/lang/fi_client.lng @@ -141,7 +141,7 @@ $wb['email_error_isemail'] = 'Please enter a valid email address.'; $wb['customer_no_error_unique'] = 'The customer no. must be unique (or empty).'; $wb['paypal_email_error_isemail'] = 'Please enter a valid PayPal email address.'; $wb['paypal_email_txt'] = 'PayPal Email'; -$wb['err_msg_master_tpl_set'] = 'All custom limit settings are ignored if any master template other than \\"custom\\" is selected.'; +$wb['err_msg_master_tpl_set'] = 'All custom limit settings are ignored if any master template other than \"custom\" is selected.'; $wb['aps_limits_txt'] = 'APS Installer Limits'; $wb['limit_aps_txt'] = 'Max. number of APS instances'; $wb['limit_aps_error_notint'] = 'The APS instances limit must be a number.'; diff --git a/interface/web/client/lib/lang/fi_reseller.lng b/interface/web/client/lib/lang/fi_reseller.lng index 58af2fdf0..6aecc836e 100644 --- a/interface/web/client/lib/lang/fi_reseller.lng +++ b/interface/web/client/lib/lang/fi_reseller.lng @@ -159,7 +159,7 @@ $wb['added_date_txt'] = 'Added date'; $wb['limit_domainmodule_error_notint'] = 'Domainmodule limit must be a number.'; $wb['limit_domainmodule_txt'] = 'Domainmodule Limit'; $wb['client_limits_txt'] = 'Client Limits'; -$wb['err_msg_master_tpl_set'] = 'All custom limit settings are ignored if any master template other than \\"custom\\" is selected.'; +$wb['err_msg_master_tpl_set'] = 'All custom limit settings are ignored if any master template other than \"custom\" is selected.'; $wb['btn_save_txt'] = 'Save'; $wb['btn_cancel_txt'] = 'Cancel'; $wb['email_error_empty'] = 'Email is empty'; diff --git a/interface/web/client/lib/lang/fr_client.lng b/interface/web/client/lib/lang/fr_client.lng index 61612ccbe..f13f0d467 100644 --- a/interface/web/client/lib/lang/fr_client.lng +++ b/interface/web/client/lib/lang/fr_client.lng @@ -139,7 +139,7 @@ $wb['email_error_isemail'] = 'Saisissez une adresse e-mail valide.'; $wb['customer_no_error_unique'] = 'Le numéro client doit être unique (ou vide).'; $wb['paypal_email_error_isemail'] = 'Saisissez un compte Paypal valide.'; $wb['paypal_email_txt'] = 'Compte Paypal'; -$wb['err_msg_master_tpl_set'] = 'Les paramètres de limites personnalisés seront ignorés si un modèle maître autre que \\"custom\\" est sélectionné.'; +$wb['err_msg_master_tpl_set'] = 'Les paramètres de limites personnalisés seront ignorés si un modèle maître autre que \"custom\" est sélectionné.'; $wb['aps_limits_txt'] = 'Nombre max d’Installeur APS'; $wb['limit_aps_txt'] = 'Nombre max d’instances APS'; $wb['limit_aps_error_notint'] = 'La limite d’instances APS doit être un nombre'; diff --git a/interface/web/client/lib/lang/fr_reseller.lng b/interface/web/client/lib/lang/fr_reseller.lng index f30fcd48c..591e12ac3 100644 --- a/interface/web/client/lib/lang/fr_reseller.lng +++ b/interface/web/client/lib/lang/fr_reseller.lng @@ -156,7 +156,7 @@ $wb['added_date_txt'] = 'Added date'; $wb['limit_domainmodule_error_notint'] = 'Domainmodule limit must be a number.'; $wb['limit_domainmodule_txt'] = 'Domainmodule Limit'; $wb['client_limits_txt'] = 'Client Limits'; -$wb['err_msg_master_tpl_set'] = 'All custom limit settings are ignored if any master template other than \\"custom\\" is selected.'; +$wb['err_msg_master_tpl_set'] = 'All custom limit settings are ignored if any master template other than \"custom\" is selected.'; $wb['contact_firstname_txt'] = 'Contact firstname'; $wb['limit_backup_txt'] = 'Backupfunction available'; $wb['limit_client_error_positive_or_unlimited'] = 'The number of clients must be > 0 or -1 (unlimited)'; diff --git a/interface/web/client/lib/lang/hr_client.lng b/interface/web/client/lib/lang/hr_client.lng index ec5b73d94..351ad4b8b 100644 --- a/interface/web/client/lib/lang/hr_client.lng +++ b/interface/web/client/lib/lang/hr_client.lng @@ -141,7 +141,7 @@ $wb['email_error_isemail'] = 'Unesi ispravnu email adresu.'; $wb['customer_no_error_unique'] = 'The customer no. must be unique (or empty).'; $wb['paypal_email_error_isemail'] = 'Please enter a valid PayPal email address.'; $wb['paypal_email_txt'] = 'PayPal Email'; -$wb['err_msg_master_tpl_set'] = 'All custom limit settings are ignored if any master template other than \\"custom\\" is selected.'; +$wb['err_msg_master_tpl_set'] = 'All custom limit settings are ignored if any master template other than \"custom\" is selected.'; $wb['aps_limits_txt'] = 'APS Installer Limits'; $wb['limit_aps_txt'] = 'Max. number of APS instances'; $wb['limit_aps_error_notint'] = 'The APS instances limit must be a number.'; diff --git a/interface/web/client/lib/lang/hr_reseller.lng b/interface/web/client/lib/lang/hr_reseller.lng index 9188b6861..37e1e3835 100644 --- a/interface/web/client/lib/lang/hr_reseller.lng +++ b/interface/web/client/lib/lang/hr_reseller.lng @@ -159,7 +159,7 @@ $wb['added_date_txt'] = 'Datum dodavanja'; $wb['limit_domainmodule_error_notint'] = 'Domainmodule limit must be a number.'; $wb['limit_domainmodule_txt'] = 'Domain module Limit'; $wb['client_limits_txt'] = 'Limiti klijenata'; -$wb['err_msg_master_tpl_set'] = 'All custom limit settings are ignored if any master template other than \\"custom\\" is selected.'; +$wb['err_msg_master_tpl_set'] = 'All custom limit settings are ignored if any master template other than \"custom\" is selected.'; $wb['btn_save_txt'] = 'Save'; $wb['btn_cancel_txt'] = 'Cancel'; $wb['email_error_empty'] = 'Email is empty'; diff --git a/interface/web/client/lib/lang/hu_client.lng b/interface/web/client/lib/lang/hu_client.lng index 10993601c..8b9cc1608 100644 --- a/interface/web/client/lib/lang/hu_client.lng +++ b/interface/web/client/lib/lang/hu_client.lng @@ -141,7 +141,7 @@ $wb['email_error_isemail'] = 'Please enter a valid email address.'; $wb['customer_no_error_unique'] = 'The customer no. must be unique (or empty).'; $wb['paypal_email_error_isemail'] = 'Please enter a valid PayPal email address.'; $wb['paypal_email_txt'] = 'PayPal Email'; -$wb['err_msg_master_tpl_set'] = 'All custom limit settings are ignored if any master template other than \\"custom\\" is selected.'; +$wb['err_msg_master_tpl_set'] = 'All custom limit settings are ignored if any master template other than \"custom\" is selected.'; $wb['aps_limits_txt'] = 'APS Installer Limits'; $wb['limit_aps_txt'] = 'Max. number of APS instances'; $wb['limit_aps_error_notint'] = 'The APS instances limit must be a number.'; diff --git a/interface/web/client/lib/lang/hu_reseller.lng b/interface/web/client/lib/lang/hu_reseller.lng index dd9290885..2b0c15e8f 100644 --- a/interface/web/client/lib/lang/hu_reseller.lng +++ b/interface/web/client/lib/lang/hu_reseller.lng @@ -159,7 +159,7 @@ $wb['added_date_txt'] = 'Added date'; $wb['limit_domainmodule_error_notint'] = 'Domainmodule limit must be a number.'; $wb['limit_domainmodule_txt'] = 'Domainmodule Limit'; $wb['client_limits_txt'] = 'Client Limits'; -$wb['err_msg_master_tpl_set'] = 'All custom limit settings are ignored if any master template other than \\"custom\\" is selected.'; +$wb['err_msg_master_tpl_set'] = 'All custom limit settings are ignored if any master template other than \"custom\" is selected.'; $wb['btn_save_txt'] = 'Save'; $wb['btn_cancel_txt'] = 'Cancel'; $wb['email_error_empty'] = 'Email is empty'; diff --git a/interface/web/client/lib/lang/id_client.lng b/interface/web/client/lib/lang/id_client.lng index c84e6251f..d25230ea3 100644 --- a/interface/web/client/lib/lang/id_client.lng +++ b/interface/web/client/lib/lang/id_client.lng @@ -141,7 +141,7 @@ $wb['email_error_isemail'] = 'Please enter a valid email address.'; $wb['customer_no_error_unique'] = 'The customer no. must be unique (or empty).'; $wb['paypal_email_error_isemail'] = 'Please enter a valid PayPal email address.'; $wb['paypal_email_txt'] = 'PayPal Email'; -$wb['err_msg_master_tpl_set'] = 'All custom limit settings are ignored if any master template other than \\"custom\\" is selected.'; +$wb['err_msg_master_tpl_set'] = 'All custom limit settings are ignored if any master template other than \"custom\" is selected.'; $wb['aps_limits_txt'] = 'APS Installer Limits'; $wb['limit_aps_txt'] = 'Max. number of APS instances'; $wb['limit_aps_error_notint'] = 'The APS instances limit must be a number.'; diff --git a/interface/web/client/lib/lang/id_reseller.lng b/interface/web/client/lib/lang/id_reseller.lng index 821a35e3c..af91d1bb4 100644 --- a/interface/web/client/lib/lang/id_reseller.lng +++ b/interface/web/client/lib/lang/id_reseller.lng @@ -159,7 +159,7 @@ $wb['added_date_txt'] = 'Added date'; $wb['limit_domainmodule_error_notint'] = 'Domainmodule limit must be a number.'; $wb['limit_domainmodule_txt'] = 'Domainmodule Limit'; $wb['client_limits_txt'] = 'Client Limits'; -$wb['err_msg_master_tpl_set'] = 'All custom limit settings are ignored if any master template other than \\"custom\\" is selected.'; +$wb['err_msg_master_tpl_set'] = 'All custom limit settings are ignored if any master template other than \"custom\" is selected.'; $wb['btn_save_txt'] = 'Save'; $wb['btn_cancel_txt'] = 'Cancel'; $wb['email_error_empty'] = 'Email is empty'; diff --git a/interface/web/client/lib/lang/it_client.lng b/interface/web/client/lib/lang/it_client.lng index 0f75d849d..a361d0a88 100644 --- a/interface/web/client/lib/lang/it_client.lng +++ b/interface/web/client/lib/lang/it_client.lng @@ -139,7 +139,7 @@ $wb['email_error_isemail'] = 'Please enter a valid email address.'; $wb['customer_no_error_unique'] = 'The customer no. must be unique (or empty).'; $wb['paypal_email_error_isemail'] = 'Please enter a valid PayPal email address.'; $wb['paypal_email_txt'] = 'PayPal Email'; -$wb['err_msg_master_tpl_set'] = 'All custom limit settings are ignored if any master template other than \\"custom\\" is selected.'; +$wb['err_msg_master_tpl_set'] = 'All custom limit settings are ignored if any master template other than \"custom\" is selected.'; $wb['aps_limits_txt'] = 'APS Installer Limits'; $wb['limit_aps_txt'] = 'Max. number of APS instances'; $wb['limit_aps_error_notint'] = 'The APS instances limit must be a number.'; diff --git a/interface/web/client/lib/lang/it_reseller.lng b/interface/web/client/lib/lang/it_reseller.lng index 2cef29326..8fc49568a 100644 --- a/interface/web/client/lib/lang/it_reseller.lng +++ b/interface/web/client/lib/lang/it_reseller.lng @@ -156,7 +156,7 @@ $wb['added_date_txt'] = 'Added date'; $wb['limit_domainmodule_error_notint'] = 'Domainmodule limit must be a number.'; $wb['limit_domainmodule_txt'] = 'Domainmodule Limit'; $wb['client_limits_txt'] = 'Client Limits'; -$wb['err_msg_master_tpl_set'] = 'All custom limit settings are ignored if any master template other than \\"custom\\" is selected.'; +$wb['err_msg_master_tpl_set'] = 'All custom limit settings are ignored if any master template other than \"custom\" is selected.'; $wb['contact_firstname_txt'] = 'Contact firstname'; $wb['limit_backup_txt'] = 'Backupfunction available'; $wb['limit_client_error_positive_or_unlimited'] = 'The number of clients must be > 0 or -1 (unlimited)'; diff --git a/interface/web/client/lib/lang/ja_client.lng b/interface/web/client/lib/lang/ja_client.lng index 33aa6ab4e..2526c0279 100644 --- a/interface/web/client/lib/lang/ja_client.lng +++ b/interface/web/client/lib/lang/ja_client.lng @@ -141,7 +141,7 @@ $wb['email_error_isemail'] = 'Please enter a valid email address.'; $wb['customer_no_error_unique'] = 'The customer no. must be unique (or empty).'; $wb['paypal_email_error_isemail'] = 'Please enter a valid PayPal email address.'; $wb['paypal_email_txt'] = 'PayPal Email'; -$wb['err_msg_master_tpl_set'] = 'All custom limit settings are ignored if any master template other than \\"custom\\" is selected.'; +$wb['err_msg_master_tpl_set'] = 'All custom limit settings are ignored if any master template other than \"custom\" is selected.'; $wb['aps_limits_txt'] = 'APS Installer Limits'; $wb['limit_aps_txt'] = 'Max. number of APS instances'; $wb['limit_aps_error_notint'] = 'The APS instances limit must be a number.'; diff --git a/interface/web/client/lib/lang/ja_reseller.lng b/interface/web/client/lib/lang/ja_reseller.lng index 7edf836f3..66200eccb 100644 --- a/interface/web/client/lib/lang/ja_reseller.lng +++ b/interface/web/client/lib/lang/ja_reseller.lng @@ -159,7 +159,7 @@ $wb['added_date_txt'] = 'Added date'; $wb['limit_domainmodule_error_notint'] = 'Domainmodule limit must be a number.'; $wb['limit_domainmodule_txt'] = 'Domainmodule Limit'; $wb['client_limits_txt'] = 'Client Limits'; -$wb['err_msg_master_tpl_set'] = 'All custom limit settings are ignored if any master template other than \\"custom\\" is selected.'; +$wb['err_msg_master_tpl_set'] = 'All custom limit settings are ignored if any master template other than \"custom\" is selected.'; $wb['btn_save_txt'] = 'Save'; $wb['btn_cancel_txt'] = 'Cancel'; $wb['email_error_empty'] = 'Email is empty'; diff --git a/interface/web/client/lib/lang/nl_client.lng b/interface/web/client/lib/lang/nl_client.lng index 188a37f4f..8e0092f25 100644 --- a/interface/web/client/lib/lang/nl_client.lng +++ b/interface/web/client/lib/lang/nl_client.lng @@ -142,7 +142,7 @@ $wb['email_error_isemail'] = 'Please enter a valid email address.'; $wb['customer_no_error_unique'] = 'The customer no. must be unique (or empty).'; $wb['paypal_email_error_isemail'] = 'Please enter a valid PayPal email address.'; $wb['paypal_email_txt'] = 'PayPal Email'; -$wb['err_msg_master_tpl_set'] = 'All custom limit settings are ignored if any master template other than \\"custom\\" is selected.'; +$wb['err_msg_master_tpl_set'] = 'All custom limit settings are ignored if any master template other than \"custom\" is selected.'; $wb['aps_limits_txt'] = 'APS Installer Limits'; $wb['limit_aps_txt'] = 'Max. number of APS instances'; $wb['limit_aps_error_notint'] = 'The APS instances limit must be a number.'; diff --git a/interface/web/client/lib/lang/nl_reseller.lng b/interface/web/client/lib/lang/nl_reseller.lng index 9953880be..9cdb1856f 100644 --- a/interface/web/client/lib/lang/nl_reseller.lng +++ b/interface/web/client/lib/lang/nl_reseller.lng @@ -160,7 +160,7 @@ $wb['added_date_txt'] = 'Added date'; $wb['limit_domainmodule_error_notint'] = 'Domainmodule limit must be a number.'; $wb['limit_domainmodule_txt'] = 'Domainmodule Limit'; $wb['client_limits_txt'] = 'Client Limits'; -$wb['err_msg_master_tpl_set'] = 'All custom limit settings are ignored if any master template other than \\"custom\\" is selected.'; +$wb['err_msg_master_tpl_set'] = 'All custom limit settings are ignored if any master template other than \"custom\" is selected.'; $wb['btn_save_txt'] = 'Save'; $wb['btn_cancel_txt'] = 'Cancel'; $wb['email_error_empty'] = 'Email is empty'; diff --git a/interface/web/client/lib/lang/pl_reseller.lng b/interface/web/client/lib/lang/pl_reseller.lng index 9b2cf58f7..69b30fe2a 100644 --- a/interface/web/client/lib/lang/pl_reseller.lng +++ b/interface/web/client/lib/lang/pl_reseller.lng @@ -159,7 +159,7 @@ $wb['added_date_txt'] = 'Added date'; $wb['limit_domainmodule_error_notint'] = 'Domainmodule limit must be a number.'; $wb['limit_domainmodule_txt'] = 'Domainmodule Limit'; $wb['client_limits_txt'] = 'Client Limits'; -$wb['err_msg_master_tpl_set'] = 'All custom limit settings are ignored if any master template other than \\"custom\\" is selected.'; +$wb['err_msg_master_tpl_set'] = 'All custom limit settings are ignored if any master template other than \"custom\" is selected.'; $wb['btn_save_txt'] = 'Save'; $wb['btn_cancel_txt'] = 'Cancel'; $wb['email_error_empty'] = 'Email is empty'; diff --git a/interface/web/client/lib/lang/pt_client.lng b/interface/web/client/lib/lang/pt_client.lng index ae3e45b24..b05e14dfe 100644 --- a/interface/web/client/lib/lang/pt_client.lng +++ b/interface/web/client/lib/lang/pt_client.lng @@ -141,7 +141,7 @@ $wb['email_error_isemail'] = 'Please enter a valid email address.'; $wb['customer_no_error_unique'] = 'The customer no. must be unique (or empty).'; $wb['paypal_email_error_isemail'] = 'Please enter a valid PayPal email address.'; $wb['paypal_email_txt'] = 'PayPal Email'; -$wb['err_msg_master_tpl_set'] = 'All custom limit settings are ignored if any master template other than \\"custom\\" is selected.'; +$wb['err_msg_master_tpl_set'] = 'All custom limit settings are ignored if any master template other than \"custom\" is selected.'; $wb['aps_limits_txt'] = 'APS Installer Limits'; $wb['limit_aps_txt'] = 'Max. number of APS instances'; $wb['limit_aps_error_notint'] = 'The APS instances limit must be a number.'; diff --git a/interface/web/client/lib/lang/pt_reseller.lng b/interface/web/client/lib/lang/pt_reseller.lng index e021cd251..ae3eddd8b 100644 --- a/interface/web/client/lib/lang/pt_reseller.lng +++ b/interface/web/client/lib/lang/pt_reseller.lng @@ -159,7 +159,7 @@ $wb['added_date_txt'] = 'Added date'; $wb['limit_domainmodule_error_notint'] = 'Domainmodule limit must be a number.'; $wb['limit_domainmodule_txt'] = 'Domainmodule Limit'; $wb['client_limits_txt'] = 'Client Limits'; -$wb['err_msg_master_tpl_set'] = 'All custom limit settings are ignored if any master template other than \\"custom\\" is selected.'; +$wb['err_msg_master_tpl_set'] = 'All custom limit settings are ignored if any master template other than \"custom\" is selected.'; $wb['btn_save_txt'] = 'Save'; $wb['btn_cancel_txt'] = 'Cancel'; $wb['email_error_empty'] = 'Email is empty'; diff --git a/interface/web/client/lib/lang/ro_client.lng b/interface/web/client/lib/lang/ro_client.lng index 034c4d0e4..bc0ad4316 100644 --- a/interface/web/client/lib/lang/ro_client.lng +++ b/interface/web/client/lib/lang/ro_client.lng @@ -141,7 +141,7 @@ $wb['email_error_isemail'] = 'Please enter a valid email address.'; $wb['customer_no_error_unique'] = 'The customer no. must be unique (or empty).'; $wb['paypal_email_error_isemail'] = 'Please enter a valid PayPal email address.'; $wb['paypal_email_txt'] = 'PayPal Email'; -$wb['err_msg_master_tpl_set'] = 'All custom limit settings are ignored if any master template other than \\"custom\\" is selected.'; +$wb['err_msg_master_tpl_set'] = 'All custom limit settings are ignored if any master template other than \"custom\" is selected.'; $wb['aps_limits_txt'] = 'APS Installer Limits'; $wb['limit_aps_txt'] = 'Max. number of APS instances'; $wb['limit_aps_error_notint'] = 'The APS instances limit must be a number.'; diff --git a/interface/web/client/lib/lang/ro_reseller.lng b/interface/web/client/lib/lang/ro_reseller.lng index 68e8a950f..553abe0ae 100644 --- a/interface/web/client/lib/lang/ro_reseller.lng +++ b/interface/web/client/lib/lang/ro_reseller.lng @@ -159,7 +159,7 @@ $wb['added_date_txt'] = 'Added date'; $wb['limit_domainmodule_error_notint'] = 'Domainmodule limit must be a number.'; $wb['limit_domainmodule_txt'] = 'Domainmodule Limit'; $wb['client_limits_txt'] = 'Client Limits'; -$wb['err_msg_master_tpl_set'] = 'All custom limit settings are ignored if any master template other than \\"custom\\" is selected.'; +$wb['err_msg_master_tpl_set'] = 'All custom limit settings are ignored if any master template other than \"custom\" is selected.'; $wb['btn_save_txt'] = 'Save'; $wb['btn_cancel_txt'] = 'Cancel'; $wb['email_error_empty'] = 'Email is empty'; diff --git a/interface/web/client/lib/lang/ru_client.lng b/interface/web/client/lib/lang/ru_client.lng index befd6b15b..a37d4673a 100644 --- a/interface/web/client/lib/lang/ru_client.lng +++ b/interface/web/client/lib/lang/ru_client.lng @@ -108,7 +108,7 @@ $wb['limit_openvz_vm_template_id_txt'] = 'Принудительный шабл $wb['limit_openvz_vm_error_notint'] = 'Лимит виртуальных серверов должен быть числом.'; $wb['web_php_options_notempty'] = 'Нет выбранных параметров PHP. Выберите по крайней мере один параметр PHP.'; $wb['ssh_chroot_notempty'] = 'Не выбран параметр SSH-Chroot. Выберите по крайней мере один параметр SSH-Chroot.'; -$wb['username_error_collision'] = 'Имя пользователя не может начинаться со слова \\"web\\" или \\"web\\" плюс число.'; +$wb['username_error_collision'] = 'Имя пользователя не может начинаться со слова \"web\" или \"web\" плюс число.'; $wb['add_additional_template_txt'] = 'Добавить дополнительный шаблон'; $wb['delete_additional_template_txt'] = 'Удалить дополнительный шаблон'; $wb['limit_cgi_txt'] = 'CGI доступен'; @@ -141,7 +141,7 @@ $wb['email_error_isemail'] = 'Некорректный почтовый адре $wb['customer_no_error_unique'] = 'Счётчик номера Клиента должен быть уникален (или отсутствует).'; $wb['paypal_email_error_isemail'] = 'Пожалуйста, введите действующий адрес электронной почты PayPal.'; $wb['paypal_email_txt'] = 'Адрес электронной почты PayPal'; -$wb['err_msg_master_tpl_set'] = 'Значения, установленные здесь игнорируются, если не выбран в качестве главного шаблона \\"Custom\\"!'; +$wb['err_msg_master_tpl_set'] = 'Значения, установленные здесь игнорируются, если не выбран в качестве главного шаблона \"Custom\"!'; $wb['aps_limits_txt'] = 'Лимиты Установщика APS'; $wb['limit_aps_txt'] = 'Макс. количество экземпляров APS'; $wb['limit_aps_error_notint'] = 'Лимит экземпляров APS должен быть числом.'; diff --git a/interface/web/client/lib/lang/ru_reseller.lng b/interface/web/client/lib/lang/ru_reseller.lng index 998a88699..4a177cccc 100644 --- a/interface/web/client/lib/lang/ru_reseller.lng +++ b/interface/web/client/lib/lang/ru_reseller.lng @@ -108,7 +108,7 @@ $wb['limit_openvz_vm_template_id_txt'] = 'Принудительный шабл $wb['limit_openvz_vm_error_notint'] = 'Лимит виртуальных серверов должен быть числом.'; $wb['web_php_options_notempty'] = 'Нет выбранных параметров PHP. Выберите по крайней мере один параметр PHP.'; $wb['ssh_chroot_notempty'] = 'Не выбран параметр SSH-Chroot. Выберите по крайней мере один параметр SSH-Chroot.'; -$wb['username_error_collision'] = 'Имя пользователя не может начинаться со слова \\"web\\" или \\"web\\" плюс число.'; +$wb['username_error_collision'] = 'Имя пользователя не может начинаться со слова \"web\" или \"web\" плюс число.'; $wb['add_additional_template_txt'] = 'Добавить дополнительный шаблон'; $wb['delete_additional_template_txt'] = 'Удалить дополнительный шаблон'; $wb['limit_cgi_txt'] = 'CGI доступен'; @@ -159,7 +159,7 @@ $wb['added_date_txt'] = 'Дата добавления'; $wb['limit_domainmodule_error_notint'] = 'Лимит модулей домена должен быть числом.'; $wb['limit_domainmodule_txt'] = 'Лимит модулей домена'; $wb['client_limits_txt'] = 'Лимиты Клиента'; -$wb['err_msg_master_tpl_set'] = 'Значения, установленные здесь игнорируются, если не выбран в качестве главного шаблона \\"Custom\\"!'; +$wb['err_msg_master_tpl_set'] = 'Значения, установленные здесь игнорируются, если не выбран в качестве главного шаблона \"Custom\"!'; $wb['btn_save_txt'] = 'Сохранить'; $wb['btn_cancel_txt'] = 'Отменить'; $wb['email_error_empty'] = 'Адрес эл. почты пустой'; diff --git a/interface/web/client/lib/lang/se_client.lng b/interface/web/client/lib/lang/se_client.lng index 2884302c1..5232e95f5 100644 --- a/interface/web/client/lib/lang/se_client.lng +++ b/interface/web/client/lib/lang/se_client.lng @@ -141,7 +141,7 @@ $wb['email_error_isemail'] = 'Vänligen ange en giltig epostadress'; $wb['customer_no_error_unique'] = 'The customer no. must be unique (or empty).'; $wb['paypal_email_error_isemail'] = 'Please enter a valid PayPal email address.'; $wb['paypal_email_txt'] = 'PayPal epostadress'; -$wb['err_msg_master_tpl_set'] = 'All custom limit settings are ignored if any master template other than \\"custom\\" is selected.'; +$wb['err_msg_master_tpl_set'] = 'All custom limit settings are ignored if any master template other than \"custom\" is selected.'; $wb['aps_limits_txt'] = 'APS Installer Limits'; $wb['limit_aps_txt'] = 'Max. number of APS instances'; $wb['limit_aps_error_notint'] = 'The APS instances limit must be a number.'; diff --git a/interface/web/client/lib/lang/se_reseller.lng b/interface/web/client/lib/lang/se_reseller.lng index 68e8a950f..553abe0ae 100644 --- a/interface/web/client/lib/lang/se_reseller.lng +++ b/interface/web/client/lib/lang/se_reseller.lng @@ -159,7 +159,7 @@ $wb['added_date_txt'] = 'Added date'; $wb['limit_domainmodule_error_notint'] = 'Domainmodule limit must be a number.'; $wb['limit_domainmodule_txt'] = 'Domainmodule Limit'; $wb['client_limits_txt'] = 'Client Limits'; -$wb['err_msg_master_tpl_set'] = 'All custom limit settings are ignored if any master template other than \\"custom\\" is selected.'; +$wb['err_msg_master_tpl_set'] = 'All custom limit settings are ignored if any master template other than \"custom\" is selected.'; $wb['btn_save_txt'] = 'Save'; $wb['btn_cancel_txt'] = 'Cancel'; $wb['email_error_empty'] = 'Email is empty'; diff --git a/interface/web/client/lib/lang/sk_client.lng b/interface/web/client/lib/lang/sk_client.lng index 3edec417c..6fff6bf3f 100644 --- a/interface/web/client/lib/lang/sk_client.lng +++ b/interface/web/client/lib/lang/sk_client.lng @@ -141,7 +141,7 @@ $wb['email_error_isemail'] = 'Please enter a valid email address.'; $wb['customer_no_error_unique'] = 'The customer no. must be unique (or empty).'; $wb['paypal_email_error_isemail'] = 'Please enter a valid PayPal email address.'; $wb['paypal_email_txt'] = 'PayPal Email'; -$wb['err_msg_master_tpl_set'] = 'All custom limit settings are ignored if any master template other than \\"custom\\" is selected.'; +$wb['err_msg_master_tpl_set'] = 'All custom limit settings are ignored if any master template other than \"custom\" is selected.'; $wb['aps_limits_txt'] = 'APS Installer Limits'; $wb['limit_aps_txt'] = 'Max. number of APS instances'; $wb['limit_aps_error_notint'] = 'The APS instances limit must be a number.'; diff --git a/interface/web/client/lib/lang/sk_reseller.lng b/interface/web/client/lib/lang/sk_reseller.lng index 4ae3ef5b9..34643c55b 100644 --- a/interface/web/client/lib/lang/sk_reseller.lng +++ b/interface/web/client/lib/lang/sk_reseller.lng @@ -159,7 +159,7 @@ $wb['added_date_txt'] = 'Added date'; $wb['limit_domainmodule_error_notint'] = 'Domainmodule limit must be a number.'; $wb['limit_domainmodule_txt'] = 'Domainmodule Limit'; $wb['client_limits_txt'] = 'Client Limits'; -$wb['err_msg_master_tpl_set'] = 'All custom limit settings are ignored if any master template other than \\"custom\\" is selected.'; +$wb['err_msg_master_tpl_set'] = 'All custom limit settings are ignored if any master template other than \"custom\" is selected.'; $wb['btn_save_txt'] = 'Save'; $wb['btn_cancel_txt'] = 'Cancel'; $wb['email_error_empty'] = 'Email is empty'; diff --git a/interface/web/client/lib/lang/tr_client.lng b/interface/web/client/lib/lang/tr_client.lng index 765d9f198..359095534 100644 --- a/interface/web/client/lib/lang/tr_client.lng +++ b/interface/web/client/lib/lang/tr_client.lng @@ -139,7 +139,7 @@ $wb['email_error_isemail'] = 'Lütfen geçerli bir e-posta adresi yazın.'; $wb['customer_no_error_unique'] = 'Müşteri numarası eşsiz (ya da boş) olmalıdır.'; $wb['paypal_email_error_isemail'] = 'Lütfen geçerli bir PayPal e-posta adresi yazın.'; $wb['paypal_email_txt'] = 'PayPal E-posta Adresi'; -$wb['err_msg_master_tpl_set'] = '\\"Özel\\" kalıptan başka bir ana kalıp seçilirse, tüm özel sınırlama ayarları yoksayılır.'; +$wb['err_msg_master_tpl_set'] = '\"Özel\" kalıptan başka bir ana kalıp seçilirse, tüm özel sınırlama ayarları yoksayılır.'; $wb['aps_limits_txt'] = 'APS Yükleyici Sınırları'; $wb['limit_aps_txt'] = 'En Fazla APS Kopyası Sayısı'; $wb['limit_aps_error_notint'] = 'APS kopya sayısı sınırı bir sayı olmalıdır.'; diff --git a/interface/web/client/lib/lang/tr_reseller.lng b/interface/web/client/lib/lang/tr_reseller.lng index 4906a894c..5e2a37e26 100644 --- a/interface/web/client/lib/lang/tr_reseller.lng +++ b/interface/web/client/lib/lang/tr_reseller.lng @@ -156,7 +156,7 @@ $wb['added_date_txt'] = 'Eklendiği Tarih'; $wb['limit_domainmodule_error_notint'] = 'Alan adı modülü sınırı bir sayı olmalıdır.'; $wb['limit_domainmodule_txt'] = 'Alan Adı Modülü Sınırı'; $wb['client_limits_txt'] = 'Müşteri Sınırları'; -$wb['err_msg_master_tpl_set'] = '\\"Özel\\" kalıptan başka bir ana kalıp seçilirse, tüm özel sınırlama ayarları yoksayılır.'; +$wb['err_msg_master_tpl_set'] = '\"Özel\" kalıptan başka bir ana kalıp seçilirse, tüm özel sınırlama ayarları yoksayılır.'; $wb['contact_firstname_txt'] = 'Contact firstname'; $wb['password_click_to_set_txt'] = 'Click to set'; $wb['limit_database_user_txt'] = 'Max. Database users'; diff --git a/interface/web/dashboard/lib/lang/es_dashlet_limits.lng b/interface/web/dashboard/lib/lang/es_dashlet_limits.lng index da6cd6b51..0f819f2a9 100755 --- a/interface/web/dashboard/lib/lang/es_dashlet_limits.lng +++ b/interface/web/dashboard/lib/lang/es_dashlet_limits.lng @@ -11,7 +11,7 @@ $wb['limit_ftp_user_txt'] = 'Cantidad de usuarios FTP'; $wb['limit_mailalias_txt'] = 'Cantidad de alias de correos'; $wb['limit_mailaliasdomain_txt'] = 'Cantidad de alias de dominios'; $wb['limit_mailbox_txt'] = 'Cantidad de buzones'; -$wb['limit_mailcatchall_txt'] = 'Cantidad de cuentas de correo \\"recoge-todo\\"'; +$wb['limit_mailcatchall_txt'] = 'Cantidad de cuentas de correo \"recoge-todo\"'; $wb['limit_maildomain_txt'] = 'Cantidad de dominios para correo'; $wb['limit_mailfilter_txt'] = 'Cantidad de filtros de correo'; $wb['limit_mailforward_txt'] = 'Cantidad de reenviadores de correos'; diff --git a/interface/web/dns/lib/lang/br_dns_dmarc.lng b/interface/web/dns/lib/lang/br_dns_dmarc.lng index 8bb35318f..5b7201075 100644 --- a/interface/web/dns/lib/lang/br_dns_dmarc.lng +++ b/interface/web/dns/lib/lang/br_dns_dmarc.lng @@ -2,7 +2,7 @@ $wb['data_txt'] = 'Registro DMARC'; $wb['domain_txt'] = 'Domínio'; $wb['dmarc_policy_txt'] = 'Política de recepção de e-mails'; -$wb['dmarc_policy_note_txt'] = 'Como os \\"ISPs\\" devem tratar as mensagens SPF ou DKIM com falha (DMARC).'; +$wb['dmarc_policy_note_txt'] = 'Como os \"ISPs\" devem tratar as mensagens SPF ou DKIM com falha (DMARC).'; $wb['dmarc_policy_none_txt'] = 'não fazer nada'; $wb['dmarc_policy_quarantine_txt'] = 'quarentena'; $wb['dmarc_policy_reject_txt'] = 'rejeitar'; @@ -11,16 +11,16 @@ $wb['dmarc_rua_note_txt'] = 'Endereços de e-mail para receber relatórios do si $wb['dmarc_ruf_txt'] = 'Relatório forense de dados por endereço'; $wb['dmarc_ruf_note_txt'] = 'Endereços de e-mail para receber amostras de mensagens com falha e controles DMARC do domínio (separados por espaço em branco)'; $wb['dmarc_fo_txt'] = 'Opções de relatório forense'; -$wb['dmarc_fo0_txt'] = 'Gerar relatórios se todos os mecanismos de autenticação subjacentes deixarem de produzir um resultado DMARC \\"pass\\".'; +$wb['dmarc_fo0_txt'] = 'Gerar relatórios se todos os mecanismos de autenticação subjacentes deixarem de produzir um resultado DMARC \"pass\".'; $wb['dmarc_fo1_txt'] = 'Gerar relatório se algum mecanismo falhar.'; $wb['dmarc_fod_txt'] = 'Gerar relatório se assinatura DKIM falhar na verificação.'; $wb['dmarc_fos_txt'] = 'Gerar relatório se o SPF falhar.'; $wb['dmarc_adkim_txt'] = 'Parametrização do identificador DKIM'; -$wb['dmarc_adkim_note_txt'] = 'Modo \\"strict\\" exige combinação exata entre o DKIM do domínio e e-mails'; +$wb['dmarc_adkim_note_txt'] = 'Modo \"strict\" exige combinação exata entre o DKIM do domínio e e-mails'; $wb['dmarc_adkim_r_txt'] = 'relaxed'; $wb['dmarc_adkim_s_txt'] = 'strict'; $wb['dmarc_aspf_txt'] = 'Parametrização do identificador SPF'; -$wb['dmarc_aspf_note_txt'] = 'Modo \\"strict\\" exige combinação exata entre o SPF do domínio e e-mails'; +$wb['dmarc_aspf_note_txt'] = 'Modo \"strict\" exige combinação exata entre o SPF do domínio e e-mails'; $wb['dmarc_aspf_r_txt'] = 'relaxed'; $wb['dmarc_aspf_s_txt'] = 'strict'; $wb['dmarc_rf_txt'] = 'Formatação do relatório'; @@ -37,7 +37,7 @@ $wb['dmarc_sp_quarantine_txt'] = 'quarentena'; $wb['dmarc_sp_reject_txt'] = 'rejeitar'; $wb['ttl_txt'] = 'TTL'; $wb['active_txt'] = 'Ativo'; -$wb['dmarc_policy_error_txt'] = 'Somente a política \\"nenhum\\" é permitida para e-mails sem assinatura DKIM.'; +$wb['dmarc_policy_error_txt'] = 'Somente a política \"nenhum\" é permitida para e-mails sem assinatura DKIM.'; $wb['dmarc_no_dkim_txt'] = 'Nenhum registro DKIM ativo.'; $wb['dmarc_no_spf_txt'] = 'Nenhum registro SPF ativo.'; $wb['dmarc_more_spf_txt'] = 'Mais de um registro SPF ativo.'; diff --git a/interface/web/dns/lib/lang/br_dns_tlsa.lng b/interface/web/dns/lib/lang/br_dns_tlsa.lng index 5e1bf2256..c78c6fd19 100644 --- a/interface/web/dns/lib/lang/br_dns_tlsa.lng +++ b/interface/web/dns/lib/lang/br_dns_tlsa.lng @@ -9,8 +9,8 @@ $wb['active_txt'] = 'Ativo'; $wb['limit_dns_record_txt'] = 'O limite de registros dns para esta conta foi alcançado.'; $wb['no_zone_perm'] = 'Você não tem permissão para adicionar registros a esta zona dns.'; $wb['name_error_empty'] = 'Descritor de serviço está em branco.'; -$wb['name_error_regex'] = 'Descritor de serviço é inválido. Formato correto: \\"_<port>._(tcp|udp).<hostname>\\".'; +$wb['name_error_regex'] = 'Descritor de serviço é inválido. Formato correto: \"_<port>._(tcp|udp).<hostname>\".'; $wb['data_error_empty'] = 'Dados TLSA está em branco.'; -$wb['data_error_regex'] = 'Dados TLSA são inválidos. Formato correto: \\"n n n HASH\\".'; +$wb['data_error_regex'] = 'Dados TLSA são inválidos. Formato correto: \"n n n HASH\".'; $wb['ttl_range_error'] = 'O ttl mínimo são 60 segundos.'; ?> diff --git a/interface/web/dns/lib/lang/ru_dns_hinfo.lng b/interface/web/dns/lib/lang/ru_dns_hinfo.lng index 363ed0eef..830576fdf 100644 --- a/interface/web/dns/lib/lang/ru_dns_hinfo.lng +++ b/interface/web/dns/lib/lang/ru_dns_hinfo.lng @@ -11,6 +11,6 @@ $wb['no_zone_perm'] = 'У Вас нет прав добавлять эту за $wb['name_error_empty'] = 'Имя пустое.'; $wb['name_error_regex'] = 'Имя узла имеет неправильный формат.'; $wb['data_error_empty'] = 'Информация об узле отсутсвует'; -$wb['data_error_regex'] = 'Поле \\"Информация о хосте\\" имеет неправильный формат'; +$wb['data_error_regex'] = 'Поле \"Информация о хосте\" имеет неправильный формат'; $wb['ttl_range_error'] = 'Мин. время TTL 60 секунд.'; ?> diff --git a/interface/web/help/lib/lang/br_support_message.lng b/interface/web/help/lib/lang/br_support_message.lng index 19ae309a1..83097915b 100644 --- a/interface/web/help/lib/lang/br_support_message.lng +++ b/interface/web/help/lib/lang/br_support_message.lng @@ -12,5 +12,5 @@ $wb['answer_to_support_request_txt'] = 'Você tem uma nova resposta para requisi $wb['answer_to_support_request_sent_txt'] = 'Sua resposta para requisição de suporte foi enviada. Por favor, não responda esse e-mail.'; $wb['support_request_sent_txt'] = 'Sua requisição de suporte foi enviada. Por favor não responda este e-mail.'; $wb['recipient_or_sender_email_address_not_valid_txt'] = 'A mensagem não foi enviada porque o e-mail do destinatário e/ou remetente não é válido.'; -$wb['subject_is_empty'] = 'Não é permitido o campo \\"Assunto\\" em branco.'; +$wb['subject_is_empty'] = 'Não é permitido o campo \"Assunto\" em branco.'; ?> diff --git a/interface/web/login/lib/lang/ar_login_as.lng b/interface/web/login/lib/lang/ar_login_as.lng index cf75b54b4..68cb3318e 100644 --- a/interface/web/login/lib/lang/ar_login_as.lng +++ b/interface/web/login/lib/lang/ar_login_as.lng @@ -1,12 +1,12 @@ diff --git a/interface/web/login/lib/lang/bg_login_as.lng b/interface/web/login/lib/lang/bg_login_as.lng index cf75b54b4..68cb3318e 100644 --- a/interface/web/login/lib/lang/bg_login_as.lng +++ b/interface/web/login/lib/lang/bg_login_as.lng @@ -1,12 +1,12 @@ diff --git a/interface/web/login/lib/lang/br_login_as.lng b/interface/web/login/lib/lang/br_login_as.lng index 5d9fb269b..4c02c963c 100644 --- a/interface/web/login/lib/lang/br_login_as.lng +++ b/interface/web/login/lib/lang/br_login_as.lng @@ -1,6 +1,6 @@ diff --git a/interface/web/login/lib/lang/dk_login_as.lng b/interface/web/login/lib/lang/dk_login_as.lng index bebcf165a..a75ea7262 100644 --- a/interface/web/login/lib/lang/dk_login_as.lng +++ b/interface/web/login/lib/lang/dk_login_as.lng @@ -1,12 +1,12 @@ diff --git a/interface/web/login/lib/lang/el_login_as.lng b/interface/web/login/lib/lang/el_login_as.lng index 435d3e9a6..a6c298801 100644 --- a/interface/web/login/lib/lang/el_login_as.lng +++ b/interface/web/login/lib/lang/el_login_as.lng @@ -1,12 +1,12 @@ diff --git a/interface/web/login/lib/lang/es_login_as.lng b/interface/web/login/lib/lang/es_login_as.lng index b7f3e21f9..10a8554bc 100755 --- a/interface/web/login/lib/lang/es_login_as.lng +++ b/interface/web/login/lib/lang/es_login_as.lng @@ -4,9 +4,9 @@ $wb['btn_back_txt'] = 'No, volver a la lista'; $wb['btn_yes_txt'] = 'Sí, iniciar sesión como cliente'; $wb['firewall_error_unique'] = 'Ya existe un registro de cortafuegos para este servidor.'; $wb['login_1_txt'] = 'Desea iniciar sesión como usuario'; -$wb['login_2_txt'] = 'Si lo hace, puede \\"volver\\" haciendo clic en salir.'; -$wb['tcp_ports_error_regex'] = 'Caracteres no permitidos en la definición de puertos tcp. Los caracteres permitidos son: números, \\":\\" y \\",\\".'; +$wb['login_2_txt'] = 'Si lo hace, puede \"volver\" haciendo clic en salir.'; +$wb['tcp_ports_error_regex'] = 'Caracteres no permitidos en la definición de puertos tcp. Los caracteres permitidos son: números, \":\" y \",\".'; $wb['udp_port_help_txt'] = 'Separado por comas'; -$wb['udp_ports_error_regex'] = 'Caracteres no permitidos en la definición de puertos udp. Los caracteres permitidos son: números, \\":\\" y \\",\\".'; +$wb['udp_ports_error_regex'] = 'Caracteres no permitidos en la definición de puertos udp. Los caracteres permitidos son: números, \":\" y \",\".'; $wb['login_as_or_logout_txt'] = 'Do you want to re-login as {UTYPE} or logout?'; ?> diff --git a/interface/web/login/lib/lang/fi_login_as.lng b/interface/web/login/lib/lang/fi_login_as.lng index cf75b54b4..68cb3318e 100644 --- a/interface/web/login/lib/lang/fi_login_as.lng +++ b/interface/web/login/lib/lang/fi_login_as.lng @@ -1,12 +1,12 @@ diff --git a/interface/web/login/lib/lang/hr_login_as.lng b/interface/web/login/lib/lang/hr_login_as.lng index bcd13040d..a94f65970 100644 --- a/interface/web/login/lib/lang/hr_login_as.lng +++ b/interface/web/login/lib/lang/hr_login_as.lng @@ -1,12 +1,12 @@ diff --git a/interface/web/login/lib/lang/hu_login_as.lng b/interface/web/login/lib/lang/hu_login_as.lng index cf75b54b4..68cb3318e 100644 --- a/interface/web/login/lib/lang/hu_login_as.lng +++ b/interface/web/login/lib/lang/hu_login_as.lng @@ -1,12 +1,12 @@ diff --git a/interface/web/login/lib/lang/id_login_as.lng b/interface/web/login/lib/lang/id_login_as.lng index cf75b54b4..68cb3318e 100644 --- a/interface/web/login/lib/lang/id_login_as.lng +++ b/interface/web/login/lib/lang/id_login_as.lng @@ -1,12 +1,12 @@ diff --git a/interface/web/login/lib/lang/it_login_as.lng b/interface/web/login/lib/lang/it_login_as.lng index 3fa23da27..fab2f1b08 100644 --- a/interface/web/login/lib/lang/it_login_as.lng +++ b/interface/web/login/lib/lang/it_login_as.lng @@ -1,12 +1,12 @@ diff --git a/interface/web/login/lib/lang/ja_login_as.lng b/interface/web/login/lib/lang/ja_login_as.lng index cf75b54b4..68cb3318e 100644 --- a/interface/web/login/lib/lang/ja_login_as.lng +++ b/interface/web/login/lib/lang/ja_login_as.lng @@ -1,12 +1,12 @@ diff --git a/interface/web/login/lib/lang/nl_login_as.lng b/interface/web/login/lib/lang/nl_login_as.lng index d4d2715e7..306178270 100644 --- a/interface/web/login/lib/lang/nl_login_as.lng +++ b/interface/web/login/lib/lang/nl_login_as.lng @@ -6,7 +6,7 @@ $wb['btn_back_txt'] = 'Nee, terug naar het overzicht'; $wb['udp_port_help_txt'] = 'Gescheiden door komma'; $wb['active_txt'] = 'Active'; $wb['firewall_error_unique'] = 'There is already a firewall record for this server.'; -$wb['tcp_ports_error_regex'] = 'Character not allowed in tcp port definition. Allowed characters are numbers, \\":\\" and \\",\\".'; -$wb['udp_ports_error_regex'] = 'Character not allowed in udp port definition. Allowed characters are numbers, \\":\\" and \\",\\".'; +$wb['tcp_ports_error_regex'] = 'Character not allowed in tcp port definition. Allowed characters are numbers, \":\" and \",\".'; +$wb['udp_ports_error_regex'] = 'Character not allowed in udp port definition. Allowed characters are numbers, \":\" and \",\".'; $wb['login_as_or_logout_txt'] = 'Do you want to re-login as {UTYPE} or logout?'; ?> diff --git a/interface/web/login/lib/lang/pt_login_as.lng b/interface/web/login/lib/lang/pt_login_as.lng index cf75b54b4..68cb3318e 100644 --- a/interface/web/login/lib/lang/pt_login_as.lng +++ b/interface/web/login/lib/lang/pt_login_as.lng @@ -1,12 +1,12 @@ diff --git a/interface/web/login/lib/lang/ro_login_as.lng b/interface/web/login/lib/lang/ro_login_as.lng index cf75b54b4..68cb3318e 100644 --- a/interface/web/login/lib/lang/ro_login_as.lng +++ b/interface/web/login/lib/lang/ro_login_as.lng @@ -1,12 +1,12 @@ diff --git a/interface/web/login/lib/lang/ru_login_as.lng b/interface/web/login/lib/lang/ru_login_as.lng index 63031d4d0..46a3eab28 100644 --- a/interface/web/login/lib/lang/ru_login_as.lng +++ b/interface/web/login/lib/lang/ru_login_as.lng @@ -1,12 +1,12 @@ diff --git a/interface/web/login/lib/lang/se_login_as.lng b/interface/web/login/lib/lang/se_login_as.lng index 17a82080d..203832c7b 100644 --- a/interface/web/login/lib/lang/se_login_as.lng +++ b/interface/web/login/lib/lang/se_login_as.lng @@ -1,12 +1,12 @@ diff --git a/interface/web/login/lib/lang/sk_login_as.lng b/interface/web/login/lib/lang/sk_login_as.lng index cf75b54b4..68cb3318e 100644 --- a/interface/web/login/lib/lang/sk_login_as.lng +++ b/interface/web/login/lib/lang/sk_login_as.lng @@ -1,12 +1,12 @@ diff --git a/interface/web/login/lib/lang/tr_login_as.lng b/interface/web/login/lib/lang/tr_login_as.lng index f7f12feef..a000d4434 100644 --- a/interface/web/login/lib/lang/tr_login_as.lng +++ b/interface/web/login/lib/lang/tr_login_as.lng @@ -1,12 +1,12 @@ diff --git a/interface/web/mail/lib/lang/ar_mail_get.lng b/interface/web/mail/lib/lang/ar_mail_get.lng index 8ae771215..5d6a72fbf 100644 --- a/interface/web/mail/lib/lang/ar_mail_get.lng +++ b/interface/web/mail/lib/lang/ar_mail_get.lng @@ -14,6 +14,6 @@ $wb['source_password_error_isempty'] = 'Password is empty.'; $wb['destination_error_isemail'] = 'No destination selected.'; $wb['source_server_error_regex'] = 'Pop3/Imap Server is not a valid domain name.'; $wb['source_read_all_txt'] = 'Retrieve all emails (incl. read mails)'; -$wb['error_delete_read_all_combination'] = 'Illegal combination of options. You can not use \\"Delete emails after retrieval\\" = no together with \\"Retrieve all emails\\" = yes'; +$wb['error_delete_read_all_combination'] = 'Illegal combination of options. You can not use \"Delete emails after retrieval\" = no together with \"Retrieve all emails\" = yes'; $wb['source_delete_note_txt'] = 'Please check first if email retrieval works, before you activate this option.'; ?> diff --git a/interface/web/mail/lib/lang/bg_mail_get.lng b/interface/web/mail/lib/lang/bg_mail_get.lng index e1b1935d3..305256d5c 100644 --- a/interface/web/mail/lib/lang/bg_mail_get.lng +++ b/interface/web/mail/lib/lang/bg_mail_get.lng @@ -14,6 +14,6 @@ $wb['source_password_error_isempty'] = 'Password is empty.'; $wb['destination_error_isemail'] = 'No destination selected.'; $wb['source_server_error_regex'] = 'Pop3/Imap Server is not a valid domain name.'; $wb['source_read_all_txt'] = 'Retrieve all emails (incl. read mails)'; -$wb['error_delete_read_all_combination'] = 'Illegal combination of options. You can not use \\"Delete emails after retrieval\\" = no together with \\"Retrieve all emails\\" = yes'; +$wb['error_delete_read_all_combination'] = 'Illegal combination of options. You can not use \"Delete emails after retrieval\" = no together with \"Retrieve all emails\" = yes'; $wb['source_delete_note_txt'] = 'Please check first if email retrieval works, before you activate this option.'; ?> diff --git a/interface/web/mail/lib/lang/br_mail_user.lng b/interface/web/mail/lib/lang/br_mail_user.lng index f91d40f62..a78656627 100644 --- a/interface/web/mail/lib/lang/br_mail_user.lng +++ b/interface/web/mail/lib/lang/br_mail_user.lng @@ -35,7 +35,7 @@ $wb['name_txt'] = 'Nome real'; $wb['name_optional_txt'] = '(Opcional)'; $wb['autoresponder_active'] = 'Ativar autoresposta'; $wb['cc_txt'] = 'Enviar cópia para'; -$wb['cc_error_isemail'] = 'O campo \\"Enviar cópia para\\" deve conter um endereço de e-mail válido'; +$wb['cc_error_isemail'] = 'O campo \"Enviar cópia para\" deve conter um endereço de e-mail válido'; $wb['domain_txt'] = 'Domínio'; $wb['now_txt'] = 'Agora'; $wb['login_error_unique'] = 'O acesso já está em uso.'; @@ -48,7 +48,7 @@ $wb['generate_password_txt'] = 'Gerar senha'; $wb['repeat_password_txt'] = 'Repetir senha'; $wb['password_mismatch_txt'] = 'A senhas não coincidem.'; $wb['password_match_txt'] = 'A senhas coincidem.'; -$wb['email_error_isascii'] = 'Por favor não use caracteres \\"unicode\\" para a senha. Esta ação poderá causar problemas com seu cliente de e-mail (mua).'; +$wb['email_error_isascii'] = 'Por favor não use caracteres \"unicode\" para a senha. Esta ação poderá causar problemas com seu cliente de e-mail (mua).'; $wb['cc_note_txt'] = '(Múltiplos e-mails separados por vírgulas)'; $wb['disablesmtp_txt'] = 'Desabilitar smtp (envio)'; $wb['autoresponder_start_date_is_required'] = 'Data de início deve ser configurada quando \'autoresposta\' é habilitada.'; diff --git a/interface/web/mail/lib/lang/ca_mail_get.lng b/interface/web/mail/lib/lang/ca_mail_get.lng index a13a1b03f..9300a2904 100644 --- a/interface/web/mail/lib/lang/ca_mail_get.lng +++ b/interface/web/mail/lib/lang/ca_mail_get.lng @@ -14,6 +14,6 @@ $wb['source_password_error_isempty'] = 'Le mot de passe est vide.'; $wb['destination_error_isemail'] = 'Pas de destination sélectionnée.'; $wb['source_server_error_regex'] = 'Le serveur POP3 / IMAP n\'est pas un nom de domaine valide.'; $wb['source_read_all_txt'] = 'Récupérer tous les courriels (incl. les courriels lus)'; -$wb['error_delete_read_all_combination'] = 'Combinaison d\'options non autorisée. Vous ne pouvez pas utiliser \\"Supprimer les courriels après récupération\\" = non avec \\"Récupérer tous les courriels\\" = oui'; +$wb['error_delete_read_all_combination'] = 'Combinaison d\'options non autorisée. Vous ne pouvez pas utiliser \"Supprimer les courriels après récupération\" = non avec \"Récupérer tous les courriels\" = oui'; $wb['source_delete_note_txt'] = 'Please check first if courriel retrieval works, before you activate this option.'; ?> diff --git a/interface/web/mail/lib/lang/cz_mail_get.lng b/interface/web/mail/lib/lang/cz_mail_get.lng index cdb39b09a..3dfee1a5e 100644 --- a/interface/web/mail/lib/lang/cz_mail_get.lng +++ b/interface/web/mail/lib/lang/cz_mail_get.lng @@ -14,6 +14,6 @@ $wb['source_password_error_isempty'] = 'Heslo je prázdné.'; $wb['destination_error_isemail'] = 'Nevybrán žádný cíl.'; $wb['source_server_error_regex'] = 'POP3/IMAP server není validní doménový název.'; $wb['source_read_all_txt'] = 'Načíst všechny e-maily (včetně již přečtené pošty)'; -$wb['error_delete_read_all_combination'] = 'Illegal combination of options. You can not use \\"Delete emails after retrieval\\" = no together with \\"Retrieve all emails\\" = yes'; +$wb['error_delete_read_all_combination'] = 'Illegal combination of options. You can not use \"Delete emails after retrieval\" = no together with \"Retrieve all emails\" = yes'; $wb['source_delete_note_txt'] = 'Prosím, zkontrolujte nejprve, zda příjímání e-mailů funguje, než aktivujete tuto možnost.'; ?> diff --git a/interface/web/mail/lib/lang/cz_mail_mailinglist.lng b/interface/web/mail/lib/lang/cz_mail_mailinglist.lng index e1f7dfbfa..f534d6c8e 100644 --- a/interface/web/mail/lib/lang/cz_mail_mailinglist.lng +++ b/interface/web/mail/lib/lang/cz_mail_mailinglist.lng @@ -16,7 +16,7 @@ $wb['generate_password_txt'] = 'Generovat heslo'; $wb['repeat_password_txt'] = 'Opakujte heslo'; $wb['password_mismatch_txt'] = 'Hesla se neshodují.'; $wb['password_match_txt'] = 'Hesla se shodují.'; -$wb['listname_error_unique'] = 'Na serveru je již shodný \\"název seznamu\\". Prosím, vyberte si jiný \\"název seznamu\\".'; +$wb['listname_error_unique'] = 'Na serveru je již shodný \"název seznamu\". Prosím, vyberte si jiný \"název seznamu\".'; $wb['email_error_isemail'] = 'E-mailová adresa je neplatná.'; $wb['mailinglist_txt'] = 'E-mailové konference'; ?> diff --git a/interface/web/mail/lib/lang/dk_mail_get.lng b/interface/web/mail/lib/lang/dk_mail_get.lng index 1fa44cb6a..dc0b7455a 100644 --- a/interface/web/mail/lib/lang/dk_mail_get.lng +++ b/interface/web/mail/lib/lang/dk_mail_get.lng @@ -15,5 +15,5 @@ $wb['source_username_error_isempty'] = 'Brugernavn er tom.'; $wb['source_password_error_isempty'] = 'Adgangskode er tom.'; $wb['destination_error_isemail'] = 'Ingen destination er valgt.'; $wb['source_server_error_regex'] = 'Pop3/Imap Server er ikke et gyldigt domænenavn.'; -$wb['error_delete_read_all_combination'] = 'Ulovlig kombination af muligheder. Du kan ikke bruge \\"Slet e-mails efter hentning\\" = nej sammen med \\"Hent alle e-mails\\" = ja'; +$wb['error_delete_read_all_combination'] = 'Ulovlig kombination af muligheder. Du kan ikke bruge \"Slet e-mails efter hentning\" = nej sammen med \"Hent alle e-mails\" = ja'; ?> diff --git a/interface/web/mail/lib/lang/el_mail_get.lng b/interface/web/mail/lib/lang/el_mail_get.lng index 0ec9645c8..cc2c261a5 100644 --- a/interface/web/mail/lib/lang/el_mail_get.lng +++ b/interface/web/mail/lib/lang/el_mail_get.lng @@ -14,6 +14,6 @@ $wb['source_password_error_isempty'] = 'Το Συνθηματικό δεν έχ $wb['destination_error_isemail'] = 'Δεν επιλέχθηκε προορισμός.'; $wb['source_server_error_regex'] = 'Το όνομα του Pop3/Imap Server δεν είναι έγκυρο.'; $wb['source_read_all_txt'] = 'Ανάκτηση όλων των emails (συμπερ. αναγνωσμένων mails)'; -$wb['error_delete_read_all_combination'] = 'Illegal combination of options. You can not use \\"Delete emails after retrieval\\" = no together with \\"Retrieve all emails\\" = yes'; +$wb['error_delete_read_all_combination'] = 'Illegal combination of options. You can not use \"Delete emails after retrieval\" = no together with \"Retrieve all emails\" = yes'; $wb['source_delete_note_txt'] = 'Please check first if email retrieval works, before you activate this option.'; ?> diff --git a/interface/web/mail/lib/lang/es.lng b/interface/web/mail/lib/lang/es.lng index 797aeeeb6..787007a7f 100755 --- a/interface/web/mail/lib/lang/es.lng +++ b/interface/web/mail/lib/lang/es.lng @@ -8,7 +8,7 @@ $wb['Domain'] = 'Dominio'; $wb['Email Accounts'] = 'Cuentas de correo'; $wb['Email Alias'] = 'Alias de correo'; $wb['Email Blacklist'] = 'Lista negra de correo'; -$wb['Email Catchall'] = 'Correo \\"recoge-todo\\"'; +$wb['Email Catchall'] = 'Correo \"recoge-todo\"'; $wb['Email filter'] = 'Filtro de correo'; $wb['Email Forward'] = 'Reenvío de correo'; $wb['Email Mailbox'] = 'Buzón de correo'; diff --git a/interface/web/mail/lib/lang/es_mail_domain_catchall.lng b/interface/web/mail/lib/lang/es_mail_domain_catchall.lng index 48ead68ac..ed6c9b5db 100755 --- a/interface/web/mail/lib/lang/es_mail_domain_catchall.lng +++ b/interface/web/mail/lib/lang/es_mail_domain_catchall.lng @@ -3,9 +3,9 @@ $wb['active_txt'] = 'Habilitado'; $wb['destination_error_isemail'] = 'El destinatario no es una dirección de correo válida.'; $wb['destination_txt'] = 'Correo de destino'; $wb['domain_error_regex'] = 'El nombre de dominio es inválido o contiene caracteres no permitidos.'; -$wb['domain_error_unique'] = 'Este dominio ya tiene un correo \\"recoge-todo\\".'; +$wb['domain_error_unique'] = 'Este dominio ya tiene un correo \"recoge-todo\".'; $wb['domain_txt'] = 'Dominio'; -$wb['limit_mailcatchall_txt'] = 'Ha alcanzado el número máx. de correo \\"recoge-todo\\" para correo permitidos para su cuenta.'; +$wb['limit_mailcatchall_txt'] = 'Ha alcanzado el número máx. de correo \"recoge-todo\" para correo permitidos para su cuenta.'; $wb['no_domain_perm'] = 'No tiene permisos para usar este dominio.'; $wb['source_txt'] = 'Origen'; ?> diff --git a/interface/web/mail/lib/lang/es_mail_domain_catchall_list.lng b/interface/web/mail/lib/lang/es_mail_domain_catchall_list.lng index 8288430a1..fc3fde195 100755 --- a/interface/web/mail/lib/lang/es_mail_domain_catchall_list.lng +++ b/interface/web/mail/lib/lang/es_mail_domain_catchall_list.lng @@ -1,9 +1,9 @@ diff --git a/interface/web/mail/lib/lang/es_mail_get.lng b/interface/web/mail/lib/lang/es_mail_get.lng index 81de60b03..47529e27c 100755 --- a/interface/web/mail/lib/lang/es_mail_get.lng +++ b/interface/web/mail/lib/lang/es_mail_get.lng @@ -2,7 +2,7 @@ $wb['active_txt'] = 'Habilitado'; $wb['destination_error_isemail'] = 'No ha seleccionado un destinatario.'; $wb['destination_txt'] = 'Destino'; -$wb['error_delete_read_all_combination'] = 'Combinación incorrecta de opciones. No puede usar \\"Borrar correos después de recuperarlos\\" = NO al mismo tiempo que \\"Recuperar todos los correos\\" = SI'; +$wb['error_delete_read_all_combination'] = 'Combinación incorrecta de opciones. No puede usar \"Borrar correos después de recuperarlos\" = NO al mismo tiempo que \"Recuperar todos los correos\" = SI'; $wb['limit_fetchmail_txt'] = 'Ha alcanzado el número máx. de registros de recuperación de correo permitidos para su cuenta.'; $wb['server_id_txt'] = 'Servidor'; $wb['source_delete_note_txt'] = 'Por favor, verifique que funcione la recuperación de correos antes de activar esta opción.'; diff --git a/interface/web/mail/lib/lang/fi_mail_get.lng b/interface/web/mail/lib/lang/fi_mail_get.lng index 063a37bf0..9eca1d849 100755 --- a/interface/web/mail/lib/lang/fi_mail_get.lng +++ b/interface/web/mail/lib/lang/fi_mail_get.lng @@ -14,6 +14,6 @@ $wb['source_password_error_isempty'] = 'Salasana-kenttä on tyhjä.'; $wb['destination_error_isemail'] = 'Ei kohdetta valittuna.'; $wb['source_server_error_regex'] = 'Pop3/Imap-palvelin ei ole kelvollinen osoite.'; $wb['source_read_all_txt'] = 'Retrieve all emails (incl. read mails)'; -$wb['error_delete_read_all_combination'] = 'Illegal combination of options. You can not use \\"Delete emails after retrieval\\" = no together with \\"Retrieve all emails\\" = yes'; +$wb['error_delete_read_all_combination'] = 'Illegal combination of options. You can not use \"Delete emails after retrieval\" = no together with \"Retrieve all emails\" = yes'; $wb['source_delete_note_txt'] = 'Please check first if email retrieval works, before you activate this option.'; ?> diff --git a/interface/web/mail/lib/lang/fr_mail_get.lng b/interface/web/mail/lib/lang/fr_mail_get.lng index 00f72f0c8..118ab5ed3 100644 --- a/interface/web/mail/lib/lang/fr_mail_get.lng +++ b/interface/web/mail/lib/lang/fr_mail_get.lng @@ -14,6 +14,6 @@ $wb['source_password_error_isempty'] = 'Le mot de passe est vide.'; $wb['destination_error_isemail'] = 'Pas de destination sélectionnée.'; $wb['source_server_error_regex'] = 'Le serveur POP3 / IMAP n’est pas un nom de domaine valide.'; $wb['source_read_all_txt'] = 'Récupérer tous les emails (incl. les emails lus)'; -$wb['error_delete_read_all_combination'] = 'Combinaison d’options non autorisée. Vous ne pouvez pas utiliser \\"Supprimer les emails après récupération\\" = non avec \\"Récupérer tous les emails\\" = oui'; +$wb['error_delete_read_all_combination'] = 'Combinaison d’options non autorisée. Vous ne pouvez pas utiliser \"Supprimer les emails après récupération\" = non avec \"Récupérer tous les emails\" = oui'; $wb['source_delete_note_txt'] = 'Please check first if e-mail retrieval works, before you activate this option.'; ?> diff --git a/interface/web/mail/lib/lang/hr_mail_get.lng b/interface/web/mail/lib/lang/hr_mail_get.lng index 18c53a4d5..025bb136b 100644 --- a/interface/web/mail/lib/lang/hr_mail_get.lng +++ b/interface/web/mail/lib/lang/hr_mail_get.lng @@ -14,6 +14,6 @@ $wb['source_password_error_isempty'] = 'Password is empty.'; $wb['destination_error_isemail'] = 'No destination selected.'; $wb['source_server_error_regex'] = 'Pop3/Imap Server is not a valid domain name.'; $wb['source_read_all_txt'] = 'Retrieve all emails (incl. read mails)'; -$wb['error_delete_read_all_combination'] = 'Illegal combination of options. You can not use \\"Delete emails after retrieval\\" = no together with \\"Retrieve all emails\\" = yes'; +$wb['error_delete_read_all_combination'] = 'Illegal combination of options. You can not use \"Delete emails after retrieval\" = no together with \"Retrieve all emails\" = yes'; $wb['source_delete_note_txt'] = 'Please check first if email retrieval works, before you activate this option.'; ?> diff --git a/interface/web/mail/lib/lang/hu_mail_get.lng b/interface/web/mail/lib/lang/hu_mail_get.lng index 59cb26dd6..a02a1fe11 100644 --- a/interface/web/mail/lib/lang/hu_mail_get.lng +++ b/interface/web/mail/lib/lang/hu_mail_get.lng @@ -14,6 +14,6 @@ $wb['source_password_error_isempty'] = 'Jelszó üres.'; $wb['destination_error_isemail'] = 'Nem választott címzettet.'; $wb['source_server_error_regex'] = 'Pop3/Imap Server is not a valid domain name.'; $wb['source_read_all_txt'] = 'Retrieve all emails (incl. read mails)'; -$wb['error_delete_read_all_combination'] = 'Illegal combination of options. You can not use \\"Delete emails after retrieval\\" = no together with \\"Retrieve all emails\\" = yes'; +$wb['error_delete_read_all_combination'] = 'Illegal combination of options. You can not use \"Delete emails after retrieval\" = no together with \"Retrieve all emails\" = yes'; $wb['source_delete_note_txt'] = 'Please check first if email retrieval works, before you activate this option.'; ?> diff --git a/interface/web/mail/lib/lang/id_mail_get.lng b/interface/web/mail/lib/lang/id_mail_get.lng index cec2466f2..7617cbc7d 100644 --- a/interface/web/mail/lib/lang/id_mail_get.lng +++ b/interface/web/mail/lib/lang/id_mail_get.lng @@ -14,6 +14,6 @@ $wb['source_password_error_isempty'] = 'Kata Sandi kosong.'; $wb['destination_error_isemail'] = 'Tidak ada tujuan yang dipilih.'; $wb['source_server_error_regex'] = 'Server Pop3/Imap bukan merupakan nama domain yang valid.'; $wb['source_read_all_txt'] = 'Retrieve all emails (incl. read mails)'; -$wb['error_delete_read_all_combination'] = 'Illegal combination of options. You can not use \\"Delete emails after retrieval\\" = no together with \\"Retrieve all emails\\" = yes'; +$wb['error_delete_read_all_combination'] = 'Illegal combination of options. You can not use \"Delete emails after retrieval\" = no together with \"Retrieve all emails\" = yes'; $wb['source_delete_note_txt'] = 'Please check first if email retrieval works, before you activate this option.'; ?> diff --git a/interface/web/mail/lib/lang/it_mail_get.lng b/interface/web/mail/lib/lang/it_mail_get.lng index 70770c22d..3b443a726 100644 --- a/interface/web/mail/lib/lang/it_mail_get.lng +++ b/interface/web/mail/lib/lang/it_mail_get.lng @@ -14,6 +14,6 @@ $wb['source_password_error_isempty'] = 'Valore Password vuoto.'; $wb['destination_error_isemail'] = 'Nessuna destinazione selezionata.'; $wb['source_server_error_regex'] = 'Pop3/Imap Server non è un nome dominio valido.'; $wb['source_read_all_txt'] = 'Recupera tutte le email (incluso mail lette)'; -$wb['error_delete_read_all_combination'] = 'Combinazione di opzioni non conforme. Non puoi utilizzare \\"Elimina mail dopo averle scaricate \\" = NO assieme a \\"Recupera tutte le email\\" = SI'; +$wb['error_delete_read_all_combination'] = 'Combinazione di opzioni non conforme. Non puoi utilizzare \"Elimina mail dopo averle scaricate \" = NO assieme a \"Recupera tutte le email\" = SI'; $wb['source_delete_note_txt'] = 'Please check first if email retrieval works, before you activate this option.'; ?> diff --git a/interface/web/mail/lib/lang/ja_mail_get.lng b/interface/web/mail/lib/lang/ja_mail_get.lng index 3c5c9ec09..f1c45256b 100644 --- a/interface/web/mail/lib/lang/ja_mail_get.lng +++ b/interface/web/mail/lib/lang/ja_mail_get.lng @@ -14,6 +14,6 @@ $wb['source_password_error_isempty'] = 'パスワードを指定してくださ $wb['destination_error_isemail'] = '宛先を選択してください。'; $wb['source_server_error_regex'] = 'Pop3/Imap Server is not a valid domain name.'; $wb['source_read_all_txt'] = 'Retrieve all emails (incl. read mails)'; -$wb['error_delete_read_all_combination'] = 'Illegal combination of options. You can not use \\"Delete emails after retrieval\\" = no together with \\"Retrieve all emails\\" = yes'; +$wb['error_delete_read_all_combination'] = 'Illegal combination of options. You can not use \"Delete emails after retrieval\" = no together with \"Retrieve all emails\" = yes'; $wb['source_delete_note_txt'] = 'Please check first if email retrieval works, before you activate this option.'; ?> diff --git a/interface/web/mail/lib/lang/nl_mail_get.lng b/interface/web/mail/lib/lang/nl_mail_get.lng index 5cbeab14e..6752b42cd 100644 --- a/interface/web/mail/lib/lang/nl_mail_get.lng +++ b/interface/web/mail/lib/lang/nl_mail_get.lng @@ -14,6 +14,6 @@ $wb['source_password_error_isempty'] = 'Wachtwoord is niet ingvuld.'; $wb['destination_error_isemail'] = 'Geen bestemming geselecteerd.'; $wb['source_server_error_regex'] = 'Pop3/Imap server is geen geldige domeinnaam.'; $wb['source_read_all_txt'] = 'Retrieve all emails (incl. read mails)'; -$wb['error_delete_read_all_combination'] = 'Illegal combination of options. You can not use \\"Delete emails after retrieval\\" = no together with \\"Retrieve all emails\\" = yes'; +$wb['error_delete_read_all_combination'] = 'Illegal combination of options. You can not use \"Delete emails after retrieval\" = no together with \"Retrieve all emails\" = yes'; $wb['source_delete_note_txt'] = 'Please check first if email retrieval works, before you activate this option.'; ?> diff --git a/interface/web/mail/lib/lang/nl_mail_user.lng b/interface/web/mail/lib/lang/nl_mail_user.lng index 94dd01833..acc2da94e 100644 --- a/interface/web/mail/lib/lang/nl_mail_user.lng +++ b/interface/web/mail/lib/lang/nl_mail_user.lng @@ -36,7 +36,7 @@ $wb['name_txt'] = 'Echte naam'; $wb['name_optional_txt'] = '(Optioneel)'; $wb['autoresponder_active'] = 'Inschakelen autoresponder'; $wb['cc_txt'] = 'Stuur kopie naar'; -$wb['cc_error_isemail'] = 'Het \\"Stuur kopie naar\\" veld bevat geen geldig e-mail adres'; +$wb['cc_error_isemail'] = 'Het \"Stuur kopie naar\" veld bevat geen geldig e-mail adres'; $wb['domain_txt'] = 'Domain'; $wb['now_txt'] = 'Now'; $wb['login_error_unique'] = 'Login is already taken.'; @@ -60,6 +60,6 @@ $wb['cc_note_txt'] = '(Meerdere e-mail adressen scheiden met een komma)'; $wb['disablesmtp_txt'] = 'Uitschakelen SMTP (versturen)'; $wb['autoresponder_start_date_is_required'] = 'Start date must be set when Autoresponder is enabled.'; $wb['sender_cc_txt'] = 'Stuur uitgaande kopie aan'; -$wb['sender_cc_error_isemail'] = 'Het \\"Stuur uitgaande kopie aan\\" veld bevat geen geldig e-mail adres'; +$wb['sender_cc_error_isemail'] = 'Het \"Stuur uitgaande kopie aan\" veld bevat geen geldig e-mail adres'; $wb['sender_cc_note_txt'] = '(Meerdere e-mail adressen scheiden met een komma)'; ?> diff --git a/interface/web/mail/lib/lang/pt_mail_get.lng b/interface/web/mail/lib/lang/pt_mail_get.lng index 883279a2d..f3ea6227f 100644 --- a/interface/web/mail/lib/lang/pt_mail_get.lng +++ b/interface/web/mail/lib/lang/pt_mail_get.lng @@ -14,6 +14,6 @@ $wb['source_password_error_isempty'] = 'Senha em branco.'; $wb['destination_error_isemail'] = 'Destino não seleccionado.'; $wb['source_server_error_regex'] = 'Servidor Pop3/Imap não é um nome de domínio válido.'; $wb['source_read_all_txt'] = 'Retrieve all emails (incl. read mails)'; -$wb['error_delete_read_all_combination'] = 'Illegal combination of options. You can not use \\"Delete emails after retrieval\\" = no together with \\"Retrieve all emails\\" = yes'; +$wb['error_delete_read_all_combination'] = 'Illegal combination of options. You can not use \"Delete emails after retrieval\" = no together with \"Retrieve all emails\" = yes'; $wb['source_delete_note_txt'] = 'Please check first if email retrieval works, before you activate this option.'; ?> diff --git a/interface/web/mail/lib/lang/ro_mail_get.lng b/interface/web/mail/lib/lang/ro_mail_get.lng index 5e0a590f7..16a0b6aeb 100644 --- a/interface/web/mail/lib/lang/ro_mail_get.lng +++ b/interface/web/mail/lib/lang/ro_mail_get.lng @@ -14,6 +14,6 @@ $wb['source_password_error_isempty'] = 'Password este necompletat'; $wb['destination_error_isemail'] = 'Nici o destinatie nu e selectata'; $wb['source_server_error_regex'] = 'Pop3/Imap Server is not a valid domain name.'; $wb['source_read_all_txt'] = 'Retrieve all emails (incl. read mails)'; -$wb['error_delete_read_all_combination'] = 'Illegal combination of options. You can not use \\"Delete emails after retrieval\\" = no together with \\"Retrieve all emails\\" = yes'; +$wb['error_delete_read_all_combination'] = 'Illegal combination of options. You can not use \"Delete emails after retrieval\" = no together with \"Retrieve all emails\" = yes'; $wb['source_delete_note_txt'] = 'Please check first if email retrieval works, before you activate this option.'; ?> diff --git a/interface/web/mail/lib/lang/ru_mail_get.lng b/interface/web/mail/lib/lang/ru_mail_get.lng index b3f2f0b6b..0ce613cd0 100644 --- a/interface/web/mail/lib/lang/ru_mail_get.lng +++ b/interface/web/mail/lib/lang/ru_mail_get.lng @@ -14,6 +14,6 @@ $wb['source_password_error_isempty'] = 'Пустой пароль.'; $wb['destination_error_isemail'] = 'Не выбран получатель или запись некорректна.'; $wb['source_server_error_regex'] = 'Некорректное доменное имя для сервера POP3/IMAP.'; $wb['source_read_all_txt'] = 'Получать все сообщения электронной почты (включая прочитанные письма)'; -$wb['error_delete_read_all_combination'] = 'Недопустимая комбинация параметров. Вы не можете использовать \\"Удалить письма после получения\\" = НЕТ вместе с \\"Получить все письма\\" = ДА'; +$wb['error_delete_read_all_combination'] = 'Недопустимая комбинация параметров. Вы не можете использовать \"Удалить письма после получения\" = НЕТ вместе с \"Получить все письма\" = ДА'; $wb['source_delete_note_txt'] = 'Пожалуйста, прежде чем активировать этот параметр, убедитесь в том, что сборщик почты работает.'; ?> diff --git a/interface/web/mail/lib/lang/ru_mail_user_filter.lng b/interface/web/mail/lib/lang/ru_mail_user_filter.lng index c8306f983..ecc2d25b9 100644 --- a/interface/web/mail/lib/lang/ru_mail_user_filter.lng +++ b/interface/web/mail/lib/lang/ru_mail_user_filter.lng @@ -6,7 +6,7 @@ $wb['active_txt'] = 'Активно'; $wb['rulename_error_empty'] = 'Имя пустое.'; $wb['searchterm_is_empty'] = 'Поле поиска пустое.'; $wb['source_txt'] = 'Источник'; -$wb['target_error_regex'] = 'Назначение может содержать только следующие символы: \\"a-z\\", \\"0-9\\", \\"-\\", \\".\\", \\"_\\" и {пробел}'; +$wb['target_error_regex'] = 'Назначение может содержать только следующие символы: \"a-z\", \"0-9\", \"-\", \".\", \"_\" и {пробел}'; $wb['limit_mailfilter_txt'] = 'Максимальное число почтовых фильтров достигнуто.'; $wb['subject_txt'] = 'Тема'; $wb['from_txt'] = 'От'; diff --git a/interface/web/mail/lib/lang/se_mail_get.lng b/interface/web/mail/lib/lang/se_mail_get.lng index 9ed971005..db4440210 100644 --- a/interface/web/mail/lib/lang/se_mail_get.lng +++ b/interface/web/mail/lib/lang/se_mail_get.lng @@ -14,6 +14,6 @@ $wb['source_password_error_isempty'] = 'Lösenord är tomt.'; $wb['destination_error_isemail'] = 'Ingen destination vald.'; $wb['source_server_error_regex'] = 'POP3-/Imapserver är inte ett giltigt domännamn.'; $wb['source_read_all_txt'] = 'Hämta all epost (även läst epost)'; -$wb['error_delete_read_all_combination'] = 'Illegal combination of options. You can not use \\"Delete emails after retrieval\\" = no together with \\"Retrieve all emails\\" = yes'; +$wb['error_delete_read_all_combination'] = 'Illegal combination of options. You can not use \"Delete emails after retrieval\" = no together with \"Retrieve all emails\" = yes'; $wb['source_delete_note_txt'] = 'Vänligen kontrollera först om eposthämtning fungerar innan du aktiverar detta val..'; ?> diff --git a/interface/web/mail/lib/lang/sk_mail_get.lng b/interface/web/mail/lib/lang/sk_mail_get.lng index e43899965..8e180ca7a 100644 --- a/interface/web/mail/lib/lang/sk_mail_get.lng +++ b/interface/web/mail/lib/lang/sk_mail_get.lng @@ -14,6 +14,6 @@ $wb['source_password_error_isempty'] = 'Heslo je prázdne.'; $wb['destination_error_isemail'] = 'Žiadny Cieľ nebol vybraný.'; $wb['source_server_error_regex'] = 'Pop3/Imap Server nie je valídne doménové meno.'; $wb['source_read_all_txt'] = 'Retrieve all emails (incl. read mails)'; -$wb['error_delete_read_all_combination'] = 'Illegal combination of options. You can not use \\"Delete emails after retrieval\\" = no together with \\"Retrieve all emails\\" = yes'; +$wb['error_delete_read_all_combination'] = 'Illegal combination of options. You can not use \"Delete emails after retrieval\" = no together with \"Retrieve all emails\" = yes'; $wb['source_delete_note_txt'] = 'Please check first if email retrieval works, before you activate this option.'; ?> diff --git a/interface/web/mail/lib/lang/tr_mail_get.lng b/interface/web/mail/lib/lang/tr_mail_get.lng index b82b6c8c9..3e29c26a7 100644 --- a/interface/web/mail/lib/lang/tr_mail_get.lng +++ b/interface/web/mail/lib/lang/tr_mail_get.lng @@ -15,5 +15,5 @@ $wb['source_username_error_isempty'] = 'Kullanıcı adı boş olamaz.'; $wb['source_password_error_isempty'] = 'Parola boş olamaz.'; $wb['destination_error_isemail'] = 'Hedef seçilmemiş.'; $wb['source_server_error_regex'] = 'POP3/IMAP Sunucu alan adı geçersiz.'; -$wb['error_delete_read_all_combination'] = 'Seçenek kombinasyonu geçersiz. You can not use \\"E-postalar alındıktan sonra silinsin\\" = Hayır iken \\"Tüm e-postalar alınsın\\" = Evet olamaz'; +$wb['error_delete_read_all_combination'] = 'Seçenek kombinasyonu geçersiz. You can not use \"E-postalar alındıktan sonra silinsin\" = Hayır iken \"Tüm e-postalar alınsın\" = Evet olamaz'; ?> diff --git a/interface/web/mailuser/lib/lang/ru_mail_user_filter.lng b/interface/web/mailuser/lib/lang/ru_mail_user_filter.lng index d834e4057..f10dd4ddb 100644 --- a/interface/web/mailuser/lib/lang/ru_mail_user_filter.lng +++ b/interface/web/mailuser/lib/lang/ru_mail_user_filter.lng @@ -6,7 +6,7 @@ $wb['active_txt'] = 'Активно'; $wb['rulename_error_empty'] = 'Имя пустое.'; $wb['searchterm_is_empty'] = 'Поле поиска пустое.'; $wb['source_txt'] = 'Источник'; -$wb['target_error_regex'] = 'Назначение может содержать только следующие символы: \\"a-z\\", \\"0-9\\", \\"-\\", \\".\\", \\"_\\" и {пробел}'; +$wb['target_error_regex'] = 'Назначение может содержать только следующие символы: \"a-z\", \"0-9\", \"-\", \".\", \"_\" и {пробел}'; $wb['limit_mailfilter_txt'] = 'Максимальное число почтовых фильтров достигнуто.'; $wb['subject_txt'] = 'Тема'; $wb['from_txt'] = 'От'; diff --git a/interface/web/monitor/lib/lang/es.lng b/interface/web/monitor/lib/lang/es.lng index f4acb3c45..3a95c6e9c 100755 --- a/interface/web/monitor/lib/lang/es.lng +++ b/interface/web/monitor/lib/lang/es.lng @@ -27,7 +27,7 @@ $wb['monitor_logs_mailerr_txt'] = 'Registros de errores de correo'; $wb['monitor_logs_mailwarn_txt'] = 'Registros de advertencias de correo'; $wb['monitor_logs_messages_txt'] = 'Registros de mensajes del sistema'; $wb['monitor_norkhunter_txt'] = 'RKHunter no está instalado, por lo que no hay registros a mostrar'; -$wb['monitor_nosupportedraid1_txt'] = 'Por el momento, soportamos \\"mdadm\\" o \\"mpt-status\\" para supervisar el RAID.
No hemos podido encontrarlo en su servidor.
Por lo tanto no podemos monitorizar su RAID todavía.'; +$wb['monitor_nosupportedraid1_txt'] = 'Por el momento, soportamos \"mdadm\" o \"mpt-status\" para supervisar el RAID.
No hemos podido encontrarlo en su servidor.
Por lo tanto no podemos monitorizar su RAID todavía.'; $wb['monitor_serverstate_beancountercritical_txt'] = 'Existen muchos errores en el Beancounter'; $wb['monitor_serverstate_beancountererror_txt'] = 'Existen muchísimos errores en el Beancounter'; $wb['monitor_serverstate_beancounterinfo_txt'] = 'Existen algún error en el Beancounter'; diff --git a/interface/web/sites/lib/lang/ar.lng b/interface/web/sites/lib/lang/ar.lng index 6ca61afae..bfd833292 100644 --- a/interface/web/sites/lib/lang/ar.lng +++ b/interface/web/sites/lib/lang/ar.lng @@ -31,5 +31,5 @@ $wb['Available packages'] = 'Available packages'; $wb['Installed packages'] = 'Installed packages'; $wb['Update Packagelist'] = 'Update Packagelist'; $wb['Subdomain (Vhost)'] = 'Subdomain (Vhost)'; -$wb['error_proxy_requires_url'] = 'Redirect Type \\"proxy\\" requires a URL as the redirect path.'; +$wb['error_proxy_requires_url'] = 'Redirect Type \"proxy\" requires a URL as the redirect path.'; ?> diff --git a/interface/web/sites/lib/lang/ar_aps.lng b/interface/web/sites/lib/lang/ar_aps.lng index 881c146a4..3ff130f57 100644 --- a/interface/web/sites/lib/lang/ar_aps.lng +++ b/interface/web/sites/lib/lang/ar_aps.lng @@ -38,14 +38,14 @@ $wb['error_inv_main_location'] = 'The given install location folder is invalid.' $wb['error_license_agreement'] = 'In order to continue you have to accept the license agreement.'; $wb['error_no_database_pw'] = 'You have provided no valid database password.'; $wb['error_short_database_pw'] = 'Please choose a longer database password.'; -$wb['error_no_value_for'] = 'The field \\"%s\\" must not be empty.'; -$wb['error_short_value_for'] = 'The field \\"%s\\" requires a longer input value.'; -$wb['error_long_value_for'] = 'The field \\"%s\\" requires a shorter input value.'; -$wb['error_inv_value_for'] = 'You have entered an invalid value for the field \\"%s\\".'; -$wb['error_inv_email_for'] = 'You have entered an invalid mail address for the field \\"%s\\".'; -$wb['error_inv_domain_for'] = 'You have entered an invalid domain for the field \\"%s\\".'; -$wb['error_inv_integer_for'] = 'You have entered an invalid number for the field \\"%s\\".'; -$wb['error_inv_float_for'] = 'You have entered an invalid floating point number for the field \\"%s\\".'; +$wb['error_no_value_for'] = 'The field \"%s\" must not be empty.'; +$wb['error_short_value_for'] = 'The field \"%s\" requires a longer input value.'; +$wb['error_long_value_for'] = 'The field \"%s\" requires a shorter input value.'; +$wb['error_inv_value_for'] = 'You have entered an invalid value for the field \"%s\".'; +$wb['error_inv_email_for'] = 'You have entered an invalid mail address for the field \"%s\".'; +$wb['error_inv_domain_for'] = 'You have entered an invalid domain for the field \"%s\".'; +$wb['error_inv_integer_for'] = 'You have entered an invalid number for the field \"%s\".'; +$wb['error_inv_float_for'] = 'You have entered an invalid floating point number for the field \"%s\".'; $wb['error_used_location'] = 'The installation path already contains a package installation.'; $wb['installation_task_txt'] = 'Install planned'; $wb['installation_error_txt'] = 'Install error'; diff --git a/interface/web/sites/lib/lang/ar_web_childdomain.lng b/interface/web/sites/lib/lang/ar_web_childdomain.lng index 636505f24..604a81b68 100644 --- a/interface/web/sites/lib/lang/ar_web_childdomain.lng +++ b/interface/web/sites/lib/lang/ar_web_childdomain.lng @@ -43,7 +43,7 @@ $wb['no_flag_txt'] = 'No flag'; $wb['domain_error_wildcard'] = 'Wildcard subdomains are not allowed.'; $wb['proxy_directives_txt'] = 'Proxy Directives'; $wb['available_proxy_directive_snippets_txt'] = 'Available Proxy Directive Snippets:'; -$wb['error_proxy_requires_url'] = 'Redirect Type \\"proxy\\" requires a URL as the redirect path.'; +$wb['error_proxy_requires_url'] = 'Redirect Type \"proxy\" requires a URL as the redirect path.'; $wb['backup_interval_txt'] = 'Backup interval'; $wb['backup_copies_txt'] = 'Number of backup copies'; $wb['ssl_key_txt'] = 'SSL Key'; diff --git a/interface/web/sites/lib/lang/ar_web_subdomain.lng b/interface/web/sites/lib/lang/ar_web_subdomain.lng index c5fa1711b..1295f3669 100644 --- a/interface/web/sites/lib/lang/ar_web_subdomain.lng +++ b/interface/web/sites/lib/lang/ar_web_subdomain.lng @@ -42,7 +42,7 @@ $wb['no_flag_txt'] = 'No flag'; $wb['domain_error_wildcard'] = 'Wildcard subdomains are not allowed.'; $wb['proxy_directives_txt'] = 'Proxy Directives'; $wb['available_proxy_directive_snippets_txt'] = 'Available Proxy Directive Snippets:'; -$wb['error_proxy_requires_url'] = 'Redirect Type \\"proxy\\" requires a URL as the redirect path.'; +$wb['error_proxy_requires_url'] = 'Redirect Type \"proxy\" requires a URL as the redirect path.'; $wb['http_port_txt'] = 'HTTP Port'; $wb['https_port_txt'] = 'HTTPS Port'; $wb['http_port_error_regex'] = 'HTTP Port invalid.'; diff --git a/interface/web/sites/lib/lang/bg.lng b/interface/web/sites/lib/lang/bg.lng index 0d28df299..842b70ae0 100644 --- a/interface/web/sites/lib/lang/bg.lng +++ b/interface/web/sites/lib/lang/bg.lng @@ -31,5 +31,5 @@ $wb['Available packages'] = 'Available packages'; $wb['Installed packages'] = 'Installed packages'; $wb['Update Packagelist'] = 'Update Packagelist'; $wb['Subdomain (Vhost)'] = 'Subdomain (Vhost)'; -$wb['error_proxy_requires_url'] = 'Redirect Type \\"proxy\\" requires a URL as the redirect path.'; +$wb['error_proxy_requires_url'] = 'Redirect Type \"proxy\" requires a URL as the redirect path.'; ?> diff --git a/interface/web/sites/lib/lang/bg_aps.lng b/interface/web/sites/lib/lang/bg_aps.lng index 6a5f98194..612adcd42 100644 --- a/interface/web/sites/lib/lang/bg_aps.lng +++ b/interface/web/sites/lib/lang/bg_aps.lng @@ -38,14 +38,14 @@ $wb['error_inv_main_location'] = 'The given install location folder is invalid.' $wb['error_license_agreement'] = 'In order to continue you have to accept the license agreement.'; $wb['error_no_database_pw'] = 'You have provided no valid database password.'; $wb['error_short_database_pw'] = 'Please choose a longer database password.'; -$wb['error_no_value_for'] = 'The field \\"%s\\" must not be empty.'; -$wb['error_short_value_for'] = 'The field \\"%s\\" requires a longer input value.'; -$wb['error_long_value_for'] = 'The field \\"%s\\" requires a shorter input value.'; -$wb['error_inv_value_for'] = 'You have entered an invalid value for the field \\"%s\\".'; -$wb['error_inv_email_for'] = 'You have entered an invalid mail address for the field \\"%s\\".'; -$wb['error_inv_domain_for'] = 'You have entered an invalid domain for the field \\"%s\\".'; -$wb['error_inv_integer_for'] = 'You have entered an invalid number for the field \\"%s\\".'; -$wb['error_inv_float_for'] = 'You have entered an invalid floating point number for the field \\"%s\\".'; +$wb['error_no_value_for'] = 'The field \"%s\" must not be empty.'; +$wb['error_short_value_for'] = 'The field \"%s\" requires a longer input value.'; +$wb['error_long_value_for'] = 'The field \"%s\" requires a shorter input value.'; +$wb['error_inv_value_for'] = 'You have entered an invalid value for the field \"%s\".'; +$wb['error_inv_email_for'] = 'You have entered an invalid mail address for the field \"%s\".'; +$wb['error_inv_domain_for'] = 'You have entered an invalid domain for the field \"%s\".'; +$wb['error_inv_integer_for'] = 'You have entered an invalid number for the field \"%s\".'; +$wb['error_inv_float_for'] = 'You have entered an invalid floating point number for the field \"%s\".'; $wb['error_used_location'] = 'The installation path already contains a package installation.'; $wb['installation_task_txt'] = 'Install planned'; $wb['installation_error_txt'] = 'Install error'; diff --git a/interface/web/sites/lib/lang/bg_web_childdomain.lng b/interface/web/sites/lib/lang/bg_web_childdomain.lng index c7549b76f..7106438c3 100644 --- a/interface/web/sites/lib/lang/bg_web_childdomain.lng +++ b/interface/web/sites/lib/lang/bg_web_childdomain.lng @@ -42,7 +42,7 @@ $wb['no_flag_txt'] = 'No flag'; $wb['domain_error_wildcard'] = 'Wildcard subdomains are not allowed.'; $wb['proxy_directives_txt'] = 'Proxy Directives'; $wb['available_proxy_directive_snippets_txt'] = 'Available Proxy Directive Snippets:'; -$wb['error_proxy_requires_url'] = 'Redirect Type \\"proxy\\" requires a URL as the redirect path.'; +$wb['error_proxy_requires_url'] = 'Redirect Type \"proxy\" requires a URL as the redirect path.'; $wb['backup_interval_txt'] = 'Backup interval'; $wb['backup_copies_txt'] = 'Number of backup copies'; $wb['ssl_key_txt'] = 'SSL Key'; diff --git a/interface/web/sites/lib/lang/bg_web_subdomain.lng b/interface/web/sites/lib/lang/bg_web_subdomain.lng index 0df1e5059..f4218278d 100644 --- a/interface/web/sites/lib/lang/bg_web_subdomain.lng +++ b/interface/web/sites/lib/lang/bg_web_subdomain.lng @@ -42,7 +42,7 @@ $wb['no_flag_txt'] = 'No flag'; $wb['domain_error_wildcard'] = 'Wildcard subdomains are not allowed.'; $wb['proxy_directives_txt'] = 'Proxy Directives'; $wb['available_proxy_directive_snippets_txt'] = 'Available Proxy Directive Snippets:'; -$wb['error_proxy_requires_url'] = 'Redirect Type \\"proxy\\" requires a URL as the redirect path.'; +$wb['error_proxy_requires_url'] = 'Redirect Type \"proxy\" requires a URL as the redirect path.'; $wb['http_port_txt'] = 'HTTP Port'; $wb['https_port_txt'] = 'HTTPS Port'; $wb['http_port_error_regex'] = 'HTTP Port invalid.'; diff --git a/interface/web/sites/lib/lang/br.lng b/interface/web/sites/lib/lang/br.lng index 685ce6ed2..3fdd93585 100644 --- a/interface/web/sites/lib/lang/br.lng +++ b/interface/web/sites/lib/lang/br.lng @@ -30,6 +30,6 @@ $wb['Available packages'] = 'Pacotes disponíveis'; $wb['Installed packages'] = 'Pacotes instalados'; $wb['Update Packagelist'] = 'Atualizar lista de pacotes'; $wb['Subdomain (Vhost)'] = 'Subdomínio (vhost)'; -$wb['error_proxy_requires_url'] = 'Tipo de redirecionamento \\"proxy\\" exige uma url como caminho do redirecionamento.'; +$wb['error_proxy_requires_url'] = 'Tipo de redirecionamento \"proxy\" exige uma url como caminho do redirecionamento.'; $wb['Domain'] = 'Domínio'; ?> diff --git a/interface/web/sites/lib/lang/br_cron.lng b/interface/web/sites/lib/lang/br_cron.lng index 2bbadf6d1..eab5b9f68 100644 --- a/interface/web/sites/lib/lang/br_cron.lng +++ b/interface/web/sites/lib/lang/br_cron.lng @@ -19,8 +19,8 @@ $wb['run_wday_error_format'] = 'Formato dos dias da semana é inválido.'; $wb['command_error_format'] = 'Formato de comando é inválido. Somente endereços url http/https são permitidos.'; $wb['unknown_fieldtype_error'] = 'Um tipo desconhecido de campo foi usado.'; $wb['server_id_error_empty'] = 'O ID do servidor está em branco.'; -$wb['limit_cron_url_txt'] = 'Somente url do cron. Por favor, insira uma url iniciando com \\"http://\\" e um comando do cron.'; +$wb['limit_cron_url_txt'] = 'Somente url do cron. Por favor, insira uma url iniciando com \"http://\" e um comando do cron.'; $wb['command_error_empty'] = 'Comando está em branco.'; -$wb['command_hint_txt'] = 'Você poderá usar, por exemplo: \\"/var/www/clients/clientX/webY/meu_script.sh\\" ou \\"http://www.dominio.com.br/path/script.php\\" e também a palavra reservada \\"[web_root]\\" substituído por \\"/var/www/clients/clientX/webY/web\\".'; +$wb['command_hint_txt'] = 'Você poderá usar, por exemplo: \"/var/www/clients/clientX/webY/meu_script.sh\" ou \"http://www.dominio.com.br/path/script.php\" e também a palavra reservada \"[web_root]\" substituído por \"/var/www/clients/clientX/webY/web\".'; $wb['log_output_txt'] = 'Saída do Log'; ?> diff --git a/interface/web/sites/lib/lang/br_database.lng b/interface/web/sites/lib/lang/br_database.lng index ac916feef..57b97693e 100644 --- a/interface/web/sites/lib/lang/br_database.lng +++ b/interface/web/sites/lib/lang/br_database.lng @@ -23,7 +23,7 @@ $wb['database_remote_error_ips'] = 'Pelo menos um dos endereços IP informados n $wb['database_name_error_len'] = 'Nome do banco de dados - {db} - é muito longo. 64 caracteres, incluindo o prefixo, é o limite permitido.'; $wb['database_user_error_len'] = 'Nome do usuário do banco de dados \'{user}\' é muito longo. 16 caracteres, incluindo o prefixo, é o limite permitido.'; $wb['parent_domain_id_txt'] = 'Site'; -$wb['database_site_error_empty'] = 'Selecione o \\"site\\" ao qual o banco de dados pertence.'; +$wb['database_site_error_empty'] = 'Selecione o \"site\" ao qual o banco de dados pertence.'; $wb['select_site_txt'] = '- Selecionar site -'; $wb['btn_save_txt'] = 'Salvar'; $wb['btn_cancel_txt'] = 'Cancelar'; diff --git a/interface/web/sites/lib/lang/br_database_user.lng b/interface/web/sites/lib/lang/br_database_user.lng index 59b9fce62..518f0296e 100644 --- a/interface/web/sites/lib/lang/br_database_user.lng +++ b/interface/web/sites/lib/lang/br_database_user.lng @@ -6,7 +6,7 @@ $wb['client_txt'] = 'Cliente'; $wb['active_txt'] = 'Ativo'; $wb['database_user_error_empty'] = 'Usuário do banco de dados está em branco.'; $wb['database_user_error_unique'] = 'Já existe um usuário do banco de dados com este nome no servidor. Para configurar um nome exclusivo, use como prefixo o domínio para o nome do usuário.'; -$wb['database_user_error_regex'] = 'Usuário do banco de dados inválido! O nome do usuário pode conter os seguintes caracteres: \'\\"a-z\', \'A-Z\', \'0-9\' e o \'underscore\'. Tamanho: 2 - 64 caracteres.'; +$wb['database_user_error_regex'] = 'Usuário do banco de dados inválido! O nome do usuário pode conter os seguintes caracteres: \'\"a-z\', \'A-Z\', \'0-9\' e o \'underscore\'. Tamanho: 2 - 64 caracteres.'; $wb['database_user_error_len'] = 'O usuário do banco de dados - {user} - é muito longo. O limite do nome do usuário, incluindo o prefixo, são 16 caracteres.'; $wb['btn_save_txt'] = 'Salvar'; $wb['btn_cancel_txt'] = 'Cancelar'; diff --git a/interface/web/sites/lib/lang/br_ftp_user.lng b/interface/web/sites/lib/lang/br_ftp_user.lng index 3df741ed9..bb8d99ceb 100644 --- a/interface/web/sites/lib/lang/br_ftp_user.lng +++ b/interface/web/sites/lib/lang/br_ftp_user.lng @@ -25,8 +25,8 @@ $wb['directory_error_empty'] = 'Diretório está em branco.'; $wb['directory_error_notinweb'] = 'O diretório não está dentro do diretório web principal.'; $wb['parent_domain_id_error_empty'] = 'Nenhum site selecionado.'; $wb['quota_size_error_regex'] = 'Cota: insira -1 para ilimitado ou um número > 0'; -$wb['dir_dot_error'] = 'Não é permitido \\"..\\" no caminho.'; -$wb['dir_slashdot_error'] = 'Não é permitido \\"./\\" no caminho.'; +$wb['dir_dot_error'] = 'Não é permitido \"..\" no caminho.'; +$wb['dir_slashdot_error'] = 'Não é permitido \"./\" no caminho.'; $wb['generate_password_txt'] = 'Gerar senha'; $wb['repeat_password_txt'] = 'Repetir senha'; $wb['password_mismatch_txt'] = 'A senhas não coincidem.'; diff --git a/interface/web/sites/lib/lang/br_shell_user.lng b/interface/web/sites/lib/lang/br_shell_user.lng index 3cbc911ab..c92bf5baa 100644 --- a/interface/web/sites/lib/lang/br_shell_user.lng +++ b/interface/web/sites/lib/lang/br_shell_user.lng @@ -20,8 +20,8 @@ $wb['parent_domain_id_error_empty'] = 'Nenhum site selecionado.'; $wb['puser_txt'] = 'Usuário web'; $wb['pgroup_txt'] = 'Grupo web'; $wb['ssh_rsa_txt'] = 'Chave pública SSH-RSA (para acessos baseados em chave)'; -$wb['dir_dot_error'] = 'Não é permitido \\"..\\" no caminho.'; -$wb['dir_slashdot_error'] = 'Não é permitido \\"./\\" no caminho.'; +$wb['dir_dot_error'] = 'Não é permitido \"..\" no caminho.'; +$wb['dir_slashdot_error'] = 'Não é permitido \"./\" no caminho.'; $wb['generate_password_txt'] = 'Gerar senha'; $wb['repeat_password_txt'] = 'Repetir senha'; $wb['password_mismatch_txt'] = 'A senhas não coincidem.'; diff --git a/interface/web/sites/lib/lang/br_web_aliasdomain.lng b/interface/web/sites/lib/lang/br_web_aliasdomain.lng index 4acadb2c5..9d4f1951d 100644 --- a/interface/web/sites/lib/lang/br_web_aliasdomain.lng +++ b/interface/web/sites/lib/lang/br_web_aliasdomain.lng @@ -14,7 +14,7 @@ $wb['ssl_bundle_txt'] = 'Pacote'; $wb['ssl_action_txt'] = 'Ação'; $wb['ssl_domain_txt'] = 'Domínio'; $wb['server_id_txt'] = 'Servidor'; -$wb['web_folder_error_regex'] = 'Pasta inválida inserida. Por favor, não use barra \\"/\\".'; +$wb['web_folder_error_regex'] = 'Pasta inválida inserida. Por favor, não use barra \"/\".'; $wb['type_txt'] = 'Tipo'; $wb['parent_domain_id_txt'] = 'Site pai'; $wb['redirect_type_txt'] = 'Tipo de redirecionamento'; @@ -62,7 +62,7 @@ $wb['ssl_organisation_error_regex'] = 'Campo \'Empresa\' é inválido. São cara $wb['ssl_organistaion_unit_error_regex'] = 'Campo \'Departamento\' é inválido. São caracteres válidos: \'a-z\', \'0-9\' e \'.,-_\'.'; $wb['ssl_country_error_regex'] = 'Campo \'País\' é inválido. São caracteres válidos: \'A-Z\'.'; $wb['limit_traffic_quota_free_txt'] = 'Cota máxima de tráfego disponível'; -$wb['redirect_error_regex'] = 'Caminho de redirecionamento é inválido. Exemplos de caminhos válidos: \\"/teste/\\" ou \\"http://www.dominio.com.br/teste/\\".'; +$wb['redirect_error_regex'] = 'Caminho de redirecionamento é inválido. Exemplos de caminhos válidos: \"/teste/\" ou \"http://www.dominio.com.br/teste/\".'; $wb['php_open_basedir_txt'] = 'Diretório open_basedir do PHP'; $wb['traffic_quota_exceeded_txt'] = 'Cota de tráfego excedida'; $wb['ruby_txt'] = 'Ruby'; diff --git a/interface/web/sites/lib/lang/br_web_childdomain.lng b/interface/web/sites/lib/lang/br_web_childdomain.lng index ecff0c2ae..1c53d1658 100644 --- a/interface/web/sites/lib/lang/br_web_childdomain.lng +++ b/interface/web/sites/lib/lang/br_web_childdomain.lng @@ -36,18 +36,18 @@ $wb['domain_error_empty'] = 'Domínio está em branco.'; $wb['domain_error_unique'] = 'Já existe apelido de domínio ou subdomínio com este nome.'; $wb['domain_error_regex'] = 'Nome de domínio é inválido.'; $wb['host_txt'] = 'Nome do servidor'; -$wb['redirect_error_regex'] = 'Caminho de redirecionamento é inválido. Exemplo de caminho válido: \\"/teste/\\" ou \\"http://www.dominio.com.br/teste/\\".'; +$wb['redirect_error_regex'] = 'Caminho de redirecionamento é inválido. Exemplo de caminho válido: \"/teste/\" ou \"http://www.dominio.com.br/teste/\".'; $wb['no_redirect_txt'] = 'Sem redirecionamento'; $wb['no_flag_txt'] = 'Sem marcas'; $wb['domain_error_wildcard'] = 'Curingas para subdomínios não são permitidos.'; $wb['proxy_directives_txt'] = 'Diretivas do proxy'; $wb['available_proxy_directive_snippets_txt'] = 'Diretivas de trechos de código do proxy disponíveis:'; -$wb['error_proxy_requires_url'] = 'O tipo de redirecionamento \\"proxy\\" exige uma url no caminho de redirecionamento.'; +$wb['error_proxy_requires_url'] = 'O tipo de redirecionamento \"proxy\" exige uma url no caminho de redirecionamento.'; $wb['backup_interval_txt'] = 'Intervalo de backup'; $wb['backup_copies_txt'] = 'Limite de cópias do backup'; $wb['ssl_key_txt'] = 'Chave'; $wb['ssl_domain_txt'] = 'Domínio do SSL'; -$wb['web_folder_error_regex'] = 'Pasta inválida informada. Por favor não use uma barra - \\"/\\".'; +$wb['web_folder_error_regex'] = 'Pasta inválida informada. Por favor não use uma barra - \"/\".'; $wb['ipv6_address_txt'] = 'Endereço IPv6'; $wb['errordocs_txt'] = 'Pasta personalizada Error-Documents'; $wb['subdomain_txt'] = 'Subdomínio automático'; diff --git a/interface/web/sites/lib/lang/br_web_domain.lng b/interface/web/sites/lib/lang/br_web_domain.lng index 662fdb407..4b2e77b65 100644 --- a/interface/web/sites/lib/lang/br_web_domain.lng +++ b/interface/web/sites/lib/lang/br_web_domain.lng @@ -52,10 +52,10 @@ $wb['limit_web_quota_free_txt'] = 'Cota máxima de disco disponível'; $wb['ssl_state_error_regex'] = 'Campo \'Estado\' é inválido. São caracteres válidos: \'a-z\', \'0-9\' e \'.,-_\'.'; $wb['ssl_locality_error_regex'] = 'Campo \'Cidade\' é inválido. São caracteres válidos: \'a-z\', \'0-9\' e \'.,-_\'.'; $wb['ssl_organisation_error_regex'] = 'Campo \'Empresa\' é inválido. São caracteres válidos: \'a-z\', \'0-9\' e \'.,-_\'.'; -$wb['ssl_organistaion_unit_error_regex'] = 'Campo \'Departamento\' é inválido. São caracteres válidos: \\"a-z\\", \'0-9\' e \'.,-_\'.'; +$wb['ssl_organistaion_unit_error_regex'] = 'Campo \'Departamento\' é inválido. São caracteres válidos: \"a-z\", \'0-9\' e \'.,-_\'.'; $wb['ssl_country_error_regex'] = 'Campo \'País\' é inválido. São caracteres válidos: \'A-Z\'.'; $wb['limit_traffic_quota_free_txt'] = 'Cota máxima de tráfego disponível'; -$wb['redirect_error_regex'] = 'Caminho de redirecionamento é inválido. Exemplos de caminhos válidos: \\"/teste/\\" ou \\"http://www.dominio.com.br/teste/\\".'; +$wb['redirect_error_regex'] = 'Caminho de redirecionamento é inválido. Exemplos de caminhos válidos: \"/teste/\" ou \"http://www.dominio.com.br/teste/\".'; $wb['php_open_basedir_txt'] = 'Diretório open_basedir do php'; $wb['traffic_quota_exceeded_txt'] = 'Cota de tráfego excedida'; $wb['backup_interval_txt'] = 'Intervalo de backup'; @@ -104,7 +104,7 @@ $wb['generate_password_txt'] = 'Gerar senha'; $wb['repeat_password_txt'] = 'Repetir senha'; $wb['password_mismatch_txt'] = 'A senhas não coincidem.'; $wb['password_match_txt'] = 'A senhas coincidem.'; -$wb['web_folder_error_regex'] = 'Pasta informada é inválida! Por favor não insira barra \\"/\\".'; +$wb['web_folder_error_regex'] = 'Pasta informada é inválida! Por favor não insira barra \"/\".'; $wb['domain_error_autosub'] = 'Já existe um subdomínio com estas configurações.'; $wb['available_php_directive_snippets_txt'] = 'Diretivas de trechos de código do php:'; $wb['available_apache_directive_snippets_txt'] = 'Diretivas de trechos de código do apache:'; diff --git a/interface/web/sites/lib/lang/br_web_subdomain.lng b/interface/web/sites/lib/lang/br_web_subdomain.lng index 0ccc57480..8abb05043 100644 --- a/interface/web/sites/lib/lang/br_web_subdomain.lng +++ b/interface/web/sites/lib/lang/br_web_subdomain.lng @@ -36,7 +36,7 @@ $wb['domain_error_empty'] = 'Domínio está em branco.'; $wb['domain_error_unique'] = 'Já existe apelido de domínio ou subdomínio com este nome.'; $wb['domain_error_regex'] = 'Nome do domínio é inválido.'; $wb['host_txt'] = 'Host'; -$wb['redirect_error_regex'] = 'Caminho de redirecionamento é inválido. Exemplo de caminho válido: \\"/teste/\\" ou \\"http://www.dominio.com.br/teste/\\".'; +$wb['redirect_error_regex'] = 'Caminho de redirecionamento é inválido. Exemplo de caminho válido: \"/teste/\" ou \"http://www.dominio.com.br/teste/\".'; $wb['no_redirect_txt'] = 'Sem redirecionamento'; $wb['no_flag_txt'] = 'Sem marcas'; $wb['domain_error_wildcard'] = 'Curingas de subdomínios não são permitidos.'; diff --git a/interface/web/sites/lib/lang/br_web_vhost_domain.lng b/interface/web/sites/lib/lang/br_web_vhost_domain.lng index 4c72b1fd8..d30db9f18 100644 --- a/interface/web/sites/lib/lang/br_web_vhost_domain.lng +++ b/interface/web/sites/lib/lang/br_web_vhost_domain.lng @@ -56,7 +56,7 @@ $wb['ssl_organisation_error_regex'] = 'Campo \'Empresa\' é inválido. São cara $wb['ssl_organistaion_unit_error_regex'] = 'Campo \'Departamento\' é inválido. São caracteres válidos: \'a-z\', \'0-9\' e \'.,-_\'.'; $wb['ssl_country_error_regex'] = 'Campo \'País\' é inválido. São caracteres válidos: \'A-Z\'.'; $wb['limit_traffic_quota_free_txt'] = 'Limite da cota de tráfego'; -$wb['redirect_error_regex'] = 'Caminho de redirecionamento é inválido. Exemplos de caminhos válidos: \\"/teste\\" ou \\"http://www.dominio.com.br/teste/\\".'; +$wb['redirect_error_regex'] = 'Caminho de redirecionamento é inválido. Exemplos de caminhos válidos: \"/teste\" ou \"http://www.dominio.com.br/teste/\".'; $wb['php_open_basedir_txt'] = 'Diretório open_basedir do php'; $wb['traffic_quota_exceeded_txt'] = 'Cota de tráfego excedida'; $wb['backup_interval_txt'] = 'Intervalo de backup'; @@ -106,7 +106,7 @@ $wb['generate_password_txt'] = 'Gerar senha'; $wb['repeat_password_txt'] = 'Repetir senha'; $wb['password_mismatch_txt'] = 'A senhas não coincidem.'; $wb['password_match_txt'] = 'A senhas coincidem.'; -$wb['web_folder_error_regex'] = 'Pasta inválida informada. Por favor não insira barra - \\"\\".'; +$wb['web_folder_error_regex'] = 'Pasta inválida informada. Por favor não insira barra - \"\".'; $wb['domain_error_autosub'] = 'Já existe um subdomínio com essas configurações.'; $wb['available_php_directive_snippets_txt'] = 'Diretivas de trechos de código do php disponíveis:'; $wb['available_apache_directive_snippets_txt'] = 'Diretivas de trechos de código do apache disponíveis:'; diff --git a/interface/web/sites/lib/lang/br_web_vhost_subdomain.lng b/interface/web/sites/lib/lang/br_web_vhost_subdomain.lng index fa6ddad48..8a0c3e6a1 100644 --- a/interface/web/sites/lib/lang/br_web_vhost_subdomain.lng +++ b/interface/web/sites/lib/lang/br_web_vhost_subdomain.lng @@ -19,7 +19,7 @@ $wb['ssl_domain_txt'] = 'Domínio'; $wb['server_id_txt'] = 'Servidor'; $wb['domain_txt'] = 'Domínio'; $wb['host_txt'] = 'Hostname'; -$wb['web_folder_error_regex'] = 'Pasta informada é inválida. Por favor, não insira barra - \\"/\\".'; +$wb['web_folder_error_regex'] = 'Pasta informada é inválida. Por favor, não insira barra - \"/\".'; $wb['type_txt'] = 'Tipo'; $wb['redirect_type_txt'] = 'Tipo de redirecionamento'; $wb['redirect_path_txt'] = 'Caminho para redirecionamento'; @@ -60,13 +60,13 @@ $wb['client_group_id_txt'] = 'Cliente'; $wb['stats_password_txt'] = 'Senha para estatísticas web'; $wb['allow_override_txt'] = 'Diretiva Apache AllowOverride'; $wb['limit_web_quota_free_txt'] = 'Cota de disco'; -$wb['ssl_state_error_regex'] = 'Campo \'Estado\' é inválido. Caracteres válidos são: \'0-9\' e \\".,-_\\".'; +$wb['ssl_state_error_regex'] = 'Campo \'Estado\' é inválido. Caracteres válidos são: \'0-9\' e \".,-_\".'; $wb['ssl_locality_error_regex'] = 'Campo \'Cidade\' é inválido. Caracteres válidos são: \'a-z\', \'0-9\' e \'.,-_\'.'; $wb['ssl_organisation_error_regex'] = 'Campo \'Empresa\' é inválido. Caracteres válidos são: \'a-z\', \'0-9\' e \'.,-_\'.'; $wb['ssl_organistaion_unit_error_regex'] = 'Campo \'Departamento\' é inválido. Caracteres válidos são: \'a-z\', \'0-9\' e \'.,-_\'.'; $wb['ssl_country_error_regex'] = 'Campo \'País\' é inválido. Caracteres válidos são: \'A-Z\'.'; $wb['limit_traffic_quota_free_txt'] = 'Cota de tráfego'; -$wb['redirect_error_regex'] = 'Caminho de redirecionamento é inválido. Exemplo de caminho válido: \\"/teste/\\" ou \\"http://www.dominio.com.br/teste/\\".'; +$wb['redirect_error_regex'] = 'Caminho de redirecionamento é inválido. Exemplo de caminho válido: \"/teste/\" ou \"http://www.dominio.com.br/teste/\".'; $wb['php_open_basedir_txt'] = 'Diretório open_basedir do PHP'; $wb['traffic_quota_exceeded_txt'] = 'Cota de tráfego excedida'; $wb['ruby_txt'] = 'Ruby'; @@ -121,9 +121,9 @@ $wb['allowed_rewrite_rule_directives_txt'] = 'Diretivas Permitidas:'; $wb['configuration_error_txt'] = 'ERRO DE CONFIGURAÇÃO'; $wb['variables_txt'] = 'Variáveis'; $wb['backup_excludes_txt'] = 'Diretórios Excluídos'; -$wb['backup_excludes_note_txt'] = '(Separar múltiplos diretórios por vírgulas. Exemplo: \\"web/cache/*,web/backup\\".)'; +$wb['backup_excludes_note_txt'] = '(Separar múltiplos diretórios por vírgulas. Exemplo: \"web/cache/*,web/backup\".)'; $wb['backup_excludes_error_regex'] = 'Os diretórios excluídos contém caracteres inválidos.'; -$wb['subdomain_error_empty'] = 'O campo \\"Subdomínio\\" está em branco ou contém caracteres inválidos.'; +$wb['subdomain_error_empty'] = 'O campo \"Subdomínio\" está em branco ou contém caracteres inválidos.'; $wb['http_port_txt'] = 'Porta HTTP'; $wb['https_port_txt'] = 'Porta HTTPS'; $wb['http_port_error_regex'] = 'Porta HTTP inválida.'; diff --git a/interface/web/sites/lib/lang/br_webdav_user.lng b/interface/web/sites/lib/lang/br_webdav_user.lng index 4347f8ae3..b135d5e0f 100644 --- a/interface/web/sites/lib/lang/br_webdav_user.lng +++ b/interface/web/sites/lib/lang/br_webdav_user.lng @@ -12,8 +12,8 @@ $wb['username_error_unique'] = 'O nome do usuário deve ser exclusivo.'; $wb['username_error_regex'] = 'O nome do usuário contém caracteres não permitidos.'; $wb['directory_error_empty'] = 'Diretório está em branco.'; $wb['parent_domain_id_error_empty'] = 'Nenhum site selecionado.'; -$wb['dir_dot_error'] = 'Não é permitido \\"..\\" no caminho.'; -$wb['dir_slashdot_error'] = 'Não é permitido \\"./\\" no caminho.'; +$wb['dir_dot_error'] = 'Não é permitido \"..\" no caminho.'; +$wb['dir_slashdot_error'] = 'Não é permitido \"./\" no caminho.'; $wb['generate_password_txt'] = 'Gerar senha'; $wb['repeat_password_txt'] = 'Repetir senha'; $wb['password_mismatch_txt'] = 'A senhas não coincidem.'; diff --git a/interface/web/sites/lib/lang/ca.lng b/interface/web/sites/lib/lang/ca.lng index 9acee9d06..c914ef002 100644 --- a/interface/web/sites/lib/lang/ca.lng +++ b/interface/web/sites/lib/lang/ca.lng @@ -31,5 +31,5 @@ $wb['Available packages'] = 'Packages disponibles'; $wb['Installed packages'] = 'Packages installés'; $wb['Update Packagelist'] = 'Mise à jour de la liste des packages'; $wb['Subdomain (Vhost)'] = 'Sous-domaine (Vhost)'; -$wb['error_proxy_requires_url'] = 'Type de redirection \\"proxy\\" nécessite une URL comme chemin de redirection.'; +$wb['error_proxy_requires_url'] = 'Type de redirection \"proxy\" nécessite une URL comme chemin de redirection.'; ?> diff --git a/interface/web/sites/lib/lang/ca_aps.lng b/interface/web/sites/lib/lang/ca_aps.lng index 062d6ea58..7233c1f0d 100644 --- a/interface/web/sites/lib/lang/ca_aps.lng +++ b/interface/web/sites/lib/lang/ca_aps.lng @@ -38,14 +38,14 @@ $wb['error_inv_main_location'] = 'Le dossier d\'installation choisi est invalide $wb['error_license_agreement'] = 'Avant de continuer, vous devez accepter les conditions d\'utilisation (licence).'; $wb['error_no_database_pw'] = 'Vous n\'avez pas renseigné de mot de passe BDD valide.'; $wb['error_short_database_pw'] = 'Veuillez saisir un mot de passe BDD plus long.'; -$wb['error_no_value_for'] = 'Le champ \\"%s\\" ne peut pas être vide.'; -$wb['error_short_value_for'] = 'Le champ \\"%s\\" nécessite une valeur plus longue.'; -$wb['error_long_value_for'] = 'Le champ \\"%s\\" nécessite une valeur plus courte.'; -$wb['error_inv_value_for'] = 'Vous avez saisi une valeur invalide pour le champ \\"%s\\".'; -$wb['error_inv_email_for'] = 'L\'adresse courriel saisie pour le champ \\"%s\\" est invalide.'; -$wb['error_inv_domain_for'] = 'Le domaine saisi pour le champ \\"%s\\" est invalide.'; -$wb['error_inv_integer_for'] = 'Le nombre saisi pour le champ \\"%s\\" est invalide.'; -$wb['error_inv_float_for'] = 'La décimale saisie pour le champ \\"%s\\" est invalide.'; +$wb['error_no_value_for'] = 'Le champ \"%s\" ne peut pas être vide.'; +$wb['error_short_value_for'] = 'Le champ \"%s\" nécessite une valeur plus longue.'; +$wb['error_long_value_for'] = 'Le champ \"%s\" nécessite une valeur plus courte.'; +$wb['error_inv_value_for'] = 'Vous avez saisi une valeur invalide pour le champ \"%s\".'; +$wb['error_inv_email_for'] = 'L\'adresse courriel saisie pour le champ \"%s\" est invalide.'; +$wb['error_inv_domain_for'] = 'Le domaine saisi pour le champ \"%s\" est invalide.'; +$wb['error_inv_integer_for'] = 'Le nombre saisi pour le champ \"%s\" est invalide.'; +$wb['error_inv_float_for'] = 'La décimale saisie pour le champ \"%s\" est invalide.'; $wb['error_used_location'] = 'Le chemin de destination contient déjà un package d\'installation.'; $wb['installation_task_txt'] = 'Installation prévue'; $wb['installation_error_txt'] = 'Erreur d\'installation'; diff --git a/interface/web/sites/lib/lang/ca_web_childdomain.lng b/interface/web/sites/lib/lang/ca_web_childdomain.lng index 762acfe24..1d838990e 100644 --- a/interface/web/sites/lib/lang/ca_web_childdomain.lng +++ b/interface/web/sites/lib/lang/ca_web_childdomain.lng @@ -43,7 +43,7 @@ $wb['no_redirect_txt'] = 'No redirect'; $wb['no_flag_txt'] = 'No flag'; $wb['proxy_directives_txt'] = 'Proxy Directives'; $wb['available_proxy_directive_snippets_txt'] = 'Available Proxy Directive Snippets:'; -$wb['error_proxy_requires_url'] = 'Redirect Type \\"proxy\\" requires a URL as the redirect path.'; +$wb['error_proxy_requires_url'] = 'Redirect Type \"proxy\" requires a URL as the redirect path.'; $wb['backup_interval_txt'] = 'Backup interval'; $wb['backup_copies_txt'] = 'Number of backup copies'; $wb['ssl_key_txt'] = 'SSL Key'; diff --git a/interface/web/sites/lib/lang/ca_web_subdomain.lng b/interface/web/sites/lib/lang/ca_web_subdomain.lng index 13fd0d66e..ec5980a91 100644 --- a/interface/web/sites/lib/lang/ca_web_subdomain.lng +++ b/interface/web/sites/lib/lang/ca_web_subdomain.lng @@ -42,7 +42,7 @@ $wb['no_flag_txt'] = 'Aucun flag'; $wb['domain_error_wildcard'] = 'Les sous-domaines joker ne sont pas autorisés.'; $wb['proxy_directives_txt'] = 'Directives pour les Proxy'; $wb['available_proxy_directive_snippets_txt'] = 'Directives pour les Proxy Snippets disponibles :'; -$wb['error_proxy_requires_url'] = 'Les redirections de type \\"proxy\\" nécessitent une URL comme chemin de redirection.'; +$wb['error_proxy_requires_url'] = 'Les redirections de type \"proxy\" nécessitent une URL comme chemin de redirection.'; $wb['http_port_txt'] = 'HTTP Port'; $wb['https_port_txt'] = 'HTTPS Port'; $wb['http_port_error_regex'] = 'HTTP Port invalid.'; diff --git a/interface/web/sites/lib/lang/cz.lng b/interface/web/sites/lib/lang/cz.lng index 4c16438e3..2e4276c81 100644 --- a/interface/web/sites/lib/lang/cz.lng +++ b/interface/web/sites/lib/lang/cz.lng @@ -31,5 +31,5 @@ $wb['Available packages'] = 'Dostupné balíčky'; $wb['Installed packages'] = 'Nainstalované balíčky'; $wb['Update Packagelist'] = 'Aktualizace seznamu balíčků'; $wb['Subdomain (Vhost)'] = 'Subdoména (Vhost)'; -$wb['error_proxy_requires_url'] = 'Redirect Type \\"proxy\\" requires a URL as the redirect path.'; +$wb['error_proxy_requires_url'] = 'Redirect Type \"proxy\" requires a URL as the redirect path.'; ?> diff --git a/interface/web/sites/lib/lang/cz_aps.lng b/interface/web/sites/lib/lang/cz_aps.lng index adf6ccf58..bb8015951 100644 --- a/interface/web/sites/lib/lang/cz_aps.lng +++ b/interface/web/sites/lib/lang/cz_aps.lng @@ -38,14 +38,14 @@ $wb['error_inv_main_location'] = 'The given install location folder is invalid.' $wb['error_license_agreement'] = 'In order to continue you have to accept the license agreement.'; $wb['error_no_database_pw'] = 'You have provided no valid database password.'; $wb['error_short_database_pw'] = 'Please choose a longer database password.'; -$wb['error_no_value_for'] = 'The field \\"%s\\" must not be empty.'; -$wb['error_short_value_for'] = 'The field \\"%s\\" requires a longer input value.'; -$wb['error_long_value_for'] = 'The field \\"%s\\" requires a shorter input value.'; -$wb['error_inv_value_for'] = 'You have entered an invalid value for the field \\"%s\\".'; -$wb['error_inv_email_for'] = 'You have entered an invalid mail address for the field \\"%s\\".'; -$wb['error_inv_domain_for'] = 'You have entered an invalid domain for the field \\"%s\\".'; -$wb['error_inv_integer_for'] = 'You have entered an invalid number for the field \\"%s\\".'; -$wb['error_inv_float_for'] = 'You have entered an invalid floating point number for the field \\"%s\\".'; +$wb['error_no_value_for'] = 'The field \"%s\" must not be empty.'; +$wb['error_short_value_for'] = 'The field \"%s\" requires a longer input value.'; +$wb['error_long_value_for'] = 'The field \"%s\" requires a shorter input value.'; +$wb['error_inv_value_for'] = 'You have entered an invalid value for the field \"%s\".'; +$wb['error_inv_email_for'] = 'You have entered an invalid mail address for the field \"%s\".'; +$wb['error_inv_domain_for'] = 'You have entered an invalid domain for the field \"%s\".'; +$wb['error_inv_integer_for'] = 'You have entered an invalid number for the field \"%s\".'; +$wb['error_inv_float_for'] = 'You have entered an invalid floating point number for the field \"%s\".'; $wb['error_used_location'] = 'The installation path already contains a package installation.'; $wb['installation_task_txt'] = 'Instalace plánované'; $wb['installation_error_txt'] = 'Chyba instalace'; diff --git a/interface/web/sites/lib/lang/cz_web_childdomain.lng b/interface/web/sites/lib/lang/cz_web_childdomain.lng index 5a22de61d..e39dfc12e 100644 --- a/interface/web/sites/lib/lang/cz_web_childdomain.lng +++ b/interface/web/sites/lib/lang/cz_web_childdomain.lng @@ -49,7 +49,7 @@ $wb['no_flag_txt'] = 'Žádný příznak'; $wb['domain_error_wildcard'] = 'Wildcard subdomains are not allowed.'; $wb['proxy_directives_txt'] = 'Proxy Directives'; $wb['available_proxy_directive_snippets_txt'] = 'Available Proxy Directive Snippets:'; -$wb['error_proxy_requires_url'] = 'Redirect Type \\"proxy\\" requires a URL as the redirect path.'; +$wb['error_proxy_requires_url'] = 'Redirect Type \"proxy\" requires a URL as the redirect path.'; $wb['ipv6_address_txt'] = 'IPv6 adresa'; $wb['domain_error_autosub'] = 'There is already a subdomain with these settings.'; $wb['hd_quota_error_empty'] = 'Harddisk quota is 0 or empty.'; diff --git a/interface/web/sites/lib/lang/cz_web_subdomain.lng b/interface/web/sites/lib/lang/cz_web_subdomain.lng index cd301db14..986f76acc 100644 --- a/interface/web/sites/lib/lang/cz_web_subdomain.lng +++ b/interface/web/sites/lib/lang/cz_web_subdomain.lng @@ -42,7 +42,7 @@ $wb['no_flag_txt'] = 'Žádný příznak'; $wb['domain_error_wildcard'] = 'Wildcard subdomains are not allowed.'; $wb['proxy_directives_txt'] = 'Proxy Directives'; $wb['available_proxy_directive_snippets_txt'] = 'Available Proxy Directive Snippets:'; -$wb['error_proxy_requires_url'] = 'Redirect Type \\"proxy\\" requires a URL as the redirect path.'; +$wb['error_proxy_requires_url'] = 'Redirect Type \"proxy\" requires a URL as the redirect path.'; $wb['http_port_txt'] = 'HTTP Port'; $wb['https_port_txt'] = 'HTTPS Port'; $wb['http_port_error_regex'] = 'HTTP Port invalid.'; diff --git a/interface/web/sites/lib/lang/de_web_childdomain.lng b/interface/web/sites/lib/lang/de_web_childdomain.lng index 05b1f1d51..561e8de96 100644 --- a/interface/web/sites/lib/lang/de_web_childdomain.lng +++ b/interface/web/sites/lib/lang/de_web_childdomain.lng @@ -42,7 +42,7 @@ $wb['no_redirect_txt'] = 'Kein Redirect'; $wb['no_flag_txt'] = 'Kein Flag'; $wb['proxy_directives_txt'] = 'Proxy-Direktiven'; $wb['available_proxy_directive_snippets_txt'] = 'Verfügbare Proxy Direktiven Schnipsel:'; -$wb['error_proxy_requires_url'] = 'Weiterleitungstyp \\"proxy\\" erfordert eine URL als Weiterleitungspfad.'; +$wb['error_proxy_requires_url'] = 'Weiterleitungstyp \"proxy\" erfordert eine URL als Weiterleitungspfad.'; $wb['backup_interval_txt'] = 'Backup-Intervall'; $wb['backup_copies_txt'] = 'Anzahl der Backups'; $wb['ssl_key_txt'] = 'SSL-Schlüssel'; diff --git a/interface/web/sites/lib/lang/de_web_subdomain.lng b/interface/web/sites/lib/lang/de_web_subdomain.lng index 586c90adc..a88918b09 100644 --- a/interface/web/sites/lib/lang/de_web_subdomain.lng +++ b/interface/web/sites/lib/lang/de_web_subdomain.lng @@ -42,7 +42,7 @@ $wb['no_redirect_txt'] = 'Kein Redirect'; $wb['no_flag_txt'] = 'Kein Flag'; $wb['proxy_directives_txt'] = 'Proxy-Direktiven'; $wb['available_proxy_directive_snippets_txt'] = 'Verfügbare Proxy Direktiven Schnipsel:'; -$wb['error_proxy_requires_url'] = 'Weiterleitungstyp \\"proxy\\" erfordert eine URL als Weiterleitungspfad.'; +$wb['error_proxy_requires_url'] = 'Weiterleitungstyp \"proxy\" erfordert eine URL als Weiterleitungspfad.'; $wb['http_port_txt'] = 'HTTP Port'; $wb['https_port_txt'] = 'HTTPS Port'; $wb['http_port_error_regex'] = 'HTTP Port invalid.'; diff --git a/interface/web/sites/lib/lang/dk.lng b/interface/web/sites/lib/lang/dk.lng index 39974fef5..a99760a66 100644 --- a/interface/web/sites/lib/lang/dk.lng +++ b/interface/web/sites/lib/lang/dk.lng @@ -31,5 +31,5 @@ $wb['Available packages'] = 'Tilgængelig pakker'; $wb['Installed packages'] = 'Installeret pakker'; $wb['Update Packagelist'] = 'Opdater Pakkeliste'; $wb['Subdomain (Vhost)'] = 'Sub-domæne (Vhost)'; -$wb['error_proxy_requires_url'] = 'Omdiriger Type \\"proxy\\" requires a URL as the redirect path.'; +$wb['error_proxy_requires_url'] = 'Omdiriger Type \"proxy\" requires a URL as the redirect path.'; ?> diff --git a/interface/web/sites/lib/lang/dk_aps.lng b/interface/web/sites/lib/lang/dk_aps.lng index ca006e2eb..c3f2983cf 100644 --- a/interface/web/sites/lib/lang/dk_aps.lng +++ b/interface/web/sites/lib/lang/dk_aps.lng @@ -40,14 +40,14 @@ $wb['error_inv_main_location'] = 'Den oplyste installations mappe er ugyldig.'; $wb['error_license_agreement'] = 'For at fortsætte skal du acceptere licensaftalen.'; $wb['error_no_database_pw'] = 'Du har ikke oplyst en database adgangskode.'; $wb['error_short_database_pw'] = 'Vælg en længer database adgangskode.'; -$wb['error_no_value_for'] = 'Feltet \\"%s\\" må ikke være tomt.'; -$wb['error_short_value_for'] = 'Feltet \\"%s\\" kræver en længere indtastnings værdi.'; -$wb['error_long_value_for'] = 'Feltet \\"%s\\" kræver en kortere indtastnings værdi.'; -$wb['error_inv_value_for'] = 'Du har indtastet en ugyldig værdi for feltet \\"%s\\".'; -$wb['error_inv_email_for'] = 'Du har indtastet en ugyldig mail adresse for feltet \\"%s\\".'; -$wb['error_inv_domain_for'] = 'Du har indtastet et ugyldigt domæne for feltet \\"%s\\".'; -$wb['error_inv_integer_for'] = 'Du har indtastet et ugyldigt tal for feltet \\"%s\\".'; -$wb['error_inv_float_for'] = 'Du har indtastet et ugyldigt floating point tal for feltet \\"%s\\".'; +$wb['error_no_value_for'] = 'Feltet \"%s\" må ikke være tomt.'; +$wb['error_short_value_for'] = 'Feltet \"%s\" kræver en længere indtastnings værdi.'; +$wb['error_long_value_for'] = 'Feltet \"%s\" kræver en kortere indtastnings værdi.'; +$wb['error_inv_value_for'] = 'Du har indtastet en ugyldig værdi for feltet \"%s\".'; +$wb['error_inv_email_for'] = 'Du har indtastet en ugyldig mail adresse for feltet \"%s\".'; +$wb['error_inv_domain_for'] = 'Du har indtastet et ugyldigt domæne for feltet \"%s\".'; +$wb['error_inv_integer_for'] = 'Du har indtastet et ugyldigt tal for feltet \"%s\".'; +$wb['error_inv_float_for'] = 'Du har indtastet et ugyldigt floating point tal for feltet \"%s\".'; $wb['error_used_location'] = 'Installations stien indeholder allerede en pakke installation.'; $wb['installation_task_txt'] = 'Installation planlagt'; $wb['installation_error_txt'] = 'Installations fejl'; diff --git a/interface/web/sites/lib/lang/dk_web_childdomain.lng b/interface/web/sites/lib/lang/dk_web_childdomain.lng index 762acfe24..1d838990e 100644 --- a/interface/web/sites/lib/lang/dk_web_childdomain.lng +++ b/interface/web/sites/lib/lang/dk_web_childdomain.lng @@ -43,7 +43,7 @@ $wb['no_redirect_txt'] = 'No redirect'; $wb['no_flag_txt'] = 'No flag'; $wb['proxy_directives_txt'] = 'Proxy Directives'; $wb['available_proxy_directive_snippets_txt'] = 'Available Proxy Directive Snippets:'; -$wb['error_proxy_requires_url'] = 'Redirect Type \\"proxy\\" requires a URL as the redirect path.'; +$wb['error_proxy_requires_url'] = 'Redirect Type \"proxy\" requires a URL as the redirect path.'; $wb['backup_interval_txt'] = 'Backup interval'; $wb['backup_copies_txt'] = 'Number of backup copies'; $wb['ssl_key_txt'] = 'SSL Key'; diff --git a/interface/web/sites/lib/lang/dk_web_subdomain.lng b/interface/web/sites/lib/lang/dk_web_subdomain.lng index c14a34726..4fffd5936 100644 --- a/interface/web/sites/lib/lang/dk_web_subdomain.lng +++ b/interface/web/sites/lib/lang/dk_web_subdomain.lng @@ -42,7 +42,7 @@ $wb['no_redirect_txt'] = 'Ingen redirect'; $wb['no_flag_txt'] = 'Ingen flag'; $wb['proxy_directives_txt'] = 'Proxy Directives'; $wb['available_proxy_directive_snippets_txt'] = 'Tilgængelig Proxy Direktiv Kodestykker:'; -$wb['error_proxy_requires_url'] = 'Omdiriger Type \\"proxy\\" requires a URL as the redirect path.'; +$wb['error_proxy_requires_url'] = 'Omdiriger Type \"proxy\" requires a URL as the redirect path.'; $wb['http_port_txt'] = 'HTTP Port'; $wb['https_port_txt'] = 'HTTPS Port'; $wb['http_port_error_regex'] = 'HTTP Port invalid.'; diff --git a/interface/web/sites/lib/lang/el.lng b/interface/web/sites/lib/lang/el.lng index 2d726140f..19bfc2734 100644 --- a/interface/web/sites/lib/lang/el.lng +++ b/interface/web/sites/lib/lang/el.lng @@ -31,5 +31,5 @@ $wb['Available packages'] = 'Available packages'; $wb['Installed packages'] = 'Installed packages'; $wb['Update Packagelist'] = 'Update Packagelist'; $wb['Subdomain (Vhost)'] = 'Subdomain (Vhost)'; -$wb['error_proxy_requires_url'] = 'Redirect Type \\"proxy\\" requires a URL as the redirect path.'; +$wb['error_proxy_requires_url'] = 'Redirect Type \"proxy\" requires a URL as the redirect path.'; ?> diff --git a/interface/web/sites/lib/lang/el_aps.lng b/interface/web/sites/lib/lang/el_aps.lng index 0209737f6..73cb49f10 100644 --- a/interface/web/sites/lib/lang/el_aps.lng +++ b/interface/web/sites/lib/lang/el_aps.lng @@ -38,14 +38,14 @@ $wb['error_inv_main_location'] = 'The given install location folder is invalid.' $wb['error_license_agreement'] = 'In order to continue you have to accept the license agreement.'; $wb['error_no_database_pw'] = 'You have provided no valid database password.'; $wb['error_short_database_pw'] = 'Please choose a longer database password.'; -$wb['error_no_value_for'] = 'The field \\"%s\\" must not be empty.'; -$wb['error_short_value_for'] = 'The field \\"%s\\" requires a longer input value.'; -$wb['error_long_value_for'] = 'The field \\"%s\\" requires a shorter input value.'; -$wb['error_inv_value_for'] = 'You have entered an invalid value for the field \\"%s\\".'; -$wb['error_inv_email_for'] = 'You have entered an invalid mail address for the field \\"%s\\".'; -$wb['error_inv_domain_for'] = 'You have entered an invalid domain for the field \\"%s\\".'; -$wb['error_inv_integer_for'] = 'You have entered an invalid number for the field \\"%s\\".'; -$wb['error_inv_float_for'] = 'You have entered an invalid floating point number for the field \\"%s\\".'; +$wb['error_no_value_for'] = 'The field \"%s\" must not be empty.'; +$wb['error_short_value_for'] = 'The field \"%s\" requires a longer input value.'; +$wb['error_long_value_for'] = 'The field \"%s\" requires a shorter input value.'; +$wb['error_inv_value_for'] = 'You have entered an invalid value for the field \"%s\".'; +$wb['error_inv_email_for'] = 'You have entered an invalid mail address for the field \"%s\".'; +$wb['error_inv_domain_for'] = 'You have entered an invalid domain for the field \"%s\".'; +$wb['error_inv_integer_for'] = 'You have entered an invalid number for the field \"%s\".'; +$wb['error_inv_float_for'] = 'You have entered an invalid floating point number for the field \"%s\".'; $wb['error_used_location'] = 'The installation path already contains a package installation.'; $wb['installation_task_txt'] = 'Install planned'; $wb['installation_error_txt'] = 'Install error'; diff --git a/interface/web/sites/lib/lang/el_web_childdomain.lng b/interface/web/sites/lib/lang/el_web_childdomain.lng index 3c5cb7a93..a1cead28e 100644 --- a/interface/web/sites/lib/lang/el_web_childdomain.lng +++ b/interface/web/sites/lib/lang/el_web_childdomain.lng @@ -45,7 +45,7 @@ $wb['no_flag_txt'] = 'Χωρίς Σημαία'; $wb['domain_error_wildcard'] = 'Wildcard subdomains δεν επιτρέπονται.'; $wb['proxy_directives_txt'] = 'Proxy Directives'; $wb['available_proxy_directive_snippets_txt'] = 'Διαθέσιμα Proxy Directive Snippets:'; -$wb['error_proxy_requires_url'] = 'Ο τύπος ανακατεύθυνσης \\"proxy\\" απαιτεί ένα URL ως μονοπάτι ανακατεύθυνσης.'; +$wb['error_proxy_requires_url'] = 'Ο τύπος ανακατεύθυνσης \"proxy\" απαιτεί ένα URL ως μονοπάτι ανακατεύθυνσης.'; $wb['ssl_domain_txt'] = 'SSL Domain'; $wb['web_folder_error_regex'] = 'Εισάγατε μη έγκυρο φάκελο. Μην εισάγετε την κάθετο.'; $wb['ipv6_address_txt'] = 'Διεύθυνση IPv6'; diff --git a/interface/web/sites/lib/lang/el_web_subdomain.lng b/interface/web/sites/lib/lang/el_web_subdomain.lng index 606137bc8..b3f8e1312 100644 --- a/interface/web/sites/lib/lang/el_web_subdomain.lng +++ b/interface/web/sites/lib/lang/el_web_subdomain.lng @@ -42,7 +42,7 @@ $wb['no_flag_txt'] = 'Χωρίς Σημαία'; $wb['domain_error_wildcard'] = 'Wildcard subdomains are not allowed.'; $wb['proxy_directives_txt'] = 'Proxy Directives'; $wb['available_proxy_directive_snippets_txt'] = 'Available Proxy Directive Snippets:'; -$wb['error_proxy_requires_url'] = 'Redirect Type \\"proxy\\" requires a URL as the redirect path.'; +$wb['error_proxy_requires_url'] = 'Redirect Type \"proxy\" requires a URL as the redirect path.'; $wb['http_port_txt'] = 'HTTP Port'; $wb['https_port_txt'] = 'HTTPS Port'; $wb['http_port_error_regex'] = 'HTTP Port invalid.'; diff --git a/interface/web/sites/lib/lang/es.lng b/interface/web/sites/lib/lang/es.lng index 7d128081f..78cfa3a60 100755 --- a/interface/web/sites/lib/lang/es.lng +++ b/interface/web/sites/lib/lang/es.lng @@ -8,7 +8,7 @@ $wb['Cron'] = 'Trabajos programados'; $wb['Database User'] = 'Usuarios de bases de datos'; $wb['Database'] = 'Bases de datos'; $wb['Domain'] = 'Dominio'; -$wb['error_proxy_requires_url'] = 'La redirección del tipo \\"proxy\\" requiere de una URL como ruta de redirección.'; +$wb['error_proxy_requires_url'] = 'La redirección del tipo \"proxy\" requiere de una URL como ruta de redirección.'; $wb['Folder users'] = 'Usuarios de carpetas protegidas'; $wb['Folder'] = 'Carpetas protegidas'; $wb['FTP'] = 'FTP'; diff --git a/interface/web/sites/lib/lang/es_aps.lng b/interface/web/sites/lib/lang/es_aps.lng index 3780b32ed..afecc225f 100755 --- a/interface/web/sites/lib/lang/es_aps.lng +++ b/interface/web/sites/lib/lang/es_aps.lng @@ -12,20 +12,20 @@ $wb['config_script_txt'] = 'Archivo de configuración'; $wb['database_txt'] = 'Base de datos'; $wb['description_txt'] = 'Descripción'; $wb['details_txt'] = 'Detalles'; -$wb['error_inv_domain_for'] = 'Ha ingresado un dominio inválido en el campo \\"%s\\".'; -$wb['error_inv_email_for'] = 'Ha ingresado una dirección de correo inválida en el campo \\"%s\\".'; -$wb['error_inv_float_for'] = 'Ha introducido un número de punto flotante no válido para el campo \\"%s\\".'; -$wb['error_inv_integer_for'] = 'Ha ingresado un número inválido en el campo \\"%s\\".'; +$wb['error_inv_domain_for'] = 'Ha ingresado un dominio inválido en el campo \"%s\".'; +$wb['error_inv_email_for'] = 'Ha ingresado una dirección de correo inválida en el campo \"%s\".'; +$wb['error_inv_float_for'] = 'Ha introducido un número de punto flotante no válido para el campo \"%s\".'; +$wb['error_inv_integer_for'] = 'Ha ingresado un número inválido en el campo \"%s\".'; $wb['error_inv_main_location'] = 'La ubicación de la carpeta de instalación proporcionada es inválida.'; -$wb['error_inv_value_for'] = 'Ha ingresado un valor inválido en el campo \\"%s\\".'; +$wb['error_inv_value_for'] = 'Ha ingresado un valor inválido en el campo \"%s\".'; $wb['error_license_agreement'] = 'Para poder continuar debe aceptar el acuerdo de licencia.'; -$wb['error_long_value_for'] = 'El campo \\"%s\\" requiere una entrada más corta.'; +$wb['error_long_value_for'] = 'El campo \"%s\" requiere una entrada más corta.'; $wb['error_main_domain'] = 'El dominio de la ruta de la instalación es inválido.'; $wb['error_no_database_pw'] = 'No ha proporcionado una contraseña válida para la base de datos.'; $wb['error_no_main_location'] = 'Ha proporcionado una ruta de instalación inválida.'; -$wb['error_no_value_for'] = 'El campo \\"%s\\" no puede estar vacío.'; +$wb['error_no_value_for'] = 'El campo \"%s\" no puede estar vacío.'; $wb['error_short_database_pw'] = 'Por favor seleccione un contraseña más larga para la base de datos.'; -$wb['error_short_value_for'] = 'El campo \\"%s\\" requiere una entrada más larga.'; +$wb['error_short_value_for'] = 'El campo \"%s\" requiere una entrada más larga.'; $wb['error_used_location'] = 'La ruta de instalación ya contiene un paquete instalado.'; $wb['homepage_txt'] = 'Página de inicio'; $wb['install_language_txt'] = 'Idioma de la interfaz'; diff --git a/interface/web/sites/lib/lang/es_web_childdomain.lng b/interface/web/sites/lib/lang/es_web_childdomain.lng index 25843a0e2..839110669 100644 --- a/interface/web/sites/lib/lang/es_web_childdomain.lng +++ b/interface/web/sites/lib/lang/es_web_childdomain.lng @@ -42,7 +42,7 @@ $wb['no_flag_txt'] = 'Sin flag'; $wb['domain_error_wildcard'] = 'No se permiten subdominios comodín.'; $wb['proxy_directives_txt'] = 'Directivas de Proxy'; $wb['available_proxy_directive_snippets_txt'] = 'Fragmentos de directivas de proxy disponibles:'; -$wb['error_proxy_requires_url'] = 'Tipo de redirección \\"proxy\\" necesita una URL como ruta de redirección.'; +$wb['error_proxy_requires_url'] = 'Tipo de redirección \"proxy\" necesita una URL como ruta de redirección.'; $wb['backup_interval_txt'] = 'Intervalo de copia de seguridad'; $wb['backup_copies_txt'] = 'Número de copias de seguridad'; $wb['ssl_key_txt'] = 'Clave SSL'; @@ -104,7 +104,7 @@ $wb['pm_process_idle_timeout_txt'] = 'PHP-FPM pm.process_idle_timeout'; $wb['pm_max_requests_txt'] = 'PHP-FPM pm.max_requests'; $wb['pm_process_idle_timeout_error_regex'] = 'PHP-FPM pm.process_idle_timeout debe ser un valor entero positivo.'; $wb['pm_max_requests_error_regex'] = 'PHP-FPM pm.max_requests debe ser un valor entero >= 0.'; -$wb['pm_ondemand_hint_txt'] = 'Por favor ten en cuenta que debes tener una versión de PHP >= 5.3.9 para poder usar el gestor de procesos \\"ondemand\\". Si seleccionas \\"ondemand\\" para una versión de PHP anterior, ¡PHP dejará de funcionar!'; +$wb['pm_ondemand_hint_txt'] = 'Por favor ten en cuenta que debes tener una versión de PHP >= 5.3.9 para poder usar el gestor de procesos \"ondemand\". Si seleccionas \"ondemand\" para una versión de PHP anterior, ¡PHP dejará de funcionar!'; $wb['generate_password_txt'] = 'Generar contraseña'; $wb['repeat_password_txt'] = 'Repetir contraseña'; $wb['password_mismatch_txt'] = 'Las contraseñas no coinciden.'; diff --git a/interface/web/sites/lib/lang/es_web_subdomain.lng b/interface/web/sites/lib/lang/es_web_subdomain.lng index 2221a749c..8bae76742 100644 --- a/interface/web/sites/lib/lang/es_web_subdomain.lng +++ b/interface/web/sites/lib/lang/es_web_subdomain.lng @@ -42,7 +42,7 @@ $wb['no_flag_txt'] = 'No flag'; $wb['domain_error_wildcard'] = 'Wildcard subdomains are not allowed.'; $wb['proxy_directives_txt'] = 'Proxy Directives'; $wb['available_proxy_directive_snippets_txt'] = 'Available Proxy Directive Snippets:'; -$wb['error_proxy_requires_url'] = 'Redirect Type \\"proxy\\" requires a URL as the redirect path.'; +$wb['error_proxy_requires_url'] = 'Redirect Type \"proxy\" requires a URL as the redirect path.'; $wb['http_port_txt'] = 'HTTP Port'; $wb['https_port_txt'] = 'HTTPS Port'; $wb['http_port_error_regex'] = 'HTTP Port invalid.'; diff --git a/interface/web/sites/lib/lang/es_web_vhost_domain.lng b/interface/web/sites/lib/lang/es_web_vhost_domain.lng index f98c02db1..4a2b17cab 100644 --- a/interface/web/sites/lib/lang/es_web_vhost_domain.lng +++ b/interface/web/sites/lib/lang/es_web_vhost_domain.lng @@ -102,7 +102,7 @@ $wb['pm_process_idle_timeout_txt'] = 'PHP-FPM pm.process_idle_timeout'; $wb['pm_max_requests_txt'] = 'PHP-FPM pm.max_requests'; $wb['pm_process_idle_timeout_error_regex'] = 'PHP-FPM pm.process_idle_timeout debe ser un valor entero positivo.'; $wb['pm_max_requests_error_regex'] = 'PHP-FPM pm.max_requests debe ser un valor entero >= 0.'; -$wb['pm_ondemand_hint_txt'] = 'Por favor ten en cuenta que debes tener una versión de PHP >= 5.3.9 para poder usar el gestor de procesos \\"ondemand\\". Si seleccionas \\"ondemand\\" para una versión de PHP anterior, ¡PHP dejará de funcionar!'; +$wb['pm_ondemand_hint_txt'] = 'Por favor ten en cuenta que debes tener una versión de PHP >= 5.3.9 para poder usar el gestor de procesos \"ondemand\". Si seleccionas \"ondemand\" para una versión de PHP anterior, ¡PHP dejará de funcionar!'; $wb['generate_password_txt'] = 'Generar contraseña'; $wb['repeat_password_txt'] = 'Repetir contraseña'; $wb['password_mismatch_txt'] = 'Las contraseñas no coinciden.'; diff --git a/interface/web/sites/lib/lang/fi.lng b/interface/web/sites/lib/lang/fi.lng index ebf94bc19..5adab5777 100755 --- a/interface/web/sites/lib/lang/fi.lng +++ b/interface/web/sites/lib/lang/fi.lng @@ -31,5 +31,5 @@ $wb['Available packages'] = 'Available packages'; $wb['Installed packages'] = 'Installed packages'; $wb['Update Packagelist'] = 'Update Packagelist'; $wb['Subdomain (Vhost)'] = 'Subdomain (Vhost)'; -$wb['error_proxy_requires_url'] = 'Redirect Type \\"proxy\\" requires a URL as the redirect path.'; +$wb['error_proxy_requires_url'] = 'Redirect Type \"proxy\" requires a URL as the redirect path.'; ?> diff --git a/interface/web/sites/lib/lang/fi_aps.lng b/interface/web/sites/lib/lang/fi_aps.lng index d78701f27..cc8dc8358 100644 --- a/interface/web/sites/lib/lang/fi_aps.lng +++ b/interface/web/sites/lib/lang/fi_aps.lng @@ -38,14 +38,14 @@ $wb['error_inv_main_location'] = 'The given install location folder is invalid.' $wb['error_license_agreement'] = 'In order to continue you have to accept the license agreement.'; $wb['error_no_database_pw'] = 'You have provided no valid database password.'; $wb['error_short_database_pw'] = 'Please choose a longer database password.'; -$wb['error_no_value_for'] = 'The field \\"%s\\" must not be empty.'; -$wb['error_short_value_for'] = 'The field \\"%s\\" requires a longer input value.'; -$wb['error_long_value_for'] = 'The field \\"%s\\" requires a shorter input value.'; -$wb['error_inv_value_for'] = 'You have entered an invalid value for the field \\"%s\\".'; -$wb['error_inv_email_for'] = 'You have entered an invalid mail address for the field \\"%s\\".'; -$wb['error_inv_domain_for'] = 'You have entered an invalid domain for the field \\"%s\\".'; -$wb['error_inv_integer_for'] = 'You have entered an invalid number for the field \\"%s\\".'; -$wb['error_inv_float_for'] = 'You have entered an invalid floating point number for the field \\"%s\\".'; +$wb['error_no_value_for'] = 'The field \"%s\" must not be empty.'; +$wb['error_short_value_for'] = 'The field \"%s\" requires a longer input value.'; +$wb['error_long_value_for'] = 'The field \"%s\" requires a shorter input value.'; +$wb['error_inv_value_for'] = 'You have entered an invalid value for the field \"%s\".'; +$wb['error_inv_email_for'] = 'You have entered an invalid mail address for the field \"%s\".'; +$wb['error_inv_domain_for'] = 'You have entered an invalid domain for the field \"%s\".'; +$wb['error_inv_integer_for'] = 'You have entered an invalid number for the field \"%s\".'; +$wb['error_inv_float_for'] = 'You have entered an invalid floating point number for the field \"%s\".'; $wb['error_used_location'] = 'The installation path already contains a package installation.'; $wb['installation_task_txt'] = 'Install planned'; $wb['installation_error_txt'] = 'Install error'; diff --git a/interface/web/sites/lib/lang/fi_web_childdomain.lng b/interface/web/sites/lib/lang/fi_web_childdomain.lng index 5105ba3f2..98c41088a 100755 --- a/interface/web/sites/lib/lang/fi_web_childdomain.lng +++ b/interface/web/sites/lib/lang/fi_web_childdomain.lng @@ -42,7 +42,7 @@ $wb['no_flag_txt'] = 'No flag'; $wb['domain_error_wildcard'] = 'Wildcard subdomains are not allowed.'; $wb['proxy_directives_txt'] = 'Proxy Directives'; $wb['available_proxy_directive_snippets_txt'] = 'Available Proxy Directive Snippets:'; -$wb['error_proxy_requires_url'] = 'Redirect Type \\"proxy\\" requires a URL as the redirect path.'; +$wb['error_proxy_requires_url'] = 'Redirect Type \"proxy\" requires a URL as the redirect path.'; $wb['backup_interval_txt'] = 'Backup interval'; $wb['backup_copies_txt'] = 'Number of backup copies'; $wb['ssl_key_txt'] = 'SSL Key'; diff --git a/interface/web/sites/lib/lang/fi_web_subdomain.lng b/interface/web/sites/lib/lang/fi_web_subdomain.lng index 7fe710390..7500fb7a6 100644 --- a/interface/web/sites/lib/lang/fi_web_subdomain.lng +++ b/interface/web/sites/lib/lang/fi_web_subdomain.lng @@ -42,7 +42,7 @@ $wb['no_flag_txt'] = 'No flag'; $wb['domain_error_wildcard'] = 'Wildcard subdomains are not allowed.'; $wb['proxy_directives_txt'] = 'Proxy Directives'; $wb['available_proxy_directive_snippets_txt'] = 'Available Proxy Directive Snippets:'; -$wb['error_proxy_requires_url'] = 'Redirect Type \\"proxy\\" requires a URL as the redirect path.'; +$wb['error_proxy_requires_url'] = 'Redirect Type \"proxy\" requires a URL as the redirect path.'; $wb['http_port_txt'] = 'HTTP Port'; $wb['https_port_txt'] = 'HTTPS Port'; $wb['http_port_error_regex'] = 'HTTP Port invalid.'; diff --git a/interface/web/sites/lib/lang/fr.lng b/interface/web/sites/lib/lang/fr.lng index 9acee9d06..c914ef002 100644 --- a/interface/web/sites/lib/lang/fr.lng +++ b/interface/web/sites/lib/lang/fr.lng @@ -31,5 +31,5 @@ $wb['Available packages'] = 'Packages disponibles'; $wb['Installed packages'] = 'Packages installés'; $wb['Update Packagelist'] = 'Mise à jour de la liste des packages'; $wb['Subdomain (Vhost)'] = 'Sous-domaine (Vhost)'; -$wb['error_proxy_requires_url'] = 'Type de redirection \\"proxy\\" nécessite une URL comme chemin de redirection.'; +$wb['error_proxy_requires_url'] = 'Type de redirection \"proxy\" nécessite une URL comme chemin de redirection.'; ?> diff --git a/interface/web/sites/lib/lang/fr_aps.lng b/interface/web/sites/lib/lang/fr_aps.lng index 6beef9939..0f067e78b 100644 --- a/interface/web/sites/lib/lang/fr_aps.lng +++ b/interface/web/sites/lib/lang/fr_aps.lng @@ -38,14 +38,14 @@ $wb['error_inv_main_location'] = 'Le dossier d’installation choisi est invalid $wb['error_license_agreement'] = 'Avant de continuer, vous devez accepter les conditions d’utilisation (licence).'; $wb['error_no_database_pw'] = 'Vous n’avez pas renseigné de mot de passe BDD valide.'; $wb['error_short_database_pw'] = 'Veuillez saisir un mot de passe BDD plus long.'; -$wb['error_no_value_for'] = 'Le champ \\"%s\\" ne peut pas être vide.'; -$wb['error_short_value_for'] = 'Le champ \\"%s\\" nécessite une valeur plus longue.'; -$wb['error_long_value_for'] = 'Le champ \\"%s\\" nécessite une valeur plus courte.'; -$wb['error_inv_value_for'] = 'Vous avez saisi une valeur invalide pour le champ \\"%s\\".'; -$wb['error_inv_email_for'] = 'L’adresse e-mail saisie pour le champ \\"%s\\" est invalide.'; -$wb['error_inv_domain_for'] = 'Le domaine saisi pour le champ \\"%s\\" est invalide.'; -$wb['error_inv_integer_for'] = 'Le nombre saisi pour le champ \\"%s\\" est invalide.'; -$wb['error_inv_float_for'] = 'La décimale saisie pour le champ \\"%s\\" est invalide.'; +$wb['error_no_value_for'] = 'Le champ \"%s\" ne peut pas être vide.'; +$wb['error_short_value_for'] = 'Le champ \"%s\" nécessite une valeur plus longue.'; +$wb['error_long_value_for'] = 'Le champ \"%s\" nécessite une valeur plus courte.'; +$wb['error_inv_value_for'] = 'Vous avez saisi une valeur invalide pour le champ \"%s\".'; +$wb['error_inv_email_for'] = 'L’adresse e-mail saisie pour le champ \"%s\" est invalide.'; +$wb['error_inv_domain_for'] = 'Le domaine saisi pour le champ \"%s\" est invalide.'; +$wb['error_inv_integer_for'] = 'Le nombre saisi pour le champ \"%s\" est invalide.'; +$wb['error_inv_float_for'] = 'La décimale saisie pour le champ \"%s\" est invalide.'; $wb['error_used_location'] = 'Le chemin de destination contient déjà un package d’installation.'; $wb['installation_task_txt'] = 'Installation prévue'; $wb['installation_error_txt'] = 'Erreur d’installation'; diff --git a/interface/web/sites/lib/lang/fr_web_childdomain.lng b/interface/web/sites/lib/lang/fr_web_childdomain.lng index 1be206e12..f33ca58f0 100644 --- a/interface/web/sites/lib/lang/fr_web_childdomain.lng +++ b/interface/web/sites/lib/lang/fr_web_childdomain.lng @@ -42,7 +42,7 @@ $wb['no_flag_txt'] = 'Aucun flag'; $wb['domain_error_wildcard'] = 'Wildcard subdomains are not allowed.'; $wb['proxy_directives_txt'] = 'Proxy Directives'; $wb['available_proxy_directive_snippets_txt'] = 'Available Proxy Directive Snippets:'; -$wb['error_proxy_requires_url'] = 'Redirect Type \\"proxy\\" requires a URL as the redirect path.'; +$wb['error_proxy_requires_url'] = 'Redirect Type \"proxy\" requires a URL as the redirect path.'; $wb['backup_interval_txt'] = 'Backup interval'; $wb['backup_copies_txt'] = 'Number of backup copies'; $wb['ssl_key_txt'] = 'SSL Key'; diff --git a/interface/web/sites/lib/lang/fr_web_subdomain.lng b/interface/web/sites/lib/lang/fr_web_subdomain.lng index 957dfbfed..6dfc914a0 100644 --- a/interface/web/sites/lib/lang/fr_web_subdomain.lng +++ b/interface/web/sites/lib/lang/fr_web_subdomain.lng @@ -42,7 +42,7 @@ $wb['no_flag_txt'] = 'Aucun flag'; $wb['domain_error_wildcard'] = 'Les sous-domaines joker ne sont pas autorisés.'; $wb['proxy_directives_txt'] = 'Directives pour les Proxy'; $wb['available_proxy_directive_snippets_txt'] = 'Directives pour les Proxy Snippets disponibles :'; -$wb['error_proxy_requires_url'] = 'Les redirections de type \\"proxy\\" nécessitent une URL comme chemin de redirection.'; +$wb['error_proxy_requires_url'] = 'Les redirections de type \"proxy\" nécessitent une URL comme chemin de redirection.'; $wb['http_port_txt'] = 'HTTP Port'; $wb['https_port_txt'] = 'HTTPS Port'; $wb['http_port_error_regex'] = 'HTTP Port invalid.'; diff --git a/interface/web/sites/lib/lang/hr.lng b/interface/web/sites/lib/lang/hr.lng index b6af1225a..4c53c8984 100644 --- a/interface/web/sites/lib/lang/hr.lng +++ b/interface/web/sites/lib/lang/hr.lng @@ -30,6 +30,6 @@ $wb['Available packages'] = 'Dostupni paketi'; $wb['Installed packages'] = 'Instalirani paketi'; $wb['Update Packagelist'] = 'Osvježi listu paketa'; $wb['Subdomain (Vhost)'] = 'Poddomena (Vhost)'; -$wb['error_proxy_requires_url'] = '\\"proxy\\" redirekcija zahtijeva URL za redirekcijsku putanju.'; +$wb['error_proxy_requires_url'] = '\"proxy\" redirekcija zahtijeva URL za redirekcijsku putanju.'; $wb['Domain'] = 'Domain'; ?> diff --git a/interface/web/sites/lib/lang/hr_aps.lng b/interface/web/sites/lib/lang/hr_aps.lng index 79d31cf7f..6169342e7 100644 --- a/interface/web/sites/lib/lang/hr_aps.lng +++ b/interface/web/sites/lib/lang/hr_aps.lng @@ -38,14 +38,14 @@ $wb['error_inv_main_location'] = 'The given install location folder is invalid.' $wb['error_license_agreement'] = 'In order to continue you have to accept the license agreement.'; $wb['error_no_database_pw'] = 'You have provided no valid database password.'; $wb['error_short_database_pw'] = 'Please choose a longer database password.'; -$wb['error_no_value_for'] = 'The field \\"%s\\" must not be empty.'; -$wb['error_short_value_for'] = 'The field \\"%s\\" requires a longer input value.'; -$wb['error_long_value_for'] = 'The field \\"%s\\" requires a shorter input value.'; -$wb['error_inv_value_for'] = 'You have entered an invalid value for the field \\"%s\\".'; -$wb['error_inv_email_for'] = 'You have entered an invalid mail address for the field \\"%s\\".'; -$wb['error_inv_domain_for'] = 'You have entered an invalid domain for the field \\"%s\\".'; -$wb['error_inv_integer_for'] = 'You have entered an invalid number for the field \\"%s\\".'; -$wb['error_inv_float_for'] = 'You have entered an invalid floating point number for the field \\"%s\\".'; +$wb['error_no_value_for'] = 'The field \"%s\" must not be empty.'; +$wb['error_short_value_for'] = 'The field \"%s\" requires a longer input value.'; +$wb['error_long_value_for'] = 'The field \"%s\" requires a shorter input value.'; +$wb['error_inv_value_for'] = 'You have entered an invalid value for the field \"%s\".'; +$wb['error_inv_email_for'] = 'You have entered an invalid mail address for the field \"%s\".'; +$wb['error_inv_domain_for'] = 'You have entered an invalid domain for the field \"%s\".'; +$wb['error_inv_integer_for'] = 'You have entered an invalid number for the field \"%s\".'; +$wb['error_inv_float_for'] = 'You have entered an invalid floating point number for the field \"%s\".'; $wb['error_used_location'] = 'The installation path already contains a package installation.'; $wb['installation_task_txt'] = 'Instalacija u postupku'; $wb['installation_error_txt'] = 'Instalacijska greška'; diff --git a/interface/web/sites/lib/lang/hr_web_childdomain.lng b/interface/web/sites/lib/lang/hr_web_childdomain.lng index 99df0d2fd..f0e69f24f 100644 --- a/interface/web/sites/lib/lang/hr_web_childdomain.lng +++ b/interface/web/sites/lib/lang/hr_web_childdomain.lng @@ -42,7 +42,7 @@ $wb['no_flag_txt'] = 'Bez markiranja'; $wb['domain_error_wildcard'] = 'Wildcard subdomains are not allowed.'; $wb['proxy_directives_txt'] = 'Proxy Directives'; $wb['available_proxy_directive_snippets_txt'] = 'Available Proxy Directive Snippets:'; -$wb['error_proxy_requires_url'] = 'Redirect Type \\"proxy\\" requires a URL as the redirect path.'; +$wb['error_proxy_requires_url'] = 'Redirect Type \"proxy\" requires a URL as the redirect path.'; $wb['backup_interval_txt'] = 'Backup interval'; $wb['backup_copies_txt'] = 'Number of backup copies'; $wb['ssl_key_txt'] = 'SSL Key'; diff --git a/interface/web/sites/lib/lang/hr_web_subdomain.lng b/interface/web/sites/lib/lang/hr_web_subdomain.lng index 76d7f3957..18fe4630a 100644 --- a/interface/web/sites/lib/lang/hr_web_subdomain.lng +++ b/interface/web/sites/lib/lang/hr_web_subdomain.lng @@ -42,7 +42,7 @@ $wb['no_flag_txt'] = 'Bez markiranja'; $wb['domain_error_wildcard'] = 'Wildcard poddomene nisu dozvoljene.'; $wb['proxy_directives_txt'] = 'Proxy direktive'; $wb['available_proxy_directive_snippets_txt'] = 'Dostupne proxy direktive:'; -$wb['error_proxy_requires_url'] = 'Vrsta redirekcije \\"proxy\\" zahtjeva URL kao redirekcijsku putanju.'; +$wb['error_proxy_requires_url'] = 'Vrsta redirekcije \"proxy\" zahtjeva URL kao redirekcijsku putanju.'; $wb['http_port_txt'] = 'HTTP Port'; $wb['https_port_txt'] = 'HTTPS Port'; $wb['http_port_error_regex'] = 'HTTP Port invalid.'; diff --git a/interface/web/sites/lib/lang/hu.lng b/interface/web/sites/lib/lang/hu.lng index 2c156a477..1a3e31d3f 100644 --- a/interface/web/sites/lib/lang/hu.lng +++ b/interface/web/sites/lib/lang/hu.lng @@ -31,5 +31,5 @@ $wb['Available packages'] = 'Available packages'; $wb['Installed packages'] = 'Installed packages'; $wb['Update Packagelist'] = 'Update Packagelist'; $wb['Subdomain (Vhost)'] = 'Subdomain (Vhost)'; -$wb['error_proxy_requires_url'] = 'Redirect Type \\"proxy\\" requires a URL as the redirect path.'; +$wb['error_proxy_requires_url'] = 'Redirect Type \"proxy\" requires a URL as the redirect path.'; ?> diff --git a/interface/web/sites/lib/lang/hu_aps.lng b/interface/web/sites/lib/lang/hu_aps.lng index 88708732d..9330a1fb4 100644 --- a/interface/web/sites/lib/lang/hu_aps.lng +++ b/interface/web/sites/lib/lang/hu_aps.lng @@ -38,14 +38,14 @@ $wb['error_inv_main_location'] = 'The given install location folder is invalid.' $wb['error_license_agreement'] = 'In order to continue you have to accept the license agreement.'; $wb['error_no_database_pw'] = 'You have provided no valid database password.'; $wb['error_short_database_pw'] = 'Please choose a longer database password.'; -$wb['error_no_value_for'] = 'The field \\"%s\\" must not be empty.'; -$wb['error_short_value_for'] = 'The field \\"%s\\" requires a longer input value.'; -$wb['error_long_value_for'] = 'The field \\"%s\\" requires a shorter input value.'; -$wb['error_inv_value_for'] = 'You have entered an invalid value for the field \\"%s\\".'; -$wb['error_inv_email_for'] = 'You have entered an invalid mail address for the field \\"%s\\".'; -$wb['error_inv_domain_for'] = 'You have entered an invalid domain for the field \\"%s\\".'; -$wb['error_inv_integer_for'] = 'You have entered an invalid number for the field \\"%s\\".'; -$wb['error_inv_float_for'] = 'You have entered an invalid floating point number for the field \\"%s\\".'; +$wb['error_no_value_for'] = 'The field \"%s\" must not be empty.'; +$wb['error_short_value_for'] = 'The field \"%s\" requires a longer input value.'; +$wb['error_long_value_for'] = 'The field \"%s\" requires a shorter input value.'; +$wb['error_inv_value_for'] = 'You have entered an invalid value for the field \"%s\".'; +$wb['error_inv_email_for'] = 'You have entered an invalid mail address for the field \"%s\".'; +$wb['error_inv_domain_for'] = 'You have entered an invalid domain for the field \"%s\".'; +$wb['error_inv_integer_for'] = 'You have entered an invalid number for the field \"%s\".'; +$wb['error_inv_float_for'] = 'You have entered an invalid floating point number for the field \"%s\".'; $wb['error_used_location'] = 'The installation path already contains a package installation.'; $wb['installation_task_txt'] = 'Install planned'; $wb['installation_error_txt'] = 'Install error'; diff --git a/interface/web/sites/lib/lang/hu_web_childdomain.lng b/interface/web/sites/lib/lang/hu_web_childdomain.lng index 5ac19c3bb..aa554d4bc 100644 --- a/interface/web/sites/lib/lang/hu_web_childdomain.lng +++ b/interface/web/sites/lib/lang/hu_web_childdomain.lng @@ -42,7 +42,7 @@ $wb['redirect_error_regex'] = 'Invalid redirect path. Valid redirects are for ex $wb['domain_error_wildcard'] = 'Wildcard subdomains are not allowed.'; $wb['proxy_directives_txt'] = 'Proxy Directives'; $wb['available_proxy_directive_snippets_txt'] = 'Available Proxy Directive Snippets:'; -$wb['error_proxy_requires_url'] = 'Redirect Type \\"proxy\\" requires a URL as the redirect path.'; +$wb['error_proxy_requires_url'] = 'Redirect Type \"proxy\" requires a URL as the redirect path.'; $wb['backup_interval_txt'] = 'Backup interval'; $wb['backup_copies_txt'] = 'Number of backup copies'; $wb['ssl_key_txt'] = 'SSL Key'; diff --git a/interface/web/sites/lib/lang/hu_web_subdomain.lng b/interface/web/sites/lib/lang/hu_web_subdomain.lng index 84874b22c..79c9ecc70 100644 --- a/interface/web/sites/lib/lang/hu_web_subdomain.lng +++ b/interface/web/sites/lib/lang/hu_web_subdomain.lng @@ -42,7 +42,7 @@ $wb['redirect_error_regex'] = 'Invalid redirect path. Valid redirects are for ex $wb['domain_error_wildcard'] = 'Wildcard subdomains are not allowed.'; $wb['proxy_directives_txt'] = 'Proxy Directives'; $wb['available_proxy_directive_snippets_txt'] = 'Available Proxy Directive Snippets:'; -$wb['error_proxy_requires_url'] = 'Redirect Type \\"proxy\\" requires a URL as the redirect path.'; +$wb['error_proxy_requires_url'] = 'Redirect Type \"proxy\" requires a URL as the redirect path.'; $wb['http_port_txt'] = 'HTTP Port'; $wb['https_port_txt'] = 'HTTPS Port'; $wb['http_port_error_regex'] = 'HTTP Port invalid.'; diff --git a/interface/web/sites/lib/lang/id.lng b/interface/web/sites/lib/lang/id.lng index c8510df6c..4fdae1813 100644 --- a/interface/web/sites/lib/lang/id.lng +++ b/interface/web/sites/lib/lang/id.lng @@ -31,5 +31,5 @@ $wb['Available packages'] = 'Available packages'; $wb['Installed packages'] = 'Installed packages'; $wb['Update Packagelist'] = 'Update Packagelist'; $wb['Subdomain (Vhost)'] = 'Subdomain (Vhost)'; -$wb['error_proxy_requires_url'] = 'Redirect Type \\"proxy\\" requires a URL as the redirect path.'; +$wb['error_proxy_requires_url'] = 'Redirect Type \"proxy\" requires a URL as the redirect path.'; ?> diff --git a/interface/web/sites/lib/lang/id_aps.lng b/interface/web/sites/lib/lang/id_aps.lng index b8c9af215..6f6d0bced 100644 --- a/interface/web/sites/lib/lang/id_aps.lng +++ b/interface/web/sites/lib/lang/id_aps.lng @@ -38,14 +38,14 @@ $wb['error_inv_main_location'] = 'The given install location folder is invalid.' $wb['error_license_agreement'] = 'In order to continue you have to accept the license agreement.'; $wb['error_no_database_pw'] = 'You have provided no valid database password.'; $wb['error_short_database_pw'] = 'Please choose a longer database password.'; -$wb['error_no_value_for'] = 'The field \\"%s\\" must not be empty.'; -$wb['error_short_value_for'] = 'The field \\"%s\\" requires a longer input value.'; -$wb['error_long_value_for'] = 'The field \\"%s\\" requires a shorter input value.'; -$wb['error_inv_value_for'] = 'You have entered an invalid value for the field \\"%s\\".'; -$wb['error_inv_email_for'] = 'You have entered an invalid mail address for the field \\"%s\\".'; -$wb['error_inv_domain_for'] = 'You have entered an invalid domain for the field \\"%s\\".'; -$wb['error_inv_integer_for'] = 'You have entered an invalid number for the field \\"%s\\".'; -$wb['error_inv_float_for'] = 'You have entered an invalid floating point number for the field \\"%s\\".'; +$wb['error_no_value_for'] = 'The field \"%s\" must not be empty.'; +$wb['error_short_value_for'] = 'The field \"%s\" requires a longer input value.'; +$wb['error_long_value_for'] = 'The field \"%s\" requires a shorter input value.'; +$wb['error_inv_value_for'] = 'You have entered an invalid value for the field \"%s\".'; +$wb['error_inv_email_for'] = 'You have entered an invalid mail address for the field \"%s\".'; +$wb['error_inv_domain_for'] = 'You have entered an invalid domain for the field \"%s\".'; +$wb['error_inv_integer_for'] = 'You have entered an invalid number for the field \"%s\".'; +$wb['error_inv_float_for'] = 'You have entered an invalid floating point number for the field \"%s\".'; $wb['error_used_location'] = 'The installation path already contains a package installation.'; $wb['installation_task_txt'] = 'Install planned'; $wb['installation_error_txt'] = 'Install error'; diff --git a/interface/web/sites/lib/lang/id_web_childdomain.lng b/interface/web/sites/lib/lang/id_web_childdomain.lng index d5fd9711a..2b97dc223 100644 --- a/interface/web/sites/lib/lang/id_web_childdomain.lng +++ b/interface/web/sites/lib/lang/id_web_childdomain.lng @@ -42,7 +42,7 @@ $wb['no_flag_txt'] = 'No flag'; $wb['domain_error_wildcard'] = 'Wildcard subdomains are not allowed.'; $wb['proxy_directives_txt'] = 'Proxy Directives'; $wb['available_proxy_directive_snippets_txt'] = 'Available Proxy Directive Snippets:'; -$wb['error_proxy_requires_url'] = 'Redirect Type \\"proxy\\" requires a URL as the redirect path.'; +$wb['error_proxy_requires_url'] = 'Redirect Type \"proxy\" requires a URL as the redirect path.'; $wb['backup_interval_txt'] = 'Backup interval'; $wb['backup_copies_txt'] = 'Number of backup copies'; $wb['ssl_key_txt'] = 'SSL Key'; diff --git a/interface/web/sites/lib/lang/id_web_subdomain.lng b/interface/web/sites/lib/lang/id_web_subdomain.lng index c2d007e69..7f51be8e4 100644 --- a/interface/web/sites/lib/lang/id_web_subdomain.lng +++ b/interface/web/sites/lib/lang/id_web_subdomain.lng @@ -42,7 +42,7 @@ $wb['no_flag_txt'] = 'No flag'; $wb['domain_error_wildcard'] = 'Wildcard subdomains are not allowed.'; $wb['proxy_directives_txt'] = 'Proxy Directives'; $wb['available_proxy_directive_snippets_txt'] = 'Available Proxy Directive Snippets:'; -$wb['error_proxy_requires_url'] = 'Redirect Type \\"proxy\\" requires a URL as the redirect path.'; +$wb['error_proxy_requires_url'] = 'Redirect Type \"proxy\" requires a URL as the redirect path.'; $wb['http_port_txt'] = 'HTTP Port'; $wb['https_port_txt'] = 'HTTPS Port'; $wb['http_port_error_regex'] = 'HTTP Port invalid.'; diff --git a/interface/web/sites/lib/lang/it.lng b/interface/web/sites/lib/lang/it.lng index 77473bd0f..2237545be 100644 --- a/interface/web/sites/lib/lang/it.lng +++ b/interface/web/sites/lib/lang/it.lng @@ -31,5 +31,5 @@ $wb['Available packages'] = 'Pacchetti disponibili'; $wb['Installed packages'] = 'Pacchetti Installati'; $wb['Update Packagelist'] = 'Aggiorna Elenco Pacchetti'; $wb['Subdomain (Vhost)'] = 'Sottodominio (Vhost)'; -$wb['error_proxy_requires_url'] = 'Tipo reinderizzamento \\"proxy\\" richiede una URL come percorso del reinderizzamento.'; +$wb['error_proxy_requires_url'] = 'Tipo reinderizzamento \"proxy\" richiede una URL come percorso del reinderizzamento.'; ?> diff --git a/interface/web/sites/lib/lang/it_aps.lng b/interface/web/sites/lib/lang/it_aps.lng index 0a6365f98..ade780861 100644 --- a/interface/web/sites/lib/lang/it_aps.lng +++ b/interface/web/sites/lib/lang/it_aps.lng @@ -38,14 +38,14 @@ $wb['error_inv_main_location'] = 'La cartella di installazione fornita non è va $wb['error_license_agreement'] = 'Per poter proseguire è necessario che prendi visione ed accetti l accordi di licenza.'; $wb['error_no_database_pw'] = 'La password fornita non è valida.'; $wb['error_short_database_pw'] = 'Per favore scegli una password di database più lunga.'; -$wb['error_no_value_for'] = 'Il campo \\"%s\\" non può essere vuoto.'; -$wb['error_short_value_for'] = 'Il campo \\"%s\\" richiede un valore immesso più lungo.'; -$wb['error_long_value_for'] = 'Il campo \\"%s\\" richiede un valore immesso più corto.'; -$wb['error_inv_value_for'] = 'Hai inserito un valore non valido per il campo \\"%s\\".'; -$wb['error_inv_email_for'] = 'Hai inserito un indirizzo email non valido per il campo \\"%s\\".'; -$wb['error_inv_domain_for'] = 'Hai inserito un dominio non valido per il campo \\"%s\\".'; -$wb['error_inv_integer_for'] = 'Hai inserito un numero non valido per il campo \\"%s\\".'; -$wb['error_inv_float_for'] = 'Hai inserito un numero di floating point non valido per il campo \\"%s\\".'; +$wb['error_no_value_for'] = 'Il campo \"%s\" non può essere vuoto.'; +$wb['error_short_value_for'] = 'Il campo \"%s\" richiede un valore immesso più lungo.'; +$wb['error_long_value_for'] = 'Il campo \"%s\" richiede un valore immesso più corto.'; +$wb['error_inv_value_for'] = 'Hai inserito un valore non valido per il campo \"%s\".'; +$wb['error_inv_email_for'] = 'Hai inserito un indirizzo email non valido per il campo \"%s\".'; +$wb['error_inv_domain_for'] = 'Hai inserito un dominio non valido per il campo \"%s\".'; +$wb['error_inv_integer_for'] = 'Hai inserito un numero non valido per il campo \"%s\".'; +$wb['error_inv_float_for'] = 'Hai inserito un numero di floating point non valido per il campo \"%s\".'; $wb['error_used_location'] = 'L installazione della patch contiene già un pacchetto di installazione.'; $wb['installation_task_txt'] = 'Installazione pianificata'; $wb['installation_error_txt'] = 'Errore di installazione'; diff --git a/interface/web/sites/lib/lang/it_web_childdomain.lng b/interface/web/sites/lib/lang/it_web_childdomain.lng index 3a214e298..edd32aa6d 100644 --- a/interface/web/sites/lib/lang/it_web_childdomain.lng +++ b/interface/web/sites/lib/lang/it_web_childdomain.lng @@ -43,7 +43,7 @@ $wb['no_flag_txt'] = 'No flag'; $wb['domain_error_wildcard'] = 'Wildcard subdomains are not allowed.'; $wb['proxy_directives_txt'] = 'Proxy Directives'; $wb['available_proxy_directive_snippets_txt'] = 'Available Proxy Directive Snippets:'; -$wb['error_proxy_requires_url'] = 'Redirect Type \\"proxy\\" requires a URL as the redirect path.'; +$wb['error_proxy_requires_url'] = 'Redirect Type \"proxy\" requires a URL as the redirect path.'; $wb['backup_interval_txt'] = 'Backup interval'; $wb['backup_copies_txt'] = 'Number of backup copies'; $wb['ssl_key_txt'] = 'SSL Key'; diff --git a/interface/web/sites/lib/lang/it_web_subdomain.lng b/interface/web/sites/lib/lang/it_web_subdomain.lng index 956b5c3be..001930491 100644 --- a/interface/web/sites/lib/lang/it_web_subdomain.lng +++ b/interface/web/sites/lib/lang/it_web_subdomain.lng @@ -42,7 +42,7 @@ $wb['no_flag_txt'] = 'No flag'; $wb['domain_error_wildcard'] = 'Non sono ammessi caratteri jolly per i sottodomini.'; $wb['proxy_directives_txt'] = 'Direttive Proxy'; $wb['available_proxy_directive_snippets_txt'] = 'Snippets Direttive Proxy disponibili:'; -$wb['error_proxy_requires_url'] = 'Tipo reinderizzamento \\"proxy\\" richiede una URL come percorso di reinderizzamento.'; +$wb['error_proxy_requires_url'] = 'Tipo reinderizzamento \"proxy\" richiede una URL come percorso di reinderizzamento.'; $wb['http_port_txt'] = 'HTTP Port'; $wb['https_port_txt'] = 'HTTPS Port'; $wb['http_port_error_regex'] = 'HTTP Port invalid.'; diff --git a/interface/web/sites/lib/lang/ja.lng b/interface/web/sites/lib/lang/ja.lng index 920064bc5..470ec2bae 100644 --- a/interface/web/sites/lib/lang/ja.lng +++ b/interface/web/sites/lib/lang/ja.lng @@ -31,5 +31,5 @@ $wb['Available packages'] = 'Available packages'; $wb['Installed packages'] = 'Installed packages'; $wb['Update Packagelist'] = 'Update Packagelist'; $wb['Subdomain (Vhost)'] = 'Subdomain (Vhost)'; -$wb['error_proxy_requires_url'] = 'Redirect Type \\"proxy\\" requires a URL as the redirect path.'; +$wb['error_proxy_requires_url'] = 'Redirect Type \"proxy\" requires a URL as the redirect path.'; ?> diff --git a/interface/web/sites/lib/lang/ja_aps.lng b/interface/web/sites/lib/lang/ja_aps.lng index dc6b22edf..91f8ad102 100644 --- a/interface/web/sites/lib/lang/ja_aps.lng +++ b/interface/web/sites/lib/lang/ja_aps.lng @@ -38,14 +38,14 @@ $wb['error_inv_main_location'] = 'The given install location folder is invalid.' $wb['error_license_agreement'] = 'In order to continue you have to accept the license agreement.'; $wb['error_no_database_pw'] = 'You have provided no valid database password.'; $wb['error_short_database_pw'] = 'Please choose a longer database password.'; -$wb['error_no_value_for'] = 'The field \\"%s\\" must not be empty.'; -$wb['error_short_value_for'] = 'The field \\"%s\\" requires a longer input value.'; -$wb['error_long_value_for'] = 'The field \\"%s\\" requires a shorter input value.'; -$wb['error_inv_value_for'] = 'You have entered an invalid value for the field \\"%s\\".'; -$wb['error_inv_email_for'] = 'You have entered an invalid mail address for the field \\"%s\\".'; -$wb['error_inv_domain_for'] = 'You have entered an invalid domain for the field \\"%s\\".'; -$wb['error_inv_integer_for'] = 'You have entered an invalid number for the field \\"%s\\".'; -$wb['error_inv_float_for'] = 'You have entered an invalid floating point number for the field \\"%s\\".'; +$wb['error_no_value_for'] = 'The field \"%s\" must not be empty.'; +$wb['error_short_value_for'] = 'The field \"%s\" requires a longer input value.'; +$wb['error_long_value_for'] = 'The field \"%s\" requires a shorter input value.'; +$wb['error_inv_value_for'] = 'You have entered an invalid value for the field \"%s\".'; +$wb['error_inv_email_for'] = 'You have entered an invalid mail address for the field \"%s\".'; +$wb['error_inv_domain_for'] = 'You have entered an invalid domain for the field \"%s\".'; +$wb['error_inv_integer_for'] = 'You have entered an invalid number for the field \"%s\".'; +$wb['error_inv_float_for'] = 'You have entered an invalid floating point number for the field \"%s\".'; $wb['error_used_location'] = 'The installation path already contains a package installation.'; $wb['installation_task_txt'] = 'Install planned'; $wb['installation_error_txt'] = 'Install error'; diff --git a/interface/web/sites/lib/lang/ja_web_childdomain.lng b/interface/web/sites/lib/lang/ja_web_childdomain.lng index d59d7bbda..fe885c8c3 100644 --- a/interface/web/sites/lib/lang/ja_web_childdomain.lng +++ b/interface/web/sites/lib/lang/ja_web_childdomain.lng @@ -42,7 +42,7 @@ $wb['no_flag_txt'] = 'No flag'; $wb['domain_error_wildcard'] = 'Wildcard subdomains are not allowed.'; $wb['proxy_directives_txt'] = 'Proxy Directives'; $wb['available_proxy_directive_snippets_txt'] = 'Available Proxy Directive Snippets:'; -$wb['error_proxy_requires_url'] = 'Redirect Type \\"proxy\\" requires a URL as the redirect path.'; +$wb['error_proxy_requires_url'] = 'Redirect Type \"proxy\" requires a URL as the redirect path.'; $wb['backup_interval_txt'] = 'Backup interval'; $wb['backup_copies_txt'] = 'Number of backup copies'; $wb['ssl_key_txt'] = 'SSL Key'; diff --git a/interface/web/sites/lib/lang/ja_web_subdomain.lng b/interface/web/sites/lib/lang/ja_web_subdomain.lng index 5eb45907e..f77c98444 100644 --- a/interface/web/sites/lib/lang/ja_web_subdomain.lng +++ b/interface/web/sites/lib/lang/ja_web_subdomain.lng @@ -42,7 +42,7 @@ $wb['no_flag_txt'] = 'No flag'; $wb['domain_error_wildcard'] = 'Wildcard subdomains are not allowed.'; $wb['proxy_directives_txt'] = 'Proxy Directives'; $wb['available_proxy_directive_snippets_txt'] = 'Available Proxy Directive Snippets:'; -$wb['error_proxy_requires_url'] = 'Redirect Type \\"proxy\\" requires a URL as the redirect path.'; +$wb['error_proxy_requires_url'] = 'Redirect Type \"proxy\" requires a URL as the redirect path.'; $wb['http_port_txt'] = 'HTTP Port'; $wb['https_port_txt'] = 'HTTPS Port'; $wb['http_port_error_regex'] = 'HTTP Port invalid.'; diff --git a/interface/web/sites/lib/lang/nl.lng b/interface/web/sites/lib/lang/nl.lng index 8e07a1844..89a4caa10 100644 --- a/interface/web/sites/lib/lang/nl.lng +++ b/interface/web/sites/lib/lang/nl.lng @@ -31,5 +31,5 @@ $wb['Available packages'] = 'Beschikbare pakketten'; $wb['Installed packages'] = 'Geïnstalleerde pakketten'; $wb['Update Packagelist'] = 'Pakkettenlijst bijwerken'; $wb['Subdomain (Vhost)'] = 'Subdomein (Vhost)'; -$wb['error_proxy_requires_url'] = 'Redirect Type \\"proxy\\" requires a URL as the redirect path.'; +$wb['error_proxy_requires_url'] = 'Redirect Type \"proxy\" requires a URL as the redirect path.'; ?> diff --git a/interface/web/sites/lib/lang/nl_aps.lng b/interface/web/sites/lib/lang/nl_aps.lng index c0adacee9..dfd852dcd 100644 --- a/interface/web/sites/lib/lang/nl_aps.lng +++ b/interface/web/sites/lib/lang/nl_aps.lng @@ -38,14 +38,14 @@ $wb['error_inv_main_location'] = 'The given install location folder is invalid.' $wb['error_license_agreement'] = 'In order to continue you have to accept the license agreement.'; $wb['error_no_database_pw'] = 'You have provided no valid database password.'; $wb['error_short_database_pw'] = 'Please choose a longer database password.'; -$wb['error_no_value_for'] = 'The field \\"%s\\" must not be empty.'; -$wb['error_short_value_for'] = 'The field \\"%s\\" requires a longer input value.'; -$wb['error_long_value_for'] = 'The field \\"%s\\" requires a shorter input value.'; -$wb['error_inv_value_for'] = 'You have entered an invalid value for the field \\"%s\\".'; -$wb['error_inv_email_for'] = 'You have entered an invalid mail address for the field \\"%s\\".'; -$wb['error_inv_domain_for'] = 'You have entered an invalid domain for the field \\"%s\\".'; -$wb['error_inv_integer_for'] = 'You have entered an invalid number for the field \\"%s\\".'; -$wb['error_inv_float_for'] = 'You have entered an invalid floating point number for the field \\"%s\\".'; +$wb['error_no_value_for'] = 'The field \"%s\" must not be empty.'; +$wb['error_short_value_for'] = 'The field \"%s\" requires a longer input value.'; +$wb['error_long_value_for'] = 'The field \"%s\" requires a shorter input value.'; +$wb['error_inv_value_for'] = 'You have entered an invalid value for the field \"%s\".'; +$wb['error_inv_email_for'] = 'You have entered an invalid mail address for the field \"%s\".'; +$wb['error_inv_domain_for'] = 'You have entered an invalid domain for the field \"%s\".'; +$wb['error_inv_integer_for'] = 'You have entered an invalid number for the field \"%s\".'; +$wb['error_inv_float_for'] = 'You have entered an invalid floating point number for the field \"%s\".'; $wb['error_used_location'] = 'The installation path already contains a package installation.'; $wb['installation_task_txt'] = 'Install planned'; $wb['installation_error_txt'] = 'Install error'; diff --git a/interface/web/sites/lib/lang/nl_web_childdomain.lng b/interface/web/sites/lib/lang/nl_web_childdomain.lng index e99616ce1..4c5b3dc2a 100644 --- a/interface/web/sites/lib/lang/nl_web_childdomain.lng +++ b/interface/web/sites/lib/lang/nl_web_childdomain.lng @@ -42,7 +42,7 @@ $wb['no_flag_txt'] = 'No flag'; $wb['domain_error_wildcard'] = 'Wildcard subdomains are not allowed.'; $wb['proxy_directives_txt'] = 'Proxy Directives'; $wb['available_proxy_directive_snippets_txt'] = 'Available Proxy Directive Snippets:'; -$wb['error_proxy_requires_url'] = 'Redirect Type \\"proxy\\" requires a URL as the redirect path.'; +$wb['error_proxy_requires_url'] = 'Redirect Type \"proxy\" requires a URL as the redirect path.'; $wb['backup_interval_txt'] = 'Backup interval'; $wb['backup_copies_txt'] = 'Number of backup copies'; $wb['ssl_key_txt'] = 'SSL Key'; diff --git a/interface/web/sites/lib/lang/nl_web_subdomain.lng b/interface/web/sites/lib/lang/nl_web_subdomain.lng index 2f4412afb..c644d8113 100644 --- a/interface/web/sites/lib/lang/nl_web_subdomain.lng +++ b/interface/web/sites/lib/lang/nl_web_subdomain.lng @@ -42,7 +42,7 @@ $wb['no_flag_txt'] = 'Geen flag'; $wb['domain_error_wildcard'] = 'Wildcard subdomeinen zijn niet toegestaan.'; $wb['proxy_directives_txt'] = 'Proxy Directives'; $wb['available_proxy_directive_snippets_txt'] = 'Available Proxy Directive Snippets:'; -$wb['error_proxy_requires_url'] = 'Redirect Type \\"proxy\\" requires a URL as the redirect path.'; +$wb['error_proxy_requires_url'] = 'Redirect Type \"proxy\" requires a URL as the redirect path.'; $wb['http_port_txt'] = 'HTTP Port'; $wb['https_port_txt'] = 'HTTPS Port'; $wb['http_port_error_regex'] = 'HTTP Port niet correct.'; diff --git a/interface/web/sites/lib/lang/pl_aps.lng b/interface/web/sites/lib/lang/pl_aps.lng index c17bbca53..398c74e4c 100644 --- a/interface/web/sites/lib/lang/pl_aps.lng +++ b/interface/web/sites/lib/lang/pl_aps.lng @@ -38,14 +38,14 @@ $wb['error_inv_main_location'] = 'Instalacja w podanym folderze jest niemożliwa $wb['error_license_agreement'] = 'Aby kontynuować musisz zaakceptować umowę licencyjną.'; $wb['error_no_database_pw'] = 'Nie podałeś prawidłowego hasła do bazy danych.'; $wb['error_short_database_pw'] = 'Wybierz dłuższe hasło do bazy.'; -$wb['error_no_value_for'] = 'Pole \\"%s\\" nie może być puste'; -$wb['error_short_value_for'] = 'Pole \\"%s\\" wymaga dłuższej wartości'; -$wb['error_long_value_for'] = 'Pole \\"%s\\" wymaga krótszej wartości'; -$wb['error_inv_value_for'] = 'Wprowadziłeś nieprawidłową wartość w polu \\"%s\\"'; -$wb['error_inv_email_for'] = 'Wprowadziłeś nieprawidłowy adres email w polu \\"%s\\"'; -$wb['error_inv_domain_for'] = 'Wprowadziłeś nieprawidłową domenę w polu \\"%s\\"'; -$wb['error_inv_integer_for'] = 'Wprowadziłeś nieprawidłową liczbę w polu \\"%s\\"'; -$wb['error_inv_float_for'] = 'Wprowadziłeś nieprawidłową liczbę w polu \\"%s\\"'; +$wb['error_no_value_for'] = 'Pole \"%s\" nie może być puste'; +$wb['error_short_value_for'] = 'Pole \"%s\" wymaga dłuższej wartości'; +$wb['error_long_value_for'] = 'Pole \"%s\" wymaga krótszej wartości'; +$wb['error_inv_value_for'] = 'Wprowadziłeś nieprawidłową wartość w polu \"%s\"'; +$wb['error_inv_email_for'] = 'Wprowadziłeś nieprawidłowy adres email w polu \"%s\"'; +$wb['error_inv_domain_for'] = 'Wprowadziłeś nieprawidłową domenę w polu \"%s\"'; +$wb['error_inv_integer_for'] = 'Wprowadziłeś nieprawidłową liczbę w polu \"%s\"'; +$wb['error_inv_float_for'] = 'Wprowadziłeś nieprawidłową liczbę w polu \"%s\"'; $wb['error_used_location'] = 'Ścieżka instalacji zawiera już zainstalowany pakiet.'; $wb['installation_task_txt'] = 'Instalacja planowana'; $wb['installation_error_txt'] = 'Błąd instalacji'; diff --git a/interface/web/sites/lib/lang/pt.lng b/interface/web/sites/lib/lang/pt.lng index c1fca015b..6cd9798fa 100644 --- a/interface/web/sites/lib/lang/pt.lng +++ b/interface/web/sites/lib/lang/pt.lng @@ -31,5 +31,5 @@ $wb['Available packages'] = 'Available packages'; $wb['Installed packages'] = 'Installed packages'; $wb['Update Packagelist'] = 'Update Packagelist'; $wb['Subdomain (Vhost)'] = 'Subdomain (Vhost)'; -$wb['error_proxy_requires_url'] = 'Redirect Type \\"proxy\\" requires a URL as the redirect path.'; +$wb['error_proxy_requires_url'] = 'Redirect Type \"proxy\" requires a URL as the redirect path.'; ?> diff --git a/interface/web/sites/lib/lang/pt_aps.lng b/interface/web/sites/lib/lang/pt_aps.lng index c17ef0091..33c4e8726 100644 --- a/interface/web/sites/lib/lang/pt_aps.lng +++ b/interface/web/sites/lib/lang/pt_aps.lng @@ -38,14 +38,14 @@ $wb['error_inv_main_location'] = 'The given install location folder is invalid.' $wb['error_license_agreement'] = 'In order to continue you have to accept the license agreement.'; $wb['error_no_database_pw'] = 'You have provided no valid database password.'; $wb['error_short_database_pw'] = 'Please choose a longer database password.'; -$wb['error_no_value_for'] = 'The field \\"%s\\" must not be empty.'; -$wb['error_short_value_for'] = 'The field \\"%s\\" requires a longer input value.'; -$wb['error_long_value_for'] = 'The field \\"%s\\" requires a shorter input value.'; -$wb['error_inv_value_for'] = 'You have entered an invalid value for the field \\"%s\\".'; -$wb['error_inv_email_for'] = 'You have entered an invalid mail address for the field \\"%s\\".'; -$wb['error_inv_domain_for'] = 'You have entered an invalid domain for the field \\"%s\\".'; -$wb['error_inv_integer_for'] = 'You have entered an invalid number for the field \\"%s\\".'; -$wb['error_inv_float_for'] = 'You have entered an invalid floating point number for the field \\"%s\\".'; +$wb['error_no_value_for'] = 'The field \"%s\" must not be empty.'; +$wb['error_short_value_for'] = 'The field \"%s\" requires a longer input value.'; +$wb['error_long_value_for'] = 'The field \"%s\" requires a shorter input value.'; +$wb['error_inv_value_for'] = 'You have entered an invalid value for the field \"%s\".'; +$wb['error_inv_email_for'] = 'You have entered an invalid mail address for the field \"%s\".'; +$wb['error_inv_domain_for'] = 'You have entered an invalid domain for the field \"%s\".'; +$wb['error_inv_integer_for'] = 'You have entered an invalid number for the field \"%s\".'; +$wb['error_inv_float_for'] = 'You have entered an invalid floating point number for the field \"%s\".'; $wb['error_used_location'] = 'The installation path already contains a package installation.'; $wb['installation_task_txt'] = 'Install planned'; $wb['installation_error_txt'] = 'Install error'; diff --git a/interface/web/sites/lib/lang/pt_web_childdomain.lng b/interface/web/sites/lib/lang/pt_web_childdomain.lng index 4cbc032c1..688af77bd 100644 --- a/interface/web/sites/lib/lang/pt_web_childdomain.lng +++ b/interface/web/sites/lib/lang/pt_web_childdomain.lng @@ -42,7 +42,7 @@ $wb['no_flag_txt'] = 'No flag'; $wb['domain_error_wildcard'] = 'Wildcard subdomains are not allowed.'; $wb['proxy_directives_txt'] = 'Proxy Directives'; $wb['available_proxy_directive_snippets_txt'] = 'Available Proxy Directive Snippets:'; -$wb['error_proxy_requires_url'] = 'Redirect Type \\"proxy\\" requires a URL as the redirect path.'; +$wb['error_proxy_requires_url'] = 'Redirect Type \"proxy\" requires a URL as the redirect path.'; $wb['backup_interval_txt'] = 'Backup interval'; $wb['backup_copies_txt'] = 'Number of backup copies'; $wb['ssl_key_txt'] = 'SSL Key'; diff --git a/interface/web/sites/lib/lang/pt_web_subdomain.lng b/interface/web/sites/lib/lang/pt_web_subdomain.lng index 8a4f1440f..8f2fd70e4 100644 --- a/interface/web/sites/lib/lang/pt_web_subdomain.lng +++ b/interface/web/sites/lib/lang/pt_web_subdomain.lng @@ -42,7 +42,7 @@ $wb['no_flag_txt'] = 'No flag'; $wb['domain_error_wildcard'] = 'Wildcard subdomains are not allowed.'; $wb['proxy_directives_txt'] = 'Proxy Directives'; $wb['available_proxy_directive_snippets_txt'] = 'Available Proxy Directive Snippets:'; -$wb['error_proxy_requires_url'] = 'Redirect Type \\"proxy\\" requires a URL as the redirect path.'; +$wb['error_proxy_requires_url'] = 'Redirect Type \"proxy\" requires a URL as the redirect path.'; $wb['http_port_txt'] = 'HTTP Port'; $wb['https_port_txt'] = 'HTTPS Port'; $wb['http_port_error_regex'] = 'HTTP Port invalid.'; diff --git a/interface/web/sites/lib/lang/ro.lng b/interface/web/sites/lib/lang/ro.lng index f674e91b8..418585ea5 100644 --- a/interface/web/sites/lib/lang/ro.lng +++ b/interface/web/sites/lib/lang/ro.lng @@ -31,5 +31,5 @@ $wb['Available packages'] = 'Available packages'; $wb['Installed packages'] = 'Installed packages'; $wb['Update Packagelist'] = 'Update Packagelist'; $wb['Subdomain (Vhost)'] = 'Subdomain (Vhost)'; -$wb['error_proxy_requires_url'] = 'Redirect Type \\"proxy\\" requires a URL as the redirect path.'; +$wb['error_proxy_requires_url'] = 'Redirect Type \"proxy\" requires a URL as the redirect path.'; ?> diff --git a/interface/web/sites/lib/lang/ro_aps.lng b/interface/web/sites/lib/lang/ro_aps.lng index 881c146a4..3ff130f57 100644 --- a/interface/web/sites/lib/lang/ro_aps.lng +++ b/interface/web/sites/lib/lang/ro_aps.lng @@ -38,14 +38,14 @@ $wb['error_inv_main_location'] = 'The given install location folder is invalid.' $wb['error_license_agreement'] = 'In order to continue you have to accept the license agreement.'; $wb['error_no_database_pw'] = 'You have provided no valid database password.'; $wb['error_short_database_pw'] = 'Please choose a longer database password.'; -$wb['error_no_value_for'] = 'The field \\"%s\\" must not be empty.'; -$wb['error_short_value_for'] = 'The field \\"%s\\" requires a longer input value.'; -$wb['error_long_value_for'] = 'The field \\"%s\\" requires a shorter input value.'; -$wb['error_inv_value_for'] = 'You have entered an invalid value for the field \\"%s\\".'; -$wb['error_inv_email_for'] = 'You have entered an invalid mail address for the field \\"%s\\".'; -$wb['error_inv_domain_for'] = 'You have entered an invalid domain for the field \\"%s\\".'; -$wb['error_inv_integer_for'] = 'You have entered an invalid number for the field \\"%s\\".'; -$wb['error_inv_float_for'] = 'You have entered an invalid floating point number for the field \\"%s\\".'; +$wb['error_no_value_for'] = 'The field \"%s\" must not be empty.'; +$wb['error_short_value_for'] = 'The field \"%s\" requires a longer input value.'; +$wb['error_long_value_for'] = 'The field \"%s\" requires a shorter input value.'; +$wb['error_inv_value_for'] = 'You have entered an invalid value for the field \"%s\".'; +$wb['error_inv_email_for'] = 'You have entered an invalid mail address for the field \"%s\".'; +$wb['error_inv_domain_for'] = 'You have entered an invalid domain for the field \"%s\".'; +$wb['error_inv_integer_for'] = 'You have entered an invalid number for the field \"%s\".'; +$wb['error_inv_float_for'] = 'You have entered an invalid floating point number for the field \"%s\".'; $wb['error_used_location'] = 'The installation path already contains a package installation.'; $wb['installation_task_txt'] = 'Install planned'; $wb['installation_error_txt'] = 'Install error'; diff --git a/interface/web/sites/lib/lang/ro_web_childdomain.lng b/interface/web/sites/lib/lang/ro_web_childdomain.lng index 30f83e728..5f5678651 100644 --- a/interface/web/sites/lib/lang/ro_web_childdomain.lng +++ b/interface/web/sites/lib/lang/ro_web_childdomain.lng @@ -43,7 +43,7 @@ $wb['no_flag_txt'] = 'No flag'; $wb['domain_error_wildcard'] = 'Wildcard subdomains are not allowed.'; $wb['proxy_directives_txt'] = 'Proxy Directives'; $wb['available_proxy_directive_snippets_txt'] = 'Available Proxy Directive Snippets:'; -$wb['error_proxy_requires_url'] = 'Redirect Type \\"proxy\\" requires a URL as the redirect path.'; +$wb['error_proxy_requires_url'] = 'Redirect Type \"proxy\" requires a URL as the redirect path.'; $wb['backup_interval_txt'] = 'Backup interval'; $wb['backup_copies_txt'] = 'Number of backup copies'; $wb['ssl_key_txt'] = 'SSL Key'; diff --git a/interface/web/sites/lib/lang/ro_web_subdomain.lng b/interface/web/sites/lib/lang/ro_web_subdomain.lng index f36685be8..436acc4cf 100644 --- a/interface/web/sites/lib/lang/ro_web_subdomain.lng +++ b/interface/web/sites/lib/lang/ro_web_subdomain.lng @@ -42,7 +42,7 @@ $wb['no_flag_txt'] = 'No flag'; $wb['domain_error_wildcard'] = 'Wildcard subdomains are not allowed.'; $wb['proxy_directives_txt'] = 'Proxy Directives'; $wb['available_proxy_directive_snippets_txt'] = 'Available Proxy Directive Snippets:'; -$wb['error_proxy_requires_url'] = 'Redirect Type \\"proxy\\" requires a URL as the redirect path.'; +$wb['error_proxy_requires_url'] = 'Redirect Type \"proxy\" requires a URL as the redirect path.'; $wb['http_port_txt'] = 'HTTP Port'; $wb['https_port_txt'] = 'HTTPS Port'; $wb['http_port_error_regex'] = 'HTTP Port invalid.'; diff --git a/interface/web/sites/lib/lang/ru.lng b/interface/web/sites/lib/lang/ru.lng index dbf292604..6316c21d1 100644 --- a/interface/web/sites/lib/lang/ru.lng +++ b/interface/web/sites/lib/lang/ru.lng @@ -31,5 +31,5 @@ $wb['Available packages'] = 'Доступные пакеты'; $wb['Installed packages'] = 'Установленные пакеты'; $wb['Update Packagelist'] = 'Обновить список пакетов'; $wb['Subdomain (Vhost)'] = 'Поддомен (Vhost)'; -$wb['error_proxy_requires_url'] = 'Тип редиректа \\"proxy\\" требует URL в качестве пути перенаправления.'; +$wb['error_proxy_requires_url'] = 'Тип редиректа \"proxy\" требует URL в качестве пути перенаправления.'; ?> diff --git a/interface/web/sites/lib/lang/ru_aps.lng b/interface/web/sites/lib/lang/ru_aps.lng index d2225358c..3dd4ad0a8 100644 --- a/interface/web/sites/lib/lang/ru_aps.lng +++ b/interface/web/sites/lib/lang/ru_aps.lng @@ -38,14 +38,14 @@ $wb['error_inv_main_location'] = 'Вы указали некорректную $wb['error_license_agreement'] = 'Для продолжения нужно принять лицензионное соглашение.'; $wb['error_no_database_pw'] = 'Вы предоставили не правильный пароль базы данных.'; $wb['error_short_database_pw'] = 'Пожалуйста, выберите более длинный пароль базы данных.'; -$wb['error_no_value_for'] = 'Поле \\"%s\\" не может быть пустым.'; -$wb['error_short_value_for'] = 'Поле \\"%s\\" требует более длинного входного значения.'; -$wb['error_long_value_for'] = 'Поле \\"%s\\"требует более короткого входного значения.'; -$wb['error_inv_value_for'] = 'Вы ввели неверное значение для поля \\"%s\\".'; -$wb['error_inv_email_for'] = 'Вы ввели некорректный адрес электронной почты для поля \\"%s\\".'; -$wb['error_inv_domain_for'] = 'Вы ввели некорректный домен для поля \\"%s\\".'; -$wb['error_inv_integer_for'] = 'Вы ввели некорректное число для поля \\"%s\\".'; -$wb['error_inv_float_for'] = 'Вы ввели некорректное число с плавающей точкой для поля \\"%s\\".'; +$wb['error_no_value_for'] = 'Поле \"%s\" не может быть пустым.'; +$wb['error_short_value_for'] = 'Поле \"%s\" требует более длинного входного значения.'; +$wb['error_long_value_for'] = 'Поле \"%s\"требует более короткого входного значения.'; +$wb['error_inv_value_for'] = 'Вы ввели неверное значение для поля \"%s\".'; +$wb['error_inv_email_for'] = 'Вы ввели некорректный адрес электронной почты для поля \"%s\".'; +$wb['error_inv_domain_for'] = 'Вы ввели некорректный домен для поля \"%s\".'; +$wb['error_inv_integer_for'] = 'Вы ввели некорректное число для поля \"%s\".'; +$wb['error_inv_float_for'] = 'Вы ввели некорректное число с плавающей точкой для поля \"%s\".'; $wb['error_used_location'] = 'Путь установки уже содержит установочный пакет.'; $wb['installation_task_txt'] = 'Запланирована установка'; $wb['installation_error_txt'] = 'Ошибка установки'; diff --git a/interface/web/sites/lib/lang/ru_database.lng b/interface/web/sites/lib/lang/ru_database.lng index 0f5eaf318..b931b715f 100644 --- a/interface/web/sites/lib/lang/ru_database.lng +++ b/interface/web/sites/lib/lang/ru_database.lng @@ -13,7 +13,7 @@ $wb['database_name_error_unique'] = 'Имя базы данных уже сущ $wb['database_name_error_regex'] = 'Неверное имя базы данных. Имя базы данных может содержать только следующие символы: a-z, A-Z, 0-9 и нижний пробел _. Длина: 2 - 64 символа.'; $wb['database_user_error_empty'] = 'Логин базы данных пустой'; $wb['database_user_error_unique'] = 'Такой пользователь базы данных уже существует. Что бы получить уникальное имя, например, сложите название сайта и ваше имя.'; -$wb['database_user_error_regex'] = 'Некорректный логин для базы данных. Логин может содержать только следующие символы: a-z, A-Z, 0-9 и \\"_\\". Длина: 2 - 16 символов.'; +$wb['database_user_error_regex'] = 'Некорректный логин для базы данных. Логин может содержать только следующие символы: a-z, A-Z, 0-9 и \"_\". Длина: 2 - 16 символов.'; $wb['limit_database_txt'] = 'Достигнуто максимальное количество БД.'; $wb['database_name_change_txt'] = 'Имя базы данных не может быть изменено.'; $wb['database_charset_change_txt'] = 'Кодировка базы данных не может быть изменена'; diff --git a/interface/web/sites/lib/lang/ru_database_user.lng b/interface/web/sites/lib/lang/ru_database_user.lng index 7de99a11d..df927317c 100644 --- a/interface/web/sites/lib/lang/ru_database_user.lng +++ b/interface/web/sites/lib/lang/ru_database_user.lng @@ -6,7 +6,7 @@ $wb['client_txt'] = 'Клиент'; $wb['active_txt'] = 'Активно'; $wb['database_user_error_empty'] = 'Логин базы данных пустой'; $wb['database_user_error_unique'] = 'Такой пользователь базы данных уже существует. Что бы получить уникальное имя, например, сложите название сайта и ваше имя.'; -$wb['database_user_error_regex'] = 'Некорректный логин для базы данных. Логин может содержать только следующие символы: a-z, A-Z, 0-9 и \\"_\\". Длина: 2 - 16 символов.'; +$wb['database_user_error_regex'] = 'Некорректный логин для базы данных. Логин может содержать только следующие символы: a-z, A-Z, 0-9 и \"_\". Длина: 2 - 16 символов.'; $wb['database_user_error_len'] = 'Логин для базы данных - {user} - cлишком длинный. Максимальная длина логина - 16 символов'; $wb['btn_save_txt'] = 'Сохранить'; $wb['btn_cancel_txt'] = 'Отменить'; diff --git a/interface/web/sites/lib/lang/ru_web_childdomain.lng b/interface/web/sites/lib/lang/ru_web_childdomain.lng index af71669a4..49905e77e 100644 --- a/interface/web/sites/lib/lang/ru_web_childdomain.lng +++ b/interface/web/sites/lib/lang/ru_web_childdomain.lng @@ -42,7 +42,7 @@ $wb['no_flag_txt'] = 'Нет флага'; $wb['domain_error_wildcard'] = 'Wildcard поддомены не допускаются.'; $wb['proxy_directives_txt'] = 'Директивы прокси'; $wb['available_proxy_directive_snippets_txt'] = 'Доступные заготовки директив Proxy:'; -$wb['error_proxy_requires_url'] = 'Тип редиректа \\"proxy\\" требует URL в качестве пути перенаправления.'; +$wb['error_proxy_requires_url'] = 'Тип редиректа \"proxy\" требует URL в качестве пути перенаправления.'; $wb['backup_interval_txt'] = 'Интервал резервного копирования'; $wb['backup_copies_txt'] = 'Количество резервных копий'; $wb['ssl_key_txt'] = 'SSL-ключ'; diff --git a/interface/web/sites/lib/lang/ru_web_subdomain.lng b/interface/web/sites/lib/lang/ru_web_subdomain.lng index 376c78943..46203a181 100644 --- a/interface/web/sites/lib/lang/ru_web_subdomain.lng +++ b/interface/web/sites/lib/lang/ru_web_subdomain.lng @@ -42,7 +42,7 @@ $wb['no_flag_txt'] = 'Нет флага'; $wb['domain_error_wildcard'] = 'Wildcard-поддомены не допускаются.'; $wb['proxy_directives_txt'] = 'Директивы прокси'; $wb['available_proxy_directive_snippets_txt'] = 'Доступные заготовки директив Proxy:'; -$wb['error_proxy_requires_url'] = 'Тип редиректа \\"proxy\\" требует URL в качестве пути перенаправления.'; +$wb['error_proxy_requires_url'] = 'Тип редиректа \"proxy\" требует URL в качестве пути перенаправления.'; $wb['http_port_txt'] = 'Порт HTTP'; $wb['https_port_txt'] = 'Порт HTTPS'; $wb['http_port_error_regex'] = 'Некорректный порт HTTP.'; diff --git a/interface/web/sites/lib/lang/se.lng b/interface/web/sites/lib/lang/se.lng index 6b44cdcf7..a63670545 100644 --- a/interface/web/sites/lib/lang/se.lng +++ b/interface/web/sites/lib/lang/se.lng @@ -31,5 +31,5 @@ $wb['Available packages'] = 'Tillgängliga paket'; $wb['Installed packages'] = 'Installerade paket'; $wb['Update Packagelist'] = 'Uppdatera paketlista'; $wb['Subdomain (Vhost)'] = 'Underdomän (Vhost)'; -$wb['error_proxy_requires_url'] = 'Redirect Type \\"proxy\\" requires a URL as the redirect path.'; +$wb['error_proxy_requires_url'] = 'Redirect Type \"proxy\" requires a URL as the redirect path.'; ?> diff --git a/interface/web/sites/lib/lang/se_aps.lng b/interface/web/sites/lib/lang/se_aps.lng index 3b32095d6..f399880de 100644 --- a/interface/web/sites/lib/lang/se_aps.lng +++ b/interface/web/sites/lib/lang/se_aps.lng @@ -38,14 +38,14 @@ $wb['error_inv_main_location'] = 'The given install location folder is invalid.' $wb['error_license_agreement'] = 'In order to continue you have to accept the license agreement.'; $wb['error_no_database_pw'] = 'You have provided no valid database password.'; $wb['error_short_database_pw'] = 'Please choose a longer database password.'; -$wb['error_no_value_for'] = 'The field \\"%s\\" must not be empty.'; -$wb['error_short_value_for'] = 'The field \\"%s\\" requires a longer input value.'; -$wb['error_long_value_for'] = 'The field \\"%s\\" requires a shorter input value.'; -$wb['error_inv_value_for'] = 'You have entered an invalid value for the field \\"%s\\".'; -$wb['error_inv_email_for'] = 'You have entered an invalid mail address for the field \\"%s\\".'; -$wb['error_inv_domain_for'] = 'You have entered an invalid domain for the field \\"%s\\".'; -$wb['error_inv_integer_for'] = 'You have entered an invalid number for the field \\"%s\\".'; -$wb['error_inv_float_for'] = 'You have entered an invalid floating point number for the field \\"%s\\".'; +$wb['error_no_value_for'] = 'The field \"%s\" must not be empty.'; +$wb['error_short_value_for'] = 'The field \"%s\" requires a longer input value.'; +$wb['error_long_value_for'] = 'The field \"%s\" requires a shorter input value.'; +$wb['error_inv_value_for'] = 'You have entered an invalid value for the field \"%s\".'; +$wb['error_inv_email_for'] = 'You have entered an invalid mail address for the field \"%s\".'; +$wb['error_inv_domain_for'] = 'You have entered an invalid domain for the field \"%s\".'; +$wb['error_inv_integer_for'] = 'You have entered an invalid number for the field \"%s\".'; +$wb['error_inv_float_for'] = 'You have entered an invalid floating point number for the field \"%s\".'; $wb['error_used_location'] = 'The installation path already contains a package installation.'; $wb['installation_task_txt'] = 'Installation planerad'; $wb['installation_error_txt'] = 'Installationsfel'; diff --git a/interface/web/sites/lib/lang/se_web_childdomain.lng b/interface/web/sites/lib/lang/se_web_childdomain.lng index eff6791c6..52fba020a 100644 --- a/interface/web/sites/lib/lang/se_web_childdomain.lng +++ b/interface/web/sites/lib/lang/se_web_childdomain.lng @@ -43,7 +43,7 @@ $wb['no_flag_txt'] = 'No flag'; $wb['domain_error_wildcard'] = 'Wildcard subdomains are not allowed.'; $wb['proxy_directives_txt'] = 'Proxy Directives'; $wb['available_proxy_directive_snippets_txt'] = 'Available Proxy Directive Snippets:'; -$wb['error_proxy_requires_url'] = 'Redirect Type \\"proxy\\" requires a URL as the redirect path.'; +$wb['error_proxy_requires_url'] = 'Redirect Type \"proxy\" requires a URL as the redirect path.'; $wb['backup_interval_txt'] = 'Backup interval'; $wb['backup_copies_txt'] = 'Number of backup copies'; $wb['ssl_key_txt'] = 'SSL Key'; diff --git a/interface/web/sites/lib/lang/se_web_subdomain.lng b/interface/web/sites/lib/lang/se_web_subdomain.lng index ec784641e..a2d73c012 100644 --- a/interface/web/sites/lib/lang/se_web_subdomain.lng +++ b/interface/web/sites/lib/lang/se_web_subdomain.lng @@ -42,7 +42,7 @@ $wb['no_flag_txt'] = 'Ingan flagga'; $wb['domain_error_wildcard'] = 'Wildcard subdomains are not allowed.'; $wb['proxy_directives_txt'] = 'Proxy Directives'; $wb['available_proxy_directive_snippets_txt'] = 'Available Proxy Directive Snippets:'; -$wb['error_proxy_requires_url'] = 'Redirect Type \\"proxy\\" requires a URL as the redirect path.'; +$wb['error_proxy_requires_url'] = 'Redirect Type \"proxy\" requires a URL as the redirect path.'; $wb['http_port_txt'] = 'HTTP Port'; $wb['https_port_txt'] = 'HTTPS Port'; $wb['http_port_error_regex'] = 'HTTP Port invalid.'; diff --git a/interface/web/sites/lib/lang/sk.lng b/interface/web/sites/lib/lang/sk.lng index fabf52fda..401ad2c65 100644 --- a/interface/web/sites/lib/lang/sk.lng +++ b/interface/web/sites/lib/lang/sk.lng @@ -31,5 +31,5 @@ $wb['Available packages'] = 'Available packages'; $wb['Installed packages'] = 'Installed packages'; $wb['Update Packagelist'] = 'Update Packagelist'; $wb['Subdomain (Vhost)'] = 'Subdomain (Vhost)'; -$wb['error_proxy_requires_url'] = 'Redirect Type \\"proxy\\" requires a URL as the redirect path.'; +$wb['error_proxy_requires_url'] = 'Redirect Type \"proxy\" requires a URL as the redirect path.'; ?> diff --git a/interface/web/sites/lib/lang/sk_aps.lng b/interface/web/sites/lib/lang/sk_aps.lng index d6e6c7f4c..2b3dc9a0f 100644 --- a/interface/web/sites/lib/lang/sk_aps.lng +++ b/interface/web/sites/lib/lang/sk_aps.lng @@ -38,14 +38,14 @@ $wb['error_inv_main_location'] = 'The given install location folder is invalid.' $wb['error_license_agreement'] = 'In order to continue you have to accept the license agreement.'; $wb['error_no_database_pw'] = 'You have provided no valid database password.'; $wb['error_short_database_pw'] = 'Please choose a longer database password.'; -$wb['error_no_value_for'] = 'The field \\"%s\\" must not be empty.'; -$wb['error_short_value_for'] = 'The field \\"%s\\" requires a longer input value.'; -$wb['error_long_value_for'] = 'The field \\"%s\\" requires a shorter input value.'; -$wb['error_inv_value_for'] = 'You have entered an invalid value for the field \\"%s\\".'; -$wb['error_inv_email_for'] = 'You have entered an invalid mail address for the field \\"%s\\".'; -$wb['error_inv_domain_for'] = 'You have entered an invalid domain for the field \\"%s\\".'; -$wb['error_inv_integer_for'] = 'You have entered an invalid number for the field \\"%s\\".'; -$wb['error_inv_float_for'] = 'You have entered an invalid floating point number for the field \\"%s\\".'; +$wb['error_no_value_for'] = 'The field \"%s\" must not be empty.'; +$wb['error_short_value_for'] = 'The field \"%s\" requires a longer input value.'; +$wb['error_long_value_for'] = 'The field \"%s\" requires a shorter input value.'; +$wb['error_inv_value_for'] = 'You have entered an invalid value for the field \"%s\".'; +$wb['error_inv_email_for'] = 'You have entered an invalid mail address for the field \"%s\".'; +$wb['error_inv_domain_for'] = 'You have entered an invalid domain for the field \"%s\".'; +$wb['error_inv_integer_for'] = 'You have entered an invalid number for the field \"%s\".'; +$wb['error_inv_float_for'] = 'You have entered an invalid floating point number for the field \"%s\".'; $wb['error_used_location'] = 'The installation path already contains a package installation.'; $wb['installation_task_txt'] = 'Install planned'; $wb['installation_error_txt'] = 'Install error'; diff --git a/interface/web/sites/lib/lang/sk_web_childdomain.lng b/interface/web/sites/lib/lang/sk_web_childdomain.lng index e0d26667b..c91bee49a 100644 --- a/interface/web/sites/lib/lang/sk_web_childdomain.lng +++ b/interface/web/sites/lib/lang/sk_web_childdomain.lng @@ -42,7 +42,7 @@ $wb['no_flag_txt'] = 'No flag'; $wb['domain_error_wildcard'] = 'Wildcard subdomains are not allowed.'; $wb['proxy_directives_txt'] = 'Proxy Directives'; $wb['available_proxy_directive_snippets_txt'] = 'Available Proxy Directive Snippets:'; -$wb['error_proxy_requires_url'] = 'Redirect Type \\"proxy\\" requires a URL as the redirect path.'; +$wb['error_proxy_requires_url'] = 'Redirect Type \"proxy\" requires a URL as the redirect path.'; $wb['backup_interval_txt'] = 'Backup interval'; $wb['backup_copies_txt'] = 'Number of backup copies'; $wb['ssl_key_txt'] = 'SSL Key'; diff --git a/interface/web/sites/lib/lang/sk_web_subdomain.lng b/interface/web/sites/lib/lang/sk_web_subdomain.lng index f6bcffd90..d44bb27bd 100644 --- a/interface/web/sites/lib/lang/sk_web_subdomain.lng +++ b/interface/web/sites/lib/lang/sk_web_subdomain.lng @@ -42,7 +42,7 @@ $wb['no_flag_txt'] = 'No flag'; $wb['domain_error_wildcard'] = 'Wildcard subdomains are not allowed.'; $wb['proxy_directives_txt'] = 'Proxy Directives'; $wb['available_proxy_directive_snippets_txt'] = 'Available Proxy Directive Snippets:'; -$wb['error_proxy_requires_url'] = 'Redirect Type \\"proxy\\" requires a URL as the redirect path.'; +$wb['error_proxy_requires_url'] = 'Redirect Type \"proxy\" requires a URL as the redirect path.'; $wb['http_port_txt'] = 'HTTP Port'; $wb['https_port_txt'] = 'HTTPS Port'; $wb['http_port_error_regex'] = 'HTTP Port invalid.'; diff --git a/interface/web/sites/lib/lang/tr.lng b/interface/web/sites/lib/lang/tr.lng index d0570f6c1..4f8620c34 100644 --- a/interface/web/sites/lib/lang/tr.lng +++ b/interface/web/sites/lib/lang/tr.lng @@ -31,5 +31,5 @@ $wb['Available packages'] = 'Kullanılabilecek Paketler'; $wb['Installed packages'] = 'Yüklü Paketler'; $wb['Update Packagelist'] = 'Güncelleme Paketi Listesi'; $wb['Subdomain (Vhost)'] = 'Alt alan adı (SSunucu)'; -$wb['error_proxy_requires_url'] = '\\"Vekil Sunucu\\" yönlendirme tipi için, yönlendirilecek yolu gösteren bir İnternet adresi gereklidir.'; +$wb['error_proxy_requires_url'] = '\"Vekil Sunucu\" yönlendirme tipi için, yönlendirilecek yolu gösteren bir İnternet adresi gereklidir.'; ?> diff --git a/interface/web/sites/lib/lang/tr_aps.lng b/interface/web/sites/lib/lang/tr_aps.lng index 1c6ccd49a..f0eea59cb 100644 --- a/interface/web/sites/lib/lang/tr_aps.lng +++ b/interface/web/sites/lib/lang/tr_aps.lng @@ -40,14 +40,14 @@ $wb['error_inv_main_location'] = 'Yazdığınız yükleme konumunu klasörü ge $wb['error_license_agreement'] = 'Devam etmek için lisans anlaşmasını onaylamalısınız.'; $wb['error_no_database_pw'] = 'Yazdığınız veritabanı parolası geçersiz.'; $wb['error_short_database_pw'] = 'Lütfen daha uzun bir veritabanı parolası yazın.'; -$wb['error_no_value_for'] = '\\"%s\\" alanı boş olamaz.'; -$wb['error_short_value_for'] = '\\"%s\\" alanına daha uzun bir değer yazılmalıdır.'; -$wb['error_long_value_for'] = '\\"%s\\" alanına daha kısa bir değer yazılmalıdır.'; -$wb['error_inv_value_for'] = '\\"%s\\" alanına yazılan değer geçersiz.'; -$wb['error_inv_email_for'] = '\\"%s\\" alanına yazılan e-posta adresi geçersiz.'; -$wb['error_inv_domain_for'] = '\\"%s\\" alanına yazılan alan adı geçersiz.'; -$wb['error_inv_integer_for'] = '\\"%s\\" alanına yazılan sayı geçersiz.'; -$wb['error_inv_float_for'] = '\\"%s\\" alanına yazılan küsuratlı sayı geçersiz.'; +$wb['error_no_value_for'] = '\"%s\" alanı boş olamaz.'; +$wb['error_short_value_for'] = '\"%s\" alanına daha uzun bir değer yazılmalıdır.'; +$wb['error_long_value_for'] = '\"%s\" alanına daha kısa bir değer yazılmalıdır.'; +$wb['error_inv_value_for'] = '\"%s\" alanına yazılan değer geçersiz.'; +$wb['error_inv_email_for'] = '\"%s\" alanına yazılan e-posta adresi geçersiz.'; +$wb['error_inv_domain_for'] = '\"%s\" alanına yazılan alan adı geçersiz.'; +$wb['error_inv_integer_for'] = '\"%s\" alanına yazılan sayı geçersiz.'; +$wb['error_inv_float_for'] = '\"%s\" alanına yazılan küsuratlı sayı geçersiz.'; $wb['error_used_location'] = 'Yükleme yoluna daha önce yüklenmiş bir paket var.'; $wb['installation_task_txt'] = 'Yükleme planlandı'; $wb['installation_error_txt'] = 'Yükleme hatası'; diff --git a/interface/web/sites/lib/lang/tr_web_childdomain.lng b/interface/web/sites/lib/lang/tr_web_childdomain.lng index e11c6a92b..5d68e809b 100644 --- a/interface/web/sites/lib/lang/tr_web_childdomain.lng +++ b/interface/web/sites/lib/lang/tr_web_childdomain.lng @@ -42,7 +42,7 @@ $wb['no_flag_txt'] = 'No flag'; $wb['domain_error_wildcard'] = 'Wildcard subdomains are not allowed.'; $wb['proxy_directives_txt'] = 'Proxy Directives'; $wb['available_proxy_directive_snippets_txt'] = 'Available Proxy Directive Snippets:'; -$wb['error_proxy_requires_url'] = 'Redirect Type \\"proxy\\" requires a URL as the redirect path.'; +$wb['error_proxy_requires_url'] = 'Redirect Type \"proxy\" requires a URL as the redirect path.'; $wb['backup_interval_txt'] = 'Backup interval'; $wb['backup_copies_txt'] = 'Number of backup copies'; $wb['ssl_key_txt'] = 'SSL Key'; diff --git a/interface/web/sites/lib/lang/tr_web_subdomain.lng b/interface/web/sites/lib/lang/tr_web_subdomain.lng index 188b25758..c6e28bc6f 100644 --- a/interface/web/sites/lib/lang/tr_web_subdomain.lng +++ b/interface/web/sites/lib/lang/tr_web_subdomain.lng @@ -42,7 +42,7 @@ $wb['no_redirect_txt'] = 'Yönlendirme yok'; $wb['no_flag_txt'] = 'İşaret yok'; $wb['proxy_directives_txt'] = 'Vekil Sunucu Yönergeleri'; $wb['available_proxy_directive_snippets_txt'] = 'Kullanılabilecek Vekil Sunucu Yönerge Parçaları:'; -$wb['error_proxy_requires_url'] = '\\"Vekil Sunucu\\" yönlendirme tipi için, yönlendirilecek yolu gösteren bir İnternet adresi gereklidir.'; +$wb['error_proxy_requires_url'] = '\"Vekil Sunucu\" yönlendirme tipi için, yönlendirilecek yolu gösteren bir İnternet adresi gereklidir.'; $wb['http_port_txt'] = 'HTTP Port'; $wb['https_port_txt'] = 'HTTPS Port'; $wb['http_port_error_regex'] = 'HTTP Port invalid.'; diff --git a/interface/web/vm/lib/lang/dk_openvz_template.lng b/interface/web/vm/lib/lang/dk_openvz_template.lng index 9de4a6fd9..7016f41a6 100644 --- a/interface/web/vm/lib/lang/dk_openvz_template.lng +++ b/interface/web/vm/lib/lang/dk_openvz_template.lng @@ -44,7 +44,7 @@ $wb['tcpsndbuf_desc_txt'] = 'Total størrelse af TCP send buffere.'; $wb['tcprcvbuf_desc_txt'] = 'Total størrelse af TCP modtage buffere.'; $wb['othersockbuf_desc_txt'] = 'Total størrelse af UNIX-domæne sokel buffere, UDP og andre datagram protokoller send buffere.'; $wb['dgramrcvbuf_desc_txt'] = 'Modtage buffere af UDP og andre datagram protokoller.'; -$wb['oomguarpages_desc_txt'] = 'Den garanterede mængde hukommelse for det tilfælde hukommelsen er \\"over-booked\\" (out-of-memory kill guarantee), i sider.'; +$wb['oomguarpages_desc_txt'] = 'Den garanterede mængde hukommelse for det tilfælde hukommelsen er \"over-booked\" (out-of-memory kill guarantee), i sider.'; $wb['privvmpages_desc_txt'] = 'Hukommelses grænse tildeling, i sider.'; $wb['lockedpages_desc_txt'] = 'Proces-sider uden tiladelse til at blive byttet ud (pages locked by mlock(2)).'; $wb['shmpages_desc_txt'] = 'Total størrelse af delt hukommelse (IPC, delt anonyme afbildninger og tmpfs objekter), i sider.'; diff --git a/interface/web/vm/lib/lang/es_openvz_template.lng b/interface/web/vm/lib/lang/es_openvz_template.lng index 1abd562ed..1868240d3 100644 --- a/interface/web/vm/lib/lang/es_openvz_template.lng +++ b/interface/web/vm/lib/lang/es_openvz_template.lng @@ -44,7 +44,7 @@ $wb['tcpsndbuf_desc_txt'] = 'Tamaño total de los buffers de envío TCP.'; $wb['tcprcvbuf_desc_txt'] = 'Tamaño total de los buffers de recepción TCP.'; $wb['othersockbuf_desc_txt'] = 'Tamaño total de buffers de socket UNIX-domain, UDP y otros protocolos de envío para buffers de datagramas.'; $wb['dgramrcvbuf_desc_txt'] = 'Recibir buffers de UDP y otros protocolos de datagrama.'; -$wb['oomguarpages_desc_txt'] = 'La cantidad de memoria garantizada en caso de que la memoria \\"over-booked\\" (garantizado para out-of-memory kill), en las páginas.'; +$wb['oomguarpages_desc_txt'] = 'La cantidad de memoria garantizada en caso de que la memoria \"over-booked\" (garantizado para out-of-memory kill), en las páginas.'; $wb['privvmpages_desc_txt'] = 'Límite de asignación de memoria en las páginas.'; $wb['lockedpages_desc_txt'] = 'Páginas de procesos sin permisos para sacar del swap (páginas bloqueadas por mlock(2)).'; $wb['shmpages_desc_txt'] = 'Tamaño total de memoria compatida (IPC, asignaciones anónimas compartidas y objetos tmpfs), en las páginas.'; diff --git a/interface/web/vm/lib/lang/tr_openvz_template.lng b/interface/web/vm/lib/lang/tr_openvz_template.lng index fb1452e88..262121286 100644 --- a/interface/web/vm/lib/lang/tr_openvz_template.lng +++ b/interface/web/vm/lib/lang/tr_openvz_template.lng @@ -44,7 +44,7 @@ $wb['tcpsndbuf_desc_txt'] = 'TCP gönderme arabelleğinin toplam boyutu.'; $wb['tcprcvbuf_desc_txt'] = 'TCP alma arabelleğinin toplam boyutu.'; $wb['othersockbuf_desc_txt'] = 'UNIX alan adı soket arabelleğinin toplam boyutu, UDP ve diğer datagram iletişim kuralları gönderme ara bellekleri.'; $wb['dgramrcvbuf_desc_txt'] = 'UDP ve diğer datagram iletişim kuralları alma ara bellekleri.'; -$wb['oomguarpages_desc_txt'] = 'Bellek sayfası cinsinden, bellek taşması durumlarında garanti edilen bellek miktarı\\" (bellek bitti boşaltma garantisi).'; +$wb['oomguarpages_desc_txt'] = 'Bellek sayfası cinsinden, bellek taşması durumlarında garanti edilen bellek miktarı\" (bellek bitti boşaltma garantisi).'; $wb['privvmpages_desc_txt'] = 'Bellek sayfası cinsinden ayrılacak bellek sınırı.'; $wb['lockedpages_desc_txt'] = 'İşlem sayfaları takasına izin verilmez (mlock(2) ile kilitlenmiş sayfalar).'; $wb['shmpages_desc_txt'] = 'Bellek sayfası cinsinden, paylaşılan belleğin toplam boyutu (IPC, paylaşılan anonim haritalama ve tmpfs nesneleri).'; -- GitLab From ffc60c2a940bf9bf63c418c7f5ae12b4ebef4da0 Mon Sep 17 00:00:00 2001 From: Till Brehm Date: Fri, 5 Jul 2019 19:36:38 +0200 Subject: [PATCH 088/215] Created upd_0087.sql file from upd_dev_collection.sql --- install/sql/incremental/upd_0087.sql | 85 +++++++++++++++++++ .../sql/incremental/upd_dev_collection.sql | 85 ------------------- 2 files changed, 85 insertions(+), 85 deletions(-) create mode 100644 install/sql/incremental/upd_0087.sql diff --git a/install/sql/incremental/upd_0087.sql b/install/sql/incremental/upd_0087.sql new file mode 100644 index 000000000..55e3b846d --- /dev/null +++ b/install/sql/incremental/upd_0087.sql @@ -0,0 +1,85 @@ +ALTER TABLE `sys_datalog` ADD `session_id` varchar(64) NOT NULL DEFAULT '' AFTER `error`; +ALTER TABLE `sys_user` CHANGE `sys_userid` `sys_userid` INT(11) UNSIGNED NOT NULL DEFAULT '1' COMMENT 'Created by userid'; +ALTER TABLE `sys_user` CHANGE `sys_groupid` `sys_groupid` INT(11) UNSIGNED NOT NULL DEFAULT '1' COMMENT 'Created by groupid'; +ALTER TABLE `web_domain` ADD COLUMN `php_fpm_chroot` enum('n','y') NOT NULL DEFAULT 'n' AFTER `php_fpm_use_socket`; + +CREATE TABLE IF NOT EXISTS `dns_ssl_ca` ( + `id` int(10) unsigned NOT NULL AUTO_INCREMENT, + `sys_userid` int(11) unsigned NOT NULL DEFAULT '0', + `sys_groupid` int(11) unsigned NOT NULL DEFAULT '0', + `sys_perm_user` varchar(5) NOT NULL DEFAULT '', + `sys_perm_group` varchar(5) NOT NULL DEFAULT '', + `sys_perm_other` varchar(5) NOT NULL DEFAULT '', + `active` enum('N','Y') NOT NULL DEFAULT 'N', + `ca_name` varchar(255) NOT NULL DEFAULT '', + `ca_issue` varchar(255) NOT NULL DEFAULT '', + `ca_wildcard` enum('Y','N') NOT NULL DEFAULT 'N', + `ca_iodef` text NOT NULL, + `ca_critical` tinyint(1) NOT NULL DEFAULT '0', + PRIMARY KEY (`id`), + UNIQUE KEY (`ca_issue`) +) ENGINE=MyISAM DEFAULT CHARSET=utf8 AUTO_INCREMENT=1 ; + +ALTER TABLE `dns_ssl_ca` ADD UNIQUE(`ca_issue`); + +UPDATE `dns_ssl_ca` SET `ca_issue` = 'comodo.com' WHERE `ca_issue` = 'comodoca.com'; +DELETE FROM `dns_ssl_ca` WHERE `ca_issue` = 'geotrust.com'; +DELETE FROM `dns_ssl_ca` WHERE `ca_issue` = 'thawte.com'; +UPDATE `dns_ssl_ca` SET `ca_name` = 'Symantec / Thawte / GeoTrust' WHERE `ca_issue` = 'symantec.com'; + +ALTER TABLE `dns_rr` CHANGE `type` `type` ENUM('A','AAAA','ALIAS','CAA','CNAME','DS','HINFO','LOC','MX','NAPTR','NS','PTR','RP','SRV','TXT','TLSA','DNSKEY') CHARACTER SET utf8 COLLATE utf8_general_ci NULL DEFAULT NULL; +ALTER TABLE `dns_rr` CHANGE `data` `data` TEXT NOT NULL; +INSERT IGNORE INTO `dns_ssl_ca` (`id`, `sys_userid`, `sys_groupid`, `sys_perm_user`, `sys_perm_group`, `sys_perm_other`, `active`, `ca_name`, `ca_issue`, `ca_wildcard`, `ca_iodef`, `ca_critical`) VALUES +(NULL, 1, 1, 'riud', 'riud', '', 'Y', 'AC Camerfirma', 'camerfirma.com', 'Y', '', 0), +(NULL, 1, 1, 'riud', 'riud', '', 'Y', 'ACCV', 'accv.es', 'Y', '', 0), +(NULL, 1, 1, 'riud', 'riud', '', 'Y', 'Actalis', 'actalis.it', 'Y', '', 0), +(NULL, 1, 1, 'riud', 'riud', '', 'Y', 'Amazon', 'amazon.com', 'Y', '', 0), +(NULL, 1, 1, 'riud', 'riud', '', 'Y', 'Asseco', 'certum.pl', 'Y', '', 0), +(NULL, 1, 1, 'riud', 'riud', '', 'Y', 'Buypass', 'buypass.com', 'Y', '', 0), +(NULL, 1, 1, 'riud', 'riud', '', 'Y', 'CA Disig', 'disig.sk', 'Y', '', 0), +(NULL, 1, 1, 'riud', 'riud', '', 'Y', 'CATCert', 'aoc.cat', 'Y', '', 0), +(NULL, 1, 1, 'riud', 'riud', '', 'Y', 'Certinomis', 'www.certinomis.com', 'Y', '', 0), +(NULL, 1, 1, 'riud', 'riud', '', 'Y', 'Certizen', 'hongkongpost.gov.hk', 'Y', '', 0), +(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', 'Comodo', 'comodoca.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), +(NULL, 1, 1, 'riud', 'riud', '', 'Y', 'e-tugra', 'e-tugra.com', 'Y', '', 0), +(NULL, 1, 1, 'riud', 'riud', '', 'Y', 'EDICOM', 'edicomgroup.com', 'Y', '', 0), +(NULL, 1, 1, 'riud', 'riud', '', 'Y', 'Entrust', 'entrust.net', 'Y', '', 0), +(NULL, 1, 1, 'riud', 'riud', '', 'Y', 'Firmaprofesional', 'firmaprofesional.com', 'Y', '', 0), +(NULL, 1, 1, 'riud', 'riud', '', 'Y', 'FNMT', 'fnmt.es', 'Y', '', 0), +(NULL, 1, 1, 'riud', 'riud', '', 'Y', 'GlobalSign', 'globalsign.com', 'Y', '', 0), +(NULL, 1, 1, 'riud', 'riud', '', 'Y', 'GoDaddy', 'godaddy.com', 'Y', '', 0), +(NULL, 1, 1, 'riud', 'riud', '', 'Y', 'Google Trust Services', 'pki.goog', 'Y', '', 0), +(NULL, 1, 1, 'riud', 'riud', '', 'Y', 'GRCA', 'gca.nat.gov.tw', 'Y', '', 0), +(NULL, 1, 1, 'riud', 'riud', '', 'Y', 'HARICA', 'harica.gr', 'Y', '', 0), +(NULL, 1, 1, 'riud', 'riud', '', 'Y', 'IdenTrust', 'identrust.com', 'Y', '', 0), +(NULL, 1, 1, 'riud', 'riud', '', 'Y', 'Izenpe', 'izenpe.com', 'Y', '', 0), +(NULL, 1, 1, 'riud', 'riud', '', 'Y', 'Kamu SM', 'kamusm.gov.tr', 'Y', '', 0), +(NULL, 1, 1, 'riud', 'riud', '', 'Y', 'Let''s Encrypt', 'letsencrypt.org', 'Y', '', 0), +(NULL, 1, 1, 'riud', 'riud', '', 'Y', 'Microsec e-Szigno', 'e-szigno.hu', 'Y', '', 0), +(NULL, 1, 1, 'riud', 'riud', '', 'Y', 'NetLock', 'netlock.hu', 'Y', '', 0), +(NULL, 1, 1, 'riud', 'riud', '', 'Y', 'PKIoverheid', 'www.pkioverheid.nl', 'Y', '', 0), +(NULL, 1, 1, 'riud', 'riud', '', 'Y', 'PROCERT', 'procert.net.ve', 'Y', '', 0), +(NULL, 1, 1, 'riud', 'riud', '', 'Y', 'QuoVadis', 'quovadisglobal.com', 'Y', '', 0), +(NULL, 1, 1, 'riud', 'riud', '', 'Y', 'SECOM', 'secomtrust.net', 'Y', '', 0), +(NULL, 1, 1, 'riud', 'riud', '', 'Y', 'Sertifitseerimiskeskuse', 'sk.ee', 'Y', '', 0), +(NULL, 1, 1, 'riud', 'riud', '', 'Y', 'StartCom', 'startcomca.com', 'Y', '', 0), +(NULL, 1, 1, 'riud', 'riud', '', 'Y', 'SwissSign', 'swisssign.com', 'Y', '', 0), +(NULL, 1, 1, 'riud', 'riud', '', 'Y', 'Symantec / Thawte / GeoTrust', 'symantec.com', 'Y', '', 0), +(NULL, 1, 1, 'riud', 'riud', '', 'Y', 'T-Systems', 'telesec.de', 'Y', '', 0), +(NULL, 1, 1, 'riud', 'riud', '', 'Y', 'Telia', 'telia.com', 'Y', '', 0), +(NULL, 1, 1, 'riud', 'riud', '', 'Y', 'Trustwave', 'trustwave.com', 'Y', '', 0), +(NULL, 1, 1, 'riud', 'riud', '', 'Y', 'Web.com', 'web.com', 'Y', '', 0), +(NULL, 1, 1, 'riud', 'riud', '', 'Y', 'WISeKey', 'wisekey.com', 'Y', '', 0), +(NULL, 1, 1, 'riud', 'riud', '', 'Y', 'WoSign', 'wosign.com', 'Y', '', 0); + +ALTER TABLE `dns_soa` CHANGE `xfer` `xfer` TEXT NULL; +ALTER TABLE `dns_soa` CHANGE `also_notify` `also_notify` TEXT NULL; +ALTER TABLE `dns_slave` CHANGE `xfer` `xfer` TEXT NULL; +ALTER TABLE `firewall` CHANGE `tcp_port` `tcp_port` TEXT CHARACTER SET utf8 COLLATE utf8_general_ci NULL DEFAULT NULL; +ALTER TABLE `firewall` CHANGE `udp_port` `udp_port` TEXT CHARACTER SET utf8 COLLATE utf8_general_ci NULL DEFAULT NULL; \ No newline at end of file diff --git a/install/sql/incremental/upd_dev_collection.sql b/install/sql/incremental/upd_dev_collection.sql index 55e3b846d..e69de29bb 100644 --- a/install/sql/incremental/upd_dev_collection.sql +++ b/install/sql/incremental/upd_dev_collection.sql @@ -1,85 +0,0 @@ -ALTER TABLE `sys_datalog` ADD `session_id` varchar(64) NOT NULL DEFAULT '' AFTER `error`; -ALTER TABLE `sys_user` CHANGE `sys_userid` `sys_userid` INT(11) UNSIGNED NOT NULL DEFAULT '1' COMMENT 'Created by userid'; -ALTER TABLE `sys_user` CHANGE `sys_groupid` `sys_groupid` INT(11) UNSIGNED NOT NULL DEFAULT '1' COMMENT 'Created by groupid'; -ALTER TABLE `web_domain` ADD COLUMN `php_fpm_chroot` enum('n','y') NOT NULL DEFAULT 'n' AFTER `php_fpm_use_socket`; - -CREATE TABLE IF NOT EXISTS `dns_ssl_ca` ( - `id` int(10) unsigned NOT NULL AUTO_INCREMENT, - `sys_userid` int(11) unsigned NOT NULL DEFAULT '0', - `sys_groupid` int(11) unsigned NOT NULL DEFAULT '0', - `sys_perm_user` varchar(5) NOT NULL DEFAULT '', - `sys_perm_group` varchar(5) NOT NULL DEFAULT '', - `sys_perm_other` varchar(5) NOT NULL DEFAULT '', - `active` enum('N','Y') NOT NULL DEFAULT 'N', - `ca_name` varchar(255) NOT NULL DEFAULT '', - `ca_issue` varchar(255) NOT NULL DEFAULT '', - `ca_wildcard` enum('Y','N') NOT NULL DEFAULT 'N', - `ca_iodef` text NOT NULL, - `ca_critical` tinyint(1) NOT NULL DEFAULT '0', - PRIMARY KEY (`id`), - UNIQUE KEY (`ca_issue`) -) ENGINE=MyISAM DEFAULT CHARSET=utf8 AUTO_INCREMENT=1 ; - -ALTER TABLE `dns_ssl_ca` ADD UNIQUE(`ca_issue`); - -UPDATE `dns_ssl_ca` SET `ca_issue` = 'comodo.com' WHERE `ca_issue` = 'comodoca.com'; -DELETE FROM `dns_ssl_ca` WHERE `ca_issue` = 'geotrust.com'; -DELETE FROM `dns_ssl_ca` WHERE `ca_issue` = 'thawte.com'; -UPDATE `dns_ssl_ca` SET `ca_name` = 'Symantec / Thawte / GeoTrust' WHERE `ca_issue` = 'symantec.com'; - -ALTER TABLE `dns_rr` CHANGE `type` `type` ENUM('A','AAAA','ALIAS','CAA','CNAME','DS','HINFO','LOC','MX','NAPTR','NS','PTR','RP','SRV','TXT','TLSA','DNSKEY') CHARACTER SET utf8 COLLATE utf8_general_ci NULL DEFAULT NULL; -ALTER TABLE `dns_rr` CHANGE `data` `data` TEXT NOT NULL; -INSERT IGNORE INTO `dns_ssl_ca` (`id`, `sys_userid`, `sys_groupid`, `sys_perm_user`, `sys_perm_group`, `sys_perm_other`, `active`, `ca_name`, `ca_issue`, `ca_wildcard`, `ca_iodef`, `ca_critical`) VALUES -(NULL, 1, 1, 'riud', 'riud', '', 'Y', 'AC Camerfirma', 'camerfirma.com', 'Y', '', 0), -(NULL, 1, 1, 'riud', 'riud', '', 'Y', 'ACCV', 'accv.es', 'Y', '', 0), -(NULL, 1, 1, 'riud', 'riud', '', 'Y', 'Actalis', 'actalis.it', 'Y', '', 0), -(NULL, 1, 1, 'riud', 'riud', '', 'Y', 'Amazon', 'amazon.com', 'Y', '', 0), -(NULL, 1, 1, 'riud', 'riud', '', 'Y', 'Asseco', 'certum.pl', 'Y', '', 0), -(NULL, 1, 1, 'riud', 'riud', '', 'Y', 'Buypass', 'buypass.com', 'Y', '', 0), -(NULL, 1, 1, 'riud', 'riud', '', 'Y', 'CA Disig', 'disig.sk', 'Y', '', 0), -(NULL, 1, 1, 'riud', 'riud', '', 'Y', 'CATCert', 'aoc.cat', 'Y', '', 0), -(NULL, 1, 1, 'riud', 'riud', '', 'Y', 'Certinomis', 'www.certinomis.com', 'Y', '', 0), -(NULL, 1, 1, 'riud', 'riud', '', 'Y', 'Certizen', 'hongkongpost.gov.hk', 'Y', '', 0), -(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', 'Comodo', 'comodoca.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), -(NULL, 1, 1, 'riud', 'riud', '', 'Y', 'e-tugra', 'e-tugra.com', 'Y', '', 0), -(NULL, 1, 1, 'riud', 'riud', '', 'Y', 'EDICOM', 'edicomgroup.com', 'Y', '', 0), -(NULL, 1, 1, 'riud', 'riud', '', 'Y', 'Entrust', 'entrust.net', 'Y', '', 0), -(NULL, 1, 1, 'riud', 'riud', '', 'Y', 'Firmaprofesional', 'firmaprofesional.com', 'Y', '', 0), -(NULL, 1, 1, 'riud', 'riud', '', 'Y', 'FNMT', 'fnmt.es', 'Y', '', 0), -(NULL, 1, 1, 'riud', 'riud', '', 'Y', 'GlobalSign', 'globalsign.com', 'Y', '', 0), -(NULL, 1, 1, 'riud', 'riud', '', 'Y', 'GoDaddy', 'godaddy.com', 'Y', '', 0), -(NULL, 1, 1, 'riud', 'riud', '', 'Y', 'Google Trust Services', 'pki.goog', 'Y', '', 0), -(NULL, 1, 1, 'riud', 'riud', '', 'Y', 'GRCA', 'gca.nat.gov.tw', 'Y', '', 0), -(NULL, 1, 1, 'riud', 'riud', '', 'Y', 'HARICA', 'harica.gr', 'Y', '', 0), -(NULL, 1, 1, 'riud', 'riud', '', 'Y', 'IdenTrust', 'identrust.com', 'Y', '', 0), -(NULL, 1, 1, 'riud', 'riud', '', 'Y', 'Izenpe', 'izenpe.com', 'Y', '', 0), -(NULL, 1, 1, 'riud', 'riud', '', 'Y', 'Kamu SM', 'kamusm.gov.tr', 'Y', '', 0), -(NULL, 1, 1, 'riud', 'riud', '', 'Y', 'Let''s Encrypt', 'letsencrypt.org', 'Y', '', 0), -(NULL, 1, 1, 'riud', 'riud', '', 'Y', 'Microsec e-Szigno', 'e-szigno.hu', 'Y', '', 0), -(NULL, 1, 1, 'riud', 'riud', '', 'Y', 'NetLock', 'netlock.hu', 'Y', '', 0), -(NULL, 1, 1, 'riud', 'riud', '', 'Y', 'PKIoverheid', 'www.pkioverheid.nl', 'Y', '', 0), -(NULL, 1, 1, 'riud', 'riud', '', 'Y', 'PROCERT', 'procert.net.ve', 'Y', '', 0), -(NULL, 1, 1, 'riud', 'riud', '', 'Y', 'QuoVadis', 'quovadisglobal.com', 'Y', '', 0), -(NULL, 1, 1, 'riud', 'riud', '', 'Y', 'SECOM', 'secomtrust.net', 'Y', '', 0), -(NULL, 1, 1, 'riud', 'riud', '', 'Y', 'Sertifitseerimiskeskuse', 'sk.ee', 'Y', '', 0), -(NULL, 1, 1, 'riud', 'riud', '', 'Y', 'StartCom', 'startcomca.com', 'Y', '', 0), -(NULL, 1, 1, 'riud', 'riud', '', 'Y', 'SwissSign', 'swisssign.com', 'Y', '', 0), -(NULL, 1, 1, 'riud', 'riud', '', 'Y', 'Symantec / Thawte / GeoTrust', 'symantec.com', 'Y', '', 0), -(NULL, 1, 1, 'riud', 'riud', '', 'Y', 'T-Systems', 'telesec.de', 'Y', '', 0), -(NULL, 1, 1, 'riud', 'riud', '', 'Y', 'Telia', 'telia.com', 'Y', '', 0), -(NULL, 1, 1, 'riud', 'riud', '', 'Y', 'Trustwave', 'trustwave.com', 'Y', '', 0), -(NULL, 1, 1, 'riud', 'riud', '', 'Y', 'Web.com', 'web.com', 'Y', '', 0), -(NULL, 1, 1, 'riud', 'riud', '', 'Y', 'WISeKey', 'wisekey.com', 'Y', '', 0), -(NULL, 1, 1, 'riud', 'riud', '', 'Y', 'WoSign', 'wosign.com', 'Y', '', 0); - -ALTER TABLE `dns_soa` CHANGE `xfer` `xfer` TEXT NULL; -ALTER TABLE `dns_soa` CHANGE `also_notify` `also_notify` TEXT NULL; -ALTER TABLE `dns_slave` CHANGE `xfer` `xfer` TEXT NULL; -ALTER TABLE `firewall` CHANGE `tcp_port` `tcp_port` TEXT CHARACTER SET utf8 COLLATE utf8_general_ci NULL DEFAULT NULL; -ALTER TABLE `firewall` CHANGE `udp_port` `udp_port` TEXT CHARACTER SET utf8 COLLATE utf8_general_ci NULL DEFAULT NULL; \ No newline at end of file -- GitLab From 7ee3e451be6231c8228a664876ed625a20964e92 Mon Sep 17 00:00:00 2001 From: Till Brehm Date: Mon, 8 Jul 2019 12:47:55 +0200 Subject: [PATCH 089/215] Changed config for Ubuntu unknown from 1604 to 1804 --- install/lib/install.lib.php | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/install/lib/install.lib.php b/install/lib/install.lib.php index 6b3a7cd62..1e49e025c 100644 --- a/install/lib/install.lib.php +++ b/install/lib/install.lib.php @@ -186,7 +186,7 @@ function get_distname() { break; default: $relname = "UNKNOWN"; - $distconfid = 'ubuntu1604'; + $distconfid = 'ubuntu1804'; } $distver = $ver.$lts." ".$relname; swriteln("Operating System: ".$distname.' '.$distver."\n"); -- GitLab From c8b6f257f95ee4221a6dff038fb7cb3fde0966ba Mon Sep 17 00:00:00 2001 From: Till Brehm Date: Mon, 8 Jul 2019 13:19:05 +0200 Subject: [PATCH 090/215] Fixed installer warning: postconf: warning: unmatched request: "maildrop.unix" --- install/lib/installer_base.lib.php | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/install/lib/installer_base.lib.php b/install/lib/installer_base.lib.php index 1c32c6498..8d0456ef5 100644 --- a/install/lib/installer_base.lib.php +++ b/install/lib/installer_base.lib.php @@ -1050,7 +1050,7 @@ class installer_base { $regex = "/^maildrop unix.*pipe flags=DRhu user=vmail argv=\\/usr\\/bin\\/maildrop -d ".$cf['vmail_username']." \\$\{extension} \\$\{recipient} \\$\{user} \\$\{nexthop} \\$\{sender}/"; $configfile = $config_dir.'/master.cf'; if($this->get_postfix_service('maildrop', 'unix')) { - exec ("postconf -M maildrop.unix &> /dev/null", $out, $ret); + exec ("postconf -M maildrop.unix 2> /dev/null", $out, $ret); $change_maildrop_flags = @(preg_match($regex, $out[0]) && $out[0] !='')?false:true; } else { $change_maildrop_flags = @(preg_match($regex, $configfile))?false:true; -- GitLab From 7b5d94518aa4f0e61876e1ca324e6e7b9339b90d Mon Sep 17 00:00:00 2001 From: Marius Burkard Date: Mon, 8 Jul 2019 17:17:44 +0200 Subject: [PATCH 091/215] - added rspamd functionality --- install/dist/conf/centos70.conf.php | 5 + install/dist/conf/centos72.conf.php | 5 + install/dist/conf/debian40.conf.php | 5 + install/dist/conf/debian60.conf.php | 5 + install/dist/conf/debian90.conf.php | 5 + install/dist/conf/debiantesting.conf.php | 5 + install/dist/conf/debiantesting.conf.php.orig | 234 ++ install/dist/conf/fedora9.conf.php | 5 + install/dist/conf/gentoo.conf.php | 5 + install/dist/conf/opensuse112.conf.php | 5 + install/dist/conf/ubuntu1604.conf.php | 5 + install/dist/conf/ubuntu1710.conf.php | 5 + install/dist/conf/ubuntu1804.conf.php | 7 +- install/dist/lib/debian60.lib.php | 1 - install/dist/lib/fedora.lib.php | 1 - install/install.php | 24 +- install/lib/classes/tpl.inc.php | 141 - install/lib/installer_base.lib.php | 166 + install/lib/installer_base.lib.php.orig | 2962 +++++++++++++++++ .../sql/incremental/upd_dev_collection.sql | 32 + .../incremental/upd_dev_collection.sql.orig | 0 .../incremental/upd_dev_collection.sql.rej | 40 + install/sql/ispconfig3.sql | 19 +- install/sql/ispconfig3.sql.orig | 2570 ++++++++++++++ install/sql/ispconfig3.sql.rej | 23 + install/tpl/rspamd_antivirus.conf.master | 30 + .../tpl/rspamd_classifier-bayes.conf.master | 3 + install/tpl/rspamd_dkim_signing.conf.master | 2 + install/tpl/rspamd_greylist.conf.master | 1 + install/tpl/rspamd_groups.conf.master | 4 + install/tpl/rspamd_milter_headers.conf.master | 2 + install/tpl/rspamd_mx_check.conf.master | 9 + install/tpl/rspamd_neural.conf.master | 31 + install/tpl/rspamd_neural_group.conf.master | 18 + install/tpl/rspamd_options.inc.master | 5 + install/tpl/rspamd_override_rbl.conf.master | 53 + install/tpl/rspamd_override_surbl.conf.master | 108 + install/tpl/rspamd_redis.conf.master | 1 + .../tpl/rspamd_symbols_antivirus.conf.master | 15 + install/tpl/rspamd_users.conf.master | 43 + install/tpl/rspamd_users.inc.conf.master | 1 + install/tpl/rspamd_wblist.inc.conf.master | 18 + .../tpl/rspamd_worker-controller.inc.master | 1 + install/tpl/server.ini.master | 2 + install/update.php | 7 + interface/lib/lang/de.lng | 3 +- .../web/admin/form/server_config.tform.php | 31 +- .../admin/form/server_config.tform.php.orig | 1956 +++++++++++ .../web/admin/lib/lang/de_server_config.lng | 5 +- .../admin/lib/lang/de_server_config.lng.orig | 299 ++ .../admin/lib/lang/de_server_config.lng.rej | 11 + .../web/admin/lib/lang/en_server_config.lng | 5 +- .../admin/lib/lang/en_server_config.lng.orig | 300 ++ .../admin/lib/lang/en_server_config.lng.rej | 11 + interface/web/admin/server_config_edit.php | 71 + .../templates/server_config_mail_edit.htm | 34 + .../web/mail/form/spamfilter_policy.tform.php | 36 + .../form/spamfilter_policy.tform.php.orig | 496 +++ .../mail/lib/lang/de_spamfilter_policy.lng | 8 +- interface/web/mail/lib/lang/en.lng | 3 +- .../mail/lib/lang/en_spamfilter_policy.lng | 9 +- interface/web/mail/mail_domain_edit.php | 9 +- interface/web/mail/mail_user_edit.php | 4 +- interface/web/mail/spamfilter_policy_edit.php | 72 +- interface/web/mail/spamfilter_policy_list.php | 29 +- .../mail/templates/spamfilter_policy_edit.htm | 3 +- .../mail/templates/spamfilter_policy_list.htm | 10 +- .../templates/spamfilter_taglevel_edit.htm | 31 +- server/conf/apache_apps.vhost.master | 10 + server/conf/autoresponder.master | 2 +- server/conf/nginx_apps.vhost.master | 25 + server/conf/rspamd_users.inc.conf.master | 41 + .../conf/rspamd_worker-controller.inc.master | 8 + server/conf/sieve_filter.master | 6 +- server/conf/sieve_filter_1.2.master | 6 +- server/mods-available/mail_module.inc.php | 37 +- .../apps_vhost_plugin.inc.php | 22 +- .../mail_plugin_dkim.inc.php | 3 + .../postfix_server_plugin.inc.php | 62 +- .../plugins-available/rspamd_plugin.inc.php | 255 ++ 80 files changed, 10326 insertions(+), 216 deletions(-) create mode 100644 install/dist/conf/debiantesting.conf.php.orig create mode 100644 install/lib/installer_base.lib.php.orig create mode 100644 install/sql/incremental/upd_dev_collection.sql.orig create mode 100644 install/sql/incremental/upd_dev_collection.sql.rej create mode 100644 install/sql/ispconfig3.sql.orig create mode 100644 install/sql/ispconfig3.sql.rej create mode 100644 install/tpl/rspamd_antivirus.conf.master create mode 100644 install/tpl/rspamd_classifier-bayes.conf.master create mode 100644 install/tpl/rspamd_dkim_signing.conf.master create mode 100644 install/tpl/rspamd_greylist.conf.master create mode 100644 install/tpl/rspamd_groups.conf.master create mode 100644 install/tpl/rspamd_milter_headers.conf.master create mode 100644 install/tpl/rspamd_mx_check.conf.master create mode 100644 install/tpl/rspamd_neural.conf.master create mode 100644 install/tpl/rspamd_neural_group.conf.master create mode 100644 install/tpl/rspamd_options.inc.master create mode 100644 install/tpl/rspamd_override_rbl.conf.master create mode 100644 install/tpl/rspamd_override_surbl.conf.master create mode 100644 install/tpl/rspamd_redis.conf.master create mode 100644 install/tpl/rspamd_symbols_antivirus.conf.master create mode 100644 install/tpl/rspamd_users.conf.master create mode 120000 install/tpl/rspamd_users.inc.conf.master create mode 100644 install/tpl/rspamd_wblist.inc.conf.master create mode 120000 install/tpl/rspamd_worker-controller.inc.master create mode 100644 interface/web/admin/form/server_config.tform.php.orig create mode 100644 interface/web/admin/lib/lang/de_server_config.lng.orig create mode 100644 interface/web/admin/lib/lang/de_server_config.lng.rej create mode 100644 interface/web/admin/lib/lang/en_server_config.lng.orig create mode 100644 interface/web/admin/lib/lang/en_server_config.lng.rej create mode 100644 interface/web/mail/form/spamfilter_policy.tform.php.orig create mode 100644 server/conf/rspamd_users.inc.conf.master create mode 100644 server/conf/rspamd_worker-controller.inc.master create mode 100644 server/plugins-available/rspamd_plugin.inc.php diff --git a/install/dist/conf/centos70.conf.php b/install/dist/conf/centos70.conf.php index a40e88ed7..0465e5618 100644 --- a/install/dist/conf/centos70.conf.php +++ b/install/dist/conf/centos70.conf.php @@ -147,6 +147,11 @@ $conf['amavis']['installed'] = false; // will be detected automatically during i $conf['amavis']['config_dir'] = '/etc/amavisd'; $conf['amavis']['init_script'] = 'amavisd'; +//* Rspamd +$conf['rspamd']['installed'] = false; // will be detected automatically during installation +$conf['rspamd']['config_dir'] = '/etc/rspamd'; +$conf['rspamd']['init_script'] = 'rspamd'; + //* ClamAV $conf['clamav']['installed'] = false; // will be detected automatically during installation $conf['clamav']['init_script'] = 'clamd@amavisd'; diff --git a/install/dist/conf/centos72.conf.php b/install/dist/conf/centos72.conf.php index e7ab6030b..221cc5d7c 100644 --- a/install/dist/conf/centos72.conf.php +++ b/install/dist/conf/centos72.conf.php @@ -147,6 +147,11 @@ $conf['amavis']['installed'] = false; // will be detected automatically during i $conf['amavis']['config_dir'] = '/etc/amavisd'; $conf['amavis']['init_script'] = 'amavisd'; +//* Rspamd +$conf['rspamd']['installed'] = false; // will be detected automatically during installation +$conf['rspamd']['config_dir'] = '/etc/rspamd'; +$conf['rspamd']['init_script'] = 'rspamd'; + //* ClamAV $conf['clamav']['installed'] = false; // will be detected automatically during installation $conf['clamav']['init_script'] = 'clamd@amavisd'; diff --git a/install/dist/conf/debian40.conf.php b/install/dist/conf/debian40.conf.php index 613c828d1..c04a54e99 100644 --- a/install/dist/conf/debian40.conf.php +++ b/install/dist/conf/debian40.conf.php @@ -149,6 +149,11 @@ $conf['amavis']['installed'] = false; // will be detected automatically during i $conf['amavis']['config_dir'] = '/etc/amavis'; $conf['amavis']['init_script'] = 'amavis'; +//* Rspamd +$conf['rspamd']['installed'] = false; // will be detected automatically during installation +$conf['rspamd']['config_dir'] = '/etc/rspamd'; +$conf['rspamd']['init_script'] = 'rspamd'; + //* ClamAV $conf['clamav']['installed'] = false; // will be detected automatically during installation $conf['clamav']['init_script'] = 'clamav-daemon'; diff --git a/install/dist/conf/debian60.conf.php b/install/dist/conf/debian60.conf.php index 2c26dcb9c..e7c8f5984 100644 --- a/install/dist/conf/debian60.conf.php +++ b/install/dist/conf/debian60.conf.php @@ -149,6 +149,11 @@ $conf['amavis']['installed'] = false; // will be detected automatically during i $conf['amavis']['config_dir'] = '/etc/amavis'; $conf['amavis']['init_script'] = 'amavis'; +//* Rspamd +$conf['rspamd']['installed'] = false; // will be detected automatically during installation +$conf['rspamd']['config_dir'] = '/etc/rspamd'; +$conf['rspamd']['init_script'] = 'rspamd'; + //* ClamAV $conf['clamav']['installed'] = false; // will be detected automatically during installation $conf['clamav']['init_script'] = 'clamav-daemon'; diff --git a/install/dist/conf/debian90.conf.php b/install/dist/conf/debian90.conf.php index cdaf7aa9a..13fd23065 100644 --- a/install/dist/conf/debian90.conf.php +++ b/install/dist/conf/debian90.conf.php @@ -153,6 +153,11 @@ $conf['amavis']['installed'] = false; // will be detected automatically during i $conf['amavis']['config_dir'] = '/etc/amavis'; $conf['amavis']['init_script'] = 'amavis'; +//* Rspamd +$conf['rspamd']['installed'] = false; // will be detected automatically during installation +$conf['rspamd']['config_dir'] = '/etc/rspamd'; +$conf['rspamd']['init_script'] = 'rspamd'; + //* ClamAV $conf['clamav']['installed'] = false; // will be detected automatically during installation $conf['clamav']['init_script'] = 'clamav-daemon'; diff --git a/install/dist/conf/debiantesting.conf.php b/install/dist/conf/debiantesting.conf.php index 5e5e32f47..6ea9112df 100644 --- a/install/dist/conf/debiantesting.conf.php +++ b/install/dist/conf/debiantesting.conf.php @@ -153,6 +153,11 @@ $conf['amavis']['installed'] = false; // will be detected automatically during i $conf['amavis']['config_dir'] = '/etc/amavis'; $conf['amavis']['init_script'] = 'amavis'; +//* Rspamd +$conf['rspamd']['installed'] = false; // will be detected automatically during installation +$conf['rspamd']['config_dir'] = '/etc/rspamd'; +$conf['rspamd']['init_script'] = 'rspamd'; + //* ClamAV $conf['clamav']['installed'] = false; // will be detected automatically during installation $conf['clamav']['init_script'] = 'clamav-daemon'; diff --git a/install/dist/conf/debiantesting.conf.php.orig b/install/dist/conf/debiantesting.conf.php.orig new file mode 100644 index 000000000..5e5e32f47 --- /dev/null +++ b/install/dist/conf/debiantesting.conf.php.orig @@ -0,0 +1,234 @@ + diff --git a/install/dist/conf/fedora9.conf.php b/install/dist/conf/fedora9.conf.php index 80539a785..19c9a4f62 100644 --- a/install/dist/conf/fedora9.conf.php +++ b/install/dist/conf/fedora9.conf.php @@ -147,6 +147,11 @@ $conf['amavis']['installed'] = false; // will be detected automatically during i $conf['amavis']['config_dir'] = '/etc/amavisd'; $conf['amavis']['init_script'] = 'amavisd'; +//* Rspamd +$conf['rspamd']['installed'] = false; // will be detected automatically during installation +$conf['rspamd']['config_dir'] = '/etc/rspamd'; +$conf['rspamd']['init_script'] = 'rspamd'; + //* ClamAV $conf['clamav']['installed'] = false; // will be detected automatically during installation $conf['clamav']['init_script'] = 'clamd.amavisd'; diff --git a/install/dist/conf/gentoo.conf.php b/install/dist/conf/gentoo.conf.php index 2955cfa71..24c7d0633 100644 --- a/install/dist/conf/gentoo.conf.php +++ b/install/dist/conf/gentoo.conf.php @@ -162,6 +162,11 @@ $conf['amavis']['installed'] = false; // will be detected automatically during i $conf['amavis']['config_file'] = '/etc/amavisd.conf'; $conf['amavis']['init_script'] = 'amavisd'; +//* Rspamd +$conf['rspamd']['installed'] = false; // will be detected automatically during installation +$conf['rspamd']['config_dir'] = '/etc/rspamd'; +$conf['rspamd']['init_script'] = 'rspamd'; + //* ClamAV $conf['clamav']['installed'] = false; // will be detected automatically during installation $conf['clamav']['init_script'] = 'clamd'; diff --git a/install/dist/conf/opensuse112.conf.php b/install/dist/conf/opensuse112.conf.php index fa0504652..378320a14 100644 --- a/install/dist/conf/opensuse112.conf.php +++ b/install/dist/conf/opensuse112.conf.php @@ -147,6 +147,11 @@ $conf['amavis']['installed'] = false; // will be detected automatically during i $conf['amavis']['config_dir'] = '/etc'; $conf['amavis']['init_script'] = 'amavis'; +//* Rspamd +$conf['rspamd']['installed'] = false; // will be detected automatically during installation +$conf['rspamd']['config_dir'] = '/etc/rspamd'; +$conf['rspamd']['init_script'] = 'rspamd'; + //* ClamAV $conf['clamav']['installed'] = false; // will be detected automatically during installation $conf['clamav']['init_script'] = 'clamd'; diff --git a/install/dist/conf/ubuntu1604.conf.php b/install/dist/conf/ubuntu1604.conf.php index 9ac56de3f..0d3fe23ba 100644 --- a/install/dist/conf/ubuntu1604.conf.php +++ b/install/dist/conf/ubuntu1604.conf.php @@ -149,6 +149,11 @@ $conf['amavis']['installed'] = false; // will be detected automatically during i $conf['amavis']['config_dir'] = '/etc/amavis'; $conf['amavis']['init_script'] = 'amavis'; +//* Rspamd +$conf['rspamd']['installed'] = false; // will be detected automatically during installation +$conf['rspamd']['config_dir'] = '/etc/rspamd'; +$conf['rspamd']['init_script'] = 'rspamd'; + //* ClamAV $conf['clamav']['installed'] = false; // will be detected automatically during installation $conf['clamav']['init_script'] = 'clamav-daemon'; diff --git a/install/dist/conf/ubuntu1710.conf.php b/install/dist/conf/ubuntu1710.conf.php index 0c8700591..0730f8f2d 100644 --- a/install/dist/conf/ubuntu1710.conf.php +++ b/install/dist/conf/ubuntu1710.conf.php @@ -149,6 +149,11 @@ $conf['amavis']['installed'] = false; // will be detected automatically during i $conf['amavis']['config_dir'] = '/etc/amavis'; $conf['amavis']['init_script'] = 'amavis'; +//* Rspamd +$conf['rspamd']['installed'] = false; // will be detected automatically during installation +$conf['rspamd']['config_dir'] = '/etc/rspamd'; +$conf['rspamd']['init_script'] = 'rspamd'; + //* ClamAV $conf['clamav']['installed'] = false; // will be detected automatically during installation $conf['clamav']['init_script'] = 'clamav-daemon'; diff --git a/install/dist/conf/ubuntu1804.conf.php b/install/dist/conf/ubuntu1804.conf.php index 15cdb1c5e..2a09f787d 100644 --- a/install/dist/conf/ubuntu1804.conf.php +++ b/install/dist/conf/ubuntu1804.conf.php @@ -149,6 +149,11 @@ $conf['amavis']['installed'] = false; // will be detected automatically during i $conf['amavis']['config_dir'] = '/etc/amavis'; $conf['amavis']['init_script'] = 'amavis'; +//* Rspamd +$conf['rspamd']['installed'] = false; // will be detected automatically during installation +$conf['rspamd']['config_dir'] = '/etc/rspamd'; +$conf['rspamd']['init_script'] = 'rspamd'; + //* ClamAV $conf['clamav']['installed'] = false; // will be detected automatically during installation $conf['clamav']['init_script'] = 'clamav-daemon'; @@ -227,4 +232,4 @@ $conf['xmpp']['installed'] = false; $conf['xmpp']['init_script'] = 'metronome'; -?> \ No newline at end of file +?> diff --git a/install/dist/lib/debian60.lib.php b/install/dist/lib/debian60.lib.php index 0cd711656..af8899f8c 100644 --- a/install/dist/lib/debian60.lib.php +++ b/install/dist/lib/debian60.lib.php @@ -68,7 +68,6 @@ class installer extends installer_base { } //* Reconfigure postfix to use dovecot authentication - // Adding the amavisd commands to the postfix configuration $postconf_commands = array ( 'dovecot_destination_recipient_limit = 1', 'virtual_transport = '.$virtual_transport, diff --git a/install/dist/lib/fedora.lib.php b/install/dist/lib/fedora.lib.php index 889bd4288..5bb8fc0d2 100644 --- a/install/dist/lib/fedora.lib.php +++ b/install/dist/lib/fedora.lib.php @@ -401,7 +401,6 @@ class installer_dist extends installer_base { } //* Reconfigure postfix to use dovecot authentication - // Adding the amavisd commands to the postfix configuration $postconf_commands = array ( 'dovecot_destination_recipient_limit = 1', 'virtual_transport = '.$virtual_transport, diff --git a/install/install.php b/install/install.php index a32466986..9dff3facf 100644 --- a/install/install.php +++ b/install/install.php @@ -385,7 +385,14 @@ if($install_mode == 'standard' || strtolower($inst->simple_query('Configure Mail $inst->configure_amavis(); } - //* Configure Getmail + //* Configure Rspamd + $force = @($conf['rspamd']['installed']) ? true : $inst->force_configure_app('Rspamd', ($install_mode == 'expert')); + if($force) { + swriteln('Configuring Rspamd'); + $inst->configure_rspamd(); + } + +//* Configure Getmail $force = @($conf['getmail']['installed']) ? true : $inst->force_configure_app('Getmail', ($install_mode == 'expert')); if($force) { swriteln('Configuring Getmail'); @@ -538,20 +545,6 @@ $install_ispconfig_interface_default = ($conf['mysql']['master_slave_setup'] == if($install_mode == 'standard' || strtolower($inst->simple_query('Install ISPConfig Web Interface', array('y', 'n'), $install_ispconfig_interface_default,'install_ispconfig_web_interface')) == 'y') { swriteln('Installing ISPConfig'); - //** We want to check if the server is a module or cgi based php enabled server - //** TODO: Don't always ask for this somehow ? - /* - $fast_cgi = $inst->simple_query('CGI PHP Enabled Server?', array('yes','no'),'no'); - - if($fast_cgi == 'yes') { - $alias = $inst->free_query('Script Alias', '/php/'); - $path = $inst->free_query('Script Alias Path', '/path/to/cgi/bin'); - $conf['apache']['vhost_cgi_alias'] = sprintf('ScriptAlias %s %s', $alias, $path); - } else { - $conf['apache']['vhost_cgi_alias'] = ""; - } - */ - //** Customise the port ISPConfig runs on $ispconfig_vhost_port = $inst->free_query('ISPConfig Port', '8080','ispconfig_port'); $temp_admin_password = str_shuffle(bin2hex(openssl_random_pseudo_bytes(4))); @@ -602,6 +595,7 @@ if($conf['mysql']['installed'] == true && $conf['mysql']['init_script'] != '') s if($conf['postfix']['installed'] == true && $conf['postfix']['init_script'] != '') system($inst->getinitcommand($conf['postfix']['init_script'], 'restart')); if($conf['saslauthd']['installed'] == true && $conf['saslauthd']['init_script'] != '') system($inst->getinitcommand($conf['saslauthd']['init_script'], 'restart')); if($conf['amavis']['installed'] == true && $conf['amavis']['init_script'] != '') system($inst->getinitcommand($conf['amavis']['init_script'], 'restart')); +if($conf['rspamd']['installed'] == true && $conf['rspamd']['init_script'] != '') system($inst->getinitcommand($conf['rspamd']['init_script'], 'restart')); if($conf['clamav']['installed'] == true && $conf['clamav']['init_script'] != '') system($inst->getinitcommand($conf['clamav']['init_script'], 'restart')); if($conf['courier']['installed'] == true){ if($conf['courier']['courier-authdaemon'] != '') system($inst->getinitcommand($conf['courier']['courier-authdaemon'], 'restart')); diff --git a/install/lib/classes/tpl.inc.php b/install/lib/classes/tpl.inc.php index 73ff19230..5bd8ded1f 100644 --- a/install/lib/classes/tpl.inc.php +++ b/install/lib/classes/tpl.inc.php @@ -357,147 +357,6 @@ if (!defined('vlibTemplateClassLoaded')) { return true; } - /** - * [** EXPERIMENTAL **] - * Function to create a loop from a Db result resource link. - * @param string $loopname to commit loop. If not set, will use last loopname set using newLoop() - * @param string $result link to a Db result resource - * @param string $db_type, type of db that the result resource belongs to. - * @return boolean true/false - * @access public - */ - public function setDbLoop($loopname, $result, $db_type = 'MYSQL') - { - /* - $db_type = strtoupper($db_type); - if (!in_array($db_type, $this->allowed_loop_dbs)) { - vlibTemplateError::raiseError('VT_WARNING_INVALID_LOOP_DB', WARNING, $db_type); - return false; - } - - $loop_arr = array(); - // TODO: Are all these necessary as were onyl using mysql and possible postgres ? - pedro - switch ($db_type) { - - case 'MYSQL': - if (get_resource_type($result) != 'mysql result') { - vlibTemplateError::raiseError('VT_WARNING_INVALID_RESOURCE', WARNING, $db_type); - return false; - } - while($r = mysql_fetch_assoc($result)) { - $loop_arr[] = $r; - } - break; - - case 'POSTGRESQL': - if (get_resource_type($result) != 'pgsql result') { - vlibTemplateError::raiseError('VT_WARNING_INVALID_RESOURCE', WARNING, $db_type); - return false; - } - - $nr = (function_exists('pg_num_rows')) ? pg_num_rows($result) : pg_numrows($result); - - for ($i=0; $i < $nr; $i++) { - $loop_arr[] = pg_fetch_array($result, $i, PGSQL_ASSOC); - } - break; - - case 'INFORMIX': - if (!$result) { - vlibTemplateError::raiseError('VT_WARNING_INVALID_RESOURCE', WARNING, $db_type); - return false; - } - while($r = ifx_fetch_row($result, 'NEXT')) { - $loop_arr[] = $r; - } - break; - - case 'INTERBASE': - if (get_resource_type($result) != 'interbase result') { - vlibTemplateError::raiseError('VT_WARNING_INVALID_RESOURCE', WARNING, $db_type); - return false; - } - while($r = ibase_fetch_row($result)) { - $loop_arr[] = $r; - } - break; - - case 'INGRES': - if (!$result) { - vlibTemplateError::raiseError('VT_WARNING_INVALID_RESOURCE', WARNING, $db_type); - return false; - } - while($r = ingres_fetch_array(INGRES_ASSOC, $result)) { - $loop_arr[] = $r; - } - break; - - case 'MSSQL': - if (get_resource_type($result) != 'mssql result') { - vlibTemplateError::raiseError('VT_WARNING_INVALID_RESOURCE', WARNING, $db_type); - return false; - } - while($r = mssql_fetch_array($result)) { - $loop_arr[] = $r; - } - break; - - case 'MSQL': - if (get_resource_type($result) != 'msql result') { - vlibTemplateError::raiseError('VT_WARNING_INVALID_RESOURCE', WARNING, $db_type); - return false; - } - while($r = msql_fetch_array($result, MSQL_ASSOC)) { - $loop_arr[] = $r; - } - break; - - case 'OCI8': - if (get_resource_type($result) != 'oci8 statement') { - vlibTemplateError::raiseError('VT_WARNING_INVALID_RESOURCE', WARNING, $db_type); - return false; - } - while(OCIFetchInto($result, &$r, OCI_ASSOC+OCI_RETURN_LOBS)) { - $loop_arr[] = $r; - } - break; - - case 'ORACLE': - if (get_resource_type($result) != 'oracle Cursor') { - vlibTemplateError::raiseError('VT_WARNING_INVALID_RESOURCE', WARNING, $db_type); - return false; - } - while(ora_fetch_into($result, &$r, ORA_FETCHINTO_ASSOC)) { - $loop_arr[] = $r; - } - break; - - case 'OVRIMOS': - if (!$result) { - vlibTemplateError::raiseError('VT_WARNING_INVALID_RESOURCE', WARNING, $db_type); - return false; - } - while(ovrimos_fetch_into($result, &$r, 'NEXT')) { - $loop_arr[] = $r; - } - break; - - case 'SYBASE': - if (get_resource_type($result) != 'sybase-db result') { - vlibTemplateError::raiseError('VT_WARNING_INVALID_RESOURCE', WARNING, $db_type); - return false; - } - - while($r = sybase_fetch_array($result)) { - $loop_arr[] = $r; - } - break; - } - $this->setLoop($loopname, $loop_arr); - return true; - */ - } - /** * Sets the name for the curent loop in the 3 step loop process. * @param string $name string to define loop name diff --git a/install/lib/installer_base.lib.php b/install/lib/installer_base.lib.php index 8d0456ef5..7221dd7de 100644 --- a/install/lib/installer_base.lib.php +++ b/install/lib/installer_base.lib.php @@ -163,6 +163,7 @@ class installer_base { if(is_installed('dovecot')) $conf['dovecot']['installed'] = true; if(is_installed('saslauthd')) $conf['saslauthd']['installed'] = true; if(is_installed('amavisd-new') || is_installed('amavisd')) $conf['amavis']['installed'] = true; + if(is_installed('rspamd')) $conf['rspamd']['installed'] = true; if(is_installed('clamdscan')) $conf['clamav']['installed'] = true; if(is_installed('pure-ftpd') || is_installed('pure-ftpd-wrapper')) $conf['pureftpd']['installed'] = true; if(is_installed('mydns') || is_installed('mydns-ng')) $conf['mydns']['installed'] = true; @@ -1426,6 +1427,171 @@ class installer_base { } + public function configure_rspamd() { + global $conf; + + //* These postconf commands will be executed on installation and update + $server_ini_rec = $this->db->queryOneRecord("SELECT config FROM ?? WHERE server_id = ?", $conf["mysql"]["database"] . '.server', $conf['server_id']); + $server_ini_array = ini_to_array(stripslashes($server_ini_rec['config'])); + unset($server_ini_rec); + + $mail_config = $server_ini_array['mail']; + if($mail_config['content_filter'] === 'rspamd') { + exec("postconf -X 'receive_override_options'"); + exec("postconf -X 'content_filter'"); + + exec("postconf -e 'smtpd_milters = inet:localhost:11332'"); + exec("postconf -e 'non_smtpd_milters = inet:localhost:11332'"); + exec("postconf -e 'milter_protocol = 6'"); + exec("postconf -e 'milter_mail_macros = i {mail_addr} {client_addr} {client_name} {auth_authen}'"); + exec("postconf -e 'milter_default_action = accept'"); + + exec("postconf -e 'smtpd_sender_restrictions = check_sender_access mysql:/etc/postfix/mysql-virtual_sender.cf, permit_mynetworks, permit_sasl_authenticated'"); + + $new_options = array(); + $options = preg_split("/,\s*/", exec("postconf -h smtpd_recipient_restrictions")); + foreach ($options as $value) { + if (!preg_match('/check_policy_service\s+inet:127.0.0.1:10023/', $value)) { + $new_options[] = $value; + } + } + exec("postconf -e 'smtpd_recipient_restrictions = ".implode(", ", $new_options)."'"); + } + + if(!is_dir('/etc/rspamd/local.d/')){ + mkdir('/etc/rspamd/local.d/', 0755, true); + } + + if(!is_dir('/etc/rspamd/override.d/')){ + mkdir('/etc/rspamd/override.d/', 0755, true); + } + + $tpl = new tpl(); + $tpl->newTemplate('rspamd_users.conf.master'); + + $whitelist_ips = array(); + $ips = $this->db->queryAllRecords("SELECT * FROM server_ip WHERE server_id = ?", $conf['server_id']); + if(is_array($ips) && !empty($ips)){ + foreach($ips as $ip){ + $whitelist_ips[] = array('ip' => $ip['ip_address']); + } + } + $tpl->setLoop('whitelist_ips', $whitelist_ips); + wf('/etc/rspamd/local.d/users.conf', $tpl->grab()); + + if(file_exists($conf['ispconfig_install_dir'].'/server/conf-custom/install/rspamd_groups.conf.master')) { + exec('cp '.$conf['ispconfig_install_dir'].'/server/conf-custom/install/rspamd_groups.conf.master /etc/rspamd/local.d/groups.conf'); + } else { + exec('cp tpl/rspamd_groups.conf.master /etc/rspamd/local.d/groups.conf'); + } + + if(file_exists($conf['ispconfig_install_dir'].'/server/conf-custom/install/rspamd_antivirus.conf.master')) { + exec('cp '.$conf['ispconfig_install_dir'].'/server/conf-custom/install/rspamd_antivirus.conf.master /etc/rspamd/local.d/antivirus.conf'); + } else { + exec('cp tpl/rspamd_antivirus.conf.master /etc/rspamd/local.d/antivirus.conf'); + } + + if(file_exists($conf['ispconfig_install_dir'].'/server/conf-custom/install/rspamd_classifier-bayes.conf.master')) { + exec('cp '.$conf['ispconfig_install_dir'].'/server/conf-custom/install/rspamd_classifier-bayes.conf.master /etc/rspamd/local.d/classifier-bayes.conf'); + } else { + exec('cp tpl/rspamd_classifier-bayes.conf.master /etc/rspamd/local.d/classifier-bayes.conf'); + } + + if(file_exists($conf['ispconfig_install_dir'].'/server/conf-custom/install/rspamd_greylist.conf.master')) { + exec('cp '.$conf['ispconfig_install_dir'].'/server/conf-custom/install/rspamd_greylist.conf.master /etc/rspamd/local.d/greylist.conf'); + } else { + exec('cp tpl/rspamd_greylist.conf.master /etc/rspamd/local.d/greylist.conf'); + } + + if(file_exists($conf['ispconfig_install_dir'].'/server/conf-custom/install/rspamd_symbols_antivirus.conf.master')) { + exec('cp '.$conf['ispconfig_install_dir'].'/server/conf-custom/install/rspamd_symbols_antivirus.conf.master /etc/rspamd/local.d/antivirus_group.conf'); + } else { + exec('cp tpl/rspamd_symbols_antivirus.conf.master /etc/rspamd/local.d/antivirus_group.conf'); + } + + if(file_exists($conf['ispconfig_install_dir'].'/server/conf-custom/install/rspamd_override_rbl.conf.master')) { + exec('cp '.$conf['ispconfig_install_dir'].'/server/conf-custom/install/rspamd_override_rbl.conf.master /etc/rspamd/override.d/rbl_group.conf'); + } else { + exec('cp tpl/rspamd_override_rbl.conf.master /etc/rspamd/override.d/rbl_group.conf'); + } + + if(file_exists($conf['ispconfig_install_dir'].'/server/conf-custom/install/rspamd_override_surbl.conf.master')) { + exec('cp '.$conf['ispconfig_install_dir'].'/server/conf-custom/install/rspamd_override_surbl.conf.master /etc/rspamd/override.d/surbl_group.conf'); + } else { + exec('cp tpl/rspamd_override_surbl.conf.master /etc/rspamd/override.d/surbl_group.conf'); + } + + if(file_exists($conf['ispconfig_install_dir'].'/server/conf-custom/install/rspamd_mx_check.conf.master')) { + exec('cp '.$conf['ispconfig_install_dir'].'/server/conf-custom/install/rspamd_mx_check.conf.master /etc/rspamd/local.d/mx_check.conf'); + } else { + exec('cp tpl/rspamd_mx_check.conf.master /etc/rspamd/local.d/mx_check.conf'); + } + + if(file_exists($conf['ispconfig_install_dir'].'/server/conf-custom/install/rspamd_redis.conf.master')) { + exec('cp '.$conf['ispconfig_install_dir'].'/server/conf-custom/install/rspamd_redis.conf.master /etc/rspamd/local.d/redis.conf'); + } else { + exec('cp tpl/rspamd_redis.conf.master /etc/rspamd/local.d/redis.conf'); + } + + if(file_exists($conf['ispconfig_install_dir'].'/server/conf-custom/install/rspamd_milter_headers.conf.master')) { + exec('cp '.$conf['ispconfig_install_dir'].'/server/conf-custom/install/rspamd_milter_headers.conf.master /etc/rspamd/local.d/milter_headers.conf'); + } else { + exec('cp tpl/rspamd_milter_headers.conf.master /etc/rspamd/local.d/milter_headers.conf'); + } + + if(file_exists($conf['ispconfig_install_dir'].'/server/conf-custom/install/rspamd_options.inc.master')) { + exec('cp '.$conf['ispconfig_install_dir'].'/server/conf-custom/install/rspamd_options.inc.master /etc/rspamd/local.d/options.inc'); + } else { + exec('cp tpl/rspamd_options.inc.master /etc/rspamd/local.d/options.inc'); + } + + if(file_exists($conf['ispconfig_install_dir'].'/server/conf-custom/install/rspamd_neural.conf.master')) { + exec('cp '.$conf['ispconfig_install_dir'].'/server/conf-custom/install/rspamd_neural.conf.master /etc/rspamd/local.d/neural.conf'); + } else { + exec('cp tpl/rspamd_neural.conf.master /etc/rspamd/local.d/neural.conf'); + } + + if(file_exists($conf['ispconfig_install_dir'].'/server/conf-custom/install/rspamd_neural_group.conf.master')) { + exec('cp '.$conf['ispconfig_install_dir'].'/server/conf-custom/install/rspamd_neural_group.conf.master /etc/rspamd/local.d/neural_group.conf'); + } else { + exec('cp tpl/rspamd_neural_group.conf.master /etc/rspamd/local.d/neural_group.conf'); + } + + exec('chmod a+r /etc/rspamd/local.d/* /etc/rspamd/override.d/*'); + + $tpl = new tpl(); + $tpl->newTemplate('rspamd_dkim_signing.conf.master'); + $tpl->setVar('dkim_path', $mail_config['dkim_path']); + wf('/etc/rspamd/local.d/dkim_signing.conf', $tpl->grab()); + + $command = 'usermod -a -G amavis _rspamd'; + caselog($command.' &> /dev/null', __FILE__, __LINE__, "EXECUTED: $command", "Failed to execute the command $command"); + + if(strpos(rf('/etc/rspamd/rspamd.conf'), '.include "$LOCAL_CONFDIR/local.d/users.conf"') === false){ + af('/etc/rspamd/rspamd.conf', '.include "$LOCAL_CONFDIR/local.d/users.conf"'); + } + + if(!isset($mail_config['rspamd_password']) || !$mail_config['rspamd_password']) { + $mail_config['rspamd_password'] = str_shuffle(bin2hex(openssl_random_pseudo_bytes(12))); + + $server_ini_array['mail']['rspamd_password'] = $mail_config['rspamd_password']; + } + + $server_ini_array['mail']['rspamd_available'] = 'y'; + $server_ini_string = array_to_ini($server_ini_array); + if($this->dbmaster != $this->db) { + $this->dbmaster->query('UPDATE `server` SET `config` = ? WHERE `server_id` = ?', $server_ini_string, $conf['server_id']); + } + $this->db->query('UPDATE `server` SET `config` = ? WHERE `server_id` = ?', $server_ini_string, $conf['server_id']); + unset($server_ini_array); + unset($server_ini_string); + + $tpl = new tpl(); + $tpl->newTemplate('rspamd_worker-controller.inc.master'); + $tpl->setVar('rspamd_password', $mail_config['rspamd_password']); + wf('/etc/rspamd/local.d/worker-controller.inc', $tpl->grab()); + } + public function configure_spamassassin() { global $conf; diff --git a/install/lib/installer_base.lib.php.orig b/install/lib/installer_base.lib.php.orig new file mode 100644 index 000000000..8d0456ef5 --- /dev/null +++ b/install/lib/installer_base.lib.php.orig @@ -0,0 +1,2962 @@ +conf = $conf; + } + + //: TODO Implement the translation function and language files for the installer. + public function lng($text) { + return $text; + } + + public function error($msg) { + die('ERROR: '.$msg."\n"); + } + + public function warning($msg) { + echo 'WARNING: '.$msg."\n"; + } + + public function simple_query($query, $answers, $default, $name = '') { + global $autoinstall, $autoupdate; + $finished = false; + do { + if($name != '' && $autoinstall[$name] != '') { + if($autoinstall[$name] == 'default') { + $input = $default; + } else { + $input = $autoinstall[$name]; + } + } elseif($name != '' && $autoupdate[$name] != '') { + if($autoupdate[$name] == 'default') { + $input = $default; + } else { + $input = $autoupdate[$name]; + } + } else { + $answers_str = implode(',', $answers); + swrite($this->lng($query).' ('.$answers_str.') ['.$default.']: '); + $input = sread(); + } + + //* Stop the installation + if($input == 'quit') { + swriteln($this->lng("Installation terminated by user.\n")); + die(); + } + + //* Select the default + if($input == '') { + $answer = $default; + $finished = true; + } + + //* Set answer id valid + if(in_array($input, $answers)) { + $answer = $input; + $finished = true; + } + + } while ($finished == false); + swriteln(); + return $answer; + } + + public function free_query($query, $default, $name = '') { + global $autoinstall, $autoupdate; + if($name != '' && $autoinstall[$name] != '') { + if($autoinstall[$name] == 'default') { + $input = $default; + } else { + $input = $autoinstall[$name]; + } + } elseif($name != '' && $autoupdate[$name] != '') { + if($autoupdate[$name] == 'default') { + $input = $default; + } else { + $input = $autoupdate[$name]; + } + } else { + swrite($this->lng($query).' ['.$default.']: '); + $input = sread(); + } + + //* Stop the installation + if($input == 'quit') { + swriteln($this->lng("Installation terminated by user.\n")); + die(); + } + + $answer = ($input == '') ? $default : $input; + swriteln(); + return $answer; + } + + /* + // TODO: this function is not used atmo I think - pedro + function request_language(){ + + swriteln(lng('Enter your language')); + swriteln(lng('de, en')); + + } + */ + + //** Detect PHP-Version + public function get_php_version() { + if(version_compare(PHP_VERSION, $this->min_php, '<')) return false; + else return true; + } + + //** Detect installed applications + public function find_installed_apps() { + global $conf; + + if(is_installed('mysql') || is_installed('mysqld')) $conf['mysql']['installed'] = true; + if(is_installed('postfix')) $conf['postfix']['installed'] = true; + if(is_installed('postgrey')) $conf['postgrey']['installed'] = true; + if(is_installed('mailman') || is_installed('mmsitepass')) $conf['mailman']['installed'] = true; + if(is_installed('apache') || is_installed('apache2') || is_installed('httpd') || is_installed('httpd2')) $conf['apache']['installed'] = true; + if(is_installed('getmail')) $conf['getmail']['installed'] = true; + if(is_installed('courierlogger')) $conf['courier']['installed'] = true; + if(is_installed('dovecot')) $conf['dovecot']['installed'] = true; + if(is_installed('saslauthd')) $conf['saslauthd']['installed'] = true; + if(is_installed('amavisd-new') || is_installed('amavisd')) $conf['amavis']['installed'] = true; + if(is_installed('clamdscan')) $conf['clamav']['installed'] = true; + if(is_installed('pure-ftpd') || is_installed('pure-ftpd-wrapper')) $conf['pureftpd']['installed'] = true; + if(is_installed('mydns') || is_installed('mydns-ng')) $conf['mydns']['installed'] = true; + if(is_installed('jk_chrootsh')) $conf['jailkit']['installed'] = true; + if(is_installed('pdns_server') || is_installed('pdns_control')) $conf['powerdns']['installed'] = true; + if(is_installed('named') || is_installed('bind') || is_installed('bind9')) $conf['bind']['installed'] = true; + if(is_installed('squid')) $conf['squid']['installed'] = true; + if(is_installed('nginx')) $conf['nginx']['installed'] = true; + if(is_installed('iptables') && is_installed('ufw')) { + $conf['ufw']['installed'] = true; + } elseif(is_installed('iptables')) { + $conf['firewall']['installed'] = true; + } + if(is_installed('fail2ban-server')) $conf['fail2ban']['installed'] = true; + if(is_installed('vzctl')) $conf['openvz']['installed'] = true; + if(is_installed('metronome') && is_installed('metronomectl')) $conf['xmpp']['installed'] = true; + if(is_installed('spamassassin')) $conf['spamassassin']['installed'] = true; + // if(is_installed('vlogger')) $conf['vlogger']['installed'] = true; + // ISPConfig ships with vlogger, so it is always installed. + $conf['vlogger']['installed'] = true; + if(is_installed('cron') || is_installed('anacron')) $conf['cron']['installed'] = true; + + if (($conf['apache']['installed'] && is_file($conf['apache']["vhost_conf_enabled_dir"]."/000-ispconfig.vhost")) || ($conf['nginx']['installed'] && is_file($conf['nginx']["vhost_conf_enabled_dir"]."/000-ispconfig.vhost"))) $this->ispconfig_interface_installed = true; + } + + public function force_configure_app($service, $enable_force=true) { + $force = false; + if(AUTOINSTALL == true) return false; + if($enable_force == true) { + swriteln("[WARN] autodetect for $service failed"); + } else { + swriteln("[INFO] service $service not detected"); + } + if($enable_force) { + if(strtolower($this->simple_query("Force configure $service", array('y', 'n'), 'n') ) == 'y') { + $force = true; + } else swriteln("Skipping $service\n"); + } + return $force; + } + + public function reconfigure_app($service, $reconfigure_services_answer) { + $reconfigure = false; + if ($reconfigure_services_answer != 'selected') { + $reconfigure = true; + } else { + if(strtolower($this->simple_query("Reconfigure $service", array('y', 'n'), 'y') ) == 'y') { + $reconfigure = true; + } else { + swriteln("Skip reconfigure $service\n"); + } + } + return $reconfigure; + } + + /** Create the database for ISPConfig */ + + + public function configure_database() { + global $conf; + + //* check sql-mode + /*$check_sql_mode = $this->db->queryOneRecord("SELECT @@sql_mode"); + + if ($check_sql_mode['@@sql_mode'] != '' && $check_sql_mode['@@sql_mode'] != 'NO_ENGINE_SUBSTITUTION') { + echo "Wrong SQL-mode. You should use NO_ENGINE_SUBSTITUTION. Add\n\n"; + echo " sql-mode=\"NO_ENGINE_SUBSTITUTION\"\n\n"; + echo"to the mysqld-section in your mysql-config on this server and restart mysqld afterwards\n"; + die(); + }*/ + + $unwanted_sql_plugins = array('validate_password'); + $sql_plugins = $this->db->queryAllRecords("SELECT plugin_name FROM information_schema.plugins WHERE plugin_status='ACTIVE' AND plugin_name IN ?", $unwanted_sql_plugins); + if(is_array($sql_plugins) && !empty($sql_plugins)) { + foreach ($sql_plugins as $plugin) echo "Login in to MySQL and disable $plugin[plugin_name] with:\n\n UNINSTALL PLUGIN $plugin[plugin_name];"; + die(); + } + + //** Create the database + if(!$this->db->query('CREATE DATABASE IF NOT EXISTS ?? DEFAULT CHARACTER SET ?', $conf['mysql']['database'], $conf['mysql']['charset'])) { + $this->error('Unable to create MySQL database: '.$conf['mysql']['database'].'.'); + } + + //* Set the database name in the DB library + $this->db->setDBName($conf['mysql']['database']); + + //* Load the database dump into the database, if database contains no tables + $db_tables = $this->db->getTables(); + if(count($db_tables) > 0) { + $this->error('Stopped: Database already contains some tables.'); + } else { + if($conf['mysql']['admin_password'] == '') { + caselog("mysql --default-character-set=".escapeshellarg($conf['mysql']['charset'])." -h ".escapeshellarg($conf['mysql']['host'])." -u ".escapeshellarg($conf['mysql']['admin_user'])." -P ".escapeshellarg($conf['mysql']['port'])." ".escapeshellarg($conf['mysql']['database'])." < '".ISPC_INSTALL_ROOT."/install/sql/ispconfig3.sql' &> /dev/null", + __FILE__, __LINE__, 'read in ispconfig3.sql', 'could not read in ispconfig3.sql'); + } else { + caselog("mysql --default-character-set=".escapeshellarg($conf['mysql']['charset'])." -h ".escapeshellarg($conf['mysql']['host'])." -u ".escapeshellarg($conf['mysql']['admin_user'])." -p".escapeshellarg($conf['mysql']['admin_password'])." -P ".escapeshellarg($conf['mysql']['port'])." ".escapeshellarg($conf['mysql']['database'])." < '".ISPC_INSTALL_ROOT."/install/sql/ispconfig3.sql' &> /dev/null", + __FILE__, __LINE__, 'read in ispconfig3.sql', 'could not read in ispconfig3.sql'); + } + $db_tables = $this->db->getTables(); + if(count($db_tables) == 0) { + $this->error('Unable to load SQL-Dump into database table.'); + } + + //* Load system.ini into the sys_ini table + $system_ini = rf('tpl/system.ini.master'); + $this->db->query("UPDATE sys_ini SET config = ? WHERE sysini_id = 1", $system_ini); + + } + } + + //** Create the server record in the database + public function add_database_server_record() { + + global $conf; + + if($conf['mysql']['host'] == 'localhost') { + $from_host = 'localhost'; + } else { + $from_host = $conf['hostname']; + } + + // Delete ISPConfig user in the local database, in case that it exists + $this->db->query("DROP USER ?@?", $conf['mysql']['ispconfig_user'], $from_host); + $this->db->query("DROP DATABASE IF EXISTS ?", $conf['mysql']['database']); + + //* Create the ISPConfig database user and grant permissions in the local database + $query = 'CREATE USER ?@? IDENTIFIED BY ?'; + if(!$this->db->query($query, $conf['mysql']['ispconfig_user'], $from_host, $conf['mysql']['ispconfig_password'])) { + $this->error('Unable to create database user: '.$conf['mysql']['ispconfig_user'].' Error: '.$this->db->errorMessage); + } + $query = 'GRANT SELECT, INSERT, UPDATE, DELETE ON ?? TO ?@?'; + if(!$this->db->query($query, $conf['mysql']['database'] . ".*", $conf['mysql']['ispconfig_user'], $from_host)) { + $this->error('Unable to grant databse permissions to user: '.$conf['mysql']['ispconfig_user'].' Error: '.$this->db->errorMessage); + } + + //* Set the database name in the DB library + $this->db->setDBName($conf['mysql']['database']); + + $tpl_ini_array = ini_to_array(rf('tpl/server.ini.master')); + + //* Update further distribution specific parameters for server config here + //* HINT: Every line added here has to be added in update.lib.php too!! + $tpl_ini_array['web']['vhost_conf_dir'] = $conf['apache']['vhost_conf_dir']; + $tpl_ini_array['web']['vhost_conf_enabled_dir'] = $conf['apache']['vhost_conf_enabled_dir']; + $tpl_ini_array['jailkit']['jailkit_chroot_app_programs'] = $conf['jailkit']['jailkit_chroot_app_programs']; + $tpl_ini_array['fastcgi']['fastcgi_phpini_path'] = $conf['fastcgi']['fastcgi_phpini_path']; + $tpl_ini_array['fastcgi']['fastcgi_starter_path'] = $conf['fastcgi']['fastcgi_starter_path']; + $tpl_ini_array['fastcgi']['fastcgi_bin'] = $conf['fastcgi']['fastcgi_bin']; + $tpl_ini_array['server']['hostname'] = $conf['hostname']; + $tpl_ini_array['server']['ip_address'] = @gethostbyname($conf['hostname']); + $tpl_ini_array['server']['firewall'] = ($conf['ufw']['installed'] == true)?'ufw':'bastille'; + $tpl_ini_array['web']['website_basedir'] = $conf['web']['website_basedir']; + $tpl_ini_array['web']['website_path'] = $conf['web']['website_path']; + $tpl_ini_array['web']['website_symlinks'] = $conf['web']['website_symlinks']; + $tpl_ini_array['cron']['crontab_dir'] = $conf['cron']['crontab_dir']; + $tpl_ini_array['web']['security_level'] = 20; + $tpl_ini_array['web']['user'] = $conf['apache']['user']; + $tpl_ini_array['web']['group'] = $conf['apache']['group']; + $tpl_ini_array['web']['php_ini_path_apache'] = $conf['apache']['php_ini_path_apache']; + $tpl_ini_array['web']['php_ini_path_cgi'] = $conf['apache']['php_ini_path_cgi']; + $tpl_ini_array['mail']['pop3_imap_daemon'] = ($conf['dovecot']['installed'] == true)?'dovecot':'courier'; + $tpl_ini_array['mail']['mail_filter_syntax'] = ($conf['dovecot']['installed'] == true)?'sieve':'maildrop'; + $tpl_ini_array['dns']['bind_user'] = $conf['bind']['bind_user']; + $tpl_ini_array['dns']['bind_group'] = $conf['bind']['bind_group']; + $tpl_ini_array['dns']['bind_zonefiles_dir'] = $conf['bind']['bind_zonefiles_dir']; + $tpl_ini_array['dns']['named_conf_path'] = $conf['bind']['named_conf_path']; + $tpl_ini_array['dns']['named_conf_local_path'] = $conf['bind']['named_conf_local_path']; + + $tpl_ini_array['web']['nginx_vhost_conf_dir'] = $conf['nginx']['vhost_conf_dir']; + $tpl_ini_array['web']['nginx_vhost_conf_enabled_dir'] = $conf['nginx']['vhost_conf_enabled_dir']; + $tpl_ini_array['web']['nginx_user'] = $conf['nginx']['user']; + $tpl_ini_array['web']['nginx_group'] = $conf['nginx']['group']; + $tpl_ini_array['web']['nginx_cgi_socket'] = $conf['nginx']['cgi_socket']; + $tpl_ini_array['web']['php_fpm_init_script'] = $conf['nginx']['php_fpm_init_script']; + $tpl_ini_array['web']['php_fpm_ini_path'] = $conf['nginx']['php_fpm_ini_path']; + $tpl_ini_array['web']['php_fpm_pool_dir'] = $conf['nginx']['php_fpm_pool_dir']; + $tpl_ini_array['web']['php_fpm_start_port'] = $conf['nginx']['php_fpm_start_port']; + $tpl_ini_array['web']['php_fpm_socket_dir'] = $conf['nginx']['php_fpm_socket_dir']; + + if ($conf['nginx']['installed'] == true) { + $tpl_ini_array['web']['server_type'] = 'nginx'; + $tpl_ini_array['global']['webserver'] = 'nginx'; + } + + if (array_key_exists('awstats', $conf)) { + foreach ($conf['awstats'] as $aw_sett => $aw_value) { + $tpl_ini_array['web']['awstats_'.$aw_sett] = $aw_value; + } + } + + $server_ini_content = array_to_ini($tpl_ini_array); + + $mail_server_enabled = ($conf['services']['mail'])?1:0; + $web_server_enabled = ($conf['services']['web'])?1:0; + $dns_server_enabled = ($conf['services']['dns'])?1:0; + $file_server_enabled = ($conf['services']['file'])?1:0; + $db_server_enabled = ($conf['services']['db'])?1:0; + $vserver_server_enabled = ($conf['openvz']['installed'])?1:0; + $proxy_server_enabled = (isset($conf['services']['proxy']) && $conf['services']['proxy'])?1:0; + $firewall_server_enabled = (isset($conf['services']['firewall']) && $conf['services']['firewall'])?1:0; + + //** Get the database version number based on the patchfiles + $found = true; + $current_db_version = 1; + while($found == true) { + $next_db_version = intval($current_db_version + 1); + $patch_filename = realpath(dirname(__FILE__).'/../').'/sql/incremental/upd_'.str_pad($next_db_version, 4, '0', STR_PAD_LEFT).'.sql'; + if(is_file($patch_filename)) { + $current_db_version = $next_db_version; + } else { + $found = false; + } + } + $current_db_version = intval($current_db_version); + + + if($conf['mysql']['master_slave_setup'] == 'y') { + + //* Insert the server record in master DB + $sql = "INSERT INTO `server` (`sys_userid`, `sys_groupid`, `sys_perm_user`, `sys_perm_group`, `sys_perm_other`, `server_name`, `mail_server`, `web_server`, `dns_server`, `file_server`, `db_server`, `vserver_server`, `config`, `updated`, `active`, `dbversion`,`firewall_server`,`proxy_server`) VALUES (1, 1, 'riud', 'riud', 'r', ?, ?, ?, ?, ?, ?, ?, ?, 0, 1, ?, ?, ?);"; + $this->dbmaster->query($sql, $conf['hostname'], $mail_server_enabled, $web_server_enabled, $dns_server_enabled, $file_server_enabled, $db_server_enabled, $vserver_server_enabled, $server_ini_content, $current_db_version, $proxy_server_enabled, $firewall_server_enabled); + $conf['server_id'] = $this->dbmaster->insertID(); + $conf['server_id'] = $conf['server_id']; + + //* Insert the same record in the local DB + $sql = "INSERT INTO `server` (`server_id`, `sys_userid`, `sys_groupid`, `sys_perm_user`, `sys_perm_group`, `sys_perm_other`, `server_name`, `mail_server`, `web_server`, `dns_server`, `file_server`, `db_server`, `vserver_server`, `config`, `updated`, `active`, `dbversion`,`firewall_server`,`proxy_server`) VALUES (?,1, 1, 'riud', 'riud', 'r', ?, ?, ?, ?, ?, ?, ?, ?, 0, 1, ?, ?, ?);"; + $this->db->query($sql, $conf['server_id'], $conf['hostname'], $mail_server_enabled, $web_server_enabled, $dns_server_enabled, $file_server_enabled, $db_server_enabled, $vserver_server_enabled, $server_ini_content, $current_db_version, $proxy_server_enabled, $firewall_server_enabled); + + //* username for the ispconfig user + $conf['mysql']['master_ispconfig_user'] = 'ispcsrv'.$conf['server_id']; + + $this->grant_master_database_rights(); + + } else { + //* Insert the server, if its not a mster / slave setup + $sql = "INSERT INTO `server` (`sys_userid`, `sys_groupid`, `sys_perm_user`, `sys_perm_group`, `sys_perm_other`, `server_name`, `mail_server`, `web_server`, `dns_server`, `file_server`, `db_server`, `vserver_server`, `config`, `updated`, `active`, `dbversion`,`firewall_server`,`proxy_server`) VALUES (1, 1, 'riud', 'riud', 'r', ?, ?, ?, ?, ?, ?, ?, ?, 0, 1, ?, ?, ?);"; + $this->db->query($sql, $conf['hostname'], $mail_server_enabled, $web_server_enabled, $dns_server_enabled, $file_server_enabled, $db_server_enabled, $vserver_server_enabled, $server_ini_content, $current_db_version, $proxy_server_enabled, $firewall_server_enabled); + $conf['server_id'] = $this->db->insertID(); + $conf['server_id'] = $conf['server_id']; + } + + + } + + public function detect_ips(){ + global $conf; + + exec("ip addr show | awk '/global/ { print $2 }' | cut -d '/' -f 1", $output, $retval); + + if($retval == 0){ + if(is_array($output) && !empty($output)){ + foreach($output as $line){ + $line = trim($line); + $ip_type = ''; + if (filter_var($line, FILTER_VALIDATE_IP, FILTER_FLAG_IPV4)) { + $ip_type = 'IPv4'; + } + if (filter_var($line, FILTER_VALIDATE_IP, FILTER_FLAG_IPV6)) { + $ip_type = 'IPv6'; + } + if($ip_type == '') continue; + if($this->db->dbHost != $this->dbmaster->dbHost){ + $this->dbmaster->query('INSERT INTO server_ip ( + sys_userid, sys_groupid, sys_perm_user, sys_perm_group, + sys_perm_other, server_id, client_id, ip_type, ip_address, + virtualhost, virtualhost_port + ) VALUES ( + 1, + 1, + "riud", + "riud", + "", + ?, + 0, + ?, + ?, + "y", + "80,443" + )', $conf['server_id'], $ip_type, $line); + $server_ip_id = $this->dbmaster->insertID(); + $this->db->query('INSERT INTO server_ip ( + server_php_id, sys_userid, sys_groupid, sys_perm_user, sys_perm_group, + sys_perm_other, server_id, client_id, ip_type, ip_address, + virtualhost, virtualhost_port + ) VALUES ( + ?, + 1, + 1, + "riud", + "riud", + "", + ?, + 0, + ?, + ?, + "y", + "80,443" + )', $server_ip_id, $conf['server_id'], $ip_type, $line); + } else { + $this->db->query('INSERT INTO server_ip ( + sys_userid, sys_groupid, sys_perm_user, sys_perm_group, + sys_perm_other, server_id, client_id, ip_type, ip_address, + virtualhost, virtualhost_port + ) VALUES ( + 1, + 1, + "riud", + "riud", + "", + ?, + 0, + ?, + ?, + "y", + "80,443" + )', $conf['server_id'], $ip_type, $line); + } + } + } + } + } + + public function grant_master_database_rights($verbose = false) { + global $conf; + + /* + * The following code is a little bit tricky: + * * If we HAVE a master-slave - Setup then the client has to grant the rights for himself + * at the master. + * * If we DO NOT have a master-slave - Setup then we have two possibilities + * 1) it is a single server + * 2) it is the MASTER of n clients + */ + $hosts = array(); + + if($conf['mysql']['master_slave_setup'] == 'y') { + /* + * it is a master-slave - Setup so the slave has to grant its rights in the master + * database + */ + + //* insert the ispconfig user in the remote server + $from_host = $conf['hostname']; + $from_ip = gethostbyname($conf['hostname']); + + $hosts[$from_host]['user'] = $conf['mysql']['master_ispconfig_user']; + $hosts[$from_host]['db'] = $conf['mysql']['master_database']; + $hosts[$from_host]['pwd'] = $conf['mysql']['master_ispconfig_password']; + + $hosts[$from_ip]['user'] = $conf['mysql']['master_ispconfig_user']; + $hosts[$from_ip]['db'] = $conf['mysql']['master_database']; + $hosts[$from_ip]['pwd'] = $conf['mysql']['master_ispconfig_password']; + } else{ + /* + * it is NOT a master-slave - Setup so we have to find out all clients and their + * host + */ + $query = "SELECT Host, User FROM mysql.user WHERE User like 'ispcsrv%' ORDER BY User, Host"; + $data = $this->dbmaster->queryAllRecords($query); + if($data === false) { + $this->error('Unable to get the user rights: '.$value['db'].' Error: '.$this->dbmaster->errorMessage); + } + foreach ($data as $item){ + $hosts[$item['Host']]['user'] = $item['User']; + $hosts[$item['Host']]['db'] = $conf['mysql']['master_database']; + $hosts[$item['Host']]['pwd'] = ''; // the user already exists, so we need no pwd! + } + } + + if(count($hosts) > 0) { + foreach($hosts as $host => $value) { + /* + * If a pwd exists, this means, we have to add the new user (and his pwd). + * if not, the user already exists and we do not need the pwd + */ + if ($value['pwd'] != ''){ + $query = "CREATE USER ?@? IDENTIFIED BY ?"; + if ($verbose){ + echo "\n\n" . $query ."\n"; + } + $this->dbmaster->query($query, $value['user'], $host, $value['pwd']); // ignore the error + } + + /* + * Try to delete all rights of the user in case that it exists. + * In Case that it will not exist, do nothing (ignore the error!) + */ + $query = "REVOKE ALL PRIVILEGES, GRANT OPTION FROM ?@?"; + if ($verbose){ + echo "\n\n" . $query ."\n"; + } + $this->dbmaster->query($query, $value['user'], $host); // ignore the error + + //* Create the ISPConfig database user in the remote database + $query = "GRANT SELECT ON ?? TO ?@?"; + if ($verbose){ + echo $query ."\n"; + } + if(!$this->dbmaster->query($query, $value['db'] . '.server', $value['user'], $host)) { + $this->warning('Unable to set rights of user in master database: '.$value['db']."\n Query: ".$query."\n Error: ".$this->dbmaster->errorMessage); + } + + $query = "GRANT SELECT, INSERT ON ?? TO ?@?"; + if ($verbose){ + echo $query ."\n"; + } + if(!$this->dbmaster->query($query, $value['db'] . '.sys_log', $value['user'], $host)) { + $this->warning('Unable to set rights of user in master database: '.$value['db']."\n Query: ".$query."\n Error: ".$this->dbmaster->errorMessage); + } + + $query = "GRANT SELECT, UPDATE(`status`, `error`) ON ?? TO ?@?"; + if ($verbose){ + echo $query ."\n"; + } + if(!$this->dbmaster->query($query, $value['db'] . '.sys_datalog', $value['user'], $host)) { + $this->warning('Unable to set rights of user in master database: '.$value['db']."\n Query: ".$query."\n Error: ".$this->dbmaster->errorMessage); + } + + $query = "GRANT SELECT, UPDATE(`status`) ON ?? TO ?@?"; + if ($verbose){ + echo $query ."\n"; + } + if(!$this->dbmaster->query($query, $value['db'] . '.software_update_inst', $value['user'], $host)) { + $this->warning('Unable to set rights of user in master database: '.$value['db']."\n Query: ".$query."\n Error: ".$this->dbmaster->errorMessage); + } + + $query = "GRANT SELECT, UPDATE(`updated`) ON ?? TO ?@?"; + if ($verbose){ + echo $query ."\n"; + } + if(!$this->dbmaster->query($query, $value['db'] . '.server', $value['user'], $host)) { + $this->warning('Unable to set rights of user in master database: '.$value['db']."\n Query: ".$query."\n Error: ".$this->dbmaster->errorMessage); + } + + $query = "GRANT SELECT, UPDATE (`ssl`, `ssl_letsencrypt`, `ssl_request`, `ssl_cert`, `ssl_action`, `ssl_key`) ON ?? TO ?@?"; + if ($verbose){ + echo $query ."\n"; + } + if(!$this->dbmaster->query($query, $value['db'] . '.web_domain', $value['user'], $host)) { + $this->warning('Unable to set rights of user in master database: '.$value['db']."\n Query: ".$query."\n Error: ".$this->dbmaster->errorMessage); + } + + $query = "GRANT SELECT ON ?? TO ?@?"; + if ($verbose){ + echo $query ."\n"; + } + if(!$this->dbmaster->query($query, $value['db'] . '.sys_group', $value['user'], $host)) { + $this->warning('Unable to set rights of user in master database: '.$value['db']."\n Query: ".$query."\n Error: ".$this->dbmaster->errorMessage); + } + + $query = "GRANT SELECT, UPDATE (`action_state`, `response`) ON ?? TO ?@?"; + if ($verbose){ + echo $query ."\n"; + } + if(!$this->dbmaster->query($query, $value['db'] . '.sys_remoteaction', $value['user'], $host)) { + $this->warning('Unable to set rights of user in master database: '.$value['db']."\n Query: ".$query."\n Error: ".$this->dbmaster->errorMessage); + } + + $query = "GRANT SELECT, INSERT , DELETE ON ?? TO ?@?"; + if ($verbose){ + echo $query ."\n"; + } + if(!$this->dbmaster->query($query, $value['db'] . '.monitor_data', $value['user'], $host)) { + $this->warning('Unable to set rights of user in master database: '.$value['db']."\n Query: ".$query."\n Error: ".$this->dbmaster->errorMessage); + } + + $query = "GRANT SELECT, INSERT, UPDATE ON ?? TO ?@?"; + if ($verbose){ + echo $query ."\n"; + } + if(!$this->dbmaster->query($query, $value['db'] . '.mail_traffic', $value['user'], $host)) { + $this->warning('Unable to set rights of user in master database: '.$value['db']."\n Query: ".$query."\n Error: ".$this->dbmaster->errorMessage); + } + + $query = "GRANT SELECT, INSERT, UPDATE ON ?? TO ?@?"; + if ($verbose){ + echo $query ."\n"; + } + if(!$this->dbmaster->query($query, $value['db'] . '.web_traffic', $value['user'], $host)) { + $this->warning('Unable to set rights of user in master database: '.$value['db']."\n Query: ".$query."\n Error: ".$this->dbmaster->errorMessage); + } + + $query = "GRANT SELECT, UPDATE, DELETE ON ?? TO ?@?"; + if ($verbose){ + echo $query ."\n"; + } + if(!$this->dbmaster->query($query, $value['db'] . '.aps_instances', $value['user'], $host)) { + $this->warning('Unable to set rights of user in master database: '.$value['db']."\n Query: ".$query."\n Error: ".$this->dbmaster->errorMessage); + } + + $query = "GRANT SELECT, DELETE ON ?? TO ?@?"; + if ($verbose){ + echo $query ."\n"; + } + if(!$this->dbmaster->query($query, $value['db'] . '.aps_instances_settings', $value['user'], $host)) { + $this->warning('Unable to set rights of user in master database: '.$value['db']."\n Query: ".$query."\n Error: ".$this->dbmaster->errorMessage); + } + + $query = "GRANT SELECT, INSERT, DELETE ON ?? TO ?@?"; + if ($verbose){ + echo $query ."\n"; + } + if(!$this->dbmaster->query($query, $value['db'] . '.web_backup', $value['user'], $host)) { + $this->warning('Unable to set rights of user in master database: '.$value['db']."\n Query: ".$query."\n Error: ".$this->dbmaster->errorMessage); + } + + $query = "GRANT SELECT, INSERT, DELETE ON ?? TO ?@?"; + if ($verbose){ + echo $query ."\n"; + } + if(!$this->dbmaster->query($query, $value['db'] . '.mail_backup', $value['user'], $host)) { + $this->warning('Unable to set rights of user in master database: '.$value['db']."\n Query: ".$query."\n Error: ".$this->dbmaster->errorMessage); + } + + $query = "GRANT SELECT, UPDATE(`dnssec_initialized`, `dnssec_info`, `dnssec_last_signed`) ON ?? TO ?@?"; + if ($verbose){ + echo $query ."\n"; + } + if(!$this->dbmaster->query($query, $value['db'] . '.dns_soa', $value['user'], $host)) { + $this->warning('Unable to set rights of user in master database: '.$value['db']."\n Query: ".$query."\n Error: ".$this->dbmaster->errorMessage); + } + + $query = "GRANT SELECT, INSERT, UPDATE ON ?? TO ?@?"; + if ($verbose){ + echo $query ."\n"; + } + if(!$this->dbmaster->query($query, $value['db'] . '.ftp_traffic', $value['user'], $host)) { + $this->warning('Unable to set rights of user in master database: '.$value['db']."\n Query: ".$query."\n Error: ".$this->dbmaster->errorMessage); + } + + } + + } + + } + + //** writes postfix configuration files + public function process_postfix_config($configfile) { + global $conf; + + $config_dir = $conf['postfix']['config_dir'].'/'; + $full_file_name = $config_dir.$configfile; + //* Backup exiting file + if(is_file($full_file_name)) { + copy($full_file_name, $config_dir.$configfile.'~'); + } + $content = rfsel($conf['ispconfig_install_dir'].'/server/conf-custom/install/'.$configfile.'.master', 'tpl/'.$configfile.'.master'); + $content = str_replace('{mysql_server_ispconfig_user}', $conf['mysql']['ispconfig_user'], $content); + $content = str_replace('{mysql_server_ispconfig_password}', $conf['mysql']['ispconfig_password'], $content); + $content = str_replace('{mysql_server_database}', $conf['mysql']['database'], $content); + $content = str_replace('{mysql_server_ip}', $conf['mysql']['ip'], $content); + $content = str_replace('{server_id}', $conf['server_id'], $content); + wf($full_file_name, $content); + } + + public function configure_jailkit() { + global $conf; + + $cf = $conf['jailkit']; + $config_dir = $cf['config_dir']; + $jk_init = $cf['jk_init']; + $jk_chrootsh = $cf['jk_chrootsh']; + + if (is_dir($config_dir)) { + if(is_file($config_dir.'/'.$jk_init)) copy($config_dir.'/'.$jk_init, $config_dir.'/'.$jk_init.'~'); + if(is_file($config_dir.'/'.$jk_chrootsh.'.master')) copy($config_dir.'/'.$jk_chrootsh.'.master', $config_dir.'/'.$jk_chrootsh.'~'); + + if(is_file($conf['ispconfig_install_dir'].'/server/conf-custom/install/'.$jk_init.'.master')) { + copy($conf['ispconfig_install_dir'].'/server/conf-custom/install/'.$jk_init.'.master', $config_dir.'/'.$jk_init); + } else { + copy('tpl/'.$jk_init.'.master', $config_dir.'/'.$jk_init); + } + if(is_file($conf['ispconfig_install_dir'].'/server/conf-custom/install/'.$jk_chrootsh.'.master')) { + copy($conf['ispconfig_install_dir'].'/server/conf-custom/install/'.$jk_chrootsh.'.master', $config_dir.'/'.$jk_chrootsh); + } else { + copy('tpl/'.$jk_chrootsh.'.master', $config_dir.'/'.$jk_chrootsh); + } + } + + //* help jailkit fo find its ini files + if(!is_link('/usr/jk_socketd.ini')) exec('ln -s /etc/jailkit/jk_socketd.ini /usr/jk_socketd.ini'); + if(!is_link('/usr/jk_init.ini')) exec('ln -s /etc/jailkit/jk_init.ini /usr/jk_init.ini'); + + } + + public function configure_mailman($status = 'insert') { + global $conf; + + $config_dir = $conf['mailman']['config_dir'].'/'; + $full_file_name = $config_dir.'mm_cfg.py'; + //* Backup exiting file + if(is_file($full_file_name)) { + copy($full_file_name, $config_dir.'mm_cfg.py~'); + } + + // load files + $content = rfsel($conf['ispconfig_install_dir'].'/server/conf-custom/install/mm_cfg.py.master', 'tpl/mm_cfg.py.master'); + $old_file = rf($full_file_name); + + $old_options = array(); + $lines = explode("\n", $old_file); + foreach ($lines as $line) + { + if (trim($line) != '' && substr($line, 0, 1) != '#') + { + @list($key, $value) = @explode("=", $line); + if (isset($value) && $value !== '') + { + $key = rtrim($key); + $old_options[$key] = trim($value); + } + } + } + + $virtual_domains = ''; + if($status == 'update') + { + // create virtual_domains list + $domainAll = $this->db->queryAllRecords("SELECT domain FROM mail_mailinglist GROUP BY domain"); + + if(is_array($domainAll)) { + foreach($domainAll as $domain) + { + if ($domainAll[0]['domain'] == $domain['domain']) + $virtual_domains .= "'".$domain['domain']."'"; + else + $virtual_domains .= ", '".$domain['domain']."'"; + } + } + } + else + $virtual_domains = "' '"; + + $content = str_replace('{hostname}', $conf['hostname'], $content); + if(!isset($old_options['DEFAULT_SERVER_LANGUAGE']) || $old_options['DEFAULT_SERVER_LANGUAGE'] == '') $old_options['DEFAULT_SERVER_LANGUAGE'] = "'en'"; + $content = str_replace('{default_language}', $old_options['DEFAULT_SERVER_LANGUAGE'], $content); + $content = str_replace('{virtual_domains}', $virtual_domains, $content); + + wf($full_file_name, $content); + + //* Write virtual_to_transport.sh script + $config_dir = $conf['mailman']['config_dir'].'/'; + $full_file_name = $config_dir.'virtual_to_transport.sh'; + + //* Backup exiting virtual_to_transport.sh script + if(is_file($full_file_name)) { + copy($full_file_name, $config_dir.'virtual_to_transport.sh~'); + } + + if(is_dir('/etc/mailman')) { + if(is_file($conf['ispconfig_install_dir'].'/server/conf-custom/install/mailman-virtual_to_transport.sh')) { + copy($conf['ispconfig_install_dir'].'/server/conf-custom/install/mailman-virtual_to_transport.sh', $full_file_name); + } else { + copy('tpl/mailman-virtual_to_transport.sh', $full_file_name); + } + chgrp($full_file_name, $this->mailman_group); + chmod($full_file_name, 0755); + } + + //* Create aliasaes + if($status == 'install') exec('/usr/lib/mailman/bin/genaliases 2>/dev/null'); + + if(!is_file('/var/lib/mailman/data/transport-mailman')) touch('/var/lib/mailman/data/transport-mailman'); + exec('/usr/sbin/postmap /var/lib/mailman/data/transport-mailman'); + } + + public function get_postfix_service($service, $type) { + global $conf; + + exec("postconf -M 2> /dev/null", $out, $ret); + + if ($ret === 0) { //* with postfix >= 2.9 we can detect configured services with postconf + unset($out); + exec ("postconf -M $service/$type 2> /dev/null", $out, $ret); //* Postfix >= 2.11 + if (!isset($out[0])) { //* try Postfix 2.9 + exec ("postconf -M $service.$type 2> /dev/null", $out, $ret); + } + $postfix_service = @($out[0]=='')?false:true; + } else { //* fallback - Postfix < 2.9 + $content = rf($conf['postfix']['config_dir'].'/master.cf'); + $regex = "/^((?!#)".$service.".*".$type.".*)$/m"; + $postfix_service = @(preg_match($regex, $content))?true:false; + } + + return $postfix_service; + } + + public function configure_postfix($options = '') { + global $conf,$autoinstall; + $cf = $conf['postfix']; + $config_dir = $cf['config_dir']; + + if(!is_dir($config_dir)) { + $this->error("The postfix configuration directory '$config_dir' does not exist."); + } + + //* mysql-virtual_domains.cf + $this->process_postfix_config('mysql-virtual_domains.cf'); + + //* mysql-virtual_forwardings.cf + $this->process_postfix_config('mysql-virtual_forwardings.cf'); + + //* mysql-virtual_mailboxes.cf + $this->process_postfix_config('mysql-virtual_mailboxes.cf'); + + //* mysql-virtual_email2email.cf + $this->process_postfix_config('mysql-virtual_email2email.cf'); + + //* mysql-virtual_transports.cf + $this->process_postfix_config('mysql-virtual_transports.cf'); + + //* mysql-virtual_recipient.cf + $this->process_postfix_config('mysql-virtual_recipient.cf'); + + //* mysql-virtual_sender.cf + $this->process_postfix_config('mysql-virtual_sender.cf'); + + //* mysql-virtual_sender_login_maps.cf + $this->process_postfix_config('mysql-virtual_sender_login_maps.cf'); + + //* mysql-virtual_client.cf + $this->process_postfix_config('mysql-virtual_client.cf'); + + //* mysql-virtual_relaydomains.cf + $this->process_postfix_config('mysql-virtual_relaydomains.cf'); + + //* mysql-virtual_relayrecipientmaps.cf + $this->process_postfix_config('mysql-virtual_relayrecipientmaps.cf'); + + //* mysql-virtual_outgoing_bcc.cf + $this->process_postfix_config('mysql-virtual_outgoing_bcc.cf'); + + //* mysql-virtual_policy_greylist.cf + $this->process_postfix_config('mysql-virtual_policy_greylist.cf'); + + //* mysql-virtual_gids.cf.master + $this->process_postfix_config('mysql-virtual_gids.cf'); + + //* mysql-virtual_uids.cf + $this->process_postfix_config('mysql-virtual_uids.cf'); + + //* postfix-dkim + $filename='tag_as_originating.re'; + $full_file_name=$config_dir.'/'.$filename; + if(is_file($full_file_name)) copy($full_file_name, $full_file_name.'~'); + $content = rfsel($conf['ispconfig_install_dir'].'/server/conf-custom/install/postfix-'.$filename.'.master', 'tpl/postfix-'.$filename.'.master'); + wf($full_file_name, $content); + + $filename='tag_as_foreign.re'; + $full_file_name=$config_dir.'/'.$filename; + if(is_file($full_file_name)) copy($full_file_name, $full_file_name.'~'); + $content = rfsel($conf['ispconfig_install_dir'].'/server/conf-custom/install/postfix-'.$filename.'.master', 'tpl/postfix-'.$filename.'.master'); + wf($full_file_name, $content); + + //* Changing mode and group of the new created config files. + caselog('chmod u=rw,g=r,o= '.$config_dir.'/mysql-virtual_*.cf* &> /dev/null', + __FILE__, __LINE__, 'chmod on mysql-virtual_*.cf*', 'chmod on mysql-virtual_*.cf* failed'); + caselog('chgrp '.$cf['group'].' '.$config_dir.'/mysql-virtual_*.cf* &> /dev/null', + __FILE__, __LINE__, 'chgrp on mysql-virtual_*.cf*', 'chgrp on mysql-virtual_*.cf* failed'); + + //* Creating virtual mail user and group + $command = 'groupadd -g '.$cf['vmail_groupid'].' '.$cf['vmail_groupname']; + if(!is_group($cf['vmail_groupname'])) caselog($command.' &> /dev/null', __FILE__, __LINE__, "EXECUTED: $command", "Failed to execute the command $command"); + + $command = 'useradd -g '.$cf['vmail_groupname'].' -u '.$cf['vmail_userid'].' '.$cf['vmail_username'].' -d '.$cf['vmail_mailbox_base'].' -m'; + if(!is_user($cf['vmail_username'])) caselog("$command &> /dev/null", __FILE__, __LINE__, "EXECUTED: $command", "Failed to execute the command $command"); + + //* These postconf commands will be executed on installation and update + $server_ini_rec = $this->db->queryOneRecord("SELECT config FROM ?? WHERE server_id = ?", $conf["mysql"]["database"] . '.server', $conf['server_id']); + $server_ini_array = ini_to_array(stripslashes($server_ini_rec['config'])); + unset($server_ini_rec); + + //* If there are RBL's defined, format the list and add them to smtp_recipient_restrictions to prevent removeal after an update + $rbl_list = ''; + if (@isset($server_ini_array['mail']['realtime_blackhole_list']) && $server_ini_array['mail']['realtime_blackhole_list'] != '') { + $rbl_hosts = explode(",", str_replace(" ", "", $server_ini_array['mail']['realtime_blackhole_list'])); + foreach ($rbl_hosts as $key => $value) { + $rbl_list .= ", reject_rbl_client ". $value; + } + } + unset($rbl_hosts); + + //* If Postgrey is installed, configure it + $greylisting = ''; + if($conf['postgrey']['installed'] == true) { + $greylisting = ', check_recipient_access mysql:/etc/postfix/mysql-virtual_policy_greylist.cf'; + } + + $reject_sender_login_mismatch = ''; + if(isset($server_ini_array['mail']['reject_sender_login_mismatch']) && ($server_ini_array['mail']['reject_sender_login_mismatch'] == 'y')) { + $reject_sender_login_mismatch = ', reject_authenticated_sender_login_mismatch'; + } + unset($server_ini_array); + + $tmp = str_replace('.','\.',$conf['hostname']); + + $postconf_placeholders = array('{config_dir}' => $config_dir, + '{vmail_mailbox_base}' => $cf['vmail_mailbox_base'], + '{vmail_userid}' => $cf['vmail_userid'], + '{vmail_groupid}' => $cf['vmail_groupid'], + '{rbl_list}' => $rbl_list, + '{greylisting}' => $greylisting, + '{reject_slm}' => $reject_sender_login_mismatch, + '{myhostname}' => $tmp, + ); + + $postconf_tpl = rfsel($conf['ispconfig_install_dir'].'/server/conf-custom/install/debian_postfix.conf.master', 'tpl/debian_postfix.conf.master'); + $postconf_tpl = strtr($postconf_tpl, $postconf_placeholders); + $postconf_commands = array_filter(explode("\n", $postconf_tpl)); // read and remove empty lines + + //* These postconf commands will be executed on installation only + if($this->is_update == false) { + $postconf_commands = array_merge($postconf_commands, array( + 'myhostname = '.$conf['hostname'], + 'mydestination = '.$conf['hostname'].', localhost, localhost.localdomain', + 'mynetworks = 127.0.0.0/8 [::1]/128' + )); + } + + //* Create the header and body check files + touch($config_dir.'/header_checks'); + touch($config_dir.'/mime_header_checks'); + touch($config_dir.'/nested_header_checks'); + touch($config_dir.'/body_checks'); + + //* Create the mailman files + if(!is_dir('/var/lib/mailman/data')) exec('mkdir -p /var/lib/mailman/data'); + if(!is_file('/var/lib/mailman/data/aliases')) touch('/var/lib/mailman/data/aliases'); + exec('postalias /var/lib/mailman/data/aliases'); + if(!is_file('/var/lib/mailman/data/virtual-mailman')) touch('/var/lib/mailman/data/virtual-mailman'); + exec('postmap /var/lib/mailman/data/virtual-mailman'); + if(!is_file('/var/lib/mailman/data/transport-mailman')) touch('/var/lib/mailman/data/transport-mailman'); + exec('/usr/sbin/postmap /var/lib/mailman/data/transport-mailman'); + + //* Create auxillary postfix conf files + $configfile = 'helo_access'; + if(is_file($config_dir.'/'.$configfile)) { + copy($config_dir.'/'.$configfile, $config_dir.'/'.$configfile.'~'); + chmod($config_dir.'/'.$configfile.'~', 0400); + } + $content = rfsel($conf['ispconfig_install_dir'].'/server/conf-custom/install/'.$configfile.'.master', 'tpl/'.$configfile.'.master'); + $content = strtr($content, $postconf_placeholders); + # todo: look up this server's ip addrs and loop through each + # todo: look up domains hosted on this server and loop through each + wf($config_dir.'/'.$configfile, $content); + + $configfile = 'blacklist_helo'; + if(is_file($config_dir.'/'.$configfile)) { + copy($config_dir.'/'.$configfile, $config_dir.'/'.$configfile.'~'); + chmod($config_dir.'/'.$configfile.'~', 0400); + } + $content = rfsel($conf['ispconfig_install_dir'].'/server/conf-custom/install/'.$configfile.'.master', 'tpl/'.$configfile.'.master'); + $content = strtr($content, $postconf_placeholders); + wf($config_dir.'/'.$configfile, $content); + + //* Make a backup copy of the main.cf file + copy($config_dir.'/main.cf', $config_dir.'/main.cf~'); + + //* Executing the postconf commands + foreach($postconf_commands as $cmd) { + $command = "postconf -e '$cmd'"; + caselog($command." &> /dev/null", __FILE__, __LINE__, 'EXECUTED: '.$command, 'Failed to execute the command '.$command); + } + + if(!stristr($options, 'dont-create-certs')) { + //* Create the SSL certificate + if(AUTOINSTALL){ + $command = 'cd '.$config_dir.'; ' + ."openssl req -new -subj '/C=".escapeshellcmd($autoinstall['ssl_cert_country'])."/ST=".escapeshellcmd($autoinstall['ssl_cert_state'])."/L=".escapeshellcmd($autoinstall['ssl_cert_locality'])."/O=".escapeshellcmd($autoinstall['ssl_cert_organisation'])."/OU=".escapeshellcmd($autoinstall['ssl_cert_organisation_unit'])."/CN=".escapeshellcmd($autoinstall['ssl_cert_common_name'])."' -outform PEM -out smtpd.cert -newkey rsa:4096 -nodes -keyout smtpd.key -keyform PEM -days 3650 -x509"; + } else { + $command = 'cd '.$config_dir.'; ' + .'openssl req -new -outform PEM -out smtpd.cert -newkey rsa:4096 -nodes -keyout smtpd.key -keyform PEM -days 3650 -x509'; + } + exec($command); + + $command = 'chmod o= '.$config_dir.'/smtpd.key'; + caselog($command.' &> /dev/null', __FILE__, __LINE__, 'EXECUTED: '.$command, 'Failed to execute the command '.$command); + } + + //** We have to change the permissions of the courier authdaemon directory to make it accessible for maildrop. + $command = 'chmod 755 /var/run/courier/authdaemon/'; + if(is_file('/var/run/courier/authdaemon/')) caselog($command.' &> /dev/null', __FILE__, __LINE__, 'EXECUTED: '.$command, 'Failed to execute the command '.$command); + + //* Check maildrop service in posfix master.cf + $regex = "/^maildrop unix.*pipe flags=DRhu user=vmail argv=\\/usr\\/bin\\/maildrop -d ".$cf['vmail_username']." \\$\{extension} \\$\{recipient} \\$\{user} \\$\{nexthop} \\$\{sender}/"; + $configfile = $config_dir.'/master.cf'; + if($this->get_postfix_service('maildrop', 'unix')) { + exec ("postconf -M maildrop.unix 2> /dev/null", $out, $ret); + $change_maildrop_flags = @(preg_match($regex, $out[0]) && $out[0] !='')?false:true; + } else { + $change_maildrop_flags = @(preg_match($regex, $configfile))?false:true; + } + if ($change_maildrop_flags) { + //* Change maildrop service in posfix master.cf + if(is_file($config_dir.'/master.cf')) { + copy($config_dir.'/master.cf', $config_dir.'/master.cf~'); + } + if(is_file($config_dir.'/master.cf~')) { + chmod($config_dir.'/master.cf~', 0400); + } + $configfile = $config_dir.'/master.cf'; + $content = rf($configfile); + $content = str_replace('flags=DRhu user=vmail argv=/usr/bin/maildrop -d ${recipient}', + 'flags=DRhu user='.$cf['vmail_username'].' argv=/usr/bin/maildrop -d '.$cf['vmail_username'].' ${extension} ${recipient} ${user} ${nexthop} ${sender}', + $content); + wf($configfile, $content); + } + + //* Writing the Maildrop mailfilter file + $configfile = 'mailfilter'; + if(is_file($cf['vmail_mailbox_base'].'/.'.$configfile)) { + copy($cf['vmail_mailbox_base'].'/.'.$configfile, $cf['vmail_mailbox_base'].'/.'.$configfile.'~'); + } + $content = rfsel($conf['ispconfig_install_dir'].'/server/conf-custom/install/'.$configfile.'.master', 'tpl/'.$configfile.'.master'); + $content = str_replace('{dist_postfix_vmail_mailbox_base}', $cf['vmail_mailbox_base'], $content); + wf($cf['vmail_mailbox_base'].'/.'.$configfile, $content); + + //* Create the directory for the custom mailfilters + if(!is_dir($cf['vmail_mailbox_base'].'/mailfilters')) { + $command = 'mkdir '.$cf['vmail_mailbox_base'].'/mailfilters'; + caselog($command." &> /dev/null", __FILE__, __LINE__, "EXECUTED: $command", "Failed to execute the command $command"); + } + + //* Chmod and chown the .mailfilter file + $command = 'chown '.$cf['vmail_username'].':'.$cf['vmail_groupname'].' '.$cf['vmail_mailbox_base'].'/.mailfilter'; + caselog($command." &> /dev/null", __FILE__, __LINE__, "EXECUTED: $command", "Failed to execute the command $command"); + + $command = 'chmod 600 '.$cf['vmail_mailbox_base'].'/.mailfilter'; + caselog($command." &> /dev/null", __FILE__, __LINE__, "EXECUTED: $command", "Failed to execute the command $command"); + + } + + public function configure_saslauthd() { + global $conf; + + //* Get saslsauthd version + exec('saslauthd -v 2>&1', $out); + $parts = explode(' ', $out[0]); + $saslversion = $parts[1]; + unset($parts); + unset($out); + + if(version_compare($saslversion , '2.1.23', '<=')) { + //* Configfile for saslauthd versions up to 2.1.23 + $configfile = 'sasl_smtpd.conf'; + } else { + //* Configfile for saslauthd versions 2.1.24 and newer + $configfile = 'sasl_smtpd2.conf'; + } + + if(is_file($conf['postfix']['config_dir'].'/sasl/smtpd.conf')) copy($conf['postfix']['config_dir'].'/sasl/smtpd.conf', $conf['postfix']['config_dir'].'/sasl/smtpd.conf~'); + if(is_file($conf['postfix']['config_dir'].'/sasl/smtpd.conf~')) chmod($conf['postfix']['config_dir'].'/sasl/smtpd.conf~', 0400); + $content = rfsel($conf['ispconfig_install_dir'].'/server/conf-custom/install/'.$configfile.'.master', 'tpl/'.$configfile.'.master'); + $content = str_replace('{mysql_server_ispconfig_user}', $conf['mysql']['ispconfig_user'], $content); + $content = str_replace('{mysql_server_ispconfig_password}', $conf['mysql']['ispconfig_password'], $content); + $content = str_replace('{mysql_server_database}', $conf['mysql']['database'], $content); + $content = str_replace('{mysql_server_ip}', $conf['mysql']['ip'], $content); + wf($conf['postfix']['config_dir'].'/sasl/smtpd.conf', $content); + + // TODO: Chmod and chown on the config file + + + // Recursively create the spool directory + if(!@is_dir('/var/spool/postfix/var/run/saslauthd')) mkdir('/var/spool/postfix/var/run/saslauthd', 0755, true); + + // Edit the file /etc/default/saslauthd + $configfile = $conf['saslauthd']['config']; + if(is_file($configfile)) copy($configfile, $configfile.'~'); + if(is_file($configfile.'~')) chmod($configfile.'~', 0400); + $content = rf($configfile); + $content = str_replace('START=no', 'START=yes', $content); + // Debian + $content = str_replace('OPTIONS="-c"', 'OPTIONS="-m /var/spool/postfix/var/run/saslauthd -r"', $content); + // Ubuntu + $content = str_replace('OPTIONS="-c -m /var/run/saslauthd"', 'OPTIONS="-c -m /var/spool/postfix/var/run/saslauthd -r"', $content); + wf($configfile, $content); + + // Edit the file /etc/init.d/saslauthd + $configfile = $conf['init_scripts'].'/'.$conf['saslauthd']['init_script']; + $content = rf($configfile); + $content = str_replace('PIDFILE=$RUN_DIR/saslauthd.pid', 'PIDFILE="/var/spool/postfix/var/run/${NAME}/saslauthd.pid"', $content); + wf($configfile, $content); + + // add the postfix user to the sasl group (at least necessary for Ubuntu 8.04 and most likely Debian Lenny as well. + exec('adduser postfix sasl'); + + + } + + public function configure_pam() { + global $conf; + $pam = $conf['pam']; + //* configure pam for SMTP authentication agains the ispconfig database + $configfile = 'pamd_smtp'; + if(is_file($pam.'/smtp')) copy($pam.'/smtp', $pam.'/smtp~'); + if(is_file($pam.'/smtp~')) chmod($pam.'/smtp~', 0400); + + $content = rfsel($conf['ispconfig_install_dir'].'/server/conf-custom/install/'.$configfile.'.master', 'tpl/'.$configfile.'.master'); + $content = str_replace('{mysql_server_ispconfig_user}', $conf['mysql']['ispconfig_user'], $content); + $content = str_replace('{mysql_server_ispconfig_password}', $conf['mysql']['ispconfig_password'], $content); + $content = str_replace('{mysql_server_database}', $conf['mysql']['database'], $content); + $content = str_replace('{mysql_server_ip}', $conf['mysql']['ip'], $content); + wf($pam.'/smtp', $content); + // On some OSes smtp is world readable which allows for reading database information. Removing world readable rights should have no effect. + if(is_file($pam.'/smtp')) exec("chmod o= $pam/smtp"); + chmod($pam.'/smtp', 0660); + chown($pam.'/smtp', 'daemon'); + chgrp($pam.'/smtp', 'daemon'); + + } + + public function configure_courier() { + global $conf; + $config_dir = $conf['courier']['config_dir']; + //* authmysqlrc + $configfile = 'authmysqlrc'; + if(is_file($config_dir.'/'.$configfile)) { + copy($config_dir.'/'.$configfile, $config_dir.'/'.$configfile.'~'); + } + chmod($config_dir.'/'.$configfile.'~', 0400); + $content = rfsel($conf['ispconfig_install_dir'].'/server/conf-custom/install/'.$configfile.'.master', 'tpl/'.$configfile.'.master'); + $content = str_replace('{mysql_server_ispconfig_user}', $conf['mysql']['ispconfig_user'], $content); + $content = str_replace('{mysql_server_ispconfig_password}', $conf['mysql']['ispconfig_password'], $content); + $content = str_replace('{mysql_server_database}', $conf['mysql']['database'], $content); + $content = str_replace('{mysql_server_host}', $conf['mysql']['host'], $content); + $content = str_replace('{mysql_server_port}', $conf['mysql']['port'], $content); + wf($config_dir.'/'.$configfile, $content); + + chmod($config_dir.'/'.$configfile, 0660); + chown($config_dir.'/'.$configfile, 'daemon'); + chgrp($config_dir.'/'.$configfile, 'daemon'); + + //* authdaemonrc + $configfile = $config_dir.'/authdaemonrc'; + if(is_file($configfile)) { + copy($configfile, $configfile.'~'); + } + if(is_file($configfile.'~')) { + chmod($configfile.'~', 0400); + } + $content = rf($configfile); + $content = str_replace('authmodulelist="authpam"', 'authmodulelist="authmysql"', $content); + wf($configfile, $content); + } + + public function configure_dovecot() { + global $conf; + + $virtual_transport = 'dovecot'; + + $configure_lmtp = false; + + // check if virtual_transport must be changed + if ($this->is_update) { + $tmp = $this->db->queryOneRecord("SELECT * FROM ?? WHERE server_id = ?", $conf["mysql"]["database"] . ".server", $conf['server_id']); + $ini_array = ini_to_array(stripslashes($tmp['config'])); + // ini_array needs not to be checked, because already done in update.php -> updateDbAndIni() + + if(isset($ini_array['mail']['mailbox_virtual_uidgid_maps']) && $ini_array['mail']['mailbox_virtual_uidgid_maps'] == 'y') { + $virtual_transport = 'lmtp:unix:private/dovecot-lmtp'; + $configure_lmtp = true; + } + } + + $config_dir = $conf['postfix']['config_dir']; + + //* Configure master.cf and add a line for deliver + if(!$this->get_postfix_service('dovecot', 'unix')) { + //* backup + if(is_file($config_dir.'/master.cf')){ + copy($config_dir.'/master.cf', $config_dir.'/master.cf~2'); + } + if(is_file($config_dir.'/master.cf~')){ + chmod($config_dir.'/master.cf~2', 0400); + } + //* Configure master.cf and add a line for deliver + $content = rf($conf["postfix"]["config_dir"].'/master.cf'); + $deliver_content = 'dovecot unix - n n - - pipe'."\n".' flags=DRhu user=vmail:vmail argv=/usr/lib/dovecot/deliver -f ${sender} -d ${user}@${nexthop}'."\n"; + af($config_dir.'/master.cf', $deliver_content); + unset($content); + unset($deliver_content); + } + + //* Reconfigure postfix to use dovecot authentication + // Adding the amavisd commands to the postfix configuration + $postconf_commands = array ( + 'dovecot_destination_recipient_limit = 1', + 'virtual_transport = '.$virtual_transport, + 'smtpd_sasl_type = dovecot', + 'smtpd_sasl_path = private/auth' + ); + + // Make a backup copy of the main.cf file + copy($conf['postfix']['config_dir'].'/main.cf', $conf['postfix']['config_dir'].'/main.cf~3'); + + // Executing the postconf commands + foreach($postconf_commands as $cmd) { + $command = "postconf -e '$cmd'"; + caselog($command." &> /dev/null", __FILE__, __LINE__, "EXECUTED: $command", "Failed to execute the command $command"); + } + + //* backup dovecot.conf + $config_dir = $conf['dovecot']['config_dir']; + $configfile = 'dovecot.conf'; + if(is_file($config_dir.'/'.$configfile)) { + copy($config_dir.'/'.$configfile, $config_dir.'/'.$configfile.'~'); + } + + //* Get the dovecot version + exec('dovecot --version', $tmp); + $dovecot_version = $tmp[0]; + unset($tmp); + + //* Copy dovecot configuration file + if(version_compare($dovecot_version,1, '<=')) { //* Dovecot 1.x + if(is_file($conf['ispconfig_install_dir'].'/server/conf-custom/install/debian_dovecot.conf.master')) { + copy($conf['ispconfig_install_dir'].'/server/conf-custom/install/debian_dovecot.conf.master', $config_dir.'/'.$configfile); + } else { + copy('tpl/debian_dovecot.conf.master', $config_dir.'/'.$configfile); + } + } else { //* Dovecot 2.x + if(is_file($conf['ispconfig_install_dir'].'/server/conf-custom/install/debian_dovecot2.conf.master')) { + copy($conf['ispconfig_install_dir'].'/server/conf-custom/install/debian_dovecot2.conf.master', $config_dir.'/'.$configfile); + } else { + copy('tpl/debian_dovecot2.conf.master', $config_dir.'/'.$configfile); + } + replaceLine($config_dir.'/'.$configfile, 'postmaster_address = postmaster@example.com', 'postmaster_address = postmaster@'.$conf['hostname'], 1, 0); + replaceLine($config_dir.'/'.$configfile, 'postmaster_address = webmaster@localhost', 'postmaster_address = postmaster@'.$conf['hostname'], 1, 0); + if(version_compare($dovecot_version, 2.1, '<')) { + removeLine($config_dir.'/'.$configfile, 'ssl_protocols ='); + } + if(version_compare($dovecot_version,2.2) >= 0) { + // Dovecot > 2.2 does not recognize !SSLv2 anymore on Debian 9 + $content = file_get_contents($config_dir.'/'.$configfile); + $content = str_replace('!SSLv2','',$content); + file_put_contents($config_dir.'/'.$configfile,$content); + unset($content); + } + } + + //* dovecot-lmtpd + if($configure_lmtp) { + replaceLine($config_dir.'/'.$configfile, 'protocols = imap pop3', 'protocols = imap pop3 lmtp', 1, 0); + } + + //* dovecot-sql.conf + $configfile = 'dovecot-sql.conf'; + if(is_file($config_dir.'/'.$configfile)) { + copy($config_dir.'/'.$configfile, $config_dir.'/'.$configfile.'~'); + } + if(is_file($config_dir.'/'.$configfile.'~')) chmod($config_dir.'/'.$configfile.'~', 0400); + $content = rfsel($conf['ispconfig_install_dir'].'/server/conf-custom/install/debian_dovecot-sql.conf.master', 'tpl/debian_dovecot-sql.conf.master'); + $content = str_replace('{mysql_server_ispconfig_user}', $conf['mysql']['ispconfig_user'], $content); + $content = str_replace('{mysql_server_ispconfig_password}', $conf['mysql']['ispconfig_password'], $content); + $content = str_replace('{mysql_server_database}', $conf['mysql']['database'], $content); + $content = str_replace('{mysql_server_host}', $conf['mysql']['host'], $content); + $content = str_replace('{mysql_server_port}', $conf['mysql']['port'], $content); + $content = str_replace('{server_id}', $conf['server_id'], $content); + # enable iterate_query for dovecot2 + if(version_compare($dovecot_version,2, '>=')) { + $content = str_replace('# iterate_query', 'iterate_query', $content); + } + wf($config_dir.'/'.$configfile, $content); + + chmod($config_dir.'/'.$configfile, 0600); + chown($config_dir.'/'.$configfile, 'root'); + chgrp($config_dir.'/'.$configfile, 'root'); + + // Dovecot shall ignore mounts in website directory + if(is_installed('doveadm')) exec("doveadm mount add '/var/www/*' ignore > /dev/null 2> /dev/null"); + + } + + public function configure_amavis() { + global $conf; + + // amavisd user config file + $configfile = 'amavisd_user_config'; + if(is_file($conf['amavis']['config_dir'].'/conf.d/50-user')) copy($conf['amavis']['config_dir'].'/conf.d/50-user', $conf['amavis']['config_dir'].'/50-user~'); + if(is_file($conf['amavis']['config_dir'].'/conf.d/50-user~')) chmod($conf['amavis']['config_dir'].'/50-user~', 0400); + $content = rfsel($conf['ispconfig_install_dir'].'/server/conf-custom/install/'.$configfile.'.master', 'tpl/'.$configfile.'.master'); + $content = str_replace('{mysql_server_ispconfig_user}', $conf['mysql']['ispconfig_user'], $content); + $content = str_replace('{mysql_server_ispconfig_password}', $conf['mysql']['ispconfig_password'], $content); + $content = str_replace('{mysql_server_database}', $conf['mysql']['database'], $content); + $content = str_replace('{mysql_server_port}', $conf['mysql']['port'], $content); + $content = str_replace('{mysql_server_ip}', $conf['mysql']['ip'], $content); + wf($conf['amavis']['config_dir'].'/conf.d/50-user', $content); + chmod($conf['amavis']['config_dir'].'/conf.d/50-user', 0640); + + // TODO: chmod and chown on the config file + + + // Adding the amavisd commands to the postfix configuration + // Add array for no error in foreach and maybe future options + $postconf_commands = array (); + + // Check for amavisd -> pure webserver with postfix for mailing without antispam + if ($conf['amavis']['installed']) { + $postconf_commands[] = 'content_filter = amavis:[127.0.0.1]:10024'; + $postconf_commands[] = 'receive_override_options = no_address_mappings'; + } + + // Make a backup copy of the main.cf file + copy($conf['postfix']['config_dir'].'/main.cf', $conf['postfix']['config_dir'].'/main.cf~2'); + + // Executing the postconf commands + foreach($postconf_commands as $cmd) { + $command = "postconf -e '$cmd'"; + caselog($command." &> /dev/null", __FILE__, __LINE__, "EXECUTED: $command", "Failed to execute the command $command"); + } + + $config_dir = $conf['postfix']['config_dir']; + + // Adding amavis-services to the master.cf file if the service does not already exists + $add_amavis = !$this->get_postfix_service('amavis','unix'); + $add_amavis_10025 = !$this->get_postfix_service('127.0.0.1:10025','inet'); + $add_amavis_10027 = !$this->get_postfix_service('127.0.0.1:10027','inet'); + //*TODO: check templates against existing postfix-services to make sure we use the template + + if ($add_amavis || $add_amavis_10025 || $add_amavis_10027) { + //* backup master.cf + if(is_file($config_dir.'/master.cf')) copy($config_dir.'/master.cf', $config_dir.'/master.cf~'); + // adjust amavis-config + if($add_amavis) { + $content = rfsel($conf['ispconfig_install_dir'].'/server/conf-custom/install/master_cf_amavis.master', 'tpl/master_cf_amavis.master'); + af($config_dir.'/master.cf', $content); + unset($content); + } + if ($add_amavis_10025) { + $content = rfsel($conf['ispconfig_install_dir'].'/server/conf-custom/install/master_cf_amavis10025.master', 'tpl/master_cf_amavis10025.master'); + af($config_dir.'/master.cf', $content); + unset($content); + } + if ($add_amavis_10027) { + $content = rfsel($conf['ispconfig_install_dir'].'/server/conf-custom/install/master_cf_amavis10027.master', 'tpl/master_cf_amavis10027.master'); + af($config_dir.'/master.cf', $content); + unset($content); + } + } + + // Add the clamav user to the amavis group + exec('adduser clamav amavis'); + // get shell-group for amavis + $amavis_group=exec('grep -o "^amavis:\|^vscan:" /etc/group'); + if(!empty($amavis_group)) { + $amavis_group=rtrim($amavis_group, ":"); + } + // get shell-user for amavis + $amavis_user=exec('grep -o "^amavis:\|^vscan:" /etc/passwd'); + if(!empty($amavis_user)) { + $amavis_user=rtrim($amavis_user, ":"); + } + + // Create the director for DKIM-Keys + if(!is_dir('/var/lib/amavis')) mkdir('/var/lib/amavis', 0750, true); + if(!empty($amavis_user)) exec('chown '.$amavis_user.' /var/lib/amavis'); + if(!empty($amavis_group)) exec('chgrp '.$amavis_group.' /var/lib/amavis'); + if(!is_dir('/var/lib/amavis/dkim')) mkdir('/var/lib/amavis/dkim', 0750); + if(!empty($amavis_user)) exec('chown -R '.$amavis_user.' /var/lib/amavis/dkim'); + if(!empty($amavis_group)) exec('chgrp -R '.$amavis_group.' /var/lib/amavis/dkim'); + + } + + public function configure_spamassassin() { + global $conf; + + //* Enable spamasasssin on debian and ubuntu + $configfile = '/etc/default/spamassassin'; + if(is_file($configfile)) { + copy($configfile, $configfile.'~'); + } + $content = rf($configfile); + $content = str_replace('ENABLED=0', 'ENABLED=1', $content); + wf($configfile, $content); + } + + public function configure_getmail() { + global $conf; + + $config_dir = $conf['getmail']['config_dir']; + + if(!@is_dir($config_dir)) mkdir(escapeshellcmd($config_dir), 0700, true); + + $command = 'useradd -d '.$config_dir.' getmail'; + if(!is_user('getmail')) caselog($command.' &> /dev/null', __FILE__, __LINE__, "EXECUTED: $command", "Failed to execute the command $command"); + + $command = "chown -R getmail $config_dir"; + caselog($command.' &> /dev/null', __FILE__, __LINE__, "EXECUTED: $command", "Failed to execute the command $command"); + + $command = "chmod -R 700 $config_dir"; + caselog($command.' &> /dev/null', __FILE__, __LINE__, "EXECUTED: $command", "Failed to execute the command $command"); + } + + + public function configure_pureftpd() { + global $conf; + + $config_dir = $conf['pureftpd']['config_dir']; + + //* configure pure-ftpd for MySQL authentication against the ispconfig database + $configfile = 'db/mysql.conf'; + if(is_file($config_dir.'/'.$configfile)) { + copy($config_dir.'/'.$configfile, $config_dir.'/'.$configfile.'~'); + } + if(is_file($config_dir.'/'.$configfile.'~')) { + chmod($config_dir.'/'.$configfile.'~', 0400); + } + $content = rfsel($conf['ispconfig_install_dir'].'/server/conf-custom/install/pureftpd_mysql.conf.master', 'tpl/pureftpd_mysql.conf.master'); + $content = str_replace('{mysql_server_ispconfig_user}', $conf['mysql']['ispconfig_user'], $content); + $content = str_replace('{mysql_server_ispconfig_password}', $conf['mysql']['ispconfig_password'], $content); + $content = str_replace('{mysql_server_database}', $conf['mysql']['database'], $content); + $content = str_replace('{mysql_server_ip}', $conf['mysql']['ip'], $content); + $content = str_replace('{server_id}', $conf['server_id'], $content); + wf($config_dir.'/'.$configfile, $content); + chmod($config_dir.'/'.$configfile, 0600); + chown($config_dir.'/'.$configfile, 'root'); + chgrp($config_dir.'/'.$configfile, 'root'); + // **enable chrooting + //exec('mkdir -p '.$config_dir.'/conf/ChrootEveryone'); + exec('echo "yes" > '.$config_dir.'/conf/ChrootEveryone'); + exec('echo "yes" > '.$config_dir.'/conf/BrokenClientsCompatibility'); + exec('echo "yes" > '.$config_dir.'/conf/DisplayDotFiles'); + + if(is_file('/etc/default/pure-ftpd-common')) { + replaceLine('/etc/default/pure-ftpd-common', 'STANDALONE_OR_INETD=inetd', 'STANDALONE_OR_INETD=standalone', 1, 0); + replaceLine('/etc/default/pure-ftpd-common', 'VIRTUALCHROOT=false', 'VIRTUALCHROOT=true', 1, 0); + } + + if(is_file('/etc/inetd.conf')) { + replaceLine('/etc/inetd.conf', '/usr/sbin/pure-ftpd-wrapper', '#ftp stream tcp nowait root /usr/sbin/tcpd /usr/sbin/pure-ftpd-wrapper', 0, 0); + exec($this->getinitcommand('openbsd-inetd', 'restart')); + //if(is_file($conf['init_scripts'].'/'.'openbsd-inetd')) exec($conf['init_scripts'].'/'.'openbsd-inetd restart'); + } + + if(!is_file('/etc/pure-ftpd/conf/DontResolve')) exec('echo "yes" > /etc/pure-ftpd/conf/DontResolve'); + } + + public function configure_mydns() { + global $conf; + + // configure pam for SMTP authentication agains the ispconfig database + $configfile = 'mydns.conf'; + if(is_file($conf['mydns']['config_dir'].'/'.$configfile)) copy($conf['mydns']['config_dir'].'/'.$configfile, $conf['mydns']['config_dir'].'/'.$configfile.'~'); + if(is_file($conf['mydns']['config_dir'].'/'.$configfile.'~')) chmod($conf['mydns']['config_dir'].'/'.$configfile.'~', 0400); + $content = rfsel($conf['ispconfig_install_dir'].'/server/conf-custom/install/'.$configfile.'.master', 'tpl/'.$configfile.'.master'); + $content = str_replace('{mysql_server_ispconfig_user}', $conf['mysql']['ispconfig_user'], $content); + $content = str_replace('{mysql_server_ispconfig_password}', $conf['mysql']['ispconfig_password'], $content); + $content = str_replace('{mysql_server_database}', $conf['mysql']['database'], $content); + $content = str_replace('{mysql_server_host}', $conf['mysql']['host'], $content); + $content = str_replace('{mysql_server_port}', $conf['mysql']['port'], $content); + $content = str_replace('{server_id}', $conf['server_id'], $content); + wf($conf['mydns']['config_dir'].'/'.$configfile, $content); + chmod($conf['mydns']['config_dir'].'/'.$configfile, 0600); + chown($conf['mydns']['config_dir'].'/'.$configfile, 'root'); + chgrp($conf['mydns']['config_dir'].'/'.$configfile, 'root'); + + } + + public function configure_powerdns() { + global $conf; + + //* Create the database + if(!$this->db->query('CREATE DATABASE IF NOT EXISTS ?? DEFAULT CHARACTER SET ?', $conf['powerdns']['database'], $conf['mysql']['charset'])) { + $this->error('Unable to create MySQL database: '.$conf['powerdns']['database'].'.'); + } + + //* Create the ISPConfig database user in the local database + $query = "GRANT ALL ON ?? TO ?@'localhost'"; + if(!$this->db->query($query, $conf['powerdns']['database'] . '.*', $conf['mysql']['ispconfig_user'])) { + $this->error('Unable to create user for powerdns database Error: '.$this->db->errorMessage); + } + + //* load the powerdns databse dump + if($conf['mysql']['admin_password'] == '') { + caselog("mysql --default-character-set=".$conf['mysql']['charset']." -h '".$conf['mysql']['host']."' -u '".$conf['mysql']['admin_user']."' '".$conf['powerdns']['database']."' < '".ISPC_INSTALL_ROOT."/install/sql/powerdns.sql' &> /dev/null", + __FILE__, __LINE__, 'read in ispconfig3.sql', 'could not read in powerdns.sql'); + } else { + caselog("mysql --default-character-set=".$conf['mysql']['charset']." -h '".$conf['mysql']['host']."' -u '".$conf['mysql']['admin_user']."' -p'".$conf['mysql']['admin_password']."' '".$conf['powerdns']['database']."' < '".ISPC_INSTALL_ROOT."/install/sql/powerdns.sql' &> /dev/null", + __FILE__, __LINE__, 'read in ispconfig3.sql', 'could not read in powerdns.sql'); + } + + //* Create the powerdns config file + $configfile = 'pdns.local'; + if(is_file($conf['powerdns']['config_dir'].'/'.$configfile)) copy($conf['powerdns']['config_dir'].'/'.$configfile, $conf['powerdns']['config_dir'].'/'.$configfile.'~'); + if(is_file($conf['powerdns']['config_dir'].'/'.$configfile.'~')) chmod($conf['powerdns']['config_dir'].'/'.$configfile.'~', 0400); + $content = rfsel($conf['ispconfig_install_dir'].'/server/conf-custom/install/'.$configfile.'.master', 'tpl/'.$configfile.'.master'); + $content = str_replace('{mysql_server_ispconfig_user}', $conf['mysql']['ispconfig_user'], $content); + $content = str_replace('{mysql_server_ispconfig_password}', $conf['mysql']['ispconfig_password'], $content); + $content = str_replace('{powerdns_database}', $conf['powerdns']['database'], $content); + $content = str_replace('{mysql_server_host}', $conf['mysql']['host'], $content); + $content = str_replace('{mysql_server_port}', $conf['mysql']['port'], $content); + wf($conf['powerdns']['config_dir'].'/'.$configfile, $content); + chmod($conf['powerdns']['config_dir'].'/'.$configfile, 0600); + chown($conf['powerdns']['config_dir'].'/'.$configfile, 'root'); + chgrp($conf['powerdns']['config_dir'].'/'.$configfile, 'root'); + + + } + + //** writes bind configuration files + public function process_bind_file($configfile, $target='/', $absolute=false) { + global $conf; + + if ($absolute) $full_file_name = $target.$configfile; + else $full_file_name = $conf['ispconfig_install_dir'].$target.$configfile; + + //* Backup exiting file + if(is_file($full_file_name)) { + copy($full_file_name, $config_dir.$configfile.'~'); + } + $content = rfsel($conf['ispconfig_install_dir'].'/server/conf-custom/install/'.$configfile.'.master', 'tpl/'.$configfile.'.master'); + $content = str_replace('{mysql_server_ispconfig_user}', $conf['mysql']['ispconfig_user'], $content); + $content = str_replace('{mysql_server_ispconfig_password}', $conf['mysql']['ispconfig_password'], $content); + $content = str_replace('{mysql_server_ispconfig_database}', $conf['mysql']['database'], $content); + $content = str_replace('{mysql_server_ip}', $conf['mysql']['ip'], $content); + $content = str_replace('{ispconfig_install_dir}', $conf['ispconfig_install_dir'], $content); + $content = str_replace('{dnssec_conffile}', $conf['ispconfig_install_dir'].'/server/scripts/dnssec-config.sh', $content); + wf($full_file_name, $content); + } + + public function configure_bind() { + global $conf; + + //* Check if the zonefile directory has a slash at the end + $content=$conf['bind']['bind_zonefiles_dir']; + if(substr($content, -1, 1) != '/') { + $content .= '/'; + } + + //* Create the slave subdirectory + $content .= 'slave'; + if(!@is_dir($content)) mkdir($content, 02770, true); + + //* Chown the slave subdirectory to $conf['bind']['bind_user'] + chown($content, $conf['bind']['bind_user']); + chgrp($content, $conf['bind']['bind_group']); + chmod($content, 02770); + + //* Install scripts for dnssec implementation + $this->process_bind_file('named.conf.options', '/etc/bind/', true); //TODO replace hardcoded path + } + + + public function configure_xmpp($options = '') { + global $conf; + + if($conf['xmpp']['installed'] == false) return; + //* Create the logging directory for xmpp server + if(!@is_dir('/var/log/metronome')) mkdir('/var/log/metronome', 0755, true); + chown('/var/log/metronome', 'metronome'); + if(!@is_dir('/var/run/metronome')) mkdir('/var/run/metronome', 0755, true); + chown('/var/run/metronome', 'metronome'); + if(!@is_dir('/var/lib/metronome')) mkdir('/var/lib/metronome', 0755, true); + chown('/var/lib/metronome', 'metronome'); + if(!@is_dir('/etc/metronome/hosts')) mkdir('/etc/metronome/hosts', 0755, true); + if(!@is_dir('/etc/metronome/status')) mkdir('/etc/metronome/status', 0755, true); + unlink('/etc/metronome/metronome.cfg.lua'); + + $row = $this->db->queryOneRecord("SELECT server_name FROM server WHERE server_id = ?", $conf["server_id"]); + $server_name = $row["server_name"]; + + $tpl = new tpl('metronome_conf_main.master'); + wf('/etc/metronome/metronome.cfg.lua', $tpl->grab()); + unset($tpl); + + $tpl = new tpl('metronome_conf_global.master'); + $tpl->setVar('xmpp_admins',''); + wf('/etc/metronome/global.cfg.lua', $tpl->grab()); + unset($tpl); + + // Copy isp libs + if(!@is_dir('/usr/lib/metronome/isp-modules')) mkdir('/usr/lib/metronome/isp-modules', 0755, true); + caselog('cp -rf apps/metronome_libs/* /usr/lib/metronome/isp-modules/', __FILE__, __LINE__); + caselog('chmod 755 /usr/lib/metronome/isp-modules/mod_auth_external/authenticate_isp.sh', __FILE__, __LINE__); + // Process db config + $full_file_name = '/usr/lib/metronome/isp-modules/mod_auth_external/db_conf.inc.php'; + $content = rf($full_file_name); + $content = str_replace('{mysql_server_ispconfig_user}', $conf['mysql']['ispconfig_user'], $content); + $content = str_replace('{mysql_server_ispconfig_password}', $conf['mysql']['ispconfig_password'], $content); + $content = str_replace('{mysql_server_database}', $conf['mysql']['database'], $content); + $content = str_replace('{mysql_server_ip}', $conf['mysql']['ip'], $content); + $content = str_replace('{server_id}', $conf['server_id'], $content); + wf($full_file_name, $content); + + if(!stristr($options, 'dont-create-certs')){ + // Create SSL Certificate for localhost + // Ensure no line is left blank + echo "writing new private key to 'localhost.key'\n-----\n"; + $ssl_country = $this->free_query('Country Name (2 letter code)', 'AU','ssl_cert_country'); + $ssl_locality = $this->free_query('Locality Name (eg, city)', 'City Name','ssl_cert_locality'); + $ssl_organisation = $this->free_query('Organization Name (eg, company)', 'Internet Widgits Pty Ltd','ssl_cert_organisation'); + $ssl_organisation_unit = $this->free_query('Organizational Unit Name (eg, section)', 'Infrastructure','ssl_cert_organisation_unit'); + $ssl_domain = $this->free_query('Common Name (e.g. server FQDN or YOUR name)', $conf['hostname'],'ssl_cert_common_name'); + $ssl_email = $this->free_query('Email Address', 'hostmaster@'.$conf['hostname'],'ssl_cert_email'); + + $tpl = new tpl('metronome_conf_ssl.master'); + $tpl->setVar('ssl_country',$ssl_country); + $tpl->setVar('ssl_locality',$ssl_locality); + $tpl->setVar('ssl_organisation',$ssl_organisation); + $tpl->setVar('ssl_organisation_unit',$ssl_organisation_unit); + $tpl->setVar('domain',$ssl_domain); + $tpl->setVar('ssl_email',$ssl_email); + wf('/etc/metronome/certs/localhost.cnf', $tpl->grab()); + unset($tpl); + // Generate new key, csr and cert + exec("(cd /etc/metronome/certs && make localhost.key)"); + exec("(cd /etc/metronome/certs && make localhost.csr)"); + exec("(cd /etc/metronome/certs && make localhost.cert)"); + exec('chmod 0400 /etc/metronome/certs/localhost.key'); + exec('chown metronome /etc/metronome/certs/localhost.key'); + + echo "IMPORTANT:\n"; + echo "Localhost Key, Csr and a self-signed Cert have been saved to /etc/metronome/certs\n"; + echo "In order to work with all clients, the server must have a trusted certificate, so use the Csr\n"; + echo "to get a trusted certificate from your CA or replace Key and Cert with already signed files for\n"; + echo "your domain. Clients like Pidgin dont allow to use untrusted self-signed certificates.\n"; + echo "\n"; + + }else{ + /* + echo "-----\n"; + echo "Metronome XMPP SSL server certificate is not renewed. Run the following command manual as root to recreate it:\n"; + echo "# (cd /etc/metronome/certs && make localhost.key && make localhost.csr && make localhost.cert && chmod 0400 localhost.key && chown metronome localhost.key)\n"; + echo "-----\n"; + */ + } + + // Copy init script + caselog('cp -f apps/metronome-init /etc/init.d/metronome', __FILE__, __LINE__); + caselog('chmod u+x /etc/init.d/metronome', __FILE__, __LINE__); + caselog('update-rc.d metronome defaults', __FILE__, __LINE__); + + exec($this->getinitcommand($conf['xmpp']['init_script'], 'restart')); + } + + + public function configure_apache() { + global $conf; + + if($conf['apache']['installed'] == false) return; + //* Create the logging directory for the vhost logfiles + if(!@is_dir($conf['ispconfig_log_dir'].'/httpd')) mkdir($conf['ispconfig_log_dir'].'/httpd', 0755, true); + + if(is_file('/etc/suphp/suphp.conf')) { + replaceLine('/etc/suphp/suphp.conf', 'php="php:/usr/bin', 'x-httpd-suphp="php:/usr/bin/php-cgi"', 0); + //replaceLine('/etc/suphp/suphp.conf','docroot=','docroot=/var/clients',0); + replaceLine('/etc/suphp/suphp.conf', 'umask=00', 'umask=0022', 0); + } + + if(is_file('/etc/apache2/sites-enabled/000-default')) { + replaceLine('/etc/apache2/sites-available/000-default', 'NameVirtualHost *', 'NameVirtualHost *:80', 1, 0); + replaceLine('/etc/apache2/sites-available/000-default', '', '', 1, 0); + } + + if(is_file('/etc/apache2/ports.conf')) { + // add a line "Listen 443" to ports conf if line does not exist + replaceLine('/etc/apache2/ports.conf', 'Listen 443', 'Listen 443', 1); + + // Comment out the namevirtualhost lines, as they were added by ispconfig in ispconfig.conf file again + replaceLine('/etc/apache2/ports.conf', 'NameVirtualHost *:80', '# NameVirtualHost *:80', 1); + replaceLine('/etc/apache2/ports.conf', 'NameVirtualHost *:443', '# NameVirtualHost *:443', 1); + } + + if(is_file('/etc/apache2/mods-available/fcgid.conf')) { + // add or modify the parameters for fcgid.conf + replaceLine('/etc/apache2/mods-available/fcgid.conf','MaxRequestLen','MaxRequestLen 15728640',1); + } + + if(is_file('/etc/apache2/apache.conf')) { + if(hasLine('/etc/apache2/apache.conf', 'Include sites-enabled/', 1) == false) { + if(hasLine('/etc/apache2/apache.conf', 'IncludeOptional sites-enabled/*.conf', 1) == false && hasLine('/etc/apache2/apache.conf', 'IncludeOptional sites-enabled/', 1) == false) { + replaceLine('/etc/apache2/apache.conf', 'Include sites-enabled/', 'Include sites-enabled/', 1, 1); + } elseif(hasLine('/etc/apache2/apache.conf', 'IncludeOptional sites-enabled/*.vhost', 1) == false) { + replaceLine('/etc/apache2/apache.conf', 'IncludeOptional sites-enabled/*.vhost', 'IncludeOptional sites-enabled/', 1, 1); + } + } + } + + if(is_file('/etc/apache2/apache2.conf')) { + if(hasLine('/etc/apache2/apache2.conf', 'Include sites-enabled/', 1) == false && hasLine('/etc/apache2/apache2.conf', 'IncludeOptional sites-enabled/', 1) == false) { + if(hasLine('/etc/apache2/apache2.conf', 'Include sites-enabled/*.conf', 1) == true) { + replaceLine('/etc/apache2/apache2.conf', 'Include sites-enabled/*.conf', 'Include sites-enabled/', 1, 1); + } elseif(hasLine('/etc/apache2/apache2.conf', 'IncludeOptional sites-enabled/*.conf', 1) == true) { + replaceLine('/etc/apache2/apache2.conf', 'IncludeOptional sites-enabled/*.conf', 'IncludeOptional sites-enabled/', 1, 1); + } + } + } + + //* Copy the ISPConfig configuration include + $vhost_conf_dir = $conf['apache']['vhost_conf_dir']; + $vhost_conf_enabled_dir = $conf['apache']['vhost_conf_enabled_dir']; + + $tpl = new tpl('apache_ispconfig.conf.master'); + $tpl->setVar('apache_version',getapacheversion()); + + if($this->is_update == true) { + $tpl->setVar('logging',get_logging_state()); + } else { + $tpl->setVar('logging','yes'); + } + + $records = $this->db->queryAllRecords("SELECT * FROM ?? WHERE server_id = ? AND virtualhost = 'y'", $conf['mysql']['master_database'] . '.server_ip', $conf['server_id']); + $ip_addresses = array(); + + if(is_array($records) && count($records) > 0) { + foreach($records as $rec) { + if($rec['ip_type'] == 'IPv6') { + $ip_address = '['.$rec['ip_address'].']'; + } else { + $ip_address = $rec['ip_address']; + } + $ports = explode(',', $rec['virtualhost_port']); + if(is_array($ports)) { + foreach($ports as $port) { + $port = intval($port); + if($port > 0 && $port < 65536 && $ip_address != '') { + $ip_addresses[] = array('ip_address' => $ip_address, 'port' => $port); + } + } + } + } + } + + if(count($ip_addresses) > 0) $tpl->setLoop('ip_adresses',$ip_addresses); + + wf($vhost_conf_dir.'/ispconfig.conf', $tpl->grab()); + unset($tpl); + + if(!@is_link($vhost_conf_enabled_dir.'/000-ispconfig.conf')) { + symlink($vhost_conf_dir.'/ispconfig.conf', $vhost_conf_enabled_dir.'/000-ispconfig.conf'); + } + + //* make sure that webalizer finds its config file when it is directly in /etc + if(@is_file('/etc/webalizer.conf') && !@is_dir('/etc/webalizer')) { + mkdir('/etc/webalizer'); + symlink('/etc/webalizer.conf', '/etc/webalizer/webalizer.conf'); + } + + if(is_file('/etc/webalizer/webalizer.conf')) { + // Change webalizer mode to incremental + replaceLine('/etc/webalizer/webalizer.conf', '#IncrementalName', 'IncrementalName webalizer.current', 0, 0); + replaceLine('/etc/webalizer/webalizer.conf', '#Incremental', 'Incremental yes', 0, 0); + replaceLine('/etc/webalizer/webalizer.conf', '#HistoryName', 'HistoryName webalizer.hist', 0, 0); + } + + // Check the awsatst script + if(!is_dir('/usr/share/awstats/tools')) exec('mkdir -p /usr/share/awstats/tools'); + if(!file_exists('/usr/share/awstats/tools/awstats_buildstaticpages.pl') && file_exists('/usr/share/doc/awstats/examples/awstats_buildstaticpages.pl')) symlink('/usr/share/doc/awstats/examples/awstats_buildstaticpages.pl', '/usr/share/awstats/tools/awstats_buildstaticpages.pl'); + if(file_exists('/etc/awstats/awstats.conf.local')) replaceLine('/etc/awstats/awstats.conf.local', 'LogFormat=4', 'LogFormat=1', 0, 1); + + //* add a sshusers group + $command = 'groupadd sshusers'; + if(!is_group('sshusers')) caselog($command.' &> /dev/null 2> /dev/null', __FILE__, __LINE__, "EXECUTED: $command", "Failed to execute the command $command"); + + } + + public function configure_nginx(){ + global $conf; + + if($conf['nginx']['installed'] == false) return; + //* Create the logging directory for the vhost logfiles + if(!@is_dir($conf['ispconfig_log_dir'].'/httpd')) mkdir($conf['ispconfig_log_dir'].'/httpd', 0755, true); + + //* make sure that webalizer finds its config file when it is directly in /etc + if(@is_file('/etc/webalizer.conf') && !@is_dir('/etc/webalizer')) { + mkdir('/etc/webalizer'); + symlink('/etc/webalizer.conf', '/etc/webalizer/webalizer.conf'); + } + + if(is_file('/etc/webalizer/webalizer.conf')) { + // Change webalizer mode to incremental + replaceLine('/etc/webalizer/webalizer.conf', '#IncrementalName', 'IncrementalName webalizer.current', 0, 0); + replaceLine('/etc/webalizer/webalizer.conf', '#Incremental', 'Incremental yes', 0, 0); + replaceLine('/etc/webalizer/webalizer.conf', '#HistoryName', 'HistoryName webalizer.hist', 0, 0); + } + + // Check the awsatst script + if(!is_dir('/usr/share/awstats/tools')) exec('mkdir -p /usr/share/awstats/tools'); + if(!file_exists('/usr/share/awstats/tools/awstats_buildstaticpages.pl') && file_exists('/usr/share/doc/awstats/examples/awstats_buildstaticpages.pl')) symlink('/usr/share/doc/awstats/examples/awstats_buildstaticpages.pl', '/usr/share/awstats/tools/awstats_buildstaticpages.pl'); + if(file_exists('/etc/awstats/awstats.conf.local')) replaceLine('/etc/awstats/awstats.conf.local', 'LogFormat=4', 'LogFormat=1', 0, 1); + + //* add a sshusers group + $command = 'groupadd sshusers'; + if(!is_group('sshusers')) caselog($command.' &> /dev/null 2> /dev/null', __FILE__, __LINE__, "EXECUTED: $command", "Failed to execute the command $command"); + + // add anonymized log option to nginxx.conf file + $nginx_conf_file = $conf['nginx']['config_dir'].'/nginx.conf'; + if(is_file($nginx_conf_file)) { + $tmp = file_get_contents($nginx_conf_file); + if(!stristr($tmp, 'log_format anonymized')) { + copy($nginx_conf_file,$nginx_conf_file.'~'); + replaceLine($nginx_conf_file, 'http {', "http {\n\n".file_get_contents('tpl/nginx_anonlog.master'), 0, 0); + } + } + + } + + public function configure_fail2ban() { + // To Do + } + + public function configure_squid() + { + global $conf; + $row = $this->db->queryOneRecord("SELECT server_name FROM server WHERE server_id = ?", $conf["server_id"]); + $ip_address = gethostbyname($row["server_name"]); + $server_name = $row["server_name"]; + + $configfile = 'squid.conf'; + if(is_file($conf["squid"]["config_dir"].'/'.$configfile)) copy($conf["squid"]["config_dir"].'/'.$configfile, $conf["squid"]["config_dir"].'/'.$configfile.'~'); + if(is_file($conf["squid"]["config_dir"].'/'.$configfile.'~')) exec('chmod 400 '.$conf["squid"]["config_dir"].'/'.$configfile.'~'); + $content = rfsel($conf['ispconfig_install_dir'].'/server/conf-custom/install/'.$configfile.'.master', "tpl/".$configfile.".master"); + $content = str_replace('{server_name}', $server_name, $content); + $content = str_replace('{ip_address}', $ip_address, $content); + $content = str_replace('{config_dir}', $conf['squid']['config_dir'], $content); + wf($conf["squid"]["config_dir"].'/'.$configfile, $content); + exec('chmod 600 '.$conf["squid"]["config_dir"].'/'.$configfile); + exec('chown root:root '.$conf["squid"]["config_dir"].'/'.$configfile); + } + + public function configure_ufw_firewall() + { + if($this->is_update == false) { + $configfile = 'ufw.conf'; + if(is_file('/etc/ufw/ufw.conf')) copy('/etc/ufw/ufw.conf', '/etc/ufw/ufw.conf~'); + $content = rf("tpl/".$configfile.".master"); + wf('/etc/ufw/ufw.conf', $content); + exec('chmod 600 /etc/ufw/ufw.conf'); + exec('chown root:root /etc/ufw/ufw.conf'); + } + } + + public function configure_bastille_firewall() { + global $conf; + + $dist_init_scripts = $conf['init_scripts']; + + if(is_dir('/etc/Bastille.backup')) caselog('rm -rf /etc/Bastille.backup', __FILE__, __LINE__); + if(is_dir('/etc/Bastille')) caselog('mv -f /etc/Bastille /etc/Bastille.backup', __FILE__, __LINE__); + @mkdir('/etc/Bastille', 0700); + if(is_dir('/etc/Bastille.backup/firewall.d')) caselog('cp -pfr /etc/Bastille.backup/firewall.d /etc/Bastille/', __FILE__, __LINE__); + if(is_file($conf['ispconfig_install_dir'].'/server/conf-custom/install/bastille-firewall.cfg.master')) { + caselog('cp -f ' . $conf['ispconfig_install_dir'].'/server/conf-custom/install/bastille-firewall.cfg.master /etc/Bastille/bastille-firewall.cfg', __FILE__, __LINE__); + } else { + caselog('cp -f tpl/bastille-firewall.cfg.master /etc/Bastille/bastille-firewall.cfg', __FILE__, __LINE__); + } + caselog('chmod 644 /etc/Bastille/bastille-firewall.cfg', __FILE__, __LINE__); + $content = rf('/etc/Bastille/bastille-firewall.cfg'); + $content = str_replace('{DNS_SERVERS}', '', $content); + + $tcp_public_services = ''; + $udp_public_services = ''; + + $row = $this->db->queryOneRecord('SELECT * FROM ?? WHERE server_id = ?', $conf["mysql"]["database"] . '.firewall', $conf['server_id']); + + if(trim($row['tcp_port']) != '' || trim($row['udp_port']) != '') { + $tcp_public_services = trim(str_replace(',', ' ', $row['tcp_port'])); + $udp_public_services = trim(str_replace(',', ' ', $row['udp_port'])); + } else { + $tcp_public_services = '21 22 25 53 80 110 143 443 3306 8080 10000'; + $udp_public_services = '53'; + } + + if(!stristr($tcp_public_services, $conf['apache']['vhost_port'])) { + $tcp_public_services .= ' '.intval($conf['apache']['vhost_port']); + if($row['tcp_port'] != '') $this->db->query("UPDATE firewall SET tcp_port = tcp_port + ? WHERE server_id = ?", ',' . intval($conf['apache']['vhost_port']), $conf['server_id']); + } + + $content = str_replace('{TCP_PUBLIC_SERVICES}', $tcp_public_services, $content); + $content = str_replace('{UDP_PUBLIC_SERVICES}', $udp_public_services, $content); + + wf('/etc/Bastille/bastille-firewall.cfg', $content); + + if(is_file($dist_init_scripts.'/bastille-firewall')) caselog('mv -f '.$dist_init_scripts.'/bastille-firewall '.$dist_init_scripts.'/bastille-firewall.backup', __FILE__, __LINE__); + caselog('cp -f apps/bastille-firewall '.$dist_init_scripts, __FILE__, __LINE__); + caselog('chmod 700 '.$dist_init_scripts.'/bastille-firewall', __FILE__, __LINE__); + + if(is_file('/sbin/bastille-ipchains')) caselog('mv -f /sbin/bastille-ipchains /sbin/bastille-ipchains.backup', __FILE__, __LINE__); + caselog('cp -f apps/bastille-ipchains /sbin', __FILE__, __LINE__); + caselog('chmod 700 /sbin/bastille-ipchains', __FILE__, __LINE__); + + if(is_file('/sbin/bastille-netfilter')) caselog('mv -f /sbin/bastille-netfilter /sbin/bastille-netfilter.backup', __FILE__, __LINE__); + caselog('cp -f apps/bastille-netfilter /sbin', __FILE__, __LINE__); + caselog('chmod 700 /sbin/bastille-netfilter', __FILE__, __LINE__); + + if(!@is_dir('/var/lock/subsys')) caselog('mkdir /var/lock/subsys', __FILE__, __LINE__); + + exec('which ipchains &> /dev/null', $ipchains_location, $ret_val); + if(!is_file('/sbin/ipchains') && !is_link('/sbin/ipchains') && $ret_val == 0) phpcaselog(@symlink(shell_exec('which ipchains'), '/sbin/ipchains'), 'create symlink', __FILE__, __LINE__); + unset($ipchains_location); + exec('which iptables &> /dev/null', $iptables_location, $ret_val); + if(!is_file('/sbin/iptables') && !is_link('/sbin/iptables') && $ret_val == 0) phpcaselog(@symlink(trim(shell_exec('which iptables')), '/sbin/iptables'), 'create symlink', __FILE__, __LINE__); + unset($iptables_location); + + } + + public function configure_vlogger() { + global $conf; + + //** Configure vlogger to use traffic logging to mysql (master) db + $configfile = 'vlogger-dbi.conf'; + if(is_file($conf['vlogger']['config_dir'].'/'.$configfile)) copy($conf['vlogger']['config_dir'].'/'.$configfile, $conf['vlogger']['config_dir'].'/'.$configfile.'~'); + if(is_file($conf['vlogger']['config_dir'].'/'.$configfile.'~')) chmod($conf['vlogger']['config_dir'].'/'.$configfile.'~', 0400); + $content = rfsel($conf['ispconfig_install_dir'].'/server/conf-custom/install/'.$configfile.'.master', 'tpl/'.$configfile.'.master'); + if($conf['mysql']['master_slave_setup'] == 'y') { + $content = str_replace('{mysql_server_ispconfig_user}', $conf['mysql']['master_ispconfig_user'], $content); + $content = str_replace('{mysql_server_ispconfig_password}', $conf['mysql']['master_ispconfig_password'], $content); + $content = str_replace('{mysql_server_database}', $conf['mysql']['master_database'], $content); + $content = str_replace('{mysql_server_ip}', $conf['mysql']['master_host'], $content); + } else { + $content = str_replace('{mysql_server_ispconfig_user}', $conf['mysql']['ispconfig_user'], $content); + $content = str_replace('{mysql_server_ispconfig_password}', $conf['mysql']['ispconfig_password'], $content); + $content = str_replace('{mysql_server_database}', $conf['mysql']['database'], $content); + $content = str_replace('{mysql_server_ip}', $conf['mysql']['ip'], $content); + } + wf($conf['vlogger']['config_dir'].'/'.$configfile, $content); + chmod($conf['vlogger']['config_dir'].'/'.$configfile, 0600); + chown($conf['vlogger']['config_dir'].'/'.$configfile, 'root'); + chgrp($conf['vlogger']['config_dir'].'/'.$configfile, 'root'); + + } + + public function configure_apps_vhost() { + global $conf; + + //* Create the ispconfig apps vhost user and group + if($conf['apache']['installed'] == true){ + $apps_vhost_user = escapeshellcmd($conf['web']['apps_vhost_user']); + $apps_vhost_group = escapeshellcmd($conf['web']['apps_vhost_group']); + $install_dir = escapeshellcmd($conf['web']['website_basedir'].'/apps'); + + $command = 'groupadd '.$apps_vhost_user; + if(!is_group($apps_vhost_group)) caselog($command.' &> /dev/null 2> /dev/null', __FILE__, __LINE__, "EXECUTED: $command", "Failed to execute the command $command"); + + $command = 'useradd -g '.$apps_vhost_group.' -d '.$install_dir.' '.$apps_vhost_group; + if(!is_user($apps_vhost_user)) caselog($command.' &> /dev/null 2> /dev/null', __FILE__, __LINE__, "EXECUTED: $command", "Failed to execute the command $command"); + + + //$command = 'adduser '.$conf['apache']['user'].' '.$apps_vhost_group; + $command = 'usermod -a -G '.$apps_vhost_group.' '.$conf['apache']['user']; + caselog($command.' &> /dev/null', __FILE__, __LINE__, "EXECUTED: $command", "Failed to execute the command $command"); + + if(!@is_dir($install_dir)){ + mkdir($install_dir, 0755, true); + } else { + chmod($install_dir, 0755); + } + chown($install_dir, $apps_vhost_user); + chgrp($install_dir, $apps_vhost_group); + + //* Copy the apps vhost file + $vhost_conf_dir = $conf['apache']['vhost_conf_dir']; + $vhost_conf_enabled_dir = $conf['apache']['vhost_conf_enabled_dir']; + $apps_vhost_servername = ($conf['web']['apps_vhost_servername'] == '')?'':'ServerName '.$conf['web']['apps_vhost_servername']; + + //* Get the apps vhost port + if($this->is_update == true) { + $conf['web']['apps_vhost_port'] = get_apps_vhost_port_number(); + } + + // Dont just copy over the virtualhost template but add some custom settings + $tpl = new tpl('apache_apps.vhost.master'); + $tpl->setVar('apps_vhost_ip',$conf['web']['apps_vhost_ip']); + $tpl->setVar('apps_vhost_port',$conf['web']['apps_vhost_port']); + $tpl->setVar('apps_vhost_dir',$conf['web']['website_basedir'].'/apps'); + $tpl->setVar('apps_vhost_basedir',$conf['web']['website_basedir']); + $tpl->setVar('apps_vhost_servername',$apps_vhost_servername); + $tpl->setVar('apache_version',getapacheversion()); + if($this->is_update == true) { + $tpl->setVar('logging',get_logging_state()); + } else { + $tpl->setVar('logging','yes'); + } + + + // comment out the listen directive if port is 80 or 443 + if($conf['web']['apps_vhost_ip'] == 80 or $conf['web']['apps_vhost_ip'] == 443) { + $tpl->setVar('vhost_port_listen','#'); + } else { + $tpl->setVar('vhost_port_listen',''); + } + + wf($vhost_conf_dir.'/apps.vhost', $tpl->grab()); + unset($tpl); + + //copy('tpl/apache_ispconfig.vhost.master', "$vhost_conf_dir/ispconfig.vhost"); + //* and create the symlink + if(@is_link($vhost_conf_enabled_dir.'/apps.vhost')) unlink($vhost_conf_enabled_dir.'/apps.vhost'); + if(!@is_link($vhost_conf_enabled_dir.'/000-apps.vhost') && @is_file($vhost_conf_dir.'/apps.vhost')) { + @symlink($vhost_conf_dir.'/apps.vhost', $vhost_conf_enabled_dir.'/000-apps.vhost'); + } + + if(!is_file($conf['web']['website_basedir'].'/php-fcgi-scripts/apps/.php-fcgi-starter')) { + $content = rfsel($conf['ispconfig_install_dir'].'/server/conf-custom/install/apache_apps_fcgi_starter.master', 'tpl/apache_apps_fcgi_starter.master'); + $content = str_replace('{fastcgi_bin}', $conf['fastcgi']['fastcgi_bin'], $content); + $content = str_replace('{fastcgi_phpini_path}', $conf['fastcgi']['fastcgi_phpini_path'], $content); + mkdir($conf['web']['website_basedir'].'/php-fcgi-scripts/apps', 0755, true); + //copy('tpl/apache_apps_fcgi_starter.master',$conf['web']['website_basedir'].'/php-fcgi-scripts/apps/.php-fcgi-starter'); + wf($conf['web']['website_basedir'].'/php-fcgi-scripts/apps/.php-fcgi-starter', $content); + exec('chmod +x '.$conf['web']['website_basedir'].'/php-fcgi-scripts/apps/.php-fcgi-starter'); + exec('chown -R ispapps:ispapps '.$conf['web']['website_basedir'].'/php-fcgi-scripts/apps'); + + } + } + if($conf['nginx']['installed'] == true){ + $apps_vhost_user = escapeshellcmd($conf['web']['apps_vhost_user']); + $apps_vhost_group = escapeshellcmd($conf['web']['apps_vhost_group']); + $install_dir = escapeshellcmd($conf['web']['website_basedir'].'/apps'); + + $command = 'groupadd '.$apps_vhost_user; + if(!is_group($apps_vhost_group)) caselog($command.' &> /dev/null 2> /dev/null', __FILE__, __LINE__, "EXECUTED: $command", "Failed to execute the command $command"); + + $command = 'useradd -g '.$apps_vhost_group.' -d '.$install_dir.' '.$apps_vhost_group; + if(!is_user($apps_vhost_user)) caselog($command.' &> /dev/null 2> /dev/null', __FILE__, __LINE__, "EXECUTED: $command", "Failed to execute the command $command"); + + + //$command = 'adduser '.$conf['nginx']['user'].' '.$apps_vhost_group; + $command = 'usermod -a -G '.$apps_vhost_group.' '.$conf['nginx']['user']; + caselog($command.' &> /dev/null', __FILE__, __LINE__, "EXECUTED: $command", "Failed to execute the command $command"); + + if(!@is_dir($install_dir)){ + mkdir($install_dir, 0755, true); + } else { + chmod($install_dir, 0755); + } + chown($install_dir, $apps_vhost_user); + chgrp($install_dir, $apps_vhost_group); + + //* Copy the apps vhost file + $vhost_conf_dir = $conf['nginx']['vhost_conf_dir']; + $vhost_conf_enabled_dir = $conf['nginx']['vhost_conf_enabled_dir']; + $apps_vhost_servername = ($conf['web']['apps_vhost_servername'] == '')?'_':$conf['web']['apps_vhost_servername']; + + // Dont just copy over the virtualhost template but add some custom settings + $content = rfsel($conf['ispconfig_install_dir'].'/server/conf-custom/install/nginx_apps.vhost.master', 'tpl/nginx_apps.vhost.master'); + + if($conf['web']['apps_vhost_ip'] == '_default_'){ + $apps_vhost_ip = ''; + } else { + $apps_vhost_ip = $conf['web']['apps_vhost_ip'].':'; + } + + $socket_dir = escapeshellcmd($conf['nginx']['php_fpm_socket_dir']); + if(substr($socket_dir, -1) != '/') $socket_dir .= '/'; + if(!is_dir($socket_dir)) exec('mkdir -p '.$socket_dir); + $fpm_socket = $socket_dir.'apps.sock'; + $cgi_socket = escapeshellcmd($conf['nginx']['cgi_socket']); + + $content = str_replace('{apps_vhost_ip}', $apps_vhost_ip, $content); + $content = str_replace('{apps_vhost_port}', $conf['web']['apps_vhost_port'], $content); + $content = str_replace('{apps_vhost_dir}', $conf['web']['website_basedir'].'/apps', $content); + $content = str_replace('{apps_vhost_servername}', $apps_vhost_servername, $content); + //$content = str_replace('{fpm_port}', ($conf['nginx']['php_fpm_start_port']+1), $content); + $content = str_replace('{fpm_socket}', $fpm_socket, $content); + $content = str_replace('{cgi_socket}', $cgi_socket, $content); + + if( file_exists('/var/run/php5-fpm.sock') + || file_exists('/var/run/php/php7.0-fpm.sock') + || file_exists('/var/run/php/php7.1-fpm.sock') + || file_exists('/var/run/php/php7.2-fpm.sock') + || file_exists('/var/run/php/php7.3-fpm.sock') + ){ + $use_tcp = '#'; + $use_socket = ''; + } else { + $use_tcp = ''; + $use_socket = '#'; + } + $content = str_replace('{use_tcp}', $use_tcp, $content); + $content = str_replace('{use_socket}', $use_socket, $content); + + // SSL in apps vhost is off by default. Might change later. + $content = str_replace('{ssl_on}', '', $content); + $content = str_replace('{ssl_comment}', '#', $content); + + // Fix socket path on PHP 7 systems + if(file_exists('/var/run/php/php7.0-fpm.sock')) $content = str_replace('/var/run/php5-fpm.sock', '/var/run/php/php7.0-fpm.sock', $content); + if(file_exists('/var/run/php/php7.1-fpm.sock')) $content = str_replace('/var/run/php5-fpm.sock', '/var/run/php/php7.1-fpm.sock', $content); + if(file_exists('/var/run/php/php7.2-fpm.sock')) $content = str_replace('/var/run/php5-fpm.sock', '/var/run/php/php7.2-fpm.sock', $content); + + wf($vhost_conf_dir.'/apps.vhost', $content); + + // PHP-FPM + // Dont just copy over the php-fpm pool template but add some custom settings + $content = rfsel($conf['ispconfig_install_dir'].'/server/conf-custom/install/apps_php_fpm_pool.conf.master', 'tpl/apps_php_fpm_pool.conf.master'); + $content = str_replace('{fpm_pool}', 'apps', $content); + //$content = str_replace('{fpm_port}', ($conf['nginx']['php_fpm_start_port']+1), $content); + $content = str_replace('{fpm_socket}', $fpm_socket, $content); + $content = str_replace('{fpm_user}', $apps_vhost_user, $content); + $content = str_replace('{fpm_group}', $apps_vhost_group, $content); + wf($conf['nginx']['php_fpm_pool_dir'].'/apps.conf', $content); + + //copy('tpl/nginx_ispconfig.vhost.master', "$vhost_conf_dir/ispconfig.vhost"); + //* and create the symlink + if(@is_link($vhost_conf_enabled_dir.'/apps.vhost')) unlink($vhost_conf_enabled_dir.'/apps.vhost'); + if(!@is_link($vhost_conf_enabled_dir.'/000-apps.vhost')) { + symlink($vhost_conf_dir.'/apps.vhost', $vhost_conf_enabled_dir.'/000-apps.vhost'); + } + + } + } + + public function make_ispconfig_ssl_cert() { + global $conf,$autoinstall; + + $install_dir = $conf['ispconfig_install_dir']; + + $ssl_crt_file = $install_dir.'/interface/ssl/ispserver.crt'; + $ssl_csr_file = $install_dir.'/interface/ssl/ispserver.csr'; + $ssl_key_file = $install_dir.'/interface/ssl/ispserver.key'; + + if(!@is_dir($install_dir.'/interface/ssl')) mkdir($install_dir.'/interface/ssl', 0755, true); + + $ssl_pw = substr(md5(mt_rand()), 0, 6); + exec("openssl genrsa -des3 -passout pass:$ssl_pw -out $ssl_key_file 4096"); + if(AUTOINSTALL){ + exec("openssl req -new -passin pass:$ssl_pw -passout pass:$ssl_pw -subj '/C=".escapeshellcmd($autoinstall['ssl_cert_country'])."/ST=".escapeshellcmd($autoinstall['ssl_cert_state'])."/L=".escapeshellcmd($autoinstall['ssl_cert_locality'])."/O=".escapeshellcmd($autoinstall['ssl_cert_organisation'])."/OU=".escapeshellcmd($autoinstall['ssl_cert_organisation_unit'])."/CN=".escapeshellcmd($autoinstall['ssl_cert_common_name'])."' -key $ssl_key_file -out $ssl_csr_file"); + } else { + exec("openssl req -new -passin pass:$ssl_pw -passout pass:$ssl_pw -key $ssl_key_file -out $ssl_csr_file"); + } + exec("openssl req -x509 -passin pass:$ssl_pw -passout pass:$ssl_pw -key $ssl_key_file -in $ssl_csr_file -out $ssl_crt_file -days 3650"); + exec("openssl rsa -passin pass:$ssl_pw -in $ssl_key_file -out $ssl_key_file.insecure"); + rename($ssl_key_file, $ssl_key_file.'.secure'); + rename($ssl_key_file.'.insecure', $ssl_key_file); + + exec('chown -R root:root /usr/local/ispconfig/interface/ssl'); + + } + + public function install_ispconfig() { + global $conf; + + $install_dir = $conf['ispconfig_install_dir']; + + //* Create the ISPConfig installation directory + if(!@is_dir($install_dir)) { + $command = "mkdir $install_dir"; + caselog($command.' &> /dev/null', __FILE__, __LINE__, "EXECUTED: $command", "Failed to execute the command $command"); + } + + //* Create a ISPConfig user and group + $command = 'groupadd ispconfig'; + if(!is_group('ispconfig')) caselog($command.' &> /dev/null 2> /dev/null', __FILE__, __LINE__, "EXECUTED: $command", "Failed to execute the command $command"); + + $command = 'useradd -g ispconfig -d '.$install_dir.' ispconfig'; + if(!is_user('ispconfig')) caselog($command.' &> /dev/null 2> /dev/null', __FILE__, __LINE__, "EXECUTED: $command", "Failed to execute the command $command"); + + //* copy the ISPConfig interface part + $command = 'cp -rf ../interface '.$install_dir; + caselog($command.' &> /dev/null', __FILE__, __LINE__, "EXECUTED: $command", "Failed to execute the command $command"); + + //* copy the ISPConfig server part + $command = 'cp -rf ../server '.$install_dir; + caselog($command.' &> /dev/null', __FILE__, __LINE__, "EXECUTED: $command", "Failed to execute the command $command"); + + //* Make a backup of the security settings + if(is_file('/usr/local/ispconfig/security/security_settings.ini')) copy('/usr/local/ispconfig/security/security_settings.ini','/usr/local/ispconfig/security/security_settings.ini~'); + + //* copy the ISPConfig security part + $command = 'cp -rf ../security '.$install_dir; + caselog($command.' &> /dev/null', __FILE__, __LINE__, "EXECUTED: $command", "Failed to execute the command $command"); + + //* Apply changed security_settings.ini values to new security_settings.ini file + if(is_file('/usr/local/ispconfig/security/security_settings.ini~')) { + $security_settings_old = ini_to_array(file_get_contents('/usr/local/ispconfig/security/security_settings.ini~')); + $security_settings_new = ini_to_array(file_get_contents('/usr/local/ispconfig/security/security_settings.ini')); + if(is_array($security_settings_new) && is_array($security_settings_old)) { + foreach($security_settings_new as $section => $sval) { + if(is_array($sval)) { + foreach($sval as $key => $val) { + if(isset($security_settings_old[$section]) && isset($security_settings_old[$section][$key])) { + $security_settings_new[$section][$key] = $security_settings_old[$section][$key]; + } + } + } + } + file_put_contents('/usr/local/ispconfig/security/security_settings.ini',array_to_ini($security_settings_new)); + } + } + + //* Create a symlink, so ISPConfig is accessible via web + // Replaced by a separate vhost definition for port 8080 + // $command = "ln -s $install_dir/interface/web/ /var/www/ispconfig"; + // caselog($command.' &> /dev/null', __FILE__, __LINE__, "EXECUTED: $command", "Failed to execute the command $command"); + + //* Create the config file for ISPConfig interface + $configfile = 'config.inc.php'; + if(is_file($install_dir.'/interface/lib/'.$configfile)) { + copy($install_dir.'/interface/lib/'.$configfile, $install_dir.'/interface/lib/'.$configfile.'~'); + } + $content = rfsel($conf['ispconfig_install_dir'].'/server/conf-custom/install/'.$configfile.'.master', 'tpl/'.$configfile.'.master'); + $content = str_replace('{mysql_server_ispconfig_user}', $conf['mysql']['ispconfig_user'], $content); + $content = str_replace('{mysql_server_ispconfig_password}', $conf['mysql']['ispconfig_password'], $content); + $content = str_replace('{mysql_server_database}', $conf['mysql']['database'], $content); + $content = str_replace('{mysql_server_host}', $conf['mysql']['host'], $content); + $content = str_replace('{mysql_server_port}', $conf['mysql']['port'], $content); + + $content = str_replace('{mysql_master_server_ispconfig_user}', $conf['mysql']['master_ispconfig_user'], $content); + $content = str_replace('{mysql_master_server_ispconfig_password}', $conf['mysql']['master_ispconfig_password'], $content); + $content = str_replace('{mysql_master_server_database}', $conf['mysql']['master_database'], $content); + $content = str_replace('{mysql_master_server_host}', $conf['mysql']['master_host'], $content); + $content = str_replace('{mysql_master_server_port}', $conf['mysql']['master_port'], $content); + + $content = str_replace('{server_id}', $conf['server_id'], $content); + $content = str_replace('{ispconfig_log_priority}', $conf['ispconfig_log_priority'], $content); + $content = str_replace('{language}', $conf['language'], $content); + $content = str_replace('{timezone}', $conf['timezone'], $content); + $content = str_replace('{theme}', $conf['theme'], $content); + $content = str_replace('{language_file_import_enabled}', ($conf['language_file_import_enabled'] == true)?'true':'false', $content); + + wf($install_dir.'/interface/lib/'.$configfile, $content); + + //* Create the config file for ISPConfig server + $configfile = 'config.inc.php'; + if(is_file($install_dir.'/server/lib/'.$configfile)) { + copy($install_dir.'/server/lib/'.$configfile, $install_dir.'/interface/lib/'.$configfile.'~'); + } + $content = rfsel($conf['ispconfig_install_dir'].'/server/conf-custom/install/'.$configfile.'.master', 'tpl/'.$configfile.'.master'); + $content = str_replace('{mysql_server_ispconfig_user}', $conf['mysql']['ispconfig_user'], $content); + $content = str_replace('{mysql_server_ispconfig_password}', $conf['mysql']['ispconfig_password'], $content); + $content = str_replace('{mysql_server_database}', $conf['mysql']['database'], $content); + $content = str_replace('{mysql_server_host}', $conf['mysql']['host'], $content); + $content = str_replace('{mysql_server_port}', $conf['mysql']['port'], $content); + + $content = str_replace('{mysql_master_server_ispconfig_user}', $conf['mysql']['master_ispconfig_user'], $content); + $content = str_replace('{mysql_master_server_ispconfig_password}', $conf['mysql']['master_ispconfig_password'], $content); + $content = str_replace('{mysql_master_server_database}', $conf['mysql']['master_database'], $content); + $content = str_replace('{mysql_master_server_host}', $conf['mysql']['master_host'], $content); + $content = str_replace('{mysql_master_server_port}', $conf['mysql']['master_port'], $content); + + $content = str_replace('{server_id}', $conf['server_id'], $content); + $content = str_replace('{ispconfig_log_priority}', $conf['ispconfig_log_priority'], $content); + $content = str_replace('{language}', $conf['language'], $content); + $content = str_replace('{timezone}', $conf['timezone'], $content); + $content = str_replace('{theme}', $conf['theme'], $content); + $content = str_replace('{language_file_import_enabled}', ($conf['language_file_import_enabled'] == true)?'true':'false', $content); + + wf($install_dir.'/server/lib/'.$configfile, $content); + + //* Create the config file for remote-actions (but only, if it does not exist, because + // the value is a autoinc-value and so changed by the remoteaction_core_module + if (!file_exists($install_dir.'/server/lib/remote_action.inc.php')) { + $content = ''; + wf($install_dir.'/server/lib/remote_action.inc.php', $content); + } + + //* Enable the server modules and plugins. + // TODO: Implement a selector which modules and plugins shall be enabled. + $dir = $install_dir.'/server/mods-available/'; + if (is_dir($dir)) { + if ($dh = opendir($dir)) { + while (($file = readdir($dh)) !== false) { + if($file != '.' && $file != '..' && substr($file, -8, 8) == '.inc.php') { + include_once $install_dir.'/server/mods-available/'.$file; + $module_name = substr($file, 0, -8); + $tmp = new $module_name; + if($tmp->onInstall()) { + if(!@is_link($install_dir.'/server/mods-enabled/'.$file)) { + @symlink($install_dir.'/server/mods-available/'.$file, $install_dir.'/server/mods-enabled/'.$file); + // @symlink($install_dir.'/server/mods-available/'.$file, '../mods-enabled/'.$file); + } + if (strpos($file, '_core_module') !== false) { + if(!@is_link($install_dir.'/server/mods-core/'.$file)) { + @symlink($install_dir.'/server/mods-available/'.$file, $install_dir.'/server/mods-core/'.$file); + // @symlink($install_dir.'/server/mods-available/'.$file, '../mods-core/'.$file); + } + } + } + unset($tmp); + } + } + closedir($dh); + } + } + + $dir = $install_dir.'/server/plugins-available/'; + if (is_dir($dir)) { + if ($dh = opendir($dir)) { + while (($file = readdir($dh)) !== false) { + if($conf['apache']['installed'] == true && $file == 'nginx_plugin.inc.php') continue; + if($conf['nginx']['installed'] == true && $file == 'apache2_plugin.inc.php') continue; + if($file != '.' && $file != '..' && substr($file, -8, 8) == '.inc.php') { + include_once $install_dir.'/server/plugins-available/'.$file; + $plugin_name = substr($file, 0, -8); + $tmp = new $plugin_name; + if(method_exists($tmp, 'onInstall') && $tmp->onInstall()) { + if(!@is_link($install_dir.'/server/plugins-enabled/'.$file)) { + @symlink($install_dir.'/server/plugins-available/'.$file, $install_dir.'/server/plugins-enabled/'.$file); + //@symlink($install_dir.'/server/plugins-available/'.$file, '../plugins-enabled/'.$file); + } + if (strpos($file, '_core_plugin') !== false) { + if(!@is_link($install_dir.'/server/plugins-core/'.$file)) { + @symlink($install_dir.'/server/plugins-available/'.$file, $install_dir.'/server/plugins-core/'.$file); + //@symlink($install_dir.'/server/plugins-available/'.$file, '../plugins-core/'.$file); + } + } + } + unset($tmp); + } + } + closedir($dh); + } + } + + // Update the server config + $mail_server_enabled = ($conf['services']['mail'])?1:0; + $web_server_enabled = ($conf['services']['web'])?1:0; + $dns_server_enabled = ($conf['services']['dns'])?1:0; + $file_server_enabled = ($conf['services']['file'])?1:0; + $db_server_enabled = ($conf['services']['db'])?1:0; + $vserver_server_enabled = ($conf['openvz']['installed'])?1:0; + $proxy_server_enabled = ($conf['services']['proxy'])?1:0; + $firewall_server_enabled = ($conf['services']['firewall'])?1:0; + $xmpp_server_enabled = ($conf['services']['xmpp'])?1:0; + + $sql = "UPDATE `server` SET mail_server = '$mail_server_enabled', web_server = '$web_server_enabled', dns_server = '$dns_server_enabled', file_server = '$file_server_enabled', db_server = '$db_server_enabled', vserver_server = '$vserver_server_enabled', proxy_server = '$proxy_server_enabled', firewall_server = '$firewall_server_enabled', xmpp_server = '$xmpp_server_enabled' WHERE server_id = ?"; + + $this->db->query($sql, $conf['server_id']); + if($conf['mysql']['master_slave_setup'] == 'y') { + $this->dbmaster->query($sql, $conf['server_id']); + } + + + // chown install dir to root and chmod 755 + $command = 'chown root:root '.$install_dir; + caselog($command.' &> /dev/null', __FILE__, __LINE__, "EXECUTED: $command", "Failed to execute the command $command"); + $command = 'chmod 755 '.$install_dir; + caselog($command.' &> /dev/null', __FILE__, __LINE__, "EXECUTED: $command", "Failed to execute the command $command"); + + //* Chmod the files and directories in the install dir + $command = 'chmod -R 750 '.$install_dir.'/*'; + caselog($command.' &> /dev/null', __FILE__, __LINE__, "EXECUTED: $command", "Failed to execute the command $command"); + + //* chown the interface files to the ispconfig user and group + $command = 'chown -R ispconfig:ispconfig '.$install_dir.'/interface'; + caselog($command.' &> /dev/null', __FILE__, __LINE__, "EXECUTED: $command", "Failed to execute the command $command"); + + //* Chmod the files and directories in the acme dir + $command = 'chmod -R 755 '.$install_dir.'/interface/acme'; + caselog($command.' &> /dev/null', __FILE__, __LINE__, "EXECUTED: $command", "Failed to execute the command $command"); + + //* chown the server files to the root user and group + $command = 'chown -R root:root '.$install_dir.'/server'; + caselog($command.' &> /dev/null', __FILE__, __LINE__, "EXECUTED: $command", "Failed to execute the command $command"); + + //* chown the security files to the root user and group + $command = 'chown -R root:root '.$install_dir.'/security'; + caselog($command.' &> /dev/null', __FILE__, __LINE__, "EXECUTED: $command", "Failed to execute the command $command"); + + //* chown the security directory and security_settings.ini to root:ispconfig + $command = 'chown root:ispconfig '.$install_dir.'/security/security_settings.ini'; + caselog($command.' &> /dev/null', __FILE__, __LINE__, "EXECUTED: $command", "Failed to execute the command $command"); + $command = 'chown root:ispconfig '.$install_dir.'/security'; + caselog($command.' &> /dev/null', __FILE__, __LINE__, "EXECUTED: $command", "Failed to execute the command $command"); + $command = 'chown root:ispconfig '.$install_dir.'/security/ids.whitelist'; + caselog($command.' &> /dev/null', __FILE__, __LINE__, "EXECUTED: $command", "Failed to execute the command $command"); + $command = 'chown root:ispconfig '.$install_dir.'/security/ids.htmlfield'; + caselog($command.' &> /dev/null', __FILE__, __LINE__, "EXECUTED: $command", "Failed to execute the command $command"); + $command = 'chown root:ispconfig '.$install_dir.'/security/apache_directives.blacklist'; + caselog($command.' &> /dev/null', __FILE__, __LINE__, "EXECUTED: $command", "Failed to execute the command $command"); + $command = 'chown root:ispconfig '.$install_dir.'/security/nginx_directives.blacklist'; + caselog($command.' &> /dev/null', __FILE__, __LINE__, "EXECUTED: $command", "Failed to execute the command $command"); + + //* Make the global language file directory group writable + exec("chmod -R 770 $install_dir/interface/lib/lang"); + + //* Make the temp directory for language file exports writable + if(is_dir($install_dir.'/interface/web/temp')) exec("chmod -R 770 $install_dir/interface/web/temp"); + + //* Make all interface language file directories group writable + $handle = @opendir($install_dir.'/interface/web'); + while ($file = @readdir($handle)) { + if ($file != '.' && $file != '..') { + if(@is_dir($install_dir.'/interface/web'.'/'.$file.'/lib/lang')) { + $handle2 = opendir($install_dir.'/interface/web'.'/'.$file.'/lib/lang'); + chmod($install_dir.'/interface/web'.'/'.$file.'/lib/lang', 0770); + while ($lang_file = @readdir($handle2)) { + if ($lang_file != '.' && $lang_file != '..') { + chmod($install_dir.'/interface/web'.'/'.$file.'/lib/lang/'.$lang_file, 0770); + } + } + } + } + } + + //* Make the APS directories group writable + exec("chmod -R 770 $install_dir/interface/web/sites/aps_meta_packages"); + exec("chmod -R 770 $install_dir/server/aps_packages"); + + //* make sure that the server config file (not the interface one) is only readable by the root user + chmod($install_dir.'/server/lib/config.inc.php', 0600); + chown($install_dir.'/server/lib/config.inc.php', 'root'); + chgrp($install_dir.'/server/lib/config.inc.php', 'root'); + + //* Make sure thet the interface config file is readable by user ispconfig only + chmod($install_dir.'/interface/lib/config.inc.php', 0600); + chown($install_dir.'/interface/lib/config.inc.php', 'ispconfig'); + chgrp($install_dir.'/interface/lib/config.inc.php', 'ispconfig'); + + chmod($install_dir.'/server/lib/remote_action.inc.php', 0600); + chown($install_dir.'/server/lib/remote_action.inc.php', 'root'); + chgrp($install_dir.'/server/lib/remote_action.inc.php', 'root'); + + if(@is_file($install_dir.'/server/lib/mysql_clientdb.conf')) { + chmod($install_dir.'/server/lib/mysql_clientdb.conf', 0600); + chown($install_dir.'/server/lib/mysql_clientdb.conf', 'root'); + chgrp($install_dir.'/server/lib/mysql_clientdb.conf', 'root'); + } + + if(is_dir($install_dir.'/interface/invoices')) { + exec('chmod -R 770 '.escapeshellarg($install_dir.'/interface/invoices')); + exec('chown -R ispconfig:ispconfig '.escapeshellarg($install_dir.'/interface/invoices')); + } + + exec('chown -R root:root /usr/local/ispconfig/interface/ssl'); + + // TODO: FIXME: add the www-data user to the ispconfig group. This is just for testing + // and must be fixed as this will allow the apache user to read the ispconfig files. + // Later this must run as own apache server or via suexec! + if($conf['apache']['installed'] == true){ + $command = 'adduser '.$conf['apache']['user'].' ispconfig'; + caselog($command.' &> /dev/null', __FILE__, __LINE__, "EXECUTED: $command", "Failed to execute the command $command"); + if(is_group('ispapps')){ + $command = 'adduser '.$conf['apache']['user'].' ispapps'; + caselog($command.' &> /dev/null', __FILE__, __LINE__, "EXECUTED: $command", "Failed to execute the command $command"); + } + } + if($conf['nginx']['installed'] == true){ + $command = 'adduser '.$conf['nginx']['user'].' ispconfig'; + caselog($command.' &> /dev/null', __FILE__, __LINE__, "EXECUTED: $command", "Failed to execute the command $command"); + if(is_group('ispapps')){ + $command = 'adduser '.$conf['nginx']['user'].' ispapps'; + caselog($command.' &> /dev/null', __FILE__, __LINE__, "EXECUTED: $command", "Failed to execute the command $command"); + } + } + + //* Make the shell scripts executable + $command = "chmod +x $install_dir/server/scripts/*.sh"; + caselog($command.' &> /dev/null', __FILE__, __LINE__, "EXECUTED: $command", "Failed to execute the command $command"); + + if ($this->install_ispconfig_interface == true && isset($conf['interface_password']) && $conf['interface_password']!='admin') { + $sql = "UPDATE sys_user SET passwort = md5(?) WHERE username = 'admin';"; + $this->db->query($sql, $conf['interface_password']); + } + + if($conf['apache']['installed'] == true && $this->install_ispconfig_interface == true){ + //* Copy the ISPConfig vhost for the controlpanel + $vhost_conf_dir = $conf['apache']['vhost_conf_dir']; + $vhost_conf_enabled_dir = $conf['apache']['vhost_conf_enabled_dir']; + + // Dont just copy over the virtualhost template but add some custom settings + $tpl = new tpl('apache_ispconfig.vhost.master'); + $tpl->setVar('vhost_port',$conf['apache']['vhost_port']); + + // comment out the listen directive if port is 80 or 443 + if($conf['apache']['vhost_port'] == 80 or $conf['apache']['vhost_port'] == 443) { + $tpl->setVar('vhost_port_listen','#'); + } else { + $tpl->setVar('vhost_port_listen',''); + } + + if(is_file($install_dir.'/interface/ssl/ispserver.crt') && is_file($install_dir.'/interface/ssl/ispserver.key')) { + $tpl->setVar('ssl_comment',''); + } else { + $tpl->setVar('ssl_comment','#'); + } + if(is_file($install_dir.'/interface/ssl/ispserver.crt') && is_file($install_dir.'/interface/ssl/ispserver.key') && is_file($install_dir.'/interface/ssl/ispserver.bundle')) { + $tpl->setVar('ssl_bundle_comment',''); + } else { + $tpl->setVar('ssl_bundle_comment','#'); + } + + $tpl->setVar('apache_version',getapacheversion()); + + wf($vhost_conf_dir.'/ispconfig.vhost', $tpl->grab()); + + //* and create the symlink + if($this->is_update == false) { + if(@is_link($vhost_conf_enabled_dir.'/ispconfig.vhost')) unlink($vhost_conf_enabled_dir.'/ispconfig.vhost'); + if(!@is_link($vhost_conf_enabled_dir.'/000-ispconfig.vhost')) { + symlink($vhost_conf_dir.'/ispconfig.vhost', $vhost_conf_enabled_dir.'/000-ispconfig.vhost'); + } + } + //if(!is_file('/var/www/php-fcgi-scripts/ispconfig/.php-fcgi-starter')) { + $content = rfsel($conf['ispconfig_install_dir'].'/server/conf-custom/install/apache_ispconfig_fcgi_starter.master', 'tpl/apache_ispconfig_fcgi_starter.master'); + $content = str_replace('{fastcgi_bin}', $conf['fastcgi']['fastcgi_bin'], $content); + $content = str_replace('{fastcgi_phpini_path}', $conf['fastcgi']['fastcgi_phpini_path'], $content); + @mkdir('/var/www/php-fcgi-scripts/ispconfig', 0755, true); + wf('/var/www/php-fcgi-scripts/ispconfig/.php-fcgi-starter', $content); + exec('chmod +x /var/www/php-fcgi-scripts/ispconfig/.php-fcgi-starter'); + @symlink($install_dir.'/interface/web', '/var/www/ispconfig'); + exec('chown -R ispconfig:ispconfig /var/www/php-fcgi-scripts/ispconfig'); + //} + } + + if($conf['nginx']['installed'] == true && $this->install_ispconfig_interface == true){ + //* Copy the ISPConfig vhost for the controlpanel + $vhost_conf_dir = $conf['nginx']['vhost_conf_dir']; + $vhost_conf_enabled_dir = $conf['nginx']['vhost_conf_enabled_dir']; + + // Dont just copy over the virtualhost template but add some custom settings + $content = rfsel($conf['ispconfig_install_dir'].'/server/conf-custom/install/nginx_ispconfig.vhost.master', 'tpl/nginx_ispconfig.vhost.master'); + $content = str_replace('{vhost_port}', $conf['nginx']['vhost_port'], $content); + + if(is_file($install_dir.'/interface/ssl/ispserver.crt') && is_file($install_dir.'/interface/ssl/ispserver.key')) { + $content = str_replace('{ssl_on}', 'ssl', $content); + $content = str_replace('{ssl_comment}', '', $content); + $content = str_replace('{fastcgi_ssl}', 'on', $content); + } else { + $content = str_replace('{ssl_on}', '', $content); + $content = str_replace('{ssl_comment}', '#', $content); + $content = str_replace('{fastcgi_ssl}', 'off', $content); + } + + $socket_dir = escapeshellcmd($conf['nginx']['php_fpm_socket_dir']); + if(substr($socket_dir, -1) != '/') $socket_dir .= '/'; + if(!is_dir($socket_dir)) exec('mkdir -p '.$socket_dir); + $fpm_socket = $socket_dir.'ispconfig.sock'; + + //$content = str_replace('{fpm_port}', $conf['nginx']['php_fpm_start_port'], $content); + $content = str_replace('{fpm_socket}', $fpm_socket, $content); + + wf($vhost_conf_dir.'/ispconfig.vhost', $content); + + unset($content); + + // PHP-FPM + // Dont just copy over the php-fpm pool template but add some custom settings + $content = rfsel($conf['ispconfig_install_dir'].'/server/conf-custom/install/php_fpm_pool.conf.master', 'tpl/php_fpm_pool.conf.master'); + $content = str_replace('{fpm_pool}', 'ispconfig', $content); + //$content = str_replace('{fpm_port}', $conf['nginx']['php_fpm_start_port'], $content); + $content = str_replace('{fpm_socket}', $fpm_socket, $content); + $content = str_replace('{fpm_user}', 'ispconfig', $content); + $content = str_replace('{fpm_group}', 'ispconfig', $content); + wf($conf['nginx']['php_fpm_pool_dir'].'/ispconfig.conf', $content); + + //copy('tpl/nginx_ispconfig.vhost.master', $vhost_conf_dir.'/ispconfig.vhost'); + //* and create the symlink + if($this->is_update == false) { + if(@is_link($vhost_conf_enabled_dir.'/ispconfig.vhost')) unlink($vhost_conf_enabled_dir.'/ispconfig.vhost'); + if(!@is_link($vhost_conf_enabled_dir.'/000-ispconfig.vhost')) { + symlink($vhost_conf_dir.'/ispconfig.vhost', $vhost_conf_enabled_dir.'/000-ispconfig.vhost'); + } + } + } + + //* Install the update script + if(is_file('/usr/local/bin/ispconfig_update_from_dev.sh')) unlink('/usr/local/bin/ispconfig_update_from_dev.sh'); + chown($install_dir.'/server/scripts/update_from_dev.sh', 'root'); + chmod($install_dir.'/server/scripts/update_from_dev.sh', 0700); +// chown($install_dir.'/server/scripts/update_from_tgz.sh', 'root'); +// chmod($install_dir.'/server/scripts/update_from_tgz.sh', 0700); + chown($install_dir.'/server/scripts/ispconfig_update.sh', 'root'); + chmod($install_dir.'/server/scripts/ispconfig_update.sh', 0700); + if(!is_link('/usr/local/bin/ispconfig_update_from_dev.sh')) symlink($install_dir.'/server/scripts/ispconfig_update.sh', '/usr/local/bin/ispconfig_update_from_dev.sh'); + if(!is_link('/usr/local/bin/ispconfig_update.sh')) symlink($install_dir.'/server/scripts/ispconfig_update.sh', '/usr/local/bin/ispconfig_update.sh'); + + //* Make the logs readable for the ispconfig user + if(@is_file('/var/log/mail.log')) exec('chmod +r /var/log/mail.log'); + if(@is_file('/var/log/mail.warn')) exec('chmod +r /var/log/mail.warn'); + if(@is_file('/var/log/mail.err')) exec('chmod +r /var/log/mail.err'); + if(@is_file('/var/log/messages')) exec('chmod +r /var/log/messages'); + if(@is_file('/var/log/clamav/clamav.log')) exec('chmod +r /var/log/clamav/clamav.log'); + if(@is_file('/var/log/clamav/freshclam.log')) exec('chmod +r /var/log/clamav/freshclam.log'); + + //* Create the ispconfig log file and directory + if(!is_file($conf['ispconfig_log_dir'].'/ispconfig.log')) { + if(!is_dir($conf['ispconfig_log_dir'])) mkdir($conf['ispconfig_log_dir'], 0755); + touch($conf['ispconfig_log_dir'].'/ispconfig.log'); + } + + //* Create the ispconfig auth log file and set uid/gid + if(!is_file($conf['ispconfig_log_dir'].'/auth.log')) { + touch($conf['ispconfig_log_dir'].'/auth.log'); + } + exec('chown ispconfig:ispconfig '. $conf['ispconfig_log_dir'].'/auth.log'); + exec('chmod 660 '. $conf['ispconfig_log_dir'].'/auth.log'); + + if(is_user('getmail')) { + rename($install_dir.'/server/scripts/run-getmail.sh', '/usr/local/bin/run-getmail.sh'); + if(is_user('getmail')) chown('/usr/local/bin/run-getmail.sh', 'getmail'); + chmod('/usr/local/bin/run-getmail.sh', 0744); + } + + //* Add Log-Rotation + if (is_dir('/etc/logrotate.d')) { + @unlink('/etc/logrotate.d/logispc3'); // ignore, if the file is not there + /* We rotate these logs in cron_daily.php + $fh = fopen('/etc/logrotate.d/logispc3', 'w'); + fwrite($fh, + "$conf['ispconfig_log_dir']/ispconfig.log { \n" . + " weekly \n" . + " missingok \n" . + " rotate 4 \n" . + " compress \n" . + " delaycompress \n" . + "} \n" . + "$conf['ispconfig_log_dir']/cron.log { \n" . + " weekly \n" . + " missingok \n" . + " rotate 4 \n" . + " compress \n" . + " delaycompress \n" . + "}"); + fclose($fh); + */ + } + + //* Remove Domain module as its functions are available in the client module now + if(@is_dir('/usr/local/ispconfig/interface/web/domain')) exec('rm -rf /usr/local/ispconfig/interface/web/domain'); + + //* Disable rkhunter run and update in debian cronjob as ispconfig is running and updating rkhunter + if(is_file('/etc/default/rkhunter')) { + replaceLine('/etc/default/rkhunter', 'CRON_DAILY_RUN="yes"', 'CRON_DAILY_RUN="no"', 1, 0); + replaceLine('/etc/default/rkhunter', 'CRON_DB_UPDATE="yes"', 'CRON_DB_UPDATE="no"', 1, 0); + } + + // Add symlink for patch tool + if(!is_link('/usr/local/bin/ispconfig_patch')) exec('ln -s /usr/local/ispconfig/server/scripts/ispconfig_patch /usr/local/bin/ispconfig_patch'); + + // Change mode of a few files from amavisd + if(is_file($conf['amavis']['config_dir'].'/conf.d/50-user')) chmod($conf['amavis']['config_dir'].'/conf.d/50-user', 0640); + if(is_file($conf['amavis']['config_dir'].'/50-user~')) chmod($conf['amavis']['config_dir'].'/50-user~', 0400); + if(is_file($conf['amavis']['config_dir'].'/amavisd.conf')) chmod($conf['amavis']['config_dir'].'/amavisd.conf', 0640); + if(is_file($conf['amavis']['config_dir'].'/amavisd.conf~')) chmod($conf['amavis']['config_dir'].'/amavisd.conf~', 0400); + } + + public function configure_dbserver() { + global $conf; + + //* If this server shall act as database server for client DB's, we configure this here + $install_dir = $conf['ispconfig_install_dir']; + + // Create a file with the database login details which + // are used to create the client databases. + + if(!is_dir($install_dir.'/server/lib')) { + $command = "mkdir $install_dir/server/lib"; + caselog($command.' &> /dev/null', __FILE__, __LINE__, "EXECUTED: $command", "Failed to execute the command $command"); + } + + $content = rfsel($conf['ispconfig_install_dir'].'/server/conf-custom/install/mysql_clientdb.conf.master', 'tpl/mysql_clientdb.conf.master'); + $content = str_replace('{hostname}', $conf['mysql']['host'], $content); + $content = str_replace('{username}', $conf['mysql']['admin_user'], $content); + $content = str_replace('{password}', addslashes($conf['mysql']['admin_password']), $content); + wf($install_dir.'/server/lib/mysql_clientdb.conf', $content); + chmod($install_dir.'/server/lib/mysql_clientdb.conf', 0600); + chown($install_dir.'/server/lib/mysql_clientdb.conf', 'root'); + chgrp($install_dir.'/server/lib/mysql_clientdb.conf', 'root'); + + } + + public function install_crontab() { + global $conf; + + $install_dir = $conf['ispconfig_install_dir']; + + //* Root Crontab + exec('crontab -u root -l > crontab.txt'); + $existing_root_cron_jobs = file('crontab.txt'); + + // remove existing ispconfig cronjobs, in case the syntax has changed + foreach($existing_root_cron_jobs as $key => $val) { + if(stristr($val, $install_dir)) unset($existing_root_cron_jobs[$key]); + } + + $root_cron_jobs = array( + "* * * * * ".$install_dir."/server/server.sh 2>&1 | while read line; do echo `/bin/date` \"\$line\" >> ".$conf['ispconfig_log_dir']."/cron.log; done", + "* * * * * ".$install_dir."/server/cron.sh 2>&1 | while read line; do echo `/bin/date` \"\$line\" >> ".$conf['ispconfig_log_dir']."/cron.log; done" + ); + + if ($conf['nginx']['installed'] == true) { + $root_cron_jobs[] = "0 0 * * * ".$install_dir."/server/scripts/create_daily_nginx_access_logs.sh &> /dev/null"; + } + + foreach($root_cron_jobs as $cron_job) { + if(!in_array($cron_job."\n", $existing_root_cron_jobs)) { + $existing_root_cron_jobs[] = $cron_job."\n"; + } + } + file_put_contents('crontab.txt', $existing_root_cron_jobs); + exec('crontab -u root crontab.txt &> /dev/null'); + unlink('crontab.txt'); + + //* Getmail crontab + if(is_user('getmail')) { + $cf = $conf['getmail']; + exec('crontab -u getmail -l > crontab.txt'); + $existing_cron_jobs = file('crontab.txt'); + + $cron_jobs = array( + '*/5 * * * * /usr/local/bin/run-getmail.sh > /dev/null 2>> /dev/null' + ); + + // remove existing ispconfig cronjobs, in case the syntax has changed + foreach($existing_cron_jobs as $key => $val) { + if(stristr($val, 'getmail')) unset($existing_cron_jobs[$key]); + } + + foreach($cron_jobs as $cron_job) { + if(!in_array($cron_job."\n", $existing_cron_jobs)) { + $existing_cron_jobs[] = $cron_job."\n"; + } + } + file_put_contents('crontab.txt', $existing_cron_jobs); + exec('crontab -u getmail crontab.txt &> /dev/null'); + unlink('crontab.txt'); + } + + touch($conf['ispconfig_log_dir'].'/cron.log'); + chmod($conf['ispconfig_log_dir'].'/cron.log', 0660); + + } + + public function create_mount_script(){ + global $app, $conf; + $mount_script = '/usr/local/ispconfig/server/scripts/backup_dir_mount.sh'; + $mount_command = ''; + + if(is_file($mount_script)) return; + if(is_file('/etc/rc.local')){ + $rc_local = file('/etc/rc.local'); + if(is_array($rc_local) && !empty($rc_local)){ + foreach($rc_local as $line){ + $line = trim($line); + if(substr($line, 0, 1) == '#') continue; + if(strpos($line, 'sshfs') !== false && strpos($line, '/var/backup') !== false){ + $mount_command = "#!/bin/sh\n\n"; + $mount_command .= $line."\n\n"; + file_put_contents($mount_script, $mount_command); + chmod($mount_script, 0755); + chown($mount_script, 'root'); + chgrp($mount_script, 'root'); + break; + } + } + } + } + } + + // This function is called at the end of the update process and contains code to clean up parts of old ISPCONfig releases + public function cleanup_ispconfig() { + global $app,$conf; + + // Remove directories recursively + if(is_dir('/usr/local/ispconfig/interface/web/designer')) exec('rm -rf /usr/local/ispconfig/interface/web/designer'); + if(is_dir('/usr/local/ispconfig/interface/web/themes/default-304')) exec('rm -rf /usr/local/ispconfig/interface/web/themes/default-304'); + + // Remove files + if(is_file('/usr/local/ispconfig/interface/lib/classes/db_firebird.inc.php')) unlink('/usr/local/ispconfig/interface/lib/classes/db_firebird.inc.php'); + if(is_file('/usr/local/ispconfig/interface/lib/classes/form.inc.php')) unlink('/usr/local/ispconfig/interface/lib/classes/form.inc.php'); + + // Change mode of a few files from amavisd + if(is_file($conf['amavis']['config_dir'].'/conf.d/50-user')) chmod($conf['amavis']['config_dir'].'/conf.d/50-user', 0640); + if(is_file($conf['amavis']['config_dir'].'/50-user~')) chmod($conf['amavis']['config_dir'].'/50-user~', 0400); + if(is_file($conf['amavis']['config_dir'].'/amavisd.conf')) chmod($conf['amavis']['config_dir'].'/amavisd.conf', 0640); + if(is_file($conf['amavis']['config_dir'].'/amavisd.conf~')) chmod($conf['amavis']['config_dir'].'/amavisd.conf~', 0400); + + } + + public function getinitcommand($servicename, $action, $init_script_directory = ''){ + global $conf; + // upstart + if(is_executable('/sbin/initctl')){ + exec('/sbin/initctl version 2>/dev/null | /bin/grep -q upstart', $retval['output'], $retval['retval']); + if(intval($retval['retval']) == 0) return 'service '.$servicename.' '.$action; + } + // systemd + if(is_executable('/bin/systemd') || is_executable('/usr/bin/systemctl')){ + return 'systemctl '.$action.' '.$servicename.'.service'; + } + // sysvinit + if($init_script_directory == '') $init_script_directory = $conf['init_scripts']; + if(substr($init_script_directory, -1) === '/') $init_script_directory = substr($init_script_directory, 0, -1); + return $init_script_directory.'/'.$servicename.' '.$action; + } + + /** + * Helper function - get the path to a template file based on + * the local part of the filename. Checks first for the existence + * of a distribution specific file and if not found looks in the + * base template folder. Optionally the behaviour can be changed + * by setting the 2nd parameter which will fetch the contents + * of the template file and return it instead of the path. The 3rd + * parameter further extends this behaviour by filtering the contents + * by inserting the ispconfig database credentials using the {} placeholders. + * + * @param string $tLocal local part of filename + * @param bool $tRf + * @param bool $tDBCred + * @return string Relative path to the chosen template file + */ + protected function get_template_file($tLocal, $tRf=false, $tDBCred=false) { + global $conf, $dist; + + $final_path = ''; + $dist_template = $conf['ispconfig_install_dir'] . '/server/conf-custom/install/' . $tLocal . '.master'; + if (file_exists($dist_template)) { + $final_path = $dist_template; + } else { + $dist_template = 'dist/tpl/'.strtolower($dist['name'])."/$tLocal.master"; + if (file_exists($dist_template)) { + $final_path = $dist_template; + } else { + $final_path = "tpl/$tLocal.master"; + } + } + + if (!$tRf) { + return $final_path; + } else { + return (!$tDBCred) ? rf($final_path) : $this->insert_db_credentials(rf($final_path)); + } + } + + /** + * Helper function - writes the contents to a config file + * and performs a backup if the file exist. Additionally + * if the file exists the new file will be given the + * same rights and ownership as the original. Optionally the + * rights and/or ownership can be overriden by appending umask, + * user and group to the parameters. Providing only uid and gid + * values will result in only a chown. + * + * @param $tConf + * @param $tContents + * @return bool + */ + protected function write_config_file($tConf, $tContents) { + // Backup config file before writing new contents and stat file + if ( is_file($tConf) ) { + $stat = exec('stat -c \'%a %U %G\' '.escapeshellarg($tConf), $output, $res); + if ($res == 0) { // stat successfull + list($access, $user, $group) = explode(" ", $stat); + } + + if ( copy($tConf, $tConf.'~') ) { + chmod($tConf.'~', 0400); + } + } + + wf($tConf, $tContents); // write file + + if (func_num_args() >= 4) // override rights and/or ownership + { + $args = func_get_args(); + $output = array_slice($args, 2); + + switch (sizeof($output)) { + case 3: + $umask = array_shift($output); + if (is_numeric($umask) && preg_match('/^0?[0-7]{3}$/', $umask)) { + $access = $umask; + } + case 2: + if (is_user($output[0]) && is_group($output[1])) { + list($user, $group) = $output; + } + break; + } + } + + if (!empty($user) && !empty($group)) { + chown($tConf, $user); + chgrp($tConf, $group); + } + + if (!empty($access)) { + exec("chmod $access $tConf"); + } + } + + /** + * Helper function - filter the contents of a config + * file by inserting the common ispconfig database + * credentials. + * + * @param $tContents + * @return string + */ + protected function insert_db_credentials($tContents) { + global $conf; + + $tContents = str_replace('{mysql_server_ispconfig_user}', $conf["mysql"]["ispconfig_user"], $tContents); + $tContents = str_replace('{mysql_server_ispconfig_password}', $conf["mysql"]["ispconfig_password"], $tContents); + $tContents = str_replace('{mysql_server_database}', $conf["mysql"]["database"], $tContents); + $tContents = str_replace('{mysql_server_ip}', $conf["mysql"]["ip"], $tContents); + $tContents = str_replace('{mysql_server_host}', $conf['mysql']['host'], $tContents); + $tContents = str_replace('{mysql_server_port}', $conf['mysql']['port'], $tContents); + $tContents = str_replace('{mysql_server_port}', $conf["mysql"]["port"], $tContents); + + return $tContents; + } + +} + +?> diff --git a/install/sql/incremental/upd_dev_collection.sql b/install/sql/incremental/upd_dev_collection.sql index e69de29bb..83949a715 100644 --- a/install/sql/incremental/upd_dev_collection.sql +++ b/install/sql/incremental/upd_dev_collection.sql @@ -0,0 +1,32 @@ +-- rspamd +ALTER TABLE `spamfilter_policy` ADD `rspamd_greylisting` ENUM('n','y') CHARACTER SET utf8 COLLATE utf8_general_ci NOT NULL DEFAULT 'n' AFTER `policyd_greylist`; +ALTER TABLE `spamfilter_policy` ADD `rspamd_spam_greylisting_level` DECIMAL(5,2) NULL DEFAULT NULL AFTER `rspamd_greylisting`; +ALTER TABLE `spamfilter_policy` ADD `rspamd_spam_tag_level` DECIMAL(5,2) NULL DEFAULT NULL AFTER `rspamd_spam_greylisting_level`; +ALTER TABLE `spamfilter_policy` ADD `rspamd_spam_tag_method` ENUM('add_header','rewrite_subject') CHARACTER SET utf8 COLLATE utf8_general_ci NOT NULL DEFAULT 'rewrite_subject' AFTER `rspamd_spam_tag_level`; +ALTER TABLE `spamfilter_policy` ADD `rspamd_spam_kill_level` DECIMAL(5,2) NULL DEFAULT NULL AFTER `rspamd_spam_tag_method`; + +UPDATE `spamfilter_policy` SET `rspamd_greylisting` = 'y' WHERE id = 4; +UPDATE `spamfilter_policy` SET `rspamd_greylisting` = 'y' WHERE id = 5; +UPDATE `spamfilter_policy` SET `rspamd_greylisting` = 'y' WHERE id = 6; + +UPDATE `spamfilter_policy` SET `rspamd_spam_greylisting_level` = '4.00'; +UPDATE `spamfilter_policy` SET `rspamd_spam_greylisting_level` = '6.00' WHERE id = 1; +UPDATE `spamfilter_policy` SET `rspamd_spam_greylisting_level` = '999.00' WHERE id = 2; +UPDATE `spamfilter_policy` SET `rspamd_spam_greylisting_level` = '999.00' WHERE id = 3; +UPDATE `spamfilter_policy` SET `rspamd_spam_greylisting_level` = '2.00' WHERE id = 6; +UPDATE `spamfilter_policy` SET `rspamd_spam_greylisting_level` = '7.00' WHERE id = 7; + +UPDATE `spamfilter_policy` SET `rspamd_spam_tag_level` = '6.00'; +UPDATE `spamfilter_policy` SET `rspamd_spam_tag_level` = '8.00' WHERE id = 1; +UPDATE `spamfilter_policy` SET `rspamd_spam_tag_level` = '999.00' WHERE id = 2; +UPDATE `spamfilter_policy` SET `rspamd_spam_tag_level` = '999.00' WHERE id = 3; +UPDATE `spamfilter_policy` SET `rspamd_spam_tag_level` = '4.00' WHERE id = 6; +UPDATE `spamfilter_policy` SET `rspamd_spam_tag_level` = '10.00' WHERE id = 7; + +UPDATE `spamfilter_policy` SET `rspamd_spam_kill_level` = '10.00'; +UPDATE `spamfilter_policy` SET `rspamd_spam_kill_level` = '12.00' WHERE id = 1; +UPDATE `spamfilter_policy` SET `rspamd_spam_kill_level` = '999.00' WHERE id = 2; +UPDATE `spamfilter_policy` SET `rspamd_spam_kill_level` = '999.00' WHERE id = 3; +UPDATE `spamfilter_policy` SET `rspamd_spam_kill_level` = '8.00' WHERE id = 6; +UPDATE `spamfilter_policy` SET `rspamd_spam_kill_level` = '20.00' WHERE id = 7; +-- end of rspamd diff --git a/install/sql/incremental/upd_dev_collection.sql.orig b/install/sql/incremental/upd_dev_collection.sql.orig new file mode 100644 index 000000000..e69de29bb diff --git a/install/sql/incremental/upd_dev_collection.sql.rej b/install/sql/incremental/upd_dev_collection.sql.rej new file mode 100644 index 000000000..4c57d840a --- /dev/null +++ b/install/sql/incremental/upd_dev_collection.sql.rej @@ -0,0 +1,40 @@ +--- install/sql/incremental/upd_dev_collection.sql ++++ install/sql/incremental/upd_dev_collection.sql +@@ -80,4 +80,37 @@ INSERT IGNORE INTO `dns_ssl_ca` (`id`, `sys_userid`, `sys_groupid`, `sys_perm_us + + ALTER TABLE `dns_soa` CHANGE `xfer` `xfer` TEXT NULL; + ALTER TABLE `dns_soa` CHANGE `also_notify` `also_notify` TEXT NULL; +-ALTER TABLE `dns_slave` CHANGE `xfer` `xfer` TEXT NULL;+ALTER TABLE `dns_slave` CHANGE `xfer` `xfer` TEXT NULL; ++ ++-- rspamd ++ALTER TABLE `spamfilter_policy` ADD `rspamd_greylisting` ENUM('n','y') CHARACTER SET utf8 COLLATE utf8_general_ci NOT NULL DEFAULT 'n' AFTER `policyd_greylist`; ++ALTER TABLE `spamfilter_policy` ADD `rspamd_spam_greylisting_level` DECIMAL(5,2) NULL DEFAULT NULL AFTER `rspamd_greylisting`; ++ALTER TABLE `spamfilter_policy` ADD `rspamd_spam_tag_level` DECIMAL(5,2) NULL DEFAULT NULL AFTER `rspamd_spam_greylisting_level`; ++ALTER TABLE `spamfilter_policy` ADD `rspamd_spam_tag_method` ENUM('add_header','rewrite_subject') CHARACTER SET utf8 COLLATE utf8_general_ci NOT NULL DEFAULT 'rewrite_subject' AFTER `rspamd_spam_tag_level`; ++ALTER TABLE `spamfilter_policy` ADD `rspamd_spam_kill_level` DECIMAL(5,2) NULL DEFAULT NULL AFTER `rspamd_spam_tag_method`; ++ ++UPDATE `spamfilter_policy` SET `rspamd_greylisting` = 'y' WHERE id = 4; ++UPDATE `spamfilter_policy` SET `rspamd_greylisting` = 'y' WHERE id = 5; ++UPDATE `spamfilter_policy` SET `rspamd_greylisting` = 'y' WHERE id = 6; ++ ++UPDATE `spamfilter_policy` SET `rspamd_spam_greylisting_level` = '4.00'; ++UPDATE `spamfilter_policy` SET `rspamd_spam_greylisting_level` = '6.00' WHERE id = 1; ++UPDATE `spamfilter_policy` SET `rspamd_spam_greylisting_level` = '999.00' WHERE id = 2; ++UPDATE `spamfilter_policy` SET `rspamd_spam_greylisting_level` = '999.00' WHERE id = 3; ++UPDATE `spamfilter_policy` SET `rspamd_spam_greylisting_level` = '2.00' WHERE id = 6; ++UPDATE `spamfilter_policy` SET `rspamd_spam_greylisting_level` = '7.00' WHERE id = 7; ++ ++UPDATE `spamfilter_policy` SET `rspamd_spam_tag_level` = '6.00'; ++UPDATE `spamfilter_policy` SET `rspamd_spam_tag_level` = '8.00' WHERE id = 1; ++UPDATE `spamfilter_policy` SET `rspamd_spam_tag_level` = '999.00' WHERE id = 2; ++UPDATE `spamfilter_policy` SET `rspamd_spam_tag_level` = '999.00' WHERE id = 3; ++UPDATE `spamfilter_policy` SET `rspamd_spam_tag_level` = '4.00' WHERE id = 6; ++UPDATE `spamfilter_policy` SET `rspamd_spam_tag_level` = '10.00' WHERE id = 7; ++ ++UPDATE `spamfilter_policy` SET `rspamd_spam_kill_level` = '10.00'; ++UPDATE `spamfilter_policy` SET `rspamd_spam_kill_level` = '12.00' WHERE id = 1; ++UPDATE `spamfilter_policy` SET `rspamd_spam_kill_level` = '999.00' WHERE id = 2; ++UPDATE `spamfilter_policy` SET `rspamd_spam_kill_level` = '999.00' WHERE id = 3; ++UPDATE `spamfilter_policy` SET `rspamd_spam_kill_level` = '8.00' WHERE id = 6; ++UPDATE `spamfilter_policy` SET `rspamd_spam_kill_level` = '20.00' WHERE id = 7; ++-- end of rspamd diff --git a/install/sql/ispconfig3.sql b/install/sql/ispconfig3.sql index 2417ef0d2..5337c2b77 100644 --- a/install/sql/ispconfig3.sql +++ b/install/sql/ispconfig3.sql @@ -1589,6 +1589,11 @@ CREATE TABLE `spamfilter_policy` ( `policyd_quota_out` int(11) NOT NULL DEFAULT '-1', `policyd_quota_out_period` int(11) NOT NULL DEFAULT '24', `policyd_greylist` ENUM( 'Y', 'N' ) NOT NULL DEFAULT 'N', + `rspamd_greylisting` enum('n','y') NOT NULL DEFAULT 'n', + `rspamd_spam_greylisting_level` decimal(5,2) DEFAULT NULL, + `rspamd_spam_tag_level` decimal(5,2) DEFAULT NULL, + `rspamd_spam_tag_method` enum('add_header','rewrite_subject') NOT NULL DEFAULT 'rewrite_subject', + `rspamd_spam_kill_level` decimal(5,2) DEFAULT NULL, PRIMARY KEY (`id`) ) ENGINE=MyISAM DEFAULT CHARSET=utf8 AUTO_INCREMENT=1 ; @@ -2517,13 +2522,13 @@ INSERT INTO `software_repo` (`software_repo_id`, `sys_userid`, `sys_groupid`, `s -- Dumping data for table `spamfilter_policy` -- -INSERT INTO `spamfilter_policy` (`id`, `sys_userid`, `sys_groupid`, `sys_perm_user`, `sys_perm_group`, `sys_perm_other`, `policy_name`, `virus_lover`, `spam_lover`, `banned_files_lover`, `bad_header_lover`, `bypass_virus_checks`, `bypass_spam_checks`, `bypass_banned_checks`, `bypass_header_checks`, `spam_modifies_subj`, `virus_quarantine_to`, `spam_quarantine_to`, `banned_quarantine_to`, `bad_header_quarantine_to`, `clean_quarantine_to`, `other_quarantine_to`, `spam_tag_level`, `spam_tag2_level`, `spam_kill_level`, `spam_dsn_cutoff_level`, `spam_quarantine_cutoff_level`, `addr_extension_virus`, `addr_extension_spam`, `addr_extension_banned`, `addr_extension_bad_header`, `warnvirusrecip`, `warnbannedrecip`, `warnbadhrecip`, `newvirus_admin`, `virus_admin`, `banned_admin`, `bad_header_admin`, `spam_admin`, `spam_subject_tag`, `spam_subject_tag2`, `message_size_limit`, `banned_rulenames`) VALUES(1, 1, 0, 'riud', 'riud', 'r', 'Non-paying', 'N', 'N', 'N', 'N', 'Y', 'Y', 'Y', 'N', 'Y', '', '', '', '', '', '', 3, 7, 10, 0, 0, '', '', '', '', 'N', 'N', 'N', '', '', '', '', '', '', '', 0, ''); -INSERT INTO `spamfilter_policy` (`id`, `sys_userid`, `sys_groupid`, `sys_perm_user`, `sys_perm_group`, `sys_perm_other`, `policy_name`, `virus_lover`, `spam_lover`, `banned_files_lover`, `bad_header_lover`, `bypass_virus_checks`, `bypass_spam_checks`, `bypass_banned_checks`, `bypass_header_checks`, `spam_modifies_subj`, `virus_quarantine_to`, `spam_quarantine_to`, `banned_quarantine_to`, `bad_header_quarantine_to`, `clean_quarantine_to`, `other_quarantine_to`, `spam_tag_level`, `spam_tag2_level`, `spam_kill_level`, `spam_dsn_cutoff_level`, `spam_quarantine_cutoff_level`, `addr_extension_virus`, `addr_extension_spam`, `addr_extension_banned`, `addr_extension_bad_header`, `warnvirusrecip`, `warnbannedrecip`, `warnbadhrecip`, `newvirus_admin`, `virus_admin`, `banned_admin`, `bad_header_admin`, `spam_admin`, `spam_subject_tag`, `spam_subject_tag2`, `message_size_limit`, `banned_rulenames`) VALUES(2, 1, 0, 'riud', 'riud', 'r', 'Uncensored', 'Y', 'Y', 'Y', 'Y', 'N', 'N', 'N', 'N', 'N', NULL, NULL, NULL, NULL, NULL, NULL, 3, 999, 999, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL); -INSERT INTO `spamfilter_policy` (`id`, `sys_userid`, `sys_groupid`, `sys_perm_user`, `sys_perm_group`, `sys_perm_other`, `policy_name`, `virus_lover`, `spam_lover`, `banned_files_lover`, `bad_header_lover`, `bypass_virus_checks`, `bypass_spam_checks`, `bypass_banned_checks`, `bypass_header_checks`, `spam_modifies_subj`, `virus_quarantine_to`, `spam_quarantine_to`, `banned_quarantine_to`, `bad_header_quarantine_to`, `clean_quarantine_to`, `other_quarantine_to`, `spam_tag_level`, `spam_tag2_level`, `spam_kill_level`, `spam_dsn_cutoff_level`, `spam_quarantine_cutoff_level`, `addr_extension_virus`, `addr_extension_spam`, `addr_extension_banned`, `addr_extension_bad_header`, `warnvirusrecip`, `warnbannedrecip`, `warnbadhrecip`, `newvirus_admin`, `virus_admin`, `banned_admin`, `bad_header_admin`, `spam_admin`, `spam_subject_tag`, `spam_subject_tag2`, `message_size_limit`, `banned_rulenames`) VALUES(3, 1, 0, 'riud', 'riud', 'r', 'Wants all spam', 'N', 'Y', 'N', 'N', 'N', 'N', 'N', 'N', 'Y', NULL, NULL, NULL, NULL, NULL, NULL, 3, 999, 999, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL); -INSERT INTO `spamfilter_policy` (`id`, `sys_userid`, `sys_groupid`, `sys_perm_user`, `sys_perm_group`, `sys_perm_other`, `policy_name`, `virus_lover`, `spam_lover`, `banned_files_lover`, `bad_header_lover`, `bypass_virus_checks`, `bypass_spam_checks`, `bypass_banned_checks`, `bypass_header_checks`, `spam_modifies_subj`, `virus_quarantine_to`, `spam_quarantine_to`, `banned_quarantine_to`, `bad_header_quarantine_to`, `clean_quarantine_to`, `other_quarantine_to`, `spam_tag_level`, `spam_tag2_level`, `spam_kill_level`, `spam_dsn_cutoff_level`, `spam_quarantine_cutoff_level`, `addr_extension_virus`, `addr_extension_spam`, `addr_extension_banned`, `addr_extension_bad_header`, `warnvirusrecip`, `warnbannedrecip`, `warnbadhrecip`, `newvirus_admin`, `virus_admin`, `banned_admin`, `bad_header_admin`, `spam_admin`, `spam_subject_tag`, `spam_subject_tag2`, `message_size_limit`, `banned_rulenames`) VALUES(4, 1, 0, 'riud', 'riud', 'r', 'Wants viruses', 'Y', 'N', 'Y', 'Y', 'N', 'N', 'N', 'N', 'Y', NULL, NULL, NULL, NULL, NULL, NULL, 3, 6.9, 6.9, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL); -INSERT INTO `spamfilter_policy` (`id`, `sys_userid`, `sys_groupid`, `sys_perm_user`, `sys_perm_group`, `sys_perm_other`, `policy_name`, `virus_lover`, `spam_lover`, `banned_files_lover`, `bad_header_lover`, `bypass_virus_checks`, `bypass_spam_checks`, `bypass_banned_checks`, `bypass_header_checks`, `spam_modifies_subj`, `virus_quarantine_to`, `spam_quarantine_to`, `banned_quarantine_to`, `bad_header_quarantine_to`, `clean_quarantine_to`, `other_quarantine_to`, `spam_tag_level`, `spam_tag2_level`, `spam_kill_level`, `spam_dsn_cutoff_level`, `spam_quarantine_cutoff_level`, `addr_extension_virus`, `addr_extension_spam`, `addr_extension_banned`, `addr_extension_bad_header`, `warnvirusrecip`, `warnbannedrecip`, `warnbadhrecip`, `newvirus_admin`, `virus_admin`, `banned_admin`, `bad_header_admin`, `spam_admin`, `spam_subject_tag`, `spam_subject_tag2`, `message_size_limit`, `banned_rulenames`) VALUES(5, 1, 0, 'riud', 'riud', 'r', 'Normal', 'N', 'N', 'N', 'N', 'N', 'N', 'N', 'N', 'Y', '', '', '', '', '', '', 1, 4.5, 50, 0, 0, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, '', '***SPAM*** ', NULL, NULL); -INSERT INTO `spamfilter_policy` (`id`, `sys_userid`, `sys_groupid`, `sys_perm_user`, `sys_perm_group`, `sys_perm_other`, `policy_name`, `virus_lover`, `spam_lover`, `banned_files_lover`, `bad_header_lover`, `bypass_virus_checks`, `bypass_spam_checks`, `bypass_banned_checks`, `bypass_header_checks`, `spam_modifies_subj`, `virus_quarantine_to`, `spam_quarantine_to`, `banned_quarantine_to`, `bad_header_quarantine_to`, `clean_quarantine_to`, `other_quarantine_to`, `spam_tag_level`, `spam_tag2_level`, `spam_kill_level`, `spam_dsn_cutoff_level`, `spam_quarantine_cutoff_level`, `addr_extension_virus`, `addr_extension_spam`, `addr_extension_banned`, `addr_extension_bad_header`, `warnvirusrecip`, `warnbannedrecip`, `warnbadhrecip`, `newvirus_admin`, `virus_admin`, `banned_admin`, `bad_header_admin`, `spam_admin`, `spam_subject_tag`, `spam_subject_tag2`, `message_size_limit`, `banned_rulenames`) VALUES(6, 1, 0, 'riud', 'riud', 'r', 'Trigger happy', 'N', 'N', 'N', 'N', 'N', 'N', 'N', 'N', 'Y', NULL, NULL, NULL, NULL, NULL, NULL, 3, 5, 5, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL); -INSERT INTO `spamfilter_policy` (`id`, `sys_userid`, `sys_groupid`, `sys_perm_user`, `sys_perm_group`, `sys_perm_other`, `policy_name`, `virus_lover`, `spam_lover`, `banned_files_lover`, `bad_header_lover`, `bypass_virus_checks`, `bypass_spam_checks`, `bypass_banned_checks`, `bypass_header_checks`, `spam_modifies_subj`, `virus_quarantine_to`, `spam_quarantine_to`, `banned_quarantine_to`, `bad_header_quarantine_to`, `clean_quarantine_to`, `other_quarantine_to`, `spam_tag_level`, `spam_tag2_level`, `spam_kill_level`, `spam_dsn_cutoff_level`, `spam_quarantine_cutoff_level`, `addr_extension_virus`, `addr_extension_spam`, `addr_extension_banned`, `addr_extension_bad_header`, `warnvirusrecip`, `warnbannedrecip`, `warnbadhrecip`, `newvirus_admin`, `virus_admin`, `banned_admin`, `bad_header_admin`, `spam_admin`, `spam_subject_tag`, `spam_subject_tag2`, `message_size_limit`, `banned_rulenames`) VALUES(7, 1, 0, 'riud', 'riud', 'r', 'Permissive', 'N', 'N', 'N', 'Y', 'N', 'N', 'N', 'N', 'Y', NULL, NULL, NULL, NULL, NULL, NULL, 3, 10, 20, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL); +INSERT INTO `spamfilter_policy` (`id`, `sys_userid`, `sys_groupid`, `sys_perm_user`, `sys_perm_group`, `sys_perm_other`, `policy_name`, `virus_lover`, `spam_lover`, `banned_files_lover`, `bad_header_lover`, `bypass_virus_checks`, `bypass_spam_checks`, `bypass_banned_checks`, `bypass_header_checks`, `spam_modifies_subj`, `virus_quarantine_to`, `spam_quarantine_to`, `banned_quarantine_to`, `bad_header_quarantine_to`, `clean_quarantine_to`, `other_quarantine_to`, `spam_tag_level`, `spam_tag2_level`, `spam_kill_level`, `spam_dsn_cutoff_level`, `spam_quarantine_cutoff_level`, `addr_extension_virus`, `addr_extension_spam`, `addr_extension_banned`, `addr_extension_bad_header`, `warnvirusrecip`, `warnbannedrecip`, `warnbadhrecip`, `newvirus_admin`, `virus_admin`, `banned_admin`, `bad_header_admin`, `spam_admin`, `spam_subject_tag`, `spam_subject_tag2`, `message_size_limit`, `banned_rulenames`, `rspamd_greylisting`, `rspamd_spam_greylisting_level`, `rspamd_spam_tag_level`, `rspamd_spam_tag_method`, `rspamd_spam_kill_level`) VALUES(1, 1, 0, 'riud', 'riud', 'r', 'Non-paying', 'N', 'N', 'N', 'N', 'Y', 'Y', 'Y', 'N', 'Y', '', '', '', '', '', '', 3, 7, 10, 0, 0, '', '', '', '', 'N', 'N', 'N', '', '', '', '', '', '', '', 0, '', 'n', 6.00, 8.00, 'rewrite_subject', 12.00); +INSERT INTO `spamfilter_policy` (`id`, `sys_userid`, `sys_groupid`, `sys_perm_user`, `sys_perm_group`, `sys_perm_other`, `policy_name`, `virus_lover`, `spam_lover`, `banned_files_lover`, `bad_header_lover`, `bypass_virus_checks`, `bypass_spam_checks`, `bypass_banned_checks`, `bypass_header_checks`, `spam_modifies_subj`, `virus_quarantine_to`, `spam_quarantine_to`, `banned_quarantine_to`, `bad_header_quarantine_to`, `clean_quarantine_to`, `other_quarantine_to`, `spam_tag_level`, `spam_tag2_level`, `spam_kill_level`, `spam_dsn_cutoff_level`, `spam_quarantine_cutoff_level`, `addr_extension_virus`, `addr_extension_spam`, `addr_extension_banned`, `addr_extension_bad_header`, `warnvirusrecip`, `warnbannedrecip`, `warnbadhrecip`, `newvirus_admin`, `virus_admin`, `banned_admin`, `bad_header_admin`, `spam_admin`, `spam_subject_tag`, `spam_subject_tag2`, `message_size_limit`, `banned_rulenames`, `rspamd_greylisting`, `rspamd_spam_greylisting_level`, `rspamd_spam_tag_level`, `rspamd_spam_tag_method`, `rspamd_spam_kill_level`) VALUES(2, 1, 0, 'riud', 'riud', 'r', 'Uncensored', 'Y', 'Y', 'Y', 'Y', 'N', 'N', 'N', 'N', 'N', NULL, NULL, NULL, NULL, NULL, NULL, 3, 999, 999, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 'n', 999.00, 999.00, 'rewrite_subject', 999.00); +INSERT INTO `spamfilter_policy` (`id`, `sys_userid`, `sys_groupid`, `sys_perm_user`, `sys_perm_group`, `sys_perm_other`, `policy_name`, `virus_lover`, `spam_lover`, `banned_files_lover`, `bad_header_lover`, `bypass_virus_checks`, `bypass_spam_checks`, `bypass_banned_checks`, `bypass_header_checks`, `spam_modifies_subj`, `virus_quarantine_to`, `spam_quarantine_to`, `banned_quarantine_to`, `bad_header_quarantine_to`, `clean_quarantine_to`, `other_quarantine_to`, `spam_tag_level`, `spam_tag2_level`, `spam_kill_level`, `spam_dsn_cutoff_level`, `spam_quarantine_cutoff_level`, `addr_extension_virus`, `addr_extension_spam`, `addr_extension_banned`, `addr_extension_bad_header`, `warnvirusrecip`, `warnbannedrecip`, `warnbadhrecip`, `newvirus_admin`, `virus_admin`, `banned_admin`, `bad_header_admin`, `spam_admin`, `spam_subject_tag`, `spam_subject_tag2`, `message_size_limit`, `banned_rulenames`, `rspamd_greylisting`, `rspamd_spam_greylisting_level`, `rspamd_spam_tag_level`, `rspamd_spam_tag_method`, `rspamd_spam_kill_level`) VALUES(3, 1, 0, 'riud', 'riud', 'r', 'Wants all spam', 'N', 'Y', 'N', 'N', 'N', 'N', 'N', 'N', 'Y', NULL, NULL, NULL, NULL, NULL, NULL, 3, 999, 999, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 'n', 999.00, 999.00, 'rewrite_subject', 999.00); +INSERT INTO `spamfilter_policy` (`id`, `sys_userid`, `sys_groupid`, `sys_perm_user`, `sys_perm_group`, `sys_perm_other`, `policy_name`, `virus_lover`, `spam_lover`, `banned_files_lover`, `bad_header_lover`, `bypass_virus_checks`, `bypass_spam_checks`, `bypass_banned_checks`, `bypass_header_checks`, `spam_modifies_subj`, `virus_quarantine_to`, `spam_quarantine_to`, `banned_quarantine_to`, `bad_header_quarantine_to`, `clean_quarantine_to`, `other_quarantine_to`, `spam_tag_level`, `spam_tag2_level`, `spam_kill_level`, `spam_dsn_cutoff_level`, `spam_quarantine_cutoff_level`, `addr_extension_virus`, `addr_extension_spam`, `addr_extension_banned`, `addr_extension_bad_header`, `warnvirusrecip`, `warnbannedrecip`, `warnbadhrecip`, `newvirus_admin`, `virus_admin`, `banned_admin`, `bad_header_admin`, `spam_admin`, `spam_subject_tag`, `spam_subject_tag2`, `message_size_limit`, `banned_rulenames`, `rspamd_greylisting`, `rspamd_spam_greylisting_level`, `rspamd_spam_tag_level`, `rspamd_spam_tag_method`, `rspamd_spam_kill_level`) VALUES(4, 1, 0, 'riud', 'riud', 'r', 'Wants viruses', 'Y', 'N', 'Y', 'Y', 'N', 'N', 'N', 'N', 'Y', NULL, NULL, NULL, NULL, NULL, NULL, 3, 6.9, 6.9, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 'y', 4.00, 6.00, 'rewrite_subject', 10.00); +INSERT INTO `spamfilter_policy` (`id`, `sys_userid`, `sys_groupid`, `sys_perm_user`, `sys_perm_group`, `sys_perm_other`, `policy_name`, `virus_lover`, `spam_lover`, `banned_files_lover`, `bad_header_lover`, `bypass_virus_checks`, `bypass_spam_checks`, `bypass_banned_checks`, `bypass_header_checks`, `spam_modifies_subj`, `virus_quarantine_to`, `spam_quarantine_to`, `banned_quarantine_to`, `bad_header_quarantine_to`, `clean_quarantine_to`, `other_quarantine_to`, `spam_tag_level`, `spam_tag2_level`, `spam_kill_level`, `spam_dsn_cutoff_level`, `spam_quarantine_cutoff_level`, `addr_extension_virus`, `addr_extension_spam`, `addr_extension_banned`, `addr_extension_bad_header`, `warnvirusrecip`, `warnbannedrecip`, `warnbadhrecip`, `newvirus_admin`, `virus_admin`, `banned_admin`, `bad_header_admin`, `spam_admin`, `spam_subject_tag`, `spam_subject_tag2`, `message_size_limit`, `banned_rulenames`, `rspamd_greylisting`, `rspamd_spam_greylisting_level`, `rspamd_spam_tag_level`, `rspamd_spam_tag_method`, `rspamd_spam_kill_level`) VALUES(5, 1, 0, 'riud', 'riud', 'r', 'Normal', 'N', 'N', 'N', 'N', 'N', 'N', 'N', 'N', 'Y', '', '', '', '', '', '', 1, 4.5, 50, 0, 0, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, '', '***SPAM***', NULL, NULL, 'y', 4.00, 6.00, 'rewrite_subject', 10.00); +INSERT INTO `spamfilter_policy` (`id`, `sys_userid`, `sys_groupid`, `sys_perm_user`, `sys_perm_group`, `sys_perm_other`, `policy_name`, `virus_lover`, `spam_lover`, `banned_files_lover`, `bad_header_lover`, `bypass_virus_checks`, `bypass_spam_checks`, `bypass_banned_checks`, `bypass_header_checks`, `spam_modifies_subj`, `virus_quarantine_to`, `spam_quarantine_to`, `banned_quarantine_to`, `bad_header_quarantine_to`, `clean_quarantine_to`, `other_quarantine_to`, `spam_tag_level`, `spam_tag2_level`, `spam_kill_level`, `spam_dsn_cutoff_level`, `spam_quarantine_cutoff_level`, `addr_extension_virus`, `addr_extension_spam`, `addr_extension_banned`, `addr_extension_bad_header`, `warnvirusrecip`, `warnbannedrecip`, `warnbadhrecip`, `newvirus_admin`, `virus_admin`, `banned_admin`, `bad_header_admin`, `spam_admin`, `spam_subject_tag`, `spam_subject_tag2`, `message_size_limit`, `banned_rulenames`, `rspamd_greylisting`, `rspamd_spam_greylisting_level`, `rspamd_spam_tag_level`, `rspamd_spam_tag_method`, `rspamd_spam_kill_level`) VALUES(6, 1, 0, 'riud', 'riud', 'r', 'Trigger happy', 'N', 'N', 'N', 'N', 'N', 'N', 'N', 'N', 'Y', NULL, NULL, NULL, NULL, NULL, NULL, 3, 5, 5, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 'y', 2.00, 4.00, 'rewrite_subject', 8.00); +INSERT INTO `spamfilter_policy` (`id`, `sys_userid`, `sys_groupid`, `sys_perm_user`, `sys_perm_group`, `sys_perm_other`, `policy_name`, `virus_lover`, `spam_lover`, `banned_files_lover`, `bad_header_lover`, `bypass_virus_checks`, `bypass_spam_checks`, `bypass_banned_checks`, `bypass_header_checks`, `spam_modifies_subj`, `virus_quarantine_to`, `spam_quarantine_to`, `banned_quarantine_to`, `bad_header_quarantine_to`, `clean_quarantine_to`, `other_quarantine_to`, `spam_tag_level`, `spam_tag2_level`, `spam_kill_level`, `spam_dsn_cutoff_level`, `spam_quarantine_cutoff_level`, `addr_extension_virus`, `addr_extension_spam`, `addr_extension_banned`, `addr_extension_bad_header`, `warnvirusrecip`, `warnbannedrecip`, `warnbadhrecip`, `newvirus_admin`, `virus_admin`, `banned_admin`, `bad_header_admin`, `spam_admin`, `spam_subject_tag`, `spam_subject_tag2`, `message_size_limit`, `banned_rulenames`, `rspamd_greylisting`, `rspamd_spam_greylisting_level`, `rspamd_spam_tag_level`, `rspamd_spam_tag_method`, `rspamd_spam_kill_level`) VALUES(7, 1, 0, 'riud', 'riud', 'r', 'Permissive', 'N', 'N', 'N', 'Y', 'N', 'N', 'N', 'N', 'Y', NULL, NULL, NULL, NULL, NULL, NULL, 3, 10, 20, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 'n', 7.00, 10.00, 'rewrite_subject', 20.00); -- -------------------------------------------------------- diff --git a/install/sql/ispconfig3.sql.orig b/install/sql/ispconfig3.sql.orig new file mode 100644 index 000000000..2417ef0d2 --- /dev/null +++ b/install/sql/ispconfig3.sql.orig @@ -0,0 +1,2570 @@ +/* +Copyright (c) 2007-2012, Till Brehm, projektfarm Gmbh +All rights reserved. + +Redistribution and use in source and binary forms, with or without modification, +are permitted provided that the following conditions are met: + + * Redistributions of source code must retain the above copyright notice, + this list of conditions and the following disclaimer. + * Redistributions in binary form must reproduce the above copyright notice, + this list of conditions and the following disclaimer in the documentation + and/or other materials provided with the distribution. + * Neither the name of ISPConfig nor the names of its contributors + may be used to endorse or promote products derived from this software without + specific prior written permission. + +THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" AND +ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED +WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED. +IN NO EVENT SHALL THE COPYRIGHT OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, +INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, +BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, +DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY +OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING +NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, +EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. +*/ + +-- Includes +-- +-- iso_country_list.sql +-- +-- This will create and then populate a MySQL table with a list of the names and +-- ISO 3166 codes for countries in existence as of the date below. +-- +-- For updates to this file, see http://27.org/isocountrylist/ +-- For more about ISO 3166, see http://www.iso.ch/iso/en/prods-services/iso3166ma/02iso-3166-code-lists/list-en1.html +-- +-- Created by getisocountrylist.pl on Sun Nov 2 14:59:20 2003. +-- Wm. Rhodes +-- + +-- +-- ISPConfig 3 +-- DB-Version: 3.0.0.9 +-- + +SET FOREIGN_KEY_CHECKS = 0; + +-- -------------------------------------------------------- +-- -------------------------------------------------------- +-- DB-STRUCTURE +-- -------------------------------------------------------- +-- -------------------------------------------------------- + +-- +-- Table structure for table `aps_instances` +-- + +CREATE TABLE IF NOT EXISTS `aps_instances` ( + `id` int(4) NOT NULL AUTO_INCREMENT, + `sys_userid` int(11) unsigned NOT NULL DEFAULT '0', + `sys_groupid` int(11) unsigned NOT NULL DEFAULT '0', + `sys_perm_user` varchar(5) DEFAULT NULL, + `sys_perm_group` varchar(5) DEFAULT NULL, + `sys_perm_other` varchar(5) DEFAULT NULL, + `server_id` int(11) NOT NULL DEFAULT '0', + `customer_id` int(4) NOT NULL DEFAULT '0', + `package_id` int(4) NOT NULL DEFAULT '0', + `instance_status` int(4) NOT NULL DEFAULT '0', + PRIMARY KEY (`id`) +) ENGINE=MyISAM DEFAULT CHARSET=utf8 ; + +-- -------------------------------------------------------- + +-- +-- Table structure for table `aps_instances_settings` +-- + +CREATE TABLE IF NOT EXISTS `aps_instances_settings` ( + `id` int(4) NOT NULL AUTO_INCREMENT, + `server_id` int(11) NOT NULL DEFAULT '0', + `instance_id` int(4) NOT NULL DEFAULT '0', + `name` varchar(255) NOT NULL DEFAULT '', + `value` text, + PRIMARY KEY (`id`) +) ENGINE=MyISAM DEFAULT CHARSET=utf8 ; + +-- -------------------------------------------------------- + +-- +-- Table structure for table `aps_packages` +-- + +CREATE TABLE IF NOT EXISTS `aps_packages` ( + `id` int(4) NOT NULL AUTO_INCREMENT, + `path` varchar(255) NOT NULL DEFAULT '', + `name` varchar(255) NOT NULL DEFAULT '', + `category` varchar(255) NOT NULL DEFAULT '', + `version` varchar(20) NOT NULL DEFAULT '', + `release` int(4) NOT NULL DEFAULT '0', + `package_url` TEXT, + `package_status` int(1) NOT NULL DEFAULT '2', + PRIMARY KEY (`id`) +) ENGINE=MyISAM DEFAULT CHARSET=utf8 ; + +-- -------------------------------------------------------- + +-- +-- Tabellenstruktur für Tabelle `aps_settings` +-- + +CREATE TABLE IF NOT EXISTS `aps_settings` ( + `id` int(4) NOT NULL AUTO_INCREMENT, + `name` varchar(255) NOT NULL DEFAULT '', + `value` text, + PRIMARY KEY (`id`), + UNIQUE KEY `name` (`name`) +) ENGINE=MyISAM DEFAULT CHARSET=utf8 ; + +-- -------------------------------------------------------- + +-- +-- Table structure for table `attempts_login` +-- + +CREATE TABLE `attempts_login` ( + `ip` varchar(39) NOT NULL DEFAULT '', + `times` int(11) DEFAULT NULL, + `login_time` timestamp NOT NULL DEFAULT CURRENT_TIMESTAMP ON UPDATE CURRENT_TIMESTAMP +) ENGINE=MyISAM DEFAULT CHARSET=utf8 ; + +-- -------------------------------------------------------- + +-- +-- Table structure for table `client` +-- + +CREATE TABLE `client` ( + `client_id` int(11) unsigned NOT NULL AUTO_INCREMENT, + `sys_userid` int(11) unsigned NOT NULL DEFAULT '0', + `sys_groupid` int(11) unsigned NOT NULL DEFAULT '0', + `sys_perm_user` varchar(5) DEFAULT NULL, + `sys_perm_group` varchar(5) DEFAULT NULL, + `sys_perm_other` varchar(5) DEFAULT NULL, + `company_name` varchar(64) DEFAULT NULL, + `company_id` varchar(255) DEFAULT NULL, + `gender` enum('','m','f') NOT NULL DEFAULT '', + `contact_firstname` varchar( 64 ) NOT NULL DEFAULT '', + `contact_name` varchar(64) DEFAULT NULL, + `customer_no` varchar(64) DEFAULT NULL, + `vat_id` varchar(64) DEFAULT NULL, + `street` varchar(255) DEFAULT NULL, + `zip` varchar(32) DEFAULT NULL, + `city` varchar(64) DEFAULT NULL, + `state` varchar(32) DEFAULT NULL, + `country` char(2) DEFAULT NULL, + `telephone` varchar(32) DEFAULT NULL, + `mobile` varchar(32) DEFAULT NULL, + `fax` varchar(32) DEFAULT NULL, + `email` varchar(255) DEFAULT NULL, + `internet` varchar(255) NOT NULL DEFAULT '', + `icq` varchar(16) DEFAULT NULL, + `notes` text, + `bank_account_owner` varchar(255) DEFAULT NULL, + `bank_account_number` varchar(255) DEFAULT NULL, + `bank_code` varchar(255) DEFAULT NULL, + `bank_name` varchar(255) DEFAULT NULL, + `bank_account_iban` varchar(255) DEFAULT NULL, + `bank_account_swift` varchar(255) DEFAULT NULL, + `paypal_email` varchar(255) DEFAULT NULL, + `default_mailserver` int(11) unsigned NOT NULL DEFAULT '1', + `mail_servers` text, + `limit_maildomain` int(11) NOT NULL DEFAULT '-1', + `limit_mailbox` int(11) NOT NULL DEFAULT '-1', + `limit_mailalias` int(11) NOT NULL DEFAULT '-1', + `limit_mailaliasdomain` int(11) NOT NULL DEFAULT '-1', + `limit_mailforward` int(11) NOT NULL DEFAULT '-1', + `limit_mailcatchall` int(11) NOT NULL DEFAULT '-1', + `limit_mailrouting` int(11) NOT NULL DEFAULT '0', + `limit_mailfilter` int(11) NOT NULL DEFAULT '-1', + `limit_fetchmail` int(11) NOT NULL DEFAULT '-1', + `limit_mailquota` int(11) NOT NULL DEFAULT '-1', + `limit_spamfilter_wblist` int(11) NOT NULL DEFAULT '0', + `limit_spamfilter_user` int(11) NOT NULL DEFAULT '0', + `limit_spamfilter_policy` int(11) NOT NULL DEFAULT '0', + `default_xmppserver` int(11) unsigned NOT NULL DEFAULT '1', + `xmpp_servers` text, + `limit_xmpp_domain` int(11) NOT NULL DEFAULT '-1', + `limit_xmpp_user` int(11) NOT NULL DEFAULT '-1', + `limit_xmpp_muc` ENUM( 'n', 'y' ) NOT NULL default 'n', + `limit_xmpp_anon` ENUM( 'n', 'y' ) NOT NULL default 'n', + `limit_xmpp_auth_options` varchar(255) NOT NULL DEFAULT 'plain,hashed,isp', + `limit_xmpp_vjud` ENUM( 'n', 'y' ) NOT NULL default 'n', + `limit_xmpp_proxy` ENUM( 'n', 'y' ) NOT NULL default 'n', + `limit_xmpp_status` ENUM( 'n', 'y' ) NOT NULL default 'n', + `limit_xmpp_pastebin` ENUM( 'n', 'y' ) NOT NULL default 'n', + `limit_xmpp_httparchive` ENUM( 'n', 'y' ) NOT NULL default 'n', + `default_webserver` int(11) unsigned NOT NULL DEFAULT '1', + `web_servers` text, + `limit_web_ip` text, + `limit_web_domain` int(11) NOT NULL DEFAULT '-1', + `limit_web_quota` int(11) NOT NULL DEFAULT '-1', + `web_php_options` varchar(255) NOT NULL DEFAULT 'no,fast-cgi,cgi,mod,suphp,php-fpm,hhvm', + `limit_cgi` enum('n','y') NOT NULL DEFAULT 'n', + `limit_ssi` enum('n','y') NOT NULL DEFAULT 'n', + `limit_perl` enum('n','y') NOT NULL DEFAULT 'n', + `limit_ruby` enum('n','y') NOT NULL DEFAULT 'n', + `limit_python` enum('n','y') NOT NULL DEFAULT 'n', + `force_suexec` enum('n','y') NOT NULL DEFAULT 'y', + `limit_hterror` enum('n','y') NOT NULL DEFAULT 'n', + `limit_wildcard` enum('n','y') NOT NULL DEFAULT 'n', + `limit_ssl` enum('n','y') NOT NULL DEFAULT 'n', + `limit_ssl_letsencrypt` enum('n','y') NOT NULL DEFAULT 'n', + `limit_web_subdomain` int(11) NOT NULL DEFAULT '-1', + `limit_web_aliasdomain` int(11) NOT NULL DEFAULT '-1', + `limit_ftp_user` int(11) NOT NULL DEFAULT '-1', + `limit_shell_user` int(11) NOT NULL DEFAULT '0', + `ssh_chroot` varchar(255) NOT NULL DEFAULT 'no,jailkit,ssh-chroot', + `limit_webdav_user` int(11) NOT NULL DEFAULT '0', + `limit_backup` ENUM( 'n', 'y' ) NOT NULL DEFAULT 'y', + `limit_directive_snippets` ENUM( 'n', 'y' ) NOT NULL DEFAULT 'n', + `limit_aps` int(11) NOT NULL DEFAULT '-1', + `default_dnsserver` int(11) unsigned NOT NULL DEFAULT '1', + `db_servers` text, + `limit_dns_zone` int(11) NOT NULL DEFAULT '-1', + `default_slave_dnsserver` int(11) unsigned NOT NULL DEFAULT '1', + `limit_dns_slave_zone` int(11) NOT NULL DEFAULT '-1', + `limit_dns_record` int(11) NOT NULL DEFAULT '-1', + `default_dbserver` int(11) NOT NULL DEFAULT '1', + `dns_servers` text, + `limit_database` int(11) NOT NULL DEFAULT '-1', + `limit_database_user` int(11) NOT NULL DEFAULT '-1', + `limit_database_quota` int(11) NOT NULL default '-1', + `limit_cron` int(11) NOT NULL DEFAULT '0', + `limit_cron_type` enum('url','chrooted','full') NOT NULL DEFAULT 'url', + `limit_cron_frequency` int(11) NOT NULL DEFAULT '5', + `limit_traffic_quota` int(11) NOT NULL DEFAULT '-1', + `limit_client` int(11) NOT NULL DEFAULT '0', + `limit_domainmodule` int(11) NOT NULL DEFAULT '0', + `limit_mailmailinglist` int(11) NOT NULL DEFAULT '-1', + `limit_openvz_vm` int(11) NOT NULL DEFAULT '0', + `limit_openvz_vm_template_id` int(11) NOT NULL DEFAULT '0', + `parent_client_id` int(11) unsigned NOT NULL DEFAULT '0', + `username` varchar(64) DEFAULT NULL, + `password` varchar(64) DEFAULT NULL, + `language` char(2) NOT NULL DEFAULT 'en', + `usertheme` varchar(32) NOT NULL DEFAULT 'default', + `template_master` int(11) unsigned NOT NULL DEFAULT '0', + `template_additional` text, + `created_at` bigint(20) DEFAULT NULL, + `locked` enum('n','y') NOT NULL DEFAULT 'n', + `canceled` enum('n','y') NOT NULL DEFAULT 'n', + `can_use_api` enum('n','y') NOT NULL DEFAULT 'n', + `tmp_data` mediumblob, + `id_rsa` varchar(2000) NOT NULL DEFAULT '', + `ssh_rsa` varchar(600) NOT NULL DEFAULT '', + `customer_no_template` varchar(255) DEFAULT 'R[CLIENTID]C[CUSTOMER_NO]', + `customer_no_start` int(11) NOT NULL DEFAULT '1', + `customer_no_counter` int(11) NOT NULL DEFAULT '0', + `added_date` date NULL DEFAULT NULL, + `added_by` varchar(255) DEFAULT NULL, + `validation_status` enum('accept','review','reject') NOT NULL DEFAULT 'accept', + `risk_score` int(10) unsigned NOT NULL DEFAULT '0', + `activation_code` varchar(10) NOT NULL DEFAULT '', + PRIMARY KEY (`client_id`) +) ENGINE=MyISAM DEFAULT CHARSET=utf8 AUTO_INCREMENT=1 ; + +-- -------------------------------------------------------- + +-- +-- Table structure for table `client_circle` +-- + +CREATE TABLE `client_circle` ( + `circle_id` int(11) NOT NULL AUTO_INCREMENT, + `sys_userid` int(11) NOT NULL DEFAULT '0', + `sys_groupid` int(11) NOT NULL DEFAULT '0', + `sys_perm_user` varchar(5) DEFAULT NULL, + `sys_perm_group` varchar(5) DEFAULT NULL, + `sys_perm_other` varchar(5) DEFAULT NULL, + `circle_name` varchar(64) DEFAULT NULL, + `client_ids` text, + `description` text, + `active` enum('n','y') NOT NULL default 'y', + PRIMARY KEY (`circle_id`) +) ENGINE=MyISAM DEFAULT CHARSET=utf8 AUTO_INCREMENT=1 ; + +-- -------------------------------------------------------- + +-- +-- Table structure for table `client_template` +-- + +CREATE TABLE `client_template` ( + `template_id` int(11) unsigned NOT NULL auto_increment, + `sys_userid` int(11) unsigned NOT NULL default '0', + `sys_groupid` int(11) unsigned NOT NULL default '0', + `sys_perm_user` varchar(5) default NULL, + `sys_perm_group` varchar(5) default NULL, + `sys_perm_other` varchar(5) default NULL, + `template_name` varchar(64) NOT NULL DEFAULT '', + `template_type` varchar(1) NOT NULL default 'm', + `mail_servers` text, + `limit_maildomain` int(11) NOT NULL default '-1', + `limit_mailbox` int(11) NOT NULL default '-1', + `limit_mailalias` int(11) NOT NULL default '-1', + `limit_mailaliasdomain` int(11) NOT NULL default '-1', + `limit_mailforward` int(11) NOT NULL default '-1', + `limit_mailcatchall` int(11) NOT NULL default '-1', + `limit_mailrouting` int(11) NOT NULL default '0', + `limit_mailfilter` int(11) NOT NULL default '-1', + `limit_fetchmail` int(11) NOT NULL default '-1', + `limit_mailquota` int(11) NOT NULL default '-1', + `limit_spamfilter_wblist` int(11) NOT NULL default '0', + `limit_spamfilter_user` int(11) NOT NULL default '0', + `limit_spamfilter_policy` int(11) NOT NULL default '0', + `default_xmppserver` int(11) unsigned NOT NULL DEFAULT '1', + `xmpp_servers` text, + `limit_xmpp_domain` int(11) NOT NULL DEFAULT '-1', + `limit_xmpp_user` int(11) NOT NULL DEFAULT '-1', + `limit_xmpp_muc` ENUM( 'n', 'y' ) NOT NULL default 'n', + `limit_xmpp_anon` ENUM( 'n', 'y' ) NOT NULL default 'n', + `limit_xmpp_vjud` ENUM( 'n', 'y' ) NOT NULL default 'n', + `limit_xmpp_proxy` ENUM( 'n', 'y' ) NOT NULL default 'n', + `limit_xmpp_status` ENUM( 'n', 'y' ) NOT NULL default 'n', + `limit_xmpp_pastebin` ENUM( 'n', 'y' ) NOT NULL default 'n', + `limit_xmpp_httparchive` ENUM( 'n', 'y' ) NOT NULL default 'n', + `web_servers` text, + `limit_web_ip` text, + `limit_web_domain` int(11) NOT NULL default '-1', + `limit_web_quota` int(11) NOT NULL default '-1', + `web_php_options` varchar(255) NOT NULL DEFAULT 'no', + `limit_cgi` enum('n','y') NOT NULL DEFAULT 'n', + `limit_ssi` enum('n','y') NOT NULL DEFAULT 'n', + `limit_perl` enum('n','y') NOT NULL DEFAULT 'n', + `limit_ruby` enum('n','y') NOT NULL DEFAULT 'n', + `limit_python` enum('n','y') NOT NULL DEFAULT 'n', + `force_suexec` enum('n','y') NOT NULL DEFAULT 'y', + `limit_hterror` enum('n','y') NOT NULL DEFAULT 'n', + `limit_wildcard` enum('n','y') NOT NULL DEFAULT 'n', + `limit_ssl` enum('n','y') NOT NULL DEFAULT 'n', + `limit_ssl_letsencrypt` enum('n','y') NOT NULL DEFAULT 'n', + `limit_web_subdomain` int(11) NOT NULL default '-1', + `limit_web_aliasdomain` int(11) NOT NULL default '-1', + `limit_ftp_user` int(11) NOT NULL default '-1', + `limit_shell_user` int(11) NOT NULL default '0', + `ssh_chroot` varchar(255) NOT NULL DEFAULT 'no', + `limit_webdav_user` int(11) NOT NULL default '0', + `limit_backup` ENUM( 'n', 'y' ) NOT NULL DEFAULT 'y', + `limit_directive_snippets` ENUM( 'n', 'y' ) NOT NULL DEFAULT 'n', + `limit_aps` int(11) NOT NULL DEFAULT '-1', + `dns_servers` text, + `limit_dns_zone` int(11) NOT NULL default '-1', + `default_slave_dnsserver` int(11) NOT NULL DEFAULT '0', + `limit_dns_slave_zone` int(11) NOT NULL default '-1', + `limit_dns_record` int(11) NOT NULL default '-1', + `db_servers` text, + `limit_database` int(11) NOT NULL default '-1', + `limit_database_user` int(11) NOT NULL DEFAULT '-1', + `limit_database_quota` int(11) NOT NULL default '-1', + `limit_cron` int(11) NOT NULL default '0', + `limit_cron_type` enum('url','chrooted','full') NOT NULL default 'url', + `limit_cron_frequency` int(11) NOT NULL default '5', + `limit_traffic_quota` int(11) NOT NULL default '-1', + `limit_client` int(11) NOT NULL default '0', + `limit_domainmodule` int(11) NOT NULL DEFAULT '0', + `limit_mailmailinglist` int(11) NOT NULL default '-1', + `limit_openvz_vm` int(11) NOT NULL DEFAULT '0', + `limit_openvz_vm_template_id` int(11) NOT NULL DEFAULT '0', + PRIMARY KEY (`template_id`) +) ENGINE=MyISAM DEFAULT CHARSET=utf8 AUTO_INCREMENT=1 ; + +-- -------------------------------------------------------- + +-- +-- Table structure for table `client_template_assigned` +-- + +CREATE TABLE `client_template_assigned` ( + `assigned_template_id` bigint(20) NOT NULL auto_increment, + `client_id` bigint(11) NOT NULL DEFAULT '0', + `client_template_id` int(11) NOT NULL DEFAULT '0', + PRIMARY KEY (`assigned_template_id`), + KEY `client_id` (`client_id`) +) ENGINE=MyISAM DEFAULT CHARSET=utf8 AUTO_INCREMENT=1 ; +-- -------------------------------------------------------- + +-- +-- Table structure for table `invoice_message_template` +-- + +CREATE TABLE `client_message_template` ( + `client_message_template_id` bigint(20) NOT NULL AUTO_INCREMENT, + `sys_userid` int(11) NOT NULL DEFAULT '0', + `sys_groupid` int(11) NOT NULL DEFAULT '0', + `sys_perm_user` varchar(5) DEFAULT NULL, + `sys_perm_group` varchar(5) DEFAULT NULL, + `sys_perm_other` varchar(5) DEFAULT NULL, + `template_type` varchar(255) DEFAULT NULL, + `template_name` varchar(255) DEFAULT NULL, + `subject` varchar(255) DEFAULT NULL, + `message` text, + PRIMARY KEY (`client_message_template_id`) +) ENGINE=MyISAM DEFAULT CHARSET=utf8 AUTO_INCREMENT=1 ; + +-- +-- Dumping data for table `invoice_message_template` +-- + +-- -------------------------------------------------------- + +-- +-- Table structure for table `country` +-- + +CREATE TABLE `country` ( + `iso` char(2) NOT NULL DEFAULT '', + `name` varchar(64) NOT NULL DEFAULT '', + `printable_name` varchar(64) NOT NULL DEFAULT '', + `iso3` char(3) DEFAULT NULL, + `numcode` smallint(6) DEFAULT NULL, + `eu` enum('n','y') NOT NULL DEFAULT 'n', + PRIMARY KEY (`iso`) +) ENGINE=MyISAM DEFAULT CHARSET=utf8 ; + +-- -------------------------------------------------------- + +-- +-- Table structure for table `cron` +-- +CREATE TABLE `cron` ( + `id` int(11) unsigned NOT NULL auto_increment, + `sys_userid` int(11) unsigned NOT NULL default '0', + `sys_groupid` int(11) unsigned NOT NULL default '0', + `sys_perm_user` varchar(5) NULL default NULL, + `sys_perm_group` varchar(5) NULL default NULL, + `sys_perm_other` varchar(5) NULL default NULL, + `server_id` int(11) unsigned NOT NULL default '0', + `parent_domain_id` int(11) unsigned NOT NULL default '0', + `type` enum('url','chrooted','full') NOT NULL default 'url', + `command` TEXT, + `run_min` varchar(100) NULL, + `run_hour` varchar(100) NULL, + `run_mday` varchar(100) NULL, + `run_month` varchar(100) NULL, + `run_wday` varchar(100) NULL, + `log` enum('n','y') NOT NULL default 'n', + `active` enum('n','y') NOT NULL default 'y', + PRIMARY KEY (`id`) +) ENGINE=MyISAM DEFAULT CHARSET=utf8 AUTO_INCREMENT=1 ; + +-- -------------------------------------------------------- + +-- +-- Table structure for table `directive_snippets` +-- + +CREATE TABLE IF NOT EXISTS `directive_snippets` ( + `directive_snippets_id` int(11) unsigned NOT NULL AUTO_INCREMENT, + `sys_userid` int(11) unsigned NOT NULL DEFAULT '0', + `sys_groupid` int(11) unsigned NOT NULL DEFAULT '0', + `sys_perm_user` varchar(5) DEFAULT NULL, + `sys_perm_group` varchar(5) DEFAULT NULL, + `sys_perm_other` varchar(5) DEFAULT NULL, + `name` varchar(255) DEFAULT NULL, + `type` varchar(255) DEFAULT NULL, + `snippet` mediumtext, + `customer_viewable` ENUM('n','y') NOT NULL DEFAULT 'n', + `required_php_snippets` varchar(255) NOT NULL DEFAULT '', + `active` enum('n','y') NOT NULL DEFAULT 'y', + `master_directive_snippets_id` int(11) unsigned NOT NULL DEFAULT '0', + PRIMARY KEY (`directive_snippets_id`) +) ENGINE=MyISAM DEFAULT CHARSET=utf8 AUTO_INCREMENT=1 ; + +-- -------------------------------------------------------- + +-- +-- Table structure for table `dns_rr` +-- +CREATE TABLE `dns_rr` ( + `id` int(11) unsigned NOT NULL auto_increment, + `sys_userid` int(11) unsigned NOT NULL DEFAULT '0', + `sys_groupid` int(11) unsigned NOT NULL DEFAULT '0', + `sys_perm_user` varchar(5) NOT NULL DEFAULT '', + `sys_perm_group` varchar(5) NOT NULL DEFAULT '', + `sys_perm_other` varchar(5) NOT NULL DEFAULT '', + `server_id` int(11) NOT NULL default '1', + `zone` int(11) unsigned NOT NULL DEFAULT '0', + `name` varchar(255) NOT NULL DEFAULT '', + `type` enum('A','AAAA','ALIAS','CNAME','CAA','DS','HINFO','LOC','MX','NAPTR','NS','PTR','RP','SRV','TXT','TLSA','DNSKEY') default NULL, + `data` TEXT NOT NULL, + `aux` int(11) unsigned NOT NULL default '0', + `ttl` int(11) unsigned NOT NULL default '3600', + `active` enum('N','Y') NOT NULL default 'Y', + `stamp` timestamp NOT NULL default CURRENT_TIMESTAMP, + `serial` int(10) unsigned default NULL, + PRIMARY KEY (`id`), + KEY `rr` (`zone`,`type`,`name`) +) ENGINE=MyISAM DEFAULT CHARSET=utf8 AUTO_INCREMENT=1 ; + +-- -------------------------------------------------------- + +-- +-- Table structure for table `dns_slave` +-- + +CREATE TABLE `dns_slave` ( + `id` int(10) unsigned NOT NULL auto_increment, + `sys_userid` int(11) unsigned NOT NULL DEFAULT '0', + `sys_groupid` int(11) unsigned NOT NULL DEFAULT '0', + `sys_perm_user` varchar(5) NOT NULL DEFAULT '', + `sys_perm_group` varchar(5) NOT NULL DEFAULT '', + `sys_perm_other` varchar(5) NOT NULL DEFAULT '', + `server_id` int(11) NOT NULL default '1', + `origin` varchar(255) NOT NULL DEFAULT '', + `ns` varchar(255) NOT NULL DEFAULT '', + `active` enum('N','Y') NOT NULL DEFAULT 'N', + `xfer` TEXT NULL, + PRIMARY KEY (`id`), + UNIQUE KEY `slave` (`origin`,`server_id`), + KEY `active` (`active`) +) ENGINE=MyISAM DEFAULT CHARSET=utf8 AUTO_INCREMENT=1 ; + +-- -------------------------------------------------------- + +-- +-- Table structure for table `dns_ssl_ca` +-- + +CREATE TABLE IF NOT EXISTS `dns_ssl_ca` ( + `id` int(10) unsigned NOT NULL AUTO_INCREMENT, + `sys_userid` int(11) unsigned NOT NULL DEFAULT '0', + `sys_groupid` int(11) unsigned NOT NULL DEFAULT '0', + `sys_perm_user` varchar(5) NOT NULL DEFAULT '', + `sys_perm_group` varchar(5) NOT NULL DEFAULT '', + `sys_perm_other` varchar(5) NOT NULL DEFAULT '', + `active` enum('N','Y') NOT NULL DEFAULT 'N', + `ca_name` varchar(255) NOT NULL DEFAULT '', + `ca_issue` varchar(255) NOT NULL DEFAULT '', + `ca_wildcard` enum('Y','N') NOT NULL DEFAULT 'N', + `ca_iodef` text NOT NULL, + `ca_critical` tinyint(1) NOT NULL DEFAULT '0', + PRIMARY KEY (`id`), + UNIQUE KEY (`ca_issue`) +) ENGINE=MyISAM DEFAULT CHARSET=utf8 AUTO_INCREMENT=1 ; + +ALTER TABLE `dns_ssl_ca` ADD UNIQUE(`ca_issue`); + +INSERT INTO `dns_ssl_ca` (`id`, `sys_userid`, `sys_groupid`, `sys_perm_user`, `sys_perm_group`, `sys_perm_other`, `active`, `ca_name`, `ca_issue`, `ca_wildcard`, `ca_iodef`, `ca_critical`) VALUES +(NULL, 1, 1, 'riud', 'riud', '', 'Y', 'AC Camerfirma', 'camerfirma.com', 'Y', '', 0), +(NULL, 1, 1, 'riud', 'riud', '', 'Y', 'ACCV', 'accv.es', 'Y', '', 0), +(NULL, 1, 1, 'riud', 'riud', '', 'Y', 'Actalis', 'actalis.it', 'Y', '', 0), +(NULL, 1, 1, 'riud', 'riud', '', 'Y', 'Amazon', 'amazon.com', 'Y', '', 0), +(NULL, 1, 1, 'riud', 'riud', '', 'Y', 'Asseco', 'certum.pl', 'Y', '', 0), +(NULL, 1, 1, 'riud', 'riud', '', 'Y', 'Buypass', 'buypass.com', 'Y', '', 0), +(NULL, 1, 1, 'riud', 'riud', '', 'Y', 'CA Disig', 'disig.sk', 'Y', '', 0), +(NULL, 1, 1, 'riud', 'riud', '', 'Y', 'CATCert', 'aoc.cat', 'Y', '', 0), +(NULL, 1, 1, 'riud', 'riud', '', 'Y', 'Certinomis', 'www.certinomis.com', 'Y', '', 0), +(NULL, 1, 1, 'riud', 'riud', '', 'Y', 'Certizen', 'hongkongpost.gov.hk', 'Y', '', 0), +(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', 'Comodo', 'comodoca.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), +(NULL, 1, 1, 'riud', 'riud', '', 'Y', 'e-tugra', 'e-tugra.com', 'Y', '', 0), +(NULL, 1, 1, 'riud', 'riud', '', 'Y', 'EDICOM', 'edicomgroup.com', 'Y', '', 0), +(NULL, 1, 1, 'riud', 'riud', '', 'Y', 'Entrust', 'entrust.net', 'Y', '', 0), +(NULL, 1, 1, 'riud', 'riud', '', 'Y', 'Firmaprofesional', 'firmaprofesional.com', 'Y', '', 0), +(NULL, 1, 1, 'riud', 'riud', '', 'Y', 'FNMT', 'fnmt.es', 'Y', '', 0), +(NULL, 1, 1, 'riud', 'riud', '', 'Y', 'GlobalSign', 'globalsign.com', 'Y', '', 0), +(NULL, 1, 1, 'riud', 'riud', '', 'Y', 'GoDaddy', 'godaddy.com', 'Y', '', 0), +(NULL, 1, 1, 'riud', 'riud', '', 'Y', 'Google Trust Services', 'pki.goog', 'Y', '', 0), +(NULL, 1, 1, 'riud', 'riud', '', 'Y', 'GRCA', 'gca.nat.gov.tw', 'Y', '', 0), +(NULL, 1, 1, 'riud', 'riud', '', 'Y', 'HARICA', 'harica.gr', 'Y', '', 0), +(NULL, 1, 1, 'riud', 'riud', '', 'Y', 'IdenTrust', 'identrust.com', 'Y', '', 0), +(NULL, 1, 1, 'riud', 'riud', '', 'Y', 'Izenpe', 'izenpe.com', 'Y', '', 0), +(NULL, 1, 1, 'riud', 'riud', '', 'Y', 'Kamu SM', 'kamusm.gov.tr', 'Y', '', 0), +(NULL, 1, 1, 'riud', 'riud', '', 'Y', 'Let''s Encrypt', 'letsencrypt.org', 'Y', '', 0), +(NULL, 1, 1, 'riud', 'riud', '', 'Y', 'Microsec e-Szigno', 'e-szigno.hu', 'Y', '', 0), +(NULL, 1, 1, 'riud', 'riud', '', 'Y', 'NetLock', 'netlock.hu', 'Y', '', 0), +(NULL, 1, 1, 'riud', 'riud', '', 'Y', 'PKIoverheid', 'www.pkioverheid.nl', 'Y', '', 0), +(NULL, 1, 1, 'riud', 'riud', '', 'Y', 'PROCERT', 'procert.net.ve', 'Y', '', 0), +(NULL, 1, 1, 'riud', 'riud', '', 'Y', 'QuoVadis', 'quovadisglobal.com', 'Y', '', 0), +(NULL, 1, 1, 'riud', 'riud', '', 'Y', 'SECOM', 'secomtrust.net', 'Y', '', 0), +(NULL, 1, 1, 'riud', 'riud', '', 'Y', 'Sertifitseerimiskeskuse', 'sk.ee', 'Y', '', 0), +(NULL, 1, 1, 'riud', 'riud', '', 'Y', 'StartCom', 'startcomca.com', 'Y', '', 0), +(NULL, 1, 1, 'riud', 'riud', '', 'Y', 'SwissSign', 'swisssign.com', 'Y', '', 0), +(NULL, 1, 1, 'riud', 'riud', '', 'Y', 'Symantec / Thawte / GeoTrust', 'symantec.com', 'Y', '', 0), +(NULL, 1, 1, 'riud', 'riud', '', 'Y', 'T-Systems', 'telesec.de', 'Y', '', 0), +(NULL, 1, 1, 'riud', 'riud', '', 'Y', 'Telia', 'telia.com', 'Y', '', 0), +(NULL, 1, 1, 'riud', 'riud', '', 'Y', 'Trustwave', 'trustwave.com', 'Y', '', 0), +(NULL, 1, 1, 'riud', 'riud', '', 'Y', 'Web.com', 'web.com', 'Y', '', 0), +(NULL, 1, 1, 'riud', 'riud', '', 'Y', 'WISeKey', 'wisekey.com', 'Y', '', 0), +(NULL, 1, 1, 'riud', 'riud', '', 'Y', 'WoSign', 'wosign.com', 'Y', '', 0); + +-- -------------------------------------------------------- + +-- +-- Table structure for table `dns_soa` +-- + +CREATE TABLE `dns_soa` ( + `id` int(10) unsigned NOT NULL auto_increment, + `sys_userid` int(11) unsigned NOT NULL DEFAULT '0', + `sys_groupid` int(11) unsigned NOT NULL DEFAULT '0', + `sys_perm_user` varchar(5) NOT NULL DEFAULT '', + `sys_perm_group` varchar(5) NOT NULL DEFAULT '', + `sys_perm_other` varchar(5) NOT NULL DEFAULT '', + `server_id` int(11) NOT NULL default '1', + `origin` varchar(255) NOT NULL DEFAULT '', + `ns` varchar(255) NOT NULL DEFAULT '', + `mbox` varchar(255) NOT NULL DEFAULT '', + `serial` int(11) unsigned NOT NULL default '1', + `refresh` int(11) unsigned NOT NULL default '28800', + `retry` int(11) unsigned NOT NULL default '7200', + `expire` int(11) unsigned NOT NULL default '604800', + `minimum` int(11) unsigned NOT NULL default '3600', + `ttl` int(11) unsigned NOT NULL default '3600', + `active` enum('N','Y') NOT NULL DEFAULT 'N', + `xfer` TEXT NULL, + `also_notify` TEXT NULL, + `update_acl` varchar(255) default NULL, + `dnssec_initialized` ENUM('Y','N') NOT NULL DEFAULT 'N', + `dnssec_wanted` ENUM('Y','N') NOT NULL DEFAULT 'N', + `dnssec_last_signed` BIGINT NOT NULL DEFAULT '0', + `dnssec_info` TEXT NULL, + PRIMARY KEY (`id`), + UNIQUE KEY `origin` (`origin`), + KEY `active` (`active`) +) ENGINE=MyISAM DEFAULT CHARSET=utf8 AUTO_INCREMENT=1 ; + +-- -------------------------------------------------------- + +-- +-- Table structure for table `dns_template` +-- + +CREATE TABLE `dns_template` ( + `template_id` int(11) unsigned NOT NULL auto_increment, + `sys_userid` int(11) unsigned NOT NULL default '0', + `sys_groupid` int(11) unsigned NOT NULL default '0', + `sys_perm_user` varchar(5) default NULL, + `sys_perm_group` varchar(5) default NULL, + `sys_perm_other` varchar(5) default NULL, + `name` varchar(64) default NULL, + `fields` varchar(255) default NULL, + `template` text, + `visible` enum('N','Y') NOT NULL default 'Y', + PRIMARY KEY (`template_id`) +) ENGINE=MyISAM DEFAULT CHARSET=utf8 AUTO_INCREMENT=1 ; + +-- +-- Table structure for table `domain` +-- + +CREATE TABLE `domain` ( + `domain_id` int(11) unsigned NOT NULL auto_increment, + `sys_userid` int(11) unsigned NOT NULL default '0', + `sys_groupid` int(11) unsigned NOT NULL default '0', + `sys_perm_user` varchar(5) NOT NULL default '', + `sys_perm_group` varchar(5) NOT NULL default '', + `sys_perm_other` varchar(5) NOT NULL default '', + `domain` varchar(255) NOT NULL default '', + PRIMARY KEY (`domain_id`), + UNIQUE KEY `domain` (`domain`) +) ENGINE=MyISAM DEFAULT CHARSET=utf8 ; + +-- -------------------------------------------------------- + +-- +-- Table structure for table `firewall` +-- + +CREATE TABLE `firewall` ( + `firewall_id` int(11) unsigned NOT NULL auto_increment, + `sys_userid` int(11) unsigned NOT NULL default '0', + `sys_groupid` int(11) unsigned NOT NULL default '0', + `sys_perm_user` varchar(5) default NULL, + `sys_perm_group` varchar(5) default NULL, + `sys_perm_other` varchar(5) default NULL, + `server_id` int(11) unsigned NOT NULL default '0', + `tcp_port` text, + `udp_port` text, + `active` enum('n','y') NOT NULL default 'y', + PRIMARY KEY (`firewall_id`) +) ENGINE=MyISAM DEFAULT CHARSET=utf8 AUTO_INCREMENT=1 ; + +-- -------------------------------------------------------- + +-- +-- Table structure for table `ftp_user` +-- + +CREATE TABLE `ftp_user` ( + `ftp_user_id` int(11) unsigned NOT NULL auto_increment, + `sys_userid` int(11) unsigned NOT NULL default '0', + `sys_groupid` int(11) unsigned NOT NULL default '0', + `sys_perm_user` varchar(5) default NULL, + `sys_perm_group` varchar(5) default NULL, + `sys_perm_other` varchar(5) default NULL, + `server_id` int(11) unsigned NOT NULL default '0', + `parent_domain_id` int(11) unsigned NOT NULL default '0', + `username` varchar(64) default NULL, + `username_prefix` varchar(50) NOT NULL default '', + `password` varchar(64) default NULL, + `quota_size` bigint(20) NOT NULL default '-1', + `active` enum('n','y') NOT NULL default 'y', + `uid` varchar(64) default NULL, + `gid` varchar(64) default NULL, + `dir` varchar(255) default NULL, + `quota_files` bigint(20) NOT NULL default '-1', + `ul_ratio` int(11) NOT NULL default '-1', + `dl_ratio` int(11) NOT NULL default '-1', + `ul_bandwidth` int(11) NOT NULL default '-1', + `dl_bandwidth` int(11) NOT NULL default '-1', + `expires` datetime NULL DEFAULT NULL, + `user_type` set('user','system') NOT NULL DEFAULT 'user', + `user_config` text, + PRIMARY KEY (`ftp_user_id`), + KEY `active` (`active`), + KEY `server_id` (`server_id`), + KEY `username` (`username`), + KEY `quota_files` (`quota_files`) +) ENGINE=MyISAM DEFAULT CHARSET=utf8 AUTO_INCREMENT=1 ; + +-- -------------------------------------------------------- + +-- +-- Table structure for table `ftp_traffic` +-- + +CREATE TABLE `ftp_traffic` ( + `hostname` varchar(255) NOT NULL, + `traffic_date` date NOT NULL, + `in_bytes` bigint(32) unsigned NOT NULL, + `out_bytes` bigint(32) unsigned NOT NULL, + UNIQUE KEY (`hostname`,`traffic_date`) +) ENGINE=MyISAM DEFAULT CHARSET=utf8 AUTO_INCREMENT=1 ; + +-- -------------------------------------------------------- + +-- +-- Table structure for table `help_faq` +-- + +CREATE TABLE `help_faq` ( + `hf_id` int(11) NOT NULL AUTO_INCREMENT, + `hf_section` int(11) DEFAULT NULL, + `hf_order` int(11) DEFAULT '0', + `hf_question` text, + `hf_answer` text, + `sys_userid` int(11) DEFAULT NULL, + `sys_groupid` int(11) DEFAULT NULL, + `sys_perm_user` varchar(5) DEFAULT NULL, + `sys_perm_group` varchar(5) DEFAULT NULL, + `sys_perm_other` varchar(5) DEFAULT NULL, + PRIMARY KEY (`hf_id`) +) ENGINE=MyISAM DEFAULT CHARSET=utf8 AUTO_INCREMENT=1 ; + +-- -------------------------------------------------------- + +-- +-- Table structure for table `help_faq_sections` +-- + +CREATE TABLE `help_faq_sections` ( + `hfs_id` int(11) NOT NULL AUTO_INCREMENT, + `hfs_name` varchar(255) DEFAULT NULL, + `hfs_order` int(11) DEFAULT '0', + `sys_userid` int(11) DEFAULT NULL, + `sys_groupid` int(11) DEFAULT NULL, + `sys_perm_user` varchar(5) DEFAULT NULL, + `sys_perm_group` varchar(5) DEFAULT NULL, + `sys_perm_other` varchar(5) DEFAULT NULL, + PRIMARY KEY (`hfs_id`) +) ENGINE=MyISAM DEFAULT CHARSET=utf8 AUTO_INCREMENT=1 ; + +-- -------------------------------------------------------- + +-- Table structure for table `iptables` +-- + +DROP TABLE IF EXISTS `iptables`; +CREATE TABLE `iptables` ( + `iptables_id` int(10) unsigned NOT NULL AUTO_INCREMENT, + `server_id` int(10) unsigned NOT NULL DEFAULT '0', + `table` varchar(10) DEFAULT NULL COMMENT 'INPUT OUTPUT FORWARD', + `source_ip` varchar(16) DEFAULT NULL, + `destination_ip` varchar(16) DEFAULT NULL, + `protocol` varchar(10) DEFAULT 'TCP' COMMENT 'TCP UDP GRE', + `singleport` varchar(10) DEFAULT NULL, + `multiport` varchar(40) DEFAULT NULL, + `state` varchar(20) DEFAULT NULL COMMENT 'NEW ESTABLISHED RECNET etc', + `target` varchar(10) DEFAULT NULL COMMENT 'ACCEPT DROP REJECT LOG', + `active` enum('n','y') NOT NULL DEFAULT 'y', + PRIMARY KEY (`iptables_id`) +) ENGINE=MyISAM AUTO_INCREMENT=5 DEFAULT CHARSET=utf8; + +-- -------------------------------------------------------- + +-- +-- Table structure for table `mail_access` +-- + +CREATE TABLE `mail_access` ( + `access_id` int(11) unsigned NOT NULL auto_increment, + `sys_userid` int(11) unsigned NOT NULL default '0', + `sys_groupid` int(11) unsigned NOT NULL default '0', + `sys_perm_user` varchar(5) NOT NULL default '', + `sys_perm_group` varchar(5) NOT NULL default '', + `sys_perm_other` varchar(5) NOT NULL default '', + `server_id` int(11) NOT NULL default '0', + `source` varchar(255) NOT NULL DEFAULT '', + `access` varchar(255) NOT NULL DEFAULT '', + `type` set('recipient','sender','client') NOT NULL DEFAULT 'recipient', + `active` enum('n','y') NOT NULL default 'y', + PRIMARY KEY (`access_id`), + KEY `server_id` (`server_id`,`source`) +) ENGINE=MyISAM DEFAULT CHARSET=utf8 AUTO_INCREMENT=1 ; + +-- -------------------------------------------------------- + +-- +-- Table structure for table `mail_backup` +-- + +CREATE TABLE `mail_backup` ( + `backup_id` int(10) unsigned NOT NULL AUTO_INCREMENT, + `server_id` int(10) unsigned NOT NULL DEFAULT '0', + `parent_domain_id` int(10) unsigned NOT NULL DEFAULT '0', + `mailuser_id` int(10) unsigned NOT NULL DEFAULT '0', + `backup_mode` varchar(64) NOT NULL DEFAULT '', + `tstamp` int(10) unsigned NOT NULL DEFAULT '0', + `filename` varchar(255) NOT NULL DEFAULT '', + `filesize` VARCHAR(20) NOT NULL DEFAULT '', + PRIMARY KEY (`backup_id`) +) ENGINE=MyISAM DEFAULT CHARSET=utf8 AUTO_INCREMENT=1 ; + +-- -------------------------------------------------------- + +-- +-- Table structure for table `mail_content_filter` +-- + +CREATE TABLE `mail_content_filter` ( + `content_filter_id` int(11) unsigned NOT NULL auto_increment, + `sys_userid` int(11) unsigned NOT NULL default '0', + `sys_groupid` int(11) unsigned NOT NULL default '0', + `sys_perm_user` varchar(5) default NULL, + `sys_perm_group` varchar(5) default NULL, + `sys_perm_other` varchar(5) default NULL, + `server_id` int(11) NOT NULL default '0', + `type` varchar(255) default NULL, + `pattern` varchar(255) default NULL, + `data` varchar(255) default NULL, + `action` varchar(255) default NULL, + `active` varchar(255) NOT NULL default 'y', + PRIMARY KEY (`content_filter_id`) +) ENGINE=MyISAM DEFAULT CHARSET=utf8 AUTO_INCREMENT=1 ; + +-- -------------------------------------------------------- + +-- +-- Table structure for table `mail_domain` +-- + +CREATE TABLE `mail_domain` ( + `domain_id` int(11) unsigned NOT NULL auto_increment, + `sys_userid` int(11) unsigned NOT NULL default '0', + `sys_groupid` int(11) unsigned NOT NULL default '0', + `sys_perm_user` varchar(5) NOT NULL default '', + `sys_perm_group` varchar(5) NOT NULL default '', + `sys_perm_other` varchar(5) NOT NULL default '', + `server_id` int(11) unsigned NOT NULL default '0', + `domain` varchar(255) NOT NULL default '', + `dkim` ENUM( 'n', 'y' ) NOT NULL default 'n', + `dkim_selector` varchar(63) NOT NULL DEFAULT 'default', + `dkim_private` mediumtext NULL, + `dkim_public` mediumtext NULL, + `active` enum('n','y') NOT NULL DEFAULT 'n', + PRIMARY KEY (`domain_id`), + KEY `server_id` (`server_id`,`domain`), + KEY `domain_active` (`domain`,`active`) +) ENGINE=MyISAM DEFAULT CHARSET=utf8 AUTO_INCREMENT=1 ; + +-- -------------------------------------------------------- + +-- +-- Table structure for table `mail_forwarding` +-- + +CREATE TABLE `mail_forwarding` ( + `forwarding_id` int(11) unsigned NOT NULL auto_increment, + `sys_userid` int(11) unsigned NOT NULL default '0', + `sys_groupid` int(11) unsigned NOT NULL default '0', + `sys_perm_user` varchar(5) NOT NULL default '', + `sys_perm_group` varchar(5) NOT NULL default '', + `sys_perm_other` varchar(5) NOT NULL default '', + `server_id` int(11) unsigned NOT NULL default '0', + `source` varchar(255) NOT NULL DEFAULT '', + `destination` text, + `type` enum('alias','aliasdomain','forward','catchall') NOT NULL default 'alias', + `active` enum('n','y') NOT NULL DEFAULT 'n', + `allow_send_as` ENUM('n','y') NOT NULL DEFAULT 'n', + `greylisting` enum('n','y' ) NOT NULL DEFAULT 'n', + PRIMARY KEY (`forwarding_id`), + KEY `server_id` (`server_id`,`source`), + KEY `type` (`type`) +) ENGINE=MyISAM DEFAULT CHARSET=utf8 AUTO_INCREMENT=1 ; + +-- -------------------------------------------------------- + +-- +-- Table structure for table `mail_get` +-- + +CREATE TABLE `mail_get` ( + `mailget_id` int(11) unsigned NOT NULL auto_increment, + `sys_userid` int(11) unsigned NOT NULL default '0', + `sys_groupid` int(11) unsigned NOT NULL default '0', + `sys_perm_user` varchar(5) default NULL, + `sys_perm_group` varchar(5) default NULL, + `sys_perm_other` varchar(5) default NULL, + `server_id` int(11) unsigned NOT NULL default '0', + `type` varchar(255) default NULL, + `source_server` varchar(255) default NULL, + `source_username` varchar(255) default NULL, + `source_password` varchar(64) default NULL, + `source_delete` varchar(255) NOT NULL default 'y', + `source_read_all` varchar(255) NOT NULL default 'y', + `destination` varchar(255) default NULL, + `active` varchar(255) NOT NULL default 'y', + PRIMARY KEY (`mailget_id`) +) ENGINE=MyISAM DEFAULT CHARSET=utf8 AUTO_INCREMENT=1 ; + +-- -------------------------------------------------------- + +-- +-- Tabellenstruktur für Tabelle `mail_mailinglist` +-- + +CREATE TABLE `mail_mailinglist` ( + `mailinglist_id` int(11) unsigned NOT NULL auto_increment, + `sys_userid` int(11) unsigned NOT NULL default '0', + `sys_groupid` int(11) unsigned NOT NULL default '0', + `sys_perm_user` varchar(5) NOT NULL DEFAULT '', + `sys_perm_group` varchar(5) NOT NULL DEFAULT '', + `sys_perm_other` varchar(5) NOT NULL DEFAULT '', + `server_id` int(11) unsigned NOT NULL default '0', + `domain` varchar(255) NOT NULL DEFAULT '', + `listname` varchar(255) NOT NULL DEFAULT '', + `email` varchar(255) NOT NULL DEFAULT '', + `password` varchar(255) NOT NULL DEFAULT '', + PRIMARY KEY (`mailinglist_id`) +) ENGINE=MyISAM DEFAULT CHARSET=utf8 AUTO_INCREMENT=1 ; + +-- -------------------------------------------------------- + +-- +-- Table structure for Table `mail_relay_recipient` +-- + +CREATE TABLE IF NOT EXISTS `mail_relay_recipient` ( + `relay_recipient_id` bigint(20) NOT NULL AUTO_INCREMENT, + `sys_userid` int(11) NOT NULL DEFAULT '0', + `sys_groupid` int(11) NOT NULL DEFAULT '0', + `sys_perm_user` varchar(5) DEFAULT NULL, + `sys_perm_group` varchar(5) DEFAULT NULL, + `sys_perm_other` varchar(5) DEFAULT NULL, + `server_id` int(11) NOT NULL DEFAULT '0', + `source` varchar(255) DEFAULT NULL, + `access` varchar(255) NOT NULL DEFAULT 'OK', + `active` varchar(255) NOT NULL DEFAULT 'y', + PRIMARY KEY (`relay_recipient_id`) +) ENGINE=MyISAM DEFAULT CHARSET=utf8 AUTO_INCREMENT=1 ; + +-- -------------------------------------------------------- + +-- +-- Table structure for table `mail_traffic` +-- + +CREATE TABLE `mail_traffic` ( + `traffic_id` int(11) unsigned NOT NULL auto_increment, + `mailuser_id` int(11) unsigned NOT NULL DEFAULT '0', + `month` char(7) NOT NULL DEFAULT '', + `traffic` bigint(20) unsigned NOT NULL DEFAULT '0', + PRIMARY KEY (`traffic_id`), + KEY `mailuser_id` (`mailuser_id`,`month`) +) ENGINE=MyISAM DEFAULT CHARSET=utf8 AUTO_INCREMENT=1 ; + +-- -------------------------------------------------------- + +-- +-- Table structure for table `mail_transport` +-- + +CREATE TABLE `mail_transport` ( + `transport_id` int(11) unsigned NOT NULL auto_increment, + `sys_userid` int(11) unsigned NOT NULL default '0', + `sys_groupid` int(11) unsigned NOT NULL default '0', + `sys_perm_user` varchar(5) NOT NULL default '', + `sys_perm_group` varchar(5) NOT NULL default '', + `sys_perm_other` varchar(5) NOT NULL default '', + `server_id` int(11) unsigned NOT NULL default '0', + `domain` varchar(255) NOT NULL default '', + `transport` varchar(255) NOT NULL DEFAULT '', + `sort_order` int(11) unsigned NOT NULL default '5', + `active` enum('n','y') NOT NULL DEFAULT 'n', + PRIMARY KEY (`transport_id`), + KEY `server_id` (`server_id`,`transport`), + KEY `server_id_2` (`server_id`,`domain`) +) ENGINE=MyISAM DEFAULT CHARSET=utf8 AUTO_INCREMENT=1 ; + +-- -------------------------------------------------------- + +-- +-- Table structure for table `mail_user` +-- + +CREATE TABLE `mail_user` ( + `mailuser_id` int(11) unsigned NOT NULL auto_increment, + `sys_userid` int(11) unsigned NOT NULL default '0', + `sys_groupid` int(11) unsigned NOT NULL default '0', + `sys_perm_user` varchar(5) NOT NULL default '', + `sys_perm_group` varchar(5) NOT NULL default '', + `sys_perm_other` varchar(5) NOT NULL default '', + `server_id` int(11) unsigned NOT NULL default '0', + `email` varchar(255) NOT NULL default '', + `login` varchar(255) NOT NULL default '', + `password` varchar(255) NOT NULL default '', + `name` varchar(255) NOT NULL default '', + `uid` int(11) NOT NULL default '5000', + `gid` int(11) NOT NULL default '5000', + `maildir` varchar(255) NOT NULL default '', + `maildir_format` varchar(255) NOT NULL default 'maildir', + `quota` bigint(20) NOT NULL default '-1', + `cc` varchar(255) NOT NULL default '', + `sender_cc` varchar(255) NOT NULL default '', + `homedir` varchar(255) NOT NULL default '', + `autoresponder` enum('n','y') NOT NULL default 'n', + `autoresponder_start_date` datetime NULL default NULL, + `autoresponder_end_date` datetime NULL default NULL, + `autoresponder_subject` varchar(255) NOT NULL default 'Out of office reply', + `autoresponder_text` mediumtext NULL, + `move_junk` enum('n','y') NOT NULL default 'n', + `custom_mailfilter` mediumtext, + `postfix` enum('n','y') NOT NULL default 'y', + `greylisting` enum('n','y' ) NOT NULL DEFAULT 'n', + `access` enum('n','y') NOT NULL default 'y', + `disableimap` enum('n','y') NOT NULL default 'n', + `disablepop3` enum('n','y') NOT NULL default 'n', + `disabledeliver` enum('n','y') NOT NULL default 'n', + `disablesmtp` enum('n','y') NOT NULL default 'n', + `disablesieve` enum('n','y') NOT NULL default 'n', + `disablesieve-filter` enum('n','y') NOT NULL default 'n', + `disablelda` enum('n','y') NOT NULL default 'n', + `disablelmtp` enum('n','y') NOT NULL default 'n', + `disabledoveadm` enum('n','y') NOT NULL default 'n', + `last_quota_notification` date NULL default NULL, + `backup_interval` VARCHAR( 255 ) NOT NULL default 'none', + `backup_copies` INT NOT NULL DEFAULT '1', + PRIMARY KEY (`mailuser_id`), + KEY `server_id` (`server_id`,`email`), + KEY `email_access` (`email`,`access`) +) ENGINE=MyISAM DEFAULT CHARSET=utf8 AUTO_INCREMENT=1 ; + +-- -------------------------------------------------------- + +-- +-- Table structure for table `mail_user_filter` +-- + +CREATE TABLE `mail_user_filter` ( + `filter_id` int(11) unsigned NOT NULL auto_increment, + `sys_userid` int(11) unsigned NOT NULL default '0', + `sys_groupid` int(11) unsigned NOT NULL default '0', + `sys_perm_user` varchar(5) default NULL, + `sys_perm_group` varchar(5) default NULL, + `sys_perm_other` varchar(5) default NULL, + `mailuser_id` int(11) unsigned NOT NULL default '0', + `rulename` varchar(64) default NULL, + `source` varchar(255) default NULL, + `searchterm` varchar(255) default NULL, + `op` varchar(255) default NULL, + `action` varchar(255) default NULL, + `target` varchar(255) default NULL, + `active` enum('n','y') NOT NULL default 'y', + PRIMARY KEY (`filter_id`) +) ENGINE=MyISAM DEFAULT CHARSET=utf8 AUTO_INCREMENT=1 ; + +-- -------------------------------------------------------- + +-- +-- Table structure for table `monitor_data` +-- + +CREATE TABLE `monitor_data` ( + `server_id` int(11) unsigned NOT NULL default '0', + `type` varchar(255) NOT NULL default '', + `created` int(11) unsigned NOT NULL default '0', + `data` mediumtext, + `state` enum('no_state','unknown','ok','info','warning','critical','error') NOT NULL DEFAULT 'unknown', + PRIMARY KEY (`server_id`,`type`,`created`) +) ENGINE=MyISAM DEFAULT CHARSET=utf8 ; + +-- -------------------------------------------------------- + +-- +-- Table structure for table `openvz_ip` +-- + +CREATE TABLE IF NOT EXISTS `openvz_ip` ( + `ip_address_id` bigint(20) NOT NULL AUTO_INCREMENT, + `sys_userid` int(11) NOT NULL DEFAULT '0', + `sys_groupid` int(11) NOT NULL DEFAULT '0', + `sys_perm_user` varchar(5) DEFAULT NULL, + `sys_perm_group` varchar(5) DEFAULT NULL, + `sys_perm_other` varchar(5) DEFAULT NULL, + `server_id` int(11) NOT NULL DEFAULT '0', + `ip_address` varchar(39) DEFAULT NULL, + `vm_id` int(11) NOT NULL DEFAULT '0', + `reserved` varchar(255) NOT NULL DEFAULT 'n', + `additional` varchar(255) NOT NULL DEFAULT 'n', + PRIMARY KEY (`ip_address_id`) +) ENGINE=MyISAM DEFAULT CHARSET=utf8 ; + +-- +-- Dumping data for table `openvz_ip` +-- + +-- -------------------------------------------------------- + +-- +-- Table structure for table `openvz_ostemplate` +-- + +CREATE TABLE IF NOT EXISTS `openvz_ostemplate` ( + `ostemplate_id` bigint(20) NOT NULL AUTO_INCREMENT, + `sys_userid` int(11) NOT NULL DEFAULT '0', + `sys_groupid` int(11) NOT NULL DEFAULT '0', + `sys_perm_user` varchar(5) DEFAULT NULL, + `sys_perm_group` varchar(5) DEFAULT NULL, + `sys_perm_other` varchar(5) DEFAULT NULL, + `template_name` varchar(255) DEFAULT NULL, + `template_file` varchar(255) NOT NULL DEFAULT '', + `server_id` int(11) NOT NULL DEFAULT '0', + `allservers` varchar(255) NOT NULL DEFAULT 'y', + `active` varchar(255) NOT NULL DEFAULT 'y', + `description` text, + PRIMARY KEY (`ostemplate_id`) +) ENGINE=MyISAM DEFAULT CHARSET=utf8 ; + +-- +-- Dumping data for table `openvz_ostemplate` +-- + +INSERT INTO `openvz_ostemplate` (`ostemplate_id`, `sys_userid`, `sys_groupid`, `sys_perm_user`, `sys_perm_group`, `sys_perm_other`, `template_name`, `template_file`, `server_id`, `allservers`, `active`, `description`) VALUES(1, 1, 1, 'riud', 'riud', '', 'Debian minimal', 'debian-minimal-x86', 1, 'y', 'y', 'Debian minimal image.'); + +-- -------------------------------------------------------- + +-- +-- Table structure for table `openvz_template` +-- + +CREATE TABLE IF NOT EXISTS `openvz_template` ( + `template_id` bigint(20) NOT NULL AUTO_INCREMENT, + `sys_userid` int(11) NOT NULL DEFAULT '0', + `sys_groupid` int(11) NOT NULL DEFAULT '0', + `sys_perm_user` varchar(5) DEFAULT NULL, + `sys_perm_group` varchar(5) DEFAULT NULL, + `sys_perm_other` varchar(5) DEFAULT NULL, + `template_name` varchar(255) DEFAULT NULL, + `diskspace` int(11) NOT NULL DEFAULT '0', + `traffic` int(11) NOT NULL DEFAULT '-1', + `bandwidth` int(11) NOT NULL DEFAULT '-1', + `ram` int(11) NOT NULL DEFAULT '0', + `ram_burst` int(11) NOT NULL DEFAULT '0', + `cpu_units` int(11) NOT NULL DEFAULT '1000', + `cpu_num` int(11) NOT NULL DEFAULT '4', + `cpu_limit` int(11) NOT NULL DEFAULT '400', + `io_priority` int(11) NOT NULL DEFAULT '4', + `active` varchar(255) NOT NULL DEFAULT 'y', + `description` text, + `numproc` varchar(255) DEFAULT NULL, + `numtcpsock` varchar(255) DEFAULT NULL, + `numothersock` varchar(255) DEFAULT NULL, + `vmguarpages` varchar(255) DEFAULT NULL, + `kmemsize` varchar(255) DEFAULT NULL, + `tcpsndbuf` varchar(255) DEFAULT NULL, + `tcprcvbuf` varchar(255) DEFAULT NULL, + `othersockbuf` varchar(255) DEFAULT NULL, + `dgramrcvbuf` varchar(255) DEFAULT NULL, + `oomguarpages` varchar(255) DEFAULT NULL, + `privvmpages` varchar(255) DEFAULT NULL, + `lockedpages` varchar(255) DEFAULT NULL, + `shmpages` varchar(255) DEFAULT NULL, + `physpages` varchar(255) DEFAULT NULL, + `numfile` varchar(255) DEFAULT NULL, + `avnumproc` varchar(255) DEFAULT NULL, + `numflock` varchar(255) DEFAULT NULL, + `numpty` varchar(255) DEFAULT NULL, + `numsiginfo` varchar(255) DEFAULT NULL, + `dcachesize` varchar(255) DEFAULT NULL, + `numiptent` varchar(255) DEFAULT NULL, + `swappages` varchar(255) DEFAULT NULL, + `hostname` varchar(255) DEFAULT NULL, + `nameserver` varchar(255) DEFAULT NULL, + `create_dns` varchar(1) NOT NULL DEFAULT 'n', + `capability` varchar(255) DEFAULT NULL, + `features` varchar(255) DEFAULT NULL, + `iptables` varchar(255) DEFAULT NULL, + `custom` text, + PRIMARY KEY (`template_id`) +) ENGINE=MyISAM DEFAULT CHARSET=utf8 ; + +-- +-- Dumping data for table `openvz_template` +-- + +INSERT INTO `openvz_template` (`template_id`, `sys_userid`, `sys_groupid`, `sys_perm_user`, `sys_perm_group`, `sys_perm_other`, `template_name`, `diskspace`, `traffic`, `bandwidth`, `ram`, `ram_burst`, `cpu_units`, `cpu_num`, `cpu_limit`, `io_priority`, `active`, `description`, `numproc`, `numtcpsock`, `numothersock`, `vmguarpages`, `kmemsize`, `tcpsndbuf`, `tcprcvbuf`, `othersockbuf`, `dgramrcvbuf`, `oomguarpages`, `privvmpages`, `lockedpages`, `shmpages`, `physpages`, `numfile`, `avnumproc`, `numflock`, `numpty`, `numsiginfo`, `dcachesize`, `numiptent`, `swappages`, `hostname`, `nameserver`, `create_dns`, `capability`, `features`, `iptables`, `custom`) VALUES(1, 1, 1, 'riud', 'riud', '', 'small', 10, -1, -1, 256, 512, 1000, 4, 400, 4, 'y', '', '999999:999999', '7999992:7999992', '7999992:7999992', '65536:unlimited', '2147483646:2147483646', '214748160:396774400', '214748160:396774400', '214748160:396774400', '214748160:396774400', '65536:65536', '131072:139264', '999999:999999', '65536:65536', '0:2147483647', '23999976:23999976', '180:180', '999999:999999', '500000:500000', '999999:999999', '2147483646:2147483646', '999999:999999', '256000:256000', 'v{VEID}.test.tld', '8.8.8.8 8.8.4.4', 'n', '', '', '', ''); + +-- -------------------------------------------------------- + +-- +-- Table structure for table `openvz_traffic` +-- + +CREATE TABLE IF NOT EXISTS `openvz_traffic` ( + `veid` int(11) NOT NULL DEFAULT '0', + `traffic_date` date NULL DEFAULT NULL, + `traffic_bytes` bigint(32) unsigned NOT NULL DEFAULT '0', + UNIQUE KEY (`veid`,`traffic_date`) +) ENGINE=MyISAM DEFAULT CHARSET=utf8; + +-- +-- Dumping data for table `openvz_traffic` +-- + + +-- -------------------------------------------------------- + +-- +-- Table structure for table `openvz_vm` +-- + +CREATE TABLE IF NOT EXISTS `openvz_vm` ( + `vm_id` bigint(20) NOT NULL AUTO_INCREMENT, + `sys_userid` int(11) NOT NULL DEFAULT '0', + `sys_groupid` int(11) NOT NULL DEFAULT '0', + `sys_perm_user` varchar(5) DEFAULT NULL, + `sys_perm_group` varchar(5) DEFAULT NULL, + `sys_perm_other` varchar(5) DEFAULT NULL, + `server_id` int(11) NOT NULL DEFAULT '0', + `veid` int(10) unsigned NOT NULL DEFAULT '0', + `ostemplate_id` int(11) NOT NULL DEFAULT '0', + `template_id` int(11) NOT NULL DEFAULT '0', + `ip_address` varchar(255) NOT NULL DEFAULT '', + `hostname` varchar(255) DEFAULT NULL, + `vm_password` varchar(255) DEFAULT NULL, + `start_boot` varchar(255) NOT NULL DEFAULT 'y', + `bootorder` int(11) NOT NULL DEFAULT '1', + `active` varchar(255) NOT NULL DEFAULT 'y', + `active_until_date` date NULL DEFAULT NULL, + `description` text, + `diskspace` int(11) NOT NULL DEFAULT '0', + `traffic` int(11) NOT NULL DEFAULT '-1', + `bandwidth` int(11) NOT NULL DEFAULT '-1', + `ram` int(11) NOT NULL DEFAULT '0', + `ram_burst` int(11) NOT NULL DEFAULT '0', + `cpu_units` int(11) NOT NULL DEFAULT '1000', + `cpu_num` int(11) NOT NULL DEFAULT '4', + `cpu_limit` int(11) NOT NULL DEFAULT '400', + `io_priority` int(11) NOT NULL DEFAULT '4', + `nameserver` varchar(255) NOT NULL DEFAULT '8.8.8.8 8.8.4.4', + `create_dns` varchar(1) NOT NULL DEFAULT 'n', + `capability` text, + `features` text, + `iptabless` text, + `config` mediumtext, + `custom` text, + PRIMARY KEY (`vm_id`) +) ENGINE=MyISAM DEFAULT CHARSET=utf8 ; + +-- +-- Dumping data for table `openvz_vm` +-- + +-- -------------------------------------------------------- + +-- +-- Table structure for table `remote_session` +-- + +CREATE TABLE `remote_session` ( + `remote_session` varchar(64) NOT NULL DEFAULT '', + `remote_userid` int(11) unsigned NOT NULL DEFAULT '0', + `remote_functions` text, + `client_login` tinyint(1) unsigned NOT NULL default '0', + `tstamp` int(10) unsigned NOT NULL DEFAULT '0', + PRIMARY KEY (`remote_session`) +) ENGINE=MyISAM DEFAULT CHARSET=utf8 ; + +-- -------------------------------------------------------- + +-- +-- Table structure for table `remote_user` +-- + +CREATE TABLE `remote_user` ( + `remote_userid` int(11) unsigned NOT NULL auto_increment, + `sys_userid` int(11) unsigned NOT NULL default '0', + `sys_groupid` int(11) unsigned NOT NULL default '0', + `sys_perm_user` varchar(5) default NULL, + `sys_perm_group` varchar(5) default NULL, + `sys_perm_other` varchar(5) default NULL, + `remote_username` varchar(64) NOT NULL DEFAULT '', + `remote_password` varchar(64) NOT NULL DEFAULT '', + `remote_access` enum('y','n') NOT NULL DEFAULT 'y', + `remote_ips` TEXT, + `remote_functions` text, + PRIMARY KEY (`remote_userid`) +) ENGINE=MyISAM DEFAULT CHARSET=utf8 AUTO_INCREMENT=1 ; + +-- -------------------------------------------------------- + +-- +-- Table structure for table `server` +-- + +CREATE TABLE `server` ( + `server_id` int(11) unsigned NOT NULL auto_increment, + `sys_userid` int(11) unsigned NOT NULL default '0', + `sys_groupid` int(11) unsigned NOT NULL default '0', + `sys_perm_user` varchar(5) NOT NULL default '', + `sys_perm_group` varchar(5) NOT NULL default '', + `sys_perm_other` varchar(5) NOT NULL default '', + `server_name` varchar(255) NOT NULL default '', + `mail_server` tinyint(1) NOT NULL default '0', + `web_server` tinyint(1) NOT NULL default '0', + `dns_server` tinyint(1) NOT NULL default '0', + `file_server` tinyint(1) NOT NULL default '0', + `db_server` tinyint(1) NOT NULL default '0', + `vserver_server` tinyint(1) NOT NULL default '0', + `proxy_server` tinyint(1) NOT NULL default '0', + `firewall_server` tinyint(1) NOT NULL default '0', + `xmpp_server` tinyint(1) NOT NULL default '0', + `config` text, + `updated` bigint(20) unsigned NOT NULL default '0', + `mirror_server_id` int(11) unsigned NOT NULL default '0', + `dbversion` int(11) unsigned NOT NULL default '1', + `active` tinyint(1) NOT NULL default '1', + PRIMARY KEY (`server_id`) +) ENGINE=MyISAM DEFAULT CHARSET=utf8 AUTO_INCREMENT=1 ; + +-- -------------------------------------------------------- + +-- +-- Table structure for table `server_ip` +-- + +CREATE TABLE `server_ip` ( + `server_ip_id` int(11) unsigned NOT NULL auto_increment, + `sys_userid` int(11) unsigned NOT NULL default '0', + `sys_groupid` int(11) unsigned NOT NULL default '0', + `sys_perm_user` varchar(5) default NULL, + `sys_perm_group` varchar(5) default NULL, + `sys_perm_other` varchar(5) default NULL, + `server_id` int(11) unsigned NOT NULL default '0', + `client_id` int(11) unsigned NOT NULL default '0', + `ip_type` enum( 'IPv4', 'IPv6' ) NOT NULL DEFAULT 'IPv4', + `ip_address` varchar(39) default NULL, + `virtualhost` enum('n','y') NOT NULL default 'y', + `virtualhost_port` varchar(255) default '80,443', + PRIMARY KEY (`server_ip_id`) +) ENGINE=MyISAM DEFAULT CHARSET=utf8 AUTO_INCREMENT=1 ; + +-- -------------------------------------------------------- + +-- +-- Table structure for table `server_ip_map` +-- + +CREATE TABLE `server_ip_map` ( + `server_ip_map_id` int(11) unsigned NOT NULL AUTO_INCREMENT, + `sys_userid` int(11) unsigned NOT NULL DEFAULT '0', + `sys_groupid` int(11) unsigned NOT NULL DEFAULT '0', + `sys_perm_user` varchar(5) DEFAULT NULL, + `sys_perm_group` varchar(5) DEFAULT NULL, + `sys_perm_other` varchar(5) DEFAULT NULL, + `server_id` int(11) unsigned NOT NULL DEFAULT '0', + `source_ip` varchar(15) DEFAULT NULL, + `destination_ip` varchar(35) DEFAULT '', + `active` enum('n','y') NOT NULL DEFAULT 'y', + PRIMARY KEY (`server_ip_map_id`) +) ENGINE=MyISAM DEFAULT CHARSET=utf8 AUTO_INCREMENT=1 ; + +-- -------------------------------------------------------- + +-- +-- Table structure for table `server_php` +-- + +CREATE TABLE `server_php` ( + `server_php_id` int(11) unsigned NOT NULL AUTO_INCREMENT, + `sys_userid` int(11) unsigned NOT NULL DEFAULT '0', + `sys_groupid` int(11) unsigned NOT NULL DEFAULT '0', + `sys_perm_user` varchar(5) DEFAULT NULL, + `sys_perm_group` varchar(5) DEFAULT NULL, + `sys_perm_other` varchar(5) DEFAULT NULL, + `server_id` int(11) unsigned NOT NULL DEFAULT '0', + `client_id` int(11) unsigned NOT NULL DEFAULT '0', + `name` varchar(255) DEFAULT NULL, + `php_fastcgi_binary` varchar(255) DEFAULT NULL, + `php_fastcgi_ini_dir` varchar(255) DEFAULT NULL, + `php_fpm_init_script` varchar(255) DEFAULT NULL, + `php_fpm_ini_dir` varchar(255) DEFAULT NULL, + `php_fpm_pool_dir` varchar(255) DEFAULT NULL, + `active` enum('n','y') NOT NULL DEFAULT 'y', + PRIMARY KEY (`server_php_id`) +) ENGINE=MyISAM DEFAULT CHARSET=utf8 AUTO_INCREMENT=1 ; + +-- -------------------------------------------------------- + +-- +-- Table structure for table `shell_user` +-- + +CREATE TABLE `shell_user` ( + `shell_user_id` int(11) unsigned NOT NULL auto_increment, + `sys_userid` int(11) unsigned NOT NULL default '0', + `sys_groupid` int(11) unsigned NOT NULL default '0', + `sys_perm_user` varchar(5) default NULL, + `sys_perm_group` varchar(5) default NULL, + `sys_perm_other` varchar(5) default NULL, + `server_id` int(11) unsigned NOT NULL default '0', + `parent_domain_id` int(11) unsigned NOT NULL default '0', + `username` varchar(64) default NULL, + `username_prefix` varchar(50) NOT NULL default '', + `password` varchar(64) default NULL, + `quota_size` bigint(20) NOT NULL default '-1', + `active` enum('n','y') NOT NULL default 'y', + `puser` varchar(255) default NULL, + `pgroup` varchar(255) default NULL, + `shell` varchar(255) NOT NULL default '/bin/bash', + `dir` varchar(255) default NULL, + `chroot` varchar(255) NOT NULL DEFAULT '', + `ssh_rsa` text, + PRIMARY KEY (`shell_user_id`) +) ENGINE=MyISAM DEFAULT CHARSET=utf8 AUTO_INCREMENT=1 ; + +-- -------------------------------------------------------- + +-- +-- Table structure for table `software_package` +-- + +CREATE TABLE `software_package` ( + `package_id` int(11) unsigned NOT NULL auto_increment, + `software_repo_id` int(11) unsigned NOT NULL DEFAULT '0', + `package_name` varchar(64) NOT NULL DEFAULT '', + `package_title` varchar(64) NOT NULL DEFAULT '', + `package_description` text, + `package_version` varchar(8) default NULL, + `package_type` enum('ispconfig','app','web') NOT NULL default 'app', + `package_installable` enum('yes','no','key') NOT NULL default 'yes', + `package_requires_db` enum('no','mysql') NOT NULL default 'no', + `package_remote_functions` text, + `package_key` varchar(255) NOT NULL DEFAULT '', + `package_config` text, + PRIMARY KEY (`package_id`), + UNIQUE KEY `package_name` (`package_name`) +) ENGINE=MyISAM DEFAULT CHARSET=utf8 AUTO_INCREMENT=1 ; + +-- -------------------------------------------------------- + +-- +-- Table structure for table `software_repo` +-- + +CREATE TABLE `software_repo` ( + `software_repo_id` int(11) unsigned NOT NULL auto_increment, + `sys_userid` int(11) unsigned NOT NULL default '0', + `sys_groupid` int(11) unsigned NOT NULL default '0', + `sys_perm_user` varchar(5) default NULL, + `sys_perm_group` varchar(5) default NULL, + `sys_perm_other` varchar(5) default NULL, + `repo_name` varchar(64) default NULL, + `repo_url` varchar(255) default NULL, + `repo_username` varchar(64) default NULL, + `repo_password` varchar(64) default NULL, + `active` enum('n','y') NOT NULL default 'y', + PRIMARY KEY (`software_repo_id`) +) ENGINE=MyISAM DEFAULT CHARSET=utf8 AUTO_INCREMENT=1 ; + +-- -------------------------------------------------------- + +-- +-- Table structure for table `software_update` +-- + +CREATE TABLE `software_update` ( + `software_update_id` int(11) unsigned NOT NULL auto_increment, + `software_repo_id` int(11) unsigned NOT NULL DEFAULT '0', + `package_name` varchar(64) NOT NULL DEFAULT '', + `update_url` varchar(255) NOT NULL DEFAULT '', + `update_md5` varchar(255) NOT NULL DEFAULT '', + `update_dependencies` varchar(255) NOT NULL DEFAULT '', + `update_title` varchar(64) NOT NULL DEFAULT '', + `v1` tinyint(1) NOT NULL default '0', + `v2` tinyint(1) NOT NULL default '0', + `v3` tinyint(1) NOT NULL default '0', + `v4` tinyint(1) NOT NULL default '0', + `type` enum('full','update') NOT NULL default 'full', + PRIMARY KEY (`software_update_id`) +) ENGINE=MyISAM DEFAULT CHARSET=utf8 AUTO_INCREMENT=1 ; + +-- -------------------------------------------------------- + +-- +-- Table structure for table `software_update_inst` +-- + +CREATE TABLE `software_update_inst` ( + `software_update_inst_id` int(11) unsigned NOT NULL auto_increment, + `software_update_id` int(11) unsigned NOT NULL default '0', + `package_name` varchar(64) NOT NULL DEFAULT '', + `server_id` int(11) unsigned NOT NULL DEFAULT '0', + `status` enum('none','installing','installed','deleting','deleted','failed') NOT NULL default 'none', + PRIMARY KEY (`software_update_inst_id`), + UNIQUE KEY `software_update_id` (`software_update_id`,`package_name`,`server_id`) +) ENGINE=MyISAM DEFAULT CHARSET=utf8 AUTO_INCREMENT=1 ; + +-- -------------------------------------------------------- + +-- +-- Table structure for table `spamfilter_policy` +-- + +CREATE TABLE `spamfilter_policy` ( + `id` int(11) unsigned NOT NULL auto_increment, + `sys_userid` int(11) unsigned NOT NULL DEFAULT '0', + `sys_groupid` int(11) unsigned NOT NULL DEFAULT '0', + `sys_perm_user` varchar(5) NOT NULL DEFAULT '', + `sys_perm_group` varchar(5) NOT NULL DEFAULT '', + `sys_perm_other` varchar(5) NOT NULL DEFAULT '', + `policy_name` varchar(64) default NULL, + `virus_lover` enum('N','Y') default 'N', + `spam_lover` enum('N','Y') default 'N', + `banned_files_lover` enum('N','Y') default 'N', + `bad_header_lover` enum('N','Y') default 'N', + `bypass_virus_checks` enum('N','Y') default 'N', + `bypass_spam_checks` enum('N','Y') default 'N', + `bypass_banned_checks` enum('N','Y') default 'N', + `bypass_header_checks` enum('N','Y') default 'N', + `spam_modifies_subj` enum('N','Y') default 'N', + `virus_quarantine_to` varchar(255) default NULL, + `spam_quarantine_to` varchar(255) default NULL, + `banned_quarantine_to` varchar(255) default NULL, + `bad_header_quarantine_to` varchar(255) default NULL, + `clean_quarantine_to` varchar(255) default NULL, + `other_quarantine_to` varchar(255) default NULL, + `spam_tag_level` DECIMAL(5,2) default NULL, + `spam_tag2_level` DECIMAL(5,2) default NULL, + `spam_kill_level` DECIMAL(5,2) default NULL, + `spam_dsn_cutoff_level` DECIMAL(5,2) default NULL, + `spam_quarantine_cutoff_level` DECIMAL(5,2) default NULL, + `addr_extension_virus` varchar(64) default NULL, + `addr_extension_spam` varchar(64) default NULL, + `addr_extension_banned` varchar(64) default NULL, + `addr_extension_bad_header` varchar(64) default NULL, + `warnvirusrecip` enum('N','Y') default 'N', + `warnbannedrecip` enum('N','Y') default 'N', + `warnbadhrecip` enum('N','Y') default 'N', + `newvirus_admin` varchar(64) default NULL, + `virus_admin` varchar(64) default NULL, + `banned_admin` varchar(64) default NULL, + `bad_header_admin` varchar(64) default NULL, + `spam_admin` varchar(64) default NULL, + `spam_subject_tag` varchar(64) default NULL, + `spam_subject_tag2` varchar(64) default NULL, + `message_size_limit` int(11) unsigned default NULL, + `banned_rulenames` varchar(64) default NULL, + `policyd_quota_in` int(11) NOT NULL DEFAULT '-1', + `policyd_quota_in_period` int(11) NOT NULL DEFAULT '24', + `policyd_quota_out` int(11) NOT NULL DEFAULT '-1', + `policyd_quota_out_period` int(11) NOT NULL DEFAULT '24', + `policyd_greylist` ENUM( 'Y', 'N' ) NOT NULL DEFAULT 'N', + PRIMARY KEY (`id`) +) ENGINE=MyISAM DEFAULT CHARSET=utf8 AUTO_INCREMENT=1 ; + +-- -------------------------------------------------------- + +-- +-- Table structure for table `spamfilter_users` +-- + +CREATE TABLE `spamfilter_users` ( + `id` int(11) unsigned NOT NULL auto_increment, + `sys_userid` int(11) unsigned NOT NULL DEFAULT '0', + `sys_groupid` int(11) unsigned NOT NULL DEFAULT '0', + `sys_perm_user` varchar(5) NOT NULL DEFAULT '', + `sys_perm_group` varchar(5) NOT NULL DEFAULT '', + `sys_perm_other` varchar(5) NOT NULL DEFAULT '', + `server_id` int(11) unsigned NOT NULL DEFAULT '0', + `priority` tinyint(3) unsigned NOT NULL default '7', + `policy_id` int(11) unsigned NOT NULL default '1', + `email` varchar(255) NOT NULL DEFAULT '', + `fullname` varchar(64) default NULL, + `local` varchar(1) default NULL, + PRIMARY KEY (`id`), + UNIQUE KEY `email` (`email`) +) ENGINE=MyISAM DEFAULT CHARSET=utf8 AUTO_INCREMENT=1 ; + +-- -------------------------------------------------------- + +-- +-- Table structure for table `spamfilter_wblist` +-- + +CREATE TABLE `spamfilter_wblist` ( + `wblist_id` int(11) unsigned NOT NULL auto_increment, + `sys_userid` int(11) unsigned NOT NULL DEFAULT '0', + `sys_groupid` int(11) unsigned NOT NULL DEFAULT '0', + `sys_perm_user` varchar(5) NOT NULL DEFAULT '', + `sys_perm_group` varchar(5) NOT NULL DEFAULT '', + `sys_perm_other` varchar(5) NOT NULL DEFAULT '', + `server_id` int(11) unsigned NOT NULL DEFAULT '0', + `wb` enum('W','B') NOT NULL default 'W', + `rid` int(11) unsigned NOT NULL DEFAULT '0', + `email` varchar(255) NOT NULL DEFAULT '', + `priority` tinyint(3) unsigned NOT NULL DEFAULT '0', + `active` enum('y','n') NOT NULL default 'y', + PRIMARY KEY (`wblist_id`) +) ENGINE=MyISAM DEFAULT CHARSET=utf8 AUTO_INCREMENT=1 ; + +-- -------------------------------------------------------- + +-- +-- Table structure for table `support_message` +-- + +CREATE TABLE `support_message` ( + `support_message_id` int(11) unsigned NOT NULL auto_increment, + `sys_userid` int(11) unsigned NOT NULL default '0', + `sys_groupid` int(11) unsigned NOT NULL default '0', + `sys_perm_user` varchar(5) default NULL, + `sys_perm_group` varchar(5) default NULL, + `sys_perm_other` varchar(5) default NULL, + `recipient_id` int(11) unsigned NOT NULL default '0', + `sender_id` int(11) unsigned NOT NULL default '0', + `subject` varchar(255) default NULL, + `message` text default NULL, + `tstamp` int(11) NOT NULL default '0', + PRIMARY KEY (`support_message_id`) +) ENGINE=MyISAM DEFAULT CHARSET=utf8 AUTO_INCREMENT=1 ; + +-- -------------------------------------------------------- + +-- +-- Table structure for table `sys_config` +-- + +CREATE TABLE `sys_config` ( + `group` varchar(64) NOT NULL DEFAULT '', + `name` varchar(64) NOT NULL DEFAULT '', + `value` varchar(255) NOT NULL DEFAULT '', + PRIMARY KEY (`group`, `name`) +) ENGINE=MyISAM DEFAULT CHARSET=utf8; + + +-- -------------------------------------------------------- + +-- +-- Table structure for table `sys_cron` +-- + +CREATE TABLE IF NOT EXISTS `sys_cron` ( + `name` varchar(50) NOT NULL DEFAULT '', + `last_run` datetime NULL DEFAULT NULL, + `next_run` datetime NULL DEFAULT NULL, + `running` tinyint(1) UNSIGNED NOT NULL DEFAULT '0', + PRIMARY KEY (`name`) +) ENGINE=MyISAM DEFAULT CHARSET=utf8; + + +-- -------------------------------------------------------- + +-- +-- Table structure for table `sys_datalog` +-- + +CREATE TABLE `sys_datalog` ( + `datalog_id` int(11) unsigned NOT NULL auto_increment, + `server_id` int(11) unsigned NOT NULL DEFAULT '0', + `dbtable` varchar(255) NOT NULL default '', + `dbidx` varchar(255) NOT NULL default '', + `action` char(1) NOT NULL default '', + `tstamp` int(11) NOT NULL default '0', + `user` varchar(255) NOT NULL default '', + `data` longtext, + `status` set('pending','ok','warning','error') NOT NULL default 'ok', + `error` mediumtext, + `session_id` varchar(64) NOT NULL DEFAULT '', + PRIMARY KEY (`datalog_id`), + KEY `server_id` (`server_id`,`status`) +) ENGINE=MyISAM DEFAULT CHARSET=utf8 AUTO_INCREMENT=1 ; + +-- -------------------------------------------------------- + +-- +-- Table structure for table `sys_dbsync` +-- + +CREATE TABLE `sys_dbsync` ( + `id` int(11) unsigned NOT NULL auto_increment, + `jobname` varchar(64) NOT NULL default '', + `sync_interval_minutes` int(11) unsigned NOT NULL default '0', + `db_type` varchar(16) NOT NULL default '', + `db_host` varchar(255) NOT NULL default '', + `db_name` varchar(64) NOT NULL default '', + `db_username` varchar(64) NOT NULL default '', + `db_password` varchar(64) NOT NULL default '', + `db_tables` varchar(255) NOT NULL default 'admin,forms', + `empty_datalog` int(11) unsigned NOT NULL default '0', + `sync_datalog_external` int(11) unsigned NOT NULL default '0', + `active` tinyint(1) NOT NULL default '1', + `last_datalog_id` int(11) unsigned NOT NULL default '0', + PRIMARY KEY (`id`), + KEY `last_datalog_id` (`last_datalog_id`) +) ENGINE=MyISAM DEFAULT CHARSET=utf8 AUTO_INCREMENT=1 ; + +-- -------------------------------------------------------- + +-- +-- Table structure for table `sys_filesync` +-- + +CREATE TABLE `sys_filesync` ( + `id` int(11) unsigned NOT NULL auto_increment, + `jobname` varchar(64) NOT NULL default '', + `sync_interval_minutes` int(11) unsigned NOT NULL default '0', + `ftp_host` varchar(255) NOT NULL default '', + `ftp_path` varchar(255) NOT NULL default '', + `ftp_username` varchar(64) NOT NULL default '', + `ftp_password` varchar(64) NOT NULL default '', + `local_path` varchar(255) NOT NULL default '', + `wput_options` varchar(255) NOT NULL default '--timestamping --reupload --dont-continue', + `active` tinyint(1) NOT NULL default '1', + PRIMARY KEY (`id`) +) ENGINE=MyISAM DEFAULT CHARSET=utf8 AUTO_INCREMENT=1 ; + +-- -------------------------------------------------------- + +-- +-- Table structure for table `sys_group` +-- + +CREATE TABLE `sys_group` ( + `groupid` int(11) unsigned NOT NULL auto_increment, + `name` varchar(64) NOT NULL default '', + `description` text, + `client_id` int(11) unsigned NOT NULL default '0', + PRIMARY KEY (`groupid`) +) ENGINE=MyISAM DEFAULT CHARSET=utf8 AUTO_INCREMENT=1 ; + +-- -------------------------------------------------------- + +-- +-- Table structure for table `sys_ini` +-- + +CREATE TABLE `sys_ini` ( + `sysini_id` int(11) unsigned NOT NULL auto_increment, + `config` longtext, + `default_logo` text NOT NULL, + `custom_logo` text NOT NULL, + PRIMARY KEY (`sysini_id`) +) ENGINE=MyISAM DEFAULT CHARSET=utf8 AUTO_INCREMENT=1 ; + +-- -------------------------------------------------------- + +-- +-- Table structure for table `sys_log` +-- + +CREATE TABLE `sys_log` ( + `syslog_id` int(11) unsigned NOT NULL auto_increment, + `server_id` int(11) unsigned NOT NULL default '0', + `datalog_id` int(11) unsigned NOT NULL default '0', + `loglevel` tinyint(4) NOT NULL default '0', + `tstamp` int(11) unsigned NOT NULL DEFAULT '0', + `message` text, + PRIMARY KEY (`syslog_id`) +) ENGINE=MyISAM DEFAULT CHARSET=utf8 AUTO_INCREMENT=1 ; + +-- -------------------------------------------------------- + +-- +-- Table structure for table `sys_remoteaction` +-- + +CREATE TABLE `sys_remoteaction` ( + `action_id` int(11) unsigned NOT NULL AUTO_INCREMENT, + `server_id` int(11) unsigned NOT NULL DEFAULT '0', + `tstamp` int(11) NOT NULL DEFAULT '0', + `action_type` varchar(20) NOT NULL DEFAULT '', + `action_param` mediumtext, + `action_state` enum('pending','ok','warning','error') NOT NULL DEFAULT 'pending', + `response` mediumtext, + PRIMARY KEY (`action_id`), + KEY `server_id` (`server_id`) +) ENGINE=MyISAM DEFAULT CHARSET=utf8 AUTO_INCREMENT=1 ; + +-- -------------------------------------------------------- + +-- +-- Table structure for table `sys_session` +-- + +CREATE TABLE `sys_session` ( + `session_id` varchar(64) NOT NULL DEFAULT '', + `date_created` datetime NULL DEFAULT NULL, + `last_updated` datetime NULL DEFAULT NULL, + `permanent` enum('n','y') NOT NULL DEFAULT 'n', + `session_data` longtext, + PRIMARY KEY (`session_id`), + KEY `last_updated` (`last_updated`) +) ENGINE=MyISAM DEFAULT CHARSET=utf8 ; + +-- -------------------------------------------------------- + +-- +-- Table structure for table `sys_theme` +-- + +CREATE TABLE IF NOT EXISTS `sys_theme` ( + `sys_userid` int(11) unsigned NOT NULL DEFAULT '0', + `sys_groupid` int(11) unsigned NOT NULL DEFAULT '0', + `sys_perm_user` varchar(5) DEFAULT NULL, + `sys_perm_group` varchar(5) DEFAULT NULL, + `sys_perm_other` varchar(5) DEFAULT NULL, + `var_id` int(11) unsigned NOT NULL AUTO_INCREMENT, + `tpl_name` varchar(32) NOT NULL DEFAULT '', + `username` varchar(64) NOT NULL DEFAULT '', + `logo_url` varchar(255) NOT NULL DEFAULT '', + PRIMARY KEY (`var_id`) +) ENGINE=MyISAM DEFAULT CHARSET=utf8 ; + +-- -------------------------------------------------------- + +-- +-- Table structure for table `sys_user` +-- + +CREATE TABLE `sys_user` ( + `userid` int(11) unsigned NOT NULL auto_increment, + `sys_userid` int(11) unsigned NOT NULL default '1' COMMENT 'Created by userid', + `sys_groupid` int(11) unsigned NOT NULL default '1' COMMENT 'Created by groupid', + `sys_perm_user` varchar(5) NOT NULL default 'riud', + `sys_perm_group` varchar(5) NOT NULL default 'riud', + `sys_perm_other` varchar(5) NOT NULL default '', + `username` varchar(64) NOT NULL default '', + `passwort` varchar(64) NOT NULL default '', + `modules` varchar(255) NOT NULL default '', + `startmodule` varchar(255) NOT NULL default '', + `app_theme` varchar(32) NOT NULL default 'default', + `typ` varchar(16) NOT NULL default 'user', + `active` tinyint(1) NOT NULL default '1', + `language` varchar(2) NOT NULL default 'en', + `groups` TEXT, + `default_group` int(11) unsigned NOT NULL default '0', + `client_id` int(11) unsigned NOT NULL default '0', + `id_rsa` VARCHAR( 2000 ) NOT NULL default '', + `ssh_rsa` VARCHAR( 600 ) NOT NULL default '', + `lost_password_function` tinyint(1) NOT NULL default '1', + `lost_password_hash` VARCHAR(50) NOT NULL default '', + `lost_password_reqtime` DATETIME NULL default NULL, + PRIMARY KEY (`userid`) +) ENGINE=MyISAM DEFAULT CHARSET=utf8 AUTO_INCREMENT=1 ; + +-- -------------------------------------------------------- + +-- +-- Table structure for table `webdav_user` +-- + +CREATE TABLE `webdav_user` ( + `webdav_user_id` int(11) unsigned NOT NULL AUTO_INCREMENT, + `sys_userid` int(11) unsigned NOT NULL DEFAULT '0', + `sys_groupid` int(11) unsigned NOT NULL DEFAULT '0', + `sys_perm_user` varchar(5) DEFAULT NULL, + `sys_perm_group` varchar(5) DEFAULT NULL, + `sys_perm_other` varchar(5) DEFAULT NULL, + `server_id` int(11) unsigned NOT NULL DEFAULT '0', + `parent_domain_id` int(11) unsigned NOT NULL DEFAULT '0', + `username` varchar(64) DEFAULT NULL, + `username_prefix` varchar(50) NOT NULL default '', + `password` varchar(64) DEFAULT NULL, + `active` enum('n','y') NOT NULL DEFAULT 'y', + `dir` varchar(255) DEFAULT NULL, + PRIMARY KEY (`webdav_user_id`) +) ENGINE=MyISAM DEFAULT CHARSET=utf8 AUTO_INCREMENT=1 ; + +-- -------------------------------------------------------- + +-- +-- Table structure for table `web_backup` +-- + +CREATE TABLE `web_backup` ( + `backup_id` int(10) unsigned NOT NULL AUTO_INCREMENT, + `server_id` int(10) unsigned NOT NULL DEFAULT '0', + `parent_domain_id` int(10) unsigned NOT NULL DEFAULT '0', + `backup_type` enum('web','mysql','mongodb') NOT NULL DEFAULT 'web', + `backup_mode` varchar(64) NOT NULL DEFAULT '', + `tstamp` int(10) unsigned NOT NULL DEFAULT '0', + `filename` varchar(255) NOT NULL DEFAULT '', + `filesize` VARCHAR(20) NOT NULL DEFAULT '', + PRIMARY KEY (`backup_id`) +) ENGINE=MyISAM DEFAULT CHARSET=utf8 AUTO_INCREMENT=1 ; + +-- -------------------------------------------------------- + +-- +-- Table structure for table `web_database` +-- + +CREATE TABLE `web_database` ( + `database_id` int(11) unsigned NOT NULL AUTO_INCREMENT, + `sys_userid` int(11) unsigned NOT NULL DEFAULT '0', + `sys_groupid` int(11) unsigned NOT NULL DEFAULT '0', + `sys_perm_user` varchar(5) DEFAULT NULL, + `sys_perm_group` varchar(5) DEFAULT NULL, + `sys_perm_other` varchar(5) DEFAULT NULL, + `server_id` int(11) unsigned NOT NULL DEFAULT '0', + `parent_domain_id` int(11) unsigned NOT NULL DEFAULT '0', + `type` varchar(16) NOT NULL DEFAULT 'y', + `database_name` varchar(64) DEFAULT NULL, + `database_name_prefix` varchar(50) NOT NULL default '', + `database_quota` int(11) DEFAULT NULL, + `quota_exceeded` enum('n','y') NOT NULL DEFAULT 'n', + `last_quota_notification` date NULL default NULL, + `database_user_id` int(11) unsigned DEFAULT NULL, + `database_ro_user_id` int(11) unsigned DEFAULT NULL, + `database_charset` varchar(64) DEFAULT NULL, + `remote_access` enum('n','y') NOT NULL DEFAULT 'y', + `remote_ips` text, + `backup_interval` VARCHAR( 255 ) NOT NULL DEFAULT 'none', + `backup_copies` INT NOT NULL DEFAULT '1', + `active` enum('n','y') NOT NULL DEFAULT 'y', + PRIMARY KEY (`database_id`), + KEY `database_user_id` (`database_user_id`), + KEY `database_ro_user_id` (`database_ro_user_id`) +) ENGINE=MyISAM DEFAULT CHARSET=utf8 AUTO_INCREMENT=1 ; + +-- -------------------------------------------------------- + +-- +-- Tabellenstruktur für Tabelle `web_database_user` +-- + +CREATE TABLE IF NOT EXISTS `web_database_user` ( + `database_user_id` int(11) unsigned NOT NULL AUTO_INCREMENT, + `sys_userid` int(11) unsigned NOT NULL DEFAULT '0', + `sys_groupid` int(11) unsigned NOT NULL DEFAULT '0', + `sys_perm_user` varchar(5) DEFAULT NULL, + `sys_perm_group` varchar(5) DEFAULT NULL, + `sys_perm_other` varchar(5) DEFAULT NULL, + `server_id` int(11) UNSIGNED NOT NULL DEFAULT '0', + `database_user` varchar(64) DEFAULT NULL, + `database_user_prefix` varchar(50) NOT NULL default '', + `database_password` varchar(64) DEFAULT NULL, + `database_password_mongo` varchar(32) DEFAULT NULL, + PRIMARY KEY (`database_user_id`) +) ENGINE=MyISAM DEFAULT CHARSET=utf8 AUTO_INCREMENT=1 ; + +-- -------------------------------------------------------- + +-- +-- Table structure for table `web_domain` +-- + +CREATE TABLE `web_domain` ( + `domain_id` int(11) unsigned NOT NULL auto_increment, + `sys_userid` int(11) unsigned NOT NULL default '0', + `sys_groupid` int(11) unsigned NOT NULL default '0', + `sys_perm_user` varchar(5) default NULL, + `sys_perm_group` varchar(5) default NULL, + `sys_perm_other` varchar(5) default NULL, + `server_id` int(11) unsigned NOT NULL default '0', + `ip_address` varchar(39) default NULL, + `ipv6_address` VARCHAR( 255 ) default NULL, + `domain` varchar(255) default NULL, + `type` varchar(32) default NULL, + `parent_domain_id` int(11) unsigned NOT NULL default '0', + `vhost_type` varchar(32) default NULL, + `document_root` varchar(255) default NULL, + `web_folder` varchar(100) default NULL, + `system_user` varchar(255) default NULL, + `system_group` varchar(255) default NULL, + `hd_quota` bigint(20) NOT NULL default '0', + `traffic_quota` bigint(20) NOT NULL default '-1', + `cgi` enum('n','y') NOT NULL default 'y', + `ssi` enum('n','y') NOT NULL default 'y', + `suexec` enum('n','y') NOT NULL default 'y', + `errordocs` tinyint(1) NOT NULL default '1', + `is_subdomainwww` tinyint(1) NOT NULL default '1', + `subdomain` enum('none','www','*') NOT NULL default 'none', + `php` varchar(32) NOT NULL default 'y', + `ruby` enum('n','y') NOT NULL default 'n', + `python` enum('n','y') NOT NULL default 'n', + `perl` enum('n','y') NOT NULL default 'n', + `redirect_type` varchar(255) default NULL, + `redirect_path` varchar(255) default NULL, + `seo_redirect` varchar(255) default NULL, + `rewrite_to_https` ENUM('y','n') NOT NULL DEFAULT 'n', + `ssl` enum('n','y') NOT NULL default 'n', + `ssl_letsencrypt` enum('n','y') NOT NULL DEFAULT 'n', + `ssl_letsencrypt_exclude` enum('n','y') NOT NULL DEFAULT 'n', + `ssl_state` varchar(255) NULL, + `ssl_locality` varchar(255) NULL, + `ssl_organisation` varchar(255) NULL, + `ssl_organisation_unit` varchar(255) NULL, + `ssl_country` varchar(255) NULL, + `ssl_domain` varchar(255) NULL, + `ssl_request` mediumtext NULL, + `ssl_cert` mediumtext NULL, + `ssl_bundle` mediumtext NULL, + `ssl_key` mediumtext NULL, + `ssl_action` varchar(16) NULL, + `stats_password` varchar(255) default NULL, + `stats_type` varchar(255) default 'awstats', + `allow_override` varchar(255) NOT NULL default 'All', + `apache_directives` mediumtext, + `nginx_directives` mediumtext, + `php_fpm_use_socket` ENUM('n','y') NOT NULL DEFAULT 'y', + `php_fpm_chroot` enum('n','y') NOT NULL DEFAULT 'n', + `pm` enum('static','dynamic','ondemand') NOT NULL DEFAULT 'dynamic', + `pm_max_children` int(11) NOT NULL DEFAULT '10', + `pm_start_servers` int(11) NOT NULL DEFAULT '2', + `pm_min_spare_servers` int(11) NOT NULL DEFAULT '1', + `pm_max_spare_servers` int(11) NOT NULL DEFAULT '5', + `pm_process_idle_timeout` int(11) NOT NULL DEFAULT '10', + `pm_max_requests` int(11) NOT NULL DEFAULT '0', + `php_open_basedir` mediumtext, + `custom_php_ini` mediumtext, + `backup_interval` VARCHAR( 255 ) NOT NULL DEFAULT 'none', + `backup_copies` INT NOT NULL DEFAULT '1', + `backup_excludes` mediumtext, + `active` enum('n','y') NOT NULL default 'y', + `traffic_quota_lock` enum('n','y') NOT NULL default 'n', + `fastcgi_php_version` varchar(255) DEFAULT NULL, + `proxy_directives` mediumtext, + `enable_spdy` ENUM('y','n') NULL DEFAULT 'n', + `last_quota_notification` date NULL default NULL, + `rewrite_rules` mediumtext, + `added_date` date NULL DEFAULT NULL, + `added_by` varchar(255) DEFAULT NULL, + `directive_snippets_id` int(11) unsigned NOT NULL default '0', + `enable_pagespeed` ENUM('y','n') NOT NULL DEFAULT 'n', + `http_port` int(11) unsigned NOT NULL DEFAULT '80', + `https_port` int(11) unsigned NOT NULL DEFAULT '443', + `folder_directive_snippets` text, + `log_retention` int(11) NOT NULL DEFAULT '10', + PRIMARY KEY (`domain_id`), + UNIQUE KEY `serverdomain` ( `server_id` , `ip_address`, `domain` ) +) ENGINE=MyISAM DEFAULT CHARSET=utf8 AUTO_INCREMENT=1 ; + +-- -------------------------------------------------------- + +-- +-- Table structure for table `web_folder` +-- + +CREATE TABLE IF NOT EXISTS `web_folder` ( + `web_folder_id` bigint(20) NOT NULL AUTO_INCREMENT, + `sys_userid` int(11) NOT NULL DEFAULT '0', + `sys_groupid` int(11) NOT NULL DEFAULT '0', + `sys_perm_user` varchar(5) DEFAULT NULL, + `sys_perm_group` varchar(5) DEFAULT NULL, + `sys_perm_other` varchar(5) DEFAULT NULL, + `server_id` int(11) NOT NULL DEFAULT '0', + `parent_domain_id` int(11) NOT NULL DEFAULT '0', + `path` varchar(255) DEFAULT NULL, + `active` varchar(255) NOT NULL DEFAULT 'y', + PRIMARY KEY (`web_folder_id`) +) ENGINE=MyISAM DEFAULT CHARSET=utf8 AUTO_INCREMENT=1 ; + +-- +-- Dumping data for table `web_folder` +-- + + +-- -------------------------------------------------------- + +-- +-- Table structure for table `web_folder_user` +-- + +CREATE TABLE IF NOT EXISTS `web_folder_user` ( + `web_folder_user_id` bigint(20) NOT NULL AUTO_INCREMENT, + `sys_userid` int(11) NOT NULL DEFAULT '0', + `sys_groupid` int(11) NOT NULL DEFAULT '0', + `sys_perm_user` varchar(5) DEFAULT NULL, + `sys_perm_group` varchar(5) DEFAULT NULL, + `sys_perm_other` varchar(5) DEFAULT NULL, + `server_id` int(11) NOT NULL DEFAULT '0', + `web_folder_id` int(11) NOT NULL DEFAULT '0', + `username` varchar(255) DEFAULT NULL, + `password` varchar(255) DEFAULT NULL, + `active` varchar(255) NOT NULL DEFAULT 'y', + PRIMARY KEY (`web_folder_user_id`) +) ENGINE=MyISAM DEFAULT CHARSET=utf8 AUTO_INCREMENT=1 ; + +-- +-- Dumping data for table `web_folder_user` +-- + +-- -------------------------------------------------------- + +-- +-- Table structure for table `web_traffic` +-- + +CREATE TABLE `web_traffic` ( + `hostname` varchar(255) NOT NULL DEFAULT '', + `traffic_date` date NULL DEFAULT NULL, + `traffic_bytes` bigint(32) unsigned NOT NULL default '0', + UNIQUE KEY (`hostname`,`traffic_date`) +) ENGINE=MyISAM DEFAULT CHARSET=utf8 ; + +-- -------------------------------------------------------- + +-- +-- Table structure for table `xmpp_domain` +-- + +CREATE TABLE `xmpp_domain` ( + `domain_id` int(11) unsigned NOT NULL auto_increment, + `sys_userid` int(11) unsigned NOT NULL default '0', + `sys_groupid` int(11) unsigned NOT NULL default '0', + `sys_perm_user` varchar(5) NOT NULL default '', + `sys_perm_group` varchar(5) NOT NULL default '', + `sys_perm_other` varchar(5) NOT NULL default '', + `server_id` int(11) unsigned NOT NULL default '0', + `domain` varchar(255) NOT NULL default '', + + `management_method` ENUM( 'normal', 'maildomain' ) NOT NULL default 'normal', + `public_registration` ENUM( 'n', 'y' ) NOT NULL default 'n', + `registration_url` varchar(255) NOT NULL DEFAULT '', + `registration_message` varchar(255) NOT NULL DEFAULT '', + `domain_admins` text, + + `use_pubsub` enum('n','y') NOT NULL DEFAULT 'n', + `use_proxy` enum('n','y') NOT NULL DEFAULT 'n', + `use_anon_host` enum('n','y') NOT NULL DEFAULT 'n', + + `use_vjud` enum('n','y') NOT NULL DEFAULT 'n', + `vjud_opt_mode` enum('in', 'out') NOT NULL DEFAULT 'in', + + `use_muc_host` enum('n','y') NOT NULL DEFAULT 'n', + `muc_name` varchar(30) NOT NULL DEFAULT '', + `muc_restrict_room_creation` enum('n', 'y', 'm') NOT NULL DEFAULT 'm', + `muc_admins` text, + `use_pastebin` enum('n','y') NOT NULL DEFAULT 'n', + `pastebin_expire_after` int(3) NOT NULL DEFAULT 48, + `pastebin_trigger` varchar(10) NOT NULL DEFAULT '!paste', + `use_http_archive` enum('n','y') NOT NULL DEFAULT 'n', + `http_archive_show_join` enum('n', 'y') NOT NULL DEFAULT 'n', + `http_archive_show_status` enum('n', 'y') NOT NULL DEFAULT 'n', + `use_status_host` enum('n','y') NOT NULL DEFAULT 'n', + + `ssl_state` varchar(255) NULL, + `ssl_locality` varchar(255) NULL, + `ssl_organisation` varchar(255) NULL, + `ssl_organisation_unit` varchar(255) NULL, + `ssl_country` varchar(255) NULL, + `ssl_email` varchar(255) NULL, + `ssl_request` mediumtext NULL, + `ssl_cert` mediumtext NULL, + `ssl_bundle` mediumtext NULL, + `ssl_key` mediumtext NULL, + `ssl_action` varchar(16) NULL, + + `active` enum('n','y') NOT NULL DEFAULT 'n', + PRIMARY KEY (`domain_id`), + KEY `server_id` (`server_id`,`domain`), + KEY `domain_active` (`domain`,`active`) +) ENGINE=MyISAM DEFAULT CHARSET=utf8 AUTO_INCREMENT=1 ; + +-- -------------------------------------------------------- + +-- +-- Table structure for table `xmpp_user` +-- + +CREATE TABLE `xmpp_user` ( + `xmppuser_id` int(11) unsigned NOT NULL auto_increment, + `sys_userid` int(11) unsigned NOT NULL default '0', + `sys_groupid` int(11) unsigned NOT NULL default '0', + `sys_perm_user` varchar(5) NOT NULL default '', + `sys_perm_group` varchar(5) NOT NULL default '', + `sys_perm_other` varchar(5) NOT NULL default '', + `server_id` int(11) unsigned NOT NULL default '0', + `jid` varchar(255) NOT NULL default '', + `password` varchar(255) NOT NULL default '', + `active` enum('n','y') NOT NULL DEFAULT 'n', + PRIMARY KEY (`xmppuser_id`), + KEY `server_id` (`server_id`,`jid`), + KEY `jid_active` (`jid`,`active`) +) ENGINE=MyISAM DEFAULT CHARSET=utf8 AUTO_INCREMENT=1 ; + +-- -------------------------------------------------------- + +-- -------------------------------------------------------- +-- -------------------------------------------------------- +-- DB-DATA +-- -------------------------------------------------------- +-- -------------------------------------------------------- + +-- +-- Dumping data for table `aps_settings` +-- + +INSERT INTO `aps_settings` (`id`, `name`, `value`) VALUES(1, 'ignore-php-extension', ''); +INSERT INTO `aps_settings` (`id`, `name`, `value`) VALUES(2, 'ignore-php-configuration', ''); +INSERT INTO `aps_settings` (`id`, `name`, `value`) VALUES(3, 'ignore-webserver-module', ''); + +-- -------------------------------------------------------- + +-- +-- Dumping data for table `country` +-- + +INSERT INTO `country` (`iso`, `name`, `printable_name`, `iso3`, `numcode`, `eu`) VALUES +('AF', 'AFGHANISTAN', 'Afghanistan', 'AFG', 4, 'n'), +('AL', 'ALBANIA', 'Albania', 'ALB', 8, 'n'), +('DZ', 'ALGERIA', 'Algeria', 'DZA', 12, 'n'), +('AS', 'AMERICAN SAMOA', 'American Samoa', 'ASM', 16, 'n'), +('AD', 'ANDORRA', 'Andorra', 'AND', 20, 'n'), +('AO', 'ANGOLA', 'Angola', 'AGO', 24, 'n'), +('AI', 'ANGUILLA', 'Anguilla', 'AIA', 660, 'n'), +('AQ', 'ANTARCTICA', 'Antarctica', NULL, NULL, 'n'), +('AG', 'ANTIGUA AND BARBUDA', 'Antigua and Barbuda', 'ATG', 28, 'n'), +('AR', 'ARGENTINA', 'Argentina', 'ARG', 32, 'n'), +('AM', 'ARMENIA', 'Armenia', 'ARM', 51, 'n'), +('AW', 'ARUBA', 'Aruba', 'ABW', 533, 'n'), +('AU', 'AUSTRALIA', 'Australia', 'AUS', 36, 'n'), +('AT', 'AUSTRIA', 'Austria', 'AUT', 40, 'y'), +('AZ', 'AZERBAIJAN', 'Azerbaijan', 'AZE', 31, 'n'), +('BS', 'BAHAMAS', 'Bahamas', 'BHS', 44, 'n'), +('BH', 'BAHRAIN', 'Bahrain', 'BHR', 48, 'n'), +('BD', 'BANGLADESH', 'Bangladesh', 'BGD', 50, 'n'), +('BB', 'BARBADOS', 'Barbados', 'BRB', 52, 'n'), +('BY', 'BELARUS', 'Belarus', 'BLR', 112, 'n'), +('BE', 'BELGIUM', 'Belgium', 'BEL', 56, 'y'), +('BZ', 'BELIZE', 'Belize', 'BLZ', 84, 'n'), +('BJ', 'BENIN', 'Benin', 'BEN', 204, 'n'), +('BM', 'BERMUDA', 'Bermuda', 'BMU', 60, 'n'), +('BT', 'BHUTAN', 'Bhutan', 'BTN', 64, 'n'), +('BO', 'BOLIVIA', 'Bolivia', 'BOL', 68, 'n'), +('BA', 'BOSNIA AND HERZEGOVINA', 'Bosnia and Herzegovina', 'BIH', 70, 'n'), +('BW', 'BOTSWANA', 'Botswana', 'BWA', 72, 'n'), +('BV', 'BOUVET ISLAND', 'Bouvet Island', NULL, NULL, 'n'), +('BR', 'BRAZIL', 'Brazil', 'BRA', 76, 'n'), +('IO', 'BRITISH INDIAN OCEAN TERRITORY', 'British Indian Ocean Territory', NULL, NULL, 'n'), +('BN', 'BRUNEI DARUSSALAM', 'Brunei Darussalam', 'BRN', 96, 'n'), +('BG', 'BULGARIA', 'Bulgaria', 'BGR', 100, 'y'), +('BF', 'BURKINA FASO', 'Burkina Faso', 'BFA', 854, 'n'), +('BI', 'BURUNDI', 'Burundi', 'BDI', 108, 'n'), +('KH', 'CAMBODIA', 'Cambodia', 'KHM', 116, 'n'), +('CM', 'CAMEROON', 'Cameroon', 'CMR', 120, 'n'), +('CA', 'CANADA', 'Canada', 'CAN', 124, 'n'), +('CV', 'CAPE VERDE', 'Cape Verde', 'CPV', 132, 'n'), +('KY', 'CAYMAN ISLANDS', 'Cayman Islands', 'CYM', 136, 'n'), +('CF', 'CENTRAL AFRICAN REPUBLIC', 'Central African Republic', 'CAF', 140, 'n'), +('TD', 'CHAD', 'Chad', 'TCD', 148, 'n'), +('CL', 'CHILE', 'Chile', 'CHL', 152, 'n'), +('CN', 'CHINA', 'China', 'CHN', 156, 'n'), +('CX', 'CHRISTMAS ISLAND', 'Christmas Island', NULL, NULL, 'n'), +('CC', 'COCOS (KEELING) ISLANDS', 'Cocos (Keeling) Islands', NULL, NULL, 'n'), +('CO', 'COLOMBIA', 'Colombia', 'COL', 170, 'n'), +('KM', 'COMOROS', 'Comoros', 'COM', 174, 'n'), +('CG', 'CONGO', 'Congo', 'COG', 178, 'n'), +('CD', 'CONGO, THE DEMOCRATIC REPUBLIC OF THE', 'Congo, the Democratic Republic of the', 'COD', 180, 'n'), +('CK', 'COOK ISLANDS', 'Cook Islands', 'COK', 184, 'n'), +('CR', 'COSTA RICA', 'Costa Rica', 'CRI', 188, 'n'), +('CI', 'COTE D''IVOIRE', 'Cote D''Ivoire', 'CIV', 384, 'n'), +('HR', 'CROATIA', 'Croatia', 'HRV', 191, 'y'), +('CU', 'CUBA', 'Cuba', 'CUB', 192, 'n'), +('CY', 'CYPRUS', 'Cyprus', 'CYP', 196, 'y'), +('CZ', 'CZECH REPUBLIC', 'Czech Republic', 'CZE', 203, 'y'), +('DK', 'DENMARK', 'Denmark', 'DNK', 208, 'y'), +('DJ', 'DJIBOUTI', 'Djibouti', 'DJI', 262, 'n'), +('DM', 'DOMINICA', 'Dominica', 'DMA', 212, 'n'), +('DO', 'DOMINICAN REPUBLIC', 'Dominican Republic', 'DOM', 214, 'n'), +('EC', 'ECUADOR', 'Ecuador', 'ECU', 218, 'n'), +('EG', 'EGYPT', 'Egypt', 'EGY', 818, 'n'), +('SV', 'EL SALVADOR', 'El Salvador', 'SLV', 222, 'n'), +('GQ', 'EQUATORIAL GUINEA', 'Equatorial Guinea', 'GNQ', 226, 'n'), +('ER', 'ERITREA', 'Eritrea', 'ERI', 232, 'n'), +('EE', 'ESTONIA', 'Estonia', 'EST', 233, 'y'), +('ET', 'ETHIOPIA', 'Ethiopia', 'ETH', 231, 'n'), +('FK', 'FALKLAND ISLANDS (MALVINAS)', 'Falkland Islands (Malvinas)', 'FLK', 238, 'n'), +('FO', 'FAROE ISLANDS', 'Faroe Islands', 'FRO', 234, 'n'), +('FJ', 'FIJI', 'Fiji', 'FJI', 242, 'n'), +('FI', 'FINLAND', 'Finland', 'FIN', 246, 'y'), +('FR', 'FRANCE', 'France', 'FRA', 250, 'y'), +('GF', 'FRENCH GUIANA', 'French Guiana', 'GUF', 254, 'n'), +('PF', 'FRENCH POLYNESIA', 'French Polynesia', 'PYF', 258, 'n'), +('TF', 'FRENCH SOUTHERN TERRITORIES', 'French Southern Territories', NULL, NULL, 'n'), +('GA', 'GABON', 'Gabon', 'GAB', 266, 'n'), +('GM', 'GAMBIA', 'Gambia', 'GMB', 270, 'n'), +('GE', 'GEORGIA', 'Georgia', 'GEO', 268, 'n'), +('DE', 'GERMANY', 'Germany', 'DEU', 276, 'y'), +('GH', 'GHANA', 'Ghana', 'GHA', 288, 'n'), +('GI', 'GIBRALTAR', 'Gibraltar', 'GIB', 292, 'n'), +('GR', 'GREECE', 'Greece', 'GRC', 300, 'y'), +('GL', 'GREENLAND', 'Greenland', 'GRL', 304, 'n'), +('GD', 'GRENADA', 'Grenada', 'GRD', 308, 'n'), +('GP', 'GUADELOUPE', 'Guadeloupe', 'GLP', 312, 'n'), +('GU', 'GUAM', 'Guam', 'GUM', 316, 'n'), +('GT', 'GUATEMALA', 'Guatemala', 'GTM', 320, 'n'), +('GN', 'GUINEA', 'Guinea', 'GIN', 324, 'n'), +('GW', 'GUINEA-BISSAU', 'Guinea-Bissau', 'GNB', 624, 'n'), +('GY', 'GUYANA', 'Guyana', 'GUY', 328, 'n'), +('HT', 'HAITI', 'Haiti', 'HTI', 332, 'n'), +('HM', 'HEARD ISLAND AND MCDONALD ISLANDS', 'Heard Island and Mcdonald Islands', NULL, NULL, 'n'), +('VA', 'HOLY SEE (VATICAN CITY STATE)', 'Holy See (Vatican City State)', 'VAT', 336, 'n'), +('HN', 'HONDURAS', 'Honduras', 'HND', 340, 'n'), +('HK', 'HONG KONG', 'Hong Kong', 'HKG', 344, 'n'), +('HU', 'HUNGARY', 'Hungary', 'HUN', 348, 'y'), +('IS', 'ICELAND', 'Iceland', 'ISL', 352, 'n'), +('IN', 'INDIA', 'India', 'IND', 356, 'n'), +('ID', 'INDONESIA', 'Indonesia', 'IDN', 360, 'n'), +('IR', 'IRAN, ISLAMIC REPUBLIC OF', 'Iran, Islamic Republic of', 'IRN', 364, 'n'), +('IQ', 'IRAQ', 'Iraq', 'IRQ', 368, 'n'), +('IE', 'IRELAND', 'Ireland', 'IRL', 372, 'y'), +('IL', 'ISRAEL', 'Israel', 'ISR', 376, 'n'), +('IT', 'ITALY', 'Italy', 'ITA', 380, 'y'), +('JM', 'JAMAICA', 'Jamaica', 'JAM', 388, 'n'), +('JP', 'JAPAN', 'Japan', 'JPN', 392, 'n'), +('JO', 'JORDAN', 'Jordan', 'JOR', 400, 'n'), +('KZ', 'KAZAKHSTAN', 'Kazakhstan', 'KAZ', 398, 'n'), +('KE', 'KENYA', 'Kenya', 'KEN', 404, 'n'), +('KI', 'KIRIBATI', 'Kiribati', 'KIR', 296, 'n'), +('KP', 'KOREA, DEMOCRATIC PEOPLE''S REPUBLIC OF', 'Korea, Democratic People''s Republic of', 'PRK', 408, 'n'), +('KR', 'KOREA, REPUBLIC OF', 'Korea, Republic of', 'KOR', 410, 'n'), +('KW', 'KUWAIT', 'Kuwait', 'KWT', 414, 'n'), +('KG', 'KYRGYZSTAN', 'Kyrgyzstan', 'KGZ', 417, 'n'), +('LA', 'LAO PEOPLE''S DEMOCRATIC REPUBLIC', 'Lao People''s Democratic Republic', 'LAO', 418, 'n'), +('LV', 'LATVIA', 'Latvia', 'LVA', 428, 'y'), +('LB', 'LEBANON', 'Lebanon', 'LBN', 422, 'n'), +('LS', 'LESOTHO', 'Lesotho', 'LSO', 426, 'n'), +('LR', 'LIBERIA', 'Liberia', 'LBR', 430, 'n'), +('LY', 'LIBYAN ARAB JAMAHIRIYA', 'Libyan Arab Jamahiriya', 'LBY', 434, 'n'), +('LI', 'LIECHTENSTEIN', 'Liechtenstein', 'LIE', 438, 'n'), +('LT', 'LITHUANIA', 'Lithuania', 'LTU', 440, 'y'), +('LU', 'LUXEMBOURG', 'Luxembourg', 'LUX', 442, 'y'), +('MO', 'MACAO', 'Macao', 'MAC', 446, 'n'), +('MK', 'MACEDONIA, THE FORMER YUGOSLAV REPUBLIC OF', 'Macedonia, the Former Yugoslav Republic of', 'MKD', 807, 'n'), +('MG', 'MADAGASCAR', 'Madagascar', 'MDG', 450, 'n'), +('MW', 'MALAWI', 'Malawi', 'MWI', 454, 'n'), +('MY', 'MALAYSIA', 'Malaysia', 'MYS', 458, 'n'), +('MV', 'MALDIVES', 'Maldives', 'MDV', 462, 'n'), +('ML', 'MALI', 'Mali', 'MLI', 466, 'n'), +('MT', 'MALTA', 'Malta', 'MLT', 470, 'y'), +('MH', 'MARSHALL ISLANDS', 'Marshall Islands', 'MHL', 584, 'n'), +('MQ', 'MARTINIQUE', 'Martinique', 'MTQ', 474, 'n'), +('MR', 'MAURITANIA', 'Mauritania', 'MRT', 478, 'n'), +('MU', 'MAURITIUS', 'Mauritius', 'MUS', 480, 'n'), +('YT', 'MAYOTTE', 'Mayotte', NULL, NULL, 'n'), +('MX', 'MEXICO', 'Mexico', 'MEX', 484, 'n'), +('FM', 'MICRONESIA, FEDERATED STATES OF', 'Micronesia, Federated States of', 'FSM', 583, 'n'), +('MD', 'MOLDOVA, REPUBLIC OF', 'Moldova, Republic of', 'MDA', 498, 'n'), +('MC', 'MONACO', 'Monaco', 'MCO', 492, 'n'), +('MN', 'MONGOLIA', 'Mongolia', 'MNG', 496, 'n'), +('MS', 'MONTSERRAT', 'Montserrat', 'MSR', 500, 'n'), +('MA', 'MOROCCO', 'Morocco', 'MAR', 504, 'n'), +('MZ', 'MOZAMBIQUE', 'Mozambique', 'MOZ', 508, 'n'), +('MM', 'MYANMAR', 'Myanmar', 'MMR', 104, 'n'), +('NA', 'NAMIBIA', 'Namibia', 'NAM', 516, 'n'), +('NR', 'NAURU', 'Nauru', 'NRU', 520, 'n'), +('NP', 'NEPAL', 'Nepal', 'NPL', 524, 'n'), +('NL', 'NETHERLANDS', 'Netherlands', 'NLD', 528, 'y'), +('AN', 'NETHERLANDS ANTILLES', 'Netherlands Antilles', 'ANT', 530, 'n'), +('NC', 'NEW CALEDONIA', 'New Caledonia', 'NCL', 540, 'n'), +('NZ', 'NEW ZEALAND', 'New Zealand', 'NZL', 554, 'n'), +('NI', 'NICARAGUA', 'Nicaragua', 'NIC', 558, 'n'), +('NE', 'NIGER', 'Niger', 'NER', 562, 'n'), +('NG', 'NIGERIA', 'Nigeria', 'NGA', 566, 'n'), +('NU', 'NIUE', 'Niue', 'NIU', 570, 'n'), +('NF', 'NORFOLK ISLAND', 'Norfolk Island', 'NFK', 574, 'n'), +('MP', 'NORTHERN MARIANA ISLANDS', 'Northern Mariana Islands', 'MNP', 580, 'n'), +('NO', 'NORWAY', 'Norway', 'NOR', 578, 'n'), +('OM', 'OMAN', 'Oman', 'OMN', 512, 'n'), +('PK', 'PAKISTAN', 'Pakistan', 'PAK', 586, 'n'), +('PW', 'PALAU', 'Palau', 'PLW', 585, 'n'), +('PS', 'PALESTINIAN TERRITORY, OCCUPIED', 'Palestinian Territory, Occupied', NULL, NULL, 'n'), +('PA', 'PANAMA', 'Panama', 'PAN', 591, 'n'), +('PG', 'PAPUA NEW GUINEA', 'Papua New Guinea', 'PNG', 598, 'n'), +('PY', 'PARAGUAY', 'Paraguay', 'PRY', 600, 'n'), +('PE', 'PERU', 'Peru', 'PER', 604, 'n'), +('PH', 'PHILIPPINES', 'Philippines', 'PHL', 608, 'n'), +('PN', 'PITCAIRN', 'Pitcairn', 'PCN', 612, 'n'), +('PL', 'POLAND', 'Poland', 'POL', 616, 'y'), +('PT', 'PORTUGAL', 'Portugal', 'PRT', 620, 'y'), +('PR', 'PUERTO RICO', 'Puerto Rico', 'PRI', 630, 'n'), +('QA', 'QATAR', 'Qatar', 'QAT', 634, 'n'), +('RE', 'REUNION', 'Reunion', 'REU', 638, 'n'), +('RO', 'ROMANIA', 'Romania', 'ROM', 642, 'y'), +('RU', 'RUSSIAN FEDERATION', 'Russian Federation', 'RUS', 643, 'n'), +('RW', 'RWANDA', 'Rwanda', 'RWA', 646, 'n'), +('SH', 'SAINT HELENA', 'Saint Helena', 'SHN', 654, 'n'), +('KN', 'SAINT KITTS AND NEVIS', 'Saint Kitts and Nevis', 'KNA', 659, 'n'), +('LC', 'SAINT LUCIA', 'Saint Lucia', 'LCA', 662, 'n'), +('PM', 'SAINT PIERRE AND MIQUELON', 'Saint Pierre and Miquelon', 'SPM', 666, 'n'), +('VC', 'SAINT VINCENT AND THE GRENADINES', 'Saint Vincent and the Grenadines', 'VCT', 670, 'n'), +('WS', 'SAMOA', 'Samoa', 'WSM', 882, 'n'), +('SM', 'SAN MARINO', 'San Marino', 'SMR', 674, 'n'), +('ST', 'SAO TOME AND PRINCIPE', 'Sao Tome and Principe', 'STP', 678, 'n'), +('SA', 'SAUDI ARABIA', 'Saudi Arabia', 'SAU', 682, 'n'), +('SN', 'SENEGAL', 'Senegal', 'SEN', 686, 'n'), +('RS', 'SERBIA', 'Serbia', 'SRB', 381, 'n'), +('SC', 'SEYCHELLES', 'Seychelles', 'SYC', 690, 'n'), +('SL', 'SIERRA LEONE', 'Sierra Leone', 'SLE', 694, 'n'), +('SG', 'SINGAPORE', 'Singapore', 'SGP', 702, 'n'), +('SK', 'SLOVAKIA', 'Slovakia', 'SVK', 703, 'y'), +('SI', 'SLOVENIA', 'Slovenia', 'SVN', 705, 'y'), +('SB', 'SOLOMON ISLANDS', 'Solomon Islands', 'SLB', 90, 'n'), +('SO', 'SOMALIA', 'Somalia', 'SOM', 706, 'n'), +('ZA', 'SOUTH AFRICA', 'South Africa', 'ZAF', 710, 'n'), +('GS', 'SOUTH GEORGIA AND THE SOUTH SANDWICH ISLANDS', 'South Georgia and the South Sandwich Islands', NULL, NULL, 'n'), +('ES', 'SPAIN', 'Spain', 'ESP', 724, 'y'), +('LK', 'SRI LANKA', 'Sri Lanka', 'LKA', 144, 'n'), +('SD', 'SUDAN', 'Sudan', 'SDN', 736, 'n'), +('SR', 'SURINAME', 'Suriname', 'SUR', 740, 'n'), +('SJ', 'SVALBARD AND JAN MAYEN', 'Svalbard and Jan Mayen', 'SJM', 744, 'n'), +('SZ', 'SWAZILAND', 'Swaziland', 'SWZ', 748, 'n'), +('SE', 'SWEDEN', 'Sweden', 'SWE', 752, 'y'), +('CH', 'SWITZERLAND', 'Switzerland', 'CHE', 756, 'n'), +('SY', 'SYRIAN ARAB REPUBLIC', 'Syrian Arab Republic', 'SYR', 760, 'n'), +('TW', 'TAIWAN, PROVINCE OF CHINA', 'Taiwan, Province of China', 'TWN', 158, 'n'), +('TJ', 'TAJIKISTAN', 'Tajikistan', 'TJK', 762, 'n'), +('TZ', 'TANZANIA, UNITED REPUBLIC OF', 'Tanzania, United Republic of', 'TZA', 834, 'n'), +('TH', 'THAILAND', 'Thailand', 'THA', 764, 'n'), +('TL', 'TIMOR-LESTE', 'Timor-Leste', NULL, NULL, 'n'), +('TG', 'TOGO', 'Togo', 'TGO', 768, 'n'), +('TK', 'TOKELAU', 'Tokelau', 'TKL', 772, 'n'), +('TO', 'TONGA', 'Tonga', 'TON', 776, 'n'), +('TT', 'TRINIDAD AND TOBAGO', 'Trinidad and Tobago', 'TTO', 780, 'n'), +('TN', 'TUNISIA', 'Tunisia', 'TUN', 788, 'n'), +('TR', 'TURKEY', 'Turkey', 'TUR', 792, 'n'), +('TM', 'TURKMENISTAN', 'Turkmenistan', 'TKM', 795, 'n'), +('TC', 'TURKS AND CAICOS ISLANDS', 'Turks and Caicos Islands', 'TCA', 796, 'n'), +('TV', 'TUVALU', 'Tuvalu', 'TUV', 798, 'n'), +('UG', 'UGANDA', 'Uganda', 'UGA', 800, 'n'), +('UA', 'UKRAINE', 'Ukraine', 'UKR', 804, 'n'), +('AE', 'UNITED ARAB EMIRATES', 'United Arab Emirates', 'ARE', 784, 'n'), +('GB', 'UNITED KINGDOM', 'United Kingdom', 'GBR', 826, 'y'), +('US', 'UNITED STATES', 'United States', 'USA', 840, 'n'), +('UM', 'UNITED STATES MINOR OUTLYING ISLANDS', 'United States Minor Outlying Islands', NULL, NULL, 'n'), +('UY', 'URUGUAY', 'Uruguay', 'URY', 858, 'n'), +('UZ', 'UZBEKISTAN', 'Uzbekistan', 'UZB', 860, 'n'), +('VU', 'VANUATU', 'Vanuatu', 'VUT', 548, 'n'), +('VE', 'VENEZUELA', 'Venezuela', 'VEN', 862, 'n'), +('VN', 'VIET NAM', 'Viet Nam', 'VNM', 704, 'n'), +('VG', 'VIRGIN ISLANDS, BRITISH', 'Virgin Islands, British', 'VGB', 92, 'n'), +('VI', 'VIRGIN ISLANDS, U.S.', 'Virgin Islands, U.s.', 'VIR', 850, 'n'), +('WF', 'WALLIS AND FUTUNA', 'Wallis and Futuna', 'WLF', 876, 'n'), +('EH', 'WESTERN SAHARA', 'Western Sahara', 'ESH', 732, 'n'), +('YE', 'YEMEN', 'Yemen', 'YEM', 887, 'n'), +('ZM', 'ZAMBIA', 'Zambia', 'ZMB', 894, 'n'), +('ZW', 'ZIMBABWE', 'Zimbabwe', 'ZWE', 716, 'n'), +('ME', 'MONTENEGRO', 'Montenegro', 'MNE', 382, 'n'); + +-- -------------------------------------------------------- + +-- +-- Dumping data for table `dns_template` +-- + +INSERT INTO `dns_template` (`template_id`, `sys_userid`, `sys_groupid`, `sys_perm_user`, `sys_perm_group`, `sys_perm_other`, `name`, `fields`, `template`, `visible`) VALUES (1, 1, 1, 'riud', 'riud', '', 'Default', 'DOMAIN,IP,NS1,NS2,EMAIL,DKIM,DNSSEC', '[ZONE]\norigin={DOMAIN}.\nns={NS1}.\nmbox={EMAIL}.\nrefresh=7200\nretry=540\nexpire=604800\nminimum=3600\nttl=3600\n\n[DNS_RECORDS]\nA|{DOMAIN}.|{IP}|0|3600\nA|www|{IP}|0|3600\nA|mail|{IP}|0|3600\nNS|{DOMAIN}.|{NS1}.|0|3600\nNS|{DOMAIN}.|{NS2}.|0|3600\nMX|{DOMAIN}.|mail.{DOMAIN}.|10|3600\nTXT|{DOMAIN}.|v=spf1 mx a ~all|0|3600', 'y'); + + +-- -------------------------------------------------------- + +-- +-- Dumping data for table `help_faq` +-- + +INSERT INTO `help_faq` VALUES (1,1,0,'I would like to know ...','Yes, of course.',1,1,'riud','riud','r'); + +-- -------------------------------------------------------- + +-- +-- Dumping data for table `help_faq_sections` +-- + +INSERT INTO `help_faq_sections` VALUES (1,'General',0,NULL,NULL,NULL,NULL,NULL); + +-- -------------------------------------------------------- + +-- +-- Dumping data for table `software_repo` +-- + +INSERT INTO `software_repo` (`software_repo_id`, `sys_userid`, `sys_groupid`, `sys_perm_user`, `sys_perm_group`, `sys_perm_other`, `repo_name`, `repo_url`, `repo_username`, `repo_password`, `active`) VALUES (1, 1, 1, 'riud', 'riud', '', 'ISPConfig Addons', 'http://repo.ispconfig.org/addons/', '', '', 'n'); + +-- -------------------------------------------------------- + +-- +-- Dumping data for table `spamfilter_policy` +-- + +INSERT INTO `spamfilter_policy` (`id`, `sys_userid`, `sys_groupid`, `sys_perm_user`, `sys_perm_group`, `sys_perm_other`, `policy_name`, `virus_lover`, `spam_lover`, `banned_files_lover`, `bad_header_lover`, `bypass_virus_checks`, `bypass_spam_checks`, `bypass_banned_checks`, `bypass_header_checks`, `spam_modifies_subj`, `virus_quarantine_to`, `spam_quarantine_to`, `banned_quarantine_to`, `bad_header_quarantine_to`, `clean_quarantine_to`, `other_quarantine_to`, `spam_tag_level`, `spam_tag2_level`, `spam_kill_level`, `spam_dsn_cutoff_level`, `spam_quarantine_cutoff_level`, `addr_extension_virus`, `addr_extension_spam`, `addr_extension_banned`, `addr_extension_bad_header`, `warnvirusrecip`, `warnbannedrecip`, `warnbadhrecip`, `newvirus_admin`, `virus_admin`, `banned_admin`, `bad_header_admin`, `spam_admin`, `spam_subject_tag`, `spam_subject_tag2`, `message_size_limit`, `banned_rulenames`) VALUES(1, 1, 0, 'riud', 'riud', 'r', 'Non-paying', 'N', 'N', 'N', 'N', 'Y', 'Y', 'Y', 'N', 'Y', '', '', '', '', '', '', 3, 7, 10, 0, 0, '', '', '', '', 'N', 'N', 'N', '', '', '', '', '', '', '', 0, ''); +INSERT INTO `spamfilter_policy` (`id`, `sys_userid`, `sys_groupid`, `sys_perm_user`, `sys_perm_group`, `sys_perm_other`, `policy_name`, `virus_lover`, `spam_lover`, `banned_files_lover`, `bad_header_lover`, `bypass_virus_checks`, `bypass_spam_checks`, `bypass_banned_checks`, `bypass_header_checks`, `spam_modifies_subj`, `virus_quarantine_to`, `spam_quarantine_to`, `banned_quarantine_to`, `bad_header_quarantine_to`, `clean_quarantine_to`, `other_quarantine_to`, `spam_tag_level`, `spam_tag2_level`, `spam_kill_level`, `spam_dsn_cutoff_level`, `spam_quarantine_cutoff_level`, `addr_extension_virus`, `addr_extension_spam`, `addr_extension_banned`, `addr_extension_bad_header`, `warnvirusrecip`, `warnbannedrecip`, `warnbadhrecip`, `newvirus_admin`, `virus_admin`, `banned_admin`, `bad_header_admin`, `spam_admin`, `spam_subject_tag`, `spam_subject_tag2`, `message_size_limit`, `banned_rulenames`) VALUES(2, 1, 0, 'riud', 'riud', 'r', 'Uncensored', 'Y', 'Y', 'Y', 'Y', 'N', 'N', 'N', 'N', 'N', NULL, NULL, NULL, NULL, NULL, NULL, 3, 999, 999, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL); +INSERT INTO `spamfilter_policy` (`id`, `sys_userid`, `sys_groupid`, `sys_perm_user`, `sys_perm_group`, `sys_perm_other`, `policy_name`, `virus_lover`, `spam_lover`, `banned_files_lover`, `bad_header_lover`, `bypass_virus_checks`, `bypass_spam_checks`, `bypass_banned_checks`, `bypass_header_checks`, `spam_modifies_subj`, `virus_quarantine_to`, `spam_quarantine_to`, `banned_quarantine_to`, `bad_header_quarantine_to`, `clean_quarantine_to`, `other_quarantine_to`, `spam_tag_level`, `spam_tag2_level`, `spam_kill_level`, `spam_dsn_cutoff_level`, `spam_quarantine_cutoff_level`, `addr_extension_virus`, `addr_extension_spam`, `addr_extension_banned`, `addr_extension_bad_header`, `warnvirusrecip`, `warnbannedrecip`, `warnbadhrecip`, `newvirus_admin`, `virus_admin`, `banned_admin`, `bad_header_admin`, `spam_admin`, `spam_subject_tag`, `spam_subject_tag2`, `message_size_limit`, `banned_rulenames`) VALUES(3, 1, 0, 'riud', 'riud', 'r', 'Wants all spam', 'N', 'Y', 'N', 'N', 'N', 'N', 'N', 'N', 'Y', NULL, NULL, NULL, NULL, NULL, NULL, 3, 999, 999, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL); +INSERT INTO `spamfilter_policy` (`id`, `sys_userid`, `sys_groupid`, `sys_perm_user`, `sys_perm_group`, `sys_perm_other`, `policy_name`, `virus_lover`, `spam_lover`, `banned_files_lover`, `bad_header_lover`, `bypass_virus_checks`, `bypass_spam_checks`, `bypass_banned_checks`, `bypass_header_checks`, `spam_modifies_subj`, `virus_quarantine_to`, `spam_quarantine_to`, `banned_quarantine_to`, `bad_header_quarantine_to`, `clean_quarantine_to`, `other_quarantine_to`, `spam_tag_level`, `spam_tag2_level`, `spam_kill_level`, `spam_dsn_cutoff_level`, `spam_quarantine_cutoff_level`, `addr_extension_virus`, `addr_extension_spam`, `addr_extension_banned`, `addr_extension_bad_header`, `warnvirusrecip`, `warnbannedrecip`, `warnbadhrecip`, `newvirus_admin`, `virus_admin`, `banned_admin`, `bad_header_admin`, `spam_admin`, `spam_subject_tag`, `spam_subject_tag2`, `message_size_limit`, `banned_rulenames`) VALUES(4, 1, 0, 'riud', 'riud', 'r', 'Wants viruses', 'Y', 'N', 'Y', 'Y', 'N', 'N', 'N', 'N', 'Y', NULL, NULL, NULL, NULL, NULL, NULL, 3, 6.9, 6.9, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL); +INSERT INTO `spamfilter_policy` (`id`, `sys_userid`, `sys_groupid`, `sys_perm_user`, `sys_perm_group`, `sys_perm_other`, `policy_name`, `virus_lover`, `spam_lover`, `banned_files_lover`, `bad_header_lover`, `bypass_virus_checks`, `bypass_spam_checks`, `bypass_banned_checks`, `bypass_header_checks`, `spam_modifies_subj`, `virus_quarantine_to`, `spam_quarantine_to`, `banned_quarantine_to`, `bad_header_quarantine_to`, `clean_quarantine_to`, `other_quarantine_to`, `spam_tag_level`, `spam_tag2_level`, `spam_kill_level`, `spam_dsn_cutoff_level`, `spam_quarantine_cutoff_level`, `addr_extension_virus`, `addr_extension_spam`, `addr_extension_banned`, `addr_extension_bad_header`, `warnvirusrecip`, `warnbannedrecip`, `warnbadhrecip`, `newvirus_admin`, `virus_admin`, `banned_admin`, `bad_header_admin`, `spam_admin`, `spam_subject_tag`, `spam_subject_tag2`, `message_size_limit`, `banned_rulenames`) VALUES(5, 1, 0, 'riud', 'riud', 'r', 'Normal', 'N', 'N', 'N', 'N', 'N', 'N', 'N', 'N', 'Y', '', '', '', '', '', '', 1, 4.5, 50, 0, 0, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, '', '***SPAM*** ', NULL, NULL); +INSERT INTO `spamfilter_policy` (`id`, `sys_userid`, `sys_groupid`, `sys_perm_user`, `sys_perm_group`, `sys_perm_other`, `policy_name`, `virus_lover`, `spam_lover`, `banned_files_lover`, `bad_header_lover`, `bypass_virus_checks`, `bypass_spam_checks`, `bypass_banned_checks`, `bypass_header_checks`, `spam_modifies_subj`, `virus_quarantine_to`, `spam_quarantine_to`, `banned_quarantine_to`, `bad_header_quarantine_to`, `clean_quarantine_to`, `other_quarantine_to`, `spam_tag_level`, `spam_tag2_level`, `spam_kill_level`, `spam_dsn_cutoff_level`, `spam_quarantine_cutoff_level`, `addr_extension_virus`, `addr_extension_spam`, `addr_extension_banned`, `addr_extension_bad_header`, `warnvirusrecip`, `warnbannedrecip`, `warnbadhrecip`, `newvirus_admin`, `virus_admin`, `banned_admin`, `bad_header_admin`, `spam_admin`, `spam_subject_tag`, `spam_subject_tag2`, `message_size_limit`, `banned_rulenames`) VALUES(6, 1, 0, 'riud', 'riud', 'r', 'Trigger happy', 'N', 'N', 'N', 'N', 'N', 'N', 'N', 'N', 'Y', NULL, NULL, NULL, NULL, NULL, NULL, 3, 5, 5, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL); +INSERT INTO `spamfilter_policy` (`id`, `sys_userid`, `sys_groupid`, `sys_perm_user`, `sys_perm_group`, `sys_perm_other`, `policy_name`, `virus_lover`, `spam_lover`, `banned_files_lover`, `bad_header_lover`, `bypass_virus_checks`, `bypass_spam_checks`, `bypass_banned_checks`, `bypass_header_checks`, `spam_modifies_subj`, `virus_quarantine_to`, `spam_quarantine_to`, `banned_quarantine_to`, `bad_header_quarantine_to`, `clean_quarantine_to`, `other_quarantine_to`, `spam_tag_level`, `spam_tag2_level`, `spam_kill_level`, `spam_dsn_cutoff_level`, `spam_quarantine_cutoff_level`, `addr_extension_virus`, `addr_extension_spam`, `addr_extension_banned`, `addr_extension_bad_header`, `warnvirusrecip`, `warnbannedrecip`, `warnbadhrecip`, `newvirus_admin`, `virus_admin`, `banned_admin`, `bad_header_admin`, `spam_admin`, `spam_subject_tag`, `spam_subject_tag2`, `message_size_limit`, `banned_rulenames`) VALUES(7, 1, 0, 'riud', 'riud', 'r', 'Permissive', 'N', 'N', 'N', 'Y', 'N', 'N', 'N', 'N', 'Y', NULL, NULL, NULL, NULL, NULL, NULL, 3, 10, 20, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL); + +-- -------------------------------------------------------- + +-- +-- Dumping data for table `sys_group` +-- + +INSERT INTO `sys_group` (`groupid`, `name`, `description`, `client_id`) VALUES (1, 'admin', 'Administrators group', 0); + +-- -------------------------------------------------------- + +-- +-- Dumping data for table `sys_ini` +-- + +INSERT INTO `sys_ini` (`sysini_id`, `config`, `default_logo`, `custom_logo`) VALUES (1, '', 'data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAMgAAABBCAYAAACU5+uOAAAItUlEQVR42u1dCWwVVRStUJZCK6HsFNAgWpaCJkKICZKApKUFhURQpEnZF4EEUJZYEEpBIamgkQpUQBZRW7YCBqQsggsQEAgKLbIGCYsSCNqyQ8D76h18Hd/MvJk/n/bXc5KT+TNz79vPzNv+/2FhAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAOAe++s0akTsRZxMnE6cGkKcxkwhPofaBPwWRzxxB/EO8UGI8xhxEGoV8EscY8qBKFRcgdoFAhXHC+VUHAbHo5aBQASyrZwL5DoxEjUNeBXI9XIuEMEE1DTgVSA3FA3qIDEtBLnTQiBDUNOAV4EUKhpURojmZQQEAjwKgSwK0bykWQgEU74ABAKBABAIBOIJffoNrkRsS0whDiMO5uNw4gBiSxvfGOJrbDtMOgr2JNa18HmZmETsopnGp4h9xdF0TcQRb8NEPkawTzv2qaWIoybnZYRUBoJD+difGAuBlCy0qsRM4mfERcTFfGygsBUF/xFxE/EQ8RixwIbi/j7il8R3iE8qwuxAXMJxuuFiTvNMYleb/E0gXiI+cOBaISTJrzLxcw2/+8Q5pjjfNNkM0RDILLadpbimw+bsc4DPkxRpuqkZ1orisoBAiguuhkUhPSvZRBA3u6gsK94g9jDFP9aHcAV3EKNNYX8i3RcNJ4M4nTiROJCYykIzbGZKvouk68vYbyS/cUbz+RrJZpzkO5Sv3eajaJhRDvUwg21nKK4VcF5WKPgFH6PZZw/7dJXC6S6lczunfbIQLpeDkZ+lJcoCAikuvChioaLBtfD4JHPiXSFKKexBPoa9Wwr3ael6skMZDGO7K3z+uOSb5OA7mu2KiOGmPH3ADVh8/sohnDS2S1NcG+uiO/kd+8RL146YRWzj359tb0Eg+gIpsHkjFNrQqiF3DZJABDtyuCP5/FuNRlHN8Ofz9nx+XLNR3jR1c4w8TSFGSmnr4FEgU7wKhI51jAeTpv+/ZQGBOAuEu1d/Ku6LV35t9rdigkUjHuMgkHPEecQsxdjjUx4zHbMI+10OdzqfZ2o0iiqSfzgPfMXnzZqN6iTbJ5jytMTU0E97FEhaAAJ5kc/PuJjQOCoIgegJpKbUl5b5vGaBT+A+vOgn5/JYIdFBIOs1wo1kIZl93+P70/h8oUZYFXkmKInPU9h3m2YeT8lvRilPyyWbi3xt4iMWSDc+P4lp3uAIRDxdryjui6dmuujXcr91IDcMmaJv31WISfTrLeJXCUT3yb1a4Ztmalyu61MaZG/XtD9tapRGnpZKNp2lNNZ3KZARAQgk3untBYEEPgbJ92FsIAax34v1AQ2B5Go2BlW60n0QyCC/BWISdJ5LgewWU8k86DdTzMyNh0BKVyAzfB5I93YQyBGeTlW9lQbwIle2Rdgzy7BAxJT6Hb6X6EIgTrznRSCiHli02cwcPor1pbkQiL5AKvOA+ZZPAtkfxFms3j4IZHAwBGJaRPxdjH00BSImJRqKOlEwjtjUo0Dm2pWla4HMzsyqQIxSMKI8C8RkL9YXuhDf5gqcw4NweaZJiGkh8UeLwi+Utkb4KZCrYszkVSDiQRDMN4hkf5DvZ2gKZJyLPJgFkmAjEDEF3EYSWzPeklO8Q8CLQGKJhQquK+eDdLFNZBJxFLEf8XUXFTbcYv2kRhAEIq+vGNO88zTTKVaRzxPrSSvPW11O8yZqCiROSnMsX0sP0ixWops1Hfbx/AaJIz5QcFc5n+ZVNcbxmoWtEsBNB4EU8Tgk32Gv1wneEybeWG1N8RoNbplmOo2neiyxE3/eoun7G9t31hGIqXuzl8/HB0kgxhvhD03/KoEIpIWFQPLK+UJhkWpgKLZP8IKhajNhJg8A7yt8/5K6QoFM8z5mc68Ph3VWM6wTbN+a+AR/vqThV13KYyMXAgmXps9FnK8GSSA17KaXFf7R3gUyd8H/TiBss9fngfQehzfMpkDLgxcS73J4k1y85WrxtTtOjZPuVZA2O55RhLfUId5XpI2UHwZDIHxtp7HtRrVL25SfhWy7z7VAMuYvipszd0FJcfxzHspdrMctGnGcZNPTZ4F0VszqyPSlPHm8JG9f2SDtgF3Nq/rnJZssyXeUdP0CN64c9l/FDfGyZNNNkaeVGmnMM+Vdtd19los8/2e7Ow/E70lxiG7pRmkn8AaeULlcoo4sBDLfKvL0nLUxablfX0hfmfuQ01avI65fUQYEkupRIJHcAMwbDWNNdmLgupV4zeMO3stcIZ1M4aYo4vZt0oO7Locd0ndGTEQofN+QxiZ22+y7W+RpgUb66vOU7232SZXupZqvaYT3Dfu8ZLrejtc47mvkJ9FoVEWKBmW7dyc7ZXD1Nb2TH3JVn5Tqa3r1repzY6/gwWeqhUCGO/XjWSTmjYYVLOzFoP0Z/qJTks033brxrtjmxCbGtK4ivEqKuH2fNuc0tDatIYgna4yGbz2eeTL8WhJbic2aDnmqqpm2KlLeK5vWn0pc0wirGvtUtBkzNdPKDzWe24oGdZX4CzGfWCD4U93GBQdqNSw4Uiny8K9h4buOhlU2scq+Q1G1i233k63hFwBPEfcS04l1FGJoynbH+fgz8ZKFQJLDAMDjk/psCPzw20XxE6mmdLd24d8KNQ14FciUEPl1xHvEhlK6W2j65aOWgUAEUpV4NEREstyDQNqjloFARVKL/xukrAvkGjGC09zGwfYKsQdqF/BTKMnEJcTtxC3EPAU3iic5cRkfjc/ZFvZuuZm4gXjOouG35LQ2Yfutkq/4pfpN/E9TDVCjQGkJqQExho+CjYlRPseRiQE3EIriaMZTw4K3mOJv23J8jme23RsEAMqqQJrb9PnnEbPEVpUAuJD4Mf/PoCqeONQCUJYFElGKf7ojpnqjUQtAWRdJaf1t2w8ofSAUBNKulATSEaUPhIpIRj9icbyFUgdCTSRTeR0i2HwfpQ0AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAQBnG392D9QU+JXhxAAAAAElFTkSuQmCC', ''); + +-- -------------------------------------------------------- + +-- +-- Dumping data for table `sys_user` +-- + +INSERT INTO `sys_theme` (`var_id`, `tpl_name`, `username`, `logo_url`) VALUES (NULL, 'default', 'global', 'themes/default/images/header_logo.png'); +INSERT INTO `sys_theme` (`var_id`, `tpl_name`, `username`, `logo_url`) VALUES (NULL, 'default-v2', 'global', 'themes/default-v2/images/header_logo.png'); + +-- -------------------------------------------------------- + +-- +-- Dumping data for table `sys_user` +-- + +INSERT INTO `sys_user` (`userid`, `sys_userid`, `sys_groupid`, `sys_perm_user`, `sys_perm_group`, `sys_perm_other`, `username`, `passwort`, `modules`, `startmodule`, `app_theme`, `typ`, `active`, `language`, `groups`, `default_group`, `client_id`) VALUES (1, 1, 0, 'riud', 'riud', '', 'admin', '21232f297a57a5a743894a0e4a801fc3', 'dashboard,admin,client,mail,monitor,sites,dns,vm,tools,help', 'dashboard', 'default', 'admin', 1, 'en', '1,2', 1, 0); + +-- -------------------------------------------------------- + +-- +-- Dumping data for table `sys_config` +-- + +INSERT INTO sys_config VALUES ('db','db_version','3.1dev'); +INSERT INTO sys_config VALUES ('interface','session_timeout','0'); + +SET FOREIGN_KEY_CHECKS = 1; diff --git a/install/sql/ispconfig3.sql.rej b/install/sql/ispconfig3.sql.rej new file mode 100644 index 000000000..6c8d2e4a9 --- /dev/null +++ b/install/sql/ispconfig3.sql.rej @@ -0,0 +1,23 @@ +--- install/sql/ispconfig3.sql ++++ install/sql/ispconfig3.sql +@@ -2522,13 +2527,13 @@ INSERT INTO `software_repo` (`software_repo_id`, `sys_userid`, `sys_groupid`, `s + -- Dumping data for table `spamfilter_policy` + -- + +-INSERT INTO `spamfilter_policy` (`id`, `sys_userid`, `sys_groupid`, `sys_perm_user`, `sys_perm_group`, `sys_perm_other`, `policy_name`, `virus_lover`, `spam_lover`, `banned_files_lover`, `bad_header_lover`, `bypass_virus_checks`, `bypass_spam_checks`, `bypass_banned_checks`, `bypass_header_checks`, `spam_modifies_subj`, `virus_quarantine_to`, `spam_quarantine_to`, `banned_quarantine_to`, `bad_header_quarantine_to`, `clean_quarantine_to`, `other_quarantine_to`, `spam_tag_level`, `spam_tag2_level`, `spam_kill_level`, `spam_dsn_cutoff_level`, `spam_quarantine_cutoff_level`, `addr_extension_virus`, `addr_extension_spam`, `addr_extension_banned`, `addr_extension_bad_header`, `warnvirusrecip`, `warnbannedrecip`, `warnbadhrecip`, `newvirus_admin`, `virus_admin`, `banned_admin`, `bad_header_admin`, `spam_admin`, `spam_subject_tag`, `spam_subject_tag2`, `message_size_limit`, `banned_rulenames`) VALUES(1, 1, 0, 'riud', 'riud', 'r', 'Non-paying', 'N', 'N', 'N', 'N', 'Y', 'Y', 'Y', 'N', 'Y', '', '', '', '', '', '', 3, 7, 10, 0, 0, '', '', '', '', 'N', 'N', 'N', '', '', '', '', '', '', '', 0, ''); +-INSERT INTO `spamfilter_policy` (`id`, `sys_userid`, `sys_groupid`, `sys_perm_user`, `sys_perm_group`, `sys_perm_other`, `policy_name`, `virus_lover`, `spam_lover`, `banned_files_lover`, `bad_header_lover`, `bypass_virus_checks`, `bypass_spam_checks`, `bypass_banned_checks`, `bypass_header_checks`, `spam_modifies_subj`, `virus_quarantine_to`, `spam_quarantine_to`, `banned_quarantine_to`, `bad_header_quarantine_to`, `clean_quarantine_to`, `other_quarantine_to`, `spam_tag_level`, `spam_tag2_level`, `spam_kill_level`, `spam_dsn_cutoff_level`, `spam_quarantine_cutoff_level`, `addr_extension_virus`, `addr_extension_spam`, `addr_extension_banned`, `addr_extension_bad_header`, `warnvirusrecip`, `warnbannedrecip`, `warnbadhrecip`, `newvirus_admin`, `virus_admin`, `banned_admin`, `bad_header_admin`, `spam_admin`, `spam_subject_tag`, `spam_subject_tag2`, `message_size_limit`, `banned_rulenames`) VALUES(2, 1, 0, 'riud', 'riud', 'r', 'Uncensored', 'Y', 'Y', 'Y', 'Y', 'N', 'N', 'N', 'N', 'N', NULL, NULL, NULL, NULL, NULL, NULL, 3, 999, 999, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL); +-INSERT INTO `spamfilter_policy` (`id`, `sys_userid`, `sys_groupid`, `sys_perm_user`, `sys_perm_group`, `sys_perm_other`, `policy_name`, `virus_lover`, `spam_lover`, `banned_files_lover`, `bad_header_lover`, `bypass_virus_checks`, `bypass_spam_checks`, `bypass_banned_checks`, `bypass_header_checks`, `spam_modifies_subj`, `virus_quarantine_to`, `spam_quarantine_to`, `banned_quarantine_to`, `bad_header_quarantine_to`, `clean_quarantine_to`, `other_quarantine_to`, `spam_tag_level`, `spam_tag2_level`, `spam_kill_level`, `spam_dsn_cutoff_level`, `spam_quarantine_cutoff_level`, `addr_extension_virus`, `addr_extension_spam`, `addr_extension_banned`, `addr_extension_bad_header`, `warnvirusrecip`, `warnbannedrecip`, `warnbadhrecip`, `newvirus_admin`, `virus_admin`, `banned_admin`, `bad_header_admin`, `spam_admin`, `spam_subject_tag`, `spam_subject_tag2`, `message_size_limit`, `banned_rulenames`) VALUES(3, 1, 0, 'riud', 'riud', 'r', 'Wants all spam', 'N', 'Y', 'N', 'N', 'N', 'N', 'N', 'N', 'Y', NULL, NULL, NULL, NULL, NULL, NULL, 3, 999, 999, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL); +-INSERT INTO `spamfilter_policy` (`id`, `sys_userid`, `sys_groupid`, `sys_perm_user`, `sys_perm_group`, `sys_perm_other`, `policy_name`, `virus_lover`, `spam_lover`, `banned_files_lover`, `bad_header_lover`, `bypass_virus_checks`, `bypass_spam_checks`, `bypass_banned_checks`, `bypass_header_checks`, `spam_modifies_subj`, `virus_quarantine_to`, `spam_quarantine_to`, `banned_quarantine_to`, `bad_header_quarantine_to`, `clean_quarantine_to`, `other_quarantine_to`, `spam_tag_level`, `spam_tag2_level`, `spam_kill_level`, `spam_dsn_cutoff_level`, `spam_quarantine_cutoff_level`, `addr_extension_virus`, `addr_extension_spam`, `addr_extension_banned`, `addr_extension_bad_header`, `warnvirusrecip`, `warnbannedrecip`, `warnbadhrecip`, `newvirus_admin`, `virus_admin`, `banned_admin`, `bad_header_admin`, `spam_admin`, `spam_subject_tag`, `spam_subject_tag2`, `message_size_limit`, `banned_rulenames`) VALUES(4, 1, 0, 'riud', 'riud', 'r', 'Wants viruses', 'Y', 'N', 'Y', 'Y', 'N', 'N', 'N', 'N', 'Y', NULL, NULL, NULL, NULL, NULL, NULL, 3, 6.9, 6.9, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL); +-INSERT INTO `spamfilter_policy` (`id`, `sys_userid`, `sys_groupid`, `sys_perm_user`, `sys_perm_group`, `sys_perm_other`, `policy_name`, `virus_lover`, `spam_lover`, `banned_files_lover`, `bad_header_lover`, `bypass_virus_checks`, `bypass_spam_checks`, `bypass_banned_checks`, `bypass_header_checks`, `spam_modifies_subj`, `virus_quarantine_to`, `spam_quarantine_to`, `banned_quarantine_to`, `bad_header_quarantine_to`, `clean_quarantine_to`, `other_quarantine_to`, `spam_tag_level`, `spam_tag2_level`, `spam_kill_level`, `spam_dsn_cutoff_level`, `spam_quarantine_cutoff_level`, `addr_extension_virus`, `addr_extension_spam`, `addr_extension_banned`, `addr_extension_bad_header`, `warnvirusrecip`, `warnbannedrecip`, `warnbadhrecip`, `newvirus_admin`, `virus_admin`, `banned_admin`, `bad_header_admin`, `spam_admin`, `spam_subject_tag`, `spam_subject_tag2`, `message_size_limit`, `banned_rulenames`) VALUES(5, 1, 0, 'riud', 'riud', 'r', 'Normal', 'N', 'N', 'N', 'N', 'N', 'N', 'N', 'N', 'Y', '', '', '', '', '', '', 1, 4.5, 50, 0, 0, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, '', '***SPAM***', NULL, NULL); +-INSERT INTO `spamfilter_policy` (`id`, `sys_userid`, `sys_groupid`, `sys_perm_user`, `sys_perm_group`, `sys_perm_other`, `policy_name`, `virus_lover`, `spam_lover`, `banned_files_lover`, `bad_header_lover`, `bypass_virus_checks`, `bypass_spam_checks`, `bypass_banned_checks`, `bypass_header_checks`, `spam_modifies_subj`, `virus_quarantine_to`, `spam_quarantine_to`, `banned_quarantine_to`, `bad_header_quarantine_to`, `clean_quarantine_to`, `other_quarantine_to`, `spam_tag_level`, `spam_tag2_level`, `spam_kill_level`, `spam_dsn_cutoff_level`, `spam_quarantine_cutoff_level`, `addr_extension_virus`, `addr_extension_spam`, `addr_extension_banned`, `addr_extension_bad_header`, `warnvirusrecip`, `warnbannedrecip`, `warnbadhrecip`, `newvirus_admin`, `virus_admin`, `banned_admin`, `bad_header_admin`, `spam_admin`, `spam_subject_tag`, `spam_subject_tag2`, `message_size_limit`, `banned_rulenames`) VALUES(6, 1, 0, 'riud', 'riud', 'r', 'Trigger happy', 'N', 'N', 'N', 'N', 'N', 'N', 'N', 'N', 'Y', NULL, NULL, NULL, NULL, NULL, NULL, 3, 5, 5, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL); +-INSERT INTO `spamfilter_policy` (`id`, `sys_userid`, `sys_groupid`, `sys_perm_user`, `sys_perm_group`, `sys_perm_other`, `policy_name`, `virus_lover`, `spam_lover`, `banned_files_lover`, `bad_header_lover`, `bypass_virus_checks`, `bypass_spam_checks`, `bypass_banned_checks`, `bypass_header_checks`, `spam_modifies_subj`, `virus_quarantine_to`, `spam_quarantine_to`, `banned_quarantine_to`, `bad_header_quarantine_to`, `clean_quarantine_to`, `other_quarantine_to`, `spam_tag_level`, `spam_tag2_level`, `spam_kill_level`, `spam_dsn_cutoff_level`, `spam_quarantine_cutoff_level`, `addr_extension_virus`, `addr_extension_spam`, `addr_extension_banned`, `addr_extension_bad_header`, `warnvirusrecip`, `warnbannedrecip`, `warnbadhrecip`, `newvirus_admin`, `virus_admin`, `banned_admin`, `bad_header_admin`, `spam_admin`, `spam_subject_tag`, `spam_subject_tag2`, `message_size_limit`, `banned_rulenames`) VALUES(7, 1, 0, 'riud', 'riud', 'r', 'Permissive', 'N', 'N', 'N', 'Y', 'N', 'N', 'N', 'N', 'Y', NULL, NULL, NULL, NULL, NULL, NULL, 3, 10, 20, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL); ++INSERT INTO `spamfilter_policy` (`id`, `sys_userid`, `sys_groupid`, `sys_perm_user`, `sys_perm_group`, `sys_perm_other`, `policy_name`, `virus_lover`, `spam_lover`, `banned_files_lover`, `bad_header_lover`, `bypass_virus_checks`, `bypass_spam_checks`, `bypass_banned_checks`, `bypass_header_checks`, `spam_modifies_subj`, `virus_quarantine_to`, `spam_quarantine_to`, `banned_quarantine_to`, `bad_header_quarantine_to`, `clean_quarantine_to`, `other_quarantine_to`, `spam_tag_level`, `spam_tag2_level`, `spam_kill_level`, `spam_dsn_cutoff_level`, `spam_quarantine_cutoff_level`, `addr_extension_virus`, `addr_extension_spam`, `addr_extension_banned`, `addr_extension_bad_header`, `warnvirusrecip`, `warnbannedrecip`, `warnbadhrecip`, `newvirus_admin`, `virus_admin`, `banned_admin`, `bad_header_admin`, `spam_admin`, `spam_subject_tag`, `spam_subject_tag2`, `message_size_limit`, `banned_rulenames`, `rspamd_greylisting`, `rspamd_spam_greylisting_level`, `rspamd_spam_tag_level`, `rspamd_spam_tag_method`, `rspamd_spam_kill_level`) VALUES(1, 1, 0, 'riud', 'riud', 'r', 'Non-paying', 'N', 'N', 'N', 'N', 'Y', 'Y', 'Y', 'N', 'Y', '', '', '', '', '', '', 3, 7, 10, 0, 0, '', '', '', '', 'N', 'N', 'N', '', '', '', '', '', '', '', 0, '', 'n', 6.00, 8.00, 'rewrite_subject', 12.00); ++INSERT INTO `spamfilter_policy` (`id`, `sys_userid`, `sys_groupid`, `sys_perm_user`, `sys_perm_group`, `sys_perm_other`, `policy_name`, `virus_lover`, `spam_lover`, `banned_files_lover`, `bad_header_lover`, `bypass_virus_checks`, `bypass_spam_checks`, `bypass_banned_checks`, `bypass_header_checks`, `spam_modifies_subj`, `virus_quarantine_to`, `spam_quarantine_to`, `banned_quarantine_to`, `bad_header_quarantine_to`, `clean_quarantine_to`, `other_quarantine_to`, `spam_tag_level`, `spam_tag2_level`, `spam_kill_level`, `spam_dsn_cutoff_level`, `spam_quarantine_cutoff_level`, `addr_extension_virus`, `addr_extension_spam`, `addr_extension_banned`, `addr_extension_bad_header`, `warnvirusrecip`, `warnbannedrecip`, `warnbadhrecip`, `newvirus_admin`, `virus_admin`, `banned_admin`, `bad_header_admin`, `spam_admin`, `spam_subject_tag`, `spam_subject_tag2`, `message_size_limit`, `banned_rulenames`, `rspamd_greylisting`, `rspamd_spam_greylisting_level`, `rspamd_spam_tag_level`, `rspamd_spam_tag_method`, `rspamd_spam_kill_level`) VALUES(2, 1, 0, 'riud', 'riud', 'r', 'Uncensored', 'Y', 'Y', 'Y', 'Y', 'N', 'N', 'N', 'N', 'N', NULL, NULL, NULL, NULL, NULL, NULL, 3, 999, 999, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 'n', 999.00, 999.00, 'rewrite_subject', 999.00); ++INSERT INTO `spamfilter_policy` (`id`, `sys_userid`, `sys_groupid`, `sys_perm_user`, `sys_perm_group`, `sys_perm_other`, `policy_name`, `virus_lover`, `spam_lover`, `banned_files_lover`, `bad_header_lover`, `bypass_virus_checks`, `bypass_spam_checks`, `bypass_banned_checks`, `bypass_header_checks`, `spam_modifies_subj`, `virus_quarantine_to`, `spam_quarantine_to`, `banned_quarantine_to`, `bad_header_quarantine_to`, `clean_quarantine_to`, `other_quarantine_to`, `spam_tag_level`, `spam_tag2_level`, `spam_kill_level`, `spam_dsn_cutoff_level`, `spam_quarantine_cutoff_level`, `addr_extension_virus`, `addr_extension_spam`, `addr_extension_banned`, `addr_extension_bad_header`, `warnvirusrecip`, `warnbannedrecip`, `warnbadhrecip`, `newvirus_admin`, `virus_admin`, `banned_admin`, `bad_header_admin`, `spam_admin`, `spam_subject_tag`, `spam_subject_tag2`, `message_size_limit`, `banned_rulenames`, `rspamd_greylisting`, `rspamd_spam_greylisting_level`, `rspamd_spam_tag_level`, `rspamd_spam_tag_method`, `rspamd_spam_kill_level`) VALUES(3, 1, 0, 'riud', 'riud', 'r', 'Wants all spam', 'N', 'Y', 'N', 'N', 'N', 'N', 'N', 'N', 'Y', NULL, NULL, NULL, NULL, NULL, NULL, 3, 999, 999, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 'n', 999.00, 999.00, 'rewrite_subject', 999.00); ++INSERT INTO `spamfilter_policy` (`id`, `sys_userid`, `sys_groupid`, `sys_perm_user`, `sys_perm_group`, `sys_perm_other`, `policy_name`, `virus_lover`, `spam_lover`, `banned_files_lover`, `bad_header_lover`, `bypass_virus_checks`, `bypass_spam_checks`, `bypass_banned_checks`, `bypass_header_checks`, `spam_modifies_subj`, `virus_quarantine_to`, `spam_quarantine_to`, `banned_quarantine_to`, `bad_header_quarantine_to`, `clean_quarantine_to`, `other_quarantine_to`, `spam_tag_level`, `spam_tag2_level`, `spam_kill_level`, `spam_dsn_cutoff_level`, `spam_quarantine_cutoff_level`, `addr_extension_virus`, `addr_extension_spam`, `addr_extension_banned`, `addr_extension_bad_header`, `warnvirusrecip`, `warnbannedrecip`, `warnbadhrecip`, `newvirus_admin`, `virus_admin`, `banned_admin`, `bad_header_admin`, `spam_admin`, `spam_subject_tag`, `spam_subject_tag2`, `message_size_limit`, `banned_rulenames`, `rspamd_greylisting`, `rspamd_spam_greylisting_level`, `rspamd_spam_tag_level`, `rspamd_spam_tag_method`, `rspamd_spam_kill_level`) VALUES(4, 1, 0, 'riud', 'riud', 'r', 'Wants viruses', 'Y', 'N', 'Y', 'Y', 'N', 'N', 'N', 'N', 'Y', NULL, NULL, NULL, NULL, NULL, NULL, 3, 6.9, 6.9, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 'y', 4.00, 6.00, 'rewrite_subject', 10.00); ++INSERT INTO `spamfilter_policy` (`id`, `sys_userid`, `sys_groupid`, `sys_perm_user`, `sys_perm_group`, `sys_perm_other`, `policy_name`, `virus_lover`, `spam_lover`, `banned_files_lover`, `bad_header_lover`, `bypass_virus_checks`, `bypass_spam_checks`, `bypass_banned_checks`, `bypass_header_checks`, `spam_modifies_subj`, `virus_quarantine_to`, `spam_quarantine_to`, `banned_quarantine_to`, `bad_header_quarantine_to`, `clean_quarantine_to`, `other_quarantine_to`, `spam_tag_level`, `spam_tag2_level`, `spam_kill_level`, `spam_dsn_cutoff_level`, `spam_quarantine_cutoff_level`, `addr_extension_virus`, `addr_extension_spam`, `addr_extension_banned`, `addr_extension_bad_header`, `warnvirusrecip`, `warnbannedrecip`, `warnbadhrecip`, `newvirus_admin`, `virus_admin`, `banned_admin`, `bad_header_admin`, `spam_admin`, `spam_subject_tag`, `spam_subject_tag2`, `message_size_limit`, `banned_rulenames`, `rspamd_greylisting`, `rspamd_spam_greylisting_level`, `rspamd_spam_tag_level`, `rspamd_spam_tag_method`, `rspamd_spam_kill_level`) VALUES(5, 1, 0, 'riud', 'riud', 'r', 'Normal', 'N', 'N', 'N', 'N', 'N', 'N', 'N', 'N', 'Y', '', '', '', '', '', '', 1, 4.5, 50, 0, 0, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, '', '***SPAM***', NULL, NULL, 'y', 4.00, 6.00, 'rewrite_subject', 10.00); ++INSERT INTO `spamfilter_policy` (`id`, `sys_userid`, `sys_groupid`, `sys_perm_user`, `sys_perm_group`, `sys_perm_other`, `policy_name`, `virus_lover`, `spam_lover`, `banned_files_lover`, `bad_header_lover`, `bypass_virus_checks`, `bypass_spam_checks`, `bypass_banned_checks`, `bypass_header_checks`, `spam_modifies_subj`, `virus_quarantine_to`, `spam_quarantine_to`, `banned_quarantine_to`, `bad_header_quarantine_to`, `clean_quarantine_to`, `other_quarantine_to`, `spam_tag_level`, `spam_tag2_level`, `spam_kill_level`, `spam_dsn_cutoff_level`, `spam_quarantine_cutoff_level`, `addr_extension_virus`, `addr_extension_spam`, `addr_extension_banned`, `addr_extension_bad_header`, `warnvirusrecip`, `warnbannedrecip`, `warnbadhrecip`, `newvirus_admin`, `virus_admin`, `banned_admin`, `bad_header_admin`, `spam_admin`, `spam_subject_tag`, `spam_subject_tag2`, `message_size_limit`, `banned_rulenames`, `rspamd_greylisting`, `rspamd_spam_greylisting_level`, `rspamd_spam_tag_level`, `rspamd_spam_tag_method`, `rspamd_spam_kill_level`) VALUES(6, 1, 0, 'riud', 'riud', 'r', 'Trigger happy', 'N', 'N', 'N', 'N', 'N', 'N', 'N', 'N', 'Y', NULL, NULL, NULL, NULL, NULL, NULL, 3, 5, 5, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 'y', 2.00, 4.00, 'rewrite_subject', 8.00); ++INSERT INTO `spamfilter_policy` (`id`, `sys_userid`, `sys_groupid`, `sys_perm_user`, `sys_perm_group`, `sys_perm_other`, `policy_name`, `virus_lover`, `spam_lover`, `banned_files_lover`, `bad_header_lover`, `bypass_virus_checks`, `bypass_spam_checks`, `bypass_banned_checks`, `bypass_header_checks`, `spam_modifies_subj`, `virus_quarantine_to`, `spam_quarantine_to`, `banned_quarantine_to`, `bad_header_quarantine_to`, `clean_quarantine_to`, `other_quarantine_to`, `spam_tag_level`, `spam_tag2_level`, `spam_kill_level`, `spam_dsn_cutoff_level`, `spam_quarantine_cutoff_level`, `addr_extension_virus`, `addr_extension_spam`, `addr_extension_banned`, `addr_extension_bad_header`, `warnvirusrecip`, `warnbannedrecip`, `warnbadhrecip`, `newvirus_admin`, `virus_admin`, `banned_admin`, `bad_header_admin`, `spam_admin`, `spam_subject_tag`, `spam_subject_tag2`, `message_size_limit`, `banned_rulenames`, `rspamd_greylisting`, `rspamd_spam_greylisting_level`, `rspamd_spam_tag_level`, `rspamd_spam_tag_method`, `rspamd_spam_kill_level`) VALUES(7, 1, 0, 'riud', 'riud', 'r', 'Permissive', 'N', 'N', 'N', 'Y', 'N', 'N', 'N', 'N', 'Y', NULL, NULL, NULL, NULL, NULL, NULL, 3, 10, 20, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 'n', 7.00, 10.00, 'rewrite_subject', 20.00); + + -- -------------------------------------------------------- + diff --git a/install/tpl/rspamd_antivirus.conf.master b/install/tpl/rspamd_antivirus.conf.master new file mode 100644 index 000000000..f88d81ac7 --- /dev/null +++ b/install/tpl/rspamd_antivirus.conf.master @@ -0,0 +1,30 @@ +clamav { + # If set force this action if any virus is found (default unset: no action is forced) + #action = "reject"; + # if `true` only messages with non-image attachments will be checked (default true) + scan_mime_parts = true; + # If `max_size` is set, messages > n bytes in size are not scanned + #max_size = 20000000; + # symbol to add (add it to metric if you want non-zero weight) + symbol = "CLAM_VIRUS"; + # type of scanner: "clamav", "fprot", "sophos" or "savapi" + type = "clamav"; + # For "savapi" you must also specify the following variable + #product_id = 12345; + # You can enable logging for clean messages + #log_clean = true; + # servers to query (if port is unspecified, scanner-specific default is used) + # can be specified multiple times to pool servers + # can be set to a path to a unix socket + # Enable this in local.d/antivirus.conf + #servers = "127.0.0.1:3310"; + servers = "/var/run/clamav/clamd.ctl"; + # if `patterns` is specified virus name will be matched against provided regexes and the related + # symbol will be yielded if a match is found. If no match is found, default symbol is yielded. + patterns { + # symbol_name = "pattern"; + JUST_EICAR = "^Eicar-Test-Signature$"; + } + # `whitelist` points to a map of IP addresses. Mail from these addresses is not scanned. + whitelist = "/etc/rspamd/antivirus.wl"; +} \ No newline at end of file diff --git a/install/tpl/rspamd_classifier-bayes.conf.master b/install/tpl/rspamd_classifier-bayes.conf.master new file mode 100644 index 000000000..1688d57e2 --- /dev/null +++ b/install/tpl/rspamd_classifier-bayes.conf.master @@ -0,0 +1,3 @@ +autolearn = [-0.01, 5.00]; +per_user = true; +per_language = true; \ No newline at end of file diff --git a/install/tpl/rspamd_dkim_signing.conf.master b/install/tpl/rspamd_dkim_signing.conf.master new file mode 100644 index 000000000..0e55a7ead --- /dev/null +++ b/install/tpl/rspamd_dkim_signing.conf.master @@ -0,0 +1,2 @@ +path = "/$domain.private"; +selector = "default"; \ No newline at end of file diff --git a/install/tpl/rspamd_greylist.conf.master b/install/tpl/rspamd_greylist.conf.master new file mode 100644 index 000000000..74ea715a2 --- /dev/null +++ b/install/tpl/rspamd_greylist.conf.master @@ -0,0 +1 @@ +servers = "127.0.0.1:6379"; \ No newline at end of file diff --git a/install/tpl/rspamd_groups.conf.master b/install/tpl/rspamd_groups.conf.master new file mode 100644 index 000000000..62a986533 --- /dev/null +++ b/install/tpl/rspamd_groups.conf.master @@ -0,0 +1,4 @@ +group "antivirus" { + .include(try=true; priority=1; duplicate=merge) "$LOCAL_CONFDIR/local.d/antivirus_group.conf" + .include(try=true; priority=10) "$LOCAL_CONFDIR/override.d/antivirus_group.conf" +} diff --git a/install/tpl/rspamd_milter_headers.conf.master b/install/tpl/rspamd_milter_headers.conf.master new file mode 100644 index 000000000..d399bbf4e --- /dev/null +++ b/install/tpl/rspamd_milter_headers.conf.master @@ -0,0 +1,2 @@ +use = ["x-spamd-bar", "x-spam-level", "authentication-results"]; +authenticated_headers = ["authentication-results"]; \ No newline at end of file diff --git a/install/tpl/rspamd_mx_check.conf.master b/install/tpl/rspamd_mx_check.conf.master new file mode 100644 index 000000000..0a628f9c8 --- /dev/null +++ b/install/tpl/rspamd_mx_check.conf.master @@ -0,0 +1,9 @@ +enabled = true; +servers = "localhost"; +key_prefix = "rmx"; +symbol_bad_mx = "MX_INVALID"; +symbol_no_mx = "MX_MISSING"; +symbol_good_mx = "MX_GOOD"; +expire = 86400; +expire_novalid = 7200; +greylist_invalid = false; \ No newline at end of file diff --git a/install/tpl/rspamd_neural.conf.master b/install/tpl/rspamd_neural.conf.master new file mode 100644 index 000000000..76f8a6d34 --- /dev/null +++ b/install/tpl/rspamd_neural.conf.master @@ -0,0 +1,31 @@ +servers = 127.0.0.1:6379; +enabled = true; + +rules { + "LONG" { + train { + max_trains = 5000; + max_usages = 200; + max_iterations = 25; + learning_rate = 0.01, + spam_score = 10; + ham_score = -2; + } + symbol_spam = "NEURAL_SPAM_LONG"; + symbol_ham = "NEURAL_HAM_LONG"; + ann_expire = 100d; + } + "SHORT" { + train { + max_trains = 100; + max_usages = 2; + max_iterations = 25; + learning_rate = 0.01, + spam_score = 10; + ham_score = -2; + } + symbol_spam = "NEURAL_SPAM_SHORT"; + symbol_ham = "NEURAL_HAM_SHORT"; + ann_expire = 1d; + } +} \ No newline at end of file diff --git a/install/tpl/rspamd_neural_group.conf.master b/install/tpl/rspamd_neural_group.conf.master new file mode 100644 index 000000000..5aabdefaf --- /dev/null +++ b/install/tpl/rspamd_neural_group.conf.master @@ -0,0 +1,18 @@ +symbols = { + "NEURAL_SPAM_LONG" { + weight = 1.0; # sample weight + description = "Neural network spam (long)"; + } + "NEURAL_HAM_LONG" { + weight = -2.0; # sample weight + description = "Neural network ham (long)"; + } + "NEURAL_SPAM_SHORT" { + weight = 0.5; # sample weight + description = "Neural network spam (short)"; + } + "NEURAL_HAM_SHORT" { + weight = -1.0; # sample weight + description = "Neural network ham (short)"; + } +} diff --git a/install/tpl/rspamd_options.inc.master b/install/tpl/rspamd_options.inc.master new file mode 100644 index 000000000..69e40365b --- /dev/null +++ b/install/tpl/rspamd_options.inc.master @@ -0,0 +1,5 @@ +local_addrs = "127.0.0.0/8, ::1"; + +dns { + nameserver = ["127.0.0.1:53:10"]; +} diff --git a/install/tpl/rspamd_override_rbl.conf.master b/install/tpl/rspamd_override_rbl.conf.master new file mode 100644 index 000000000..310e72283 --- /dev/null +++ b/install/tpl/rspamd_override_rbl.conf.master @@ -0,0 +1,53 @@ +# RBL +symbols = { + "RBL_SENDERSCORE" { + weight = 4.0; + description = "From address is listed in senderscore.com BL"; + } + "RBL_SPAMHAUS_SBL" { + weight = 2.0; + description = "From address is listed in zen sbl"; + } + "RBL_SPAMHAUS_CSS" { + weight = 2.0; + description = "From address is listed in zen css"; + } + "RBL_SPAMHAUS_XBL" { + weight = 4.0; + description = "From address is listed in zen xbl"; + } + "RBL_SPAMHAUS_XBL_ANY" { + weight = 4.0; + description = "From or receive address is listed in zen xbl (any list)"; + } + "RBL_SPAMHAUS_PBL" { + weight = 2.0; + description = "From address is listed in zen pbl (ISP list)"; + } + "RBL_SPAMHAUS_DROP" { + weight = 7.0; + description = "From address is listed in zen drop bl"; + } + "RECEIVED_SPAMHAUS_XBL" { + weight = 3.0; + description = "Received address is listed in zen xbl"; + one_shot = true; + } + "RBL_MAILSPIKE_WORST" { + weight = 2.0; + description = "From address is listed in RBL - worst possible reputation"; + } + "RBL_MAILSPIKE_VERYBAD" { + weight = 1.5; + description = "From address is listed in RBL - very bad reputation"; + } + "RBL_MAILSPIKE_BAD" { + weight = 1.0; + description = "From address is listed in RBL - bad reputation"; + } + "RBL_SEM" { + weight = 1.0; + description = "Address is listed in Spameatingmonkey RBL"; + } + # /RBL +} diff --git a/install/tpl/rspamd_override_surbl.conf.master b/install/tpl/rspamd_override_surbl.conf.master new file mode 100644 index 000000000..30676a46f --- /dev/null +++ b/install/tpl/rspamd_override_surbl.conf.master @@ -0,0 +1,108 @@ +symbols = { + # SURBL + "PH_SURBL_MULTI" { + weight = 5.5; + description = "SURBL: Phishing sites"; + } + "MW_SURBL_MULTI" { + weight = 5.5; + description = "SURBL: Malware sites"; + } + "ABUSE_SURBL" { + weight = 5.5; + description = "SURBL: ABUSE"; + } + "CRACKED_SURBL" { + weight = 4.0; + description = "SURBL: cracked site"; + } + "RAMBLER_URIBL" { + weight = 4.5; + description = "Rambler uribl"; + one_shot = true; + } + "RAMBLER_EMAILBL" { + weight = 9.5; + description = "Rambler emailbl"; + one_shot = true; + } + "MSBL_EBL" { + weight = 7.5; + description = "MSBL emailbl"; + one_shot = true; + } + "SEM_URIBL" { + weight = 3.5; + description = "Spameatingmonkey uribl"; + } + "SEM_URIBL_FRESH15" { + weight = 3.0; + description = "Spameatingmonkey uribl. Domains registered in the last 15 days (.AERO,.BIZ,.COM,.INFO,.NAME,.NET,.PRO,.SK,.TEL,.US)"; + } + "DBL" { + weight = 0.0; + description = "DBL unknown result"; + } + "DBL_SPAM" { + weight = 6.5; + description = "DBL uribl spam"; + } + "DBL_PHISH" { + weight = 6.5; + description = "DBL uribl phishing"; + } + "DBL_MALWARE" { + weight = 6.5; + description = "DBL uribl malware"; + } + "DBL_BOTNET" { + weight = 5.5; + description = "DBL uribl botnet C&C domain"; + } + "DBL_ABUSE" { + weight = 6.5; + description = "DBL uribl abused legit spam"; + } + "DBL_ABUSE_REDIR" { + weight = 1.5; + description = "DBL uribl abused spammed redirector domain"; + } + "DBL_ABUSE_PHISH" { + weight = 7.5; + description = "DBL uribl abused legit phish"; + } + "DBL_ABUSE_MALWARE" { + weight = 7.5; + description = "DBL uribl abused legit malware"; + } + "DBL_ABUSE_BOTNET" { + weight = 5.5; + description = "DBL uribl abused legit botnet C&C"; + } + "URIBL_BLACK" { + weight = 7.5; + description = "uribl.com black url"; + } + "URIBL_RED" { + weight = 3.5; + description = "uribl.com red url"; + } + "URIBL_GREY" { + weight = 1.5; + description = "uribl.com grey url"; + one_shot = true; + } + "URIBL_SBL" { + weight = 6.5; + description = "Spamhaus SBL URIBL"; + } + "URIBL_SBL_CSS" { + weight = 6.5; + description = "Spamhaus SBL CSS URIBL"; + } + "RBL_SARBL_BAD" { + weight = 2.5; + description = "A domain listed in the mail is blacklisted in SARBL"; + } + # /SURBL +} diff --git a/install/tpl/rspamd_redis.conf.master b/install/tpl/rspamd_redis.conf.master new file mode 100644 index 000000000..b908af9f5 --- /dev/null +++ b/install/tpl/rspamd_redis.conf.master @@ -0,0 +1 @@ +servers = "127.0.0.1"; \ No newline at end of file diff --git a/install/tpl/rspamd_symbols_antivirus.conf.master b/install/tpl/rspamd_symbols_antivirus.conf.master new file mode 100644 index 000000000..8c2d93d89 --- /dev/null +++ b/install/tpl/rspamd_symbols_antivirus.conf.master @@ -0,0 +1,15 @@ +subject = "***SPAM*** %s"; +symbols = { + "CLAM_VIRUS" { + weight = 50; + description = "Clamav has found a virus."; + } + "JUST_EICAR" { + weight = 50; + description = "Clamav has found a virus."; + } + "R_DUMMY" { + weight = 0.0; + description = "Dummy symbol"; + } +} \ No newline at end of file diff --git a/install/tpl/rspamd_users.conf.master b/install/tpl/rspamd_users.conf.master new file mode 100644 index 000000000..73d437d6c --- /dev/null +++ b/install/tpl/rspamd_users.conf.master @@ -0,0 +1,43 @@ +settings { + authenticated { + priority = 10; + authenticated = yes; + #apply "default" { groups_disabled = ["rbl", "spf"]; } + apply "default" { + #symbols_enabled = []; + symbols_disabled = []; + #groups_enabled = []; + groups_disabled = ["rbl"]; + } + } + whitelist { + priority = 10; + rcpt = "postmaster"; + rcpt = "hostmaster"; + rcpt = "abuse"; + want_spam = yes; + } + whitelist-ip { + priority = 10; + + ip = ""; + + + want_spam = yes; + } +# whitelist-timmehosting { +# priority = 20; +# from = "@xxx"; +# from = "@xxx"; +# want_spam = yes; +# } + whitelist-ca { + priority = 20; + from = "@comodo.com"; + from = "@geotrust.com"; + from = "@geotrusteurope.com"; + want_spam = yes; + } + .include(try=true; glob=true) "$LOCAL_CONFDIR/local.d/users/*.conf" + .include(try=true; priority=1,duplicate=merge) "$LOCAL_CONFDIR/local.d/users.local.conf" +} diff --git a/install/tpl/rspamd_users.inc.conf.master b/install/tpl/rspamd_users.inc.conf.master new file mode 120000 index 000000000..30bb52fd8 --- /dev/null +++ b/install/tpl/rspamd_users.inc.conf.master @@ -0,0 +1 @@ +../../server/conf/rspamd_users.inc.conf.master \ No newline at end of file diff --git a/install/tpl/rspamd_wblist.inc.conf.master b/install/tpl/rspamd_wblist.inc.conf.master new file mode 100644 index 000000000..fc06127ea --- /dev/null +++ b/install/tpl/rspamd_wblist.inc.conf.master @@ -0,0 +1,18 @@ +spamfilter_wblist- { + priority = ; + from = ""; + rcpt = ""; + + want_spam = yes; + + apply "default" { + R_DUMMY = 999.0; + actions { + reject = 0.2; + add_header = 0.1; + greylist = 0.1; + rewrite_subject = 0.1; + } + } + +} \ No newline at end of file diff --git a/install/tpl/rspamd_worker-controller.inc.master b/install/tpl/rspamd_worker-controller.inc.master new file mode 120000 index 000000000..dae193236 --- /dev/null +++ b/install/tpl/rspamd_worker-controller.inc.master @@ -0,0 +1 @@ +../../server/conf/rspamd_worker-controller.inc.master \ No newline at end of file diff --git a/install/tpl/server.ini.master b/install/tpl/server.ini.master index 6441609ca..36f157d8e 100644 --- a/install/tpl/server.ini.master +++ b/install/tpl/server.ini.master @@ -38,6 +38,8 @@ homedir_path=/var/vmail maildir_format=maildir dkim_path=/var/lib/amavis/dkim dkim_strength=1024 +content_filter=amavis +rspamd_password= pop3_imap_daemon=courier mail_filter_syntax=maildrop mailuser_uid=5000 diff --git a/install/update.php b/install/update.php index 104aab57f..42ddd625f 100644 --- a/install/update.php +++ b/install/update.php @@ -397,6 +397,12 @@ if($reconfigure_services_answer == 'yes' || $reconfigure_services_answer == 'sel $inst->configure_amavis(); } + //** Configure Rspamd + if($conf['rspamd']['installed'] == true && $inst->reconfigure_app('Rspamd', $reconfigure_services_answer)) { + swriteln('Configuring Rspamd'); + $inst->configure_rspamd(); + } + //** Configure Getmail if ($inst->reconfigure_app('Getmail', $reconfigure_services_answer)) { swriteln('Configuring Getmail'); @@ -532,6 +538,7 @@ if($reconfigure_services_answer == 'yes') { if($conf['postfix']['installed'] == true && $conf['postfix']['init_script'] != '') system($inst->getinitcommand($conf['postfix']['init_script'], 'restart')); if($conf['saslauthd']['installed'] == true && $conf['saslauthd']['init_script'] != '') system($inst->getinitcommand($conf['saslauthd']['init_script'], 'restart')); if($conf['amavis']['installed'] == true && $conf['amavis']['init_script'] != '') system($inst->getinitcommand($conf['amavis']['init_script'], 'restart')); + if($conf['rspamd']['installed'] == true && $conf['rspamd']['init_script'] != '') system($inst->getinitcommand($conf['rspamd']['init_script'], 'restart')); if($conf['clamav']['installed'] == true && $conf['clamav']['init_script'] != '') system($inst->getinitcommand($conf['clamav']['init_script'], 'restart')); if($conf['courier']['installed'] == true){ if($conf['courier']['courier-authdaemon'] != '') system($inst->getinitcommand($conf['courier']['courier-authdaemon'], 'restart')); diff --git a/interface/lib/lang/de.lng b/interface/lib/lang/de.lng index 6f2e2d00b..bc217c30b 100644 --- a/interface/lib/lang/de.lng +++ b/interface/lib/lang/de.lng @@ -158,4 +158,5 @@ $wb['security_check1_txt'] = 'Sicherheitsüberprüfung für:'; $wb['security_check2_txt'] = 'fehlgeschlagen.'; $wb['select_directive_snippet_txt'] = 'Direktiven Schnipsel'; $wb['select_master_directive_snippet_txt'] = 'Master Direktiven Schnipsel'; -?> +$wb['add_header_txt'] = 'Header (fügt "X-Spam: Yes" hinzu)'; +$wb['rewrite_subject_txt'] = 'Betreff (fügt "***SPAM***" am Anfang hinzu)'; diff --git a/interface/web/admin/form/server_config.tform.php b/interface/web/admin/form/server_config.tform.php index 1a6c8070c..1c19d0928 100644 --- a/interface/web/admin/form/server_config.tform.php +++ b/interface/web/admin/form/server_config.tform.php @@ -466,6 +466,29 @@ $form["tabs"]['mail'] = array( 'width' => '40', 'maxlength' => '255' ), + 'content_filter' => array( + 'datatype' => 'VARCHAR', + 'formtype' => 'SELECT', + 'default' => 'rspamd', + 'value' => array('amavisd' => 'Amavisd', 'rspamd' => 'Rspamd') + ), + 'rspamd_password' => array( + 'datatype' => 'VARCHAR', + 'formtype' => 'TEXT', + 'default' => '', + 'value' => '', + 'width' => '40', + 'maxlength' => '255', + 'filters' => array( 0 => array( 'event' => 'SAVE', + 'type' => 'TRIM'), + ), + ), + 'rspamd_available' => array( + 'datatype' => 'VARCHAR', + 'formtype' => 'CHECKBOX', + 'default' => 'n', + 'value' => array(0 => 'n', 1 => 'y') + ), 'dkim_path' => array( 'datatype' => 'VARCHAR', 'formtype' => 'TEXT', @@ -1953,4 +1976,10 @@ $form["tabs"]['rescue'] = array( //################################# ) ); -?> + +/*$mail_config = $app->getconf->get_server_config($conf['server_id'], 'mail'); +if(!isset($mail_config['rspamd_available']) || $mail_config['rspamd_available'] != 'y') { + $form['tabs']['mail']['fields']['content_filter']['default'] = 'amavisd'; + unset($form['tabs']['mail']['fields']['content_filter']['value']['rspamd']); + unset($form['tabs']['mail']['fields']['rspamd_password']); +}*/ \ No newline at end of file diff --git a/interface/web/admin/form/server_config.tform.php.orig b/interface/web/admin/form/server_config.tform.php.orig new file mode 100644 index 000000000..1a6c8070c --- /dev/null +++ b/interface/web/admin/form/server_config.tform.php.orig @@ -0,0 +1,1956 @@ + 0 id must match with id of current user +$form["auth_preset"]["groupid"] = 0; // 0 = default groupid of the user, > 0 id must match with groupid of current user +$form["auth_preset"]["perm_user"] = 'riud'; //r = read, i = insert, u = update, d = delete +$form["auth_preset"]["perm_group"] = 'riud'; //r = read, i = insert, u = update, d = delete +$form["auth_preset"]["perm_other"] = ''; //r = read, i = insert, u = update, d = delete + +$form["tabs"]['server'] = array( + 'title' => "Server", + 'width' => 70, + 'template' => "templates/server_config_server_edit.htm", + 'fields' => array( + //################################# + // Begin Datatable fields + //################################# + 'auto_network_configuration' => array( + 'datatype' => 'VARCHAR', + 'formtype' => 'CHECKBOX', + 'default' => 'n', + 'value' => array(0 => 'n', 1 => 'y') + ), + 'ip_address' => array( + 'datatype' => 'VARCHAR', + 'formtype' => 'TEXT', + 'default' => '192.168.0.105', + 'validators' => array(0 => array('type' => 'ISIPV4', + 'errmsg' => 'ip_address_error_wrong'), + ), + 'value' => '', + 'width' => '15', + 'maxlength' => '255' + ), + 'netmask' => array( + 'datatype' => 'VARCHAR', + 'formtype' => 'TEXT', + 'default' => '255.255.255.0', + 'validators' => array(0 => array('type' => 'ISIPV4', + 'errmsg' => 'netmask_error_wrong'), + ), + 'value' => '', + 'width' => '15', + 'maxlength' => '255' + ), + 'v6_prefix' => array( + 'datatype' => 'VARCHAR', + 'formtype' => 'TEXT', + 'validators' => array( 0 => array('type' => 'ISV6PREFIX', + 'errmsg' => 'v6_prefix_wrong'), + 1 => array('type' => 'V6PREFIXEND', + 'errmsg' => 'v6_prefix_end'), + 2 => array('type' => 'V6PREFIXLENGTH', + 'errmsg' => 'v6_prefix_length') + ), + 'default' => '' + ), + 'gateway' => array( + 'datatype' => 'VARCHAR', + 'formtype' => 'TEXT', + 'default' => '192.168.0.1', + 'validators' => array(0 => array('type' => 'ISIPV4', + 'errmsg' => 'gateway_error_wrong'), + ), + 'value' => '', + 'width' => '15', + 'maxlength' => '255' + ), + 'firewall' => array( + 'datatype' => 'VARCHAR', + 'formtype' => 'SELECT', + 'default' => 'bastille', + 'value' => array('bastille' => 'bastille', 'ufw' => 'ufw'), + 'width' => '40', + 'maxlength' => '255' + ), + 'hostname' => array( + 'datatype' => 'VARCHAR', + 'formtype' => 'TEXT', + 'default' => 'server1.domain.tld', + 'filters' => array( 0 => array( 'event' => 'SAVE', + 'type' => 'IDNTOASCII'), + 1 => array( 'event' => 'SHOW', + 'type' => 'IDNTOUTF8'), + 2 => array( 'event' => 'SAVE', + 'type' => 'TOLOWER') + ), + 'validators' => array( 0 => array('type' => 'NOTEMPTY', + 'errmsg' => 'hostname_error_empty'), + 1 => array ('type' => 'REGEX', + 'regex' => '/^[\w\.\-]{2,255}\.[a-zA-Z0-9\-]{2,30}$/', + 'errmsg'=> 'hostname_error_regex'), + ), + 'value' => '', + 'width' => '40', + 'maxlength' => '255' + ), + 'nameservers' => array( + 'datatype' => 'VARCHAR', + 'formtype' => 'TEXT', + 'default' => '192.168.0.1,192.168.0.2', + 'validators' => array(0 => array('type' => 'NOTEMPTY', + 'errmsg' => 'nameservers_error_empty'), + ), + 'filters' => array( + 0 => array( 'event' => 'SAVE', + 'type' => 'STRIPTAGS'), + 1 => array( 'event' => 'SAVE', + 'type' => 'STRIPNL') + ), + 'value' => '', + 'width' => '40', + 'maxlength' => '255' + ), + 'loglevel' => array( + 'datatype' => 'INTEGER', + 'formtype' => 'SELECT', + 'default' => '2', + 'value' => array('0' => 'Debug', '1' => 'Warnings', '2' => 'Errors'), + 'width' => '40', + 'maxlength' => '255' + ), + 'admin_notify_events' => array( + 'datatype' => 'INTEGER', + 'formtype' => 'SELECT', + 'default' => '1', + 'value' => array('3' => 'no_notifications_txt', '0' => 'Debug', '1' => 'Warnings', '2' => 'Errors'), + 'width' => '40', + 'maxlength' => '255' + ), + 'backup_dir' => array( + 'datatype' => 'VARCHAR', + 'formtype' => 'TEXT', + 'default' => '/var/backup', + 'validators' => array( 0 => array ( 'type' => 'REGEX', + 'regex' => "/(|^\\/{1,2}(?:[\\w-]+[.]?\\/?){5,128})$/", + 'errmsg'=> 'backup_dir_error_regex'), + ), + 'value' => '', + 'width' => '40', + 'maxlength' => '255' + ), + 'backup_tmp' => array( + 'datatype' => 'VARCHAR', + 'formtype' => 'TEXT', + 'default' => '/tmp/', + 'validators' => array( 0 => array('type' => 'NOTEMPTY', + 'errmsg' => 'tmpdir_path_error_empty'), + 1 => array ( 'type' => 'REGEX', + 'regex' => "/^\/[a-zA-Z0-9\.\-\_\/]{3,128}$/", + 'errmsg'=> 'tmpdir_path_error_regex'), + ), + 'value' => '', + 'width' => '40', + 'maxlength' => '255' + ), + 'backup_dir_is_mount' => array( + 'datatype' => 'VARCHAR', + 'formtype' => 'CHECKBOX', + 'default' => 'y', + 'value' => array(0 => 'n', 1 => 'y') + ), + 'backup_mode' => array( + 'datatype' => 'VARCHAR', + 'formtype' => 'SELECT', + 'default' => 'userzip', + 'value' => array('userzip' => 'backup_mode_userzip', 'rootgz' => 'backup_mode_rootgz'), + 'width' => '40', + 'maxlength' => '255' + ), + 'backup_time' => array( + 'datatype' => 'VARCHAR', + 'formtype' => 'SELECT', + 'default' => '0:00', + 'value' => array( '0:00' => '0:00h', + '0:15' => '0:15h', + '0:30' => '0:30h', + '0:45' => '0:45h', + '1:00' => '1:00h', + '1:15' => '1:15h', + '1:30' => '1:30h', + '1:45' => '1:45h', + '2:00' => '2:00h', + '2:15' => '2:15h', + '2:30' => '2:30h', + '2:45' => '2:45h', + '3:00' => '3:00h', + '3:15' => '3:15h', + '3:30' => '3:30h', + '3:45' => '3:45h', + '4:00' => '4:00h', + '4:15' => '4:15h', + '4:30' => '4:30h', + '4:45' => '4:45h', + '5:00' => '5:00h', + '5:15' => '5:15h', + '5:30' => '5:30h', + '5:45' => '5:45h', + '6:00' => '6:00h', + '6:15' => '6:15h', + '6:30' => '6:30h', + '6:45' => '6:45h', + '7:00' => '7:00h', + '7:15' => '7:15h', + '7:30' => '7:30h', + '7:45' => '7:45h', + '8:00' => '8:00h', + '8:15' => '8:15h', + '8:30' => '8:30h', + '8:45' => '8:45h', + '9:00' => '9:00h', + '9:15' => '9:15h', + '9:30' => '9:30h', + '9:45' => '9:45h', + '10:00' => '10:00h', + '10:15' => '10:15h', + '10:30' => '10:30h', + '10:45' => '10:45h', + '11:00' => '11:00h', + '11:15' => '11:15h', + '11:30' => '11:30h', + '11:45' => '11:45h', + '12:00' => '12:00h', + '12:15' => '12:15h', + '12:30' => '12:30h', + '12:45' => '12:45h', + '13:00' => '13:00h', + '13:15' => '13:15h', + '13:30' => '13:30h', + '13:45' => '13:45h', + '14:00' => '14:00h', + '14:15' => '14:15h', + '14:30' => '14:30h', + '14:45' => '14:45h', + '15:00' => '15:00h', + '15:15' => '15:15h', + '15:30' => '15:30h', + '15:45' => '15:45h', + '16:00' => '16:00h', + '16:15' => '16:15h', + '16:30' => '16:30h', + '16:45' => '16:45h', + '17:00' => '17:00h', + '17:15' => '17:15h', + '17:30' => '17:30h', + '17:45' => '17:45h', + '18:00' => '18:00h', + '18:15' => '18:15h', + '18:30' => '18:30h', + '18:45' => '18:45h', + '19:00' => '19:00h', + '19:15' => '19:15h', + '19:30' => '19:30h', + '19:45' => '19:45h', + '20:00' => '20:00h', + '20:15' => '20:15h', + '20:30' => '20:30h', + '20:45' => '20:45h', + '21:00' => '21:00h', + '21:15' => '21:15h', + '21:30' => '21:30h', + '21:45' => '21:45h', + '22:00' => '22:00h', + '22:15' => '22:15h', + '22:30' => '22:30h', + '22:45' => '22:45h', + '23:00' => '23:00h', + '23:15' => '23:15h', + '23:30' => '23:30h', + '23:45' => '23:45h', + ), + 'width' => '40', + 'maxlength' => '255' + ), + 'backup_delete' => array( + 'datatype' => 'VARCHAR', + 'formtype' => 'CHECKBOX', + 'default' => 'y', + 'value' => array(0 => 'n', 1 => 'y') + ), + 'monit_url' => array( + 'datatype' => 'VARCHAR', + 'formtype' => 'TEXT', + 'default' => '', + 'validators' => array ( 0 => array ( 'type' => 'REGEX', + 'regex' => '/^[0-9a-zA-Z\:\/\-\.\[\]]{0,255}$/', + 'errmsg'=> 'monit_url_error_regex'), + ), + 'value' => '', + 'width' => '40', + 'maxlength' => '255' + ), + 'monit_user' => array( + 'datatype' => 'VARCHAR', + 'formtype' => 'TEXT', + 'filters' => array( + 0 => array( 'event' => 'SAVE', + 'type' => 'STRIPTAGS'), + 1 => array( 'event' => 'SAVE', + 'type' => 'STRIPNL') + ), + 'default' => '', + 'value' => '', + 'width' => '40', + 'maxlength' => '255' + ), + 'monit_password' => array( + 'datatype' => 'VARCHAR', + 'formtype' => 'TEXT', + 'default' => '', + 'value' => '', + 'width' => '40', + 'maxlength' => '255' + ), + 'munin_url' => array( + 'datatype' => 'VARCHAR', + 'formtype' => 'TEXT', + 'default' => '', + 'validators' => array ( 0 => array ( 'type' => 'REGEX', + 'regex' => '/^[0-9a-zA-Z\:\/\-\.\[\]]{0,255}$/', + 'errmsg'=> 'munin_url_error_regex'), + ), + 'value' => '', + 'width' => '40', + 'maxlength' => '255' + ), + 'munin_user' => array( + 'datatype' => 'VARCHAR', + 'formtype' => 'TEXT', + 'filters' => array( + 0 => array( 'event' => 'SAVE', + 'type' => 'STRIPTAGS'), + 1 => array( 'event' => 'SAVE', + 'type' => 'STRIPNL') + ), + 'default' => '', + 'value' => '', + 'width' => '40', + 'maxlength' => '255' + ), + 'munin_password' => array( + 'datatype' => 'VARCHAR', + 'formtype' => 'TEXT', + 'default' => '', + 'value' => '', + 'width' => '40', + 'maxlength' => '255' + ), + 'monitor_system_updates' => array( + 'datatype' => 'VARCHAR', + 'formtype' => 'CHECKBOX', + 'default' => 'y', + 'value' => array(0 => 'n', 1 => 'y') + ), + 'log_retention' => array ( + 'datatype' => 'INTEGER', + 'formtype' => 'TEXT', + 'validators' => array ( 0 => array ( 'type' => 'ISPOSITIVE', + 'errmsg'=> 'log_retention_error_ispositive'), + ), + 'default' => '30', + 'value' => '', + 'width' => '4', + 'maxlength' => '4' + ), + 'migration_mode' => array( + 'datatype' => 'VARCHAR', + 'formtype' => 'CHECKBOX', + 'default' => 'n', + 'value' => array(0 => 'n', 1 => 'y') + ), + //################################# + // ENDE Datatable fields + //################################# + ) +); + +$form["tabs"]['mail'] = array( + 'title' => "Mail", + 'width' => 60, + 'template' => "templates/server_config_mail_edit.htm", + 'fields' => array( + //################################# + // Begin Datatable fields + //################################# + 'module' => array( + 'datatype' => 'VARCHAR', + 'formtype' => 'SELECT', + 'default' => '', + 'value' => array('postfix_mysql' => 'postfix_mysql') + ), + 'maildir_path' => array( + 'datatype' => 'VARCHAR', + 'formtype' => 'TEXT', + 'default' => '/home/vmail/[domain]/[localpart]/', + 'validators' => array( 0 => array('type' => 'NOTEMPTY', + 'errmsg' => 'maildir_path_error_empty'), + 1 => array ( 'type' => 'REGEX', + 'regex' => '/^\/[a-zA-Z0-9\.\-\_\/\[\]]{5,128}$/', + 'errmsg'=> 'maildir_path_error_regex'), + ), + 'value' => '', + 'width' => '40', + 'maxlength' => '255' + ), + 'maildir_format' => array( + 'datatype' => 'VARCHAR', + 'formtype' => 'SELECT', + 'default' => '20', + 'value' => array('maildir' => 'Maildir', 'mdbox' => 'mdbox') + ), + 'homedir_path' => array( + 'datatype' => 'VARCHAR', + 'formtype' => 'TEXT', + 'default' => '/home/vmail/', + 'validators' => array( 0 => array('type' => 'NOTEMPTY', + 'errmsg' => 'homedir_path_error_empty'), + 1 => array ( 'type' => 'REGEX', + 'regex' => '/^\/[a-zA-Z0-9\.\-\_\/]{5,128}$/', + 'errmsg'=> 'homedir_path_error_regex'), + ), + 'value' => '', + 'width' => '40', + 'maxlength' => '255' + ), + 'dkim_path' => array( + 'datatype' => 'VARCHAR', + 'formtype' => 'TEXT', + 'filters' => array( + 0 => array( 'event' => 'SAVE', + 'type' => 'STRIPTAGS'), + 1 => array( 'event' => 'SAVE', + 'type' => 'STRIPNL') + ), + 'default' => '/var/lib/amavis/dkim', + 'value' => '', + 'width' => '40', + 'maxlength' => '255' + ), + 'dkim_strength' => array( + 'datatype' => 'INTEGER', + 'formtype' => 'SELECT', + 'default' => '2048', + 'value' => array('1024' => 'weak (1024)', '2048' => 'normal (2048)', '4096' => 'strong (4096)') + ), + 'relayhost_password' => array( + 'datatype' => 'VARCHAR', + 'formtype' => 'TEXT', + 'default' => '', + 'value' => '', + 'width' => '40', + 'maxlength' => '255' + ), + + 'pop3_imap_daemon' => array( + 'datatype' => 'VARCHAR', + 'formtype' => 'SELECT', + 'default' => '20', + 'value' => array('courier' => 'Courier', 'dovecot' => 'Dovecot') + ), + 'mail_filter_syntax' => array( + 'datatype' => 'VARCHAR', + 'formtype' => 'SELECT', + 'default' => '20', + 'value' => array('maildrop' => 'Maildrop', 'sieve' => 'Sieve') + ), + 'mailuser_uid' => array( + 'datatype' => 'INTEGER', + 'formtype' => 'TEXT', + 'default' => '5000', + 'validators' => array( 0 => array('type' => 'NOTEMPTY', + 'errmsg' => 'mailuser_uid_error_empty'), + 1 => array('type' => 'RANGE', + 'range' => '1999:', + 'errmsg' => 'mailuser_uid_error_range'), + ), + 'value' => '', + 'width' => '10', + 'maxlength' => '255' + ), + 'mailuser_gid' => array( + 'datatype' => 'INTEGER', + 'formtype' => 'TEXT', + 'default' => '5000', + 'validators' => array( 0 => array('type' => 'NOTEMPTY', + 'errmsg' => 'mailuser_gid_error_empty'), + 1 => array('type' => 'RANGE', + 'range' => '1999:', + 'errmsg' => 'mailuser_gid_error_range'), + ), + 'value' => '', + 'width' => '10', + 'maxlength' => '255' + ), + 'mailuser_name' => array( + 'datatype' => 'VARCHAR', + 'formtype' => 'TEXT', + 'default' => 'vmail', + 'validators' => array( 0 => array('type' => 'NOTEMPTY', + 'errmsg' => 'mailuser_name_error_empty'), + 1 => array ( 'type' => 'REGEX', + 'regex' => '/^(?!ispconfig|root)([a-zA-Z0-9]{1,20})$/', + 'errmsg'=> 'mailuser_name_error_regex'), + ), + 'value' => '', + 'width' => '10', + 'maxlength' => '255' + ), + 'mailuser_group' => array( + 'datatype' => 'VARCHAR', + 'formtype' => 'TEXT', + 'default' => 'vmail', + 'validators' => array( 0 => array('type' => 'NOTEMPTY', + 'errmsg' => 'mailuser_group_error_empty'), + 1 => array ( 'type' => 'REGEX', + 'regex' => '/^(?!ispconfig|root)([a-zA-Z0-9]{1,20})$/', + 'errmsg'=> 'mailuser_group_name_error_regex'), + ), + 'value' => '', + 'width' => '10', + 'maxlength' => '255' + ), + 'mailbox_virtual_uidgid_maps' => array( + 'datatype' => 'VARCHAR', + 'formtype' => 'CHECKBOX', + 'validators' => array (0 => array ( 'type' => 'CUSTOM', + 'class' => 'validate_server_mail_config', + 'function' => 'mailbox_virtual_uidgid_maps'), + ), + 'default' => 'n', + 'value' => array(0 => 'n', 1 => 'y') + ), + 'relayhost' => array( + 'datatype' => 'VARCHAR', + 'formtype' => 'TEXT', + 'filters' => array( + 0 => array( 'event' => 'SAVE', + 'type' => 'STRIPTAGS'), + 1 => array( 'event' => 'SAVE', + 'type' => 'STRIPNL') + ), + 'default' => '', + 'value' => '', + 'width' => '40', + 'maxlength' => '255' + ), + 'relayhost_user' => array( + 'datatype' => 'VARCHAR', + 'formtype' => 'TEXT', + 'filters' => array( + 0 => array( 'event' => 'SAVE', + 'type' => 'STRIPTAGS'), + 1 => array( 'event' => 'SAVE', + 'type' => 'STRIPNL') + ), + 'default' => '', + 'value' => '', + 'width' => '40', + 'maxlength' => '255' + ), + 'relayhost_password' => array( + 'datatype' => 'VARCHAR', + 'formtype' => 'TEXT', + 'default' => '', + 'value' => '', + 'width' => '40', + 'maxlength' => '255' + ), + 'reject_sender_login_mismatch' => array ( + 'datatype' => 'VARCHAR', + 'formtype' => 'CHECKBOX', + 'default' => 'n', + 'value' => array(0 => 'n', 1 => 'y') + ), + 'mailbox_size_limit' => array( + 'datatype' => 'INTEGER', + 'formtype' => 'TEXT', + 'default' => '0', + 'value' => '', + 'width' => '10', + 'maxlength' => '15' + ), + 'message_size_limit' => array( + 'datatype' => 'INTEGER', + 'formtype' => 'TEXT', + 'default' => '0', + 'value' => '', + 'width' => '10', + 'maxlength' => '15' + ), + 'mailbox_quota_stats' => array ( + 'datatype' => 'VARCHAR', + 'formtype' => 'CHECKBOX', + 'default' => 'y', + 'value' => array(0 => 'n', 1 => 'y') + ), + 'realtime_blackhole_list' => array( + 'datatype' => 'VARCHAR', + 'formtype' => 'TEXT', + 'default' => '', + 'validators' => array ( 0 => array ( 'type' => 'REGEX', + 'regex' => '/^((([a-zA-Z0-9]|[a-zA-Z0-9][a-zA-Z0-9\-]*[a-zA-Z0-9])\.)+([A-Za-z0-9]|[A-Za-z0-9][A-Za-z0-9\-]*[A-Za-z0-9])(,\s*(([a-zA-Z0-9]|[a-zA-Z0-9][a-zA-Z0-9\-]*[a-zA-Z0-9])\.)+([A-Za-z0-9]|[A-Za-z0-9][A-Za-z0-9\-]*[A-Za-z0-9]))*)?$/', + 'errmsg'=> 'rbl_error_regex'), + ), + 'value' => '', + 'width' => '40', + 'maxlength' => '255' + ), + 'overquota_notify_admin' => array( + 'datatype' => 'VARCHAR', + 'formtype' => 'CHECKBOX', + 'default' => 'y', + 'value' => array(0 => 'n', 1 => 'y') + ), + 'overquota_notify_client' => array( + 'datatype' => 'VARCHAR', + 'formtype' => 'CHECKBOX', + 'default' => 'y', + 'value' => array(0 => 'n', 1 => 'y') + ), + 'overquota_notify_freq' => array( + 'datatype' => 'INTEGER', + 'formtype' => 'TEXT', + 'default' => '7', + 'value' => '', + 'width' => '20', + 'maxlength' => '255' + ), + 'overquota_notify_onok' => array( + 'datatype' => 'VARCHAR', + 'formtype' => 'CHECKBOX', + 'default' => 'n', + 'value' => array(0 => 'n', 1 => 'y') + ), + //################################# + // ENDE Datatable fields + //################################# + ) +); + +$form["tabs"]['getmail'] = array( + 'title' => "Getmail", + 'width' => 80, + 'template' => "templates/server_config_getmail_edit.htm", + 'fields' => array( + //################################# + // Begin Datatable fields + //################################# + 'getmail_config_dir' => array( + 'datatype' => 'VARCHAR', + 'formtype' => 'TEXT', + 'default' => '', + 'validators' => array( 0 => array('type' => 'NOTEMPTY', + 'errmsg' => 'getmail_config_dir_error_empty'), + 1 => array ( 'type' => 'REGEX', + 'regex' => '/^\/[a-zA-Z0-9\.\-\_\/]{5,128}$/', + 'errmsg'=> 'getmail_config_dir_error_regex'), + ), + 'value' => '', + 'width' => '40', + 'maxlength' => '255' + ), + //################################# + // ENDE Datatable fields + //################################# + ) +); + +$form["tabs"]['web'] = array( + 'title' => "Web", + 'width' => 60, + 'template' => "templates/server_config_web_edit.htm", + 'fields' => array( + //################################# + // Begin Datatable fields + //################################# + 'server_type' => array( + 'datatype' => 'VARCHAR', + 'formtype' => 'SELECT', + 'default' => 'apache', + 'value' => array('apache' => 'Apache', 'nginx' => 'Nginx') + ), + 'website_basedir' => array( + 'datatype' => 'VARCHAR', + 'formtype' => 'TEXT', + 'default' => '', + 'validators' => array( 0 => array('type' => 'NOTEMPTY', + 'errmsg' => 'website_basedir_error_empty'), + 1 => array ( 'type' => 'REGEX', + 'regex' => '/^\/[a-zA-Z0-9\.\-\_\/]{5,128}$/', + 'errmsg'=> 'website_basedir_error_regex'), + ), + 'value' => '', + 'width' => '40', + 'maxlength' => '255' + ), + 'website_path' => array( + 'datatype' => 'VARCHAR', + 'formtype' => 'TEXT', + 'default' => '', + 'validators' => array( 0 => array( 'type' => 'NOTEMPTY', + 'errmsg' => 'website_path_error_empty'), + 1 => array ( 'type' => 'REGEX', + 'regex' => '/^\/[a-zA-Z0-9\.\-\_\/\[\]]{5,128}$/', + 'errmsg'=> 'website_path_error_regex'), + ), + 'value' => '', + 'width' => '40', + 'maxlength' => '255' + ), + 'website_symlinks' => array( + 'datatype' => 'VARCHAR', + 'formtype' => 'TEXT', + 'default' => '', + 'validators' => array( 0 => array('type' => 'NOTEMPTY', + 'errmsg' => 'website_symlinks_error_empty'), + 1 => array ( 'type' => 'REGEX', + 'regex' => '/^\/[a-zA-Z0-9\.\-\_\/\[\]\:]{5,128}$/', + 'errmsg'=> 'website_symlinks_error_regex'), + ), + 'value' => '', + 'width' => '40', + 'maxlength' => '255' + ), + 'website_symlinks_rel' => array ( + 'datatype' => 'VARCHAR', + 'formtype' => 'CHECKBOX', + 'default' => 'n', + 'value' => array(0 => 'n', 1 => 'y') + ), + 'network_filesystem' => array ( + 'datatype' => 'VARCHAR', + 'formtype' => 'CHECKBOX', + 'default' => 'n', + 'value' => array(0 => 'n', 1 => 'y') + ), + 'website_autoalias' => array( + 'datatype' => 'VARCHAR', + 'formtype' => 'TEXT', + 'filters' => array( + 0 => array( 'event' => 'SAVE', + 'type' => 'STRIPTAGS'), + 1 => array( 'event' => 'SAVE', + 'type' => 'STRIPNL') + ), + 'default' => '', + 'value' => '', + 'width' => '40', + 'maxlength' => '255' + ), + 'vhost_rewrite_v6' => array ( + 'datatype' => 'VARCHAR', + 'formtype' => 'CHECKBOX', + 'default' => 'n', + 'value' => array(0 => 'n',1 => 'y') + ), + 'vhost_conf_dir' => array( + 'datatype' => 'VARCHAR', + 'formtype' => 'TEXT', + 'default' => '', + 'validators' => array( 0 => array('type' => 'NOTEMPTY', + 'errmsg' => 'vhost_conf_dir_error_empty'), + 1 => array ( 'type' => 'REGEX', + 'regex' => '/^\/[a-zA-Z0-9\.\-\_\/]{5,128}$/', + 'errmsg'=> 'vhost_conf_dir_error_regex'), + ), + 'value' => '', + 'width' => '40', + 'maxlength' => '255' + ), + 'vhost_conf_enabled_dir' => array( + 'datatype' => 'VARCHAR', + 'formtype' => 'TEXT', + 'default' => '', + 'validators' => array( 0 => array('type' => 'NOTEMPTY', + 'errmsg' => 'vhost_conf_enabled_dir_error_empty'), + 1 => array ( 'type' => 'REGEX', + 'regex' => '/^\/[a-zA-Z0-9\.\-\_\/]{5,128}$/', + 'errmsg'=> 'vhost_conf_enabled_dir_error_regex'), + ), + 'value' => '', + 'width' => '40', + 'maxlength' => '255' + ), + 'nginx_enable_pagespeed' => array ( + 'datatype' => 'VARCHAR', + 'formtype' => 'CHECKBOX', + 'default' => 'n', + 'value' => array(0 => 'n',1 => 'y') + ), + 'nginx_vhost_conf_dir' => array( + 'datatype' => 'VARCHAR', + 'formtype' => 'TEXT', + 'default' => '', + 'validators' => array( 0 => array('type' => 'NOTEMPTY', + 'errmsg' => 'nginx_vhost_conf_dir_error_empty'), + 1 => array ( 'type' => 'REGEX', + 'regex' => '/^\/[a-zA-Z0-9\.\-\_\/]{5,128}$/', + 'errmsg'=> 'nginx_vhost_conf_dir_error_regex'), + ), + 'value' => '', + 'width' => '40', + 'maxlength' => '255' + ), + 'nginx_vhost_conf_enabled_dir' => array( + 'datatype' => 'VARCHAR', + 'formtype' => 'TEXT', + 'default' => '', + 'validators' => array( 0 => array('type' => 'NOTEMPTY', + 'errmsg' => 'nginx_vhost_conf_enabled_dir_error_empty'), + 1 => array ( 'type' => 'REGEX', + 'regex' => '/^\/[a-zA-Z0-9\.\-\_\/]{5,128}$/', + 'errmsg'=> 'nginx_vhost_conf_enabled_dir_error_regex'), + ), + 'value' => '', + 'width' => '40', + 'maxlength' => '255' + ), + 'CA_path' => array( + 'datatype' => 'VARCHAR', + 'formtype' => 'TEXT', + 'validators' => array( 0 => array ( 'type' => 'REGEX', + 'regex' => '/^[a-zA-Z0-9\.\-\_\/]{0,128}$/', + 'errmsg'=> 'ca_path_error_regex'), + ), + 'default' => '', + 'value' => '', + 'width' => '40', + 'maxlength' => '255' + ), + 'CA_pass' => array( + 'datatype' => 'VARCHAR', + 'formtype' => 'TEXT', + 'default' => '', + 'value' => '', + 'width' => '40', + 'maxlength' => '255' + ), + 'security_level' => array( + 'datatype' => 'VARCHAR', + 'formtype' => 'SELECT', + 'default' => '20', + 'value' => array('10' => 'Medium', '20' => 'High') + ), + 'set_folder_permissions_on_update' => array( + 'datatype' => 'VARCHAR', + 'formtype' => 'CHECKBOX', + 'default' => 'n', + 'value' => array(0 => 'n', 1 => 'y') + ), + 'web_folder_protection' => array( + 'datatype' => 'VARCHAR', + 'formtype' => 'CHECKBOX', + 'default' => 'y', + 'value' => array(0 => 'n', 1 => 'y') + ), + 'add_web_users_to_sshusers_group' => array( + 'datatype' => 'VARCHAR', + 'formtype' => 'CHECKBOX', + 'default' => 'y', + 'value' => array(0 => 'n', 1 => 'y') + ), + 'check_apache_config' => array( + 'datatype' => 'VARCHAR', + 'formtype' => 'CHECKBOX', + 'default' => 'y', + 'value' => array(0 => 'n', 1 => 'y') + ), + 'enable_sni' => array( + 'datatype' => 'VARCHAR', + 'formtype' => 'CHECKBOX', + 'default' => 'y', + 'value' => array(0 => 'n', 1 => 'y') + ), + 'enable_ip_wildcard' => array( + 'datatype' => 'VARCHAR', + 'formtype' => 'CHECKBOX', + 'default' => 'y', + 'value' => array(0 => 'n', 1 => 'y') + ), + 'logging' => array( + 'datatype' => 'VARCHAR', + 'formtype' => 'SELECT', + 'default' => 'yes', + 'value' => array('yes' => 'Yes', 'anon' => 'Anonymize IP', 'no' => 'No') + ), + 'overtraffic_notify_admin' => array( + 'datatype' => 'VARCHAR', + 'formtype' => 'CHECKBOX', + 'default' => 'y', + 'value' => array(0 => 'n', 1 => 'y') + ), + 'overtraffic_notify_client' => array( + 'datatype' => 'VARCHAR', + 'formtype' => 'CHECKBOX', + 'default' => 'y', + 'value' => array(0 => 'n', 1 => 'y') + ), + 'overquota_notify_admin' => array( + 'datatype' => 'VARCHAR', + 'formtype' => 'CHECKBOX', + 'default' => 'y', + 'value' => array(0 => 'n', 1 => 'y') + ), + 'overquota_notify_client' => array( + 'datatype' => 'VARCHAR', + 'formtype' => 'CHECKBOX', + 'default' => 'y', + 'value' => array(0 => 'n', 1 => 'y') + ), + 'overquota_db_notify_admin' => array( + 'datatype' => 'VARCHAR', + 'formtype' => 'CHECKBOX', + 'default' => 'y', + 'value' => array(0 => 'n', 1 => 'y') + ), + 'overquota_db_notify_client' => array( + 'datatype' => 'VARCHAR', + 'formtype' => 'CHECKBOX', + 'default' => 'y', + 'value' => array(0 => 'n', 1 => 'y') + ), + 'overquota_notify_freq' => array( + 'datatype' => 'INTEGER', + 'formtype' => 'TEXT', + 'default' => '7', + 'value' => '', + 'width' => '20', + 'maxlength' => '255' + ), + 'overquota_notify_onok' => array( + 'datatype' => 'VARCHAR', + 'formtype' => 'CHECKBOX', + 'default' => 'n', + 'value' => array(0 => 'n', 1 => 'y') + ), + 'user' => array( + 'datatype' => 'VARCHAR', + 'formtype' => 'TEXT', + 'default' => '', + 'validators' => array(0 => array('type' => 'NOTEMPTY', + 'errmsg' => 'apache_user_error_empty'), + 1 => array( + 'type' => 'CUSTOM', + 'class' => 'validate_systemuser', + 'function' => 'check_sysuser', + 'check_names' => false, + 'errmsg' => 'invalid_apache_user_txt' + ), + ), + 'value' => '', + 'width' => '40', + 'maxlength' => '255' + ), + 'group' => array( + 'datatype' => 'VARCHAR', + 'formtype' => 'TEXT', + 'default' => '', + 'validators' => array(0 => array('type' => 'NOTEMPTY', + 'errmsg' => 'apache_group_error_empty'), + 1 => array( + 'type' => 'CUSTOM', + 'class' => 'validate_systemuser', + 'function' => 'check_sysgroup', + 'check_names' => false, + 'errmsg' => 'invalid_apache_group_txt' + ), + ), + 'value' => '', + 'width' => '40', + 'maxlength' => '255' + ), + 'connect_userid_to_webid' => array( + 'datatype' => 'VARCHAR', + 'formtype' => 'CHECKBOX', + 'default' => 'n', + 'value' => array(0 => 'n', 1 => 'y') + ), + 'connect_userid_to_webid_start' => array( + 'datatype' => 'VARCHAR', + 'formtype' => 'TEXT', + 'default' => '10000', + 'validators' => array(0 => array('type' => 'ISINT', + 'errmsg' => 'connect_userid_to_webid_startid_isint'), + ), + 'value' => '', + 'width' => '40', + 'maxlength' => '255' + ), + 'nginx_user' => array( + 'datatype' => 'VARCHAR', + 'formtype' => 'TEXT', + 'default' => '', + 'validators' => array( 0 => array('type' => 'NOTEMPTY', + 'errmsg' => 'nginx_user_error_empty'), + 1 => array( + 'type' => 'CUSTOM', + 'class' => 'validate_systemuser', + 'function' => 'check_sysuser', + 'check_names' => false, + 'errmsg' => 'invalid_nginx_user_txt' + ), + ), + 'value' => '', + 'width' => '40', + 'maxlength' => '255' + ), + 'nginx_group' => array( + 'datatype' => 'VARCHAR', + 'formtype' => 'TEXT', + 'default' => '', + 'validators' => array( 0 => array('type' => 'NOTEMPTY', + 'errmsg' => 'nginx_group_error_empty'), + 1 => array( + 'type' => 'CUSTOM', + 'class' => 'validate_systemuser', + 'function' => 'check_sysgroup', + 'check_names' => false, + 'errmsg' => 'invalid_nginx_group_txt' + ), + ), + 'value' => '', + 'width' => '40', + 'maxlength' => '255' + ), + 'php_ini_path_apache' => array( + 'datatype' => 'VARCHAR', + 'formtype' => 'TEXT', + 'default' => '', + 'validators' => array( 0 => array('type' => 'NOTEMPTY', + 'errmsg' => 'php_ini_path_apache_error_empty'), + 1 => array ( 'type' => 'REGEX', + 'regex' => '/^\/[a-zA-Z0-9\.\-\_\/]{5,128}$/', + 'errmsg'=> 'php_ini_path_apache_error_regex'), + ), + 'value' => '', + 'width' => '40', + 'maxlength' => '255' + ), + 'php_ini_path_cgi' => array( + 'datatype' => 'VARCHAR', + 'formtype' => 'TEXT', + 'default' => '', + 'validators' => array( 0 => array('type' => 'NOTEMPTY', + 'errmsg' => 'php_ini_path_cgi_error_empty'), + 1 => array ( 'type' => 'REGEX', + 'regex' => '/^\/[a-zA-Z0-9\.\-\_\/]{5,128}$/', + 'errmsg'=> 'php_ini_path_cgi_error_regex'), + ), + 'value' => '', + 'width' => '40', + 'maxlength' => '255' + ), + 'php_default_name' => array( + 'datatype' => 'VARCHAR', + 'formtype' => 'TEXT', + 'default' => 'Default', + 'validators' => array( 0 => array('type' => 'NOTEMPTY', + 'errmsg' => 'php_default_name_error_empty'), + ), + 'filters' => array( + 0 => array( 'event' => 'SAVE', + 'type' => 'TRIM'), + 1 => array( 'event' => 'SAVE', + 'type' => 'STRIPTAGS'), + 2 => array( 'event' => 'SAVE', + 'type' => 'STRIPNL') + ), + 'width' => '40', + 'maxlength' => '255' + ), + 'php_fpm_init_script' => array( + 'datatype' => 'VARCHAR', + 'formtype' => 'TEXT', + 'default' => '', + 'validators' => array( 0 => array('type' => 'NOTEMPTY', + 'errmsg' => 'php_fpm_init_script_error_empty'), + 1 => array ( 'type' => 'REGEX', + 'regex' => '/^[a-zA-Z0-9\.\-\_]{1,128}$/', + 'errmsg'=> 'php_fpm_init_script_error_regex'), + ), + 'value' => '', + 'width' => '40', + 'maxlength' => '255' + ), + 'php_fpm_ini_path' => array( + 'datatype' => 'VARCHAR', + 'formtype' => 'TEXT', + 'default' => '', + 'validators' => array( 0 => array('type' => 'NOTEMPTY', + 'errmsg' => 'php_fpm_ini_path_error_empty'), + 1 => array ( 'type' => 'REGEX', + 'regex' => '/^\/[a-zA-Z0-9\.\-\_\/]{5,128}$/', + 'errmsg'=> 'php_fpm_ini_path_error_regex'), + ), + 'value' => '', + 'width' => '40', + 'maxlength' => '255' + ), + 'php_fpm_pool_dir' => array( + 'datatype' => 'VARCHAR', + 'formtype' => 'TEXT', + 'default' => '', + 'validators' => array( 0 => array('type' => 'NOTEMPTY', + 'errmsg' => 'php_fpm_pool_dir_error_empty'), + 1 => array ( 'type' => 'REGEX', + 'regex' => '/^\/[a-zA-Z0-9\.\-\_\/]{5,128}$/', + 'errmsg'=> 'php_fpm_pool_dir_error_regex'), + ), + 'value' => '', + 'width' => '40', + 'maxlength' => '255' + ), + 'php_fpm_start_port' => array( + 'datatype' => 'VARCHAR', + 'formtype' => 'TEXT', + 'default' => '', + 'validators' => array(0 => array('type' => 'ISPOSITIVE', + 'errmsg' => 'php_fpm_start_port_error_empty'), + ), + 'value' => '', + 'width' => '40', + 'maxlength' => '255' + ), + 'php_fpm_socket_dir' => array( + 'datatype' => 'VARCHAR', + 'formtype' => 'TEXT', + 'default' => '', + 'validators' => array( 0 => array('type' => 'NOTEMPTY', + 'errmsg' => 'php_fpm_socket_dir_error_empty'), + 1 => array ( 'type' => 'REGEX', + 'regex' => '/^\/[a-zA-Z0-9\.\-\_\/]{5,128}$/', + 'errmsg'=> 'php_fpm_socket_dir_error_regex'), + ), + 'value' => '', + 'width' => '40', + 'maxlength' => '255' + ), + 'php_open_basedir' => array( + 'datatype' => 'VARCHAR', + 'formtype' => 'TEXT', + 'default' => '', + 'validators' => array( 0 => array('type' => 'NOTEMPTY', + 'errmsg' => 'php_open_basedir_error_empty'), + 1 => array ( 'type' => 'REGEX', + 'regex' => '/^[a-zA-Z0-9\.\-\_\/\]\[\:]{1,}$/', + 'errmsg'=> 'php_open_basedir_error_regex'), + ), + 'value' => '', + 'width' => '40', + 'maxlength' => '4000' + ), + 'php_ini_check_minutes' => array( + 'datatype' => 'INTEGER', + 'formtype' => 'TEXT', + 'default' => '1', + 'validators' => array(0 => array('type' => 'NOTEMPTY', + 'errmsg' => 'php_ini_check_minutes_error_empty'), + ), + 'value' => '', + 'width' => '10', + 'maxlength' => '255' + ), + 'php_handler' => array( + 'datatype' => 'VARCHAR', + 'formtype' => 'SELECT', + 'default' => 'fast-cgi', + 'value' => array('no' => 'disabled_txt', 'fast-cgi' => 'Fast-CGI', 'cgi' => 'CGI', 'mod' => 'Mod-PHP', 'suphp' => 'SuPHP', 'php-fpm' => 'PHP-FPM', 'hhvm' => 'HHVM'), + 'searchable' => 2 + ), + 'php_fpm_incron_reload' => array( + 'datatype' => 'VARCHAR', + 'formtype' => 'CHECKBOX', + 'default' => 'y', + 'value' => array(0 => 'n', 1 => 'y') + ), + 'nginx_cgi_socket' => array( + 'datatype' => 'VARCHAR', + 'formtype' => 'TEXT', + 'default' => '', + 'validators' => array( 0 => array('type' => 'NOTEMPTY', + 'errmsg' => 'nginx_cgi_socket_empty'), + 1 => array ( 'type' => 'REGEX', + 'regex' => '/^\/[a-zA-Z0-9\.\-\_\/]{1,128}$/', + 'errmsg'=> 'nginx_cgi_socket_error_regex'), + ), + 'value' => '', + 'width' => '40', + 'maxlength' => '255' + ), + 'htaccess_allow_override' => array( + 'datatype' => 'VARCHAR', + 'formtype' => 'TEXT', + 'default' => '', + 'validators' => array( 0 => array('type' => 'NOTEMPTY', + 'errmsg' => 'htaccess_allow_override_error_empty'), + ), + 'filters' => array( + 0 => array( 'event' => 'SAVE', + 'type' => 'STRIPTAGS'), + 1 => array( 'event' => 'SAVE', + 'type' => 'STRIPNL') + ), + 'value' => '', + 'width' => '40', + 'maxlength' => '255' + ), + 'enable_spdy' => array ( + 'datatype' => 'VARCHAR', + 'formtype' => 'CHECKBOX', + 'default' => 'y', + 'value' => array ( + 0 => 'n', + 1 => 'y' + ) + ), + 'apps_vhost_enabled' => array ( + 'datatype' => 'VARCHAR', + 'formtype' => 'CHECKBOX', + 'default' => 'y', + 'value' => array (0 => 'n', 1 => 'y') + ), + 'apps_vhost_port' => array( + 'datatype' => 'VARCHAR', + 'formtype' => 'TEXT', + 'default' => '8081', + 'validators' => array(0 => array('type' => 'NOTEMPTY', + 'errmsg' => 'apps_vhost_port_error_empty'), + ), + 'filters' => array( + 0 => array( 'event' => 'SAVE', + 'type' => 'STRIPTAGS'), + 1 => array( 'event' => 'SAVE', + 'type' => 'STRIPNL') + ), + 'value' => '', + 'width' => '40', + 'maxlength' => '255' + ), + 'apps_vhost_ip' => array( + 'datatype' => 'VARCHAR', + 'formtype' => 'TEXT', + 'default' => '_default_', + 'validators' => array(0 => array('type' => 'NOTEMPTY', + 'errmsg' => 'apps_vhost_ip_error_empty'), + ), + 'filters' => array( + 0 => array( 'event' => 'SAVE', + 'type' => 'STRIPTAGS'), + 1 => array( 'event' => 'SAVE', + 'type' => 'STRIPNL') + ), + 'value' => '', + 'width' => '40', + 'maxlength' => '255' + ), + 'apps_vhost_servername' => array( + 'datatype' => 'VARCHAR', + 'formtype' => 'TEXT', + 'filters' => array( + 0 => array( 'event' => 'SAVE', + 'type' => 'STRIPTAGS'), + 1 => array( 'event' => 'SAVE', + 'type' => 'STRIPNL') + ), + 'default' => '', + 'value' => '', + 'width' => '40', + 'maxlength' => '255' + ), + 'awstats_conf_dir' => array( + 'datatype' => 'VARCHAR', + 'formtype' => 'TEXT', + 'filters' => array( + 0 => array( 'event' => 'SAVE', + 'type' => 'STRIPTAGS'), + 1 => array( 'event' => 'SAVE', + 'type' => 'STRIPNL') + ), + 'default' => '', + 'value' => '', + 'width' => '40', + 'maxlength' => '255' + ), + 'awstats_data_dir' => array( + 'datatype' => 'VARCHAR', + 'formtype' => 'TEXT', + 'validators' => array( 0 => array('type' => 'NOTEMPTY', + 'errmsg' => 'awstats_data_dir_empty'), + 1 => array ( 'type' => 'REGEX', + 'regex' => '/^\/[a-zA-Z0-9\.\-\_\/]{1,128}$/', + 'errmsg'=> 'awstats_data_dir_error_regex'), + ), + 'default' => '', + 'value' => '', + 'width' => '40', + 'maxlength' => '255' + ), + 'awstats_pl' => array( + 'datatype' => 'VARCHAR', + 'formtype' => 'TEXT', + 'validators' => array( 0 => array('type' => 'NOTEMPTY', + 'errmsg' => 'awstats_pl_empty'), + 1 => array ( 'type' => 'REGEX', + 'regex' => '/^\/[a-zA-Z0-9\.\-\_\/]{1,128}$/', + 'errmsg'=> 'awstats_pl_error_regex'), + ), + 'default' => '', + 'value' => '', + 'width' => '40', + 'maxlength' => '255' + ), + 'awstats_buildstaticpages_pl' => array( + 'datatype' => 'VARCHAR', + 'formtype' => 'TEXT', + 'validators' => array( 0 => array('type' => 'NOTEMPTY', + 'errmsg' => 'awstats_buildstaticpages_pl_empty'), + 1 => array ( 'type' => 'REGEX', + 'regex' => '/^\/[a-zA-Z0-9\.\-\_\/]{1,128}$/', + 'errmsg'=> 'awstats_buildstaticpages_pl_error_regex'), + ), + 'default' => '', + 'value' => '', + 'width' => '40', + 'maxlength' => '255' + ), + 'skip_le_check' => array ( + 'datatype' => 'VARCHAR', + 'formtype' => 'CHECKBOX', + 'default' => 'n', + 'value' => array ( + 0 => 'n', + 1 => 'y' + ) + ), + 'php_fpm_reload_mode' => array( + 'datatype' => 'VARCHAR', + 'formtype' => 'SELECT', + 'default' => 'reload', + 'value' => array('reload' => 'Reload', 'restart' => 'Restart'), + 'width' => '40', + 'maxlength' => '255' + ), + //################################# + // ENDE Datatable fields + //################################# + ) +); + +$form["tabs"]['dns'] = array( + 'title' => "DNS", + 'width' => 60, + 'template' => "templates/server_config_dns_edit.htm", + 'fields' => array( + //################################# + // Begin Datatable fields + //################################# + 'bind_user' => array( + 'datatype' => 'VARCHAR', + 'formtype' => 'TEXT', + 'default' => '', + 'validators' => array( 0 => array('type' => 'NOTEMPTY', + 'errmsg' => 'bind_user_error_empty'), + 1 => array ( 'type' => 'REGEX', + 'regex' => '/^(?!ispconfig)([a-zA-Z0-9]{1,20})$/', + 'errmsg'=> 'invalid_bind_user_txt'), + ), + 'value' => '', + 'width' => '40', + 'maxlength' => '255' + ), + 'bind_group' => array( + 'datatype' => 'VARCHAR', + 'formtype' => 'TEXT', + 'default' => '', + 'validators' => array( 0 => array('type' => 'NOTEMPTY', + 'errmsg' => 'bind_group_error_empty'), + 1 => array ( 'type' => 'REGEX', + 'regex' => '/^(?!ispconfig)([a-zA-Z0-9]{1,20})$/', + 'errmsg'=> 'invalid_bind_group_txt'), + ), + 'value' => '', + 'width' => '40', + 'maxlength' => '255' + ), + 'bind_zonefiles_dir' => array( + 'datatype' => 'VARCHAR', + 'formtype' => 'TEXT', + 'default' => '', + 'validators' => array( 0 => array('type' => 'NOTEMPTY', + 'errmsg' => 'bind_zonefiles_dir_error_empty'), + 1 => array ( 'type' => 'REGEX', + 'regex' => '/^\/[a-zA-Z0-9\.\-\_\/]{1,128}$/', + 'errmsg'=> 'bind_zonefiles_dir_error_regex'), + ), + 'value' => '', + 'width' => '40', + 'maxlength' => '255' + ), + 'named_conf_path' => array( + 'datatype' => 'VARCHAR', + 'formtype' => 'TEXT', + 'default' => '', + 'validators' => array( 0 => array('type' => 'NOTEMPTY', + 'errmsg' => 'named_conf_path_error_empty'), + 1 => array ( 'type' => 'REGEX', + 'regex' => '/^\/[a-zA-Z0-9\.\-\_\/]{1,128}$/', + 'errmsg'=> 'named_conf_path_error_regex'), + ), + 'value' => '', + 'width' => '40', + 'maxlength' => '255' + ), + 'named_conf_local_path' => array( + 'datatype' => 'VARCHAR', + 'formtype' => 'TEXT', + 'default' => '', + 'validators' => array( 0 => array('type' => 'NOTEMPTY', + 'errmsg' => 'named_conf_local_path_error_empty'), + 1 => array ( 'type' => 'REGEX', + 'regex' => '/^\/[a-zA-Z0-9\.\-\_\/]{1,128}$/', + 'errmsg'=> 'named_conf_local_path_error_regex'), + ), + 'value' => '', + 'width' => '40', + 'maxlength' => '255' + ), + 'disable_bind_log' => array ( + 'datatype' => 'VARCHAR', + 'formtype' => 'CHECKBOX', + 'default' => 'n', + 'value' => array(0 => 'n', 1 => 'y') + ), + //################################# + // ENDE Datatable fields + //################################# + ) +); + +$form["tabs"]['fastcgi'] = array( + 'title' => "FastCGI", + 'width' => 80, + 'template' => "templates/server_config_fastcgi_edit.htm", + 'fields' => array( + //################################# + // Begin Datatable fields + //################################# + 'fastcgi_starter_path' => array( + 'datatype' => 'VARCHAR', + 'formtype' => 'TEXT', + 'default' => '', + 'validators' => array( 0 => array('type' => 'NOTEMPTY', + 'errmsg' => 'fastcgi_starter_path_error_empty'), + 1 => array ( 'type' => 'REGEX', + 'regex' => '/^\/[a-zA-Z0-9\.\-\_\/\[\]]{1,128}$/', + 'errmsg'=> 'fastcgi_starter_path_error_regex'), + ), + 'value' => '', + 'width' => '40', + 'maxlength' => '255' + ), + 'fastcgi_starter_script' => array( + 'datatype' => 'VARCHAR', + 'formtype' => 'TEXT', + 'default' => '', + 'validators' => array( 0 => array('type' => 'NOTEMPTY', + 'errmsg' => 'fastcgi_starter_script_error_empty'), + 1 => array ( 'type' => 'REGEX', + 'regex' => '/^[a-zA-Z0-9\.\-\_\/]{1,128}$/', + 'errmsg'=> 'fastcgi_starter_script_error_regex'), + ), + 'value' => '', + 'width' => '40', + 'maxlength' => '255' + ), + 'fastcgi_alias' => array( + 'datatype' => 'VARCHAR', + 'formtype' => 'TEXT', + 'default' => '', + 'validators' => array( 0 => array('type' => 'NOTEMPTY', + 'errmsg' => 'fastcgi_alias_error_empty'), + 1 => array ( 'type' => 'REGEX', + 'regex' => '/^[a-zA-Z0-9\.\-\_\/]{1,128}$/', + 'errmsg'=> 'fastcgi_alias_error_regex'), + ), + 'value' => '', + 'width' => '40', + 'maxlength' => '255' + ), + 'fastcgi_phpini_path' => array( + 'datatype' => 'VARCHAR', + 'formtype' => 'TEXT', + 'default' => '', + 'validators' => array( 0 => array('type' => 'NOTEMPTY', + 'errmsg' => 'fastcgi_phpini_path_error_empty'), + 1 => array ( 'type' => 'REGEX', + 'regex' => '/^\/[a-zA-Z0-9\.\-\_\/\[\]]{1,128}$/', + 'errmsg'=> 'fastcgi_phpini_path_error_regex'), + ), + 'value' => '', + 'width' => '40', + 'maxlength' => '255' + ), + 'fastcgi_children' => array( + 'datatype' => 'VARCHAR', + 'formtype' => 'TEXT', + 'default' => '', + 'validators' => array(0 => array('type' => 'ISPOSITIVE', + 'errmsg' => 'fastcgi_children_error_empty'), + ), + 'value' => '', + 'width' => '40', + 'maxlength' => '255' + ), + 'fastcgi_max_requests' => array( + 'datatype' => 'VARCHAR', + 'formtype' => 'TEXT', + 'default' => '', + 'validators' => array( 0 => array( 'type' => 'ISINT', + 'errmsg' => 'fastcgi_max_requests_error_empty'), + 1 => array( 'type' => 'RANGE', + 'range' => '0:', + 'errmsg' => 'fastcgi_max_requests_error_empty'), + ), + 'value' => '', + 'width' => '40', + 'maxlength' => '255' + ), + 'fastcgi_bin' => array( + 'datatype' => 'VARCHAR', + 'formtype' => 'TEXT', + 'default' => '', + 'validators' => array( 0 => array('type' => 'NOTEMPTY', + 'errmsg' => 'fastcgi_bin_error_empty'), + 1 => array ( 'type' => 'REGEX', + 'regex' => '/^\/[a-zA-Z0-9\.\-\_\/\[\]]{1,128}$/', + 'errmsg'=> 'fastcgi_bin_error_regex'), + ), + 'value' => '', + 'width' => '40', + 'maxlength' => '255' + ), + 'fastcgi_config_syntax' => array( + 'datatype' => 'INTEGER', + 'formtype' => 'SELECT', + 'default' => '2', + 'value' => array('1' => 'Old (apache 2.0)', '2' => 'New (apache 2.2)'), + 'width' => '40', + 'maxlength' => '255' + ), + //################################# + // ENDE Datatable fields + //################################# + ) +); + + +$form["tabs"]['xmpp'] = array( + 'title' => "XMPP", + 'width' => 80, + 'template' => "templates/server_config_xmpp_edit.htm", + 'fields' => array( + //################################# + // Begin Datatable fields + //################################# + 'xmpp_use_ipv6' => array( + 'datatype' => 'VARCHAR', + 'formtype' => 'CHECKBOX', + 'default' => 'n', + 'value' => array(0 => 'n', 1 => 'y') + ), + 'xmpp_bosh_max_inactivity' => array( + 'datatype' => 'VARCHAR', + 'formtype' => 'TEXT', + 'default' => '30', + 'validators' => array(0 => array('type' => 'ISINT', + 'errmsg' => 'ip_address_error_wrong'), + array('type'=>'RANGE', 'range'=>'15:360', 'errmsg' => 'xmpp_bosh_timeout_range_wrong') + ), + 'value' => '', + 'width' => '15' + ), + + 'xmpp_server_admins' => array( + 'datatype' => 'VARCHAR', + 'formtype' => 'TEXT', + 'filters' => array( + 0 => array( 'event' => 'SAVE', + 'type' => 'STRIPTAGS'), + 1 => array( 'event' => 'SAVE', + 'type' => 'STRIPNL') + ), + 'default' => 'admin@service.com, superuser@service.com', + 'value' => '', + 'width' => '15' + ), + + 'xmpp_modules_enabled' => array( + 'datatype' => 'TEXT', + 'formtype' => 'TEXT', + 'filters' => array( + 0 => array( 'event' => 'SAVE', + 'type' => 'STRIPTAGS'), + 1 => array( 'event' => 'SAVE', + 'type' => 'STRIPNL') + ), + 'default' => "saslauth, tls, dialback, disco, discoitems, version, uptime, time, ping, admin_adhoc, admin_telnet, bosh, posix, announce, offline, webpresence, mam, stream_management, message_carbons", + 'value' => '', + 'separator' => "," + ), + + 'xmpp_port_http' => array( + 'datatype' => 'VARCHAR', + 'formtype' => 'TEXT', + 'default' => '5290', + 'validators' => array(0 => array('type' => 'ISINT')), + 'value' => '5290', + 'width' => '15' + ), + 'xmpp_port_https' => array( + 'datatype' => 'VARCHAR', + 'formtype' => 'TEXT', + 'default' => '5291', + 'validators' => array(0 => array('type' => 'ISINT')), + 'value' => '5291', + 'width' => '15' + ), + 'xmpp_port_pastebin' => array( + 'datatype' => 'VARCHAR', + 'formtype' => 'TEXT', + 'default' => '5292', + 'validators' => array(0 => array('type' => 'ISINT')), + 'value' => '5292', + 'width' => '15' + ), + 'xmpp_port_bosh' => array( + 'datatype' => 'VARCHAR', + 'formtype' => 'TEXT', + 'default' => '5280', + 'validators' => array(0 => array('type' => 'ISINT')), + 'value' => '5280', + 'width' => '15' + ), + //################################# + // ENDE Datatable fields + //################################# + ) +); + +$form["tabs"]['jailkit'] = array( + 'title' => "Jailkit", + 'width' => 80, + 'template' => "templates/server_config_jailkit_edit.htm", + 'fields' => array( + //################################# + // Begin Datatable fields + //################################# + 'jailkit_chroot_home' => array( + 'datatype' => 'VARCHAR', + 'formtype' => 'TEXT', + 'default' => '', + 'validators' => array( 0 => array('type' => 'NOTEMPTY', + 'errmsg' => 'jailkit_chroot_home_error_empty'), + 1 => array ( 'type' => 'REGEX', + 'regex' => '/^\/[a-zA-Z0-9\.\-\_\/\[\]]{1,128}$/', + 'errmsg'=> 'jailkit_chroot_home_error_regex'), + ), + 'value' => '', + 'width' => '40', + 'maxlength' => '255' + ), + 'jailkit_chroot_app_sections' => array( + 'datatype' => 'VARCHAR', + 'formtype' => 'TEXT', + 'default' => '', + 'validators' => array( 0 => array('type' => 'NOTEMPTY', + 'errmsg' => 'jailkit_chroot_app_sections_error_empty'), + 1 => array ( 'type' => 'REGEX', + 'regex' => '/^[a-zA-Z0-9\-\_\ ]{1,128}$/', + 'errmsg'=> 'jailkit_chroot_app_sections_error_regex'), + ), + 'value' => '', + 'width' => '40', + 'maxlength' => '1000' + ), + 'jailkit_chroot_app_programs' => array( + 'datatype' => 'VARCHAR', + 'formtype' => 'TEXT', + 'default' => '', + 'validators' => array( 0 => array('type' => 'NOTEMPTY', + 'errmsg' => 'jailkit_chroot_app_programs_error_empty'), + 1 => array ( 'type' => 'REGEX', + 'regex' => '/^[a-zA-Z0-9\.\-\_\/\ ]{1,}$/', + 'errmsg'=> 'jailkit_chroot_app_programs_error_regex'), + ), + 'value' => '', + 'width' => '40', + 'maxlength' => '1000' + ), + 'jailkit_chroot_cron_programs' => array( + 'datatype' => 'VARCHAR', + 'formtype' => 'TEXT', + 'default' => '', + 'validators' => array( 0 => array('type' => 'NOTEMPTY', + 'errmsg' => 'jailkit_chroot_cron_programs_error_empty'), + 1 => array ( 'type' => 'REGEX', + 'regex' => '/^[a-zA-Z0-9\.\-\_\/\ ]{1,}$/', + 'errmsg'=> 'jailkit_chroot_cron_programs_error_regex'), + ), + 'value' => '', + 'width' => '40', + 'maxlength' => '1000' + ), + //################################# + // ENDE Datatable fields + //################################# + ) +); + +/* +$form["tabs"]['ufw_firewall'] = array ( + 'title' => "UFW Firewall", + 'width' => 80, + 'template' => "templates/server_config_ufw_edit.htm", + 'fields' => array ( + ################################## + # Begin Datatable fields + ################################## + 'ufw_enable' => array ( + 'datatype' => 'VARCHAR', + 'formtype' => 'CHECKBOX', + 'default' => 'no', + 'value' => array(0 => 'no',1 => 'yes') + ), + 'ufw_manage_builtins' => array ( + 'datatype' => 'VARCHAR', + 'formtype' => 'CHECKBOX', + 'default' => 'no', + 'value' => array(0 => 'no',1 => 'yes') + ), + 'ufw_ipv6' => array ( + 'datatype' => 'VARCHAR', + 'formtype' => 'CHECKBOX', + 'default' => 'no', + 'value' => array(0 => 'no',1 => 'yes') + ), + 'ufw_default_input_policy' => array ( + 'datatype' => 'VARCHAR', + 'formtype' => 'SELECT', + 'default' => 'ACCEPT', + 'value' => array('ACCEPT' => 'accept', 'DROP' => 'drop', 'REJECT' => 'reject') + ), + 'ufw_default_output_policy' => array ( + 'datatype' => 'VARCHAR', + 'formtype' => 'SELECT', + 'default' => 'ACCEPT', + 'value' => array('ACCEPT' => 'accept', 'DROP' => 'drop', 'REJECT' => 'reject') + ), + 'ufw_default_forward_policy' => array ( + 'datatype' => 'VARCHAR', + 'formtype' => 'SELECT', + 'default' => 'ACCEPT', + 'value' => array('ACCEPT' => 'accept', 'DROP' => 'drop', 'REJECT' => 'reject') + ), + 'ufw_default_application_policy' => array ( + 'datatype' => 'VARCHAR', + 'formtype' => 'SELECT', + 'default' => 'DROP', + 'value' => array('ACCEPT' => 'accept', 'DROP' => 'drop', 'REJECT' => 'reject') + ), + 'ufw_log_level' => array ( + 'datatype' => 'VARCHAR', + 'formtype' => 'SELECT', + 'default' => 'low', + 'value' => array('low' => 'low', 'medium' => 'medium', 'high' => 'high') + ) + ################################## + # ENDE Datatable fields + ################################## + ) +); +*/ + +$form["tabs"]['vlogger'] = array( + 'title' => "vlogger", + 'width' => 80, + 'template' => "templates/server_config_vlogger_edit.htm", + 'fields' => array( + //################################# + // Begin Datatable fields + //################################# + 'config_dir' => array( + 'datatype' => 'VARCHAR', + 'formtype' => 'TEXT', + 'default' => '', + 'validators' => array( 0 => array('type' => 'NOTEMPTY', + 'errmsg' => 'vlogger_config_dir_error_empty'), + 1 => array ( 'type' => 'REGEX', + 'regex' => '/^\/[a-zA-Z0-9\.\-\_\/]{1,128}$/', + 'errmsg'=> 'vlogger_config_dir_error_regex'), + ), + 'value' => '', + 'width' => '40', + 'maxlength' => '255' + ), + //################################# + // ENDE Datatable fields + //################################# + ) +); + + + +$form["tabs"]['cron'] = array( + 'title' => "Cron", + 'width' => 80, + 'template' => "templates/server_config_cron_edit.htm", + 'fields' => array( + //################################# + // Begin Datatable fields + //################################# + 'init_script' => array( + 'datatype' => 'VARCHAR', + 'formtype' => 'TEXT', + 'default' => '', + 'validators' => array( 0 => array('type' => 'NOTEMPTY', + 'errmsg' => 'cron_init_script_error_empty'), + 1 => array ( 'type' => 'REGEX', + 'regex' => '/^[a-zA-Z0-9\-\_]{1,30}$/', + 'errmsg'=> 'cron_init_script_error_regex'), + ), + 'value' => '', + 'width' => '40', + 'maxlength' => '255' + ), + 'crontab_dir' => array( + 'datatype' => 'VARCHAR', + 'formtype' => 'TEXT', + 'default' => '', + 'validators' => array( 0 => array('type' => 'NOTEMPTY', + 'errmsg' => 'crontab_dir_error_empty'), + 1 => array ( 'type' => 'REGEX', + 'regex' => '/^\/[a-zA-Z0-9\.\-\_\/]{1,128}$/', + 'errmsg'=> 'crontab_dir_error_regex'), + ), + 'value' => '', + 'width' => '40', + 'maxlength' => '255' + ), + 'wget' => array( + 'datatype' => 'VARCHAR', + 'formtype' => 'TEXT', + 'default' => '', + 'validators' => array( 0 => array('type' => 'NOTEMPTY', + 'errmsg' => 'cron_wget_error_empty'), + 1 => array ( 'type' => 'REGEX', + 'regex' => '/^\/[a-zA-Z0-9\.\-\_\/]{1,128}$/', + 'errmsg'=> 'cron_wget_error_regex'), + ), + 'value' => '', + 'width' => '40', + 'maxlength' => '255' + ), + //################################# + // ENDE Datatable fields + //################################# + ) +); + +$form["tabs"]['rescue'] = array( + 'title' => "Rescue", + 'width' => 80, + 'template' => "templates/server_config_rescue_edit.htm", + 'fields' => array( + //################################# + // Begin Datatable fields + //################################# + 'try_rescue' => array( + 'datatype' => 'VARCHAR', + 'formtype' => 'CHECKBOX', + 'default' => 'n', + 'value' => array(0 => 'n', 1 => 'y') + ), + 'do_not_try_rescue_httpd' => array( + 'datatype' => 'VARCHAR', + 'formtype' => 'CHECKBOX', + 'default' => 'n', + 'value' => array(0 => 'n', 1 => 'y') + ), + 'do_not_try_rescue_mongodb' => array( + 'datatype' => 'VARCHAR', + 'formtype' => 'CHECKBOX', + 'default' => 'n', + 'value' => array(0 => 'n', 1 => 'y') + ), + 'do_not_try_rescue_mysql' => array( + 'datatype' => 'VARCHAR', + 'formtype' => 'CHECKBOX', + 'default' => 'n', + 'value' => array(0 => 'n', 1 => 'y') + ), + 'do_not_try_rescue_mail' => array( + 'datatype' => 'VARCHAR', + 'formtype' => 'CHECKBOX', + 'default' => 'n', + 'value' => array(0 => 'n', 1 => 'y') + ), + //################################# + // ENDE Datatable fields + //################################# + ) +); +?> diff --git a/interface/web/admin/lib/lang/de_server_config.lng b/interface/web/admin/lib/lang/de_server_config.lng index 108bf96de..50b351456 100644 --- a/interface/web/admin/lib/lang/de_server_config.lng +++ b/interface/web/admin/lib/lang/de_server_config.lng @@ -296,4 +296,7 @@ $wb['php_default_name_txt'] = 'Beschreibung Standard PHP'; $wb['php_default_name_error_empty'] = 'Beschreibung Standard PHP ist leer.'; $wb['error_mailbox_message_size_txt'] = 'Mailboxgröße muss gleich oder größer als max. Nachrichtengröße sein.'; $wb['php_fpm_reload_mode_txt'] = 'PHP-FPM reload Modus'; -?> +$wb['content_filter_txt'] = 'Content-Filter'; +$wb['rspamd_url_txt'] = 'Rspamd-URL'; +$wb['rspamd_user_txt'] = 'Rspamd-Benutzer'; +$wb['rspamd_password_txt'] = 'Rspamd-Passwort'; \ No newline at end of file diff --git a/interface/web/admin/lib/lang/de_server_config.lng.orig b/interface/web/admin/lib/lang/de_server_config.lng.orig new file mode 100644 index 000000000..108bf96de --- /dev/null +++ b/interface/web/admin/lib/lang/de_server_config.lng.orig @@ -0,0 +1,299 @@ +Information: Falls Sie MySQL stoppen möchten, wählen Sie die Funktion \'Deaktiviere MySQL Monitoring\' und warten Sie 2 bis 3 Minuten. Wenn Sie nicht 2 bis 3 Minuten warten wird ISPConfig versuchen MySQL wieder zu starten.'; +$wb['enable_sni_txt'] = 'Aktiviere SNI'; +$wb['set_folder_permissions_on_update_txt'] = 'Verzeichnisberechtigungen beim Update setzen'; +$wb['add_web_users_to_sshusers_group_txt'] = 'Webbenutzer zur -sshusers- hinzufügen'; +$wb['connect_userid_to_webid_txt'] = 'Linux Userid mit webid verknüpfen'; +$wb['connect_userid_to_webid_start_txt'] = 'Start ID für userid/webid Verknüpfung'; +$wb['realtime_blackhole_list_txt'] = 'Realtime Blackhole Liste'; +$wb['realtime_blackhole_list_note_txt'] = '(Mehrere Realtime Blackhole Listen mit Kommas trennen)'; +$wb['ssl_settings_txt'] = 'SSL Einstellungen'; +$wb['permissions_txt'] = 'Berechtigungen'; +$wb['php_settings_txt'] = 'PHP Einstellungen'; +$wb['apps_vhost_settings_txt'] = 'Apps vHost Einstellungen'; +$wb['awstats_settings_txt'] = 'AWStats Einstellungen'; +$wb['backup_mode_txt'] = 'Backupmodus'; +$wb['backup_mode_userzip'] = 'Backup Dateien gehören dem Web Benutzer (.zip Datei)'; +$wb['backup_mode_rootgz'] = 'Backup aller Dateien des Webverzeichnisses als Root Benutzer'; +$wb['backup_time_txt'] = 'Backupzeit'; +$wb['firewall_txt'] = 'Firewall'; +$wb['mailbox_quota_stats_txt'] = 'E-Mailkonto Beschränkung Statistiken'; +$wb['enable_ip_wildcard_txt'] = 'IP Adressen Wildcard (*) aktivieren'; +$wb['web_folder_protection_txt'] = 'Webverzeichnis unveränderlich machen (erweiterte Attribute)'; +$wb['overtraffic_notify_admin_txt'] = 'Überschreiten des Datentransfer Limits an den Administrator senden'; +$wb['overtraffic_notify_client_txt'] = 'Überschreiten des Datentransfer Limits an den Kunden senden'; +$wb['rbl_error_regex'] = 'Bitte geben Sie gültige RBL-Hostnamen an.'; +$wb['overquota_notify_admin_txt'] = 'Quota-Warnungen an den Administrator senden'; +$wb['overquota_notify_client_txt'] = 'Quota-Warnungen an den Kunden senden'; +$wb['overquota_notify_onok_txt'] = 'Meldung an den Kunden senden, wenn Belegung wieder ok'; +$wb['overquota_notify_freq_txt'] = 'Quota-Warnung alle X Tage versenden'; +$wb['overquota_notify_freq_note_txt'] = '0 = Meldung nur einmalig versenden, keine Wiederholung'; +$wb['admin_notify_events_txt'] = 'Sende E-Mail an Administrator ab folgendem Level'; +$wb['no_notifications_txt'] = 'Keine Benachrichtigungen'; +$wb['monit_url_txt'] = 'Monit-URL'; +$wb['monit_user_txt'] = 'Monit-Benutzer'; +$wb['monit_password_txt'] = 'Monit-Passwort'; +$wb['monit_url_error_regex'] = 'Ungültige Monit-URL'; +$wb['monit_url_note_txt'] = 'Platzhalter:'; +$wb['munin_url_txt'] = 'Munin-URL'; +$wb['munin_user_txt'] = 'Munin-Benutzer'; +$wb['munin_password_txt'] = 'Munin-Passwort'; +$wb['munin_url_error_regex'] = 'Ungültige Munin-URL'; +$wb['munin_url_note_txt'] = 'Platzhalter:'; +$wb['backup_dir_is_mount_txt'] = 'Backupverzeichnis ist ein eigener Mount?'; +$wb['backup_dir_mount_cmd_txt'] = 'Mount-Befehl, falls Backupverzeichnis nicht gemountet'; +$wb['backup_delete_txt'] = 'Backups loeschen wenn eine Domain / Webseite geloescht wird'; +$wb['v6_prefix_txt'] = 'IPv6 Prefix'; +$wb['vhost_rewrite_v6_txt'] = 'Rewrite IPv6 on Mirror'; +$wb['v6_prefix_length'] = 'Prefix zu lang fuer angegebene IPv6-Adresse '; +$wb['monitor_system_updates_txt'] = 'Suche nach Linux updates'; +$wb['dkim_strength_txt'] = 'DKIM Stärke'; +$wb['hostname_error_regex'] = 'Invalid Hostname.'; +$wb['invalid_apache_user_txt'] = 'Invalid apache user.'; +$wb['invalid_apache_group_txt'] = 'Invalid apache group.'; +$wb['backup_dir_error_regex'] = 'Invalid backup directory.'; +$wb['maildir_path_error_regex'] = 'Invalid maildir path.'; +$wb['homedir_path_error_regex'] = 'Invalid homedir path.'; +$wb['mailuser_name_error_regex'] = 'Invalid mailuser name.'; +$wb['mailuser_group_name_error_regex'] = 'Invalid mailuser group name.'; +$wb['mailuser_uid_error_range'] = 'Mailuser uid must be >= 2000'; +$wb['mailuser_gid_error_range'] = 'Mailuser gid must be >= 2000'; +$wb['getmail_config_dir_error_regex'] = 'Invalid getmail config directory.'; +$wb['website_basedir_error_regex'] = 'Invalid website basedir or path too short, min. length 5 chars.'; +$wb['website_symlinks_error_regex'] = 'Invalid website symlinks.'; +$wb['vhost_conf_dir_error_regex'] = 'Invalid vhost config directory.'; +$wb['vhost_conf_enabled_dir_error_regex'] = 'Invalid vhost conf enabled directory.'; +$wb['nginx_vhost_conf_dir_error_regex'] = 'Invalid nginx config directory.'; +$wb['nginx_vhost_conf_enabled_dir_error_regex'] = 'Invalid nginx conf enabled directory.'; +$wb['ca_path_error_regex'] = 'Invalid CA path.'; +$wb['invalid_nginx_user_txt'] = 'Invalid nginx user.'; +$wb['invalid_nginx_group_txt'] = 'Invalid nginx group.'; +$wb['php_ini_path_apache_error_regex'] = 'Invalid apache php.ini path.'; +$wb['php_ini_path_cgi_error_regex'] = 'Invalid cgi php.ini path.'; +$wb['php_fpm_init_script_error_regex'] = 'Invalid php-fpm init script.'; +$wb['php_fpm_ini_path_error_regex'] = 'Invalid php-fpm ini path.'; +$wb['php_fpm_pool_dir_error_regex'] = 'Invalid php-fpm pool directory.'; +$wb['php_fpm_socket_dir_error_regex'] = 'Invalid php-fpm socket directory.'; +$wb['php_open_basedir_error_regex'] = 'Invalid php open_basedir.'; +$wb['awstats_data_dir_empty'] = 'awstats data directory is empty'; +$wb['awstats_data_dir_error_regex'] = 'Invalid awstats data directory.'; +$wb['awstats_pl_empty'] = 'awstats.pl setting is empty.'; +$wb['awstats_pl_error_regex'] = 'Invalid awstats.pl path.'; +$wb['awstats_buildstaticpages_pl_empty'] = 'awstats_buildstaticpages.pl is empty'; +$wb['awstats_buildstaticpages_pl_error_regex'] = 'Invalid awstats_buildstaticpages.pl path.'; +$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['named_conf_path_error_regex'] = 'Invalid named.conf path.'; +$wb['named_conf_local_path_error_regex'] = 'Invalid named.conf.local path.'; +$wb['fastcgi_starter_path_error_regex'] = 'Invalid fastcgi starter path.'; +$wb['fastcgi_starter_script_error_regex'] = 'Invalid fastcgi starter script.'; +$wb['fastcgi_alias_error_regex'] = 'Invalid fastcgi alias.'; +$wb['fastcgi_phpini_path_error_regex'] = 'Invalid fastcgi path.'; +$wb['fastcgi_bin_error_regex'] = 'Invalid fastcgi bin.'; +$wb['jailkit_chroot_home_error_regex'] = 'Invalid jaikit chroot home.'; +$wb['jailkit_chroot_app_sections_error_regex'] = 'Invalid jaikit chroot sections.'; +$wb['jailkit_chroot_app_programs_error_regex'] = 'Invalid jaikit chroot app programs.'; +$wb['jailkit_chroot_cron_programs_error_regex'] = 'Invalid jaikit chroot cron programs.'; +$wb['vlogger_config_dir_error_regex'] = 'Invalid vlogger config dir.'; +$wb['cron_init_script_error_regex'] = 'Invalid cron init script.'; +$wb['crontab_dir_error_regex'] = 'Invalid crontab directory.'; +$wb['cron_wget_error_regex'] = 'Invalid cron wget path.'; +$wb['network_filesystem_txt'] = 'Netzwerk-Dateisystem'; +$wb['overquota_db_notify_admin_txt'] = 'Datenbank-Quota-Warnungen an den Administrator senden'; +$wb['overquota_db_notify_client_txt'] = 'Datenbank-Quota-Warnungen an den Kunden senden'; +$wb['php_ini_check_minutes_txt'] = 'Prüfe php.ini alle X Minuten auf Änderungen'; +$wb['php_ini_check_minutes_error_empty'] = 'Bitte geben Sie einen Wert an, wie oft die php.ini auf Änderungen geprüft werden soll.'; +$wb['php_ini_check_minutes_info_txt'] = '0 = keine Prüfung'; +$wb['php_handler_txt'] = 'Standard-PHP-Handler'; +$wb['php_fpm_incron_reload_txt'] = 'Install incron trigger file to reload PHP-FPM'; +$wb['enable_spdy_txt'] = 'Stellt SPDY/HTTP2 zur Verfügung'; +$wb['disable_bind_log_txt'] = 'Disable bind9 messages for Loglevel WARN'; +$wb['apps_vhost_enabled_txt'] = 'Apps-vhost enabled'; +$wb['disabled_txt'] = 'Disabled'; +$wb['web_settings_txt'] = 'Web Server'; +$wb['xmpp_server_txt'] = 'XMPP Server'; +$wb['xmpp_use_ipv6_txt'] = 'Use IPv6'; +$wb['xmpp_bosh_max_inactivity_txt'] = 'Max. BOSH inactivity time'; +$wb['xmpp_bosh_timeout_range_wrong'] = 'Please enter a bosh timeout range between 15 - 360'; +$wb['xmpp_module_saslauth'] = 'saslauth'; +$wb['xmpp_server_admins_txt'] = 'Server Admins (JIDs)'; +$wb['xmpp_modules_enabled_txt'] = 'Serverwide enabled plugins (one per line)'; +$wb['xmpp_ports_txt'] = 'Component ports'; +$wb['xmpp_port_http_txt'] = 'HTTP'; +$wb['xmpp_port_https_txt'] = 'HTTPS'; +$wb['xmpp_port_pastebin_txt'] = 'Pastebin'; +$wb['xmpp_port_bosh_txt'] = 'BOSH'; +$wb['skip_le_check_txt'] = 'Skip Lets Encrypt Check'; +$wb['migration_mode_txt'] = 'Server Migration Mode'; +$wb['nginx_enable_pagespeed_txt'] = 'Makes Pagespeed available'; +$wb['logging_txt'] = 'Store website access and error logs'; +$wb['logging_desc_txt'] = 'Use Tools > Resync to apply changes to existing sites. For Apache, access and error log can be anonymized. For nginx, only the access log is anonymized, the error log will contain IP addresses.'; +$wb['log_retention_txt'] = 'Log retention (days)'; +$wb['log_retention_error_ispositive'] = 'Log retention must be a number > 0'; +$wb['php_default_name_txt'] = 'Beschreibung Standard PHP'; +$wb['php_default_name_error_empty'] = 'Beschreibung Standard PHP ist leer.'; +$wb['error_mailbox_message_size_txt'] = 'Mailboxgröße muss gleich oder größer als max. Nachrichtengröße sein.'; +$wb['php_fpm_reload_mode_txt'] = 'PHP-FPM reload Modus'; +?> diff --git a/interface/web/admin/lib/lang/de_server_config.lng.rej b/interface/web/admin/lib/lang/de_server_config.lng.rej new file mode 100644 index 000000000..eeed14711 --- /dev/null +++ b/interface/web/admin/lib/lang/de_server_config.lng.rej @@ -0,0 +1,11 @@ +--- interface/web/admin/lib/lang/de_server_config.lng ++++ interface/web/admin/lib/lang/de_server_config.lng +@@ -295,4 +295,7 @@ $wb['log_retention_error_ispositive'] = 'Log retention must be a number > 0'; + $wb['php_default_name_txt'] = 'Beschreibung Standard PHP'; + $wb['php_default_name_error_empty'] = 'Beschreibung Standard PHP ist leer.'; + $wb['error_mailbox_message_size_txt'] = 'Mailboxgröße muss gleich oder größer als max. Nachrichtengröße sein.'; +-?> ++$wb['content_filter_txt'] = 'Content-Filter'; ++$wb['rspamd_url_txt'] = 'Rspamd-URL'; ++$wb['rspamd_user_txt'] = 'Rspamd-Benutzer'; ++$wb['rspamd_password_txt'] = 'Rspamd-Passwort'; \ No newline at end of file diff --git a/interface/web/admin/lib/lang/en_server_config.lng b/interface/web/admin/lib/lang/en_server_config.lng index ac0ee42b9..0ba3638a0 100644 --- a/interface/web/admin/lib/lang/en_server_config.lng +++ b/interface/web/admin/lib/lang/en_server_config.lng @@ -297,4 +297,7 @@ $wb['php_default_name_txt'] = 'Description Default PHP-Version'; $wb['php_default_name_error_empty'] = 'Description Default PHP-Version must not be empty'; $wb['error_mailbox_message_size_txt'] = 'Mailbox size must be larger or equal to message size'; $wb['php_fpm_reload_mode_txt'] = 'PHP-FPM reload mode'; -?> +$wb['content_filter_txt'] = 'Content Filter'; +$wb['rspamd_url_txt'] = 'Rspamd URL'; +$wb['rspamd_user_txt'] = 'Rspamd User'; +$wb['rspamd_password_txt'] = 'Rspamd Password'; diff --git a/interface/web/admin/lib/lang/en_server_config.lng.orig b/interface/web/admin/lib/lang/en_server_config.lng.orig new file mode 100644 index 000000000..ac0ee42b9 --- /dev/null +++ b/interface/web/admin/lib/lang/en_server_config.lng.orig @@ -0,0 +1,300 @@ +Information: If you want to shut down mysql you have to select the "Disable MySQL monitor" checkbox and then wait 2-3 minutes.
If you do not wait 2-3 minutes, rescue will try to restart mysql!'; +$wb["enable_sni_txt"] = 'Enable SNI'; +$wb["set_folder_permissions_on_update_txt"] = 'Set folder permissions on update'; +$wb["add_web_users_to_sshusers_group_txt"] = 'Add web users to -sshusers- group'; +$wb["connect_userid_to_webid_txt"] = 'Connect Linux userid to webid'; +$wb["connect_userid_to_webid_start_txt"] = 'Start ID for userid/webid connect'; +$wb["realtime_blackhole_list_txt"] = 'Real-time Blackhole List'; +$wb["realtime_blackhole_list_note_txt"] = '(Separate RBL\'s with commas)'; +$wb["ssl_settings_txt"] = 'SSL Settings'; +$wb["permissions_txt"] = 'Permissions'; +$wb["php_settings_txt"] = 'PHP Settings'; +$wb["apps_vhost_settings_txt"] = 'Apps Vhost Settings'; +$wb["awstats_settings_txt"] = 'AWStats Settings'; +$wb["firewall_txt"] = 'Firewall'; +$wb["mailbox_quota_stats_txt"] = 'Mailbox quota statistics'; +$wb["enable_ip_wildcard_txt"] = 'Enable IP wildcard (*)'; +$wb["web_folder_protection_txt"] = 'Make web folders immutable (extended attributes)'; +$wb["overtraffic_notify_admin_txt"] = 'Send overtraffic notification to admin'; +$wb["overtraffic_notify_client_txt"] = 'Send overtraffic notification to client'; +$wb["rbl_error_regex"] = 'Please specify valid RBL hostnames.'; +$wb["overquota_notify_admin_txt"] = 'Send quota warnings to admin'; +$wb["overquota_notify_client_txt"] = 'Send quota warnings to client'; +$wb["overquota_notify_onok_txt"] = 'Send quota ok message to client'; +$wb['overquota_notify_freq_txt'] = 'Send quota warning each X days'; +$wb['overquota_notify_freq_note_txt'] = '0 = send message just once, no repeated messages'; +$wb['admin_notify_events_txt'] = 'Send email to admin starting with the following level'; +$wb['no_notifications_txt'] = 'No Notifications'; +$wb['monit_url_txt'] = 'Monit URL'; +$wb['monit_user_txt'] = 'Monit User'; +$wb['monit_password_txt'] = 'Monit Password'; +$wb['monit_url_error_regex'] = 'Invalid Monit URL'; +$wb['monit_url_note_txt'] = 'Placeholder:'; +$wb['munin_url_txt'] = 'Munin URL'; +$wb['munin_user_txt'] = 'Munin User'; +$wb['munin_password_txt'] = 'Munin Password'; +$wb['munin_url_error_regex'] = 'Invalid Munin URL'; +$wb['munin_url_note_txt'] = 'Placeholder:'; +$wb["v6_prefix_txt"] = 'IPv6 Prefix'; +$wb["vhost_rewrite_v6_txt"] = 'Rewrite IPv6 on Mirror'; +$wb["v6_prefix_length"] = 'Prefix too long according to defined IPv6 '; +$wb['backup_dir_is_mount_txt'] = 'Backup directory is a mount?'; +$wb['backup_dir_mount_cmd_txt'] = 'Mount command, if backup directory not mounted'; +$wb['backup_delete_txt'] = 'Delete backups on domain/website delete'; +$wb["overquota_db_notify_admin_txt"] = 'Send DB quota warnings to admin'; +$wb["overquota_db_notify_client_txt"] = 'Send DB quota warnings to client'; +$wb['monitor_system_updates_txt'] = 'Check for Linux updates'; +$wb['php_handler_txt'] = "Default PHP Handler"; +$wb['php_fpm_incron_reload_txt'] = 'Install incron trigger file to reload PHP-FPM'; +$wb['disabled_txt'] = 'Disabled'; +$wb['dkim_strength_txt'] = 'DKIM strength'; +$wb['monitor_system_updates_txt'] = 'Check for Linux updates'; +$wb['invalid_apache_user_txt'] = 'Invalid apache user.'; +$wb['invalid_apache_group_txt'] = 'Invalid apache group.'; +$wb['backup_dir_error_regex'] = 'Invalid backup directory.'; +$wb['maildir_path_error_regex'] = 'Invalid maildir path.'; +$wb['homedir_path_error_regex'] = 'Invalid homedir path.'; +$wb['mailuser_name_error_regex'] = 'Invalid mailuser name.'; +$wb['mailuser_group_name_error_regex'] = 'Invalid mailuser group name.'; +$wb['mailuser_uid_error_range'] = 'Mailuser uid must be >= 2000'; +$wb['mailuser_gid_error_range'] = 'Mailuser gid must be >= 2000'; +$wb['getmail_config_dir_error_regex'] = 'Invalid getmail config directory.'; +$wb['website_basedir_error_regex'] = 'Invalid website basedir path, min. length 5 chars.'; +$wb['website_symlinks_error_regex'] = 'Invalid website symlinks.'; +$wb['vhost_conf_dir_error_regex'] = 'Invalid vhost config directory.'; +$wb['vhost_conf_enabled_dir_error_regex'] = 'Invalid vhost conf enabled directory.'; +$wb['nginx_vhost_conf_dir_error_regex'] = 'Invalid nginx config directory.'; +$wb['nginx_vhost_conf_enabled_dir_error_regex'] = 'Invalid nginx conf enabled directory.'; +$wb['ca_path_error_regex'] = 'Invalid CA path.'; +$wb['invalid_nginx_user_txt'] = 'Invalid nginx user.'; +$wb['invalid_nginx_group_txt'] = 'Invalid nginx group.'; +$wb['php_ini_path_apache_error_regex'] = 'Invalid apache php.ini path.'; +$wb['php_ini_path_cgi_error_regex'] = 'Invalid cgi php.ini path.'; +$wb['php_fpm_init_script_error_regex'] = 'Invalid php-fpm init script.'; +$wb['php_fpm_ini_path_error_regex'] = 'Invalid php-fpm ini path.'; +$wb['php_fpm_pool_dir_error_regex'] = 'Invalid php-fpm pool directory.'; +$wb['php_fpm_socket_dir_error_regex'] = 'Invalid php-fpm socket directory.'; +$wb['php_open_basedir_error_regex'] = 'Invalid php open_basedir.'; +$wb['awstats_data_dir_empty'] = 'awstats data directory is empty'; +$wb['awstats_data_dir_error_regex'] = 'Invalid awstats data directory.'; +$wb['awstats_pl_empty'] = 'awstats.pl setting is empty.'; +$wb['awstats_pl_error_regex'] = 'Invalid awstats.pl path.'; +$wb['awstats_buildstaticpages_pl_empty'] = 'awstats_buildstaticpages.pl is empty'; +$wb['awstats_buildstaticpages_pl_error_regex'] = 'Invalid awstats_buildstaticpages.pl path.'; +$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['named_conf_path_error_regex'] = 'Invalid named.conf path.'; +$wb['named_conf_local_path_error_regex'] = 'Invalid named.conf.local path.'; +$wb['fastcgi_starter_path_error_regex'] = 'Invalid fastcgi starter path.'; +$wb['fastcgi_starter_script_error_regex'] = 'Invalid fastcgi starter script.'; +$wb['fastcgi_alias_error_regex'] = 'Invalid fastcgi alias.'; +$wb['fastcgi_phpini_path_error_regex'] = 'Invalid fastcgi path.'; +$wb['fastcgi_bin_error_regex'] = 'Invalid fastcgi bin.'; +$wb['jailkit_chroot_home_error_regex'] = 'Invalid jaikit chroot home.'; +$wb['jailkit_chroot_app_sections_error_regex'] = 'Invalid jaikit chroot sections.'; +$wb['jailkit_chroot_app_programs_error_regex'] = 'Invalid jaikit chroot app programs.'; +$wb['jailkit_chroot_cron_programs_error_regex'] = 'Invalid jaikit chroot cron programs.'; +$wb['vlogger_config_dir_error_regex'] = 'Invalid vlogger config dir.'; +$wb['cron_init_script_error_regex'] = 'Invalid cron init script.'; +$wb['crontab_dir_error_regex'] = 'Invalid crontab directory.'; +$wb['cron_wget_error_regex'] = 'Invalid cron wget path.'; +$wb['network_filesystem_txt'] = 'Network Filesystem'; +$wb['php_ini_check_minutes_txt'] = 'Check php.ini every X minutes for changes'; +$wb['php_ini_check_minutes_error_empty'] = 'Please specify a value how often php.ini should be checked for changes.'; +$wb['php_ini_check_minutes_info_txt'] = '0 = no check'; +$wb['enable_spdy_txt'] = 'Makes SPDY/HTTP2 available'; +$wb['web_settings_txt'] = 'Web Server'; +$wb['xmpp_server_txt'] = 'XMPP Server'; +$wb['xmpp_use_ipv6_txt'] = 'Use IPv6'; +$wb['xmpp_bosh_max_inactivity_txt'] = 'Max. BOSH inactivity time'; +$wb['xmpp_bosh_timeout_range_wrong'] = 'Please enter a bosh timeout range between 15 - 360'; +$wb['xmpp_module_saslauth'] = 'saslauth'; +$wb['xmpp_server_admins_txt'] = 'Server Admins (JIDs)'; +$wb['xmpp_modules_enabled_txt'] = 'Serverwide enabled plugins (one per line)'; +$wb['xmpp_ports_txt'] = 'Component ports'; +$wb['xmpp_port_http_txt'] = 'HTTP'; +$wb['xmpp_port_https_txt'] = 'HTTPS'; +$wb['xmpp_port_pastebin_txt'] = 'Pastebin'; +$wb['xmpp_port_bosh_txt'] = 'BOSH'; +$wb["disable_bind_log_txt"] = "Disable bind9 messages for Loglevel WARN"; +$wb["apps_vhost_enabled_txt"] = "Apps-vhost enabled"; +$wb['skip_le_check_txt'] = 'Skip Lets Encrypt Check'; +$wb['migration_mode_txt'] = 'Server Migration Mode'; +$wb['nginx_enable_pagespeed_txt'] = 'Makes Pagespeed available'; +$wb['logging_txt'] = 'Store website access and error logs'; +$wb['logging_desc_txt'] = 'Use Tools > Resync to apply changes to existing sites. For Apache, access and error log can be anonymized. For nginx, only the access log is anonymized, the error log will contain IP addresses.'; +$wb['log_retention_txt'] = 'Log retention (days)'; +$wb['log_retention_error_ispositive'] = 'Log retention must be a number > 0'; +$wb['php_default_name_txt'] = 'Description Default PHP-Version'; +$wb['php_default_name_error_empty'] = 'Description Default PHP-Version must not be empty'; +$wb['error_mailbox_message_size_txt'] = 'Mailbox size must be larger or equal to message size'; +$wb['php_fpm_reload_mode_txt'] = 'PHP-FPM reload mode'; +?> diff --git a/interface/web/admin/lib/lang/en_server_config.lng.rej b/interface/web/admin/lib/lang/en_server_config.lng.rej new file mode 100644 index 000000000..146024976 --- /dev/null +++ b/interface/web/admin/lib/lang/en_server_config.lng.rej @@ -0,0 +1,11 @@ +--- interface/web/admin/lib/lang/en_server_config.lng ++++ interface/web/admin/lib/lang/en_server_config.lng +@@ -296,4 +296,7 @@ $wb['log_retention_error_ispositive'] = 'Log retention must be a number > 0'; + $wb['php_default_name_txt'] = 'Description Default PHP-Version'; + $wb['php_default_name_error_empty'] = 'Description Default PHP-Version must not be empty'; + $wb['error_mailbox_message_size_txt'] = 'Mailbox size must be larger or equal to message size'; +-?> ++$wb['content_filter_txt'] = 'Content Filter'; ++$wb['rspamd_url_txt'] = 'Rspamd URL'; ++$wb['rspamd_user_txt'] = 'Rspamd User'; ++$wb['rspamd_password_txt'] = 'Rspamd Password'; \ No newline at end of file diff --git a/interface/web/admin/server_config_edit.php b/interface/web/admin/server_config_edit.php index 523671c0c..8a7cd770a 100644 --- a/interface/web/admin/server_config_edit.php +++ b/interface/web/admin/server_config_edit.php @@ -52,6 +52,21 @@ $app->load('tform_actions'); class page_action extends tform_actions { + function onShow() { + global $app, $conf; + + // get the config + $app->uses('getconf'); + $web_config = $app->getconf->get_server_config($conf['server_id'], 'web'); + + if($web_config['server_type'] == 'nginx'){ + unset($app->tform->formDef["tabs"]["fastcgi"]); + unset($app->tform->formDef["tabs"]["vlogger"]); + } + + parent::onShow(); + } + function onSubmit() { global $app, $conf; @@ -73,11 +88,17 @@ class page_action extends tform_actions { $server_id = $this->id; $this->dataRecord = $app->getconf->get_server_config($server_id, $section); + + if($section == 'mail'){ + $server_config = $app->getconf->get_server_config($server_id, 'server'); + $rspamd_url = 'https://'.$server_config['hostname'].':8081/rspamd/'; + } } $record = $app->tform->getHTML($this->dataRecord, $this->active_tab, 'EDIT'); $record['id'] = $this->id; + if(isset($rspamd_url)) $record['rspamd_url'] = $rspamd_url; $app->tpl->setVar($record); } @@ -112,6 +133,14 @@ class page_action extends tform_actions { } } + if($section === 'mail') { + if(isset($server_config_array['mail']['rspamd_available']) && $server_config_array['mail']['rspamd_available'] === 'y') { + $this->dataRecord['rspamd_available'] = 'y'; + } else { + $this->dataRecord['rspamd_available'] = 'n'; + } + } + if($app->tform->errorMessage == '') { $server_config_array[$section] = $app->tform->encode($this->dataRecord, $section); $server_config_str = $app->ini_parser->get_ini_string($server_config_array); @@ -123,6 +152,48 @@ class page_action extends tform_actions { } } + function onAfterUpdate() { + global $app; + + if(isset($this->dataRecord['content_filter'])){ + $app->uses('ini_parser'); + $old_config = $app->ini_parser->parse_ini_string(stripslashes($this->oldDataRecord['config'])); + if($this->dataRecord['content_filter'] == 'rspamd' && $old_config['mail']['content_filter'] != $this->dataRecord['content_filter']){ + + $spamfilter_users = $app->db->queryAllRecords("SELECT * FROM spamfilter_users WHERE server_id = ?", intval($this->id)); + if(is_array($spamfilter_users) && !empty($spamfilter_users)){ + foreach($spamfilter_users as $spamfilter_user){ + $app->db->datalogUpdate('spamfilter_users', $spamfilter_user, 'id', $spamfilter_user["id"], true); + } + } + + $spamfilter_wblists = $app->db->queryAllRecords("SELECT * FROM spamfilter_wblist WHERE server_id = ?", intval($this->id)); + if(is_array($spamfilter_wblists) && !empty($spamfilter_wblists)){ + foreach($spamfilter_wblists as $spamfilter_wblist){ + $app->db->datalogUpdate('spamfilter_wblist', $spamfilter_wblist, 'wblist_id', $spamfilter_wblist["wblist_id"], true); + } + } + + $mail_users = $app->db->queryAllRecords("SELECT * FROM mail_user WHERE server_id = ? AND (autoresponder = 'y' OR move_junk = 'y')", intval($this->id)); + if(is_array($mail_users) && !empty($mail_users)){ + foreach($mail_users as $mail_user){ + if($mail_user['autoresponder'] == 'y'){ + $mail_user['autoresponder'] = 'n'; + $app->db->datalogUpdate('mail_user', $mail_user, 'mailuser_id', $mail_user["mailuser_id"], true); + $mail_user['autoresponder'] = 'y'; + $app->db->datalogUpdate('mail_user', $mail_user, 'mailuser_id', $mail_user["mailuser_id"], true); + } else { + $mail_user['move_junk'] = 'n'; + $app->db->datalogUpdate('mail_user', $mail_user, 'mailuser_id', $mail_user["mailuser_id"], true); + $mail_user['move_junk'] = 'y'; + $app->db->datalogUpdate('mail_user', $mail_user, 'mailuser_id', $mail_user["mailuser_id"], true); + } + + } + } + } + } + } } $app->tform_actions = new page_action; diff --git a/interface/web/admin/templates/server_config_mail_edit.htm b/interface/web/admin/templates/server_config_mail_edit.htm index c1531c654..6ba37104e 100644 --- a/interface/web/admin/templates/server_config_mail_edit.htm +++ b/interface/web/admin/templates/server_config_mail_edit.htm @@ -44,6 +44,20 @@ {tmpl_var name='mail_filter_syntax'}
+
+ +
+
+
+ + +
+
+ +
+
@@ -125,3 +139,23 @@ + diff --git a/interface/web/mail/form/spamfilter_policy.tform.php b/interface/web/mail/form/spamfilter_policy.tform.php index 31e8b8092..d6ecef9bb 100644 --- a/interface/web/mail/form/spamfilter_policy.tform.php +++ b/interface/web/mail/form/spamfilter_policy.tform.php @@ -304,6 +304,42 @@ $form["tabs"]['taglevel'] = array ( 'width' => '30', 'maxlength' => '255' ), + 'rspamd_greylisting' => array ( + 'datatype' => 'VARCHAR', + 'formtype' => 'CHECKBOX', + 'default' => 'y', + 'value' => array(0 => 'n', 1 => 'y') + ), + 'rspamd_spam_greylisting_level' => array ( + 'datatype' => 'DOUBLE', + 'formtype' => 'TEXT', + 'default' => '0', + 'value' => '', + 'width' => '10', + 'maxlength' => '255' + ), + 'rspamd_spam_tag_level' => array ( + 'datatype' => 'DOUBLE', + 'formtype' => 'TEXT', + 'default' => '0', + 'value' => '', + 'width' => '10', + 'maxlength' => '255' + ), + 'rspamd_spam_tag_method' => array ( + 'datatype' => 'VARCHAR', + 'formtype' => 'SELECT', + 'default' => 'rewrite_subject', + 'value' => array('add_header' => $app->lng('add_header_txt'), 'rewrite_subject' => $app->lng('rewrite_subject_txt')) + ), + 'rspamd_spam_kill_level' => array ( + 'datatype' => 'DOUBLE', + 'formtype' => 'TEXT', + 'default' => '0', + 'value' => '', + 'width' => '10', + 'maxlength' => '255' + ), //################################# // ENDE Datatable fields //################################# diff --git a/interface/web/mail/form/spamfilter_policy.tform.php.orig b/interface/web/mail/form/spamfilter_policy.tform.php.orig new file mode 100644 index 000000000..31e8b8092 --- /dev/null +++ b/interface/web/mail/form/spamfilter_policy.tform.php.orig @@ -0,0 +1,496 @@ + 0 id must match with id of current user +$form["auth_preset"]["groupid"] = 0; // 0 = default groupid of the user, > 0 id must match with groupid of current user +$form["auth_preset"]["perm_user"] = 'riud'; //r = read, i = insert, u = update, d = delete +$form["auth_preset"]["perm_group"] = 'riud'; //r = read, i = insert, u = update, d = delete +$form["auth_preset"]["perm_other"] = 'r'; //r = read, i = insert, u = update, d = delete + +$form["tabs"]['policy'] = array ( + 'title' => "Policy", + 'width' => 100, + 'template' => "templates/spamfilter_policy_edit.htm", + 'fields' => array ( + //################################# + // Begin Datatable fields + //################################# + 'policy_name' => array ( + 'datatype' => 'VARCHAR', + 'formtype' => 'TEXT', + 'default' => '', + 'validators' => array ( 0 => array ( 'type' => 'NOTEMPTY', + 'errmsg'=> 'policyname_error_notempty'), + ), + 'filters' => array( + 0 => array( 'event' => 'SAVE', + 'type' => 'STRIPTAGS'), + 1 => array( 'event' => 'SAVE', + 'type' => 'STRIPNL') + ), + 'value' => '', + 'width' => '30', + 'maxlength' => '255' + ), + 'virus_lover' => array ( + 'datatype' => 'VARCHAR', + 'formtype' => 'SELECT', + 'default' => 'N', + 'value' => array('N' => 'No', 'Y' => 'Yes') + ), + 'spam_lover' => array ( + 'datatype' => 'VARCHAR', + 'formtype' => 'SELECT', + 'default' => 'N', + 'value' => array('N' => 'No', 'Y' => 'Yes') + ), + 'banned_files_lover' => array ( + 'datatype' => 'VARCHAR', + 'formtype' => 'SELECT', + 'default' => 'N', + 'value' => array('N' => 'No', 'Y' => 'Yes') + ), + 'bad_header_lover' => array ( + 'datatype' => 'VARCHAR', + 'formtype' => 'SELECT', + 'default' => 'N', + 'value' => array('N' => 'No', 'Y' => 'Yes') + ), + 'bypass_virus_checks' => array ( + 'datatype' => 'VARCHAR', + 'formtype' => 'SELECT', + 'default' => 'N', + 'value' => array('N' => 'No', 'Y' => 'Yes') + ), + 'bypass_banned_checks' => array ( + 'datatype' => 'VARCHAR', + 'formtype' => 'SELECT', + 'default' => 'N', + 'value' => array('N' => 'No', 'Y' => 'Yes') + ), + 'bypass_header_checks' => array ( + 'datatype' => 'VARCHAR', + 'formtype' => 'SELECT', + 'default' => 'N', + 'value' => array('N' => 'No', 'Y' => 'Yes') + ), + //################################# + // ENDE Datatable fields + //################################# + ) +); + + +$form["tabs"]['quarantine'] = array ( + 'title' => "Quarantine", + 'width' => 100, + 'template' => "templates/spamfilter_quarantine_edit.htm", + 'fields' => array ( + //################################# + // Begin Datatable fields + //################################# + 'virus_quarantine_to' => array ( + 'datatype' => 'VARCHAR', + 'formtype' => 'TEXT', + 'filters' => array( + 0 => array( 'event' => 'SAVE', + 'type' => 'STRIPTAGS'), + 1 => array( 'event' => 'SAVE', + 'type' => 'STRIPNL') + ), + 'default' => '', + 'value' => '', + 'width' => '30', + 'maxlength' => '255' + ), + 'spam_quarantine_to' => array ( + 'datatype' => 'VARCHAR', + 'formtype' => 'TEXT', + 'filters' => array( + 0 => array( 'event' => 'SAVE', + 'type' => 'STRIPTAGS'), + 1 => array( 'event' => 'SAVE', + 'type' => 'STRIPNL') + ), + 'default' => '', + 'value' => '', + 'width' => '30', + 'maxlength' => '255' + ), + 'banned_quarantine_to' => array ( + 'datatype' => 'VARCHAR', + 'formtype' => 'TEXT', + 'filters' => array( + 0 => array( 'event' => 'SAVE', + 'type' => 'STRIPTAGS'), + 1 => array( 'event' => 'SAVE', + 'type' => 'STRIPNL') + ), + 'default' => '', + 'value' => '', + 'width' => '30', + 'maxlength' => '255' + ), + 'bad_header_quarantine_to' => array ( + 'datatype' => 'VARCHAR', + 'formtype' => 'TEXT', + 'filters' => array( + 0 => array( 'event' => 'SAVE', + 'type' => 'STRIPTAGS'), + 1 => array( 'event' => 'SAVE', + 'type' => 'STRIPNL') + ), + 'default' => '', + 'value' => '', + 'width' => '30', + 'maxlength' => '255' + ), + 'clean_quarantine_to' => array ( + 'datatype' => 'VARCHAR', + 'formtype' => 'TEXT', + 'filters' => array( + 0 => array( 'event' => 'SAVE', + 'type' => 'STRIPTAGS'), + 1 => array( 'event' => 'SAVE', + 'type' => 'STRIPNL') + ), + 'default' => '', + 'value' => '', + 'width' => '30', + 'maxlength' => '255' + ), + 'other_quarantine_to' => array ( + 'datatype' => 'VARCHAR', + 'formtype' => 'TEXT', + 'filters' => array( + 0 => array( 'event' => 'SAVE', + 'type' => 'STRIPTAGS'), + 1 => array( 'event' => 'SAVE', + 'type' => 'STRIPNL') + ), + 'default' => '', + 'value' => '', + 'width' => '30', + 'maxlength' => '255' + ), + //################################# + // ENDE Datatable fields + //################################# + ) +); + +$form["tabs"]['taglevel'] = array ( + 'title' => "Tag-Level", + 'width' => 100, + 'template' => "templates/spamfilter_taglevel_edit.htm", + 'fields' => array ( + //################################# + // Begin Datatable fields + //################################# + 'spam_tag_level' => array ( + 'datatype' => 'DOUBLE', + 'formtype' => 'TEXT', + 'default' => '0', + 'value' => '', + 'width' => '10', + 'maxlength' => '255' + ), + 'spam_tag2_level' => array ( + 'datatype' => 'DOUBLE', + 'formtype' => 'TEXT', + 'default' => '0', + 'value' => '', + 'width' => '10', + 'maxlength' => '255' + ), + 'spam_kill_level' => array ( + 'datatype' => 'DOUBLE', + 'formtype' => 'TEXT', + 'default' => '0', + 'value' => '', + 'width' => '10', + 'maxlength' => '255' + ), + 'spam_dsn_cutoff_level' => array ( + 'datatype' => 'DOUBLE', + 'formtype' => 'TEXT', + 'default' => '0', + 'value' => '', + 'width' => '10', + 'maxlength' => '255' + ), + 'spam_quarantine_cutoff_level' => array ( + 'datatype' => 'DOUBLE', + 'formtype' => 'TEXT', + 'default' => '0', + 'value' => '', + 'width' => '10', + 'maxlength' => '255' + ), + 'spam_modifies_subj' => array ( + 'datatype' => 'VARCHAR', + 'formtype' => 'SELECT', + 'default' => 'N', + 'value' => array('N' => 'No', 'Y' => 'Yes') + ), + 'spam_subject_tag' => array ( + 'datatype' => 'VARCHAR', + 'formtype' => 'TEXT', + 'filters' => array( + 0 => array( 'event' => 'SAVE', + 'type' => 'STRIPTAGS'), + 1 => array( 'event' => 'SAVE', + 'type' => 'STRIPNL') + ), + 'default' => '', + 'value' => '', + 'width' => '30', + 'maxlength' => '255' + ), + 'spam_subject_tag2' => array ( + 'datatype' => 'VARCHAR', + 'formtype' => 'TEXT', + 'filters' => array( + 0 => array( 'event' => 'SAVE', + 'type' => 'STRIPTAGS'), + 1 => array( 'event' => 'SAVE', + 'type' => 'STRIPNL') + ), + 'default' => '', + 'value' => '', + 'width' => '30', + 'maxlength' => '255' + ), + //################################# + // ENDE Datatable fields + //################################# + ) +); + + +$form["tabs"]['other'] = array ( + 'title' => "Other", + 'width' => 100, + 'template' => "templates/spamfilter_other_edit.htm", + 'fields' => array ( + //################################# + // Begin Datatable fields + //################################# + 'addr_extension_virus' => array ( + 'datatype' => 'VARCHAR', + 'formtype' => 'TEXT', + 'filters' => array( + 0 => array( 'event' => 'SAVE', + 'type' => 'STRIPTAGS'), + 1 => array( 'event' => 'SAVE', + 'type' => 'STRIPNL') + ), + 'default' => '', + 'value' => '', + 'width' => '30', + 'maxlength' => '255' + ), + 'addr_extension_spam' => array ( + 'datatype' => 'VARCHAR', + 'formtype' => 'TEXT', + 'filters' => array( + 0 => array( 'event' => 'SAVE', + 'type' => 'STRIPTAGS'), + 1 => array( 'event' => 'SAVE', + 'type' => 'STRIPNL') + ), + 'default' => '', + 'value' => '', + 'width' => '30', + 'maxlength' => '255' + ), + 'addr_extension_banned' => array ( + 'datatype' => 'VARCHAR', + 'formtype' => 'TEXT', + 'filters' => array( + 0 => array( 'event' => 'SAVE', + 'type' => 'STRIPTAGS'), + 1 => array( 'event' => 'SAVE', + 'type' => 'STRIPNL') + ), + 'default' => '', + 'value' => '', + 'width' => '30', + 'maxlength' => '255' + ), + 'addr_extension_bad_header' => array ( + 'datatype' => 'VARCHAR', + 'formtype' => 'TEXT', + 'filters' => array( + 0 => array( 'event' => 'SAVE', + 'type' => 'STRIPTAGS'), + 1 => array( 'event' => 'SAVE', + 'type' => 'STRIPNL') + ), + 'default' => '', + 'value' => '', + 'width' => '30', + 'maxlength' => '255' + ), + 'warnvirusrecip' => array ( + 'datatype' => 'VARCHAR', + 'formtype' => 'SELECT', + 'default' => 'N', + 'value' => array('N' => 'No', 'Y' => 'Yes') + ), + 'warnbannedrecip' => array ( + 'datatype' => 'VARCHAR', + 'formtype' => 'SELECT', + 'default' => 'N', + 'value' => array('N' => 'No', 'Y' => 'Yes') + ), + 'warnbadhrecip' => array ( + 'datatype' => 'VARCHAR', + 'formtype' => 'SELECT', + 'default' => 'N', + 'value' => array('N' => 'No', 'Y' => 'Yes') + ), + 'newvirus_admin' => array ( + 'datatype' => 'VARCHAR', + 'formtype' => 'TEXT', + 'filters' => array( + 0 => array( 'event' => 'SAVE', + 'type' => 'STRIPTAGS'), + 1 => array( 'event' => 'SAVE', + 'type' => 'STRIPNL') + ), + 'default' => '', + 'value' => '', + 'width' => '30', + 'maxlength' => '255' + ), + 'virus_admin' => array ( + 'datatype' => 'VARCHAR', + 'formtype' => 'TEXT', + 'filters' => array( + 0 => array( 'event' => 'SAVE', + 'type' => 'STRIPTAGS'), + 1 => array( 'event' => 'SAVE', + 'type' => 'STRIPNL') + ), + 'default' => '', + 'value' => '', + 'width' => '30', + 'maxlength' => '255' + ), + 'banned_admin' => array ( + 'datatype' => 'VARCHAR', + 'formtype' => 'TEXT', + 'filters' => array( + 0 => array( 'event' => 'SAVE', + 'type' => 'STRIPTAGS'), + 1 => array( 'event' => 'SAVE', + 'type' => 'STRIPNL') + ), + 'default' => '', + 'value' => '', + 'width' => '30', + 'maxlength' => '255' + ), + 'bad_header_admin' => array ( + 'datatype' => 'VARCHAR', + 'formtype' => 'TEXT', + 'filters' => array( + 0 => array( 'event' => 'SAVE', + 'type' => 'STRIPTAGS'), + 1 => array( 'event' => 'SAVE', + 'type' => 'STRIPNL') + ), + 'default' => '', + 'value' => '', + 'width' => '30', + 'maxlength' => '255' + ), + 'spam_admin' => array ( + 'datatype' => 'VARCHAR', + 'formtype' => 'TEXT', + 'filters' => array( + 0 => array( 'event' => 'SAVE', + 'type' => 'STRIPTAGS'), + 1 => array( 'event' => 'SAVE', + 'type' => 'STRIPNL') + ), + 'default' => '', + 'value' => '', + 'width' => '30', + 'maxlength' => '255' + ), + + 'message_size_limit' => array ( + 'datatype' => 'INTEGER', + 'formtype' => 'TEXT', + 'default' => '', + 'value' => '', + 'width' => '10', + 'maxlength' => '255' + ), + 'banned_rulenames' => array ( + 'datatype' => 'VARCHAR', + 'formtype' => 'TEXT', + 'filters' => array( + 0 => array( 'event' => 'SAVE', + 'type' => 'STRIPTAGS'), + 1 => array( 'event' => 'SAVE', + 'type' => 'STRIPNL') + ), + 'default' => '', + 'value' => '', + 'width' => '30', + 'maxlength' => '255' + ), + + //################################# + // ENDE Datatable fields + //################################# + ) +); + +?> diff --git a/interface/web/mail/lib/lang/de_spamfilter_policy.lng b/interface/web/mail/lib/lang/de_spamfilter_policy.lng index 32acca468..04b827447 100644 --- a/interface/web/mail/lib/lang/de_spamfilter_policy.lng +++ b/interface/web/mail/lib/lang/de_spamfilter_policy.lng @@ -35,4 +35,10 @@ $wb['bad_header_admin_txt'] = 'Bad Header Administrator'; $wb['spam_admin_txt'] = 'SPAM Administrator'; $wb['message_size_limit_txt'] = 'Nachrichtengrößen Limit'; $wb['banned_rulenames_txt'] = 'Banned Richtliniennamen'; -?> +$wb['rspamd_greylisting_txt'] = 'Greylisting nutzen'; +$wb['rspamd_spam_greylisting_level_txt'] = 'Greylisting-Level'; +$wb['rspamd_spam_tag_level_txt'] = 'SPAM-Markierungslevel'; +$wb['rspamd_spam_tag_method_txt'] = 'SPAM-Markierungsmethode'; +$wb['rspamd_spam_kill_level_txt'] = 'SPAM-Reject-Level'; +$wb['btn_save_txt'] = 'Speichern'; +$wb['btn_cancel_txt'] = 'Abbrechen'; diff --git a/interface/web/mail/lib/lang/en.lng b/interface/web/mail/lib/lang/en.lng index e5f9e678c..22c67a286 100644 --- a/interface/web/mail/lib/lang/en.lng +++ b/interface/web/mail/lib/lang/en.lng @@ -48,4 +48,5 @@ $wb['Global Filters'] = 'Global Filters'; $wb['Domain Alias'] = 'Domain Alias'; $wb["Relay Recipients"] = 'Relay Recipients'; $wb['Mailbox quota'] = 'Mailbox quota'; -?> \ No newline at end of file +$wb['add_header_txt'] = 'Header (adds "X-Spam: Yes")'; +$wb['rewrite_subject_txt'] = 'Subject (adds "***SPAM***" at the beginning)'; diff --git a/interface/web/mail/lib/lang/en_spamfilter_policy.lng b/interface/web/mail/lib/lang/en_spamfilter_policy.lng index 2e0f05d6c..f9e8a8e30 100644 --- a/interface/web/mail/lib/lang/en_spamfilter_policy.lng +++ b/interface/web/mail/lib/lang/en_spamfilter_policy.lng @@ -35,4 +35,11 @@ $wb["bad_header_admin_txt"] = 'Bad header admin'; $wb["spam_admin_txt"] = 'SPAM admin'; $wb["message_size_limit_txt"] = 'Message size limit'; $wb["banned_rulenames_txt"] = 'Banned rulenames'; -?> +$wb['rspamd_greylisting_txt'] = 'Use greylisting'; +$wb['rspamd_spam_greylisting_level_txt'] = 'Greylisting level'; +$wb['rspamd_spam_tag_level_txt'] = 'SPAM tag level'; +$wb['rspamd_spam_tag_method_txt'] = 'SPAM tag method'; +$wb['rspamd_spam_kill_level_txt'] = 'SPAM reject level'; +$wb['btn_save_txt'] = 'Save'; +$wb['btn_cancel_txt'] = 'Cancel'; +?> \ No newline at end of file diff --git a/interface/web/mail/mail_domain_edit.php b/interface/web/mail/mail_domain_edit.php index 72877a774..28d4f4091 100644 --- a/interface/web/mail/mail_domain_edit.php +++ b/interface/web/mail/mail_domain_edit.php @@ -273,7 +273,10 @@ class page_action extends tform_actions { } //* make sure that the email domain is lowercase - if(isset($this->dataRecord["domain"])) $this->dataRecord["domain"] = strtolower($this->dataRecord["domain"]); + if(isset($this->dataRecord["domain"])){ + $this->dataRecord["domain"] = $app->functions->idn_encode($this->dataRecord["domain"]); + $this->dataRecord["domain"] = strtolower($this->dataRecord["domain"]); + } parent::onSubmit(); @@ -317,7 +320,7 @@ class page_action extends tform_actions { $soaDomain = $this->dataRecord['domain'].'.'; while ((!isset($soa) && (substr_count($soaDomain,'.') > 1))) { $soa = $app->db->queryOneRecord("SELECT id AS zone, sys_userid, sys_groupid, sys_perm_user, sys_perm_group, sys_perm_other, server_id, ttl, serial FROM dns_soa WHERE active = 'Y' AND origin = ?", $soaDomain); - $soaDomain = preg_replace("/^\w+\./","",$soaDomain); + $soaDomain = preg_replace("/^[^\.]+\./","",$soaDomain); } if ( isset($soa) && !empty($soa) ) $this->update_dns($this->dataRecord, $soa); } @@ -450,7 +453,7 @@ class page_action extends tform_actions { $soaDomain = $domain.'.'; while ((!isset($soa) && (substr_count($soaDomain,'.') > 1))) { $soa = $app->db->queryOneRecord("SELECT id AS zone, sys_userid, sys_groupid, sys_perm_user, sys_perm_group, sys_perm_other, server_id, ttl, serial FROM dns_soa WHERE active = 'Y' AND origin = ?", $soaDomain); - $soaDomain = preg_replace("/^[\w\-]+\./","",$soaDomain); + $soaDomain = preg_replace("/^[^\.]+\./","",$soaDomain); } if ( ($selector || $dkim_private || $dkim_active) && $dkim_active ) diff --git a/interface/web/mail/mail_user_edit.php b/interface/web/mail/mail_user_edit.php index 910d7a096..263b98ef3 100644 --- a/interface/web/mail/mail_user_edit.php +++ b/interface/web/mail/mail_user_edit.php @@ -295,7 +295,7 @@ class page_action extends tform_actions { "priority" => 10, "policy_id" => $policy_id, "email" => $this->dataRecord["email"], - "fullname" => $this->dataRecord["email"], + "fullname" => $app->functions->idn_decode($this->dataRecord["email"]), "local" => 'Y' ); $app->db->datalogInsert('spamfilter_users', $insert_data, 'id'); @@ -342,7 +342,7 @@ class page_action extends tform_actions { "priority" => 10, "policy_id" => $policy_id, "email" => $this->dataRecord["email"], - "fullname" => $this->dataRecord["email"], + "fullname" => $app->functions->idn_decode($this->dataRecord["email"]), "local" => 'Y' ); $app->db->datalogInsert('spamfilter_users', $insert_data, 'id'); diff --git a/interface/web/mail/spamfilter_policy_edit.php b/interface/web/mail/spamfilter_policy_edit.php index 532050684..55a42fe84 100644 --- a/interface/web/mail/spamfilter_policy_edit.php +++ b/interface/web/mail/spamfilter_policy_edit.php @@ -49,6 +49,46 @@ $app->uses('tpl,tform,tform_actions'); $app->load('tform_actions'); class page_action extends tform_actions { + + function onShow() { + global $app, $conf; + + // get the config + $app->uses('getconf'); + $mail_config = $app->getconf->get_server_config($conf['server_id'], 'mail'); + + $content_filter = 'amavisd'; + if($mail_config['content_filter'] == 'rspamd'){ + $content_filter = 'rspamd'; + unset($app->tform->formDef["tabs"]["policy"]['fields']['banned_files_lover']); + unset($app->tform->formDef["tabs"]["policy"]['fields']['bad_header_lover']); + unset($app->tform->formDef["tabs"]["policy"]['fields']['bypass_virus_checks']); + unset($app->tform->formDef["tabs"]["policy"]['fields']['bypass_banned_checks']); + unset($app->tform->formDef["tabs"]["policy"]['fields']['bypass_header_checks']); + + unset($app->tform->formDef["tabs"]["taglevel"]['fields']['spam_tag_level']); + unset($app->tform->formDef["tabs"]["taglevel"]['fields']['spam_tag2_level']); + unset($app->tform->formDef["tabs"]["taglevel"]['fields']['spam_kill_level']); + unset($app->tform->formDef["tabs"]["taglevel"]['fields']['spam_dsn_cutoff_level']); + unset($app->tform->formDef["tabs"]["taglevel"]['fields']['spam_quarantine_cutoff_level']); + unset($app->tform->formDef["tabs"]["taglevel"]['fields']['spam_modifies_subj']); + unset($app->tform->formDef["tabs"]["taglevel"]['fields']['spam_subject_tag']); + unset($app->tform->formDef["tabs"]["taglevel"]['fields']['spam_subject_tag2']); + + unset($app->tform->formDef["tabs"]["quarantine"]); + unset($app->tform->formDef["tabs"]["other"]); + } else { + unset($app->tform->formDef["tabs"]["taglevel"]['fields']['rspamd_greylisting']); + unset($app->tform->formDef["tabs"]["taglevel"]['fields']['rspamd_spam_greylisting_level']); + unset($app->tform->formDef["tabs"]["taglevel"]['fields']['rspamd_spam_tag_level']); + unset($app->tform->formDef["tabs"]["taglevel"]['fields']['rspamd_spam_tag_method']); + unset($app->tform->formDef["tabs"]["taglevel"]['fields']['rspamd_spam_kill_level']); + } + $app->tpl->setVar("content_filter", $content_filter); + + parent::onShow(); + } + function onShowNew() { global $app, $conf; @@ -86,11 +126,37 @@ class page_action extends tform_actions { parent::onSubmit(); } + + function onAfterUpdate() { + global $app, $conf; + + $app->uses('getconf'); + $mail_config = $app->getconf->get_server_config($conf['server_id'], 'mail'); + + if($mail_config['content_filter'] == 'rspamd'){ + $record_has_changed = false; + if(isset($this->dataRecord['rspamd_spam_greylisting_level']) && !isset($this->dataRecord['rspamd_greylisting'])) $this->dataRecord['rspamd_greylisting'] = 'n'; + foreach($this->dataRecord as $key => $val) { + if(isset($this->oldDataRecord[$key]) && @$this->oldDataRecord[$key] != $val) { + // Record has changed + $record_has_changed = true; + } + } + + if($record_has_changed){ + $spamfilter_users = $app->db->queryAllRecords("SELECT * FROM spamfilter_users WHERE policy_id = ?", intval($this->id)); + + if(is_array($spamfilter_users) && !empty($spamfilter_users)){ + foreach($spamfilter_users as $spamfilter_user){ + $app->db->datalogUpdate('spamfilter_users', $spamfilter_user, 'id', $spamfilter_user["id"], true); + } + } + } + } + } } $app->tform_actions = new page_action; $app->tform_actions->onLoad(); - - -?> +?> \ No newline at end of file diff --git a/interface/web/mail/spamfilter_policy_list.php b/interface/web/mail/spamfilter_policy_list.php index c2ab38d5f..2aa7c7bec 100644 --- a/interface/web/mail/spamfilter_policy_list.php +++ b/interface/web/mail/spamfilter_policy_list.php @@ -16,9 +16,28 @@ $list_def_file = "list/spamfilter_policy.list.php"; $app->auth->check_module_permissions('mail'); $app->uses('listform_actions'); -//$app->listform_actions->SQLExtWhere = "wb = 'W'"; -$app->listform_actions->onLoad(); - - -?> +class list_action extends listform_actions { + + function onShow() { + global $app, $conf; + + // get the config + $app->uses('getconf'); + $mail_config = $app->getconf->get_server_config($conf['server_id'], 'mail'); + + $content_filter = 'amavisd'; + if($mail_config['content_filter'] == 'rspamd'){ + $content_filter = 'rspamd'; + } + $app->tpl->setVar("content_filter", $content_filter); + + parent::onShow(); + } + +} + +$list = new list_action; +//$list->SQLExtWhere = "wb = 'W'"; +$list->onLoad(); +?> \ No newline at end of file diff --git a/interface/web/mail/templates/spamfilter_policy_edit.htm b/interface/web/mail/templates/spamfilter_policy_edit.htm index 317bbdb82..0496d3a85 100644 --- a/interface/web/mail/templates/spamfilter_policy_edit.htm +++ b/interface/web/mail/templates/spamfilter_policy_edit.htm @@ -20,6 +20,7 @@ {tmpl_var name='spam_lover'} +
- +
diff --git a/interface/web/mail/templates/spamfilter_policy_list.htm b/interface/web/mail/templates/spamfilter_policy_list.htm index da1183d75..0dd72dee5 100644 --- a/interface/web/mail/templates/spamfilter_policy_list.htm +++ b/interface/web/mail/templates/spamfilter_policy_list.htm @@ -19,16 +19,20 @@ + + {tmpl_var name='search_limit'} + + @@ -40,8 +44,10 @@ {tmpl_var name="policy_name"} {tmpl_var name="virus_lover"} {tmpl_var name="spam_lover"} + {tmpl_var name="banned_files_lover"} {tmpl_var name="bad_header_lover"} + @@ -49,14 +55,14 @@ - {tmpl_var name='globalsearch_noresults_text_txt'} + {tmpl_var name='globalsearch_noresults_text_txt'} - + diff --git a/interface/web/mail/templates/spamfilter_taglevel_edit.htm b/interface/web/mail/templates/spamfilter_taglevel_edit.htm index ba92662ba..1b3c3b482 100644 --- a/interface/web/mail/templates/spamfilter_taglevel_edit.htm +++ b/interface/web/mail/templates/spamfilter_taglevel_edit.htm @@ -4,7 +4,7 @@

- +
@@ -32,6 +32,33 @@
+
+ +
+ +
+ {tmpl_var name='rspamd_greylisting'} +
+
+
+ +
+
+
+ +
+
+
+ +
+
+
+ +
+
+
@@ -39,4 +66,4 @@
-
\ No newline at end of file + diff --git a/server/conf/apache_apps.vhost.master b/server/conf/apache_apps.vhost.master index d533f7b3c..94982a6dc 100644 --- a/server/conf/apache_apps.vhost.master +++ b/server/conf/apache_apps.vhost.master @@ -74,6 +74,16 @@
+{tmpl_if name="use_rspamd"} + + Order allow,deny + Allow from all + + RewriteEngine On + RewriteRule ^/rspamd$ /rspamd/ [R,L] + RewriteRule ^/rspamd/(.*) http://127.0.0.1:11334/$1 [P] +{/tmpl_if} + diff --git a/server/conf/autoresponder.master b/server/conf/autoresponder.master index 0126c998d..114db23d6 100644 --- a/server/conf/autoresponder.master +++ b/server/conf/autoresponder.master @@ -4,7 +4,7 @@ if ($RETURNCODE==1) { if (!/^List-Unsubscribe:.*/:h ) { - if (!/^X-Spam-Flag: YES/:h ) + if (!/^(X-Spam-Flag: YES|X-Spam: Yes|Subject: \*\*\*\s*SPAM\s*\*\*\*.*)/:h ) { NOW=time if ({start_date} lt $NOW && {end_date} gt $NOW) diff --git a/server/conf/nginx_apps.vhost.master b/server/conf/nginx_apps.vhost.master index ed5e3a49a..8a97f82a4 100644 --- a/server/conf/nginx_apps.vhost.master +++ b/server/conf/nginx_apps.vhost.master @@ -199,4 +199,29 @@ server { alias /var/lib/mailman/archives/public; autoindex on; } + + {use_rspamd}location /rspamd/ { + {use_rspamd}proxy_pass http://127.0.0.1:11334/; + {use_rspamd}rewrite ^//(.*) /$1; + {use_rspamd}proxy_set_header X-Forwarded-Proto $scheme; + {use_rspamd}proxy_set_header Host $host; + {use_rspamd}proxy_set_header X-Real-IP $remote_addr; + {use_rspamd}proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for; + {use_rspamd}proxy_pass_header Authorization; + {use_rspamd}client_max_body_size 0; + {use_rspamd}client_body_buffer_size 1m; + {use_rspamd}proxy_intercept_errors on; + {use_rspamd}proxy_buffering on; + {use_rspamd}proxy_buffer_size 128k; + {use_rspamd}proxy_buffers 256 16k; + {use_rspamd}proxy_busy_buffers_size 256k; + {use_rspamd}proxy_temp_file_write_size 256k; + {use_rspamd}proxy_max_temp_file_size 0; + {use_rspamd}proxy_read_timeout 300; + {use_rspamd} + {use_rspamd}location ~* ^/rspamd/(.+\.(jpg|jpeg|gif|css|png|js|ico|html?|xml|txt))$ { + {use_rspamd}alias /usr/share/rspamd/www/$1; + {use_rspamd}} + {use_rspamd}} + } diff --git a/server/conf/rspamd_users.inc.conf.master b/server/conf/rspamd_users.inc.conf.master new file mode 100644 index 000000000..18934c276 --- /dev/null +++ b/server/conf/rspamd_users.inc.conf.master @@ -0,0 +1,41 @@ +spamfilter_users- { + priority = ; + rcptfrom = ""; + + want_spam = yes; + + + apply "default" { + CLAM_VIRUS = 1999.0; + JUST_EICAR = 1999.0; + actions { + reject = 999.0; + } + } + + + apply "default" { + CLAM_VIRUS = -999.0; + JUST_EICAR = -999.0; + actions { + greylist = ; + + = ; + reject = ; + } + } + + + apply "default" { + CLAM_VIRUS = ; + JUST_EICAR = ; + actions { + greylist = ; + + = ; + reject = ; + } + } + + +} \ No newline at end of file diff --git a/server/conf/rspamd_worker-controller.inc.master b/server/conf/rspamd_worker-controller.inc.master new file mode 100644 index 000000000..75b744c88 --- /dev/null +++ b/server/conf/rspamd_worker-controller.inc.master @@ -0,0 +1,8 @@ +# Included from top-level .conf file + +type = "controller"; +count = 1; +password = ""; +secure_ip = "127.0.0.1"; +secure_ip = "::1"; +static_dir = "${WWWDIR}"; \ No newline at end of file diff --git a/server/conf/sieve_filter.master b/server/conf/sieve_filter.master index 8e78c6c83..13c08dd56 100644 --- a/server/conf/sieve_filter.master +++ b/server/conf/sieve_filter.master @@ -1,4 +1,4 @@ -require ["fileinto", "regex", "vacation"]; +require ["fileinto", "regex", "date", "relational", "vacation", "imap4flags", "envelope", "subaddress", "copy", "reject"]; # Send a copy of email to @@ -9,7 +9,7 @@ redirect ""; # Move spam to spam folder -if header :contains "X-Spam-Flag" "YES" { +if anyof (header :contains "X-Spam-Flag" "YES", header :contains "X-Spam" "Yes", header :contains "subject" "*** SPAM ***", header :contains "subject" "***SPAM***") { fileinto "Junk"; # Stop here so that we do not reply on spams stop; @@ -26,7 +26,7 @@ keep; ################################################################# # Move spam to spam folder -if header :contains "X-Spam-Flag" "YES" { +if anyof (header :contains "X-Spam-Flag" "YES", header :contains "X-Spam" "Yes", header :contains "subject" "*** SPAM ***", header :contains "subject" "***SPAM***") { fileinto "Junk"; # Stop here so that we do not reply on spams stop; diff --git a/server/conf/sieve_filter_1.2.master b/server/conf/sieve_filter_1.2.master index b1f7fcb87..524469310 100644 --- a/server/conf/sieve_filter_1.2.master +++ b/server/conf/sieve_filter_1.2.master @@ -1,8 +1,8 @@ -require ["fileinto", "regex", "date", "relational", "vacation"]; +require ["fileinto", "regex", "date", "relational", "vacation", "imap4flags", "envelope", "subaddress", "copy", "reject"]; # Move spam to spam folder -if header :contains "X-Spam-Flag" "YES" { +if anyof (header :contains "X-Spam-Flag" "YES", header :contains "X-Spam" "Yes", header :contains "subject" "*** SPAM ***", header :contains "subject" "***SPAM***") { fileinto "Junk"; # Stop here so that we do not reply on spams stop; @@ -26,7 +26,7 @@ keep; ################################################################# # Move spam to spam folder -if header :contains "X-Spam-Flag" "YES" { +if anyof (header :contains "X-Spam-Flag" "YES", header :contains "X-Spam" "Yes", header :contains "subject" "*** SPAM ***", header :contains "subject" "***SPAM***") { # Stop here so that we do not reply on spams stop; } diff --git a/server/mods-available/mail_module.inc.php b/server/mods-available/mail_module.inc.php index bc6d29014..14cbbb24e 100644 --- a/server/mods-available/mail_module.inc.php +++ b/server/mods-available/mail_module.inc.php @@ -55,7 +55,14 @@ class mail_module { 'mail_content_filter_delete', 'mail_mailinglist_insert', 'mail_mailinglist_update', - 'mail_mailinglist_delete'); + 'mail_mailinglist_delete', + 'spamfilter_users_insert', + 'spamfilter_users_update', + 'spamfilter_users_delete', + 'spamfilter_wblist_insert', + 'spamfilter_wblist_update', + 'spamfilter_wblist_delete' + ); //* This function is called during ispconfig installation to determine // if a symlink shall be created for this plugin. @@ -102,7 +109,10 @@ class mail_module { $app->modules->registerTableHook('mail_get', 'mail_module', 'process'); $app->modules->registerTableHook('mail_content_filter', 'mail_module', 'process'); $app->modules->registerTableHook('mail_mailinglist', 'mail_module', 'process'); + $app->modules->registerTableHook('spamfilter_users', 'mail_module', 'process'); + $app->modules->registerTableHook('spamfilter_wblist', 'mail_module', 'process'); + $app->services->registerService('rspamd', 'mail_module', 'restartRspamd'); } /* @@ -154,9 +164,34 @@ class mail_module { if($action == 'u') $app->plugins->raiseEvent('mail_mailinglist_update', $data); if($action == 'd') $app->plugins->raiseEvent('mail_mailinglist_delete', $data); break; + case 'spamfilter_users': + if($action == 'i') $app->plugins->raiseEvent('spamfilter_users_insert', $data); + if($action == 'u') $app->plugins->raiseEvent('spamfilter_users_update', $data); + if($action == 'd') $app->plugins->raiseEvent('spamfilter_users_delete', $data); + break; + case 'spamfilter_wblist': + if($action == 'i') $app->plugins->raiseEvent('spamfilter_wblist_insert', $data); + if($action == 'u') $app->plugins->raiseEvent('spamfilter_wblist_update', $data); + if($action == 'd') $app->plugins->raiseEvent('spamfilter_wblist_delete', $data); + break; } // end switch } // end function + function restartRspamd($action = 'reload') { + global $app; + + $app->uses('system'); + + $daemon = 'rspamd'; + + $retval = array('output' => '', 'retval' => 0); + if($action == 'restart') { + exec($app->system->getinitcommand($daemon, 'restart').' 2>&1', $retval['output'], $retval['retval']); + } else { + exec($app->system->getinitcommand($daemon, 'reload').' 2>&1', $retval['output'], $retval['retval']); + } + return $retval; + } } // end class ?> diff --git a/server/plugins-available/apps_vhost_plugin.inc.php b/server/plugins-available/apps_vhost_plugin.inc.php index b843e3c8a..32a62174f 100644 --- a/server/plugins-available/apps_vhost_plugin.inc.php +++ b/server/plugins-available/apps_vhost_plugin.inc.php @@ -106,6 +106,16 @@ class apps_vhost_plugin { $vhost_port_listen = '#'; } $tpl->setVar('vhost_port_listen', $vhost_port_listen); + + $mail_config = $app->getconf->get_server_config($conf['server_id'], 'mail'); + if($mail_config['content_filter'] == 'rspamd'){ + $use_rspamd = true; + exec('/usr/sbin/a2enmod proxy'); + exec('/usr/sbin/a2enmod proxy_http'); + } else { + $use_rspamd = false; + } + $tpl->setVar('use_rspamd', $use_rspamd); $content = $tpl->grab(); @@ -184,6 +194,14 @@ class apps_vhost_plugin { $content = str_replace('{use_tcp}', $use_tcp, $content); $content = str_replace('{use_socket}', $use_socket, $content); + $mail_config = $app->getconf->get_server_config($conf['server_id'], 'mail'); + if($mail_config['content_filter'] == 'rspamd'){ + $use_rspamd = ''; + } else { + $use_rspamd = '#'; + } + $content = str_replace('{use_rspamd}', $use_rspamd, $content); + // Fix socket path on PHP 7 systems if(file_exists('/var/run/php/php7.0-fpm.sock')) $content = str_replace('/var/run/php5-fpm.sock', '/var/run/php/php7.0-fpm.sock', $content); if(file_exists('/var/run/php/php7.1-fpm.sock')) $content = str_replace('/var/run/php5-fpm.sock', '/var/run/php/php7.1-fpm.sock', $content); @@ -221,7 +239,3 @@ class apps_vhost_plugin { } // end class - - - -?> diff --git a/server/plugins-available/mail_plugin_dkim.inc.php b/server/plugins-available/mail_plugin_dkim.inc.php index 6f042e907..405691d13 100755 --- a/server/plugins-available/mail_plugin_dkim.inc.php +++ b/server/plugins-available/mail_plugin_dkim.inc.php @@ -104,6 +104,9 @@ class mail_plugin_dkim { function check_system($data) { global $app, $mail_config; + /** TODO: FIX IF ONLY RSPAMD IS INSTALLED AND NO AMAVIS! **/ + /** TODO: FIX DKIM FOR RSPAMD, RSPAMD CANNOT READ FILES OF amavis:root **/ + $app->uses('getconf'); $check=true; diff --git a/server/plugins-available/postfix_server_plugin.inc.php b/server/plugins-available/postfix_server_plugin.inc.php index 2b0b1ba67..bbd1c2546 100644 --- a/server/plugins-available/postfix_server_plugin.inc.php +++ b/server/plugins-available/postfix_server_plugin.inc.php @@ -60,15 +60,11 @@ class postfix_server_plugin { Register for the events */ - $app->plugins->registerEvent('server_insert', 'postfix_server_plugin', 'insert'); - $app->plugins->registerEvent('server_update', 'postfix_server_plugin', 'update'); - - - + $app->plugins->registerEvent('server_insert', $this->plugin_name, 'insert'); + $app->plugins->registerEvent('server_update', $this->plugin_name, 'update'); } function insert($event_name, $data) { - global $app, $conf; $this->update($event_name, $data); @@ -116,7 +112,7 @@ class postfix_server_plugin { if($rbl_hosts != ''){ $rbl_hosts = explode(",", $rbl_hosts); } - $options = explode(", ", exec("postconf -h smtpd_recipient_restrictions")); + $options = preg_split("/,\s*/", exec("postconf -h smtpd_recipient_restrictions")); $new_options = array(); foreach ($options as $key => $value) { if (!preg_match('/reject_rbl_client/', $value)) { @@ -162,7 +158,8 @@ class postfix_server_plugin { } if($app->system->is_installed('dovecot')) { - $temp = exec("postconf -n virtual_transport", $out); + $out = null; + exec("postconf -n virtual_transport", $out); if ($mail_config["mailbox_virtual_uidgid_maps"] == 'y') { // If dovecot switch to lmtp if($out[0] != "virtual_transport = lmtp:unix:private/dovecot-lmtp") { @@ -182,12 +179,51 @@ class postfix_server_plugin { } } - exec("postconf -e 'mailbox_size_limit = ".intval($mail_config['mailbox_size_limit']*1024*1024)."'"); //TODO : no reload? - exec("postconf -e 'message_size_limit = ".intval($mail_config['message_size_limit']*1024*1024)."'"); //TODO : no reload? + if($mail_config['content_filter'] != $old_ini_data['mail']['content_filter']) { + if($mail_config['content_filter'] == 'rspamd'){ + exec("postconf -X 'receive_override_options'"); + exec("postconf -X 'content_filter'"); + + exec("postconf -e 'smtpd_milters = inet:localhost:11332'"); + exec("postconf -e 'non_smtpd_milters = inet:localhost:11332'"); + exec("postconf -e 'milter_protocol = 6'"); + exec("postconf -e 'milter_mail_macros = i {mail_addr} {client_addr} {client_name} {auth_authen}'"); + exec("postconf -e 'milter_default_action = accept'"); + + exec("postconf -e 'smtpd_sender_restrictions = check_sender_access mysql:/etc/postfix/mysql-virtual_sender.cf, permit_mynetworks, permit_sasl_authenticated'"); + + $new_options = array(); + $options = preg_split("/,\s*/", exec("postconf -h smtpd_recipient_restrictions")); + foreach ($options as $key => $value) { + if (!preg_match('/check_policy_service\s+inet:127.0.0.1:10023/', $value)) { + $new_options[] = $value; + } + } + exec("postconf -e 'smtpd_recipient_restrictions = ".implode(", ", $new_options)."'"); + } + if($mail_config['content_filter'] == 'amavisd'){ + exec("postconf -X 'smtpd_milters'"); + exec("postconf -X 'milter_protocol'"); + exec("postconf -X 'milter_mail_macros'"); + exec("postconf -X 'milter_default_action'"); + + exec("postconf -e 'receive_override_options = no_address_mappings'"); + exec("postconf -e 'content_filter = amavis:[127.0.0.1]:10024'"); + + exec("postconf -e 'smtpd_sender_restrictions = check_sender_access mysql:/etc/postfix/mysql-virtual_sender.cf regexp:/etc/postfix/tag_as_originating.re, permit_mynetworks, permit_sasl_authenticated, check_sender_access regexp:/etc/postfix/tag_as_foreign.re'"); + } + } + if($mail_config['content_filter'] == 'rspamd' && ($mail_config['rspamd_password'] != $old_ini_data['mail']['rspamd_password'] || $mail_config['content_filter'] != $old_ini_data['mail']['content_filter'])) { + $tpl = new tpl(); + $tpl->newTemplate('rspamd_worker-controller.inc.master'); + $tpl->setVar('rspamd_password', $mail_config['rspamd_password']); + $app->system->file_put_contents('/etc/rspamd/local.d/worker-controller.inc', $tpl->grab()); + $app->services->restartServiceDelayed('rspamd', 'reload'); + } + exec("postconf -e 'mailbox_size_limit = ".intval($mail_config['mailbox_size_limit']*1024*1024)."'"); + exec("postconf -e 'message_size_limit = ".intval($mail_config['message_size_limit']*1024*1024)."'"); + $app->services->restartServiceDelayed('postfix', 'reload'); } - } // end class - -?> diff --git a/server/plugins-available/rspamd_plugin.inc.php b/server/plugins-available/rspamd_plugin.inc.php new file mode 100644 index 000000000..65f4522ba --- /dev/null +++ b/server/plugins-available/rspamd_plugin.inc.php @@ -0,0 +1,255 @@ +plugins->registerEvent('spamfilter_users_insert', $this->plugin_name, 'spamfilter_users_insert'); + $app->plugins->registerEvent('spamfilter_users_update', $this->plugin_name, 'spamfilter_users_update'); + $app->plugins->registerEvent('spamfilter_users_delete', $this->plugin_name, 'spamfilter_users_delete'); + + //* spamfilter_wblist + $app->plugins->registerEvent('spamfilter_wblist_insert', $this->plugin_name, 'spamfilter_wblist_insert'); + $app->plugins->registerEvent('spamfilter_wblist_update', $this->plugin_name, 'spamfilter_wblist_update'); + $app->plugins->registerEvent('spamfilter_wblist_delete', $this->plugin_name, 'spamfilter_wblist_delete'); + + //* server ip + $app->plugins->registerEvent('server_ip_insert', $this->plugin_name, 'server_ip'); + $app->plugins->registerEvent('server_ip_update', $this->plugin_name, 'server_ip'); + $app->plugins->registerEvent('server_ip_delete', $this->plugin_name, 'server_ip'); + } + + function spamfilter_users_insert($event_name, $data) { + global $app, $conf; + + $this->action = 'insert'; + // just run the spamfilter_users_update function + $this->spamfilter_users_update($event_name, $data); + } + + function spamfilter_users_update($event_name, $data) { + global $app, $conf; + + // get the config + $app->uses('getconf,system,functions'); + $mail_config = $app->getconf->get_server_config($conf['server_id'], 'mail'); + + if(is_dir('/etc/rspamd')) { + $policy = $app->db->queryOneRecord("SELECT * FROM spamfilter_policy WHERE id = ?", intval($data['new']['policy_id'])); + + //* Create the config file + $user_file = $this->users_config_dir.'spamfilter_user_'.intval($data['new']['id']).'.conf'; + + if(is_array($policy) && !empty($policy)){ + if(!is_dir($this->users_config_dir)){ + $app->system->mkdirpath($this->users_config_dir); + } + + $app->load('tpl'); + + $tpl = new tpl(); + $tpl->newTemplate('rspamd_users.inc.conf.master'); + $tpl->setVar('record_id', intval($data['new']['id'])); + $tpl->setVar('priority', intval($data['new']['priority'])); + $tpl->setVar('email', $app->functions->idn_encode($data['new']['email'])); + $tpl->setVar('local', $data['new']['local']); + + $tpl->setVar('rspamd_greylisting', $policy['rspamd_greylisting']); + $tpl->setVar('rspamd_spam_greylisting_level', floatval($policy['rspamd_spam_greylisting_level'])); + + $tpl->setVar('rspamd_spam_tag_level', floatval($policy['rspamd_spam_tag_level'])); + $tpl->setVar('rspamd_spam_tag_method', $policy['rspamd_spam_tag_method']); + + $tpl->setVar('rspamd_spam_kill_level', floatval($policy['rspamd_spam_kill_level'])); + $tpl->setVar('rspamd_virus_kill_level', floatval($policy['rspamd_spam_kill_level']) + 1000); + + $spam_lover_virus_lover = ''; + if($policy['spam_lover'] == 'Y' && $policy['virus_lover'] == 'Y') $spam_lover_virus_lover = 'spam_lover_AND_virus_lover'; + if($policy['spam_lover'] == 'Y' && $policy['virus_lover'] != 'Y') $spam_lover_virus_lover = 'spam_lover_AND_NOTvirus_lover'; + if($policy['spam_lover'] != 'Y' && $policy['virus_lover'] == 'Y') $spam_lover_virus_lover = 'NOTspam_lover_AND_virus_lover'; + if($policy['spam_lover'] != 'Y' && $policy['virus_lover'] != 'Y') $spam_lover_virus_lover = 'NOTspam_lover_AND_NOTvirus_lover'; + + $tpl->setVar('spam_lover_virus_lover', $spam_lover_virus_lover); + + //$groups_disabled = array(); + //if($policy['virus_lover'] == 'Y') $groups_disabled[] = ''; + + $app->system->file_put_contents($user_file, $tpl->grab()); + } else { + if(is_file($user_file)) { + unlink($user_file); + } + } + + if($mail_config['content_filter'] == 'rspamd'){ + if(is_file('/etc/init.d/rspamd')) $app->services->restartServiceDelayed('rspamd', 'reload'); + } + } + } + + function spamfilter_users_delete($event_name, $data) { + global $app, $conf; + + // get the config + $app->uses('getconf'); + $mail_config = $app->getconf->get_server_config($conf['server_id'], 'mail'); + + if(is_dir('/etc/rspamd')) { + //* delete the config file + $user_file = $this->users_config_dir.'spamfilter_user_'.intval($data['old']['id']).'.conf'; + if(is_file($user_file)) unlink($user_file); + + } + + if($mail_config['content_filter'] == 'rspamd') { + if(is_file('/etc/init.d/rspamd')) $app->services->restartServiceDelayed('rspamd', 'reload'); + } + } + + function spamfilter_wblist_insert($event_name, $data) { + global $app, $conf; + + $this->action = 'insert'; + // just run the spamfilter_wblist_update function + $this->spamfilter_wblist_update($event_name, $data); + } + + function spamfilter_wblist_update($event_name, $data) { + global $app, $conf; + + $app->uses('getconf,system,functions'); + $mail_config = $app->getconf->get_server_config($conf['server_id'], 'mail'); + + if(is_dir('/etc/rspamd')) { + $recipient = $app->db->queryOneRecord("SELECT email FROM spamfilter_users WHERE id = ?", intval($data['new']['rid'])); + //* Create the config file + $wblist_file = $this->users_config_dir.'spamfilter_wblist_'.intval($data['new']['wblist_id']).'.conf'; + + if($data['new']['active'] == 'y' && is_array($recipient) && !empty($recipient)){ + if(!is_dir($this->users_config_dir)){ + $app->system->mkdirpath($this->users_config_dir); + } + + $app->load('tpl'); + + $tpl = new tpl(); + $tpl->newTemplate('rspamd_wblist.inc.conf.master'); + $tpl->setVar('record_id', intval($data['new']['wblist_id'])); + $tpl->setVar('priority', intval($data['new']['priority'])); + $tpl->setVar('from', $app->functions->idn_encode($data['new']['email'])); + $tpl->setVar('recipient', $app->functions->idn_encode($recipient['email'])); + //$tpl->setVar('action', ($data['new']['wb'] == 'W'? 'want_spam = yes;' : 'action = "reject";')); + $tpl->setVar('wblist', $data['new']['wb']); + + $app->system->file_put_contents($wblist_file, $tpl->grab()); + } else { + if(is_file($wblist_file)) unlink($wblist_file); + } + + if($mail_config['content_filter'] == 'rspamd'){ + if(is_file('/etc/init.d/rspamd')) $app->services->restartServiceDelayed('rspamd', 'reload'); + } + } + } + + function spamfilter_wblist_delete($event_name, $data) { + global $app, $conf; + + $app->uses('getconf'); + $mail_config = $app->getconf->get_server_config($conf['server_id'], 'mail'); + + if(is_dir('/etc/rspamd')) { + //* delete the config file + $wblist_file = $this->users_config_dir.'spamfilter_wblist_'.intval($data['old']['wblist_id']).'.conf'; + if(is_file($wblist_file)) unlink($wblist_file); + + if($mail_config['content_filter'] == 'rspamd'){ + if(is_file('/etc/init.d/rspamd')) $app->services->restartServiceDelayed('rspamd', 'reload'); + } + } + } + + function server_ip($event_name, $data) { + global $app, $conf; + + // get the config + $app->uses("getconf,system"); + $app->load('tpl'); + + $mail_config = $app->getconf->get_server_config($conf['server_id'], 'mail'); + + if(is_dir('/etc/rspamd')) { + $tpl = new tpl(); + $tpl->newTemplate('rspamd_users.conf.master'); + + $whitelist_ips = array(); + $ips = $app->db->queryAllRecords("SELECT * FROM server_ip WHERE server_id = ?", $conf['server_id']); + if(is_array($ips) && !empty($ips)){ + foreach($ips as $ip){ + $whitelist_ips[] = array('ip' => $ip['ip_address']); + } + } + $tpl->setLoop('whitelist_ips', $whitelist_ips); + $app->system->file_put_contents('/etc/rspamd/local.d/users.conf', $tpl->grab()); + + if($mail_config['content_filter'] == 'rspamd'){ + $app->services->restartServiceDelayed('rspamd', 'reload'); + } + } + } + +} // end class -- GitLab From ae7c9c651284e1fd8d5d4de6a83a4622aa29c354 Mon Sep 17 00:00:00 2001 From: Till Brehm Date: Mon, 8 Jul 2019 18:05:32 +0200 Subject: [PATCH 092/215] Set the same AllowOverride value for cgi-bin directory that is set for the website. --- server/conf/vhost.conf.master | 1 + 1 file changed, 1 insertion(+) diff --git a/server/conf/vhost.conf.master b/server/conf/vhost.conf.master index ee7dcac07..75f6a72e8 100644 --- a/server/conf/vhost.conf.master +++ b/server/conf/vhost.conf.master @@ -215,6 +215,7 @@ # cgi enabled + AllowOverride Require all granted -- GitLab From 0d8f89bbff775b0c6d2ec243b4297d369193f54c Mon Sep 17 00:00:00 2001 From: Marius Burkard Date: Mon, 8 Jul 2019 18:27:11 +0200 Subject: [PATCH 093/215] - added rspamd conditionals for mail dkim plugin --- install/lib/installer_base.lib.php | 6 + .../mail_plugin_dkim.inc.php | 188 +++++++++++------- 2 files changed, 118 insertions(+), 76 deletions(-) diff --git a/install/lib/installer_base.lib.php b/install/lib/installer_base.lib.php index 7221dd7de..7abd315b8 100644 --- a/install/lib/installer_base.lib.php +++ b/install/lib/installer_base.lib.php @@ -1458,6 +1458,12 @@ class installer_base { exec("postconf -e 'smtpd_recipient_restrictions = ".implode(", ", $new_options)."'"); } + if(is_user('_rspamd') && is_group('amavis')) { + exec("usermod -G amavis _rspamd"); + } elseif(is_user('rspamd') && is_group('amavis')) { + exec("usermod -G amavis rspamd"); + } + if(!is_dir('/etc/rspamd/local.d/')){ mkdir('/etc/rspamd/local.d/', 0755, true); } diff --git a/server/plugins-available/mail_plugin_dkim.inc.php b/server/plugins-available/mail_plugin_dkim.inc.php index 405691d13..ff649971a 100755 --- a/server/plugins-available/mail_plugin_dkim.inc.php +++ b/server/plugins-available/mail_plugin_dkim.inc.php @@ -29,6 +29,7 @@ EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. @author Florian Schaal, info@schaal-24.de + @author Marius Burkard, m.burkard@ispconfig.org (modified for rspamd) @copyright Florian Schaal, info@schaal-24.de */ @@ -59,8 +60,8 @@ class mail_plugin_dkim { /** * This function is called when the plugin is loaded */ - function onLoad() { - global $app, $conf; + public function onLoad() { + global $app; /* Register for the events */ @@ -73,7 +74,7 @@ class mail_plugin_dkim { * This function gets the amavisd-config file * @return string path to the amavisd-config for dkim-keys */ - function get_amavis_config() { + private function get_amavis_config() { $pos_config=array( '/etc/amavisd.conf/50-user', '/etc/amavis/conf.d/50-user', @@ -101,45 +102,59 @@ class mail_plugin_dkim { * @param array $data mail-settings * @return boolean - true when the amavis-config and the dkim-dir are writeable */ - function check_system($data) { - global $app, $mail_config; + private function check_system() { + global $app, $conf, $mail_config; - /** TODO: FIX IF ONLY RSPAMD IS INSTALLED AND NO AMAVIS! **/ - /** TODO: FIX DKIM FOR RSPAMD, RSPAMD CANNOT READ FILES OF amavis:root **/ - $app->uses('getconf'); - $check=true; - - /* check for amavis-config */ - $amavis_configfile = $this->get_amavis_config(); + $check = true; - //* Create the file if it does not exists. - if (substr_compare($amavis_configfile, '60-dkim', -7) === 0 && !file_exists($amavis_configfile)) - $app->system->touch($amavis_configfile); + $mail_config = $app->getconf->get_server_config($conf['server_id'], 'mail'); + if($mail_config['content_filter'] != 'rspamd') { + /* check for amavis-config */ + $amavis_configfile = $this->get_amavis_config(); - if ( $amavis_configfile == '' || !is_writeable($amavis_configfile) ) { - $app->log('Amavis-config not found or not writeable.', LOGLEVEL_ERROR); - $check=false; + //* Create the file if it does not exists. + if (substr_compare($amavis_configfile, '60-dkim', -7) === 0 && !file_exists($amavis_configfile)) { + $app->system->touch($amavis_configfile); + } + + if ( $amavis_configfile == '' || !is_writeable($amavis_configfile) ) { + $app->log('Amavis-config not found or not writeable.', LOGLEVEL_ERROR); + $check = false; + } } /* dir for dkim-keys writeable? */ - $mail_config = $app->getconf->get_server_config($conf['server_id'], 'mail'); if (isset($mail_config['dkim_path']) && !empty($mail_config['dkim_path']) && $mail_config['dkim_path'] != '/') { if (!is_dir($mail_config['dkim_path'])) { $app->log('DKIM Path '.$mail_config['dkim_path'].' not found - (re)created.', LOGLEVEL_DEBUG); if($app->system->is_user('amavis')) { $amavis_user='amavis'; + } elseif($app->system->is_user('_rspamd')) { + $amavis_user = '_rspamd'; + } elseif($app->system->is_user('rspamd')) { + $amavis_user = 'rspamd'; } elseif ($app->system->is_user('vscan')) { - $amavis_user='vscan'; + $amavis_user = 'vscan'; + } else { + $amavis_user = ''; } - else { - $amavis_user=''; + if($app->system->is_user('amavis')) { + $amavis_group='amavis'; + } elseif($app->system->is_user('_rspamd')) { + $amavis_group = '_rspamd'; + } elseif($app->system->is_user('rspamd')) { + $amavis_group = 'rspamd'; + } elseif ($app->system->is_user('vscan')) { + $amavis_group = 'vscan'; + } else { + $amavis_group = ''; } + if(!empty($amavis_user)) { - mkdir($mail_config['dkim_path'], 0750, true); - $app->system->chown($mail_config['dkim_path'], $amavis_user); + $app->system->mkdirpath($mail_config['dkim_path'], 0750, $amavis_user, $amavis_group); } else { - mkdir($mail_config['dkim_path'], 0755, true); + $app->system->mkdirpath($mail_config['dkim_path'], 0755); $app->log('No user amavis or vscan found - using root for '.$mail_config['dkim_path'], LOGLEVEL_WARNING); } } else { @@ -169,12 +184,15 @@ class mail_plugin_dkim { /** * This function restarts amavis */ - function restart_amavis() { + private function restart_amavis() { global $app; + $output = null; $initcommand = $app->system->getinitcommand(array('amavis', 'amavisd'), 'restart'); $app->log('Restarting amavis: '.$initcommand.'.', LOGLEVEL_DEBUG); exec($initcommand, $output); - foreach($output as $logline) $app->log($logline, LOGLEVEL_DEBUG); + foreach($output as $logline) { + $app->log($logline, LOGLEVEL_DEBUG); + } } /** @@ -184,8 +202,8 @@ class mail_plugin_dkim { * @param string $key_domain mail-domain * @return bool - true when the private key was written to disk */ - function write_dkim_key($key_file, $key_value, $key_domain) { - global $app, $mailconfig; + private function write_dkim_key($key_file, $key_value, $key_domain) { + global $app; $success=false; if ($key_file == '' || $key_value == '' || $key_domain == '') { $app->log('DKIM internal error for domain '.$key_domain, LOGLEVEL_ERROR); @@ -194,14 +212,20 @@ class mail_plugin_dkim { if ( $app->system->file_put_contents($key_file.'.private', $key_value) ) { $app->log('Saved DKIM Private-key to '.$key_file.'.private', LOGLEVEL_DEBUG); $success=true; + $pubkey = null; + $result = 0; /* now we get the DKIM Public-key */ exec('cat '.escapeshellarg($key_file.'.private').'|openssl rsa -pubout 2> /dev/null', $pubkey, $result); $public_key=''; - foreach($pubkey as $values) $public_key=$public_key.$values."\n"; + foreach($pubkey as $values) { + $public_key = $public_key . $values . "\n"; + } /* save the DKIM Public-key in dkim-dir */ - if ( $app->system->file_put_contents($key_file.'.public', $public_key) ) + if($app->system->file_put_contents($key_file.'.public', $public_key)) { $app->log('Saved DKIM Public to '.$key_domain.'.', LOGLEVEL_DEBUG); - else $app->log('Unable to save DKIM Public to '.$key_domain.'.', LOGLEVEL_DEBUG); + } else { + $app->log('Unable to save DKIM Public to '.$key_domain.'.', LOGLEVEL_DEBUG); + } } else { $app->log('Unable to save DKIM Private-key to '.$key_file.'.private', LOGLEVEL_ERROR); } @@ -213,26 +237,32 @@ class mail_plugin_dkim { * @param string $key_file full path to the key-file * @param string $key_domain mail-domain */ - function remove_dkim_key($key_file, $key_domain) { + private function remove_dkim_key($key_file, $key_domain) { global $app; if (file_exists($key_file.'.private')) { $app->system->unlink($key_file.'.private'); $app->log('Deleted the DKIM Private-key for '.$key_domain.'.', LOGLEVEL_DEBUG); - } else $app->log('Unable to delete the DKIM Private-key for '.$key_domain.' (not found).', LOGLEVEL_DEBUG); + } else { + $app->log('Unable to delete the DKIM Private-key for '.$key_domain.' (not found).', LOGLEVEL_DEBUG); + } if (file_exists($key_file.'.public')) { $app->system->unlink($key_file.'.public'); $app->log('Deleted the DKIM Public-key for '.$key_domain.'.', LOGLEVEL_DEBUG); - } else $app->log('Unable to delete the DKIM Public-key for '.$key_domain.' (not found).', LOGLEVEL_DEBUG); + } else { + $app->log('Unable to delete the DKIM Public-key for '.$key_domain.' (not found).', LOGLEVEL_DEBUG); + } } /** * This function adds the entry to the amavisd-config * @param string $key_domain mail-domain */ - function add_to_amavis($key_domain, $selector, $old_selector) { + private function add_to_amavis($key_domain, $selector, $old_selector) { global $app, $mail_config; - if (empty($selector)) $selector = 'default'; + if (empty($selector)) { + $selector = 'default'; + } $restart = false; $amavis_configfile = $this->get_amavis_config(); @@ -270,7 +300,7 @@ class mail_plugin_dkim { * This function removes the entry from the amavisd-config * @param string $key_domain mail-domain */ - function remove_from_amavis($key_domain) { + private function remove_from_amavis($key_domain) { global $app; $restart = false; @@ -308,14 +338,17 @@ class mail_plugin_dkim { * This function controlls new key-files and amavisd-entries * @param array $data mail-settings */ - function add_dkim($data) { - global $app; + private function add_dkim($data) { + global $app, $conf; if ($data['new']['active'] == 'y') { $mail_config = $app->getconf->get_server_config($conf['server_id'], 'mail'); - if ( substr($mail_config['dkim_path'], strlen($mail_config['dkim_path'])-1) == '/' ) + if ( substr($mail_config['dkim_path'], strlen($mail_config['dkim_path'])-1) == '/' ) { $mail_config['dkim_path'] = substr($mail_config['dkim_path'], 0, strlen($mail_config['dkim_path'])-1); + } if ($this->write_dkim_key($mail_config['dkim_path']."/".$data['new']['domain'], $data['new']['dkim_private'], $data['new']['domain'])) { - if ($this->add_to_amavis($data['new']['domain'], $data['new']['dkim_selector'], $data['old']['dkim_selector'] )) { + if($mail_config['content_filter'] == 'rspamd') { + $app->services->restartServiceDelayed('rspamd', 'reload'); + } elseif ($this->add_to_amavis($data['new']['domain'], $data['new']['dkim_selector'], $data['old']['dkim_selector'] )) { $this->restart_amavis(); } else { $this->remove_dkim_key($mail_config['dkim_path']."/".$data['new']['domain'], $data['new']['domain']); @@ -329,86 +362,89 @@ class mail_plugin_dkim { /** * This function controlls the removement of keyfiles (public and private) * and the entry in the amavisd-config - * @param array $data mail-settings + * @param array $_data mail-settings */ - function remove_dkim($_data) { - global $app; + private function remove_dkim($_data) { + global $app, $conf; $mail_config = $app->getconf->get_server_config($conf['server_id'], 'mail'); - if ( substr($mail_config['dkim_path'], strlen($mail_config['dkim_path'])-1) == '/' ) + if ( substr($mail_config['dkim_path'], strlen($mail_config['dkim_path'])-1) == '/' ) { $mail_config['dkim_path'] = substr($mail_config['dkim_path'], 0, strlen($mail_config['dkim_path'])-1); + } $this->remove_dkim_key($mail_config['dkim_path']."/".$_data['domain'], $_data['domain']); - if ($this->remove_from_amavis($_data['domain'])) + + if($mail_config['content_filter'] == 'rspamd') { + $app->services->restartServiceDelayed('rspamd', 'reload'); + } elseif ($this->remove_from_amavis($_data['domain'])) { $this->restart_amavis(); + } } /** * Function called by onLoad * deletes dkim-keys */ - function domain_dkim_delete($event_name, $data) { - if (isset($data['old']['dkim']) && $data['old']['dkim'] == 'y' && $data['old']['active'] == 'y') + public function domain_dkim_delete($event_name, $data) { + if (isset($data['old']['dkim']) && $data['old']['dkim'] == 'y' && $data['old']['active'] == 'y') { $this->remove_dkim($data['old']); + } } /** * Function called by onLoad * insert dkim-keys */ - function domain_dkim_insert($event_name, $data) { - if (isset($data['new']['dkim']) && $data['new']['dkim']=='y' && $this->check_system($data)) + public function domain_dkim_insert($event_name, $data) { + if (isset($data['new']['dkim']) && $data['new']['dkim']=='y' && $this->check_system()) { $this->add_dkim($data); + } } /** * Function called by onLoad * chang dkim-settings */ - function domain_dkim_update($event_name, $data) { + public function domain_dkim_update($event_name, $data) { global $app; if($data['new']['dkim'] == 'y' || $data['old']['dkim'] == 'y'){ - if ($this->check_system($data)) { + if ($this->check_system()) { /* maildomain disabled */ if ($data['new']['active'] == 'n' && $data['old']['active'] == 'y' && $data['new']['dkim']=='y') { $app->log('Maildomain '.$data['new']['domain'].' disabled - remove DKIM-settings', LOGLEVEL_DEBUG); $this->remove_dkim($data['new']); } /* maildomain re-enabled */ - if ($data['new']['active'] == 'y' && $data['old']['active'] == 'n' && $data['new']['dkim']=='y') + if ($data['new']['active'] == 'y' && $data['old']['active'] == 'n' && $data['new']['dkim']=='y') { $this->add_dkim($data); - + } + /* maildomain active - only dkim changes */ if ($data['new']['active'] == 'y' && $data['old']['active'] == 'y') { /* dkim disabled */ if ($data['new']['dkim'] != $data['old']['dkim'] && $data['new']['dkim'] == 'n') { $this->remove_dkim($data['new']); } - /* dkim enabled */ - elseif ($data['new']['dkim'] != $data['old']['dkim'] && $data['new']['dkim'] == 'y') { - $this->add_dkim($data); - } - /* new private-key */ - if ($data['new']['dkim_private'] != $data['old']['dkim_private'] && $data['new']['dkim'] == 'y') { - $this->add_dkim($data); - } - /* new selector */ - if ($data['new']['dkim_selector'] != $data['old']['dkim_selector'] && $data['new']['dkim'] == 'y') { + /* dkim enabled + * or new private-key + * or new selector + * or new domain-name + */ + elseif ( + ($data['new']['dkim'] != $data['old']['dkim'] && $data['new']['dkim'] == 'y') + || ($data['new']['dkim_private'] != $data['old']['dkim_private'] && $data['new']['dkim'] == 'y') + || ($data['new']['dkim_selector'] != $data['old']['dkim_selector'] && $data['new']['dkim'] == 'y') + || ($data['new']['domain'] != $data['old']['domain']) + ) { + if ($data['new']['domain'] != $data['old']['domain']) { + $this->remove_dkim($data['old']); + } $this->add_dkim($data); } - /* new domain-name */ - if ($data['new']['domain'] != $data['old']['domain']) { - $this->remove_dkim($data['old']); + /* resync */ + elseif($data['new'] == $data['old'] && $data['new']['dkim']=='y') { $this->add_dkim($data); } } - - /* resync */ - if ($data['new']['active'] == 'y' && $data['new'] == $data['old'] && $data['new']['dkim']=='y') { - $this->add_dkim($data); - } } } } - } - -?> -- GitLab From 938676a4ade832320c903deb20c90121e1a839e5 Mon Sep 17 00:00:00 2001 From: Till Brehm Date: Mon, 8 Jul 2019 20:48:03 +0200 Subject: [PATCH 094/215] Fixed error in internal cron system. --- server/cron.php | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/server/cron.php b/server/cron.php index ba59ff404..5e66f51a9 100644 --- a/server/cron.php +++ b/server/cron.php @@ -69,7 +69,7 @@ $conf['server_id'] = intval($conf['server_id']); // Load required base-classes -$app->uses('modules,ini_parser,file,services,getconf,system,cron,functions'); +$app->uses('modules,ini_parser,file,services,getconf,system,cron,functions,plugins'); $app->load('libdatetime,cronjob'); // read all cron jobs -- GitLab From cc8a3e8aae815c62b72fb9ba36ada041fba0e31c Mon Sep 17 00:00:00 2001 From: Till Brehm Date: Mon, 8 Jul 2019 21:32:49 +0200 Subject: [PATCH 095/215] Missed to remove swriteln function in monitor lib/classes/monitor_tools.inc.php --- server/lib/classes/monitor_tools.inc.php | 3 --- 1 file changed, 3 deletions(-) diff --git a/server/lib/classes/monitor_tools.inc.php b/server/lib/classes/monitor_tools.inc.php index a15514fd7..1d3dab290 100644 --- a/server/lib/classes/monitor_tools.inc.php +++ b/server/lib/classes/monitor_tools.inc.php @@ -217,21 +217,18 @@ class monitor_tools { $distconfid = 'debian100'; $distid = 'debian60'; $distbaseid = 'debian'; - swriteln("Operating System: Debian 10.0 (Buster) or compatible\n"); } elseif(strstr(trim(file_get_contents('/etc/debian_version')), '/sid')) { $distname = 'Debian'; $distver = 'Testing'; $distid = 'debian60'; $distconfid = 'debiantesting'; $distbaseid = 'debian'; - swriteln("Operating System: Debian Testing\n"); } else { $distname = 'Debian'; $distver = 'Unknown'; $distid = 'debian60'; $distconfid = 'debian100'; $distbaseid = 'debian'; - swriteln("Operating System: Debian or compatible, unknown version.\n"); } } -- GitLab From 13a54746407ec7bd0d8faefa5c2750ec99da1f91 Mon Sep 17 00:00:00 2001 From: Marius Burkard Date: Tue, 9 Jul 2019 11:42:45 +0200 Subject: [PATCH 096/215] - fixed cron lockfile check, fixes #5334 --- server/cron.php | 31 +++++++++++++++++++------------ 1 file changed, 19 insertions(+), 12 deletions(-) diff --git a/server/cron.php b/server/cron.php index ba59ff404..d82abd371 100644 --- a/server/cron.php +++ b/server/cron.php @@ -33,21 +33,28 @@ require SCRIPT_PATH."/lib/config.inc.php"; // Check whether another instance of this script is already running $lockFile = $conf['temppath'] . $conf['fs_div'] . '.ispconfig_cron_lock'; -if (is_file($lockFile)) { +if(is_file($lockFile)) { clearstatcache(); - - // Maybe we hit a deadlock and the lock file is no longer relevant - if(filemtime($lockFile) > time() - 86400) { // 86400 seconds = 1 day - if($conf['log_priority'] <= LOGLEVEL_WARN) print @date('d.m.Y-H:i').' - WARNING - The cron lock file is older than one day.' . "\n"; - exit; - } - - // Check if the process id we have in the lock file is still present + +// Check if the process id we have in the lock file is still present $pid = trim(file_get_contents($lockFile)); if(preg_match('/^[0-9]+$/', $pid)) { - if(file_exists('/proc/' . $pid)) { - if($conf['log_priority'] <= LOGLEVEL_WARN) print @date('d.m.Y-H:i').' - WARNING - There is already an instance of server.php running with pid ' . $pid . '.' . "\n"; - exit; + if(is_dir('/proc/' . $pid)) { + if(file_exists('/proc/' . $pid . '/cmdline')) { + if(strpos(file_get_contents('/proc/' . $pid . '/cmdline'), 'cron.php') !== false) { + if($conf['log_priority'] <= LOGLEVEL_WARN) print @date('d.m.Y-H:i').' - WARNING - There is already an instance of cron.php running with pid ' . $pid . '.' . "\n"; + exit; + } else { + if($conf['log_priority'] <= LOGLEVEL_WARN) print @date('d.m.Y-H:i').' - WARNING - There is a process running with pid ' . $pid . ' but it seems not to be cron.php, continuing.' . "\n"; + } + } else { + if(filemtime($lockFile) < time() - 86400) { + if($conf['log_priority'] <= LOGLEVEL_WARN) print @date('d.m.Y-H:i').' - WARNING - There is already an instance of cron.php running with pid ' . $pid . ' but process is older than 1 day. Continuing.' . "\n"; + } else { + if($conf['log_priority'] <= LOGLEVEL_WARN) print @date('d.m.Y-H:i').' - WARNING - There is already an instance of cron.php running with pid ' . $pid . '.' . "\n"; + exit; + } + } } } if($conf['log_priority'] <= LOGLEVEL_WARN) print @date('d.m.Y-H:i').' - WARNING - There is already a lockfile set, but no process running with this pid (' . $pid . '). Continuing.' . "\n"; -- GitLab From ab82c4dd7d2fabb57f11f9a8a73259be4b2cc66c Mon Sep 17 00:00:00 2001 From: Marius Burkard Date: Tue, 9 Jul 2019 13:30:50 +0200 Subject: [PATCH 097/215] - addition for previous commit (moving warning message) --- server/cron.php | 4 +++- 1 file changed, 3 insertions(+), 1 deletion(-) diff --git a/server/cron.php b/server/cron.php index 6d7aa4978..ef13d06e2 100644 --- a/server/cron.php +++ b/server/cron.php @@ -55,9 +55,11 @@ if(is_file($lockFile)) { exit; } } + } else { + if($conf['log_priority'] <= LOGLEVEL_WARN) print @date('d.m.Y-H:i').' - WARNING - There is already a lockfile set, but no process running with this pid (' . $pid . '). Continuing.' . "\n"; + } } - if($conf['log_priority'] <= LOGLEVEL_WARN) print @date('d.m.Y-H:i').' - WARNING - There is already a lockfile set, but no process running with this pid (' . $pid . '). Continuing.' . "\n"; } // Set Lockfile -- GitLab From e9c89a7a051bee0706820079e80aae310dfdd59d Mon Sep 17 00:00:00 2001 From: Marius Burkard Date: Wed, 10 Jul 2019 18:03:46 +0200 Subject: [PATCH 098/215] - fixed missing tpl class loading --- server/plugins-available/postfix_server_plugin.inc.php | 2 ++ 1 file changed, 2 insertions(+) diff --git a/server/plugins-available/postfix_server_plugin.inc.php b/server/plugins-available/postfix_server_plugin.inc.php index bbd1c2546..4ed25fd5d 100644 --- a/server/plugins-available/postfix_server_plugin.inc.php +++ b/server/plugins-available/postfix_server_plugin.inc.php @@ -215,6 +215,8 @@ class postfix_server_plugin { } if($mail_config['content_filter'] == 'rspamd' && ($mail_config['rspamd_password'] != $old_ini_data['mail']['rspamd_password'] || $mail_config['content_filter'] != $old_ini_data['mail']['content_filter'])) { + $app->load('tpl'); + $tpl = new tpl(); $tpl->newTemplate('rspamd_worker-controller.inc.master'); $tpl->setVar('rspamd_password', $mail_config['rspamd_password']); -- GitLab From 7f9a53e50c003c6c1c700340f4fa729ec1139070 Mon Sep 17 00:00:00 2001 From: Marius Burkard Date: Fri, 12 Jul 2019 15:55:34 +0200 Subject: [PATCH 099/215] - missing rspamd conf file on update --- install/tpl/rspamd_wblist.inc.conf.master | 19 +------------------ server/conf/rspamd_wblist.inc.conf.master | 18 ++++++++++++++++++ 2 files changed, 19 insertions(+), 18 deletions(-) mode change 100644 => 120000 install/tpl/rspamd_wblist.inc.conf.master create mode 100644 server/conf/rspamd_wblist.inc.conf.master diff --git a/install/tpl/rspamd_wblist.inc.conf.master b/install/tpl/rspamd_wblist.inc.conf.master deleted file mode 100644 index fc06127ea..000000000 --- a/install/tpl/rspamd_wblist.inc.conf.master +++ /dev/null @@ -1,18 +0,0 @@ -spamfilter_wblist- { - priority = ; - from = ""; - rcpt = ""; - - want_spam = yes; - - apply "default" { - R_DUMMY = 999.0; - actions { - reject = 0.2; - add_header = 0.1; - greylist = 0.1; - rewrite_subject = 0.1; - } - } - -} \ No newline at end of file diff --git a/install/tpl/rspamd_wblist.inc.conf.master b/install/tpl/rspamd_wblist.inc.conf.master new file mode 120000 index 000000000..1ab3744b9 --- /dev/null +++ b/install/tpl/rspamd_wblist.inc.conf.master @@ -0,0 +1 @@ +../../server/conf/rspamd_wblist.inc.conf.master \ No newline at end of file diff --git a/server/conf/rspamd_wblist.inc.conf.master b/server/conf/rspamd_wblist.inc.conf.master new file mode 100644 index 000000000..fc06127ea --- /dev/null +++ b/server/conf/rspamd_wblist.inc.conf.master @@ -0,0 +1,18 @@ +spamfilter_wblist- { + priority = ; + from = ""; + rcpt = ""; + + want_spam = yes; + + apply "default" { + R_DUMMY = 999.0; + actions { + reject = 0.2; + add_header = 0.1; + greylist = 0.1; + rewrite_subject = 0.1; + } + } + +} \ No newline at end of file -- GitLab From 49d521e9147ca3e54ed79c6e7991224eef8b810f Mon Sep 17 00:00:00 2001 From: Till Brehm Date: Fri, 12 Jul 2019 17:48:41 +0200 Subject: [PATCH 100/215] Fixed #5341 CSS Styles do not load in ISPConfig UI when no SSL is used --- install/tpl/apache_ispconfig.vhost.master | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/install/tpl/apache_ispconfig.vhost.master b/install/tpl/apache_ispconfig.vhost.master index 55135299f..d8c56de22 100644 --- a/install/tpl/apache_ispconfig.vhost.master +++ b/install/tpl/apache_ispconfig.vhost.master @@ -89,11 +89,11 @@ NameVirtualHost *: # ISPConfig 3.1 currently requires unsafe-line for both scripts and styles, as well as unsafe-eval - Header set Content-Security-Policy "default-src 'self' 'unsafe-inline' 'unsafe-eval'; img-src 'self' data:; object-src 'none'; upgrade-insecure-requests" + Header set Content-Security-Policy "default-src 'self' 'unsafe-inline' 'unsafe-eval'; img-src 'self' data:; object-src 'none'; upgrade-insecure-requests" Header set X-Content-Type-Options: nosniff Header set X-Frame-Options: SAMEORIGIN Header set X-XSS-Protection: "1; mode=block" - Header always edit Set-Cookie (.*) "$1; HTTPOnly; Secure" + Header always edit Set-Cookie (.*) "$1; HTTPOnly; Secure" = 2.4.7> Header setifempty Strict-Transport-Security "max-age=15768000" -- GitLab From f5b9582436f59cd6262525330ef003a7907f1a02 Mon Sep 17 00:00:00 2001 From: Marius Burkard Date: Fri, 12 Jul 2019 18:31:50 +0200 Subject: [PATCH 101/215] - use crypted password for rspamd UI if possible --- server/plugins-available/postfix_server_plugin.inc.php | 8 +++++++- 1 file changed, 7 insertions(+), 1 deletion(-) diff --git a/server/plugins-available/postfix_server_plugin.inc.php b/server/plugins-available/postfix_server_plugin.inc.php index 4ed25fd5d..763a89b4b 100644 --- a/server/plugins-available/postfix_server_plugin.inc.php +++ b/server/plugins-available/postfix_server_plugin.inc.php @@ -217,9 +217,15 @@ class postfix_server_plugin { if($mail_config['content_filter'] == 'rspamd' && ($mail_config['rspamd_password'] != $old_ini_data['mail']['rspamd_password'] || $mail_config['content_filter'] != $old_ini_data['mail']['content_filter'])) { $app->load('tpl'); + $rspamd_password = $mail_config['rspamd_password']; + $crypted_password = trim(exec('rspamadm pw -p ' . escapeshellarg($rspamd_password))); + if($crypted_password) { + $rspamd_password = $crypted_password; + } + $tpl = new tpl(); $tpl->newTemplate('rspamd_worker-controller.inc.master'); - $tpl->setVar('rspamd_password', $mail_config['rspamd_password']); + $tpl->setVar('rspamd_password', $rspamd_password); $app->system->file_put_contents('/etc/rspamd/local.d/worker-controller.inc', $tpl->grab()); $app->services->restartServiceDelayed('rspamd', 'reload'); } -- GitLab From eae236864fddd9753da68d0dbac622ff68aac55e Mon Sep 17 00:00:00 2001 From: Till Brehm Date: Mon, 15 Jul 2019 17:09:30 +0200 Subject: [PATCH 102/215] Fixed #5340 Debian 10 warnings about deprecated dovecot config and missing dh params file. --- install/dist/lib/debian60.lib.php | 26 ++++++++++++++++++++++++ install/tpl/debian6_dovecot2.conf.master | 2 ++ 2 files changed, 28 insertions(+) diff --git a/install/dist/lib/debian60.lib.php b/install/dist/lib/debian60.lib.php index 0cd711656..022d35893 100644 --- a/install/dist/lib/debian60.lib.php +++ b/install/dist/lib/debian60.lib.php @@ -116,6 +116,32 @@ class installer extends installer_base { file_put_contents($config_dir.'/'.$configfile,$content); unset($content); } + if(version_compare($dovecot_version,2.3) >= 0) { + // Remove deprecated setting(s) + removeLine($config_dir.'/'.$configfile, 'ssl_protocols ='); + + // Check if we have a dhparams file and if not, create it + if(!file_exists('/etc/dovecot/dh.pem')) { + swriteln('Creating new DHParams file, this takes several minutes. Do not interrupt the script.'); + if(file_exists('/var/lib/dovecot/ssl-parameters.dat')) { + // convert existing ssl parameters file + $command = 'dd if=/var/lib/dovecot/ssl-parameters.dat bs=1 skip=88 | openssl dhparam -inform der > /etc/dovecot/dh.pem'; + caselog($command.' &> /dev/null', __FILE__, __LINE__, "EXECUTED: $command", "Failed to execute the command $command"); + } else { + /* + Create a new dhparams file. We use 2048 bit only as it simply takes too long + on smaller systems to generate a 4096 bit dh file (> 30 minutes). If you need + a 4096 bit file, create it manually before you install ISPConfig + */ + $command = 'openssl dhparam -out /etc/dovecot/dh.pem 2048'; + caselog($command.' &> /dev/null', __FILE__, __LINE__, "EXECUTED: $command", "Failed to execute the command $command"); + } + } + } else { + // remove settings which are not supported in Dovecot < 2.3 + removeLine($config_dir.'/'.$configfile, 'ssl_min_protocol ='); + removeLine($config_dir.'/'.$configfile, 'ssl_dh ='); + } } else { if(is_file($conf['ispconfig_install_dir'].'/server/conf-custom/install/debian6_dovecot.conf.master')) { copy($conf['ispconfig_install_dir'].'/server/conf-custom/install/debian6_dovecot.conf.master', $config_dir.'/'.$configfile); diff --git a/install/tpl/debian6_dovecot2.conf.master b/install/tpl/debian6_dovecot2.conf.master index db6e0bfbe..f13bbd53d 100644 --- a/install/tpl/debian6_dovecot2.conf.master +++ b/install/tpl/debian6_dovecot2.conf.master @@ -6,7 +6,9 @@ log_timestamp = "%Y-%m-%d %H:%M:%S " mail_privileged_group = vmail ssl_cert = Date: Mon, 15 Jul 2019 18:39:50 +0200 Subject: [PATCH 103/215] - implemented per-domain-dkim, including custom selector --- install/lib/installer_base.lib.php | 14 ++++++++++++++ install/tpl/rspamd_dkim_signing.conf.master | 5 +++-- server/lib/classes/system.inc.php | 18 ++++++++++++++++-- .../plugins-available/mail_plugin_dkim.inc.php | 5 +++++ .../postfix_server_plugin.inc.php | 15 +++++++++++++++ 5 files changed, 53 insertions(+), 4 deletions(-) diff --git a/install/lib/installer_base.lib.php b/install/lib/installer_base.lib.php index 7abd315b8..4024e544b 100644 --- a/install/lib/installer_base.lib.php +++ b/install/lib/installer_base.lib.php @@ -1456,6 +1456,20 @@ class installer_base { } } exec("postconf -e 'smtpd_recipient_restrictions = ".implode(", ", $new_options)."'"); + + if ( substr($mail_config['dkim_path'], strlen($mail_config['dkim_path'])-1) == '/' ) { + $mail_config['dkim_path'] = substr($mail_config['dkim_path'], 0, strlen($mail_config['dkim_path'])-1); + } + $dkim_domains = $this->db->queryAllRecords('SELECT `dkim_selector`, `domain` FROM `mail_domain` WHERE `dkim` = ? ORDER BY `domain` ASC', 'y'); + $fpp = fopen('/etc/rspamd/local.d/dkim_domains.map', 'w'); + $fps = fopen('/etc/rspamd/local.d/dkim_selectors.map', 'w'); + foreach($dkim_domains as $dkim_domain) { + fwrite($fpp, $dkim_domain['domain'] . ' ' . $mail_config['dkim_path'] . '/' . $dkim_domain['domain'] . '.private' . "\n"); + fwrite($fps, $dkim_domain['domain'] . ' ' . $dkim_domain['dkim_selector']); + } + fclose($fpp); + fclose($fps); + unset($dkim_domains); } if(is_user('_rspamd') && is_group('amavis')) { diff --git a/install/tpl/rspamd_dkim_signing.conf.master b/install/tpl/rspamd_dkim_signing.conf.master index 0e55a7ead..a27ee78f9 100644 --- a/install/tpl/rspamd_dkim_signing.conf.master +++ b/install/tpl/rspamd_dkim_signing.conf.master @@ -1,2 +1,3 @@ -path = "/$domain.private"; -selector = "default"; \ No newline at end of file +try_fallback = false; +path_map = "/etc/rspamd/local.d/dkim_domains.map"; +selector_map = "/etc/rspamd/local.d/dkim_selectors.map";"; \ No newline at end of file diff --git a/server/lib/classes/system.inc.php b/server/lib/classes/system.inc.php index 5c277ada1..304701a5f 100644 --- a/server/lib/classes/system.inc.php +++ b/server/lib/classes/system.inc.php @@ -1535,7 +1535,14 @@ class system{ $found = 0; if(is_array($lines)) { foreach($lines as $line) { - if($strict == 0) { + if($strict == 0 && preg_match('/^REGEX:(.*)$/', $search_pattern)) { + if(preg_match(substr($search_pattern, 6), $line)) { + $out .= $new_line."\n"; + $found = 1; + } else { + $out .= $line; + } + } elseif($strict == 0) { if(stristr($line, $search_pattern)) { $out .= $new_line."\n"; $found = 1; @@ -1573,7 +1580,14 @@ class system{ if($lines = @file($filename)) { $out = ''; foreach($lines as $line) { - if($strict == 0) { + if($strict == 0 && preg_match('/^REGEX:(.*)$/', $search_pattern)) { + if(preg_match(substr($search_pattern, 6), $line)) { + $out .= $new_line."\n"; + $found = 1; + } else { + $out .= $line; + } + } elseif($strict == 0) { if(!stristr($line, $search_pattern)) { $out .= $line; } diff --git a/server/plugins-available/mail_plugin_dkim.inc.php b/server/plugins-available/mail_plugin_dkim.inc.php index ff649971a..ebfd6c0ac 100755 --- a/server/plugins-available/mail_plugin_dkim.inc.php +++ b/server/plugins-available/mail_plugin_dkim.inc.php @@ -347,6 +347,9 @@ class mail_plugin_dkim { } if ($this->write_dkim_key($mail_config['dkim_path']."/".$data['new']['domain'], $data['new']['dkim_private'], $data['new']['domain'])) { if($mail_config['content_filter'] == 'rspamd') { + $app->system->replaceLine('/etc/rspamd/local.d/dkim_domains.map', 'REGEX:/^' . preg_quote($data['new']['domain'], '/') . ' /', $data['new']['domain'] . ' ' . $mail_config['dkim_path']."/".$data['new']['domain'] . '.private'); + $app->system->replaceLine('/etc/rspamd/local.d/dkim_selectors.map', 'REGEX:/^' . preg_quote($data['new']['domain'], '/') . ' /', $data['new']['domain'] . ' ' . $data['new']['dkim_selector']); + $app->services->restartServiceDelayed('rspamd', 'reload'); } elseif ($this->add_to_amavis($data['new']['domain'], $data['new']['dkim_selector'], $data['old']['dkim_selector'] )) { $this->restart_amavis(); @@ -373,6 +376,8 @@ class mail_plugin_dkim { $this->remove_dkim_key($mail_config['dkim_path']."/".$_data['domain'], $_data['domain']); if($mail_config['content_filter'] == 'rspamd') { + $app->system->removeLine('/etc/rspamd/local.d/dkim_domains.map', 'REGEX:/^' . preg_quote($_data['domain'], '/') . ' /'); + $app->system->removeLine('/etc/rspamd/local.d/dkim_selectors.map', 'REGEX:/^' . preg_quote($_data['domain'], '/') . ' /'); $app->services->restartServiceDelayed('rspamd', 'reload'); } elseif ($this->remove_from_amavis($_data['domain'])) { $this->restart_amavis(); diff --git a/server/plugins-available/postfix_server_plugin.inc.php b/server/plugins-available/postfix_server_plugin.inc.php index 763a89b4b..933db86b3 100644 --- a/server/plugins-available/postfix_server_plugin.inc.php +++ b/server/plugins-available/postfix_server_plugin.inc.php @@ -200,6 +200,21 @@ class postfix_server_plugin { } } exec("postconf -e 'smtpd_recipient_restrictions = ".implode(", ", $new_options)."'"); + + // get all domains that have dkim enabled + if ( substr($mail_config['dkim_path'], strlen($mail_config['dkim_path'])-1) == '/' ) { + $mail_config['dkim_path'] = substr($mail_config['dkim_path'], 0, strlen($mail_config['dkim_path'])-1); + } + $dkim_domains = $app->db->queryAllRecords('SELECT `dkim_selector`, `domain` FROM `mail_domain` WHERE `dkim` = ? ORDER BY `domain` ASC', 'y'); + $fpp = fopen('/etc/rspamd/local.d/dkim_domains.map', 'w'); + $fps = fopen('/etc/rspamd/local.d/dkim_selectors.map', 'w'); + foreach($dkim_domains as $dkim_domain) { + fwrite($fpp, $dkim_domain['domain'] . ' ' . $mail_config['dkim_path'] . '/' . $dkim_domain['domain'] . '.private' . "\n"); + fwrite($fps, $dkim_domain['domain'] . ' ' . $dkim_domain['dkim_selector']); + } + fclose($fpp); + fclose($fps); + unset($dkim_domains); } if($mail_config['content_filter'] == 'amavisd'){ exec("postconf -X 'smtpd_milters'"); -- GitLab From 3d54268ee21a4351d45f94090526758e01824b77 Mon Sep 17 00:00:00 2001 From: Marius Burkard Date: Mon, 15 Jul 2019 18:51:10 +0200 Subject: [PATCH 104/215] - problem with missing newlines from previous commit --- install/lib/installer_base.lib.php | 27 ++++++++++--------- .../postfix_server_plugin.inc.php | 2 +- 2 files changed, 15 insertions(+), 14 deletions(-) diff --git a/install/lib/installer_base.lib.php b/install/lib/installer_base.lib.php index 4024e544b..f752b693d 100644 --- a/install/lib/installer_base.lib.php +++ b/install/lib/installer_base.lib.php @@ -1457,19 +1457,6 @@ class installer_base { } exec("postconf -e 'smtpd_recipient_restrictions = ".implode(", ", $new_options)."'"); - if ( substr($mail_config['dkim_path'], strlen($mail_config['dkim_path'])-1) == '/' ) { - $mail_config['dkim_path'] = substr($mail_config['dkim_path'], 0, strlen($mail_config['dkim_path'])-1); - } - $dkim_domains = $this->db->queryAllRecords('SELECT `dkim_selector`, `domain` FROM `mail_domain` WHERE `dkim` = ? ORDER BY `domain` ASC', 'y'); - $fpp = fopen('/etc/rspamd/local.d/dkim_domains.map', 'w'); - $fps = fopen('/etc/rspamd/local.d/dkim_selectors.map', 'w'); - foreach($dkim_domains as $dkim_domain) { - fwrite($fpp, $dkim_domain['domain'] . ' ' . $mail_config['dkim_path'] . '/' . $dkim_domain['domain'] . '.private' . "\n"); - fwrite($fps, $dkim_domain['domain'] . ' ' . $dkim_domain['dkim_selector']); - } - fclose($fpp); - fclose($fps); - unset($dkim_domains); } if(is_user('_rspamd') && is_group('amavis')) { @@ -1485,6 +1472,20 @@ class installer_base { if(!is_dir('/etc/rspamd/override.d/')){ mkdir('/etc/rspamd/override.d/', 0755, true); } + + if ( substr($mail_config['dkim_path'], strlen($mail_config['dkim_path'])-1) == '/' ) { + $mail_config['dkim_path'] = substr($mail_config['dkim_path'], 0, strlen($mail_config['dkim_path'])-1); + } + $dkim_domains = $this->db->queryAllRecords('SELECT `dkim_selector`, `domain` FROM `mail_domain` WHERE `dkim` = ? ORDER BY `domain` ASC', 'y'); + $fpp = fopen('/etc/rspamd/local.d/dkim_domains.map', 'w'); + $fps = fopen('/etc/rspamd/local.d/dkim_selectors.map', 'w'); + foreach($dkim_domains as $dkim_domain) { + fwrite($fpp, $dkim_domain['domain'] . ' ' . $mail_config['dkim_path'] . '/' . $dkim_domain['domain'] . '.private' . "\n"); + fwrite($fps, $dkim_domain['domain'] . ' ' . $dkim_domain['dkim_selector'] . "\n"); + } + fclose($fpp); + fclose($fps); + unset($dkim_domains); $tpl = new tpl(); $tpl->newTemplate('rspamd_users.conf.master'); diff --git a/server/plugins-available/postfix_server_plugin.inc.php b/server/plugins-available/postfix_server_plugin.inc.php index 933db86b3..f66fc40d4 100644 --- a/server/plugins-available/postfix_server_plugin.inc.php +++ b/server/plugins-available/postfix_server_plugin.inc.php @@ -210,7 +210,7 @@ class postfix_server_plugin { $fps = fopen('/etc/rspamd/local.d/dkim_selectors.map', 'w'); foreach($dkim_domains as $dkim_domain) { fwrite($fpp, $dkim_domain['domain'] . ' ' . $mail_config['dkim_path'] . '/' . $dkim_domain['domain'] . '.private' . "\n"); - fwrite($fps, $dkim_domain['domain'] . ' ' . $dkim_domain['dkim_selector']); + fwrite($fps, $dkim_domain['domain'] . ' ' . $dkim_domain['dkim_selector'] . "\n"); } fclose($fpp); fclose($fps); -- GitLab From 0f15aff2403e6ec8270607e4ce880908833ea644 Mon Sep 17 00:00:00 2001 From: Marius Burkard Date: Mon, 15 Jul 2019 18:59:08 +0200 Subject: [PATCH 105/215] - added missing database name set on update of ISPConfig --- install/update.php | 1 + 1 file changed, 1 insertion(+) diff --git a/install/update.php b/install/update.php index 42ddd625f..b700219f2 100644 --- a/install/update.php +++ b/install/update.php @@ -253,6 +253,7 @@ prepareDBDump(); //* initialize the database $inst->db = new db(); +$inst->db->setDBName($conf['mysql']['database']); //* initialize the master DB, if we have a multiserver setup if($conf['mysql']['master_slave_setup'] == 'y') { -- GitLab From 66357f0779da7af83fe1d8310849672db5b08df6 Mon Sep 17 00:00:00 2001 From: Marius Burkard Date: Mon, 15 Jul 2019 19:05:45 +0200 Subject: [PATCH 106/215] - still problem with domain selector on update of ISPC --- install/lib/installer_base.lib.php | 2 +- install/update.php | 1 - 2 files changed, 1 insertion(+), 2 deletions(-) diff --git a/install/lib/installer_base.lib.php b/install/lib/installer_base.lib.php index f752b693d..4db0da1ec 100644 --- a/install/lib/installer_base.lib.php +++ b/install/lib/installer_base.lib.php @@ -1476,7 +1476,7 @@ class installer_base { if ( substr($mail_config['dkim_path'], strlen($mail_config['dkim_path'])-1) == '/' ) { $mail_config['dkim_path'] = substr($mail_config['dkim_path'], 0, strlen($mail_config['dkim_path'])-1); } - $dkim_domains = $this->db->queryAllRecords('SELECT `dkim_selector`, `domain` FROM `mail_domain` WHERE `dkim` = ? ORDER BY `domain` ASC', 'y'); + $dkim_domains = $this->db->queryAllRecords('SELECT `dkim_selector`, `domain` FROM ?? WHERE `dkim` = ? ORDER BY `domain` ASC', $conf['mysql']['database'] . '.mail_domain', 'y'); $fpp = fopen('/etc/rspamd/local.d/dkim_domains.map', 'w'); $fps = fopen('/etc/rspamd/local.d/dkim_selectors.map', 'w'); foreach($dkim_domains as $dkim_domain) { diff --git a/install/update.php b/install/update.php index b700219f2..42ddd625f 100644 --- a/install/update.php +++ b/install/update.php @@ -253,7 +253,6 @@ prepareDBDump(); //* initialize the database $inst->db = new db(); -$inst->db->setDBName($conf['mysql']['database']); //* initialize the master DB, if we have a multiserver setup if($conf['mysql']['master_slave_setup'] == 'y') { -- GitLab From 78041c8dff476bca0d75d57bdadfe881f4d40512 Mon Sep 17 00:00:00 2001 From: Marius Burkard Date: Mon, 15 Jul 2019 19:09:02 +0200 Subject: [PATCH 107/215] - syntax error in config for rspamd dkim --- install/tpl/rspamd_dkim_signing.conf.master | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/install/tpl/rspamd_dkim_signing.conf.master b/install/tpl/rspamd_dkim_signing.conf.master index a27ee78f9..ed9abe40e 100644 --- a/install/tpl/rspamd_dkim_signing.conf.master +++ b/install/tpl/rspamd_dkim_signing.conf.master @@ -1,3 +1,3 @@ try_fallback = false; path_map = "/etc/rspamd/local.d/dkim_domains.map"; -selector_map = "/etc/rspamd/local.d/dkim_selectors.map";"; \ No newline at end of file +selector_map = "/etc/rspamd/local.d/dkim_selectors.map"; \ No newline at end of file -- GitLab From 1eb51aa6feb069c3ff969b95d1e452abae916f78 Mon Sep 17 00:00:00 2001 From: Marius Burkard Date: Thu, 18 Jul 2019 11:00:53 +0200 Subject: [PATCH 108/215] - fixed white/blacklisting for rspamd --- install/lib/update.lib.php | 2 +- server/conf/rspamd_users.inc.conf.master | 16 ++++++++-------- server/conf/rspamd_wblist.inc.conf.master | 14 +++++++++++--- server/plugins-available/rspamd_plugin.inc.php | 3 ++- 4 files changed, 22 insertions(+), 13 deletions(-) diff --git a/install/lib/update.lib.php b/install/lib/update.lib.php index 3406b760b..fd1a34b2c 100644 --- a/install/lib/update.lib.php +++ b/install/lib/update.lib.php @@ -103,7 +103,7 @@ function checkDbHealth() { $notok = array(); echo "Checking ISPConfig database .. "; - exec("mysqlcheck -h ".escapeshellarg($conf['mysql']['host'])." -u ".escapeshellarg($conf['mysql']['admin_user'])." -p".escapeshellarg($conf['mysql']['admin_password'])." -P ".escapeshellarg($conf['mysql']['port'])." -r ".escapeshellarg($conf["mysql"]["database"]), $result); + exec("mysqlcheck -h ".escapeshellarg($conf['mysql']['host'])." -u ".escapeshellarg($conf['mysql']['admin_user'])." -p".escapeshellarg($conf['mysql']['admin_password'])." -P ".escapeshellarg($conf['mysql']['port'])." --auto-repair ".escapeshellarg($conf["mysql"]["database"]), $result); for( $i=0; $i { want_spam = yes; - apply "default" { + apply { CLAM_VIRUS = 1999.0; JUST_EICAR = 1999.0; actions { - reject = 999.0; + reject = null; } } - apply "default" { + apply { CLAM_VIRUS = -999.0; JUST_EICAR = -999.0; actions { greylist = ; - - = ; + "rewrite subject" = ; + "add header" = ; reject = ; } } - apply "default" { + apply { CLAM_VIRUS = ; JUST_EICAR = ; actions { greylist = ; - - = ; + "rewrite subject" = ; + "add header" = ; reject = ; } } diff --git a/server/conf/rspamd_wblist.inc.conf.master b/server/conf/rspamd_wblist.inc.conf.master index fc06127ea..aaa7d06f6 100644 --- a/server/conf/rspamd_wblist.inc.conf.master +++ b/server/conf/rspamd_wblist.inc.conf.master @@ -4,14 +4,22 @@ spamfilter_wblist- { rcpt = ""; want_spam = yes; + apply { + actions { + reject = null; + "add header" = null; + greylist = null; + "rewrite subject" = null; + } + } - apply "default" { + apply { R_DUMMY = 999.0; actions { reject = 0.2; - add_header = 0.1; + "add header" = 0.1; greylist = 0.1; - rewrite_subject = 0.1; + "rewrite subject" = 0.1; } } diff --git a/server/plugins-available/rspamd_plugin.inc.php b/server/plugins-available/rspamd_plugin.inc.php index 65f4522ba..b6eddc401 100644 --- a/server/plugins-available/rspamd_plugin.inc.php +++ b/server/plugins-available/rspamd_plugin.inc.php @@ -189,7 +189,8 @@ class rspamd_plugin { $tpl = new tpl(); $tpl->newTemplate('rspamd_wblist.inc.conf.master'); $tpl->setVar('record_id', intval($data['new']['wblist_id'])); - $tpl->setVar('priority', intval($data['new']['priority'])); + // we need to add 10 to priority to avoid mailbox/domain spamfilter settings overriding white/blacklists + $tpl->setVar('priority', intval($data['new']['priority']) + 10); $tpl->setVar('from', $app->functions->idn_encode($data['new']['email'])); $tpl->setVar('recipient', $app->functions->idn_encode($recipient['email'])); //$tpl->setVar('action', ($data['new']['wb'] == 'W'? 'want_spam = yes;' : 'action = "reject";')); -- GitLab From f343e169a2afda4512cf64d98b074ded71fbe532 Mon Sep 17 00:00:00 2001 From: Marius Burkard Date: Tue, 23 Jul 2019 19:32:22 +0200 Subject: [PATCH 109/215] Insufficient escaping of whitespace in FTP user paths, fixes #5350 --- interface/web/sites/form/ftp_user.tform.php | 5 ++++- server/plugins-available/ftpuser_base_plugin.inc.php | 6 ++---- 2 files changed, 6 insertions(+), 5 deletions(-) diff --git a/interface/web/sites/form/ftp_user.tform.php b/interface/web/sites/form/ftp_user.tform.php index 239bfdb85..5e77de4b5 100644 --- a/interface/web/sites/form/ftp_user.tform.php +++ b/interface/web/sites/form/ftp_user.tform.php @@ -276,7 +276,10 @@ if($app->auth->is_admin()) { 'formtype' => 'TEXT', 'validators' => array ( 0 => array ( 'type' => 'NOTEMPTY', 'errmsg'=> 'directory_error_empty'), - 1 => array ( 'type' => 'CUSTOM', + 1 => array ( 'type' => 'REGEX', + 'regex' => '/^\/[a-zA-Z0-9\ \.\-\_\/]{10,128}$/', + 'errmsg'=> 'directory_error_regex'), + 2 => array ( 'type' => 'CUSTOM', 'class' => 'validate_ftpuser', 'function' => 'ftp_dir', 'errmsg' => 'directory_error_notinweb'), diff --git a/server/plugins-available/ftpuser_base_plugin.inc.php b/server/plugins-available/ftpuser_base_plugin.inc.php index af5870a4b..c34371a18 100644 --- a/server/plugins-available/ftpuser_base_plugin.inc.php +++ b/server/plugins-available/ftpuser_base_plugin.inc.php @@ -83,8 +83,7 @@ class ftpuser_base_plugin { } $app->system->web_folder_protection($web['document_root'], false); - exec('mkdir -p '.escapeshellcmd($data['new']['dir'])); - exec('chown '.escapeshellcmd($web["system_user"]).':'.escapeshellcmd($web['system_group']).' '.$data['new']['dir']); + $app->system->mkdirpath($data['new']['dir'], 0755, $web["system_user"], $web["system_group"]); $app->system->web_folder_protection($web['document_root'], true); $app->log("Added ftpuser_dir: ".$data['new']['dir'], LOGLEVEL_DEBUG); @@ -109,8 +108,7 @@ class ftpuser_base_plugin { } $app->system->web_folder_protection($web['document_root'], false); - exec('mkdir -p '.escapeshellcmd($data['new']['dir'])); - exec('chown '.escapeshellcmd($web["system_user"]).':'.escapeshellcmd($web['system_group']).' '.$data['new']['dir']); + $app->system->mkdirpath($data['new']['dir'], 0755, $web["system_user"], $web["system_group"]); $app->system->web_folder_protection($web['document_root'], true); -- GitLab From 2d6d9eb4ffaaf5371ecfba1734ab1f86873013ea Mon Sep 17 00:00:00 2001 From: Marius Burkard Date: Sat, 27 Jul 2019 21:18:24 +0200 Subject: [PATCH 110/215] - Support CRYPT-SHA512 and SHA256 for passwords, implements #5353 --- .../sql/incremental/upd_dev_collection.sql | 5 ++++ install/sql/ispconfig3.sql | 10 ++++---- interface/lib/classes/auth.inc.php | 25 +++++++++++++++---- interface/lib/classes/remote.d/client.inc.php | 14 ++++------- interface/lib/classes/remoting.inc.php | 10 ++------ interface/web/admin/users_edit.php | 10 +++----- interface/web/client/reseller_edit.php | 24 +++++++----------- 7 files changed, 49 insertions(+), 49 deletions(-) diff --git a/install/sql/incremental/upd_dev_collection.sql b/install/sql/incremental/upd_dev_collection.sql index e69de29bb..d5b7b0e01 100644 --- a/install/sql/incremental/upd_dev_collection.sql +++ b/install/sql/incremental/upd_dev_collection.sql @@ -0,0 +1,5 @@ +ALTER TABLE `client` CHANGE COLUMN `password` `password` VARCHAR(200) DEFAULT NULL; +ALTER TABLE `ftp_user` CHANGE COLUMN `password` `password` VARCHAR(200) DEFAULT NULL; +ALTER TABLE `shell_user` CHANGE COLUMN `password` `password` VARCHAR(200) DEFAULT NULL; +ALTER TABLE `sys_user` CHANGE COLUMN `passwort` `passwort` VARCHAR(200) DEFAULT NULL; +ALTER TABLE `webdav_user` CHANGE COLUMN `password` `password` VARCHAR(200) DEFAULT NULL; \ No newline at end of file diff --git a/install/sql/ispconfig3.sql b/install/sql/ispconfig3.sql index 2417ef0d2..3f534eedf 100644 --- a/install/sql/ispconfig3.sql +++ b/install/sql/ispconfig3.sql @@ -243,7 +243,7 @@ CREATE TABLE `client` ( `limit_openvz_vm_template_id` int(11) NOT NULL DEFAULT '0', `parent_client_id` int(11) unsigned NOT NULL DEFAULT '0', `username` varchar(64) DEFAULT NULL, - `password` varchar(64) DEFAULT NULL, + `password` varchar(200) DEFAULT NULL, `language` char(2) NOT NULL DEFAULT 'en', `usertheme` varchar(32) NOT NULL DEFAULT 'default', `template_master` int(11) unsigned NOT NULL DEFAULT '0', @@ -705,7 +705,7 @@ CREATE TABLE `ftp_user` ( `parent_domain_id` int(11) unsigned NOT NULL default '0', `username` varchar(64) default NULL, `username_prefix` varchar(50) NOT NULL default '', - `password` varchar(64) default NULL, + `password` varchar(200) default NULL, `quota_size` bigint(20) NOT NULL default '-1', `active` enum('n','y') NOT NULL default 'y', `uid` varchar(64) default NULL, @@ -1440,7 +1440,7 @@ CREATE TABLE `shell_user` ( `parent_domain_id` int(11) unsigned NOT NULL default '0', `username` varchar(64) default NULL, `username_prefix` varchar(50) NOT NULL default '', - `password` varchar(64) default NULL, + `password` varchar(200) default NULL, `quota_size` bigint(20) NOT NULL default '-1', `active` enum('n','y') NOT NULL default 'y', `puser` varchar(255) default NULL, @@ -1864,7 +1864,7 @@ CREATE TABLE `sys_user` ( `sys_perm_group` varchar(5) NOT NULL default 'riud', `sys_perm_other` varchar(5) NOT NULL default '', `username` varchar(64) NOT NULL default '', - `passwort` varchar(64) NOT NULL default '', + `passwort` varchar(200) NOT NULL default '', `modules` varchar(255) NOT NULL default '', `startmodule` varchar(255) NOT NULL default '', `app_theme` varchar(32) NOT NULL default 'default', @@ -1899,7 +1899,7 @@ CREATE TABLE `webdav_user` ( `parent_domain_id` int(11) unsigned NOT NULL DEFAULT '0', `username` varchar(64) DEFAULT NULL, `username_prefix` varchar(50) NOT NULL default '', - `password` varchar(64) DEFAULT NULL, + `password` varchar(200) DEFAULT NULL, `active` enum('n','y') NOT NULL DEFAULT 'y', `dir` varchar(255) DEFAULT NULL, PRIMARY KEY (`webdav_user_id`) diff --git a/interface/lib/classes/auth.inc.php b/interface/lib/classes/auth.inc.php index 6658c4c11..afe50ac69 100644 --- a/interface/lib/classes/auth.inc.php +++ b/interface/lib/classes/auth.inc.php @@ -231,12 +231,27 @@ class auth { if($charset != 'UTF-8') { $cleartext_password = mb_convert_encoding($cleartext_password, $charset, 'UTF-8'); } - $salt="$1$"; - $base64_alphabet='ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/'; - for ($n=0;$n<8;$n++) { - $salt.=$base64_alphabet[mt_rand(0, 63)]; + + if(defined('CRYPT_SHA512') && CRYPT_SHA512 == 1) { + $salt = '$6$rounds=5000$'; + $salt_length = 16; + } elseif(defined('CRYPT_SHA256') && CRYPT_SHA256 == 1) { + $salt = '$5$rounds=5000$'; + $salt_length = 16; + } else { + $salt = '$1$'; + $salt_length = 12; + } + + if(function_exists('openssl_random_pseudo_bytes')) { + $salt .= substr(bin2hex(openssl_random_pseudo_bytes($salt_length)), 0, $salt_length); + } else { + $base64_alphabet = 'ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789./'; + for($n = 0; $n < $salt_length; $n++) { + $salt .= $base64_alphabet[mt_rand(0, 63)]; + } } - $salt.="$"; + $salt .= "$"; return crypt($cleartext_password, $salt); } diff --git a/interface/lib/classes/remote.d/client.inc.php b/interface/lib/classes/remote.d/client.inc.php index b91909c9d..e07e227e6 100644 --- a/interface/lib/classes/remote.d/client.inc.php +++ b/interface/lib/classes/remote.d/client.inc.php @@ -604,11 +604,9 @@ class remoting_client extends remoting { if($user) { $saved_password = stripslashes($user['password']); - if(substr($saved_password, 0, 3) == '$1$') { - //* The password is crypt-md5 encrypted - $salt = '$1$'.substr($saved_password, 3, 8).'$'; - - if(crypt(stripslashes($password), $salt) != $saved_password) { + if(preg_match('/^\$[156]\$/', $saved_password)) { + //* The password is crypt encrypted + if(crypt(stripslashes($password), $saved_password) !== $saved_password) { $user = false; } } else { @@ -636,11 +634,9 @@ class remoting_client extends remoting { if($user) { $saved_password = stripslashes($user['passwort']); - if(substr($saved_password, 0, 3) == '$1$') { + if(preg_match('/^\$[156]\$/', $saved_password)) { //* The password is crypt-md5 encrypted - $salt = '$1$'.substr($saved_password, 3, 8).'$'; - - if(crypt(stripslashes($password), $salt) != $saved_password) { + if(crypt(stripslashes($password), $saved_password) != $saved_password) { $user = false; } } else { diff --git a/interface/lib/classes/remoting.inc.php b/interface/lib/classes/remoting.inc.php index 6e551355a..e1fc1ada8 100644 --- a/interface/lib/classes/remoting.inc.php +++ b/interface/lib/classes/remoting.inc.php @@ -99,28 +99,22 @@ class remoting { if($user) { $saved_password = stripslashes($user['passwort']); - if(substr($saved_password, 0, 3) == '$1$') { + if(preg_match('/^\$[156]\$/', $saved_password)) { //* The password is crypt-md5 encrypted - $salt = '$1$'.substr($saved_password, 3, 8).'$'; - - if(crypt(stripslashes($password), $salt) != $saved_password) { + if(crypt(stripslashes($password), $saved_password) != $saved_password) { throw new SoapFault('client_login_failed', 'The login failed. Username or password wrong.'); - return false; } } else { //* The password is md5 encrypted if(md5($password) != $saved_password) { throw new SoapFault('client_login_failed', 'The login failed. Username or password wrong.'); - return false; } } } else { throw new SoapFault('client_login_failed', 'The login failed. Username or password wrong.'); - return false; } if($user['active'] != 1) { throw new SoapFault('client_login_failed', 'The login failed. User is blocked.'); - return false; } // now we need the client data diff --git a/interface/web/admin/users_edit.php b/interface/web/admin/users_edit.php index 4c5c97409..7f0c691c4 100644 --- a/interface/web/admin/users_edit.php +++ b/interface/web/admin/users_edit.php @@ -104,6 +104,8 @@ class page_action extends tform_actions { function onAfterUpdate() { global $app, $conf; + $app->uses('auth'); + $client = $app->db->queryOneRecord("SELECT * FROM sys_user WHERE userid = ?", $this->id); $client_id = $app->functions->intval($client['client_id']); $username = $this->dataRecord["username"]; @@ -121,13 +123,7 @@ class page_action extends tform_actions { // password changed if(isset($conf['demo_mode']) && $conf['demo_mode'] != true && isset($this->dataRecord["passwort"]) && $this->dataRecord["passwort"] != '') { $password = $this->dataRecord["passwort"]; - $salt="$1$"; - $base64_alphabet='ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/'; - for ($n=0;$n<8;$n++) { - $salt.=$base64_alphabet[mt_rand(0, 63)]; - } - $salt.="$"; - $password = crypt(stripslashes($password), $salt); + $password = $app->auth->crypt_password($password); $sql = "UPDATE client SET password = ? WHERE client_id = ? AND username = ?"; $app->db->query($sql, $password, $client_id, $username); } diff --git a/interface/web/client/reseller_edit.php b/interface/web/client/reseller_edit.php index 59699ec16..3078e01fb 100644 --- a/interface/web/client/reseller_edit.php +++ b/interface/web/client/reseller_edit.php @@ -200,6 +200,9 @@ class page_action extends tform_actions { */ function onAfterInsert() { global $app, $conf; + + $app->uses('auth'); + // Create the group for the reseller $groupid = $app->db->datalogInsert('sys_group', array("name" => $this->dataRecord["username"], "description" => '', "client_id" => $this->id), 'groupid'); $groups = $groupid; @@ -213,14 +216,8 @@ class page_action extends tform_actions { $active = 1; $language = $this->dataRecord["language"]; - $salt="$1$"; - $base64_alphabet='ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/'; - for ($n=0;$n<8;$n++) { - $salt.=$base64_alphabet[mt_rand(0, 63)]; - } - $salt.="$"; - $password = crypt(stripslashes($password), $salt); - + $password = $app->auth->crypt_password(stripslashes($password)); + // Create the controlpaneluser for the reseller $sql = "INSERT INTO sys_user (`username`,`passwort`,`modules`,`startmodule`,`app_theme`,`typ`, `active`,`language`,`groups`,`default_group`,`client_id`) VALUES (?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?)"; @@ -313,6 +310,8 @@ class page_action extends tform_actions { function onAfterUpdate() { global $app, $conf; + $app->uses('auth'); + // username changed if(isset($conf['demo_mode']) && $conf['demo_mode'] != true && isset($this->dataRecord['username']) && $this->dataRecord['username'] != '' && $this->oldDataRecord['username'] != $this->dataRecord['username']) { $username = $this->dataRecord["username"]; @@ -329,13 +328,8 @@ class page_action extends tform_actions { if(isset($conf['demo_mode']) && $conf['demo_mode'] != true && isset($this->dataRecord["password"]) && $this->dataRecord["password"] != '') { $password = $this->dataRecord["password"]; $client_id = $this->id; - $salt="$1$"; - $base64_alphabet='ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/'; - for ($n=0;$n<8;$n++) { - $salt.=$base64_alphabet[mt_rand(0, 63)]; - } - $salt.="$"; - $password = crypt(stripslashes($password), $salt); + + $password = $app->auth->crypt_password(stripslashes($password)); $sql = "UPDATE sys_user SET passwort = ? WHERE client_id = ?"; $app->db->query($sql, $password, $client_id); } -- GitLab From 2b60a7a979567cb8c4513553f6b78909b4046bf1 Mon Sep 17 00:00:00 2001 From: Marius Burkard Date: Sat, 27 Jul 2019 22:57:40 +0200 Subject: [PATCH 111/215] WIP: change system exec calls to safe variant --- interface/lib/app.inc.php | 2 +- interface/lib/classes/functions.inc.php | 4 +- interface/lib/classes/system.inc.php | 43 +++++++++- interface/lib/classes/validate_dkim.inc.php | 5 +- interface/web/mail/ajax_get_json.php | 10 ++- server/lib/app.inc.php | 16 ++++ server/lib/classes/aps_installer.inc.php | 19 +++-- .../cron.d/100-monitor_email_quota.inc.php | 5 +- server/lib/classes/cron.d/150-awstats.inc.php | 16 ++-- .../lib/classes/cron.d/150-webalizer.inc.php | 14 ++-- .../lib/classes/cron.d/200-logfiles.inc.php | 26 +++--- server/lib/classes/cron.d/500-backup.inc.php | 33 +++++--- .../classes/cron.d/500-backup_mail.inc.php | 30 ++++--- .../cron.d/600-purge_mailboxes.inc.php | 2 +- .../classes/cron.d/900-letsencrypt.inc.php | 2 +- server/lib/classes/functions.inc.php | 4 +- server/lib/classes/letsencrypt.inc.php | 6 +- server/lib/classes/monitor_tools.inc.php | 3 +- server/lib/classes/system.inc.php | 82 +++++++++++++------ .../remoteaction_core_module.inc.php | 19 +++-- .../plugins-available/apache2_plugin.inc.php | 29 ++++--- .../apps_vhost_plugin.inc.php | 6 +- 22 files changed, 246 insertions(+), 130 deletions(-) diff --git a/interface/lib/app.inc.php b/interface/lib/app.inc.php index b02ae8526..46f721324 100755 --- a/interface/lib/app.inc.php +++ b/interface/lib/app.inc.php @@ -78,7 +78,7 @@ class app { $this->uses($prop); if(property_exists($this, $prop)) return $this->{$prop}; - else return null; + else trigger_error('Undefined property ' . $name . ' of class app', E_USER_WARNING); } public function __destruct() { diff --git a/interface/lib/classes/functions.inc.php b/interface/lib/classes/functions.inc.php index 28ab9ce38..03e331f0f 100644 --- a/interface/lib/classes/functions.inc.php +++ b/interface/lib/classes/functions.inc.php @@ -451,9 +451,9 @@ class functions { if(file_exists($id_rsa_file)) unset($id_rsa_file); if(file_exists($id_rsa_pub_file)) unset($id_rsa_pub_file); if(!file_exists($id_rsa_file) && !file_exists($id_rsa_pub_file)) { - exec('ssh-keygen -t rsa -C '.$username.'-rsa-key-'.time().' -f '.$id_rsa_file.' -N ""'); + $app->system->exec_safe('ssh-keygen -t rsa -C ? -f ? -N ""', $username.'-rsa-key-'.time(), $id_rsa_file); $app->db->query("UPDATE client SET created_at = UNIX_TIMESTAMP(), id_rsa = ?, ssh_rsa = ? WHERE client_id = ?", @file_get_contents($id_rsa_file), @file_get_contents($id_rsa_pub_file), $client_id); - exec('rm -f '.$id_rsa_file.' '.$id_rsa_pub_file); + $app->system->exec_safe('rm -f ? ?', $id_rsa_file, $id_rsa_pub_file); } else { $app->log("Failed to create SSH keypair for ".$username, LOGLEVEL_WARN); } diff --git a/interface/lib/classes/system.inc.php b/interface/lib/classes/system.inc.php index cef9424a7..d4d9cccef 100644 --- a/interface/lib/classes/system.inc.php +++ b/interface/lib/classes/system.inc.php @@ -31,6 +31,8 @@ EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. class system { var $client_service = null; + private $_last_exec_out = null; + private $_last_exec_retcode = null; public function has_service($userid, $service) { global $app; @@ -52,8 +54,43 @@ class system { return false; } } -} //* End Class - -?> + public function last_exec_out() { + return $this->_last_exec_out; + } + + public function last_exec_retcode() { + return $this->_last_exec_retcode; + } + + public function exec_safe($cmd) { + $arg_count = func_num_args(); + if($arg_count > 1) { + $args = func_get_args(); + $pos = 0; + $a = 0; + foreach($args as $value) { + $a++; + + $pos = strpos($cmd, '?', $pos); + if($pos === false) { + break; + } + $value = escapeshellarg($value); + $cmd = substr_replace($cmd, $value, $pos, 1); + $pos += strlen($value); + } + } + + $this->_last_exec_out = null; + $this->_last_exec_retcode = null; + return exec($cmd, $this->_last_exec_out, $this->_last_exec_retcode); + } + + public function system_safe($cmd) { + call_user_func_array(array($this, 'exec_safe'), func_get_args()); + return implode("\n", $this->_last_exec_out); + } + +} //* End Class diff --git a/interface/lib/classes/validate_dkim.inc.php b/interface/lib/classes/validate_dkim.inc.php index 443fe76d7..3fbc28a0a 100644 --- a/interface/lib/classes/validate_dkim.inc.php +++ b/interface/lib/classes/validate_dkim.inc.php @@ -49,10 +49,13 @@ class validate_dkim { * Validator function for private DKIM-Key */ function check_private_key($field_name, $field_value, $validator) { + global $app; + $dkim_enabled=$_POST['dkim']; if ($dkim_enabled == 'y') { if (empty($field_value)) return $this->get_error($validator['errmsg']); - exec('echo '.escapeshellarg($field_value).'|openssl rsa -check', $output, $result); + $app->system->exec_safe('echo ?|openssl rsa -check', $field_value); + $result = $app->system->last_exec_retcode(); if($result != 0) return $this->get_error($validator['errmsg']); } } diff --git a/interface/web/mail/ajax_get_json.php b/interface/web/mail/ajax_get_json.php index 17fd4cf45..69705ba6f 100644 --- a/interface/web/mail/ajax_get_json.php +++ b/interface/web/mail/ajax_get_json.php @@ -54,8 +54,8 @@ if($type == 'create_dkim' && $domain_id != ''){ if ($dkim_strength=='') $dkim_strength = 2048; $rnd_val = $dkim_strength * 10; - exec('openssl rand -out ../../temp/random-data.bin '.$rnd_val.' 2> /dev/null', $output, $result); - exec('openssl genrsa -rand ../../temp/random-data.bin '.$dkim_strength.' 2> /dev/null', $privkey, $result); + $app->system->exec_safe('openssl rand -out ../../temp/random-data.bin '.$rnd_val.' 2> /dev/null', $output, $result); + $app->system->exec_safe('openssl genrsa -rand ../../temp/random-data.bin '.$dkim_strength.' 2> /dev/null', $privkey, $result); unlink("../../temp/random-data.bin"); $dkim_private=''; foreach($privkey as $values) $dkim_private=$dkim_private.$values."\n"; @@ -79,12 +79,14 @@ if($type == 'create_dkim' && $domain_id != ''){ $selector = 'invalid domain or selector'; } unset($dkim_public); - exec('echo '.escapeshellarg($dkim_private).'|openssl rsa -pubout -outform PEM 2> /dev/null',$pubkey,$result); + $app->system->exec_safe('echo ?|openssl rsa -pubout -outform PEM 2> /dev/null', $dkim_private); + $pubkey = $app->system->last_exec_out(); foreach($pubkey as $values) $dkim_public=$dkim_public.$values."\n"; $selector = $dkim_selector; } else { unset($dkim_public); - exec('echo '.escapeshellarg($dkim_private).'|openssl rsa -pubout -outform PEM 2> /dev/null',$pubkey,$result); + $app->system->exec_safe('echo ?|openssl rsa -pubout -outform PEM 2> /dev/null', $dkim_private); + $pubkey = $app->system->last_exec_out(); foreach($pubkey as $values) $dkim_public=$dkim_public.$values."\n"; $selector = $dkim_selector; } diff --git a/server/lib/app.inc.php b/server/lib/app.inc.php index 86df2a86f..146f2465c 100644 --- a/server/lib/app.inc.php +++ b/server/lib/app.inc.php @@ -69,6 +69,22 @@ class app { } + public function __get($name) { + $valid_names = array('functions', 'getconf', 'letsencrypt', 'modules', 'plugins', 'services', 'system'); + if(!in_array($name, $valid_names)) { + trigger_error('Undefined property ' . $name . ' of class app', E_USER_WARNING); + } + if(property_exists($this, $name)) { + return $this->{$name}; + } + $this->uses($name); + if(property_exists($this, $name)) { + return $this->{$name}; + } else { + trigger_error('Undefined property ' . $name . ' of class app', E_USER_WARNING); + } + } + function setCaller($caller) { $this->_calling_script = $caller; } diff --git a/server/lib/classes/aps_installer.inc.php b/server/lib/classes/aps_installer.inc.php index 9b601d90b..2995b01e0 100644 --- a/server/lib/classes/aps_installer.inc.php +++ b/server/lib/classes/aps_installer.inc.php @@ -395,7 +395,7 @@ class ApsInstaller extends ApsBase mkdir($this->document_root, 0777, true); } } else { - exec("rm -Rf ".escapeshellarg($this->local_installpath).'*'); + $app->system->exec_safe("rm -Rf ?*", $this->local_installpath); } } else { mkdir($this->local_installpath, 0777, true); @@ -412,7 +412,7 @@ class ApsInstaller extends ApsBase || ($this->extractZip($this->packages_dir.'/'.$task['path'], 'scripts', $this->local_installpath.'install_scripts/') === false) ) { // Clean already extracted data - exec("rm -Rf ".escapeshellarg($this->local_installpath).'*'); + $app->system->exec_safe("rm -Rf ?*", $this->local_installpath); throw new Exception('Unable to extract the package '.$task['path']); } @@ -423,11 +423,11 @@ class ApsInstaller extends ApsBase $owner_res = $app->db->queryOneRecord("SELECT system_user, system_group FROM web_domain WHERE domain = ?", $main_domain['value']); $this->file_owner_user = $owner_res['system_user']; $this->file_owner_group = $owner_res['system_group']; - exec('chown -R '.$this->file_owner_user.':'.$this->file_owner_group.' '.escapeshellarg($this->local_installpath)); + $app->system->exec_safe('chown -R ?:? ?', $this->file_owner_user, $this->file_owner_group, $this->local_installpath); //* Chown stats directory back if(is_dir($this->local_installpath.'stats')) { - exec('chown -R root:root '.escapeshellarg($this->local_installpath.'stats')); + $app->system->exec_safe('chown -R root:root ?', $this->local_installpath.'stats'); } } } @@ -554,7 +554,9 @@ class ApsInstaller extends ApsBase $shell_retcode = true; $shell_ret = array(); - exec('php '.escapeshellarg($this->local_installpath.'install_scripts/'.$cfgscript).' install 2>&1', $shell_ret, $shell_retcode); + $app->system->exec_safe('php ? install 2>&1', $this->local_installpath.'install_scripts/'.$cfgscript); + $shell_ret = $app->system->last_exec_out(); + $shell_retcode = $app->system->last_exec_retcode(); $shell_ret = array_filter($shell_ret); $shell_ret_str = implode("\n", $shell_ret); @@ -566,11 +568,11 @@ class ApsInstaller extends ApsBase else { // The install succeeded, chown newly created files too - exec('chown -R '.$this->file_owner_user.':'.$this->file_owner_group.' '.escapeshellarg($this->local_installpath)); + $app->system->exec_safe('chown -R ?:? ?', $this->file_owner_user, $this->file_owner_group, $this->local_installpath); //* Chown stats directory back if(is_dir($this->local_installpath.'stats')) { - exec('chown -R root:root '.escapeshellarg($this->local_installpath.'stats')); + $app->system->exec_safe('chown -R root:root ?', $this->local_installpath.'stats'); } $app->dbmaster->query('UPDATE aps_instances SET instance_status = ? WHERE id = ?', INSTANCE_SUCCESS, $task['instance_id']); @@ -597,8 +599,9 @@ class ApsInstaller extends ApsBase */ private function cleanup($task, $sxe) { + global $app; chdir($this->local_installpath); - exec("rm -Rf ".escapeshellarg($this->local_installpath).'install_scripts'); + $app->system->exec_safe("rm -Rf ?", $this->local_installpath.'install_scripts'); } diff --git a/server/lib/classes/cron.d/100-monitor_email_quota.inc.php b/server/lib/classes/cron.d/100-monitor_email_quota.inc.php index 75014c347..8adf7c725 100644 --- a/server/lib/classes/cron.d/100-monitor_email_quota.inc.php +++ b/server/lib/classes/cron.d/100-monitor_email_quota.inc.php @@ -90,7 +90,7 @@ class cronjob_monitor_email_quota extends cronjob { $email_parts = explode('@', $mb['email']); $filename = $mb['maildir'].'/.quotausage'; if(!file_exists($filename) && $dovecot) { - exec('doveadm quota recalc -u '.$email); + $app->system->exec_safe('doveadm quota recalc -u ?', $email); } if(file_exists($filename) && !is_link($filename)) { $quotafile = file($filename); @@ -99,7 +99,8 @@ class cronjob_monitor_email_quota extends cronjob { $app->log("Mail storage $email: " . $storage_value[1], LOGLEVEL_DEBUG); unset($quotafile); } else { - exec('du -s '.escapeshellcmd($mb['maildir']), $out); + $app->system->exec_safe('du -s ?', $mb['maildir']); + $out = $app->system->last_exec_out(); $parts = explode(' ', $out[0]); $data[$email]['used'] = intval($parts[0])*1024; unset($out); diff --git a/server/lib/classes/cron.d/150-awstats.inc.php b/server/lib/classes/cron.d/150-awstats.inc.php index 2d281c7d3..0b1cbd5a4 100644 --- a/server/lib/classes/cron.d/150-awstats.inc.php +++ b/server/lib/classes/cron.d/150-awstats.inc.php @@ -71,16 +71,16 @@ class cronjob_awstats extends cronjob { $log_folder .= '/' . $subdomain_host; unset($tmp); } - $logfile = escapeshellcmd($rec['document_root'].'/' . $log_folder . '/'.$yesterday.'-access.log'); + $logfile = $rec['document_root'].'/' . $log_folder . '/'.$yesterday.'-access.log'; if(!@is_file($logfile)) { - $logfile = escapeshellcmd($rec['document_root'].'/' . $log_folder . '/'.$yesterday.'-access.log.gz'); + $logfile = $rec['document_root'].'/' . $log_folder . '/'.$yesterday.'-access.log.gz'; if(!@is_file($logfile)) { continue; } } $web_folder = (($rec['type'] == 'vhostsubdomain' || $rec['type'] == 'vhostalias') ? $rec['web_folder'] : 'web'); - $domain = escapeshellcmd($rec['domain']); - $statsdir = escapeshellcmd($rec['document_root'].'/'.$web_folder.'/stats'); + $domain = $rec['domain']; + $statsdir = $rec['document_root'].'/'.$web_folder.'/stats'; $awstats_pl = $web_config['awstats_pl']; $awstats_buildstaticpages_pl = $web_config['awstats_buildstaticpages_pl']; @@ -117,8 +117,8 @@ class cronjob_awstats extends cronjob { } if(!@is_dir($statsdir)) mkdir($statsdir); - $username = escapeshellcmd($rec['system_user']); - $groupname = escapeshellcmd($rec['system_group']); + $username = $rec['system_user']; + $groupname = $rec['system_group']; chown($statsdir, $username); chgrp($statsdir, $groupname); if(is_link('/var/log/ispconfig/httpd/'.$domain.'/yesterday-access.log')) unlink('/var/log/ispconfig/httpd/'.$domain.'/yesterday-access.log'); @@ -138,7 +138,7 @@ class cronjob_awstats extends cronjob { // awstats_buildstaticpages.pl -update -config=mydomain.com -lang=en -dir=/var/www/domain.com/'.$web_folder.'/stats -awstatsprog=/path/to/awstats.pl // $command = "$awstats_buildstaticpages_pl -update -config='$domain' -lang=".$conf['language']." -dir='$statsdir' -awstatsprog='$awstats_pl'"; - $command = "$awstats_buildstaticpages_pl -month='$awmonth' -year='$awyear' -update -config='$domain' -lang=".$conf['language']." -dir='$statsdir' -awstatsprog='$awstats_pl'"; + $command = escapeshellcmd($awstats_buildstaticpages_pl) . ' -month=' . escapeshellarg($awmonth) . ' -year=' . escapeshellarg($awyear) . ' -update -config=' . escapeshellarg($domain) . ' -lang=' . escapeshellarg($conf['language']) . ' -dir=' . escapeshellarg($statsdir) . ' -awstatsprog=' . escapeshellarg($awstats_pl); if (date("d") == 2) { $awmonth = date("m")-1; @@ -178,7 +178,7 @@ class cronjob_awstats extends cronjob { chgrp($rec['document_root']."/".$web_folder."/stats/index.php", $rec['system_group']); } - exec('chown -R '.$username.':'.$groupname.' '.$statsdir); + $app->system->exec_safe('chown -R ?:? ?', $username, $groupname, $statsdir); } diff --git a/server/lib/classes/cron.d/150-webalizer.inc.php b/server/lib/classes/cron.d/150-webalizer.inc.php index 0ae05dd68..5d341cefe 100644 --- a/server/lib/classes/cron.d/150-webalizer.inc.php +++ b/server/lib/classes/cron.d/150-webalizer.inc.php @@ -102,11 +102,11 @@ class cronjob_webalizer extends cronjob { } } - $domain = escapeshellcmd($rec['domain']); - $statsdir = escapeshellcmd($rec['document_root'].'/'.(($rec['type'] == 'vhostsubdomain' || $rec['type'] == 'vhostalias') ? $rec['web_folder'] : 'web').'/stats'); + $domain = $rec['domain']; + $statsdir = $rec['document_root'].'/'.(($rec['type'] == 'vhostsubdomain' || $rec['type'] == 'vhostalias') ? $rec['web_folder'] : 'web').'/stats'; $webalizer = '/usr/bin/webalizer'; $webalizer_conf_main = '/etc/webalizer/webalizer.conf'; - $webalizer_conf = escapeshellcmd($rec['document_root'].'/log/webalizer.conf'); + $webalizer_conf = $rec['document_root'].'/log/webalizer.conf'; if(is_file($statsdir.'/index.php')) unlink($statsdir.'/index.php'); @@ -122,13 +122,13 @@ class cronjob_webalizer extends cronjob { if(!@is_dir($statsdir)) mkdir($statsdir); - $username = escapeshellcmd($rec['system_user']); - $groupname = escapeshellcmd($rec['system_group']); + $username = $rec['system_user']; + $groupname = $rec['system_group']; chown($statsdir, $username); chgrp($statsdir, $groupname); - exec("$webalizer -c $webalizer_conf -n $domain -s $domain -r $domain -q -T -p -o $statsdir $logfile"); + $app->system->exec_safe("$webalizer -c ? -n ? -s ? -r ? -q -T -p -o ? ?", $webalizer_conf, $domain, $domain, $domain, $statsdir, $logfile); - exec('chown -R '.$username.':'.$groupname.' '.$statsdir); + exec('chown -R ?:? ?', $username, $groupname, $statsdir); } diff --git a/server/lib/classes/cron.d/200-logfiles.inc.php b/server/lib/classes/cron.d/200-logfiles.inc.php index 6f38f0b40..d1dbf9429 100644 --- a/server/lib/classes/cron.d/200-logfiles.inc.php +++ b/server/lib/classes/cron.d/200-logfiles.inc.php @@ -54,7 +54,7 @@ class cronjob_logfiles extends cronjob { $server_config = $app->getconf->get_server_config($conf['server_id'], 'server'); if($server_config['log_retention'] > 0) { - $max_syslog = $server_config['log_retention']; + $max_syslog = $app->functions->intval($server_config['log_retention']); } else { $max_syslog = 10; } @@ -113,18 +113,18 @@ class cronjob_logfiles extends cronjob { } $yesterday2 = date('Ymd', time() - 86400*2); - $logfile = escapeshellcmd($rec['document_root'].'/' . $log_folder . '/'.$yesterday2.'-access.log'); + $logfile = $rec['document_root'].'/' . $log_folder . '/'.$yesterday2.'-access.log'; //* Compress logfile if(@is_file($logfile)) { // Compress yesterdays logfile - exec("gzip -c $logfile > $logfile.gz"); + $app->system->exec_safe("gzip -c ? > ?", $logfile, $logfile . '.gz'); unlink($logfile); } $cron_logfiles = array('cron.log', 'cron_error.log', 'cron_wget.log'); foreach($cron_logfiles as $cron_logfile) { - $cron_logfile = escapeshellcmd($rec['document_root'].'/' . $log_folder . '/' . $cron_logfile); + $cron_logfile = $rec['document_root'].'/' . $log_folder . '/' . $cron_logfile; // rename older files (move up by one) $num = $log_retention; @@ -135,8 +135,8 @@ class cronjob_logfiles extends cronjob { // compress current logfile if(is_file($cron_logfile)) { - exec("gzip -c $cron_logfile > $cron_logfile.1.gz"); - exec("cat /dev/null > $cron_logfile"); + $app->system->exec_safe("gzip -c ? > ?", $cron_logfile, $cron_logfile . '.1.gz'); + $app->system->exec_safe("cat /dev/null > ?", $cron_logfile); } // remove older logs $num = $log_retention; @@ -156,8 +156,8 @@ class cronjob_logfiles extends cronjob { } // compress current logfile if(is_file($error_logfile)) { - exec("gzip -c $error_logfile > $error_logfile.1.gz"); - exec("cat /dev/null > $error_logfile"); + $app->system->exec_safe("gzip -c ? > ?", $error_logfile, $error_logfile . '.1.gz'); + $app->system->exec_safe("cat /dev/null > ?", $error_logfile); } // delete logfiles after x days (default 10) @@ -175,7 +175,7 @@ class cronjob_logfiles extends cronjob { //* Delete old logfiles in /var/log/ispconfig/httpd/ that were created by vlogger for the hostname of the server exec('hostname -f', $tmp_hostname); if($tmp_hostname[0] != '' && is_dir('/var/log/ispconfig/httpd/'.$tmp_hostname[0])) { - exec('cd /var/log/ispconfig/httpd/'.$tmp_hostname[0]."; find . -mtime +$max_syslog -name '*.log' | xargs rm > /dev/null 2> /dev/null"); + $app->system->exec_safe("cd ?; find . -mtime +$max_syslog -name '*.log' | xargs rm > /dev/null 2> /dev/null", '/var/log/ispconfig/httpd/'.$tmp_hostname[0]); } unset($tmp_hostname); @@ -195,8 +195,8 @@ class cronjob_logfiles extends cronjob { } // compress current logfile if(is_file($ispconfig_logfile)) { - exec("gzip -c $ispconfig_logfile > $ispconfig_logfile.1.gz"); - exec("cat /dev/null > $ispconfig_logfile"); + $app->system->exec_safe("gzip -c ? > ?", $ispconfig_logfile, $ispconfig_logfile . '.1.gz'); + $app->system->exec_safe("cat /dev/null > ?", $ispconfig_logfile); } // remove older logs $num = $max_syslog; @@ -215,9 +215,9 @@ class cronjob_logfiles extends cronjob { $app->uses('system'); if(is_array($records)) { foreach($records as $rec){ - $tmp_path = realpath(escapeshellcmd($rec['document_root'].'/tmp')); + $tmp_path = realpath($rec['document_root'].'/tmp'); if($tmp_path != '' && strlen($tmp_path) > 10 && is_dir($tmp_path) && $app->system->is_user($rec['system_user'])){ - exec('cd '.$tmp_path."; find . -mtime +1 -name 'sess_*' | grep -v -w .no_delete | xargs rm > /dev/null 2> /dev/null"); + exec("cd ?; find . -mtime +1 -name 'sess_*' | grep -v -w .no_delete | xargs rm > /dev/null 2> /dev/null", $tmp_path); } } } diff --git a/server/lib/classes/cron.d/500-backup.inc.php b/server/lib/classes/cron.d/500-backup.inc.php index 77b355fe6..579e0174b 100644 --- a/server/lib/classes/cron.d/500-backup.inc.php +++ b/server/lib/classes/cron.d/500-backup.inc.php @@ -69,9 +69,9 @@ class cronjob_backup extends cronjob { } if(!is_dir($backup_dir)) { - mkdir(escapeshellcmd($backup_dir), $backup_dir_permissions, true); + mkdir($backup_dir, $backup_dir_permissions, true); } else { - chmod(escapeshellcmd($backup_dir), $backup_dir_permissions); + chmod($backup_dir, $backup_dir_permissions); } $run_backups = true; //* mount backup directory, if necessary @@ -127,16 +127,20 @@ class cronjob_backup extends cronjob { if($backup_mode == 'userzip') { //* Create a .zip backup as web user and include also files owned by apache / nginx user $web_backup_file = 'web'.$web_id.'_'.date('Y-m-d_H-i').'.zip'; - exec('cd '.escapeshellarg($web_path).' && sudo -u '.escapeshellarg($web_user).' find . -group '.escapeshellarg($web_group).' -print 2> /dev/null | zip -b '.escapeshellarg($backup_tmp).' --exclude=./backup\*'.$backup_excludes.' --symlinks '.escapeshellarg($web_backup_dir.'/'.$web_backup_file).' -@', $tmp_output, $retval); - if($retval == 0 || $retval == 12) exec('cd '.escapeshellarg($web_path).' && sudo -u '.escapeshellarg($web_user).' find . -user '.escapeshellarg($http_server_user).' -print 2> /dev/null | zip -b '.escapeshellarg($backup_tmp).' --exclude=./backup\*'.$backup_excludes.' --update --symlinks '.escapeshellarg($web_backup_dir.'/'.$web_backup_file).' -@', $tmp_output, $retval); + $app->system->exec_safe('cd ? && sudo -u ? find . -group ? -print 2> /dev/null | zip -b ? --exclude=./backup\*'.$backup_excludes.' --symlinks ? -@', $web_path, $web_user, $web_group, $backup_tmp, $web_backup_dir.'/'.$web_backup_file); + $retval = $app->system->last_exec_retcode(); + if($retval == 0 || $retval == 12) $app->system->exec_safe('cd ? && sudo -u ? find . -user ? -print 2> /dev/null | zip -b ? --exclude=./backup\*'.$backup_excludes.' --update --symlinks ? -@', $web_path, $web_user, $http_server_user, $backup_tmp, $web_backup_dir.'/'.$web_backup_file); + $retval = $app->system->last_exec_retcode(); } else { //* Create a tar.gz backup as root user $web_backup_file = 'web'.$web_id.'_'.date('Y-m-d_H-i').'.tar.gz'; if ($use_pigz) { - exec('tar pcf - --directory '.escapeshellarg($web_path).' . --exclude=./backup\*'.$backup_excludes.' | pigz > '.escapeshellarg($web_backup_dir.'/'.$web_backup_file), $tmp_output, $retval); + $app->system->exec_safe('tar pcf - --directory ? . --exclude=./backup\*'.$backup_excludes.' | pigz > ?', $web_path, $web_backup_dir.'/'.$web_backup_file); + $retval = $app->system->last_exec_retcode(); } else { - exec('tar pczf '.escapeshellarg($web_backup_dir.'/'.$web_backup_file).' --exclude=./backup\*'.$backup_excludes.' --directory '.escapeshellarg($web_path).' .', $tmp_output, $retval); -} + $app->system->exec_safe('tar pczf ? --exclude=./backup\*'.$backup_excludes.' --directory ? .', $web_backup_dir.'/'.$web_backup_file, $web_path); + $retval = $app->system->last_exec_retcode(); + } } if($retval == 0 || ($backup_mode != 'userzip' && $retval == 1) || ($backup_mode == 'userzip' && $retval == 12)) { // tar can return 1, zip can return 12(due to harmless warings) and still create valid backups if(is_file($web_backup_dir.'/'.$web_backup_file)){ @@ -256,13 +260,16 @@ class cronjob_backup extends cronjob { $db_id = $rec['database_id']; $db_name = $rec['database_name']; $db_backup_file = 'db_'.$db_name.'_'.date('Y-m-d_H-i').'.sql'; - //$command = "mysqldump -h '".escapeshellcmd($clientdb_host)."' -u '".escapeshellcmd($clientdb_user)."' -p'".escapeshellcmd($clientdb_password)."' -c --add-drop-table --create-options --quick --result-file='".$db_backup_dir.'/'.$db_backup_file."' '".$db_name."'"; - $command = "mysqldump -h ".escapeshellarg($clientdb_host)." -u ".escapeshellarg($clientdb_user)." -p".escapeshellarg($clientdb_password)." -c --add-drop-table --create-options --quick --max_allowed_packet=512M ".$mysqldump_routines." --result-file='".$db_backup_dir.'/'.$db_backup_file."' '".$db_name."'"; - exec($command, $tmp_output, $retval); - + $command = "mysqldump -h ? -u ? -p? -c --add-drop-table --create-options --quick --max_allowed_packet=512M ".$mysqldump_routines." --result-file=? ?"; + $app->system->exec_safe($command, $clientdb_host, $clientdb_user, $clientdb_password, $db_backup_dir.'/'.$db_backup_file, $db_name); + $retval = $app->system->last_exec_retcode(); + //* Compress the backup with gzip / pigz - if($retval == 0) exec("$zip_cmd -c '".escapeshellcmd($db_backup_dir.'/'.$db_backup_file)."' > '".escapeshellcmd($db_backup_dir.'/'.$db_backup_file).".gz'", $tmp_output, $retval); - + if($retval == 0) { + $app->system->exec_safe("$zip_cmd -c ? > ?", $db_backup_dir.'/'.$db_backup_file, $db_backup_dir.'/'.$db_backup_file . '.gz'); + $retval = $app->system->last_exec_retcode(); + } + if($retval == 0){ if(is_file($db_backup_dir.'/'.$db_backup_file.'.gz')){ chmod($db_backup_dir.'/'.$db_backup_file.'.gz', 0750); diff --git a/server/lib/classes/cron.d/500-backup_mail.inc.php b/server/lib/classes/cron.d/500-backup_mail.inc.php index b05caf70d..6cd689edc 100644 --- a/server/lib/classes/cron.d/500-backup_mail.inc.php +++ b/server/lib/classes/cron.d/500-backup_mail.inc.php @@ -122,24 +122,28 @@ class cronjob_backup_mail extends cronjob { if ($rec['maildir_format'] == 'mdbox') { if (empty($this->tmp_backup_dir)) $this->tmp_backup_dir = $rec['maildir']; // Create temporary backup-mailbox - exec("su -c 'dsync backup -u \"".$rec["email"]."\" mdbox:".$this->tmp_backup_dir."/backup'", $tmp_output, $retval); + exec("su -c ?", 'dsync backup -u "'.$rec["email"].'" mdbox:' . $this->tmp_backup_dir . '/backup'); if($backup_mode == 'userzip') { $mail_backup_file.='.zip'; - exec('cd '.$this->tmp_backup_dir.' && zip '.$mail_backup_dir.'/'.$mail_backup_file.' -b '.escapeshellarg($backup_tmp).' -r backup > /dev/null && rm -rf backup', $tmp_output, $retval); - } - else { + $app->system->exec_safe('cd ? && zip ? -b ? -r backup > /dev/null && rm -rf backup', $this->tmp_backup_dir, $mail_backup_dir.'/'.$mail_backup_file, $backup_tmp); + $retval = $app->system->last_exec_retcode(); + } else { $mail_backup_file.='.tar.gz'; if ($use_pigz) { - exec('tar pcf - --directory '.escapeshellarg($this->tmp_backup_dir).' backup | pigz > '.$mail_backup_dir.'/'.$mail_backup_file.' && rm -rf '.$this->tmp_backup_dir.'/backup', $tmp_output, $retval); + $app->system->exec_safe('tar pcf - --directory ? backup | pigz > ? && rm -rf ?', $this->tmp_backup_dir, $mail_backup_dir.'/'.$mail_backup_file, $this->tmp_backup_dir.'/backup'); + $retval = $app->system->last_exec_retcode(); } else { - exec(escapeshellcmd('tar pczf '.$mail_backup_dir.'/'.$mail_backup_file.' --directory '.$this->tmp_backup_dir.' backup && rm -rf '.$this->tmp_backup_dir.'/backup'), $tmp_output, $retval); + $app->system->exec_safe('tar pczf ? --directory ? backup && rm -rf ?', $mail_backup_dir.'/'.$mail_backup_file, $this->tmp_backup_dir, $this->tmp_backup_dir.'/backup'); + $retval = $app->system->last_exec_retcode(); } } if ($retval != 0) { // Cleanup - if (file_exists($this->tmp_backup_dir.'/backup')) exec('rm -rf '.$this->tmp_backup_dir.'/backup'); + if(file_exists($this->tmp_backup_dir . '/backup')) { + $app->system->exec_safe('rm -rf ?', $this->tmp_backup_dir . '/backup'); + } } } else { @@ -154,15 +158,17 @@ class cronjob_backup_mail extends cronjob { //* create archives if($backup_mode == 'userzip') { $mail_backup_file.='.zip'; - exec('cd '.$domain_dir.' && zip '.$mail_backup_dir.'/'.$mail_backup_file.' -b '.escapeshellarg($backup_tmp).' -r '.$source_dir.' > /dev/null', $tmp_output, $retval); + $app->system->exec_safe('cd ? && zip ? -b ? -r ? > /dev/null', $domain_dir, $mail_backup_dir.'/'.$mail_backup_file, $backup_tmp, $source_dir); + $retval = $app->system->last_exec_retcode(); } else { /* Create a tar.gz backup */ $mail_backup_file.='.tar.gz'; if ($use_pigz) { - exec('tar pcf - --directory '.escapeshellarg($domain_dir).' '.escapeshellarg($source_dir).' | pigz > '.$mail_backup_dir.'/'.$mail_backup_file, $tmp_output, $retval); + $app->system->exec_safe('tar pcf - --directory ? ? | pigz > ?', $domain_dir, $source_dir, $mail_backup_dir.'/'.$mail_backup_file); } else { - exec(escapeshellcmd('tar pczf '.$mail_backup_dir.'/'.$mail_backup_file.' --directory '.$domain_dir.' '.$source_dir), $tmp_output, $retval); + $app->system->exec_safe('tar pczf ? --directory ? ?', $mail_backup_dir.'/'.$mail_backup_file, $domain_dir, $source_dir); } + $retval = $app->system->last_exec_retcode(); } } @@ -181,7 +187,9 @@ class cronjob_backup_mail extends cronjob { if(is_file($mail_backup_dir.'/'.$mail_backup_file)) unlink($mail_backup_dir.'/'.$mail_backup_file); // And remove backup-mdbox if ($rec['maildir_format'] == 'mdbox') { - if(file_exists($rec['maildir'].'/backup')) exec("su -c 'rm -rf ".$rec['maildir']."/backup'"); + if(file_exists($rec['maildir'] . '/backup')) { + $app->system->exec_safe('rm -rf ?', $rec['maildir'] . '/backup'); + } } $app->log($mail_backup_file.' NOK:'.implode('',$tmp_output), LOGLEVEL_WARN); } diff --git a/server/lib/classes/cron.d/600-purge_mailboxes.inc.php b/server/lib/classes/cron.d/600-purge_mailboxes.inc.php index 59775fb7b..451eb5664 100644 --- a/server/lib/classes/cron.d/600-purge_mailboxes.inc.php +++ b/server/lib/classes/cron.d/600-purge_mailboxes.inc.php @@ -58,7 +58,7 @@ class cronjob_purge_mailboxes extends cronjob { if(is_array($records)) { foreach($records as $rec){ - exec("su -c 'doveadm purge -u \"".$rec["email"]."\"'"); + $app->system->exec_safe("su -c ?", 'doveadm purge -u "' . $rec["email"] . '"'); } } diff --git a/server/lib/classes/cron.d/900-letsencrypt.inc.php b/server/lib/classes/cron.d/900-letsencrypt.inc.php index 30a23fe97..3e2c9190c 100644 --- a/server/lib/classes/cron.d/900-letsencrypt.inc.php +++ b/server/lib/classes/cron.d/900-letsencrypt.inc.php @@ -66,7 +66,7 @@ class cronjob_letsencrypt extends cronjob { } else { $marker_file = '/usr/local/ispconfig/server/le.restart'; $cmd = "echo '1' > " . $marker_file; - exec($letsencrypt . ' -n renew --post-hook ' . escapeshellarg($cmd)); + $app->system->exec_safe($letsencrypt . ' -n renew --post-hook ?', $cmd); if(file_exists($marker_file) && trim(file_get_contents($marker_file)) == '1') { unlink($marker_file); $app->services->restartServiceDelayed('httpd', 'force-reload'); diff --git a/server/lib/classes/functions.inc.php b/server/lib/classes/functions.inc.php index e36ed5b04..1d9dd6756 100644 --- a/server/lib/classes/functions.inc.php +++ b/server/lib/classes/functions.inc.php @@ -425,9 +425,9 @@ class functions { if(file_exists($id_rsa_file)) unset($id_rsa_file); if(file_exists($id_rsa_pub_file)) unset($id_rsa_pub_file); if(!file_exists($id_rsa_file) && !file_exists($id_rsa_pub_file)) { - exec('ssh-keygen -t rsa -C '.$username.'-rsa-key-'.time().' -f '.$id_rsa_file.' -N ""'); + $app->system->exec_safe('ssh-keygen -t rsa -C ? -f ? -N ""', $username.'-rsa-key-'.time(), $id_rsa_file); $app->db->query("UPDATE client SET created_at = UNIX_TIMESTAMP(), id_rsa = ?, ssh_rsa = ? WHERE client_id = ?", $app->system->file_get_contents($id_rsa_file), $app->system->file_get_contents($id_rsa_pub_file), $client_id); - exec('rm -f '.$id_rsa_file.' '.$id_rsa_pub_file); + $app->system->exec_safe('rm -f ? ?', $id_rsa_file, $id_rsa_pub_file); } else { $app->log("Failed to create SSH keypair for ".$username, LOGLEVEL_WARN); } diff --git a/server/lib/classes/letsencrypt.inc.php b/server/lib/classes/letsencrypt.inc.php index 583e1c25b..62080e29b 100644 --- a/server/lib/classes/letsencrypt.inc.php +++ b/server/lib/classes/letsencrypt.inc.php @@ -389,7 +389,7 @@ class letsencrypt { } if(@is_link($key_file)) $app->system->unlink($key_file); - if(@file_exists($key_tmp_file)) exec("ln -s ".escapeshellcmd($key_tmp_file)." ".escapeshellcmd($key_file)); + if(@file_exists($key_tmp_file)) $app->system->exec_safe("ln -s ? ?", $key_tmp_file, $key_file); if(is_file($crt_file)) { $app->system->copy($crt_file, $crt_file.'.old.'.$date); @@ -398,7 +398,7 @@ class letsencrypt { } if(@is_link($crt_file)) $app->system->unlink($crt_file); - if(@file_exists($crt_tmp_file))exec("ln -s ".escapeshellcmd($crt_tmp_file)." ".escapeshellcmd($crt_file)); + if(@file_exists($crt_tmp_file))$app->system->exec_safe("ln -s ? ?", $crt_tmp_file, $crt_file); if(is_file($bundle_file)) { $app->system->copy($bundle_file, $bundle_file.'.old.'.$date); @@ -407,7 +407,7 @@ class letsencrypt { } if(@is_link($bundle_file)) $app->system->unlink($bundle_file); - if(@file_exists($bundle_tmp_file)) exec("ln -s ".escapeshellcmd($bundle_tmp_file)." ".escapeshellcmd($bundle_file)); + if(@file_exists($bundle_tmp_file)) $app->system->exec_safe("ln -s ? ?", $bundle_tmp_file, $bundle_file); return true; } else { diff --git a/server/lib/classes/monitor_tools.inc.php b/server/lib/classes/monitor_tools.inc.php index 1d3dab290..fefdbcd68 100644 --- a/server/lib/classes/monitor_tools.inc.php +++ b/server/lib/classes/monitor_tools.inc.php @@ -593,13 +593,12 @@ class monitor_tools { // Getting the logfile content if ($logfile != '') { - $logfile = escapeshellcmd($logfile); if (stristr($logfile, ';') or substr($logfile, 0, 9) != '/var/log/' or stristr($logfile, '..')) { $log = 'Logfile path error.'; } else { $log = ''; if (is_readable($logfile)) { - $fd = popen('tail -n 100 ' . $logfile, 'r'); + $fd = popen('tail -n 100 ' . escapeshellarg($logfile), 'r'); if ($fd) { while (!feof($fd)) { $log .= fgets($fd, 4096); diff --git a/server/lib/classes/system.inc.php b/server/lib/classes/system.inc.php index 5c277ada1..9f3e963ee 100644 --- a/server/lib/classes/system.inc.php +++ b/server/lib/classes/system.inc.php @@ -37,6 +37,9 @@ class system{ var $min_uid = 500; var $min_gid = 500; + private $_last_exec_out = null; + private $_last_exec_retcode = null; + /** * Construct for this class * @@ -716,8 +719,10 @@ class system{ function posix_getgrnam($group) { if(!function_exists('posix_getgrnam')){ $group_datei = $this->server_conf['group_datei']; - $cmd = 'grep -m 1 "^'.$group.':" '.$group_datei; - exec($cmd, $output, $return_var); + $cmd = 'grep -m 1 ? ?'; + $this->exec_safe($cmd, '^'.$group.':', $group_datei); + $output = $this->last_exec_out(); + $return_var = $this->last_exec_retcode(); if($return_var != 0 || !$output[0]) return false; list($f1, $f2, $f3, $f4) = explode(':', $output[0]); $f2 = trim($f2); @@ -1073,10 +1078,10 @@ class system{ } else { // Linux if(substr($dist, 0, 4) == 'suse'){ if($action == 'on'){ - exec("chkconfig --add $service &> /dev/null"); + $this->exec_safe("chkconfig --add ? &> /dev/null", $service); } if($action == 'off'){ - exec("chkconfig --del $service &> /dev/null"); + $this->exec_safe("chkconfig --del ? &> /dev/null", $service); } } else { $runlevels = explode(',', $rl); @@ -1375,7 +1380,7 @@ class system{ if(!empty($ifconfig['IP'])){ foreach($ifconfig['IP'] as $key => $val){ if(!strstr($val, 'lo') && !strstr($val, 'lp') && strstr($val, $main_interface)){ - exec('ifconfig '.$val.' down &> /dev/null'); + $this->exec_safe('ifconfig ? down &> /dev/null', $val); unset($ifconfig['INTERFACE'][$val]); } } @@ -1391,7 +1396,7 @@ class system{ $i = -1; } } - exec('ifconfig '.$new_interface.' '.$to.' netmask '.$this->server_conf['server_netzmaske'].' up &> /dev/null'); + $this->exec_safe('ifconfig ? ? netmask ? up &> /dev/null', $new_interface, $to, $this->server_conf['server_netzmaske']); $ifconfig['INTERFACE'][$new_interface] = $to; } } @@ -1627,15 +1632,6 @@ class system{ chmod($dir, 0700); - /* - if($user != '' && $this->is_user($user) && $user != 'root') { - $user = escapeshellcmd($user); - // I assume that the name of the (vmail group) is the same as the name of the mail user in ISPConfig 3 - $group = $user; - exec("chown $user:$group $dir $dir_cur $dir_new $dir_tmp"); - } - */ - //* Add the subfolder to the subscriptions and courierimapsubscribed files if($subfolder != '') { @@ -1698,7 +1694,9 @@ class system{ //* Check if a application is installed function is_installed($appname) { - exec('which '.escapeshellcmd($appname).' 2> /dev/null', $out, $returncode); + $this->exec_safe('which ? 2> /dev/null', $appname); + $out = $this->last_exec_out(); + $returncode = $this->last_exec_retcode(); if(isset($out[0]) && stristr($out[0], $appname) && $returncode == 0) { return true; } else { @@ -1720,10 +1718,10 @@ class system{ if($protect == true && $web_config['web_folder_protection'] == 'y') { //* Add protection - if($document_root != '' && $document_root != '/' && strlen($document_root) > 6 && !stristr($document_root, '..')) exec('chattr +i '.escapeshellcmd($document_root)); + if($document_root != '' && $document_root != '/' && strlen($document_root) > 6 && !stristr($document_root, '..')) $this->exec_safe('chattr +i ?', $document_root); } else { //* Remove protection - if($document_root != '' && $document_root != '/' && strlen($document_root) > 6 && !stristr($document_root, '..')) exec('chattr -i '.escapeshellcmd($document_root)); + if($document_root != '' && $document_root != '/' && strlen($document_root) > 6 && !stristr($document_root, '..')) $this->exec_safe('chattr -i ?', $document_root); } } @@ -1835,8 +1833,9 @@ class system{ function is_mounted($mountpoint){ //$cmd = 'df 2>/dev/null | grep " '.$mountpoint.'$"'; - $cmd = 'mount 2>/dev/null | grep " on '.$mountpoint.' type "'; - exec($cmd, $output, $return_var); + $cmd = 'mount 2>/dev/null | grep ?'; + exec($cmd, ' on '. $mountpoint . ' type '); + $return_var = $this->last_exec_retcode(); return $return_var == 0 ? true : false; } @@ -1908,7 +1907,8 @@ class system{ // systemd if(is_executable('/bin/systemd') || is_executable('/usr/bin/systemctl')){ if ($check_service) { - exec("systemctl is-enabled ".$servicename." 2>&1", $out, $ret_val); + $this->exec_safe("systemctl is-enabled ? 2>&1", $servicename); + $ret_val = $this->last_exec_retcode(); } if ($ret_val == 0 || !$check_service) { return 'systemctl '.$action.' '.$servicename.'.service'; @@ -2049,6 +2049,42 @@ class system{ return true; } + public function last_exec_out() { + return $this->_last_exec_out; + } + + public function last_exec_retcode() { + return $this->_last_exec_retcode; + } + + public function exec_safe($cmd) { + $arg_count = func_num_args(); + if($arg_count > 1) { + $args = func_get_args(); + + $pos = 0; + $a = 0; + foreach($args as $value) { + $a++; + + $pos = strpos($cmd, '?', $pos); + if($pos === false) { + break; + } + $value = escapeshellarg($value); + $cmd = substr_replace($cmd, $value, $pos, 1); + $pos += strlen($value); + } + } + + $this->_last_exec_out = null; + $this->_last_exec_retcode = null; + return exec($cmd, $this->_last_exec_out, $this->_last_exec_retcode); + } + + public function system_safe($cmd) { + call_user_func_array(array($this, 'exec_safe'), func_get_args()); + return implode("\n", $this->_last_exec_out); + } + } - -?> diff --git a/server/mods-available/remoteaction_core_module.inc.php b/server/mods-available/remoteaction_core_module.inc.php index 807de5060..e0ce33a5e 100644 --- a/server/mods-available/remoteaction_core_module.inc.php +++ b/server/mods-available/remoteaction_core_module.inc.php @@ -152,10 +152,10 @@ class remoteaction_core_module { $template_cache_dir = '/vz/template/cache/'; $template_name = escapeshellcmd($parts[1]); if($veid > 0 && $template_name != '' && is_dir($template_cache_dir)) { - $command = "vzdump --suspend --compress --stdexcludes --dumpdir $template_cache_dir $veid"; - exec($command); - exec("mv ".$template_cache_dir."vzdump-openvz-".$veid."*.tgz ".$template_cache_dir.$template_name.".tar.gz"); - exec("rm -f ".$template_cache_dir."vzdump-openvz-".$veid."*.log"); + $command = "vzdump --suspend --compress --stdexcludes --dumpdir ? ?"; + $app->system->exec_safe($command, $template_cache_dir, $veid); + $app->system->exec_safe("mv ?*.tgz ?", $template_cache_dir."vzdump-openvz-".$veid, $template_cache_dir.$template_name.".tar.gz"); + $app->system->exec_safe("rm -f ?*.log", $template_cache_dir."vzdump-openvz-".$veid); } $this->_actionDone($action['action_id'], 'ok'); /* this action takes so much time, @@ -191,7 +191,8 @@ class remoteaction_core_module { } private function _doIspCUpdate($action) { - + global $app; + // Ensure that this code is not executed twice as this would cause a loop in case of a failure $this->_actionDone($action['action_id'], 'ok'); @@ -210,14 +211,14 @@ class remoteaction_core_module { chdir("/tmp"); /* delete the old files (if there are any...) */ - exec("rm /tmp/ISPConfig-" . $new_version . ".tar.gz"); + $app->system->exec_safe("rm ?", "/tmp/ISPConfig-" . $new_version . ".tar.gz"); exec("rm /tmp/ispconfig3_install -R"); /* get the newest version */ - exec("wget http://www.ispconfig.org/downloads/ISPConfig-" . $new_version . ".tar.gz"); + $app->system->exec_safe("wget ?", "http://www.ispconfig.org/downloads/ISPConfig-" . $new_version . ".tar.gz"); /* extract the files */ - exec("tar xvfz ISPConfig-" . $new_version . ".tar.gz"); + $app->system->exec_safe("tar xvfz ?", "ISPConfig-" . $new_version . ".tar.gz"); /* * Initialize the automated update @@ -229,7 +230,7 @@ class remoteaction_core_module { /* * do some clean-up */ - exec("rm /tmp/ISPConfig-" . $new_version . ".tar.gz"); + $app->system->exec_safe("rm ?", "/tmp/ISPConfig-" . $new_version . ".tar.gz"); /* * go back to the "old path" diff --git a/server/plugins-available/apache2_plugin.inc.php b/server/plugins-available/apache2_plugin.inc.php index 7ecbb7610..28a3c4d5d 100644 --- a/server/plugins-available/apache2_plugin.inc.php +++ b/server/plugins-available/apache2_plugin.inc.php @@ -332,36 +332,38 @@ class apache2_plugin { $ssl_cnf_file = $ssl_dir.'/openssl.conf'; $app->system->file_put_contents($ssl_cnf_file, $ssl_cnf); - $rand_file = escapeshellcmd($rand_file); - $key_file2 = escapeshellcmd($key_file2); + $rand_file = $rand_file; + $key_file2 = $key_file2; $openssl_cmd_key_file2 = $key_file2; if(substr($domain, 0, 2) == '*.' && strpos($key_file2, '/ssl/\*.') !== false) $key_file2 = str_replace('/ssl/\*.', '/ssl/*.', $key_file2); // wildcard certificate - $key_file = escapeshellcmd($key_file); + $key_file = $key_file; $openssl_cmd_key_file = $key_file; if(substr($domain, 0, 2) == '*.' && strpos($key_file, '/ssl/\*.') !== false) $key_file = str_replace('/ssl/\*.', '/ssl/*.', $key_file); // wildcard certificate $ssl_days = 3650; - $csr_file = escapeshellcmd($csr_file); + $csr_file = $csr_file; $openssl_cmd_csr_file = $csr_file; if(substr($domain, 0, 2) == '*.' && strpos($csr_file, '/ssl/\*.') !== false) $csr_file = str_replace('/ssl/\*.', '/ssl/*.', $csr_file); // wildcard certificate - $config_file = escapeshellcmd($ssl_cnf_file); - $crt_file = escapeshellcmd($crt_file); + $config_file = $ssl_cnf_file; + $crt_file = $crt_file; $openssl_cmd_crt_file = $crt_file; if(substr($domain, 0, 2) == '*.' && strpos($crt_file, '/ssl/\*.') !== false) $crt_file = str_replace('/ssl/\*.', '/ssl/*.', $crt_file); // wildcard certificate if(is_file($ssl_cnf_file) && !is_link($ssl_cnf_file)) { - exec("openssl genrsa -des3 -rand $rand_file -passout pass:$ssl_password -out $openssl_cmd_key_file2 2048"); - exec("openssl req -new -sha256 -passin pass:$ssl_password -passout pass:$ssl_password -key $openssl_cmd_key_file2 -out $openssl_cmd_csr_file -days $ssl_days -config $config_file"); - exec("openssl rsa -passin pass:$ssl_password -in $openssl_cmd_key_file2 -out $openssl_cmd_key_file"); + $app->system->exec_safe("openssl genrsa -des3 -rand ? -passout pass:? -out ? 2048", $rand_file, $ssl_password, $openssl_cmd_key_file2); + $app->system->exec_safe("openssl req -new -sha256 -passin pass:? -passout pass:? -key ? -out ? -days ? -config ?", $ssl_password, $ssl_password, $openssl_cmd_key_file2, $openssl_cmd_csr_file, $ssl_days, $config_file); + $app->system->exec_safe("openssl rsa -passin pass:? -in ? -out ?", $ssl_password, $openssl_cmd_key_file2, $openssl_cmd_key_file); if(file_exists($web_config['CA_path'].'/openssl.cnf')) { - exec("openssl ca -batch -out $openssl_cmd_crt_file -config ".$web_config['CA_path']."/openssl.cnf -passin pass:".$web_config['CA_pass']." -in $openssl_cmd_csr_file"); + $app->system->exec_safe("openssl ca -batch -out ? -config ? -passin pass:? -in ?", $openssl_cmd_crt_file, $web_config['CA_path']."/openssl.cnf", $web_config['CA_pass'], $openssl_cmd_csr_file); $app->log("Creating CA-signed SSL Cert for: $domain", LOGLEVEL_DEBUG); - if (filesize($crt_file)==0 || !file_exists($crt_file)) $app->log("CA-Certificate signing failed. openssl ca -out $openssl_cmd_crt_file -config ".$web_config['CA_path']."/openssl.cnf -passin pass:".$web_config['CA_pass']." -in $openssl_cmd_csr_file", LOGLEVEL_ERROR); + if(filesize($crt_file) == 0 || !file_exists($crt_file)) { + $app->log("CA-Certificate signing failed. openssl ca -out $openssl_cmd_crt_file -config " . $web_config['CA_path'] . "/openssl.cnf -passin pass:" . $web_config['CA_pass'] . " -in $openssl_cmd_csr_file", LOGLEVEL_ERROR); + } }; if (@filesize($crt_file)==0 || !file_exists($crt_file)){ - exec("openssl req -x509 -passin pass:$ssl_password -passout pass:$ssl_password -key $openssl_cmd_key_file2 -in $openssl_cmd_csr_file -out $openssl_cmd_crt_file -days $ssl_days -config $config_file "); + $app->system->exec_safe("openssl req -x509 -passin pass:? -passout pass:? -key ? -in ? -out ? -days ? -config ? ", $ssl_password, $ssl_password, $openssl_cmd_key_file2, $openssl_cmd_csr_file, $openssl_cmd_crt_file, $ssl_days, $config_file); $app->log("Creating self-signed SSL Cert for: $domain", LOGLEVEL_DEBUG); }; @@ -402,7 +404,8 @@ class apache2_plugin { if($data["new"]["ssl_action"] == 'save') { $tmp = array(); $crt_data = ''; - exec('openssl x509 -noout -text -in '.escapeshellarg($crt_file),$tmp); + $app->system->exec_safe('openssl x509 -noout -text -in ?', $crt_file); + $tmp = $app->system->last_exec_out(); $crt_data = implode("\n",$tmp); if(stristr($crt_data,'.acme.invalid')) { $data["new"]["ssl_action"] = ''; diff --git a/server/plugins-available/apps_vhost_plugin.inc.php b/server/plugins-available/apps_vhost_plugin.inc.php index b843e3c8a..41e3cdd82 100644 --- a/server/plugins-available/apps_vhost_plugin.inc.php +++ b/server/plugins-available/apps_vhost_plugin.inc.php @@ -156,11 +156,11 @@ class apps_vhost_plugin { $apps_vhost_ip = $web_config['apps_vhost_ip'].':'; } - $socket_dir = escapeshellcmd($web_config['php_fpm_socket_dir']); + $socket_dir = $web_config['php_fpm_socket_dir']; if(substr($socket_dir, -1) != '/') $socket_dir .= '/'; - if(!is_dir($socket_dir)) exec('mkdir -p '.$socket_dir); + if(!is_dir($socket_dir)) $app->system->exec_safe('mkdir -p ?', $socket_dir); $fpm_socket = $socket_dir.'apps.sock'; - $cgi_socket = escapeshellcmd($web_config['nginx_cgi_socket']); + $cgi_socket = $web_config['nginx_cgi_socket']; $content = str_replace('{apps_vhost_ip}', $apps_vhost_ip, $content); $content = str_replace('{apps_vhost_port}', $web_config['apps_vhost_port'], $content); -- GitLab From 0c815b5661849d3755f62fd20a249e95d6b9328f Mon Sep 17 00:00:00 2001 From: Florian Schaal Date: Mon, 29 Jul 2019 09:35:06 +0200 Subject: [PATCH 112/215] add parameter-option to ispconfig_patch for unattended patches --- server/scripts/ispconfig_patch | 15 +++++++++++---- 1 file changed, 11 insertions(+), 4 deletions(-) diff --git a/server/scripts/ispconfig_patch b/server/scripts/ispconfig_patch index 6ed2a3f5a..a3361f507 100644 --- a/server/scripts/ispconfig_patch +++ b/server/scripts/ispconfig_patch @@ -87,6 +87,13 @@ function is_installed($appname) { } } +$cmd_opt = getopt('', array('patch_id::')); +$auto = false; +if(isset($cmd_opt['patch_id'])) { + $patch_id = $cmd_opt['patch_id']; + $auto = true; +} + echo "\n\n".str_repeat('-',80)."\n"; echo " _____ ___________ _____ __ _ |_ _/ ___| ___ \ / __ \ / _(_) @@ -98,14 +105,14 @@ echo " _____ ___________ _____ __ _ |___/ "; echo "\n".str_repeat('-',80)."\n"; echo "\n\n>> Patch tool \n\n"; -echo "Please enter the patch id that you want to be applied to your ISPConfig installation.\nPlease be aware that we take NO responsibility that this will work for you.\nOnly use patches if you know what you are doing.\n\n"; +if(!$auto) echo "Please enter the patch id that you want to be applied to your ISPConfig installation.\nPlease be aware that we take NO responsibility that this will work for you.\nOnly use patches if you know what you are doing.\n\n"; if(!is_installed('patch')) { swriteln("The program 'patch' is missing on your server. Please install it and try again."); exit; } -$patch_id = simple_query('Enter patch id', false, ''); +if(!$auto) $patch_id = simple_query('Enter patch id', false, ''); if($patch_id == '') { swriteln("Patch terminated by user.\n"); die(); @@ -122,7 +129,7 @@ if(!$patch_data) { $patch_text = @file_get_contents('http://ispconfig.org/downloads/patches/' . $patch_id . '.txt'); if($patch_text) { - $ok = simple_query("Patch description:\n".str_repeat("-", 80)."\n".$patch_text."\n".str_repeat("-", 80)."\nDo you really want to apply this patch now?", array('y','n'), 'y'); + if($auto) $ok = 'y'; else $ok = simple_query("Patch description:\n".str_repeat("-", 80)."\n".$patch_text."\n".str_repeat("-", 80)."\nDo you really want to apply this patch now?", array('y','n'), 'y'); if($ok != 'y') { swriteln("Patch terminated by user.\n"); die(); @@ -140,4 +147,4 @@ unlink($temp_file); exit; -?> \ No newline at end of file +?> -- GitLab From e2a6024bc078e75b3e554972fd4952f42071df9a Mon Sep 17 00:00:00 2001 From: Marius Burkard Date: Tue, 30 Jul 2019 14:08:34 +0200 Subject: [PATCH 113/215] Implement a more secure way to use exec, system and shell_exec, fixes #5355 --- interface/lib/classes/system.inc.php | 4 + server/lib/classes/aps_installer.inc.php | 1 - .../lib/classes/cron.d/150-webalizer.inc.php | 4 +- .../lib/classes/cron.d/200-logfiles.inc.php | 4 +- .../classes/cron.d/500-backup_mail.inc.php | 6 +- server/lib/classes/system.inc.php | 14 +- .../remoteaction_core_module.inc.php | 2 +- .../plugins-available/apache2_plugin.inc.php | 281 ++++++++---------- .../apps_vhost_plugin.inc.php | 4 +- .../plugins-available/backup_plugin.inc.php | 56 ++-- server/plugins-available/bind_plugin.inc.php | 37 ++- .../cron_jailkit_plugin.inc.php | 72 ++--- server/plugins-available/cron_plugin.inc.php | 24 +- .../plugins-available/firewall_plugin.inc.php | 28 +- .../plugins-available/getmail_plugin.inc.php | 4 +- server/plugins-available/mail_plugin.inc.php | 137 +++------ .../mail_plugin_dkim.inc.php | 3 +- .../plugins-available/mailman_plugin.inc.php | 8 +- .../mysql_clientdb_plugin.inc.php | 22 +- .../network_settings_plugin.inc.php | 4 +- server/plugins-available/nginx_plugin.inc.php | 256 ++++++++-------- .../nginx_reverseproxy_plugin.inc.php | 35 +-- .../plugins-available/openvz_plugin.inc.php | 20 +- .../postfix_server_plugin.inc.php | 12 +- .../plugins-available/powerdns_plugin.inc.php | 12 +- .../shelluser_base_plugin.inc.php | 134 ++++----- .../shelluser_jailkit_plugin.inc.php | 97 ++---- .../software_update_plugin.inc.php | 33 +- server/plugins-available/xmpp_plugin.inc.php | 12 +- 29 files changed, 574 insertions(+), 752 deletions(-) diff --git a/interface/lib/classes/system.inc.php b/interface/lib/classes/system.inc.php index d4d9cccef..ede53034d 100644 --- a/interface/lib/classes/system.inc.php +++ b/interface/lib/classes/system.inc.php @@ -65,6 +65,10 @@ class system { public function exec_safe($cmd) { $arg_count = func_num_args(); + if($arg_count != substr_count($cmd, '?') + 1) { + trigger_error('Placeholder count not matching argument list.', E_USER_WARNING); + return false; + } if($arg_count > 1) { $args = func_get_args(); diff --git a/server/lib/classes/aps_installer.inc.php b/server/lib/classes/aps_installer.inc.php index 2995b01e0..922f32e61 100644 --- a/server/lib/classes/aps_installer.inc.php +++ b/server/lib/classes/aps_installer.inc.php @@ -544,7 +544,6 @@ class ApsInstaller extends ApsBase chmod($this->local_installpath.'install_scripts/'.$cfgscript, 0755); // Change to the install folder (import for the exec() below!) - //exec('chown -R '.$this->file_owner_user.':'.$this->file_owner_group.' '.escapeshellarg($this->local_installpath)); chdir($this->local_installpath.'install_scripts/'); // Set the enviroment variables diff --git a/server/lib/classes/cron.d/150-webalizer.inc.php b/server/lib/classes/cron.d/150-webalizer.inc.php index 5d341cefe..42aa125e0 100644 --- a/server/lib/classes/cron.d/150-webalizer.inc.php +++ b/server/lib/classes/cron.d/150-webalizer.inc.php @@ -94,9 +94,9 @@ class cronjob_webalizer extends cronjob { $log_folder .= '/' . $subdomain_host; unset($tmp); } - $logfile = escapeshellcmd($rec['document_root'].'/' . $log_folder . '/'.$yesterday.'-access.log'); + $logfile = $rec['document_root'].'/' . $log_folder . '/'.$yesterday.'-access.log'; if(!@is_file($logfile)) { - $logfile = escapeshellcmd($rec['document_root'].'/' . $log_folder . '/'.$yesterday.'-access.log.gz'); + $logfile = $rec['document_root'].'/' . $log_folder . '/'.$yesterday.'-access.log.gz'; if(!@is_file($logfile)) { continue; } diff --git a/server/lib/classes/cron.d/200-logfiles.inc.php b/server/lib/classes/cron.d/200-logfiles.inc.php index d1dbf9429..b229c76a8 100644 --- a/server/lib/classes/cron.d/200-logfiles.inc.php +++ b/server/lib/classes/cron.d/200-logfiles.inc.php @@ -147,7 +147,7 @@ class cronjob_logfiles extends cronjob { } // rotate and compress the error.log - $error_logfile = escapeshellcmd($rec['document_root'].'/' . $log_folder . '/error.log'); + $error_logfile = $rec['document_root'].'/' . $log_folder . '/error.log'; // rename older files (move up by one) $num = $log_retention; while($num >= 1) { @@ -187,7 +187,7 @@ class cronjob_logfiles extends cronjob { $ispconfig_logfiles = array('ispconfig.log', 'cron.log', 'auth.log'); foreach($ispconfig_logfiles as $ispconfig_logfile) { $num = $max_syslog; - $ispconfig_logfile = escapeshellcmd($conf['ispconfig_log_dir'].'/'.$ispconfig_logfile); + $ispconfig_logfile = $conf['ispconfig_log_dir'].'/'.$ispconfig_logfile; // rename older files (move up by one) while($num >= 1) { if(is_file($ispconfig_logfile . '.' . $num . '.gz')) rename($ispconfig_logfile . '.' . $num . '.gz', $ispconfig_logfile . '.' . ($num + 1) . '.gz'); diff --git a/server/lib/classes/cron.d/500-backup_mail.inc.php b/server/lib/classes/cron.d/500-backup_mail.inc.php index 6cd689edc..234f02771 100644 --- a/server/lib/classes/cron.d/500-backup_mail.inc.php +++ b/server/lib/classes/cron.d/500-backup_mail.inc.php @@ -69,9 +69,9 @@ class cronjob_backup_mail extends cronjob { $records = $app->db->queryAllRecords("SELECT * FROM mail_user WHERE server_id = ? AND maildir != ''", intval($conf['server_id'])); if(is_array($records) && $run_backups) { if(!is_dir($backup_dir)) { - mkdir(escapeshellcmd($backup_dir), $backup_dir_permissions, true); + mkdir($backup_dir, $backup_dir_permissions, true); } else { - chmod(escapeshellcmd($backup_dir), $backup_dir_permissions); + chmod($backup_dir, $backup_dir_permissions); } system('which pigz > /dev/null', $ret); if($ret === 0) { @@ -122,7 +122,7 @@ class cronjob_backup_mail extends cronjob { if ($rec['maildir_format'] == 'mdbox') { if (empty($this->tmp_backup_dir)) $this->tmp_backup_dir = $rec['maildir']; // Create temporary backup-mailbox - exec("su -c ?", 'dsync backup -u "'.$rec["email"].'" mdbox:' . $this->tmp_backup_dir . '/backup'); + $app->system->exec_safe("su -c ?", 'dsync backup -u "'.$rec["email"].'" mdbox:' . $this->tmp_backup_dir . '/backup'); if($backup_mode == 'userzip') { $mail_backup_file.='.zip'; diff --git a/server/lib/classes/system.inc.php b/server/lib/classes/system.inc.php index 9f3e963ee..051f3554a 100644 --- a/server/lib/classes/system.inc.php +++ b/server/lib/classes/system.inc.php @@ -1601,22 +1601,20 @@ class system{ $mail_config = $app->getconf->get_server_config($conf["server_id"], 'mail'); if($subfolder != '') { - $dir = escapeshellcmd($maildir_path.'/.'.$subfolder); + $dir = $maildir_path.'/.'.$subfolder; } else { - $dir = escapeshellcmd($maildir_path); + $dir = $maildir_path; } if(!is_dir($dir)) mkdir($dir, 0700, true); if($user != '' && $user != 'root' && $this->is_user($user)) { - $user = escapeshellcmd($user); if(is_dir($dir)) $this->chown($dir, $user); $chown_mdsub = true; } if($group != '' && $group != 'root' && $this->is_group($group)) { - $group = escapeshellcmd($group); if(is_dir($dir)) $this->chgrp($dir, $group); $chgrp_mdsub = true; @@ -1638,7 +1636,7 @@ class system{ // Courier if($mail_config['pop3_imap_daemon'] == 'courier') { if(!is_file($maildir_path.'/courierimapsubscribed')) { - $tmp_file = escapeshellcmd($maildir_path.'/courierimapsubscribed'); + $tmp_file = $maildir_path.'/courierimapsubscribed'; touch($tmp_file); chmod($tmp_file, 0744); chown($tmp_file, 'vmail'); @@ -1650,7 +1648,7 @@ class system{ // Dovecot if($mail_config['pop3_imap_daemon'] == 'dovecot') { if(!is_file($maildir_path.'/subscriptions')) { - $tmp_file = escapeshellcmd($maildir_path.'/subscriptions'); + $tmp_file = $maildir_path.'/subscriptions'; touch($tmp_file); chmod($tmp_file, 0744); chown($tmp_file, 'vmail'); @@ -2059,6 +2057,10 @@ class system{ public function exec_safe($cmd) { $arg_count = func_num_args(); + if($arg_count != substr_count($cmd, '?') + 1) { + trigger_error('Placeholder count not matching argument list.', E_USER_WARNING); + return false; + } if($arg_count > 1) { $args = func_get_args(); diff --git a/server/mods-available/remoteaction_core_module.inc.php b/server/mods-available/remoteaction_core_module.inc.php index e0ce33a5e..3b6bb9fb4 100644 --- a/server/mods-available/remoteaction_core_module.inc.php +++ b/server/mods-available/remoteaction_core_module.inc.php @@ -150,7 +150,7 @@ class remoteaction_core_module { $parts = explode(':', $action['action_param']); $veid = intval($parts[0]); $template_cache_dir = '/vz/template/cache/'; - $template_name = escapeshellcmd($parts[1]); + $template_name = $parts[1]; if($veid > 0 && $template_name != '' && is_dir($template_cache_dir)) { $command = "vzdump --suspend --compress --stdexcludes --dumpdir ? ?"; $app->system->exec_safe($command, $template_cache_dir, $veid); diff --git a/server/plugins-available/apache2_plugin.inc.php b/server/plugins-available/apache2_plugin.inc.php index 28a3c4d5d..2183e96eb 100644 --- a/server/plugins-available/apache2_plugin.inc.php +++ b/server/plugins-available/apache2_plugin.inc.php @@ -476,7 +476,7 @@ class apache2_plugin { if($data['new']['ssl_action'] == 'del') { if(file_exists($web_config['CA_path'].'/openssl.cnf') && !is_link($web_config['CA_path'].'/openssl.cnf')) { - exec("openssl ca -batch -config ".$web_config['CA_path']."/openssl.cnf -passin pass:".$web_config['CA_pass']." -revoke ".escapeshellcmd($crt_file)); + $app->system->exec_safe("openssl ca -batch -config ? -passin pass:? -revoke ?", $web_config['CA_path']."/openssl.cnf", $web_config['CA_pass'], $crt_file); $app->log("Revoking CA-signed SSL Cert for: $domain", LOGLEVEL_DEBUG); }; $app->system->unlink($csr_file); @@ -594,31 +594,31 @@ class apache2_plugin { //* Check if a ispconfigend user and group exists and create them if(!$app->system->is_group('ispconfigend')) { - exec('groupadd --gid '.($connect_userid_to_webid_start + 10000).' ispconfigend'); + $app->system->exec_safe('groupadd --gid ? ispconfigend', $connect_userid_to_webid_start + 10000); } if(!$app->system->is_user('ispconfigend')) { - exec('useradd -g ispconfigend -d /usr/local/ispconfig --uid '.($connect_userid_to_webid_start + 10000).' ispconfigend'); + $app->system->exec_safe('useradd -g ispconfigend -d /usr/local/ispconfig --uid ? ispconfigend', $connect_userid_to_webid_start + 10000); } } else { $fixed_uid_param = ''; $fixed_gid_param = ''; } - $groupname = escapeshellcmd($data['new']['system_group']); + $groupname = $data['new']['system_group']; if($data['new']['system_group'] != '' && !$app->system->is_group($data['new']['system_group'])) { - exec('groupadd '.$fixed_gid_param.' '.$groupname); - if($apache_chrooted) $app->system->_exec('chroot '.escapeshellcmd($web_config['website_basedir']).' groupadd '.$groupname); + $app->system->exec_safe('groupadd ? ?', $fixed_gid_param, $groupname); + if($apache_chrooted) $app->system->exec_safe('chroot ? groupadd ?', $web_config['website_basedir'], $groupname); $app->log('Adding the group: '.$groupname, LOGLEVEL_DEBUG); } - $username = escapeshellcmd($data['new']['system_user']); + $username = $data['new']['system_user']; if($data['new']['system_user'] != '' && !$app->system->is_user($data['new']['system_user'])) { if($web_config['add_web_users_to_sshusers_group'] == 'y') { - exec('useradd -d '.escapeshellcmd($data['new']['document_root'])." -g $groupname $fixed_uid_param -G sshusers $username -s /bin/false"); - if($apache_chrooted) $app->system->_exec('chroot '.escapeshellcmd($web_config['website_basedir']).' useradd -d '.escapeshellcmd($data['new']['document_root'])." -g $groupname $fixed_uid_param -G sshusers $username -s /bin/false"); + $app->system->exec_safe('useradd -d ? -g ? ? -G sshusers ? -s /bin/false', $data['new']['document_root'], $groupname, $fixed_uid_param, $username); + if($apache_chrooted) $app->system->exec_safe('chroot ? useradd -d ? -g ? ? -G sshusers ? -s /bin/false', $web_config['website_basedir'], $data['new']['document_root'], $groupname, $fixed_uid_param, $username); } else { - exec('useradd -d '.escapeshellcmd($data['new']['document_root'])." -g $groupname $fixed_uid_param $username -s /bin/false"); - if($apache_chrooted) $app->system->_exec('chroot '.escapeshellcmd($web_config['website_basedir']).' useradd -d '.escapeshellcmd($data['new']['document_root'])." -g $groupname $fixed_uid_param $username -s /bin/false"); + $app->system->exec_safe('useradd -d ? -g ? ? ? -s /bin/false', $data['new']['document_root'], $groupname, $fixed_uid_param, $username); + if($apache_chrooted) $app->system->exec_safe('chroot ? useradd -d ? -g ? ? ? -s /bin/false', $web_config['website_basedir'], $data['new']['document_root'], $groupname, $fixed_uid_param, $username); } $app->log('Adding the user: '.$username, LOGLEVEL_DEBUG); } @@ -641,7 +641,7 @@ class apache2_plugin { if(substr($tmp_symlink, -1, 1) == '/') $tmp_symlink = substr($tmp_symlink, 0, -1); // create the symlinks, if not exist if(is_link($tmp_symlink)) { - exec('rm -f '.escapeshellcmd($tmp_symlink)); + $app->system->exec_safe('rm -f ?', $tmp_symlink); $app->log('Removed symlink: rm -f '.$tmp_symlink, LOGLEVEL_DEBUG); } } @@ -668,13 +668,12 @@ class apache2_plugin { } //* Unmount the old log directory bfore we move the log dir - //exec('fuser -km '.escapeshellcmd($old_dir.'/log')); - exec('umount '.escapeshellcmd($data['old']['document_root'].'/log')); + $app->system->exec_safe('umount ?', $data['old']['document_root'].'/log'); //* Create new base directory, if it does not exist yet if(!is_dir($new_dir)) $app->system->mkdirpath($new_dir); $app->system->web_folder_protection($data['old']['document_root'], false); - exec('mv '.escapeshellarg($data['old']['document_root']).' '.escapeshellarg($new_dir)); + $app->system->exec_safe('mv ? ?', $data['old']['document_root'], $new_dir); //$app->system->rename($data['old']['document_root'],$new_dir); $app->log('Moving site to new document root: mv '.$data['old']['document_root'].' '.$new_dir, LOGLEVEL_DEBUG); @@ -682,17 +681,17 @@ class apache2_plugin { $data['new']['php_open_basedir'] = str_replace($data['old']['document_root'], $data['new']['document_root'], $data['old']['php_open_basedir']); //* Change the owner of the website files to the new website owner - exec('chown --recursive --from='.escapeshellcmd($data['old']['system_user']).':'.escapeshellcmd($data['old']['system_group']).' '.escapeshellcmd($data['new']['system_user']).':'.escapeshellcmd($data['new']['system_group']).' '.$new_dir); + $app->system->exec_safe('chown --recursive --from=?:? ?:? ?', $data['old']['system_user'], $data['old']['system_group'], $data['new']['system_user'], $data['new']['system_group'], $new_dir); //* Change the home directory and group of the website user - $command = 'killall -u '.escapeshellcmd($data['new']['system_user']).' ; usermod'; - $command .= ' --home '.escapeshellcmd($data['new']['document_root']); - $command .= ' --gid '.escapeshellcmd($data['new']['system_group']); - $command .= ' '.escapeshellcmd($data['new']['system_user']).' 2>/dev/null'; - exec($command); + $command = 'killall -u ? ; usermod'; + $command .= ' --home ?'; + $command .= ' --gid ?'; + $command .= ' ? 2>/dev/null'; + $app->system->exec_safe($command, $data['new']['system_user'], $data['new']['document_root'], $data['new']['system_group'], $data['new']['system_user']); } - if($apache_chrooted) $app->system->_exec('chroot '.escapeshellcmd($web_config['website_basedir']).' '.$command); + if($apache_chrooted) $app->system->exec_safe('chroot ? ?', $web_config['website_basedir'], $command); //* Change the log mount /* @@ -714,7 +713,7 @@ class apache2_plugin { $app->system->replaceLine('/etc/fstab', $fstab_line_old, $fstab_line, 0, 1); } - exec('mount --bind '.escapeshellarg('/var/log/ispconfig/httpd/'.$data['new']['domain']).' '.escapeshellarg($data['new']['document_root'].'/'.$log_folder)); + $app->system->exec_safe('mount --bind ? ?', '/var/log/ispconfig/httpd/'.$data['new']['domain'], $data['new']['document_root'].'/'.$log_folder); } @@ -726,7 +725,6 @@ class apache2_plugin { if(!is_dir($data['new']['document_root'].'/' . $web_folder)) $app->system->mkdirpath($data['new']['document_root'].'/' . $web_folder); if(!is_dir($data['new']['document_root'].'/' . $web_folder . '/error') and $data['new']['errordocs']) $app->system->mkdirpath($data['new']['document_root'].'/' . $web_folder . '/error'); if($data['new']['stats_type'] != '' && !is_dir($data['new']['document_root'].'/' . $web_folder . '/stats')) $app->system->mkdirpath($data['new']['document_root'].'/' . $web_folder . '/stats'); - //if(!is_dir($data['new']['document_root'].'/'.$log_folder)) exec('mkdir -p '.$data['new']['document_root'].'/'.$log_folder); if(!is_dir($data['new']['document_root'].'/ssl')) $app->system->mkdirpath($data['new']['document_root'].'/ssl'); if(!is_dir($data['new']['document_root'].'/cgi-bin')) $app->system->mkdirpath($data['new']['document_root'].'/cgi-bin'); if(!is_dir($data['new']['document_root'].'/tmp')) $app->system->mkdirpath($data['new']['document_root'].'/tmp'); @@ -750,7 +748,7 @@ class apache2_plugin { // Remove the symlink for the site, if site is renamed if($this->action == 'update' && $data['old']['domain'] != '' && $data['new']['domain'] != $data['old']['domain']) { - if(is_dir('/var/log/ispconfig/httpd/'.$data['old']['domain'])) exec('rm -rf /var/log/ispconfig/httpd/'.$data['old']['domain']); + if(is_dir('/var/log/ispconfig/httpd/'.$data['old']['domain'])) $app->system->exec_safe('rm -rf ?', '/var/log/ispconfig/httpd/'.$data['old']['domain']); if(is_link($data['old']['document_root'].'/'.$old_log_folder)) $app->system->unlink($data['old']['document_root'].'/'.$old_log_folder); //* remove old log mount @@ -758,19 +756,18 @@ class apache2_plugin { $app->system->removeLine('/etc/fstab', $fstab_line); //* Unmount log directory - //exec('fuser -km '.escapeshellarg($data['old']['document_root'].'/'.$old_log_folder)); - exec('umount '.escapeshellarg($data['old']['document_root'].'/'.$old_log_folder)); + $app->system->exec_safe('umount ?', $data['old']['document_root'].'/'.$old_log_folder); } //* Create the log dir if nescessary and mount it if(!is_dir($data['new']['document_root'].'/'.$log_folder) || !is_dir('/var/log/ispconfig/httpd/'.$data['new']['domain']) || is_link($data['new']['document_root'].'/'.$log_folder)) { if(is_link($data['new']['document_root'].'/'.$log_folder)) unlink($data['new']['document_root'].'/'.$log_folder); - if(!is_dir('/var/log/ispconfig/httpd/'.$data['new']['domain'])) exec('mkdir -p /var/log/ispconfig/httpd/'.$data['new']['domain']); + if(!is_dir('/var/log/ispconfig/httpd/'.$data['new']['domain'])) $app->system->exec_safe('mkdir -p ?', '/var/log/ispconfig/httpd/'.$data['new']['domain']); $app->system->mkdirpath($data['new']['document_root'].'/'.$log_folder); $app->system->chown($data['new']['document_root'].'/'.$log_folder, 'root'); $app->system->chgrp($data['new']['document_root'].'/'.$log_folder, 'root'); $app->system->chmod($data['new']['document_root'].'/'.$log_folder, 0755); - exec('mount --bind '.escapeshellarg('/var/log/ispconfig/httpd/'.$data['new']['domain']).' '.escapeshellarg($data['new']['document_root'].'/'.$log_folder)); + $app->system->exec_safe('mount --bind ? ?', '/var/log/ispconfig/httpd/'.$data['new']['domain'], $data['new']['document_root'].'/'.$log_folder); //* add mountpoint to fstab $fstab_line = '/var/log/ispconfig/httpd/'.$data['new']['domain'].' '.$data['new']['document_root'].'/'.$log_folder.' none bind,nobootwait'; $fstab_line .= @($web_config['network_filesystem'] == 'y')?',_netdev 0 0':' 0 0'; @@ -795,7 +792,7 @@ class apache2_plugin { if(substr($tmp_symlink, -1, 1) == '/') $tmp_symlink = substr($tmp_symlink, 0, -1); // remove the symlinks, if not exist if(is_link($tmp_symlink)) { - exec('rm -f '.escapeshellcmd($tmp_symlink)); + $app->system->exec_safe('rm -f ?', $tmp_symlink); $app->log('Removed symlink: rm -f '.$tmp_symlink, LOGLEVEL_DEBUG); } } @@ -816,11 +813,10 @@ class apache2_plugin { } // create the symlinks, if not exist if(!is_link($tmp_symlink)) { - // exec("ln -s ".escapeshellcmd($data["new"]["document_root"])."/ ".escapeshellcmd($tmp_symlink)); if ($web_config["website_symlinks_rel"] == 'y') { - $app->system->create_relative_link(escapeshellcmd($data["new"]["document_root"]), escapeshellcmd($tmp_symlink)); + $app->system->create_relative_link($data["new"]["document_root"], $tmp_symlink); } else { - exec("ln -s ".escapeshellcmd($data["new"]["document_root"])."/ ".escapeshellcmd($tmp_symlink)); + $app->system->exec_safe("ln -s ? ?", $data["new"]["document_root"]."/", $tmp_symlink); } $app->log('Creating symlink: ln -s '.$data['new']['document_root'].'/ '.$tmp_symlink, LOGLEVEL_DEBUG); @@ -840,69 +836,67 @@ class apache2_plugin { // Copy the error pages if($data['new']['errordocs']) { - $error_page_path = escapeshellcmd($data['new']['document_root']).'/' . $web_folder . '/error/'; - if (file_exists($conf['rootpath'] . '/conf-custom/error/'.substr(escapeshellcmd($conf['language']), 0, 2))) { - exec('cp ' . $conf['rootpath'] . '/conf-custom/error/'.substr(escapeshellcmd($conf['language']), 0, 2).'/* '.$error_page_path); + $error_page_path = $data['new']['document_root'].'/' . $web_folder . '/error/'; + if (file_exists($conf['rootpath'] . '/conf-custom/error/'.substr($conf['language'], 0, 2))) { + $app->system->exec_safe('cp ?* ?', $conf['rootpath'] . '/conf-custom/error/'.substr($conf['language'], 0, 2).'/', $error_page_path); } else { if (file_exists($conf['rootpath'] . '/conf-custom/error/400.html')) { - exec('cp '. $conf['rootpath'] . '/conf-custom/error/*.html '.$error_page_path); + $app->system->exec_safe('cp ?*.html ?', $conf['rootpath'] . '/conf-custom/error/', $error_page_path); } else { - exec('cp ' . $conf['rootpath'] . '/conf/error/'.substr(escapeshellcmd($conf['language']), 0, 2).'/* '.$error_page_path); + $app->system->exec_safe('cp ?* ?', $conf['rootpath'] . '/conf/error/'.substr($conf['language'], 0, 2).'/', $error_page_path); } } - exec('chmod -R a+r '.$error_page_path); + $app->system->exec_safe('chmod -R a+r ?', $error_page_path); } //* Copy the web skeleton files only when there is no index.ph or index.html file yet if(!file_exists($data['new']['document_root'].'/'.$web_folder.'/index.html') && !file_exists($data['new']['document_root'].'/'.$web_folder.'/index.php')) { - if (file_exists($conf['rootpath'] . '/conf-custom/index/standard_index.html_'.substr(escapeshellcmd($conf['language']), 0, 2))) { - if(!file_exists(escapeshellcmd($data['new']['document_root']).'/' . $web_folder . '/index.html')) exec('cp ' . $conf['rootpath'] . '/conf-custom/index/standard_index.html_'.substr(escapeshellcmd($conf['language']), 0, 2).' '.escapeshellcmd($data['new']['document_root']).'/' . $web_folder . '/index.html'); + if (file_exists($conf['rootpath'] . '/conf-custom/index/standard_index.html_'.substr($conf['language'], 0, 2))) { + if(!file_exists($data['new']['document_root'] . '/' . $web_folder . '/index.html')) { + $app->system->exec_safe('cp ? ?', $conf['rootpath'] . '/conf-custom/index/standard_index.html_' . substr($conf['language'], 0, 2), $data['new']['document_root'] . '/' . $web_folder . '/index.html'); + } if(is_file($conf['rootpath'] . '/conf-custom/index/favicon.ico')) { - if(!file_exists(escapeshellcmd($data['new']['document_root']).'/' . $web_folder . '/favicon.ico')) exec('cp ' . $conf['rootpath'] . '/conf-custom/index/favicon.ico '.escapeshellcmd($data['new']['document_root']).'/' . $web_folder . '/'); + if(!file_exists($data['new']['document_root'].'/' . $web_folder . '/favicon.ico')) $app->system->exec_safe('cp ? ?', $conf['rootpath'] . '/conf-custom/index/favicon.ico', $data['new']['document_root'].'/' . $web_folder . '/'); } if(is_file($conf['rootpath'] . '/conf-custom/index/robots.txt')) { - if(!file_exists(escapeshellcmd($data['new']['document_root']).'/' . $web_folder . '/robots.txt')) exec('cp ' . $conf['rootpath'] . '/conf-custom/index/robots.txt '.escapeshellcmd($data['new']['document_root']).'/' . $web_folder . '/'); + if(!file_exists($data['new']['document_root'].'/' . $web_folder . '/robots.txt')) $app->system->exec_safe('cp ? ?', $conf['rootpath'] . '/conf-custom/index/robots.txt', $data['new']['document_root'].'/' . $web_folder . '/'); } - //if(is_file($conf['rootpath'] . '/conf-custom/index/.htaccess')) { - // exec('cp ' . $conf['rootpath'] . '/conf-custom/index/.htaccess '.escapeshellcmd($data['new']['document_root']).'/' . $web_folder . '/'); - //} } else { if (file_exists($conf['rootpath'] . '/conf-custom/index/standard_index.html')) { - if(!file_exists(escapeshellcmd($data['new']['document_root']).'/' . $web_folder . '/index.html')) exec('cp ' . $conf['rootpath'] . '/conf-custom/index/standard_index.html '.escapeshellcmd($data['new']['document_root']).'/' . $web_folder . '/index.html'); + if(!file_exists($data['new']['document_root'].'/' . $web_folder . '/index.html')) $app->system->exec_safe('cp ? ?', $conf['rootpath'] . '/conf-custom/index/standard_index.html', $data['new']['document_root'].'/' . $web_folder . '/index.html'); } else { - if(!file_exists(escapeshellcmd($data['new']['document_root']).'/' . $web_folder . '/index.html')) exec('cp ' . $conf['rootpath'] . '/conf/index/standard_index.html_'.substr(escapeshellcmd($conf['language']), 0, 2).' '.escapeshellcmd($data['new']['document_root']).'/' . $web_folder . '/index.html'); + if(!file_exists($data['new']['document_root'].'/' . $web_folder . '/index.html')) $app->system->exec_safe('cp ? ?', $conf['rootpath'] . '/conf/index/standard_index.html_'.substr($conf['language'], 0, 2), $data['new']['document_root'].'/' . $web_folder . '/index.html'); if(is_file($conf['rootpath'] . '/conf/index/favicon.ico')){ - if(!file_exists(escapeshellcmd($data['new']['document_root']).'/' . $web_folder . '/favicon.ico')) exec('cp ' . $conf['rootpath'] . '/conf/index/favicon.ico '.escapeshellcmd($data['new']['document_root']).'/' . $web_folder . '/'); + if(!file_exists($data['new']['document_root'].'/' . $web_folder . '/favicon.ico')) $app->system->exec_safe('cp ? ?', $conf['rootpath'] . '/conf/index/favicon.ico', $data['new']['document_root'].'/' . $web_folder . '/'); } if(is_file($conf['rootpath'] . '/conf/index/robots.txt')){ - if(!file_exists(escapeshellcmd($data['new']['document_root']).'/' . $web_folder . '/robots.txt')) exec('cp ' . $conf['rootpath'] . '/conf/index/robots.txt '.escapeshellcmd($data['new']['document_root']).'/' . $web_folder . '/'); + if(!file_exists($data['new']['document_root'].'/' . $web_folder . '/robots.txt')) $app->system->exec_safe('cp ? ?', $conf['rootpath'] . '/conf/index/robots.txt', $data['new']['document_root'].'/' . $web_folder . '/'); } - //if(is_file($conf['rootpath'] . '/conf/index/.htaccess')) exec('cp ' . $conf['rootpath'] . '/conf/index/.htaccess '.escapeshellcmd($data['new']['document_root']).'/' . $web_folder . '/'); } } } - exec('chmod -R a+r '.escapeshellcmd($data['new']['document_root']).'/' . $web_folder . '/'); + $app->system->exec_safe('chmod -R a+r ?', $data['new']['document_root'].'/' . $web_folder . '/'); //** Copy the error documents on update when the error document checkbox has been activated and was deactivated before } elseif ($this->action == 'update' && ($data['new']['type'] == 'vhost' || $data['new']['type'] == 'vhostsubdomain' || $data['new']['type'] == 'vhostalias') && $data['old']['errordocs'] == 0 && $data['new']['errordocs'] == 1) { - $error_page_path = escapeshellcmd($data['new']['document_root']).'/' . $web_folder . '/error/'; - if (file_exists($conf['rootpath'] . '/conf-custom/error/'.substr(escapeshellcmd($conf['language']), 0, 2))) { - exec('cp ' . $conf['rootpath'] . '/conf-custom/error/'.substr(escapeshellcmd($conf['language']), 0, 2).'/* '.$error_page_path); + $error_page_path = $data['new']['document_root'].'/' . $web_folder . '/error/'; + if (file_exists($conf['rootpath'] . '/conf-custom/error/'.substr($conf['language'], 0, 2))) { + $app->system->exec_safe('cp ?* ?', $conf['rootpath'] . '/conf-custom/error/'.substr($conf['language'], 0, 2).'/', $error_page_path); } else { if (file_exists($conf['rootpath'] . '/conf-custom/error/400.html')) { - exec('cp ' . $conf['rootpath'] . '/conf-custom/error/*.html '.$error_page_path); + $app->system->exec_safe('cp ?*.html ?', $conf['rootpath'] . '/conf-custom/error/', $error_page_path); } else { - exec('cp ' . $conf['rootpath'] . '/conf/error/'.substr(escapeshellcmd($conf['language']), 0, 2).'/* '.$error_page_path); + $app->system->exec_safe('cp ?* ?', $conf['rootpath'] . '/conf/error/'.substr($conf['language'], 0, 2).'/', $error_page_path); } } - exec('chmod -R a+r '.$error_page_path); - exec('chown -R '.$data['new']['system_user'].':'.$data['new']['system_group'].' '.$error_page_path); + $app->system->exec_safe('chmod -R a+r ?', $error_page_path); + $app->system->exec_safe('chown -R ?:? ?', $data['new']['system_user'], $data['new']['system_group'], $error_page_path); } // end copy error docs // Set the quota for the user, but only for vhosts, not vhostsubdomains or vhostalias @@ -917,39 +911,39 @@ class apache2_plugin { } // get the primitive folder for document_root and the filesystem, will need it later. - $df_output=explode(" ", exec("df -T " . escapeshellarg($data['new']['document_root']) . "|awk 'END{print \$2,\$NF}'")); + $df_output=explode(" ", $app->system->exec_safe("df -T ?|awk 'END{print \$2,\$NF}'", $data['new']['document_root'])); $file_system = $df_output[0]; $primitive_root = $df_output[1]; if($file_system == 'xfs') { - exec("xfs_quota -x -c " . escapeshellarg("limit -u bsoft=$mb_soft" . 'm'. " bhard=$mb_hard" . 'm'. " " . $username) . " " . escapeshellarg($primitive_root)); + $app->system->exec_safe("xfs_quota -x -c ? ?", "limit -u bsoft=$mb_soft" . 'm'. " bhard=$mb_hard" . 'm'. " " . $username, $primitive_root); // xfs only supports timers globally, not per user. - exec("xfs_quota -x -c 'timer -bir -i 604800' " . escapeshellarg($primitive_root)); + $app->system->exec_safe("xfs_quota -x -c 'timer -bir -i 604800' ?", $primitive_root); unset($project_uid, $username_position, $xfs_projects); unset($primitive_root, $df_output, $mb_hard, $mb_soft); } else { if($app->system->is_installed('setquota')) { - exec('setquota -u '. $username . ' ' . $blocks_soft . ' ' . $blocks_hard . ' 0 0 -a &> /dev/null'); - exec('setquota -T -u '.$username.' 604800 604800 -a &> /dev/null'); + $app->system->exec_safe('setquota -u ? ? ? 0 0 -a &> /dev/null', $username, $blocks_soft, $blocks_hard); + $app->system->exec_safe('setquota -T -u ? 604800 604800 -a &> /dev/null', $username); } } } if($this->action == 'insert' || $data["new"]["system_user"] != $data["old"]["system_user"]) { // Chown and chmod the directories below the document root - $app->system->_exec('chown -R '.$username.':'.$groupname.' '.escapeshellcmd($data['new']['document_root']).'/' . $web_folder); + $app->system->exec_safe('chown -R ?:? ?', $username, $groupname, $data['new']['document_root'].'/' . $web_folder); // The document root itself has to be owned by root in normal level and by the web owner in security level 20 if($web_config['security_level'] == 20) { - $app->system->_exec('chown '.$username.':'.$groupname.' '.escapeshellcmd($data['new']['document_root']).'/' . $web_folder); + $app->system->exec_safe('chown ?:? ?', $username, $groupname, $data['new']['document_root'].'/' . $web_folder); } else { - $app->system->_exec('chown root:root '.escapeshellcmd($data['new']['document_root']).'/' . $web_folder); + $app->system->exec_safe('chown root:root ?', $data['new']['document_root'].'/' . $web_folder); } } //* add the Apache user to the client group if this is a vhost and security level is set to high, no matter if this is an insert or update and regardless of set_folder_permissions_on_update - if($data['new']['type'] == 'vhost' && $web_config['security_level'] == 20) $app->system->add_user_to_group($groupname, escapeshellcmd($web_config['user'])); + if($data['new']['type'] == 'vhost' && $web_config['security_level'] == 20) $app->system->add_user_to_group($groupname, $web_config['user']); //* If the security level is set to high if(($this->action == 'insert' && $data['new']['type'] == 'vhost') or ($web_config['set_folder_permissions_on_update'] == 'y' && $data['new']['type'] == 'vhost')) { @@ -978,18 +972,18 @@ class apache2_plugin { if($web_config['add_web_users_to_sshusers_group'] == 'y') { $command = 'usermod'; $command .= ' --groups sshusers'; - $command .= ' '.escapeshellcmd($data['new']['system_user']).' 2>/dev/null'; - $app->system->_exec($command); + $command .= ' ? 2>/dev/null'; + $app->system->exec_safe($command, $data['new']['system_user']); } //* if we have a chrooted Apache environment if($apache_chrooted) { - $app->system->_exec('chroot '.escapeshellcmd($web_config['website_basedir']).' '.$command); + $app->system->exec_safe('chroot ? ?', $web_config['website_basedir'], $command); //* add the apache user to the client group in the chroot environment $tmp_groupfile = $app->system->server_conf['group_datei']; $app->system->server_conf['group_datei'] = $web_config['website_basedir'].'/etc/group'; - $app->system->add_user_to_group($groupname, escapeshellcmd($web_config['user'])); + $app->system->add_user_to_group($groupname, $web_config['user']); $app->system->server_conf['group_datei'] = $tmp_groupfile; unset($tmp_groupfile); } @@ -1092,7 +1086,9 @@ class apache2_plugin { if($data['new']['type'] == 'vhost') { // Change the ownership of the error log to the root user - if(!@is_file('/var/log/ispconfig/httpd/'.$data['new']['domain'].'/error.log')) exec('touch '.escapeshellcmd('/var/log/ispconfig/httpd/'.$data['new']['domain'].'/error.log')); + if(!@is_file('/var/log/ispconfig/httpd/'.$data['new']['domain'].'/error.log')) { + $app->system->exec_safe('touch ?', '/var/log/ispconfig/httpd/'.$data['new']['domain'].'/error.log'); + } $app->system->chown('/var/log/ispconfig/httpd/'.$data['new']['domain'].'/error.log', 'root'); $app->system->chgrp('/var/log/ispconfig/httpd/'.$data['new']['domain'].'/error.log', 'root'); } @@ -1165,7 +1161,7 @@ class apache2_plugin { $vhost_data['php_open_basedir'] = ($data['new']['php_open_basedir'] == '')?$data['new']['document_root']:$data['new']['php_open_basedir']; $vhost_data['ssl_domain'] = $data['new']['ssl_domain']; $vhost_data['has_custom_php_ini'] = $has_custom_php_ini; - $vhost_data['custom_php_ini_dir'] = escapeshellcmd($custom_php_ini_dir); + $vhost_data['custom_php_ini_dir'] = $custom_php_ini_dir; $vhost_data['logging'] = $web_config['logging']; // Custom Apache directives @@ -1455,13 +1451,10 @@ class apache2_plugin { if (!is_dir($fastcgi_starter_path)) { $app->system->mkdirpath($fastcgi_starter_path); - //exec('chown '.$data['new']['system_user'].':'.$data['new']['system_group'].' '.escapeshellcmd($fastcgi_starter_path)); - $app->log('Creating fastcgi starter script directory: '.$fastcgi_starter_path, LOGLEVEL_DEBUG); } - //exec('chown -R '.$data['new']['system_user'].':'.$data['new']['system_group'].' '.escapeshellcmd($fastcgi_starter_path)); $app->system->chown($fastcgi_starter_path, $data['new']['system_user']); $app->system->chgrp($fastcgi_starter_path, $data['new']['system_group']); if($web_config['security_level'] == 10) { @@ -1483,29 +1476,29 @@ class apache2_plugin { } if($has_custom_php_ini) { - $fcgi_tpl->setVar('php_ini_path', escapeshellcmd($custom_php_ini_dir)); + $fcgi_tpl->setVar('php_ini_path', $custom_php_ini_dir); } else { if($default_fastcgi_php){ - $fcgi_tpl->setVar('php_ini_path', escapeshellcmd($fastcgi_config['fastcgi_phpini_path'])); + $fcgi_tpl->setVar('php_ini_path', $fastcgi_config['fastcgi_phpini_path']); } else { - $fcgi_tpl->setVar('php_ini_path', escapeshellcmd($custom_fastcgi_php_ini_dir)); + $fcgi_tpl->setVar('php_ini_path', $custom_fastcgi_php_ini_dir); } } - $fcgi_tpl->setVar('document_root', escapeshellcmd($data['new']['document_root'])); - $fcgi_tpl->setVar('php_fcgi_children', escapeshellcmd($fastcgi_config['fastcgi_children'])); - $fcgi_tpl->setVar('php_fcgi_max_requests', escapeshellcmd($fastcgi_config['fastcgi_max_requests'])); + $fcgi_tpl->setVar('document_root', $data['new']['document_root']); + $fcgi_tpl->setVar('php_fcgi_children', $fastcgi_config['fastcgi_children']); + $fcgi_tpl->setVar('php_fcgi_max_requests', $fastcgi_config['fastcgi_max_requests']); if($default_fastcgi_php){ - $fcgi_tpl->setVar('php_fcgi_bin', escapeshellcmd($fastcgi_config['fastcgi_bin'])); + $fcgi_tpl->setVar('php_fcgi_bin', $fastcgi_config['fastcgi_bin']); } else { - $fcgi_tpl->setVar('php_fcgi_bin', escapeshellcmd($custom_fastcgi_php_executable)); + $fcgi_tpl->setVar('php_fcgi_bin', $custom_fastcgi_php_executable); } $fcgi_tpl->setVar('security_level', intval($web_config['security_level'])); - $fcgi_tpl->setVar('domain', escapeshellcmd($data['new']['domain'])); + $fcgi_tpl->setVar('domain', $data['new']['domain']); $php_open_basedir = ($data['new']['php_open_basedir'] == '')?$data['new']['document_root']:$data['new']['php_open_basedir']; - $fcgi_tpl->setVar('open_basedir', escapeshellcmd($php_open_basedir)); + $fcgi_tpl->setVar('open_basedir', $php_open_basedir); - $fcgi_starter_script = escapeshellcmd($fastcgi_starter_path.$fastcgi_config['fastcgi_starter_script'].(($data['new']['type'] == 'vhostsubdomain' || $data['new']['type'] == 'vhostalias') ? '_web' . $data['new']['domain_id'] : '')); + $fcgi_starter_script = $fastcgi_starter_path.$fastcgi_config['fastcgi_starter_script'].(($data['new']['type'] == 'vhostsubdomain' || $data['new']['type'] == 'vhostalias') ? '_web' . $data['new']['domain_id'] : ''); $app->system->file_put_contents($fcgi_starter_script, $fcgi_tpl->grab()); unset($fcgi_tpl); @@ -1565,14 +1558,13 @@ class apache2_plugin { } if($default_php_fpm){ - $pool_dir = escapeshellcmd($web_config['php_fpm_pool_dir']); - } else { + $pool_dir = $web_config['php_fpm_pool_dir']; $pool_dir = $custom_php_fpm_pool_dir; } $pool_dir = trim($pool_dir); if(substr($pool_dir, -1) != '/') $pool_dir .= '/'; $pool_name = 'web'.$data['new']['domain_id']; - $socket_dir = escapeshellcmd($web_config['php_fpm_socket_dir']); + $socket_dir = $web_config['php_fpm_socket_dir']; if(substr($socket_dir, -1) != '/') $socket_dir .= '/'; if($data['new']['php_fpm_use_socket'] == 'y'){ @@ -1625,8 +1617,8 @@ class apache2_plugin { // This works because PHP "rewrites" a symlink to the physical path $php_open_basedir = ($data['new']['php_open_basedir'] == '')?$data['new']['document_root']:$data['new']['php_open_basedir']; - $cgi_tpl->setVar('open_basedir', escapeshellcmd($php_open_basedir)); - $cgi_tpl->setVar('document_root', escapeshellcmd($data['new']['document_root'])); + $cgi_tpl->setVar('open_basedir', $php_open_basedir); + $cgi_tpl->setVar('document_root', $data['new']['document_root']); // This will NOT work! //$cgi_tpl->setVar('open_basedir', '/var/www/' . $data['new']['domain']); @@ -1635,12 +1627,12 @@ class apache2_plugin { $cgi_tpl->setVar('has_custom_php_ini', $has_custom_php_ini); if($has_custom_php_ini) { - $cgi_tpl->setVar('php_ini_path', escapeshellcmd($custom_php_ini_dir)); + $cgi_tpl->setVar('php_ini_path', $custom_php_ini_dir); } else { - $cgi_tpl->setVar('php_ini_path', escapeshellcmd($fastcgi_config['fastcgi_phpini_path'])); + $cgi_tpl->setVar('php_ini_path', $fastcgi_config['fastcgi_phpini_path']); } - $cgi_starter_script = escapeshellcmd($cgi_starter_path.$cgi_config['cgi_starter_script'].(($data['new']['type'] == 'vhostsubdomain' || $data['new']['type'] == 'vhostalias') ? '_web' . $data['new']['domain_id'] : '')); + $cgi_starter_script = $cgi_starter_path.$cgi_config['cgi_starter_script'].(($data['new']['type'] == 'vhostsubdomain' || $data['new']['type'] == 'vhostalias') ? '_web' . $data['new']['domain_id'] : ''); $app->system->file_put_contents($cgi_starter_script, $cgi_tpl->grab()); unset($cgi_tpl); @@ -1660,7 +1652,7 @@ class apache2_plugin { } - $vhost_file = escapeshellcmd($web_config['vhost_conf_dir'].'/'.$data['new']['domain'].'.vhost'); + $vhost_file = $web_config['vhost_conf_dir'].'/'.$data['new']['domain'].'.vhost'; //* Make a backup copy of vhost file if(file_exists($vhost_file)) $app->system->copy($vhost_file, $vhost_file.'~'); @@ -1753,17 +1745,17 @@ class apache2_plugin { //* Set the symlink to enable the vhost //* First we check if there is a old type of symlink and remove it - $vhost_symlink = escapeshellcmd($web_config['vhost_conf_enabled_dir'].'/'.$data['new']['domain'].'.vhost'); + $vhost_symlink = $web_config['vhost_conf_enabled_dir'].'/'.$data['new']['domain'].'.vhost'; if(is_link($vhost_symlink)) $app->system->unlink($vhost_symlink); //* Remove old or changed symlinks if($data['new']['subdomain'] != $data['old']['subdomain'] or $data['new']['active'] == 'n') { - $vhost_symlink = escapeshellcmd($web_config['vhost_conf_enabled_dir'].'/900-'.$data['new']['domain'].'.vhost'); + $vhost_symlink = $web_config['vhost_conf_enabled_dir'].'/900-'.$data['new']['domain'].'.vhost'; if(is_link($vhost_symlink)) { $app->system->unlink($vhost_symlink); $app->log('Removing symlink: '.$vhost_symlink.'->'.$vhost_file, LOGLEVEL_DEBUG); } - $vhost_symlink = escapeshellcmd($web_config['vhost_conf_enabled_dir'].'/100-'.$data['new']['domain'].'.vhost'); + $vhost_symlink = $web_config['vhost_conf_enabled_dir'].'/100-'.$data['new']['domain'].'.vhost'; if(is_link($vhost_symlink)) { $app->system->unlink($vhost_symlink); $app->log('Removing symlink: '.$vhost_symlink.'->'.$vhost_file, LOGLEVEL_DEBUG); @@ -1772,9 +1764,9 @@ class apache2_plugin { //* New symlink if($data['new']['subdomain'] == '*') { - $vhost_symlink = escapeshellcmd($web_config['vhost_conf_enabled_dir'].'/900-'.$data['new']['domain'].'.vhost'); + $vhost_symlink = $web_config['vhost_conf_enabled_dir'].'/900-'.$data['new']['domain'].'.vhost'; } else { - $vhost_symlink = escapeshellcmd($web_config['vhost_conf_enabled_dir'].'/100-'.$data['new']['domain'].'.vhost'); + $vhost_symlink = $web_config['vhost_conf_enabled_dir'].'/100-'.$data['new']['domain'].'.vhost'; } if($data['new']['active'] == 'y' && !is_link($vhost_symlink)) { symlink($vhost_file, $vhost_symlink); @@ -1783,22 +1775,22 @@ class apache2_plugin { // remove old symlink and vhost file, if domain name of the site has changed if($this->action == 'update' && $data['old']['domain'] != '' && $data['new']['domain'] != $data['old']['domain']) { - $vhost_symlink = escapeshellcmd($web_config['vhost_conf_enabled_dir'].'/900-'.$data['old']['domain'].'.vhost'); + $vhost_symlink = $web_config['vhost_conf_enabled_dir'].'/900-'.$data['old']['domain'].'.vhost'; if(is_link($vhost_symlink)) { $app->system->unlink($vhost_symlink); $app->log('Removing symlink: '.$vhost_symlink.'->'.$vhost_file, LOGLEVEL_DEBUG); } - $vhost_symlink = escapeshellcmd($web_config['vhost_conf_enabled_dir'].'/100-'.$data['old']['domain'].'.vhost'); + $vhost_symlink = $web_config['vhost_conf_enabled_dir'].'/100-'.$data['old']['domain'].'.vhost'; if(is_link($vhost_symlink)) { $app->system->unlink($vhost_symlink); $app->log('Removing symlink: '.$vhost_symlink.'->'.$vhost_file, LOGLEVEL_DEBUG); } - $vhost_symlink = escapeshellcmd($web_config['vhost_conf_enabled_dir'].'/'.$data['old']['domain'].'.vhost'); + $vhost_symlink = $web_config['vhost_conf_enabled_dir'].'/'.$data['old']['domain'].'.vhost'; if(is_link($vhost_symlink)) { $app->system->unlink($vhost_symlink); $app->log('Removing symlink: '.$vhost_symlink.'->'.$vhost_file, LOGLEVEL_DEBUG); } - $vhost_file = escapeshellcmd($web_config['vhost_conf_dir'].'/'.$data['old']['domain'].'.vhost'); + $vhost_file = $web_config['vhost_conf_dir'].'/'.$data['old']['domain'].'.vhost'; $app->system->unlink($vhost_file); $app->log('Removing file: '.$vhost_file, LOGLEVEL_DEBUG); } @@ -2032,14 +2024,10 @@ class apache2_plugin { if($data['old']['type'] == 'vhost' || $data['old']['type'] == 'vhostsubdomain' || $data['old']['type'] == 'vhostalias'){ if(is_array($log_folders) && !empty($log_folders)){ foreach($log_folders as $log_folder){ - //if($app->system->is_mounted($data['old']['document_root'].'/'.$log_folder)) exec('umount '.escapeshellarg($data['old']['document_root'].'/'.$log_folder)); - //exec('fuser -km '.escapeshellarg($data['old']['document_root'].'/'.$log_folder).' 2>/dev/null'); - exec('umount '.escapeshellarg($data['old']['document_root'].'/'.$log_folder).' 2>/dev/null'); + $app->system->exec_safe('umount ? 2>/dev/null', $data['old']['document_root'].'/'.$log_folder); } } else { - //if($app->system->is_mounted($data['old']['document_root'].'/'.$log_folder)) exec('umount '.escapeshellarg($data['old']['document_root'].'/'.$log_folder)); - //exec('fuser -km '.escapeshellarg($data['old']['document_root'].'/'.$log_folder).' 2>/dev/null'); - exec('umount '.escapeshellarg($data['old']['document_root'].'/'.$log_folder).' 2>/dev/null'); + $app->system->exec_safe('umount ? 2>/dev/null', $data['old']['document_root'].'/'.$log_folder); } // remove letsencrypt if it exists (renew will always fail otherwise) @@ -2079,19 +2067,19 @@ class apache2_plugin { } else { //* This is a website // Deleting the vhost file, symlink and the data directory - $vhost_file = escapeshellcmd($web_config['vhost_conf_dir'].'/'.$data['old']['domain'].'.vhost'); + $vhost_file = $web_config['vhost_conf_dir'].'/'.$data['old']['domain'].'.vhost'; - $vhost_symlink = escapeshellcmd($web_config['vhost_conf_enabled_dir'].'/'.$data['old']['domain'].'.vhost'); + $vhost_symlink = $web_config['vhost_conf_enabled_dir'].'/'.$data['old']['domain'].'.vhost'; if(is_link($vhost_symlink)){ $app->system->unlink($vhost_symlink); $app->log('Removing symlink: '.$vhost_symlink.'->'.$vhost_file, LOGLEVEL_DEBUG); } - $vhost_symlink = escapeshellcmd($web_config['vhost_conf_enabled_dir'].'/900-'.$data['old']['domain'].'.vhost'); + $vhost_symlink = $web_config['vhost_conf_enabled_dir'].'/900-'.$data['old']['domain'].'.vhost'; if(is_link($vhost_symlink)){ $app->system->unlink($vhost_symlink); $app->log('Removing symlink: '.$vhost_symlink.'->'.$vhost_file, LOGLEVEL_DEBUG); } - $vhost_symlink = escapeshellcmd($web_config['vhost_conf_enabled_dir'].'/100-'.$data['old']['domain'].'.vhost'); + $vhost_symlink = $web_config['vhost_conf_enabled_dir'].'/100-'.$data['old']['domain'].'.vhost'; if(is_link($vhost_symlink)){ $app->system->unlink($vhost_symlink); $app->log('Removing symlink: '.$vhost_symlink.'->'.$vhost_file, LOGLEVEL_DEBUG); @@ -2101,11 +2089,11 @@ class apache2_plugin { $app->log('Removing vhost file: '.$vhost_file, LOGLEVEL_DEBUG); if($data['old']['type'] == 'vhost' || $data['old']['type'] == 'vhostsubdomain' || $data['old']['type'] == 'vhostalias') { - $docroot = escapeshellcmd($data['old']['document_root']); + $docroot = $data['old']['document_root']; if($docroot != '' && !stristr($docroot, '..')) { if($data['old']['type'] == 'vhost') { // this is a vhost - we delete everything in here. - exec('rm -rf '.$docroot); + $app->system->exec_safe('rm -rf ?', $docroot); } elseif(!stristr($data['old']['web_folder'], '..')) { // this is a vhost subdomain // IMPORTANT: do some folder checks before we delete this! @@ -2155,7 +2143,7 @@ class apache2_plugin { unset($used_paths); } - if($do_delete === true && $delete_folder !== '') exec('rm -rf '.$docroot.'/'.$delete_folder); + if($do_delete === true && $delete_folder !== '') $app->system->exec_safe('rm -rf ?', $docroot.'/'.$delete_folder); unset($delete_folder); unset($path_elements); @@ -2167,12 +2155,12 @@ class apache2_plugin { $fastcgi_starter_path = str_replace('[system_user]', $data['old']['system_user'], $fastcgi_config['fastcgi_starter_path']); if($data['old']['type'] == 'vhost') { if (is_dir($fastcgi_starter_path)) { - exec('rm -rf '.$fastcgi_starter_path); + $app->system->exec_safe('rm -rf ?', $fastcgi_starter_path); } } else { $fcgi_starter_script = $fastcgi_starter_path.$fastcgi_config['fastcgi_starter_script'].'_web'.$data['old']['domain_id']; if (file_exists($fcgi_starter_script)) { - exec('rm -f '.$fcgi_starter_script); + $app->system->exec_safe('rm -f ?', $fcgi_starter_script); } } } @@ -2192,12 +2180,12 @@ class apache2_plugin { $cgi_starter_path = str_replace('[system_user]', $data['old']['system_user'], $web_config['cgi_starter_path']); if($data['old']['type'] == 'vhost') { if (is_dir($cgi_starter_path)) { - exec('rm -rf '.$cgi_starter_path); + $app->system->exec_safe('rm -rf ?', $cgi_starter_path); } } else { $cgi_starter_script = $cgi_starter_path.'php-cgi-starter_web'.$data['old']['domain_id']; if (file_exists($cgi_starter_script)) { - exec('rm -f '.$cgi_starter_script); + $app->system->exec_safe('rm -f ?', $cgi_starter_script); } } } @@ -2226,16 +2214,15 @@ class apache2_plugin { } // Delete the log file directory - $vhost_logfile_dir = escapeshellcmd('/var/log/ispconfig/httpd/'.$data['old']['domain']); - if($data['old']['domain'] != '' && !stristr($vhost_logfile_dir, '..')) exec('rm -rf '.$vhost_logfile_dir); + $vhost_logfile_dir = '/var/log/ispconfig/httpd/'.$data['old']['domain']; + if($data['old']['domain'] != '' && !stristr($vhost_logfile_dir, '..')) $app->system->exec_safe('rm -rf ?', $vhost_logfile_dir); $app->log('Removing website logfile directory: '.$vhost_logfile_dir, LOGLEVEL_DEBUG); if($data['old']['type'] == 'vhost') { //delete the web user - $command = 'killall -u '.escapeshellcmd($data['old']['system_user']).' ; userdel'; - $command .= ' '.escapeshellcmd($data['old']['system_user']); - exec($command); - if($apache_chrooted) $app->system->_exec('chroot '.escapeshellcmd($web_config['website_basedir']).' '.$command); + $command = 'killall -u ? ; userdel ?'; + $app->system->exec_safe($command, $data['old']['system_user'], $data['old']['system_user']); + if($apache_chrooted) $app->system->exec_safe('chroot ? ?', $web_config['website_basedir'], $command); } @@ -2267,7 +2254,7 @@ class apache2_plugin { if($mount_backup){ $web_backup_dir = $backup_dir.'/web'.$data_old['domain_id']; //** do not use rm -rf $web_backup_dir because database(s) may exits - exec(escapeshellcmd('rm -f '.$web_backup_dir.'/web'.$data_old['domain_id'].'_').'*'); + $app->system->exec_safe('rm -f ?*', $web_backup_dir.'/web'.$data_old['domain_id'].'_'); //* cleanup database $sql = "DELETE FROM web_backup WHERE server_id = ? AND parent_domain_id = ? AND filename LIKE ?"; $app->db->query($sql, $conf['server_id'], $data_old['domain_id'], "web".$data_old['domain_id']."_%"); @@ -2322,7 +2309,7 @@ class apache2_plugin { $tpl->setLoop('ip_adresses', $records_out); } - $vhost_file = escapeshellcmd($web_config['vhost_conf_dir'].'/ispconfig.conf'); + $vhost_file = $web_config['vhost_conf_dir'].'/ispconfig.conf'; $app->system->file_put_contents($vhost_file, $tpl->grab()); $app->log('Writing the conf file: '.$vhost_file, LOGLEVEL_DEBUG); unset($tpl); @@ -2355,7 +2342,7 @@ class apache2_plugin { //* Get the folder path. if(substr($folder['path'], 0, 1) == '/') $folder['path'] = substr($folder['path'], 1); if(substr($folder['path'], -1) == '/') $folder['path'] = substr($folder['path'], 0, -1); - $folder_path = escapeshellcmd($website['document_root'].'/' . $web_folder . '/'.$folder['path']); + $folder_path = $website['document_root'].'/' . $web_folder . '/'.$folder['path']; if(substr($folder_path, -1) != '/') $folder_path .= '/'; //* Check if the resulting path is inside the docroot @@ -2501,7 +2488,7 @@ class apache2_plugin { if(substr($data['new']['path'], 0, 1) == '/') $data['new']['path'] = substr($data['new']['path'], 1); if(substr($data['new']['path'], -1) == '/') $data['new']['path'] = substr($data['new']['path'], 0, -1); - $new_folder_path = escapeshellcmd($website['document_root'].'/' . $web_folder . '/'.$data['new']['path']); + $new_folder_path = $website['document_root'].'/' . $web_folder . '/'.$data['new']['path']; if(substr($new_folder_path, -1) != '/') $new_folder_path .= '/'; //* Check if the resulting path is inside the docroot @@ -2681,8 +2668,6 @@ class apache2_plugin { /* * The webdav - Root needs the group/user as owner and the apache as read and write */ - //$app->system->_exec('chown ' . $user . ':' . $group . ' ' . escapeshellcmd($documentRoot . '/webdav/')); - //$app->system->_exec('chmod 770 ' . escapeshellcmd($documentRoot . '/webdav/')); $app->system->chown($documentRoot . '/webdav', $user); $app->system->chgrp($documentRoot . '/webdav', $group); $app->system->chmod($documentRoot . '/webdav', 0770); @@ -2691,8 +2676,6 @@ class apache2_plugin { * The webdav folder (not the webdav-root!) needs the same (not in ONE step, because the * pwd-files are owned by root) */ - //$app->system->_exec('chown ' . $user . ':' . $group . ' ' . escapeshellcmd($webdav_user_dir.' -R')); - //$app->system->_exec('chmod 770 ' . escapeshellcmd($webdav_user_dir.' -R')); $app->system->chown($webdav_user_dir, $user); $app->system->chgrp($webdav_user_dir, $group); $app->system->chmod($webdav_user_dir, 0770); @@ -2712,7 +2695,7 @@ class apache2_plugin { /* * Next step, patch the vhost - file */ - $vhost_file = escapeshellcmd($web_config['vhost_conf_dir'] . '/' . $domain . '.vhost'); + $vhost_file = $web_config['vhost_conf_dir'] . '/' . $domain . '.vhost'; $this->_patchVhostWebdav($vhost_file, $documentRoot . '/webdav'); /* @@ -2744,7 +2727,7 @@ class apache2_plugin { /* * Next step, patch the vhost - file */ - $vhost_file = escapeshellcmd($web_config['vhost_conf_dir'] . '/' . $domain . '.vhost'); + $vhost_file = $web_config['vhost_conf_dir'] . '/' . $domain . '.vhost'; $this->_patchVhostWebdav($vhost_file, $documentRoot . '/webdav'); /* @@ -3004,9 +2987,9 @@ class apache2_plugin { $content = str_replace('{SYSTEM_USER}', $data['new']['system_user'], $content); file_put_contents('/etc/init.d/hhvm_' . $data['new']['system_user'], $content); - exec('chmod +x /etc/init.d/hhvm_' . $data['new']['system_user'] . ' >/dev/null 2>&1'); - exec('/usr/sbin/update-rc.d hhvm_' . $data['new']['system_user'] . ' defaults >/dev/null 2>&1'); - exec('/etc/init.d/hhvm_' . $data['new']['system_user'] . ' restart >/dev/null 2>&1'); + $app->system->exec_safe('chmod +x ? >/dev/null 2>&1', '/etc/init.d/hhvm_' . $data['new']['system_user']); + $app->system->exec_safe('/usr/sbin/update-rc.d ? defaults >/dev/null 2>&1', 'hhvm_' . $data['new']['system_user']); + $app->system->exec_safe('? restart >/dev/null 2>&1', '/etc/init.d/hhvm_' . $data['new']['system_user']); if(is_dir('/etc/monit/conf.d')){ $monit_content = str_replace('{SYSTEM_USER}', $data['new']['system_user'], $monit_content); @@ -3017,8 +3000,8 @@ class apache2_plugin { } elseif($data['new']['php'] != 'hhvm' && $data['old']['php'] == 'hhvm') { if($data['old']['system_user'] != ''){ - exec('/etc/init.d/hhvm_' . $data['old']['system_user'] . ' stop >/dev/null 2>&1'); - exec('/usr/sbin/update-rc.d hhvm_' . $data['old']['system_user'] . ' remove >/dev/null 2>&1'); + $app->system->exec_safe('? stop >/dev/null 2>&1', '/etc/init.d/hhvm_' . $data['old']['system_user']); + $app->system->exec_safe('/usr/sbin/update-rc.d ? remove >/dev/null 2>&1', 'hhvm_' . $data['old']['system_user']); unlink('/etc/init.d/hhvm_' . $data['old']['system_user']); if(is_file('/etc/hhvm/'.$data['old']['system_user'].'.ini')) unlink('/etc/hhvm/'.$data['old']['system_user'].'.ini'); } @@ -3117,7 +3100,7 @@ class apache2_plugin { $tpl->setVar('document_root', $data['new']['document_root']); $tpl->setVar('security_level', $web_config['security_level']); $tpl->setVar('domain', $data['new']['domain']); - $php_open_basedir = ($data['new']['php_open_basedir'] == '')?escapeshellcmd($data['new']['document_root']):escapeshellcmd($data['new']['php_open_basedir']); + $php_open_basedir = ($data['new']['php_open_basedir'] == '')?$data['new']['document_root']:$data['new']['php_open_basedir']; $tpl->setVar('php_open_basedir', $php_open_basedir); if($php_open_basedir != ''){ $tpl->setVar('enable_php_open_basedir', ''); @@ -3204,7 +3187,7 @@ class apache2_plugin { unset($tpl); // delete pool in all other PHP versions - $default_pool_dir = trim(escapeshellcmd($web_config['php_fpm_pool_dir'])); + $default_pool_dir = trim($web_config['php_fpm_pool_dir']); if(substr($default_pool_dir, -1) != '/') $default_pool_dir .= '/'; if($default_pool_dir != $pool_dir){ if ( @is_file($default_pool_dir.$pool_name.'.conf') ) { @@ -3258,7 +3241,7 @@ class apache2_plugin { } if($default_php_fpm){ - $pool_dir = escapeshellcmd($web_config['php_fpm_pool_dir']); + $pool_dir = $web_config['php_fpm_pool_dir']; } else { $pool_dir = $custom_php_fpm_pool_dir; } @@ -3275,7 +3258,7 @@ class apache2_plugin { } // delete pool in all other PHP versions - $default_pool_dir = trim(escapeshellcmd($web_config['php_fpm_pool_dir'])); + $default_pool_dir = trim($web_config['php_fpm_pool_dir']); if(substr($default_pool_dir, -1) != '/') $default_pool_dir .= '/'; if($default_pool_dir != $pool_dir){ if ( @is_file($default_pool_dir.$pool_name.'.conf') ) { @@ -3335,7 +3318,7 @@ class apache2_plugin { } if($app->system->is_group('client'.$client_id)){ - $app->system->_exec('groupdel client'.$client_id); + $app->system->exec_safe('groupdel ?', 'client'.$client_id); $app->log('Removed group client'.$client_id, LOGLEVEL_DEBUG); } } diff --git a/server/plugins-available/apps_vhost_plugin.inc.php b/server/plugins-available/apps_vhost_plugin.inc.php index 41e3cdd82..ea2359d60 100644 --- a/server/plugins-available/apps_vhost_plugin.inc.php +++ b/server/plugins-available/apps_vhost_plugin.inc.php @@ -121,7 +121,7 @@ class apps_vhost_plugin { $app->system->file_put_contents("$vhost_conf_dir/apps.vhost", $content); // enabled / disable apps-vhost - $vhost_symlink = escapeshellcmd($web_config['vhost_conf_enabled_dir'].'/000-apps.vhost'); + $vhost_symlink = $web_config['vhost_conf_enabled_dir'].'/000-apps.vhost'; if(is_link($vhost_symlink) && $web_config['apps_vhost_enabled'] == 'n') { $app->system->unlink($vhost_symlink); } @@ -207,7 +207,7 @@ class apps_vhost_plugin { file_put_contents("$vhost_conf_dir/apps.vhost", $content); // enabled / disable apps-vhost - $vhost_symlink = escapeshellcmd($web_config['vhost_conf_enabled_dir'].'/000-apps.vhost'); + $vhost_symlink = $web_config['vhost_conf_enabled_dir'].'/000-apps.vhost'; if(is_link($vhost_symlink) && $web_config['apps_vhost_enabled'] == 'n') { $app->system->unlink($vhost_symlink); } diff --git a/server/plugins-available/backup_plugin.inc.php b/server/plugins-available/backup_plugin.inc.php index 6ce8c9893..3308289d4 100644 --- a/server/plugins-available/backup_plugin.inc.php +++ b/server/plugins-available/backup_plugin.inc.php @@ -104,13 +104,13 @@ class backup_plugin { // extract tar.gz archive $dump_directory = str_replace(".tar.gz", "", $backup['filename']); $extracted = "/usr/local/ispconfig/server/temp"; - exec("tar -xzvf ".escapeshellarg($backup_dir.'/'.$backup['filename'])." --directory=".escapeshellarg($extracted)); + $app->system->exec_safe("tar -xzvf ? --directory=?", $backup_dir.'/'.$backup['filename'], $extracted); $restore_directory = $extracted."/".$dump_directory."/".$db_name; // mongorestore -h 127.0.0.1 -u root -p 123456 --authenticationDatabase admin -d c1debug --drop ./toRestore - $command = "mongorestore -h 127.0.0.1 --port 27017 -u root -p 123456 --authenticationDatabase admin -d ".$db_name." --drop ".escapeshellarg($restore_directory); - exec($command); - exec("rm -rf ".escapeshellarg($extracted."/".$dump_directory)); + $command = "mongorestore -h 127.0.0.1 --port 27017 -u root -p 123456 --authenticationDatabase admin -d ? --drop ?"; + $app->system->exec_safe($command, $db_name, $restore_directory); + $app->system->exec_safe("rm -rf ?", $extracted."/".$dump_directory); } unset($clientdb_host); @@ -129,8 +129,8 @@ class backup_plugin { //$db_name = $parts[1]; preg_match('@^db_(.+)_\d{4}-\d{2}-\d{2}_\d{2}-\d{2}\.sql\.gz$@', $backup['filename'], $matches); $db_name = $matches[1]; - $command = "gunzip --stdout ".escapeshellarg($backup_dir.'/'.$backup['filename'])." | mysql -h ".escapeshellarg($clientdb_host)." -u ".escapeshellarg($clientdb_user)." -p".escapeshellarg($clientdb_password)." ".escapeshellarg($db_name); - exec($command); + $command = "gunzip --stdout ? | mysql -h ? -u ? -p? ?"; + $app->system->exec_safe($command, $backup_dir.'/'.$backup['filename'], $clientdb_host, $clientdb_user, $clientdb_password, $db_name); } unset($clientdb_host); unset($clientdb_user); @@ -147,8 +147,8 @@ class backup_plugin { copy($backup_dir.'/'.$backup['filename'], $web['document_root'].'/backup/'.$backup['filename']); chgrp($web['document_root'].'/backup/'.$backup['filename'], $web['system_group']); //chown($web['document_root'].'/backup/'.$backup['filename'],$web['system_user']); - $command = 'sudo -u '.escapeshellarg($web['system_user']).' unzip -qq -o '.escapeshellarg($web['document_root'].'/backup/'.$backup['filename']).' -d '.escapeshellarg($web['document_root']).' 2> /dev/null'; - exec($command); + $command = 'sudo -u ? unzip -qq -o ? -d ? 2> /dev/null'; + $app->system->exec_safe($command, $web['system_user'], $web['document_root'].'/backup/'.$backup['filename'], $web['document_root']); unlink($web['document_root'].'/backup/'.$backup['filename']); if(file_exists($web['document_root'].'/backup/'.$backup['filename'].'.bak')) rename($web['document_root'].'/backup/'.$backup['filename'].'.bak', $web['document_root'].'/backup/'.$backup['filename']); $app->log('Restored Web backup '.$backup_dir.'/'.$backup['filename'], LOGLEVEL_DEBUG); @@ -156,8 +156,8 @@ class backup_plugin { } if($backup['backup_mode'] == 'rootgz') { if(file_exists($backup_dir.'/'.$backup['filename']) && $web['document_root'] != '' && $web['document_root'] != '/' && !stristr($backup_dir.'/'.$backup['filename'], '..') && !stristr($backup_dir.'/'.$backup['filename'], 'etc')) { - $command = 'tar xzf '.escapeshellarg($backup_dir.'/'.$backup['filename']).' --directory '.escapeshellarg($web['document_root']); - exec($command); + $command = 'tar xzf ? --directory ?'; + $app->system->exec_safe($command, $backup_dir.'/'.$backup['filename'], $web['document_root']); $app->log('Restored Web backup '.$backup_dir.'/'.$backup['filename'], LOGLEVEL_DEBUG); } } @@ -237,22 +237,24 @@ class backup_plugin { if($mail_backup['backup_mode'] == 'userzip') { copy($mail_backup_file, $record['maildir'].'/'.$mail_backup['filename']); chgrp($record['maildir'].'/'.$mail_backup['filename'], $mail_config['mailuser_group']); - $command = 'sudo -u '.$mail_config['mailuser_name'].' unzip -qq -o '.escapeshellarg($record['maildir'].'/'.$mail_backup['filename']).' -d '.escapeshellarg($record['maildir']).' 2> /dev/null'; - exec($command,$tmp_output, $retval); + $command = 'sudo -u ? unzip -qq -o ? -d ? 2> /dev/null'; + $app->system->exec_safe($command, $mail_config['mailuser_name'], $record['maildir'].'/'.$mail_backup['filename'], $record['maildir']); + $retval = $app->system->last_exec_retcode(); unlink($record['maildir'].'/'.$mail_backup['filename']); - } - if($mail_backup['backup_mode'] == 'rootgz') { - $command='tar xfz '.escapeshellarg($mail_backup_file).' --directory '.escapeshellarg($record['maildir']); - exec($command,$tmp_output, $retval); + } elseif($mail_backup['backup_mode'] == 'rootgz') { + $command='tar xfz ? --directory ?'; + $app->system->exec_safe($command, $mail_backup_file, $record['maildir']); + $retval = $app->system->last_exec_retcode(); } if($retval == 0) { // Now import backup-mailbox into special backup-folder $backupname = "backup-".date("Y-m-d", $mail_backup['tstamp']); - exec("doveadm mailbox create -u \"".$record["email"]."\" $backupname"); - exec("doveadm import -u \"".$record["email"]."\" mdbox:".$record['maildir']."/backup $backupname all", $tmp_output, $retval); - exec("for f in `doveadm mailbox list -u \"".$record["email"]."\" $backupname*`; do doveadm mailbox subscribe -u \"".$record["email"]."\" \$f; done", $tmp_output, $retval); - exec('rm -rf '.$record['maildir'].'/backup'); + $app->system->exec_safe("doveadm mailbox create -u ? ?", $record["email"], $backupname); + $app->system->exec_safe("doveadm import -u ? mdbox:? ? all", $record["email"], $record['maildir']."/backup", $backupname); + $app->system->exec_safe("for f in `doveadm mailbox list -u ? ?*`; do doveadm mailbox subscribe -u ? \$f; done", $record["email"], $backupname, $record["email"]); + $retval = $app->system->last_exec_retcode(); + $app->system->exec_safe('rm -rf ?', $record['maildir'].'/backup'); } if($retval == 0){ @@ -260,7 +262,7 @@ class backup_plugin { } else { // cleanup if (file_exists($record['maildir'].'/'.$mail_backup['filename'])) unlink($record['maildir'].'/'.$mail_backup['filename']); - if (file_exists($record['maildir']."/backup")) exec('rm -rf '.$record['maildir']."/backup"); + if (file_exists($record['maildir']."/backup")) $app->system->exec_safe('rm -rf ?', $record['maildir']."/backup"); $app->log('Unable to restore Mail backup '.$mail_backup_file.' '.$tmp_output,LOGLEVEL_ERROR); } @@ -269,8 +271,10 @@ class backup_plugin { if($mail_backup['backup_mode'] == 'userzip') { copy($mail_backup_file, $domain_dir.'/'.$mail_backup['filename']); chgrp($domain_dir.'/'.$mail_backup['filename'], $mail_config['mailuser_group']); - $command = 'sudo -u '.$mail_config['mailuser_name'].' unzip -qq -o '.escapeshellarg($domain_dir.'/'.$mail_backup['filename']).' -d '.escapeshellarg($domain_dir).' 2> /dev/null'; - exec($command,$tmp_output, $retval); + $command = 'sudo -u ? unzip -qq -o ? -d ? 2> /dev/null'; + $app->system->exec_safe($command, $mail_config['mailuser_name'], $domain_dir.'/'.$mail_backup['filename'], $domain_dir); + $retval = $app->system->last_exec_retcode(); + $tmp_output = $app->system->last_exec_out(); unlink($domain_dir.'/'.$mail_backup['filename']); if($retval == 0){ $app->log('Restored Mail backup '.$mail_backup_file,LOGLEVEL_DEBUG); @@ -279,8 +283,10 @@ class backup_plugin { } } if($mail_backup['backup_mode'] == 'rootgz') { - $command='tar xfz '.escapeshellarg($mail_backup_file).' --directory '.escapeshellarg($domain_dir); - exec($command,$tmp_output, $retval); + $command='tar xfz ? --directory ?'; + $app->system->exec_safe($command, $mail_backup_file, $domain_dir); + $retval = $app->system->last_exec_retcode(); + $tmp_output = $app->system->last_exec_out(); if($retval == 0){ $app->log('Restored Mail backup '.$mail_backup_file,LOGLEVEL_DEBUG); } else { diff --git a/server/plugins-available/bind_plugin.inc.php b/server/plugins-available/bind_plugin.inc.php index edf7b93d9..29d841ef8 100644 --- a/server/plugins-available/bind_plugin.inc.php +++ b/server/plugins-available/bind_plugin.inc.php @@ -114,9 +114,7 @@ class bind_plugin { } //Do some magic... - exec('cd '.escapeshellcmd($dns_config['bind_zonefiles_dir']).';'. - 'dnssec-keygen -a NSEC3RSASHA1 -b 2048 -n ZONE '.escapeshellcmd($domain).';'. - 'dnssec-keygen -f KSK -a NSEC3RSASHA1 -b 4096 -n ZONE '.escapeshellcmd($domain)); + $app->system->exec_safe('cd ?; dnssec-keygen -a NSEC3RSASHA1 -b 2048 -n ZONE ?; dnssec-keygen -f KSK -a NSEC3RSASHA1 -b 4096 -n ZONE ?', $dns_config['bind_zonefiles_dir'], $domain, $domain); $this->soa_dnssec_sign($data); //Now sign the zone for the first time $data['new']['dnssec_initialized']='Y'; @@ -148,8 +146,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 - exec('cd '.escapeshellcmd($dns_config['bind_zonefiles_dir']).';'. - 'dnssec-signzone -A -e +1382400 -3 $(head -c 1000 /dev/random | sha1sum | cut -b 1-16) -N increment -o '.escapeshellcmd($domain).' -t '.$filespre.escapeshellcmd($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 ? -t ?', $dns_config['bind_zonefiles_dir'], $domain, $filespre.$domain); //Write Data back ino DB $dnssecdata = "DS-Records:\n".file_get_contents($dns_config['bind_zonefiles_dir'].'/dsset-'.$domain.'.'); @@ -187,8 +184,8 @@ class bind_plugin { if (!$new && !file_exists($dns_config['bind_zonefiles_dir'].'/dsset-'.$domain.'.')) $this->soa_dnssec_create($data); $dbdata = $app->db->queryOneRecord('SELECT id,serial FROM dns_soa WHERE id=?', intval($data['new']['id'])); - exec('cd '.escapeshellcmd($dns_config['bind_zonefiles_dir']).';'. - 'named-checkzone '.escapeshellcmd($domain).' '.escapeshellcmd($dns_config['bind_zonefiles_dir']).'/'.$filespre.escapeshellcmd($domain).' | egrep -ho \'[0-9]{10}\'', $serial, $retState); + $app->system->exec_safe('cd ?; named-checkzone ? ? | egrep -ho \'[0-9]{10}\'', $dns_config['bind_zonefiles_dir'], $domain, $dns_config['bind_zonefiles_dir'].'/'.$filespre.$domain); + $retState = $app->system->last_exec_retcode(); if ($retState != 0) { $app->log('DNSSEC Error: Error in Zonefile for '.$domain, LOGLEVEL_ERR); return false; @@ -283,20 +280,22 @@ class bind_plugin { //TODO : change this when distribution information has been integrated into server record if (file_exists('/etc/gentoo-release')) { - $filename = escapeshellcmd($dns_config['bind_zonefiles_dir'].'/pri/'.str_replace("/", "_", substr($zone['origin'], 0, -1))); + $filename = $dns_config['bind_zonefiles_dir'].'/pri/'.str_replace("/", "_", substr($zone['origin'], 0, -1)); } else { - $filename = escapeshellcmd($dns_config['bind_zonefiles_dir'].'/pri.'.str_replace("/", "_", substr($zone['origin'], 0, -1))); + $filename = $dns_config['bind_zonefiles_dir'].'/pri.'.str_replace("/", "_", substr($zone['origin'], 0, -1)); } $old_zonefile = @file_get_contents($filename); file_put_contents($filename, $tpl->grab()); - chown($filename, escapeshellcmd($dns_config['bind_user'])); - chgrp($filename, escapeshellcmd($dns_config['bind_group'])); + chown($filename, $dns_config['bind_user']); + chgrp($filename, $dns_config['bind_group']); //* Check the zonefile if(is_file($filename.'.err')) unlink($filename.'.err'); - exec('named-checkzone '.escapeshellarg($zone['origin']).' '.escapeshellarg($filename), $out, $return_status); + $app->system->exec_safe('named-checkzone ? ?', $zone['origin'], $filename); + $out = $app->system->last_exec_out(); + $return_status = $app->system->last_exec_retcode(); if($return_status === 0) { $app->log("Writing BIND domain file: ".$filename, LOGLEVEL_DEBUG); } else { @@ -309,8 +308,8 @@ class bind_plugin { if ($old_zonefile != '') { rename($filename, $filename.'.err'); file_put_contents($filename, $old_zonefile); - chown($filename, escapeshellcmd($dns_config['bind_user'])); - chgrp($filename, escapeshellcmd($dns_config['bind_group'])); + chown($filename, $dns_config['bind_user']); + chgrp($filename, $dns_config['bind_group']); } else { rename($filename, $filename.'.err'); } @@ -392,7 +391,10 @@ class bind_plugin { $app->log("Deleting BIND domain file: ".$zone_file_name, LOGLEVEL_DEBUG); //* DNSSEC-Implementation - if ($data['old']['dnssec_initialized'] == 'Y') exec('/usr/local/ispconfig/server/scripts/dnssec-delete.sh '.$data['old']['origin']); //delete keys + if($data['old']['dnssec_initialized'] == 'Y') { + //delete keys + $app->system->exec_safe('/usr/local/ispconfig/server/scripts/dnssec-delete.sh ?', $data['old']['origin']); + } //* Reload bind nameserver $app->services->restartServiceDelayed('bind', 'reload'); @@ -582,11 +584,6 @@ class bind_plugin { 'zonefile_path' => $sec_zonefiles_path.str_replace("/", "_", substr($tmp['origin'], 0, -1)), 'options' => $options ); - - // $filename = escapeshellcmd($dns_config['bind_zonefiles_dir'].'/slave/sec.'.substr($tmp['origin'],0,-1)); - // $app->log("Writing BIND domain file: ".$filename,LOGLEVEL_DEBUG); - - } $tpl_sec = new tpl(); diff --git a/server/plugins-available/cron_jailkit_plugin.inc.php b/server/plugins-available/cron_jailkit_plugin.inc.php index c652f299e..f8f664044 100644 --- a/server/plugins-available/cron_jailkit_plugin.inc.php +++ b/server/plugins-available/cron_jailkit_plugin.inc.php @@ -103,20 +103,6 @@ class cron_jailkit_plugin { if ($data['new']['type'] == "chrooted") { // load the server configuration options - /* - $app->uses("getconf"); - $this->data = $data; - $this->app = $app; - $this->jailkit_config = $app->getconf->get_server_config($conf["server_id"], 'jailkit'); - $this->parent_domain = $parent_domain; - - $this->_setup_jailkit_chroot(); - - //$command .= 'usermod -U '.escapeshellcmd($parent_domain['system_user']); - //exec($command); - - $this->_add_jailkit_user(); - */ $app->uses("getconf"); $this->data = $data; $this->app = $app; @@ -130,8 +116,8 @@ class cron_jailkit_plugin { $this->_add_jailkit_user(); - $command .= 'usermod -U '.escapeshellcmd($parent_domain["system_user"]).' 2>/dev/null'; - exec($command); + $command .= 'usermod -U ? 2>/dev/null'; + $app->system->exec_safe($command, $parent_domain["system_user"]); $this->_update_website_security_level(); @@ -231,14 +217,12 @@ class cron_jailkit_plugin { if (!is_dir($this->parent_domain['document_root'].'/etc/jailkit')) { $command = '/usr/local/ispconfig/server/scripts/create_jailkit_chroot.sh'; - $command .= ' '.escapeshellcmd($this->parent_domain['document_root']); - $command .= ' \''.$this->jailkit_config['jailkit_chroot_app_sections'].'\''; - exec($command.' 2>/dev/null'); + $command .= ' ?'; + $command .= ' ?'; + $app->system->exec_safe($command.' 2>/dev/null', $this->parent_domain['document_root'], $this->jailkit_config['jailkit_chroot_app_sections']); $this->app->log("Added jailkit chroot with command: ".$command, LOGLEVEL_DEBUG); - //$this->_add_jailkit_programs(); // done later on - $this->app->load('tpl'); $tpl = new tpl(); @@ -248,7 +232,7 @@ class cron_jailkit_plugin { $tpl->setVar('domain', $this->parent_domain['domain']); $tpl->setVar('home_dir', $this->_get_home_dir("")); - $bashrc = escapeshellcmd($this->parent_domain['document_root']).'/etc/bash.bashrc'; + $bashrc = $this->parent_domain['document_root'].'/etc/bash.bashrc'; if(@is_file($bashrc) || @is_link($bashrc)) unlink($bashrc); $app->system->file_put_contents($bashrc, $tpl->grab()); @@ -261,7 +245,7 @@ class cron_jailkit_plugin { $tpl->setVar('domain', $this->parent_domain['domain']); - $motd = escapeshellcmd($this->parent_domain['document_root']).'/var/run/motd'; + $motd = $this->parent_domain['document_root'].'/var/run/motd'; if(@is_file($motd) || @is_link($motd)) unlink($motd); $app->system->file_put_contents($motd, $tpl->grab()); @@ -276,16 +260,16 @@ class cron_jailkit_plugin { //copy over further programs and its libraries $command = '/usr/local/ispconfig/server/scripts/create_jailkit_programs.sh'; - $command .= ' '.escapeshellcmd($this->parent_domain['document_root']); - $command .= ' \''.$this->jailkit_config['jailkit_chroot_app_programs'].'\''; - exec($command.' 2>/dev/null'); + $command .= ' ?'; + $command .= ' ?'; + $app->system->exec_safe($command.' 2>/dev/null', $this->parent_domain['document_root'], $this->jailkit_config['jailkit_chroot_app_programs']); $this->app->log("Added programs to jailkit chroot with command: ".$command, LOGLEVEL_DEBUG); $command = '/usr/local/ispconfig/server/scripts/create_jailkit_programs.sh'; - $command .= ' '.escapeshellcmd($this->parent_domain['document_root']); - $command .= ' \''.$this->jailkit_config['jailkit_chroot_cron_programs'].'\''; - exec($command.' 2>/dev/null'); + $command .= ' ?'; + $command .= ' ?'; + $app->system->exec_safe($command.' 2>/dev/null', $this->parent_domain['document_root'], $this->jailkit_config['jailkit_chroot_cron_programs']); $this->app->log("Added cron programs to jailkit chroot with command: ".$command, LOGLEVEL_DEBUG); } @@ -298,30 +282,30 @@ class cron_jailkit_plugin { $jailkit_chroot_userhome = $this->_get_home_dir($this->parent_domain['system_user']); if(!is_dir($this->parent_domain['document_root'].'/etc')) mkdir($this->parent_domain['document_root'].'/etc'); - if(!is_file($this->parent_domain['document_root'].'/etc/passwd')) exec('touch '.$this->parent_domain['document_root'].'/etc/passwd'); + if(!is_file($this->parent_domain['document_root'].'/etc/passwd')) $app->system->exec_safe('touch ?', $this->parent_domain['document_root'].'/etc/passwd'); // IMPORTANT! // ALWAYS create the user. Even if the user was created before // if we check if the user exists, then a update (no shell -> jailkit) will not work // and the user has FULL ACCESS to the root of the server! $command = '/usr/local/ispconfig/server/scripts/create_jailkit_user.sh'; - $command .= ' '.escapeshellcmd($this->parent_domain['system_user']); - $command .= ' '.escapeshellcmd($this->parent_domain['document_root']); - $command .= ' '.$jailkit_chroot_userhome; - $command .= ' '.escapeshellcmd("/bin/bash"); - exec($command.' 2>/dev/null'); + $command .= ' ?'; + $command .= ' ?'; + $command .= ' ?'; + $command .= ' /bin/bash'; + $app->system->exec_safe($command.' 2>/dev/null', $this->parent_domain['system_user'], $this->parent_domain['document_root'], $jailkit_chroot_userhome); $this->app->log("Added jailkit user to chroot with command: ".$command, LOGLEVEL_DEBUG); - $app->system->mkdir(escapeshellcmd($this->parent_domain['document_root'].$jailkit_chroot_userhome), 0755, true); - $app->system->chown(escapeshellcmd($this->parent_domain['document_root'].$jailkit_chroot_userhome), escapeshellcmd($this->parent_domain['system_user'])); - $app->system->chgrp(escapeshellcmd($this->parent_domain['document_root'].$jailkit_chroot_userhome), escapeshellcmd($this->parent_domain['system_group'])); + $app->system->mkdir($this->parent_domain['document_root'].$jailkit_chroot_userhome, 0755, true); + $app->system->chown($this->parent_domain['document_root'].$jailkit_chroot_userhome, $this->parent_domain['system_user']); + $app->system->chgrp($this->parent_domain['document_root'].$jailkit_chroot_userhome, $this->parent_domain['system_group']); } function _get_home_dir($username) { - return str_replace("[username]", escapeshellcmd($username), $this->jailkit_config["jailkit_chroot_home"]); + return str_replace("[username]", $username, $this->jailkit_config["jailkit_chroot_home"]); } //* Update the website root directory permissions depending on the security level @@ -345,15 +329,5 @@ class cron_jailkit_plugin { } } - //* Wrapper for exec function for easier debugging - private function _exec($command) { - global $app; - $app->log('exec: '.$command, LOGLEVEL_DEBUG); - exec($command); - } - - - } // end class -?> diff --git a/server/plugins-available/cron_plugin.inc.php b/server/plugins-available/cron_plugin.inc.php index fb623b921..af4e24d97 100644 --- a/server/plugins-available/cron_plugin.inc.php +++ b/server/plugins-available/cron_plugin.inc.php @@ -112,15 +112,15 @@ class cron_plugin { // Create group and user, if not exist $app->uses("system"); - $groupname = escapeshellcmd($parent_domain["system_group"]); + $groupname = $parent_domain["system_group"]; if($parent_domain["system_group"] != '' && !$app->system->is_group($parent_domain["system_group"])) { - exec("groupadd $groupname"); + $app->system->exec_safe("groupadd ?", $groupname); $app->log("Adding the group: $groupname", LOGLEVEL_DEBUG); } - $username = escapeshellcmd($parent_domain["system_user"]); + $username = $parent_domain["system_user"]; if($parent_domain["system_user"] != '' && !$app->system->is_user($parent_domain["system_user"])) { - exec("useradd -d ".escapeshellcmd($parent_domain["document_root"])." -g $groupname $username -s /bin/false"); + $app->system->exec_safe("useradd -d ? -g ? ? -s /bin/false", $parent_domain["document_root"], $groupname, $username); $app->log("Adding the user: $username", LOGLEVEL_DEBUG); } @@ -136,19 +136,19 @@ class cron_plugin { } // get the primitive folder for document_root and the filesystem, will need it later. - $df_output=explode(" ", exec("df -T " . escapeshellarg($parent_domain["document_root"]) . "|awk 'END{print \$2,\$NF}'")); + $df_output=explode(" ", $app->system->exec_safe("df -T ?|awk 'END{print \$2,\$NF}'", $parent_domain["document_root"])); $file_system = $df_output[0]; $primitive_root = $df_output[1]; if ( in_array($file_system , array('ext2','ext3','ext4'),true) ) { - exec('setquota -u '. $username . ' ' . $blocks_soft . ' ' . $blocks_hard . ' 0 0 -a &> /dev/null'); - exec('setquota -T -u '.$username.' 604800 604800 -a &> /dev/null'); + $app->system->exec_safe('setquota -u ? ? ? 0 0 -a &> /dev/null', $username, $blocks_soft, $blocks_hard); + $app->system->exec_safe('setquota -T -u ? 604800 604800 -a &> /dev/null', $username); } elseif ($file_system == 'xfs') { - exec("xfs_quota -x -c 'limit -u bsoft=$mb_soft" . 'm'. " bhard=$mb_hard" . 'm'. " $username' $primitive_root"); + $app->system->exec_safe("xfs_quota -x -c ? ?", "limit -u bsoft=$mb_soft" . 'm'. " bhard=$mb_hard" . 'm'. " $username", $primitive_root); // xfs only supports timers globally, not per user. - exec("xfs_quota -x -c 'timer -bir -i 604800' $primitive_root"); + $app->system->exec_safe("xfs_quota -x -c 'timer -bir -i 604800' ?", $primitive_root); unset($project_uid, $username_position, $xfs_projects); unset($primitive_root, $df_output, $mb_hard, $mb_soft); @@ -164,7 +164,7 @@ class cron_plugin { } // make temp directory writable for the apache and website users - $app->system->chmod(escapeshellcmd($parent_domain["document_root"].'/tmp'), 0777); + $app->system->chmod($parent_domain["document_root"].'/tmp', 0777); /** TODO READ CRON MASTER **/ @@ -272,7 +272,7 @@ class cron_plugin { } } - $cron_file = escapeshellcmd($cron_config["crontab_dir"].'/ispc_'.$this->parent_domain["system_user"]); + $cron_file = $cron_config["crontab_dir"].'/ispc_'.$this->parent_domain["system_user"]; //TODO : change this when distribution information has been integrated into server record //* Gentoo vixie-cron requires files to end with .cron in the cron.d directory if (file_exists('/etc/gentoo-release')) { @@ -287,7 +287,7 @@ class cron_plugin { $app->log("Deleted Cron file $cron_file", LOGLEVEL_DEBUG); } - $cron_file = escapeshellcmd($cron_config["crontab_dir"].'/ispc_chrooted_'.$this->parent_domain["system_user"]); + $cron_file = $cron_config["crontab_dir"].'/ispc_chrooted_'.$this->parent_domain["system_user"]; if($chr_cmd_count > 0) { $app->system->file_put_contents($cron_file, $chr_cron_content); $app->log("Wrote Cron file $cron_file with content:\n$chr_cron_content", LOGLEVEL_DEBUG); diff --git a/server/plugins-available/firewall_plugin.inc.php b/server/plugins-available/firewall_plugin.inc.php index 67ed2379f..b924f43a2 100644 --- a/server/plugins-available/firewall_plugin.inc.php +++ b/server/plugins-available/firewall_plugin.inc.php @@ -145,7 +145,7 @@ class firewall_plugin { //* add tcp ports foreach($tcp_ports_new_array as $port) { if(!in_array($port, $tcp_ports_old_array) && $port > 0) { - exec('ufw allow '.$port.'/tcp'); + $app->system->exec_safe('ufw allow ?', $port.'/tcp'); $app->log('ufw allow '.$port.'/tcp', LOGLEVEL_DEBUG); sleep(1); } @@ -154,7 +154,7 @@ class firewall_plugin { //* remove tcp ports foreach($tcp_ports_old_array as $port) { if(!in_array($port, $tcp_ports_new_array) && $port > 0) { - exec('ufw delete allow '.$port.'/tcp'); + $app->system->exec_safe('ufw delete allow ?', $port.'/tcp'); $app->log('ufw delete allow '.$port.'/tcp', LOGLEVEL_DEBUG); sleep(1); } @@ -163,7 +163,7 @@ class firewall_plugin { //* add udp ports foreach($udp_ports_new_array as $port) { if(!in_array($port, $udp_ports_old_array) && $port > 0) { - exec('ufw allow '.$port.'/udp'); + $app->system->exec_safe('ufw allow ?', $port.'/udp'); $app->log('ufw allow '.$port.'/udp', LOGLEVEL_DEBUG); sleep(1); } @@ -172,32 +172,12 @@ class firewall_plugin { //* remove udp ports foreach($udp_ports_old_array as $port) { if(!in_array($port, $udp_ports_new_array) && $port > 0) { - exec('ufw delete allow '.$port.'/udp'); + $app->system->exec_safe('ufw delete allow ?', $port.'/udp'); $app->log('ufw delete allow '.$port.'/udp', LOGLEVEL_DEBUG); sleep(1); } } - /* - if($tcp_ports_new != $tcp_ports_old) { - exec('ufw allow to any proto tcp port '.$tcp_ports_new); - $app->log('ufw allow to any proto tcp port '.$tcp_ports_new,LOGLEVEL_DEBUG); - if($event_name == 'firewall_update') { - exec('ufw delete allow to any proto tcp port '.$tcp_ports_old); - $app->log('ufw delete allow to any proto tcp port '.$tcp_ports_old,LOGLEVEL_DEBUG); - } - } - - if($udp_ports_new != $udp_ports_old) { - exec('ufw allow to any proto udp port '.$udp_ports_new); - $app->log('ufw allow to any proto udp port '.$udp_ports_new,LOGLEVEL_DEBUG); - if($event_name == 'firewall_update') { - exec('ufw delete allow to any proto udp port '.$udp_ports_old); - $app->log('ufw delete allow to any proto udp port '.$udp_ports_old,LOGLEVEL_DEBUG); - } - } - */ - if($data['new']['active'] == 'y') { if($data['new']['active'] == $data['old']['active']) { exec('ufw reload'); diff --git a/server/plugins-available/getmail_plugin.inc.php b/server/plugins-available/getmail_plugin.inc.php index a4481037f..c3f4f7e1d 100644 --- a/server/plugins-available/getmail_plugin.inc.php +++ b/server/plugins-available/getmail_plugin.inc.php @@ -94,7 +94,7 @@ class getmail_plugin { $this->delete($event_name, $data); // Get the new config file path - $config_file_path = escapeshellcmd($this->getmail_config_dir.'/'.$this->_clean_path($data["new"]["source_server"]).'_'.$this->_clean_path($data["new"]["source_username"]).'.conf'); + $config_file_path = $this->getmail_config_dir.'/'.$this->_clean_path($data["new"]["source_server"]).'_'.$this->_clean_path($data["new"]["source_username"]).'.conf'; if(stristr($config_file_path, "..") or stristr($config_file_path, "|") or stristr($config_file_path, ";") or stristr($config_file_path, '$')) { $app->log("Possibly faked path for getmail config file: '$config_file_path'. File is not written.", LOGLEVEL_ERROR); return false; @@ -162,7 +162,7 @@ class getmail_plugin { $getmail_config = $app->getconf->get_server_config($conf["server_id"], 'getmail'); $this->getmail_config_dir = $getmail_config["getmail_config_dir"]; - $config_file_path = escapeshellcmd($this->getmail_config_dir.'/'.$this->_clean_path($data["old"]["source_server"]).'_'.$this->_clean_path($data["old"]["source_username"]).'.conf'); + $config_file_path = $this->getmail_config_dir.'/'.$this->_clean_path($data["old"]["source_server"]).'_'.$this->_clean_path($data["old"]["source_username"]).'.conf'; if(stristr($config_file_path, "..") || stristr($config_file_path, "|") || stristr($config_file_path, ";") || stristr($config_file_path, '$')) { $app->log("Possibly faked path for getmail config file: '$config_file_path'. File is not written.", LOGLEVEL_ERROR); return false; diff --git a/server/plugins-available/mail_plugin.inc.php b/server/plugins-available/mail_plugin.inc.php index 827569662..4d5ac826d 100644 --- a/server/plugins-available/mail_plugin.inc.php +++ b/server/plugins-available/mail_plugin.inc.php @@ -125,23 +125,22 @@ class mail_plugin { $group = $app->system->getgroup($data['new']['gid']); //* Create the mail domain directory, if it does not exist if(!empty($base_path) && !is_dir($base_path)) { - //exec("su -c 'mkdir -p ".escapeshellcmd($base_path)."' ".$mail_config['mailuser_name']); $app->system->mkdirpath($base_path, 0770, $mail_config['mailuser_name'], $mail_config['mailuser_group']); // needs group-access because users of subfolders may differ from vmail $app->log('Created Directory: '.$base_path, LOGLEVEL_DEBUG); } if ($data['new']['maildir_format'] == 'mdbox') { - exec("su -c 'doveadm mailbox create -u \"".$data["new"]["email"]."\" INBOX'"); - exec("su -c 'doveadm mailbox create -u \"".$data["new"]["email"]."\" Sent'"); - exec("su -c 'doveadm mailbox create -u \"".$data["new"]["email"]."\" Trash'"); - exec("su -c 'doveadm mailbox create -u \"".$data["new"]["email"]."\" Junk'"); - exec("su -c 'doveadm mailbox create -u \"".$data["new"]["email"]."\" Drafts'"); + $app->system->exec_safe("su -c 'doveadm mailbox create -u ? INBOX'", $data["new"]["email"]); + $app->system->exec_safe("su -c 'doveadm mailbox create -u ? Sent'", $data["new"]["email"]); + $app->system->exec_safe("su -c 'doveadm mailbox create -u ? Trash'", $data["new"]["email"]); + $app->system->exec_safe("su -c 'doveadm mailbox create -u ? Junk'", $data["new"]["email"]); + $app->system->exec_safe("su -c 'doveadm mailbox create -u ? Drafts'", $data["new"]["email"]); - exec("su -c 'doveadm mailbox subscribe -u \"".$data["new"]["email"]."\" INBOX'"); - exec("su -c 'doveadm mailbox subscribe -u \"".$data["new"]["email"]."\" Sent'"); - exec("su -c 'doveadm mailbox subscribe -u \"".$data["new"]["email"]."\" Trash'"); - exec("su -c 'doveadm mailbox subscribe -u \"".$data["new"]["email"]."\" Junk'"); - exec("su -c 'doveadm mailbox subscribe -u \"".$data["new"]["email"]."\" Drafts'"); + $app->system->exec_safe("su -c 'doveadm mailbox subscribe -u ? INBOX'", $data["new"]["email"]); + $app->system->exec_safe("su -c 'doveadm mailbox subscribe -u ? Sent'", $data["new"]["email"]); + $app->system->exec_safe("su -c 'doveadm mailbox subscribe -u ? Trash'", $data["new"]["email"]); + $app->system->exec_safe("su -c 'doveadm mailbox subscribe -u ? Junk'", $data["new"]["email"]); + $app->system->exec_safe("su -c 'doveadm mailbox subscribe -u ? Drafts'", $data["new"]["email"]); } else { // Dovecot uses a different mail layout with a separate 'Maildir' subdirectory. @@ -154,53 +153,44 @@ class mail_plugin { //* When the mail user dir exists but it is not a valid maildir, move it to corrupted maildir folder if(!empty($maildomain_path) && is_dir($maildomain_path) && !is_dir($maildomain_path.'/new') && !is_dir($maildomain_path.'/cur')) { if(!is_dir($mail_config['homedir_path'].'/corrupted/'.$data['new']['mailuser_id'])) $app->system->mkdirpath($mail_config['homedir_path'].'/corrupted/'.$data['new']['mailuser_id'], 0700, $mail_config['mailuser_name'], $mail_config['mailuser_group']); - exec("su -c 'mv -f ".escapeshellcmd($data['new']['maildir'])." ".$mail_config['homedir_path'].'/corrupted/'.$data['new']['mailuser_id']."' vmail"); - $app->log('Moved invalid maildir to corrupted Maildirs folder: '.escapeshellcmd($data['new']['maildir']), LOGLEVEL_WARN); + $app->system->exec_safe("su -c ? vmail", "mv -f " . $data['new']['maildir']." ".$mail_config['homedir_path'].'/corrupted/'.$data['new']['mailuser_id']); + $app->log('Moved invalid maildir to corrupted Maildirs folder: '.$data['new']['maildir'], LOGLEVEL_WARN); } //* Create the maildir, if it doesn not exist, set permissions, set quota. if(!empty($maildomain_path) && !is_dir($maildomain_path)) { - //exec("su -c 'maildirmake ".escapeshellcmd($maildomain_path)."' ".$mail_config['mailuser_name']); $app->system->maildirmake($maildomain_path, $user, '', $group); //* This is to fix the maildrop quota not being rebuilt after the quota is changed. if($mail_config['pop3_imap_daemon'] != 'dovecot') { - if(is_dir($maildomain_path)) exec("su -c 'maildirmake -q ".$data['new']['quota']."S ".escapeshellcmd($maildomain_path)."' ".$user); // Avoid maildirmake quota bug, see debian bug #214911 - $app->log('Created Maildir: '."su -c 'maildirmake -q ".$data['new']['quota']."S ".escapeshellcmd($maildomain_path)."' ".$user, LOGLEVEL_DEBUG); + if(is_dir($maildomain_path)) $app->system->exec_safe("su -c ? ?", "maildirmake -q ".$data['new']['quota']."S ".$maildomain_path, $user); // Avoid maildirmake quota bug, see debian bug #214911 + $app->log('Created Maildir: '."su -c 'maildirmake -q ".$data['new']['quota']."S ".$maildomain_path."' ".$user, LOGLEVEL_DEBUG); } } if(!is_dir($data['new']['maildir'].'/.Sent')) { - //exec("su -c 'maildirmake -f Sent ".escapeshellcmd($maildomain_path)."' ".$mail_config['mailuser_name']); - //$app->log('Created submaildir Sent: '."su -c 'maildirmake -f Sent ".escapeshellcmd($maildomain_path)."' ".$mail_config['mailuser_name'],LOGLEVEL_DEBUG); $app->system->maildirmake($maildomain_path, $user, 'Sent', $group); } if(!is_dir($data['new']['maildir'].'/.Drafts')) { - //exec("su -c 'maildirmake -f Drafts ".escapeshellcmd($maildomain_path)."' ".$mail_config['mailuser_name']); - //$app->log('Created submaildir Drafts: '."su -c 'maildirmake -f Drafts ".escapeshellcmd($maildomain_path)."' ".$mail_config['mailuser_name'],LOGLEVEL_DEBUG); $app->system->maildirmake($maildomain_path, $user, 'Drafts', $group); } if(!is_dir($data['new']['maildir'].'/.Trash')) { - //exec("su -c 'maildirmake -f Trash ".escapeshellcmd($maildomain_path)."' ".$mail_config['mailuser_name']); - //$app->log('Created submaildir Trash: '."su -c 'maildirmake -f Trash ".escapeshellcmd($maildomain_path)."' ".$mail_config['mailuser_name'],LOGLEVEL_DEBUG); $app->system->maildirmake($maildomain_path, $user, 'Trash', $group); } if(!is_dir($data['new']['maildir'].'/.Junk')) { - //exec("su -c 'maildirmake -f Junk ".escapeshellcmd($maildomain_path)."' ".$mail_config['mailuser_name']); - //$app->log('Created submaildir Junk: '."su -c 'maildirmake -f Junk ".escapeshellcmd($maildomain_path)."' ".$mail_config['mailuser_name'],LOGLEVEL_DEBUG); $app->system->maildirmake($maildomain_path, $user, 'Junk', $group); } // Set permissions now recursive - exec('chown -R '.$user.':'.$group.' '.escapeshellcmd($data['new']['maildir'])); - $app->log('Set ownership on '.escapeshellcmd($data['new']['maildir']), LOGLEVEL_DEBUG); + $app->system->exec_safe('chown -R ?:? ?', $user, $group, $data['new']['maildir']); + $app->log('Set ownership on '.$data['new']['maildir'], LOGLEVEL_DEBUG); //* Set the maildir quota if(is_dir($data['new']['maildir'].'/new') && $mail_config['pop3_imap_daemon'] != 'dovecot') { if($data['new']['quota'] > 0) { - if(is_dir($data['new']['maildir'])) exec("su -c 'maildirmake -q ".$data['new']['quota']."S ".escapeshellcmd($data['new']['maildir'])."' ".$user); - $app->log('Set Maildir quota: '."su -c 'maildirmake -q ".$data['new']['quota']."S ".escapeshellcmd($data['new']['maildir'])."' ".$user, LOGLEVEL_DEBUG); + if(is_dir($data['new']['maildir'])) $app->system->exec_safe("su -c ? ? ", "maildirmake -q ".$data['new']['quota']."S ". $data['new']['maildir'], $user); + $app->log('Set Maildir quota: '."su -c 'maildirmake -q ".$data['new']['quota']."S ".$data['new']['maildir']."' ".$user, LOGLEVEL_DEBUG); } } } @@ -269,19 +259,6 @@ class mail_plugin { $app->uses('getconf,system'); $mail_config = $app->getconf->get_server_config($conf['server_id'], 'mail'); - // convert to lower case - it could cause problems if some directory above has upper case name - // $data['new']['maildir'] = strtolower($data['new']['maildir']); - - // Create the maildir, if it does not exist - /* - if(!is_dir($data['new']['maildir'])) { - mkdir(escapeshellcmd($data['new']['maildir']), 0, true); - chown(escapeshellcmd($data['new']['maildir']), $mail_config['mailuser_name']); - chgrp(escapeshellcmd($data['new']['maildir']), $mail_config['mailuser_group']); - $app->log('Created Maildir: '.$data['new']['maildir'],LOGLEVEL_DEBUG); - } - */ - // Maildir-Format must not be changed on this way !! $data['new']['maildir_format'] = $data['old']['maildir_format']; @@ -324,7 +301,6 @@ class mail_plugin { //* Create the mail domain directory, if it does not exist if(!empty($base_path) && !is_dir($base_path)) { - //exec("su -c 'mkdir -p ".escapeshellcmd($base_path)."' ".$mail_config['mailuser_name']); $app->system->mkdirpath($base_path, 0770, $mail_config['mailuser_name'], $mail_config['mailuser_group']); // needs group-access because users of subfolders may differ from vmail $app->log('Created Directory: '.$base_path, LOGLEVEL_DEBUG); } @@ -333,29 +309,26 @@ class mail_plugin { // Move mailbox, if domain has changed and delete old mailbox if($data['new']['maildir'] != $data['old']['maildir'] && is_dir($data['old']['maildir'])) { if(is_dir($data['new']['maildir'])) { - exec("rm -fr ".escapeshellcmd($data['new']['maildir'])); + $app->system->exec_safe("rm -fr ?", $data['new']['maildir']); //rmdir($data['new']['maildir']); } - exec('mv -f '.escapeshellcmd($data['old']['maildir']).' '.escapeshellcmd($data['new']['maildir'])); - // exec('mv -f '.escapeshellcmd($data['old']['maildir']).'/* '.escapeshellcmd($data['new']['maildir'])); - // if(is_file($data['old']['maildir'].'.ispconfig_mailsize'))exec('mv -f '.escapeshellcmd($data['old']['maildir']).'.ispconfig_mailsize '.escapeshellcmd($data['new']['maildir'])); - // rmdir($data['old']['maildir']); + $app->system->exec_safe('mv -f ? ?'. $data['old']['maildir'], $data['new']['maildir']); $app->log('Moved Maildir from: '.$data['old']['maildir'].' to '.$data['new']['maildir'], LOGLEVEL_DEBUG); } //* Create the maildir, if it doesn not exist, set permissions, set quota. if(!is_dir($data['new']['maildir'].'/mdbox')) { - exec("su -c 'doveadm mailbox create -u \"".$data["new"]["email"]."\" INBOX'"); - exec("su -c 'doveadm mailbox create -u \"".$data["new"]["email"]."\" Sent'"); - exec("su -c 'doveadm mailbox create -u \"".$data["new"]["email"]."\" Trash'"); - exec("su -c 'doveadm mailbox create -u \"".$data["new"]["email"]."\" Junk'"); - exec("su -c 'doveadm mailbox create -u \"".$data["new"]["email"]."\" Drafts'"); + $app->system->exec_safe("su -c 'doveadm mailbox create -u ? INBOX'", $data["new"]["email"]); + $app->system->exec_safe("su -c 'doveadm mailbox create -u ? Sent'", $data["new"]["email"]); + $app->system->exec_safe("su -c 'doveadm mailbox create -u ? Trash'", $data["new"]["email"]); + $app->system->exec_safe("su -c 'doveadm mailbox create -u ? Junk'", $data["new"]["email"]); + $app->system->exec_safe("su -c 'doveadm mailbox create -u ? Drafts'", $data["new"]["email"]); - exec("su -c 'doveadm mailbox subscribe -u \"".$data["new"]["email"]."\" INBOX'"); - exec("su -c 'doveadm mailbox subscribe -u \"".$data["new"]["email"]."\" Sent'"); - exec("su -c 'doveadm mailbox subscribe -u \"".$data["new"]["email"]."\" Trash'"); - exec("su -c 'doveadm mailbox subscribe -u \"".$data["new"]["email"]."\" Junk'"); - exec("su -c 'doveadm mailbox subscribe -u \"".$data["new"]["email"]."\" Drafts'"); + $app->system->exec_safe("su -c 'doveadm mailbox subscribe -u ? INBOX'", $data["new"]["email"]); + $app->system->exec_safe("su -c 'doveadm mailbox subscribe -u ? Sent'", $data["new"]["email"]); + $app->system->exec_safe("su -c 'doveadm mailbox subscribe -u ? Trash'", $data["new"]["email"]); + $app->system->exec_safe("su -c 'doveadm mailbox subscribe -u ? Junk'", $data["new"]["email"]); + $app->system->exec_safe("su -c 'doveadm mailbox subscribe -u ? Drafts'", $data["new"]["email"]); } } else { @@ -369,21 +342,19 @@ class mail_plugin { //* When the mail user dir exists but it is not a valid maildir, move it to corrupted maildir folder if(!empty($maildomain_path) && is_dir($maildomain_path) && !is_dir($maildomain_path.'/new') && !is_dir($maildomain_path.'/cur')) { if(!is_dir($mail_config['homedir_path'].'/corrupted/'.$data['new']['mailuser_id'])) $app->system->mkdirpath($mail_config['homedir_path'].'/corrupted/'.$data['new']['mailuser_id'], 0700, $mail_config['mailuser_name'], $mail_config['mailuser_group']); - exec("su -c 'mv -f ".escapeshellcmd($data['new']['maildir'])." ".$mail_config['homedir_path'].'/corrupted/'.$data['new']['mailuser_id']."' vmail"); - $app->log('Moved invalid maildir to corrupted Maildirs folder: '.escapeshellcmd($data['new']['maildir']), LOGLEVEL_WARN); + $app->system->exec_safe("su -c ? ?", "mv -f ".$data['new']['maildir']." ".$mail_config['homedir_path'].'/corrupted/'.$data['new']['mailuser_id'], 'vmail'); + $app->log('Moved invalid maildir to corrupted Maildirs folder: '.$data['new']['maildir'], LOGLEVEL_WARN); } //* Create the maildir, if it doesn not exist, set permissions, set quota. if(!empty($maildomain_path) && !is_dir($maildomain_path.'/new')) { - //exec("su -c 'maildirmake ".escapeshellcmd($maildomain_path)."' ".$mail_config['mailuser_name']); - //$app->log("Created Maildir "."su -c 'maildirmake ".escapeshellcmd($maildomain_path)."' ".$mail_config['mailuser_name'],LOGLEVEL_DEBUG); $app->system->maildirmake($maildomain_path, $user, '', $group); //* This is to fix the maildrop quota not being rebuilt after the quota is changed. if($mail_config['pop3_imap_daemon'] != 'dovecot') { if($data['new']['quota'] > 0) { - if(is_dir($maildomain_path)) exec("su -c 'maildirmake -q ".$data['new']['quota']."S ".escapeshellcmd($maildomain_path)."' ".$user); // Avoid maildirmake quota bug, see debian bug #214911 - $app->log('Updated Maildir quota: '."su -c 'maildirmake -q ".$data['new']['quota']."S ".escapeshellcmd($maildomain_path)."' ".$user, LOGLEVEL_DEBUG); + if(is_dir($maildomain_path)) $app->system->exec_safe("su -c ? ?", "maildirmake -q ".$data['new']['quota']."S ".$maildomain_path, $user); // Avoid maildirmake quota bug, see debian bug #214911 + $app->log('Updated Maildir quota: '."su -c 'maildirmake -q ".$data['new']['quota']."S ".$maildomain_path."' ".$user, LOGLEVEL_DEBUG); } else { if(file_exists($data['new']['maildir'].'/maildirsize')) unlink($data['new']['maildir'].'/maildirsize'); $app->log('Set Maildir quota to unlimited.', LOGLEVEL_DEBUG); @@ -392,48 +363,36 @@ class mail_plugin { } if(!is_dir($data['new']['maildir'].'/.Sent')) { - //exec("su -c 'maildirmake -f Sent ".escapeshellcmd($maildomain_path)."' ".$mail_config['mailuser_name']); - //$app->log('Created submaildir Sent: '."su -c 'maildirmake -f Sent ".escapeshellcmd($maildomain_path)."' ".$mail_config['mailuser_name'],LOGLEVEL_DEBUG); $app->system->maildirmake($maildomain_path, $user, 'Sent', $group); } if(!is_dir($data['new']['maildir'].'/.Drafts')) { - //exec("su -c 'maildirmake -f Drafts ".escapeshellcmd($maildomain_path)."' ".$mail_config['mailuser_name']); - //$app->log('Created submaildir Drafts: '."su -c 'maildirmake -f Drafts ".escapeshellcmd($maildomain_path)."' ".$mail_config['mailuser_name'],LOGLEVEL_DEBUG); $app->system->maildirmake($maildomain_path, $user, 'Drafts', $group); } if(!is_dir($data['new']['maildir'].'/.Trash')) { - //exec("su -c 'maildirmake -f Trash ".escapeshellcmd($maildomain_path)."' ".$mail_config['mailuser_name']); - //$app->log('Created submaildir Trash: '."su -c 'maildirmake -f Trash ".escapeshellcmd($maildomain_path)."' ".$mail_config['mailuser_name'],LOGLEVEL_DEBUG); $app->system->maildirmake($maildomain_path, $user, 'Trash', $group); } if(!is_dir($data['new']['maildir'].'/.Junk')) { - //exec("su -c 'maildirmake -f Junk ".escapeshellcmd($maildomain_path)."' ".$mail_config['mailuser_name']); - //$app->log('Created submaildir Junk: '."su -c 'maildirmake -f Junk ".escapeshellcmd($maildomain_path)."' ".$mail_config['mailuser_name'],LOGLEVEL_DEBUG); $app->system->maildirmake($maildomain_path, $user, 'Junk', $group); } // Set permissions now recursive - exec('chown -R '.$user.':'.$group.' '.escapeshellcmd($data['new']['maildir'])); - $app->log('Set ownership on '.escapeshellcmd($data['new']['maildir']), LOGLEVEL_DEBUG); + $app->system->exec_safe('chown -R ?:? ?', $user, $group, $data['new']['maildir']); + $app->log('Set ownership on '.$data['new']['maildir'], LOGLEVEL_DEBUG); // Move mailbox, if domain has changed and delete old mailbox if($data['new']['maildir'] != $data['old']['maildir'] && is_dir($data['old']['maildir'])) { if(is_dir($data['new']['maildir'])) { - exec("rm -fr ".escapeshellcmd($data['new']['maildir'])); - //rmdir($data['new']['maildir']); + $app->system->exec_safe("rm -fr ?", $data['new']['maildir']); } - exec('mv -f '.escapeshellcmd($data['old']['maildir']).' '.escapeshellcmd($data['new']['maildir'])); - // exec('mv -f '.escapeshellcmd($data['old']['maildir']).'/* '.escapeshellcmd($data['new']['maildir'])); - // if(is_file($data['old']['maildir'].'.ispconfig_mailsize'))exec('mv -f '.escapeshellcmd($data['old']['maildir']).'.ispconfig_mailsize '.escapeshellcmd($data['new']['maildir'])); - // rmdir($data['old']['maildir']); + $app->system->exec_safe('mv -f ? ?', $data['old']['maildir'], $data['new']['maildir']); $app->log('Moved Maildir from: '.$data['old']['maildir'].' to '.$data['new']['maildir'], LOGLEVEL_DEBUG); } //This is to fix the maildrop quota not being rebuilt after the quota is changed. // Courier Layout if(is_dir($data['new']['maildir'].'/new') && $mail_config['pop3_imap_daemon'] != 'dovecot') { if($data['new']['quota'] > 0) { - if(is_dir($data['new']['maildir'])) exec("su -c 'maildirmake -q ".$data['new']['quota']."S ".escapeshellcmd($data['new']['maildir'])."' ".$user); - $app->log('Updated Maildir quota: '."su -c 'maildirmake -q ".$data['new']['quota']."S ".escapeshellcmd($data['new']['maildir'])."' ".$user, LOGLEVEL_DEBUG); + if(is_dir($data['new']['maildir'])) $app->system->exec_safe("su -c ? ?", "maildirmake -q ".$data['new']['quota']."S ".$data['new']['maildir'], $user); + $app->log('Updated Maildir quota: '."su -c 'maildirmake -q ".$data['new']['quota']."S ".$data['new']['maildir']."' ".$user, LOGLEVEL_DEBUG); } else { if(file_exists($data['new']['maildir'].'/maildirsize')) unlink($data['new']['maildir'].'/maildirsize'); $app->log('Set Maildir quota to unlimited.', LOGLEVEL_DEBUG); @@ -450,9 +409,9 @@ class mail_plugin { $mail_config = $app->getconf->get_server_config($conf['server_id'], 'mail'); $maildir_path_deleted = false; - $old_maildir_path = escapeshellcmd($data['old']['maildir']); + $old_maildir_path = $data['old']['maildir']; if($old_maildir_path != $mail_config['homedir_path'] && strlen($old_maildir_path) > strlen($mail_config['homedir_path']) && !stristr($old_maildir_path, '//') && !stristr($old_maildir_path, '..') && !stristr($old_maildir_path, '*') && strlen($old_maildir_path) >= 10) { - exec('rm -rf '.escapeshellcmd($old_maildir_path)); + $app->system->exec_safe('rm -rf ?', $old_maildir_path); $app->log('Deleted the Maildir: '.$data['old']['maildir'], LOGLEVEL_DEBUG); $maildir_path_deleted = true; } else { @@ -474,7 +433,7 @@ class mail_plugin { if (is_array($domain_rec)) { $mail_backup_dir = $backup_dir.'/mail'.$domain_rec['domain_id']; $mail_backup_files = 'mail'.$data['old']['mailuser_id']; - exec(escapeshellcmd('rm -f '.$mail_backup_dir.'/'.$mail_backup_files).'*'); + $app->system->exec_safe('rm -f ?*', $mail_backup_dir.'/'.$mail_backup_files); //* cleanup database $sql = "DELETE FROM mail_backup WHERE server_id = ? AND parent_domain_id = ? AND mailuser_id = ?"; $app->db->query($sql, $conf['server_id'], $domain_rec['domain_id'], $data['old']['mailuser_id']); @@ -494,9 +453,9 @@ class mail_plugin { $maildomain_path_deleted = false; //* Delete maildomain path - $old_maildomain_path = escapeshellcmd($mail_config['homedir_path'].'/'.$data['old']['domain']); + $old_maildomain_path = $mail_config['homedir_path'].'/'.$data['old']['domain']; if($old_maildomain_path != $mail_config['homedir_path'] && !stristr($old_maildomain_path, '//') && !stristr($old_maildomain_path, '..') && !stristr($old_maildomain_path, '*') && !stristr($old_maildomain_path, '&') && strlen($old_maildomain_path) >= 10 && !empty($data['old']['domain'])) { - exec('rm -rf '.escapeshellcmd($old_maildomain_path)); + $app->system->exec_safe('rm -rf ?', $old_maildomain_path); $app->log('Deleted the mail domain directory: '.$old_maildomain_path, LOGLEVEL_DEBUG); $maildomain_path_deleted = true; } else { @@ -504,9 +463,9 @@ class mail_plugin { } //* Delete mailfilter path - $old_maildomain_path = escapeshellcmd($mail_config['homedir_path'].'/mailfilters/'.$data['old']['domain']); + $old_maildomain_path = $mail_config['homedir_path'].'/mailfilters/'.$data['old']['domain']; if($old_maildomain_path != $mail_config['homedir_path'].'/mailfilters/' && !stristr($old_maildomain_path, '//') && !stristr($old_maildomain_path, '..') && !stristr($old_maildomain_path, '*') && !stristr($old_maildomain_path, '&') && strlen($old_maildomain_path) >= 10 && !empty($data['old']['domain'])) { - exec('rm -rf '.escapeshellcmd($old_maildomain_path)); + $app->system->exec_safe('rm -rf ?', $old_maildomain_path); $app->log('Deleted the mail domain mailfilter directory: '.$old_maildomain_path, LOGLEVEL_DEBUG); } else { $app->log('Possible security violation when deleting the mail domain mailfilter directory: '.$old_maildomain_path, LOGLEVEL_ERROR); @@ -521,7 +480,7 @@ class mail_plugin { if( $server_config['backup_dir_is_mount'] == 'y' && !$app->system->mount_backup_dir($backup_dir) ) $mount_backup = false; if($mount_backup){ $mail_backup_dir = $backup_dir.'/mail'.$data['old']['domain_id']; - exec(escapeshellcmd('rm -rf '.$mail_backup_dir)); + $app->system->exec_safe('rm -rf ?', $mail_backup_dir); //* cleanup database $sql = "DELETE FROM mail_backup WHERE server_id = ? AND parent_domain_id = ?"; $app->db->query($sql, $conf['server_id'], $data['old']['domain_id']); diff --git a/server/plugins-available/mail_plugin_dkim.inc.php b/server/plugins-available/mail_plugin_dkim.inc.php index 6f042e907..b54f4f56c 100755 --- a/server/plugins-available/mail_plugin_dkim.inc.php +++ b/server/plugins-available/mail_plugin_dkim.inc.php @@ -192,7 +192,8 @@ class mail_plugin_dkim { $app->log('Saved DKIM Private-key to '.$key_file.'.private', LOGLEVEL_DEBUG); $success=true; /* now we get the DKIM Public-key */ - exec('cat '.escapeshellarg($key_file.'.private').'|openssl rsa -pubout 2> /dev/null', $pubkey, $result); + $app->system->exec_safe('cat ?|openssl rsa -pubout 2> /dev/null', $key_file.'.private'); + $pubkey = $app->system->last_exec_out(); $public_key=''; foreach($pubkey as $values) $public_key=$public_key.$values."\n"; /* save the DKIM Public-key in dkim-dir */ diff --git a/server/plugins-available/mailman_plugin.inc.php b/server/plugins-available/mailman_plugin.inc.php index 99ac9db7d..e6251aedf 100644 --- a/server/plugins-available/mailman_plugin.inc.php +++ b/server/plugins-available/mailman_plugin.inc.php @@ -73,7 +73,7 @@ class mailman_plugin { $this->update_config(); - $pid = exec("nohup /usr/lib/mailman/bin/newlist -u ".escapeshellcmd($data["new"]["domain"])." -e ".escapeshellcmd($data["new"]["domain"])." ".escapeshellcmd($data["new"]["listname"])." ".escapeshellcmd($data["new"]["email"])." ".escapeshellcmd($data["new"]["password"])." >/dev/null 2>&1 & echo $!;"); + $pid = $app->system->exec_safe("nohup /usr/lib/mailman/bin/newlist -u ? -e ? ? ? ? >/dev/null 2>&1 & echo $!;", $data["new"]["domain"], $data["new"]["domain"], $data["new"]["listname"], $data["new"]["email"], $data["new"]["password"]); // wait for /usr/lib/mailman/bin/newlist-call $running = true; do { @@ -91,7 +91,7 @@ class mailman_plugin { exec('nohup '.$conf['init_scripts'] . '/' . 'mailman reload >/dev/null 2>&1 &'); // Fix list URL - exec('/usr/sbin/withlist -l -r fix_url '.escapeshellcmd($data["new"]["listname"])); + $app->system->exec_safe('/usr/sbin/withlist -l -r fix_url ?', $data["new"]["listname"]); $app->db->query("UPDATE mail_mailinglist SET password = '' WHERE mailinglist_id = ?", $data["new"]['mailinglist_id']); @@ -104,7 +104,7 @@ class mailman_plugin { $this->update_config(); if($data["new"]["password"] != $data["old"]["password"] && $data["new"]["password"] != '') { - exec("nohup /usr/lib/mailman/bin/change_pw -l ".escapeshellcmd($data["new"]["listname"])." -p ".escapeshellcmd($data["new"]["password"])." >/dev/null 2>&1 &"); + $app->system->exec_safe("nohup /usr/lib/mailman/bin/change_pw -l ? -p ? >/dev/null 2>&1 &", $data["new"]["listname"], $data["new"]["password"]); exec('nohup '.$conf['init_scripts'] . '/' . 'mailman reload >/dev/null 2>&1 &'); $app->db->query("UPDATE mail_mailinglist SET password = '' WHERE mailinglist_id = ?", $data["new"]['mailinglist_id']); } @@ -118,7 +118,7 @@ class mailman_plugin { $this->update_config(); - exec("nohup /usr/lib/mailman/bin/rmlist -a ".escapeshellcmd($data["old"]["listname"])." >/dev/null 2>&1 &"); + $app->system->exec_safe("nohup /usr/lib/mailman/bin/rmlist -a ? >/dev/null 2>&1 &", $data["old"]["listname"]); exec('nohup '.$conf['init_scripts'] . '/' . 'mailman reload >/dev/null 2>&1 &'); diff --git a/server/plugins-available/mysql_clientdb_plugin.inc.php b/server/plugins-available/mysql_clientdb_plugin.inc.php index efe7142c8..a26129eed 100644 --- a/server/plugins-available/mysql_clientdb_plugin.inc.php +++ b/server/plugins-available/mysql_clientdb_plugin.inc.php @@ -344,15 +344,15 @@ class mysql_clientdb_plugin { $triggers_array[] = $row; } $app->log('Dumping triggers from '.$old_name, LOGLEVEL_DEBUG); - $command = "mysqldump -h ".escapeshellarg($clientdb_host)." -u ".escapeshellarg($clientdb_user)." -p".escapeshellarg($clientdb_password)." ".$old_name." -d -t -R -E > ".$timestamp.$old_name.'.triggers'; - exec($command, $out, $ret); + $command = "mysqldump -h ? -u ? -p? ? -d -t -R -E > ?"; + $app->system->exec_safe($command, $clientdb_host, $clientdb_user, $clientdb_password, $old_name, $timestamp.$old_name.'.triggers'); + $ret = $app->system->last_exec_retcode(); $app->system->chmod($timestamp.$old_name.'.triggers', 0600); if ($ret != 0) { unset($triggers_array); $app->system->unlink($timestamp.$old_name.'.triggers'); $app->log('Unable to dump triggers from '.$old_name, LOGLEVEL_ERROR); } - unset($out); } //* save views @@ -366,15 +366,15 @@ class mysql_clientdb_plugin { } $app->log('Dumping views from '.$old_name, LOGLEVEL_DEBUG); $temp_views = implode(' ', $temp); - $command = "mysqldump -h ".escapeshellarg($clientdb_host)." -u ".escapeshellarg($clientdb_user)." -p".escapeshellarg($clientdb_password)." ".$old_name." ".$temp_views." > ".$timestamp.$old_name.'.views'; - exec($command, $out, $ret); + $command = "mysqldump -h ? -u ? -p? ? ? > ?"; + $app->system->exec_safe($command, $clientdb_host, $clientdb_user, $clientdb_password, $old_name, $temp_views, $timestamp.$old_name.'.views'); + $ret = $app->system->last_exec_retcode(); $app->system->chmod($timestamp.$old_name.'.views', 0600); if ($ret != 0) { unset($views_array); $app->system->unlink($timestamp.$old_name.'.views'); $app->log('Unable to dump views from '.$old_name, LOGLEVEL_ERROR); } - unset($out); unset($temp); unset($temp_views); } @@ -405,8 +405,9 @@ class mysql_clientdb_plugin { unset($_trigger); } //* update triggers, routines and events - $command = "mysql -h ".escapeshellarg($clientdb_host)." -u ".escapeshellarg($clientdb_user)." -p".escapeshellarg($clientdb_password)." ".$new_name." < ".$timestamp.$old_name.'.triggers'; - exec($command, $out, $ret); + $command = "mysql -h ? -u ? -p? ? < ?"; + $app->system->exec_safe($command, $clientdb_host, $clientdb_user, $clientdb_password, $new_name, $timestamp.$old_name.'.triggers'); + $ret = $app->system->last_exec_retcode(); if ($ret != 0) { $app->log('Unable to import triggers for '.$new_name, LOGLEVEL_ERROR); } else { @@ -416,8 +417,9 @@ class mysql_clientdb_plugin { //* loading views if (@is_array($views_array)) { - $command = "mysql -h ".escapeshellarg($clientdb_host)." -u ".escapeshellarg($clientdb_user)." -p".escapeshellarg($clientdb_password)." ".$new_name." < ".$timestamp.$old_name.'.views'; - exec($command, $out, $ret); + $command = "mysql -h ? -u ? -p? ? < ?"; + $app->system->exec_safe($command, $clientdb_host, $clientdb_user, $clientdb_password, $new_name, $timestamp.$old_name.'.views'); + $ret = $app->system->last_exec_retcode(); if ($ret != 0) { $app->log('Unable to import views for '.$new_name, LOGLEVEL_ERROR); } else { diff --git a/server/plugins-available/network_settings_plugin.inc.php b/server/plugins-available/network_settings_plugin.inc.php index 5ce6f934b..1ed12f3a1 100644 --- a/server/plugins-available/network_settings_plugin.inc.php +++ b/server/plugins-available/network_settings_plugin.inc.php @@ -280,8 +280,8 @@ class network_settings_plugin { //* Executing the postconf commands foreach($postconf_commands as $cmd) { - $command = "postconf -e '$cmd'"; - exec($command); + $command = "postconf -e ?"; + $app->system->exec_safe($command, $cmd); } $app->log('Changed changed myhostname and mydestination in postfix main.cf to '.$new_hostname, LOGLEVEL_DEBUG); diff --git a/server/plugins-available/nginx_plugin.inc.php b/server/plugins-available/nginx_plugin.inc.php index 30f950150..9913299aa 100644 --- a/server/plugins-available/nginx_plugin.inc.php +++ b/server/plugins-available/nginx_plugin.inc.php @@ -105,7 +105,6 @@ class nginx_plugin { //* Only vhosts can have a ssl cert if($data["new"]["type"] != "vhost" && $data["new"]["type"] != "vhostsubdomain" && $data["new"]["type"] != "vhostalias") return; - // if(!is_dir($data['new']['document_root'].'/ssl')) exec('mkdir -p '.$data['new']['document_root'].'/ssl'); if(!is_dir($data['new']['document_root'].'/ssl') && !is_dir($data['old']['document_root'].'/ssl')) $app->system->mkdirpath($data['new']['document_root'].'/ssl'); $ssl_dir = $data['new']['document_root'].'/ssl'; @@ -170,36 +169,36 @@ class nginx_plugin { $ssl_cnf_file = $ssl_dir.'/openssl.conf'; $app->system->file_put_contents($ssl_cnf_file, $ssl_cnf); - $rand_file = escapeshellcmd($rand_file); - $key_file2 = escapeshellcmd($key_file2); + $rand_file = $rand_file; + $key_file2 = $key_file2; $openssl_cmd_key_file2 = $key_file2; if(substr($domain, 0, 2) == '*.' && strpos($key_file2, '/ssl/\*.') !== false) $key_file2 = str_replace('/ssl/\*.', '/ssl/*.', $key_file2); // wildcard certificate - $key_file = escapeshellcmd($key_file); + $key_file = $key_file; $openssl_cmd_key_file = $key_file; if(substr($domain, 0, 2) == '*.' && strpos($key_file, '/ssl/\*.') !== false) $key_file = str_replace('/ssl/\*.', '/ssl/*.', $key_file); // wildcard certificate $ssl_days = 3650; - $csr_file = escapeshellcmd($csr_file); + $csr_file = $csr_file; $openssl_cmd_csr_file = $csr_file; if(substr($domain, 0, 2) == '*.' && strpos($csr_file, '/ssl/\*.') !== false) $csr_file = str_replace('/ssl/\*.', '/ssl/*.', $csr_file); // wildcard certificate - $config_file = escapeshellcmd($ssl_cnf_file); - $crt_file = escapeshellcmd($crt_file); + $config_file = $ssl_cnf_file; + $crt_file = $crt_file; $openssl_cmd_crt_file = $crt_file; if(substr($domain, 0, 2) == '*.' && strpos($crt_file, '/ssl/\*.') !== false) $crt_file = str_replace('/ssl/\*.', '/ssl/*.', $crt_file); // wildcard certificate if(is_file($ssl_cnf_file) && !is_link($ssl_cnf_file)) { - exec("openssl genrsa -des3 -rand $rand_file -passout pass:$ssl_password -out $openssl_cmd_key_file2 2048"); - exec("openssl req -new -sha256 -passin pass:$ssl_password -passout pass:$ssl_password -key $openssl_cmd_key_file2 -out $openssl_cmd_csr_file -days $ssl_days -config $config_file"); - exec("openssl rsa -passin pass:$ssl_password -in $openssl_cmd_key_file2 -out $openssl_cmd_key_file"); + $app->system->exec_safe("openssl genrsa -des3 -rand ? -passout pass:? -out ? 2048", $rand_file, $ssl_password, $openssl_cmd_key_file2); + $app->system->exec_safe("openssl req -new -sha256 -passin pass:? -passout pass:? -key ? -out ? -days ? -config ?", $ssl_password, $ssl_password, $openssl_cmd_key_file2, $openssl_cmd_csr_file, $ssl_days, $config_file); + $app->system->exec_safe("openssl rsa -passin pass:? -in ? -out ?", $ssl_password, $openssl_cmd_key_file2, $openssl_cmd_key_file); if(file_exists($web_config['CA_path'].'/openssl.cnf')) { - exec("openssl ca -batch -out $openssl_cmd_crt_file -config ".$web_config['CA_path']."/openssl.cnf -passin pass:".$web_config['CA_pass']." -in $openssl_cmd_csr_file"); + $app->system->exec_safe("openssl ca -batch -out ? -config ? -passin pass:? -in ?", $openssl_cmd_crt_file, $web_config['CA_path']."/openssl.cnf", $web_config['CA_pass'], $openssl_cmd_csr_file); $app->log("Creating CA-signed SSL Cert for: $domain", LOGLEVEL_DEBUG); if (filesize($crt_file)==0 || !file_exists($crt_file)) $app->log("CA-Certificate signing failed. openssl ca -out $openssl_cmd_crt_file -config ".$web_config['CA_path']."/openssl.cnf -passin pass:".$web_config['CA_pass']." -in $openssl_cmd_csr_file", LOGLEVEL_ERROR); }; if (@filesize($crt_file)==0 || !file_exists($crt_file)){ - exec("openssl req -x509 -passin pass:$ssl_password -passout pass:$ssl_password -key $openssl_cmd_key_file2 -in $openssl_cmd_csr_file -out $openssl_cmd_crt_file -days $ssl_days -config $config_file "); + $app->system->exec_safe("openssl req -x509 -passin pass:? -passout pass:? -key ? -in ? -out ? -days ? -config ?", $ssl_password, $ssl_password, $openssl_cmd_key_file2, $openssl_cmd_csr_file, $openssl_cmd_crt_file, $ssl_days, $config_file); $app->log("Creating self-signed SSL Cert for: $domain", LOGLEVEL_DEBUG); }; @@ -240,7 +239,8 @@ class nginx_plugin { if($data["new"]["ssl_action"] == 'save') { $tmp = array(); $crt_data = ''; - exec('openssl x509 -noout -text -in '.escapeshellarg($crt_file),$tmp); + $app->system->exec_safe('openssl x509 -noout -text -in ?', $crt_file); + $tmp = $app->system->last_exec_out(); $crt_data = implode("\n",$tmp); if(stristr($crt_data,'.acme.invalid')) { $data["new"]["ssl_action"] = ''; @@ -303,7 +303,7 @@ class nginx_plugin { if($data['new']['ssl_action'] == 'del') { if(file_exists($web_config['CA_path'].'/openssl.cnf') && !is_link($web_config['CA_path'].'/openssl.cnf')) { - exec("openssl ca -batch -config ".$web_config['CA_path']."/openssl.cnf -passin pass:".$web_config['CA_pass']." -revoke ".escapeshellcmd($crt_file)); + $app->system->exec_safe("openssl ca -batch -config ? -passin pass:? -revoke ?", $web_config['CA_path']."/openssl.cnf", $web_config['CA_pass'], $crt_file); $app->log("Revoking CA-signed SSL Cert for: $domain", LOGLEVEL_DEBUG); }; $app->system->unlink($csr_file); @@ -439,31 +439,31 @@ class nginx_plugin { //* Check if a ispconfigend user and group exists and create them if(!$app->system->is_group('ispconfigend')) { - exec('groupadd --gid '.($connect_userid_to_webid_start + 10000).' ispconfigend'); + $app->system->exec_safe('groupadd --gid ? ispconfigend', $connect_userid_to_webid_start + 10000); } if(!$app->system->is_user('ispconfigend')) { - exec('useradd -g ispconfigend -d /usr/local/ispconfig --uid '.($connect_userid_to_webid_start + 10000).' ispconfigend'); + $app->system->exec_safe('useradd -g ispconfigend -d /usr/local/ispconfig --uid ? ispconfigend', $connect_userid_to_webid_start + 10000); } } else { $fixed_uid_param = ''; $fixed_gid_param = ''; } - $groupname = escapeshellcmd($data['new']['system_group']); + $groupname = $data['new']['system_group']; if($data['new']['system_group'] != '' && !$app->system->is_group($data['new']['system_group'])) { - exec('groupadd '.$fixed_gid_param.' '.$groupname); - if($nginx_chrooted) $app->system->_exec('chroot '.escapeshellcmd($web_config['website_basedir']).' groupadd '.$groupname); + $app->system->exec_safe('groupadd ? ?', $fixed_gid_param, $groupname); + if($nginx_chrooted) $app->system->exec_safe('chroot ? groupadd ?', $web_config['website_basedir'], $groupname); $app->log('Adding the group: '.$groupname, LOGLEVEL_DEBUG); } - $username = escapeshellcmd($data['new']['system_user']); + $username = $data['new']['system_user']; if($data['new']['system_user'] != '' && !$app->system->is_user($data['new']['system_user'])) { if($web_config['add_web_users_to_sshusers_group'] == 'y') { - exec('useradd -d '.escapeshellcmd($data['new']['document_root'])." -g $groupname $fixed_uid_param -G sshusers $username -s /bin/false"); - if($nginx_chrooted) $app->system->_exec('chroot '.escapeshellcmd($web_config['website_basedir']).' useradd -d '.escapeshellcmd($data['new']['document_root'])." -g $groupname $fixed_uid_param -G sshusers $username -s /bin/false"); + $app->system->exec_safe('useradd -d ? -g ? ? -G sshusers ? -s /bin/false', $data['new']['document_root'], $groupname, $fixed_uid_param, $username); + if($nginx_chrooted) $app->system->exec_safe('chroot ? useradd -d ? -g ? ? -G sshusers ? -s /bin/false', $web_config['website_basedir'], $data['new']['document_root'], $groupname, $fixed_uid_param, $username); } else { - exec('useradd -d '.escapeshellcmd($data['new']['document_root'])." -g $groupname $fixed_uid_param $username -s /bin/false"); - if($nginx_chrooted) $app->system->_exec('chroot '.escapeshellcmd($web_config['website_basedir']).' useradd -d '.escapeshellcmd($data['new']['document_root'])." -g $groupname $fixed_uid_param $username -s /bin/false"); + $app->system->exec_safe('useradd -d ? -g ? ? ? -s /bin/false', $data['new']['document_root'], $groupname, $fixed_uid_param, $username); + if($nginx_chrooted) $app->system->exec_safe('chroot ? useradd -d ? -g ? ? ? -s /bin/false', $web_config['website_basedir'], $data['new']['document_root'], $groupname, $fixed_uid_param, $username); } $app->log('Adding the user: '.$username, LOGLEVEL_DEBUG); } @@ -486,7 +486,7 @@ class nginx_plugin { if(substr($tmp_symlink, -1, 1) == '/') $tmp_symlink = substr($tmp_symlink, 0, -1); // create the symlinks, if not exist if(is_link($tmp_symlink)) { - exec('rm -f '.escapeshellcmd($tmp_symlink)); + $app->system->exec_safe('rm -f ?', $tmp_symlink); $app->log('Removed symlink: rm -f '.$tmp_symlink, LOGLEVEL_DEBUG); } } @@ -510,12 +510,12 @@ class nginx_plugin { } //* Unmount the old log directory bfore we move the log dir - exec('umount '.escapeshellcmd($old_dir.'/log')); + $app->system->exec_safe('umount ?', $old_dir.'/log'); //* Create new base directory, if it does not exist yet if(!is_dir($new_dir)) $app->system->mkdirpath($new_dir); $app->system->web_folder_protection($data['old']['document_root'], false); - exec('mv '.escapeshellarg($data['old']['document_root']).' '.escapeshellarg($new_dir)); + $app->system->exec_safe('mv ? ?', $data['old']['document_root'], $new_dir); //$app->system->rename($data['old']['document_root'],$new_dir); $app->log('Moving site to new document root: mv '.$data['old']['document_root'].' '.$new_dir, LOGLEVEL_DEBUG); @@ -523,17 +523,17 @@ class nginx_plugin { $data['new']['php_open_basedir'] = str_replace($data['old']['document_root'], $data['new']['document_root'], $data['old']['php_open_basedir']); //* Change the owner of the website files to the new website owner - exec('chown --recursive --from='.escapeshellcmd($data['old']['system_user']).':'.escapeshellcmd($data['old']['system_group']).' '.escapeshellcmd($data['new']['system_user']).':'.escapeshellcmd($data['new']['system_group']).' '.$new_dir); + $app->system->exec_safe('chown --recursive --from=?:? ?:? ?', $data['old']['system_user'], $data['old']['system_group'], $data['new']['system_user'], $data['new']['system_group'], $new_dir); //* Change the home directory and group of the website user - $command = 'killall -u '.escapeshellcmd($data['new']['system_user']).' ; usermod'; - $command .= ' --home '.escapeshellcmd($data['new']['document_root']); - $command .= ' --gid '.escapeshellcmd($data['new']['system_group']); - $command .= ' '.escapeshellcmd($data['new']['system_user']).' 2>/dev/null'; - exec($command); + $command = 'killall -u ? ; usermod'; + $command .= ' --home ?'; + $command .= ' --gid ?'; + $command .= ' ? 2>/dev/null'; + $app->system->exec_safe($command, $data['new']['system_user'], $data['new']['document_root'], $data['new']['system_group'], $data['new']['system_user']); } - if($nginx_chrooted) $app->system->_exec('chroot '.escapeshellcmd($web_config['website_basedir']).' '.$command); + if($nginx_chrooted) $app->system->exec_safe('chroot ? ?', $web_config['website_basedir'], $command); //* Change the log mount /* @@ -555,7 +555,7 @@ class nginx_plugin { $app->system->replaceLine('/etc/fstab', $fstab_line_old, $fstab_line, 0, 1); } - exec('mount --bind '.escapeshellarg('/var/log/ispconfig/httpd/'.$data['new']['domain']).' '.escapeshellarg($data['new']['document_root'].'/'.$log_folder)); + $app->system->exec_safe('mount --bind ? ?', '/var/log/ispconfig/httpd/'.$data['new']['domain'], $data['new']['document_root'].'/'.$log_folder); } @@ -567,11 +567,9 @@ class nginx_plugin { if(!is_dir($data['new']['document_root'].'/' . $web_folder)) $app->system->mkdirpath($data['new']['document_root'].'/' . $web_folder); if(!is_dir($data['new']['document_root'].'/' . $web_folder . '/error') and $data['new']['errordocs']) $app->system->mkdirpath($data['new']['document_root'].'/' . $web_folder . '/error'); if($data['new']['stats_type'] != '' && !is_dir($data['new']['document_root'].'/' . $web_folder . '/stats')) $app->system->mkdirpath($data['new']['document_root'].'/' . $web_folder . '/stats'); - //if(!is_dir($data['new']['document_root'].'/'.$log_folder)) exec('mkdir -p '.$data['new']['document_root'].'/'.$log_folder); if(!is_dir($data['new']['document_root'].'/ssl')) $app->system->mkdirpath($data['new']['document_root'].'/ssl'); if(!is_dir($data['new']['document_root'].'/cgi-bin')) $app->system->mkdirpath($data['new']['document_root'].'/cgi-bin'); if(!is_dir($data['new']['document_root'].'/tmp')) $app->system->mkdirpath($data['new']['document_root'].'/tmp'); - //if(!is_dir($data['new']['document_root'].'/webdav')) $app->system->mkdirpath($data['new']['document_root'].'/webdav'); if(!is_dir($data['new']['document_root'].'/.ssh')) { $app->system->mkdirpath($data['new']['document_root'].'/.ssh'); @@ -591,7 +589,7 @@ class nginx_plugin { // Remove the symlink for the site, if site is renamed if($this->action == 'update' && $data['old']['domain'] != '' && $data['new']['domain'] != $data['old']['domain']) { - if(is_dir('/var/log/ispconfig/httpd/'.$data['old']['domain'])) exec('rm -rf /var/log/ispconfig/httpd/'.$data['old']['domain']); + if(is_dir('/var/log/ispconfig/httpd/'.$data['old']['domain'])) $app->system->exec_safe('rm -rf ?', '/var/log/ispconfig/httpd/'.$data['old']['domain']); if(is_link($data['old']['document_root'].'/'.$old_log_folder)) $app->system->unlink($data['old']['document_root'].'/'.$old_log_folder); //* remove old log mount @@ -599,19 +597,18 @@ class nginx_plugin { $app->system->removeLine('/etc/fstab', $fstab_line); //* Unmount log directory - //exec('fuser -km '.escapeshellarg($data['old']['document_root'].'/'.$old_log_folder)); - exec('umount '.escapeshellarg($data['old']['document_root'].'/'.$old_log_folder)); + $app->system->exec_safe('umount ?', $data['old']['document_root'].'/'.$old_log_folder); } //* Create the log dir if nescessary and mount it if(!is_dir($data['new']['document_root'].'/'.$log_folder) || !is_dir('/var/log/ispconfig/httpd/'.$data['new']['domain']) || is_link($data['new']['document_root'].'/'.$log_folder)) { if(is_link($data['new']['document_root'].'/'.$log_folder)) unlink($data['new']['document_root'].'/'.$log_folder); - if(!is_dir('/var/log/ispconfig/httpd/'.$data['new']['domain'])) exec('mkdir -p /var/log/ispconfig/httpd/'.$data['new']['domain']); + if(!is_dir('/var/log/ispconfig/httpd/'.$data['new']['domain'])) $app->system->exec_safe('mkdir -p ?', '/var/log/ispconfig/httpd/'.$data['new']['domain']); $app->system->mkdirpath($data['new']['document_root'].'/'.$log_folder); $app->system->chown($data['new']['document_root'].'/'.$log_folder, 'root'); $app->system->chgrp($data['new']['document_root'].'/'.$log_folder, 'root'); $app->system->chmod($data['new']['document_root'].'/'.$log_folder, 0755); - exec('mount --bind '.escapeshellarg('/var/log/ispconfig/httpd/'.$data['new']['domain']).' '.escapeshellarg($data['new']['document_root'].'/'.$log_folder)); + $app->system->exec_safe('mount --bind ? ?', '/var/log/ispconfig/httpd/'.$data['new']['domain'], $data['new']['document_root'].'/'.$log_folder); //* add mountpoint to fstab $fstab_line = '/var/log/ispconfig/httpd/'.$data['new']['domain'].' '.$data['new']['document_root'].'/'.$log_folder.' none bind,nobootwait'; $fstab_line .= @($web_config['network_filesystem'] == 'y')?',_netdev 0 0':' 0 0'; @@ -636,7 +633,7 @@ class nginx_plugin { if(substr($tmp_symlink, -1, 1) == '/') $tmp_symlink = substr($tmp_symlink, 0, -1); // remove the symlinks, if not exist if(is_link($tmp_symlink)) { - exec('rm -f '.escapeshellcmd($tmp_symlink)); + $app->system->exec_safe('rm -f ?', $tmp_symlink); $app->log('Removed symlink: rm -f '.$tmp_symlink, LOGLEVEL_DEBUG); } } @@ -657,11 +654,10 @@ class nginx_plugin { } // create the symlinks, if not exist if(!is_link($tmp_symlink)) { - // exec("ln -s ".escapeshellcmd($data["new"]["document_root"])."/ ".escapeshellcmd($tmp_symlink)); if ($web_config["website_symlinks_rel"] == 'y') { - $app->system->create_relative_link(escapeshellcmd($data["new"]["document_root"]), escapeshellcmd($tmp_symlink)); + $app->system->create_relative_link($data["new"]["document_root"], $tmp_symlink); } else { - exec("ln -s ".escapeshellcmd($data["new"]["document_root"])."/ ".escapeshellcmd($tmp_symlink)); + $app->system->exec_safe("ln -s ? ?", $data["new"]["document_root"]."/", $tmp_symlink); } $app->log('Creating symlink: ln -s '.$data['new']['document_root'].'/ '.$tmp_symlink, LOGLEVEL_DEBUG); @@ -681,69 +677,65 @@ class nginx_plugin { // Copy the error pages if($data['new']['errordocs']) { - $error_page_path = escapeshellcmd($data['new']['document_root']).'/' . $web_folder . '/error/'; - if (file_exists($conf['rootpath'] . '/conf-custom/error/'.substr(escapeshellcmd($conf['language']), 0, 2))) { - exec('cp ' . $conf['rootpath'] . '/conf-custom/error/'.substr(escapeshellcmd($conf['language']), 0, 2).'/* '.$error_page_path); + $error_page_path = $data['new']['document_root'].'/' . $web_folder . '/error/'; + if (file_exists($conf['rootpath'] . '/conf-custom/error/'.substr($conf['language'], 0, 2))) { + $app->system->exec_safe('cp ?* ?', $conf['rootpath'] . '/conf-custom/error/'.substr($conf['language'], 0, 2).'/', $error_page_path); } else { if (file_exists($conf['rootpath'] . '/conf-custom/error/400.html')) { - exec('cp '. $conf['rootpath'] . '/conf-custom/error/*.html '.$error_page_path); + $app->system->exec_safe('cp ?*.html ?', $conf['rootpath'] . '/conf-custom/error/', $error_page_path); } else { - exec('cp ' . $conf['rootpath'] . '/conf/error/'.substr(escapeshellcmd($conf['language']), 0, 2).'/* '.$error_page_path); + $app->system->exec_safe('cp ?* ?', $conf['rootpath'] . '/conf/error/'.substr($conf['language'], 0, 2).'/', $error_page_path); } } - exec('chmod -R a+r '.$error_page_path); + $app->system->exec_safe('chmod -R a+r ?', $error_page_path); } //* Copy the web skeleton files only when there is no index.ph or index.html file yet if(!file_exists($data['new']['document_root'].'/'.$web_folder.'/index.html') && !file_exists($data['new']['document_root'].'/'.$web_folder.'/index.php')) { - if (file_exists($conf['rootpath'] . '/conf-custom/index/standard_index.html_'.substr(escapeshellcmd($conf['language']), 0, 2))) { - if(!file_exists(escapeshellcmd($data['new']['document_root']).'/' . $web_folder . '/index.html')) exec('cp ' . $conf['rootpath'] . '/conf-custom/index/standard_index.html_'.substr(escapeshellcmd($conf['language']), 0, 2).' '.escapeshellcmd($data['new']['document_root']).'/' . $web_folder . '/index.html'); + if (file_exists($conf['rootpath'] . '/conf-custom/index/standard_index.html_'.substr($conf['language']), 0, 2)) { + if(!file_exists($data['new']['document_root'].'/' . $web_folder . '/index.html')) $app->system->exec_safe('cp ? ?', $conf['rootpath'] . '/conf-custom/index/standard_index.html_'.substr($conf['language'], 0, 2), $data['new']['document_root'].'/' . $web_folder . '/index.html'); if(is_file($conf['rootpath'] . '/conf-custom/index/favicon.ico')) { - if(!file_exists(escapeshellcmd($data['new']['document_root']).'/' . $web_folder . '/favicon.ico')) exec('cp ' . $conf['rootpath'] . '/conf-custom/index/favicon.ico '.escapeshellcmd($data['new']['document_root']).'/' . $web_folder . '/'); + if(!file_exists($data['new']['document_root'].'/' . $web_folder . '/favicon.ico')) $app->system->exec_safe('cp ? ?', $conf['rootpath'] . '/conf-custom/index/favicon.ico', $data['new']['document_root'].'/' . $web_folder . '/'); } if(is_file($conf['rootpath'] . '/conf-custom/index/robots.txt')) { - if(!file_exists(escapeshellcmd($data['new']['document_root']).'/' . $web_folder . '/robots.txt')) exec('cp ' . $conf['rootpath'] . '/conf-custom/index/robots.txt '.escapeshellcmd($data['new']['document_root']).'/' . $web_folder . '/'); + if(!file_exists($data['new']['document_root'].'/' . $web_folder . '/robots.txt')) $app->system->exec_safe('cp ? ?', $conf['rootpath'] . '/conf-custom/index/robots.txt', $data['new']['document_root'].'/' . $web_folder . '/'); } - //if(is_file($conf['rootpath'] . '/conf-custom/index/.htaccess')) { - // exec('cp ' . $conf['rootpath'] . '/conf-custom/index/.htaccess '.escapeshellcmd($data['new']['document_root']).'/' . $web_folder . '/'); - //} } else { if (file_exists($conf['rootpath'] . '/conf-custom/index/standard_index.html')) { - if(!file_exists(escapeshellcmd($data['new']['document_root']).'/' . $web_folder . '/index.html')) exec('cp ' . $conf['rootpath'] . '/conf-custom/index/standard_index.html '.escapeshellcmd($data['new']['document_root']).'/' . $web_folder . '/index.html'); + if(!file_exists($data['new']['document_root'].'/' . $web_folder . '/index.html')) $app->system->exec_safe('cp ? ?', $conf['rootpath'] . '/conf-custom/index/standard_index.html', $data['new']['document_root'].'/' . $web_folder . '/index.html'); } else { - if(!file_exists(escapeshellcmd($data['new']['document_root']).'/' . $web_folder . '/index.html')) exec('cp ' . $conf['rootpath'] . '/conf/index/standard_index.html_'.substr(escapeshellcmd($conf['language']), 0, 2).' '.escapeshellcmd($data['new']['document_root']).'/' . $web_folder . '/index.html'); + if(!file_exists($data['new']['document_root'].'/' . $web_folder . '/index.html')) $app->system->exec_safe('cp ? ?', $conf['rootpath'] . '/conf/index/standard_index.html_'.substr($conf['language'], 0, 2), $data['new']['document_root'].'/' . $web_folder . '/index.html'); if(is_file($conf['rootpath'] . '/conf/index/favicon.ico')){ - if(!file_exists(escapeshellcmd($data['new']['document_root']).'/' . $web_folder . '/favicon.ico')) exec('cp ' . $conf['rootpath'] . '/conf/index/favicon.ico '.escapeshellcmd($data['new']['document_root']).'/' . $web_folder . '/'); + if(!file_exists($data['new']['document_root'].'/' . $web_folder . '/favicon.ico')) $app->system->exec_safe('cp ? ?', $conf['rootpath'] . '/conf/index/favicon.ico', $data['new']['document_root'].'/' . $web_folder . '/'); } if(is_file($conf['rootpath'] . '/conf/index/robots.txt')){ - if(!file_exists(escapeshellcmd($data['new']['document_root']).'/' . $web_folder . '/robots.txt')) exec('cp ' . $conf['rootpath'] . '/conf/index/robots.txt '.escapeshellcmd($data['new']['document_root']).'/' . $web_folder . '/'); + if(!file_exists($data['new']['document_root'].'/' . $web_folder . '/robots.txt')) $app->system->exec_safe('cp ? ?', $conf['rootpath'] . '/conf/index/robots.txt', $data['new']['document_root'].'/' . $web_folder . '/'); } - //if(is_file($conf['rootpath'] . '/conf/index/.htaccess')) exec('cp ' . $conf['rootpath'] . '/conf/index/.htaccess '.escapeshellcmd($data['new']['document_root']).'/' . $web_folder . '/'); } } } - exec('chmod -R a+r '.escapeshellcmd($data['new']['document_root']).'/' . $web_folder . '/'); + $app->system->exec_safe('chmod -R a+r ?', $data['new']['document_root'].'/' . $web_folder . '/'); //** Copy the error documents on update when the error document checkbox has been activated and was deactivated before } elseif ($this->action == 'update' && ($data['new']['type'] == 'vhost' || $data['new']['type'] == 'vhostsubdomain' || $data['new']['type'] == 'vhostalias') && $data['old']['errordocs'] == 0 && $data['new']['errordocs'] == 1) { - $error_page_path = escapeshellcmd($data['new']['document_root']).'/' . $web_folder . '/error/'; - if (file_exists($conf['rootpath'] . '/conf-custom/error/'.substr(escapeshellcmd($conf['language']), 0, 2))) { - exec('cp ' . $conf['rootpath'] . '/conf-custom/error/'.substr(escapeshellcmd($conf['language']), 0, 2).'/* '.$error_page_path); + $error_page_path = $data['new']['document_root'].'/' . $web_folder . '/error/'; + if (file_exists($conf['rootpath'] . '/conf-custom/error/'.substr($conf['language'], 0, 2))) { + $app->system->exec_safe('cp ?* ?', $conf['rootpath'] . '/conf-custom/error/'.substr($conf['language'], 0, 2).'/', $error_page_path); } else { if (file_exists($conf['rootpath'] . '/conf-custom/error/400.html')) { - exec('cp ' . $conf['rootpath'] . '/conf-custom/error/*.html '.$error_page_path); + $app->system->exec_safe('cp ?*.html ?', $conf['rootpath'] . '/conf-custom/error/', $error_page_path); } else { - exec('cp ' . $conf['rootpath'] . '/conf/error/'.substr(escapeshellcmd($conf['language']), 0, 2).'/* '.$error_page_path); + $app->system->exec_safe('cp ?* ?', $conf['rootpath'] . '/conf/error/'.substr($conf['language'], 0, 2).'/', $error_page_path); } } - exec('chmod -R a+r '.$error_page_path); - exec('chown -R '.$data['new']['system_user'].':'.$data['new']['system_group'].' '.$error_page_path); + $app->system->exec_safe('chmod -R a+r ?', $error_page_path); + $app->system->exec_safe('chown -R ?:? ?', $data['new']['system_user'], $data['new']['system_group'], $error_page_path); } // end copy error docs // Set the quota for the user, but only for vhosts, not vhostsubdomains or vhostalias @@ -758,39 +750,39 @@ class nginx_plugin { } // get the primitive folder for document_root and the filesystem, will need it later. - $df_output=explode(" ", exec("df -T " . escapeshellarg($data['new']['document_root']) . "|awk 'END{print \$2,\$NF}'")); + $df_output=explode(" ", $app->system->exec_safe("df -T ?|awk 'END{print \$2,\$NF}'", $data['new']['document_root'])); $file_system = $df_output[0]; $primitive_root = $df_output[1]; if($file_system == 'xfs') { - exec("xfs_quota -x -c " . escapeshellarg("limit -u bsoft=$mb_soft" . 'm'. " bhard=$mb_hard" . 'm'. " " . $username) . " " . escapeshellarg($primitive_root)); + $app->system->exec_safe("xfs_quota -x -c ? ?", "limit -u bsoft=$mb_soft" . 'm'. " bhard=$mb_hard" . 'm'. " " . $username, $primitive_root); // xfs only supports timers globally, not per user. - exec("xfs_quota -x -c 'timer -bir -i 604800' " . escapeshellarg($primitive_root)); + $app->system->exec_safe("xfs_quota -x -c 'timer -bir -i 604800' ?", $primitive_root); unset($project_uid, $username_position, $xfs_projects); unset($primitive_root, $df_output, $mb_hard, $mb_soft); } else { if($app->system->is_installed('setquota')) { - exec('setquota -u '. $username . ' ' . $blocks_soft . ' ' . $blocks_hard . ' 0 0 -a &> /dev/null'); - exec('setquota -T -u '.$username.' 604800 604800 -a &> /dev/null'); + $app->system->exec_safe('setquota -u ? ? ? 0 0 -a &> /dev/null', $username, $blocks_soft, $blocks_hard); + $app->system->exec_safe('setquota -T -u ? 604800 604800 -a &> /dev/null', $username); } } } if($this->action == 'insert' || $data["new"]["system_user"] != $data["old"]["system_user"]) { // Chown and chmod the directories below the document root - $app->system->_exec('chown -R '.$username.':'.$groupname.' '.escapeshellcmd($data['new']['document_root']).'/' . $web_folder); + $app->system->exec_safe('chown -R ?:? ?', $username, $groupname, $data['new']['document_root'].'/' . $web_folder); // The document root itself has to be owned by root in normal level and by the web owner in security level 20 if($web_config['security_level'] == 20) { - $app->system->_exec('chown '.$username.':'.$groupname.' '.escapeshellcmd($data['new']['document_root']).'/' . $web_folder); + $app->system->exec_safe('chown ?:? ?', $username, $groupname, $data['new']['document_root'].'/' . $web_folder); } else { - $app->system->_exec('chown root:root '.escapeshellcmd($data['new']['document_root']).'/' . $web_folder); + $app->system->exec_safe('chown root:root ?', $data['new']['document_root'].'/' . $web_folder); } } //* add the nginx user to the client group if this is a vhost and security level is set to high, no matter if this is an insert or update and regardless of set_folder_permissions_on_update - if($data['new']['type'] == 'vhost' && $web_config['security_level'] == 20) $app->system->add_user_to_group($groupname, escapeshellcmd($web_config['nginx_user'])); + if($data['new']['type'] == 'vhost' && $web_config['security_level'] == 20) $app->system->add_user_to_group($groupname, $web_config['nginx_user']); //* If the security level is set to high if(($this->action == 'insert' && $data['new']['type'] == 'vhost') or ($web_config['set_folder_permissions_on_update'] == 'y' && $data['new']['type'] == 'vhost') or ($web_folder != $old_web_folder && $data['new']['type'] == 'vhost')) { @@ -820,18 +812,18 @@ class nginx_plugin { if($web_config['add_web_users_to_sshusers_group'] == 'y') { $command = 'usermod'; $command .= ' --groups sshusers'; - $command .= ' '.escapeshellcmd($data['new']['system_user']).' 2>/dev/null'; - $app->system->_exec($command); + $command .= ' ? 2>/dev/null'; + $app->system->exec_safe($command, $data['new']['system_user']); } //* if we have a chrooted nginx environment if($nginx_chrooted) { - $app->system->_exec('chroot '.escapeshellcmd($web_config['website_basedir']).' '.$command); + $app->system->exec_safe('chroot ? ?', $web_config['website_basedir'], $command); //* add the nginx user to the client group in the chroot environment $tmp_groupfile = $app->system->server_conf['group_datei']; $app->system->server_conf['group_datei'] = $web_config['website_basedir'].'/etc/group'; - $app->system->add_user_to_group($groupname, escapeshellcmd($web_config['nginx_user'])); + $app->system->add_user_to_group($groupname, $web_config['nginx_user']); $app->system->server_conf['group_datei'] = $tmp_groupfile; unset($tmp_groupfile); } @@ -945,7 +937,7 @@ class nginx_plugin { if($data['new']['type'] == 'vhost') { // Change the ownership of the error log to the root user - if(!@is_file('/var/log/ispconfig/httpd/'.$data['new']['domain'].'/error.log')) exec('touch '.escapeshellcmd('/var/log/ispconfig/httpd/'.$data['new']['domain'].'/error.log')); + if(!@is_file('/var/log/ispconfig/httpd/'.$data['new']['domain'].'/error.log')) $app->system->exec_safe('touch ?', '/var/log/ispconfig/httpd/'.$data['new']['domain'].'/error.log'); $app->system->chown('/var/log/ispconfig/httpd/'.$data['new']['domain'].'/error.log', 'root'); $app->system->chgrp('/var/log/ispconfig/httpd/'.$data['new']['domain'].'/error.log', 'root'); } @@ -1023,14 +1015,14 @@ class nginx_plugin { } if($default_php_fpm){ - $pool_dir = escapeshellcmd($web_config['php_fpm_pool_dir']); + $pool_dir = $web_config['php_fpm_pool_dir']; } else { $pool_dir = $custom_php_fpm_pool_dir; } $pool_dir = trim($pool_dir); if(substr($pool_dir, -1) != '/') $pool_dir .= '/'; $pool_name = 'web'.$data['new']['domain_id']; - $socket_dir = escapeshellcmd($web_config['php_fpm_socket_dir']); + $socket_dir = $web_config['php_fpm_socket_dir']; if(substr($socket_dir, -1) != '/') $socket_dir .= '/'; if($data['new']['php_fpm_use_socket'] == 'y'){ @@ -1814,7 +1806,7 @@ class nginx_plugin { $basic_auth_locations = $this->_create_web_folder_auth_configuration($data['new']); if(is_array($basic_auth_locations) && !empty($basic_auth_locations)) $tpl->setLoop('basic_auth_locations', $basic_auth_locations); - $vhost_file = escapeshellcmd($web_config['nginx_vhost_conf_dir'].'/'.$data['new']['domain'].'.vhost'); + $vhost_file = $web_config['nginx_vhost_conf_dir'].'/'.$data['new']['domain'].'.vhost'; //* Make a backup copy of vhost file if(file_exists($vhost_file)) copy($vhost_file, $vhost_file.'~'); @@ -1825,17 +1817,17 @@ class nginx_plugin { //* Set the symlink to enable the vhost //* First we check if there is a old type of symlink and remove it - $vhost_symlink = escapeshellcmd($web_config['nginx_vhost_conf_enabled_dir'].'/'.$data['new']['domain'].'.vhost'); + $vhost_symlink = $web_config['nginx_vhost_conf_enabled_dir'].'/'.$data['new']['domain'].'.vhost'; if(is_link($vhost_symlink)) $app->system->unlink($vhost_symlink); //* Remove old or changed symlinks if($data['new']['subdomain'] != $data['old']['subdomain'] or $data['new']['active'] == 'n') { - $vhost_symlink = escapeshellcmd($web_config['nginx_vhost_conf_enabled_dir'].'/900-'.$data['new']['domain'].'.vhost'); + $vhost_symlink = $web_config['nginx_vhost_conf_enabled_dir'].'/900-'.$data['new']['domain'].'.vhost'; if(is_link($vhost_symlink)) { $app->system->unlink($vhost_symlink); $app->log('Removing symlink: '.$vhost_symlink.'->'.$vhost_file, LOGLEVEL_DEBUG); } - $vhost_symlink = escapeshellcmd($web_config['nginx_vhost_conf_enabled_dir'].'/100-'.$data['new']['domain'].'.vhost'); + $vhost_symlink = $web_config['nginx_vhost_conf_enabled_dir'].'/100-'.$data['new']['domain'].'.vhost'; if(is_link($vhost_symlink)) { $app->system->unlink($vhost_symlink); $app->log('Removing symlink: '.$vhost_symlink.'->'.$vhost_file, LOGLEVEL_DEBUG); @@ -1844,9 +1836,9 @@ class nginx_plugin { //* New symlink if($data['new']['subdomain'] == '*') { - $vhost_symlink = escapeshellcmd($web_config['nginx_vhost_conf_enabled_dir'].'/900-'.$data['new']['domain'].'.vhost'); + $vhost_symlink = $web_config['nginx_vhost_conf_enabled_dir'].'/900-'.$data['new']['domain'].'.vhost'; } else { - $vhost_symlink = escapeshellcmd($web_config['nginx_vhost_conf_enabled_dir'].'/100-'.$data['new']['domain'].'.vhost'); + $vhost_symlink = $web_config['nginx_vhost_conf_enabled_dir'].'/100-'.$data['new']['domain'].'.vhost'; } if($data['new']['active'] == 'y' && !is_link($vhost_symlink)) { symlink($vhost_file, $vhost_symlink); @@ -1855,22 +1847,22 @@ class nginx_plugin { // remove old symlink and vhost file, if domain name of the site has changed if($this->action == 'update' && $data['old']['domain'] != '' && $data['new']['domain'] != $data['old']['domain']) { - $vhost_symlink = escapeshellcmd($web_config['nginx_vhost_conf_enabled_dir'].'/900-'.$data['old']['domain'].'.vhost'); + $vhost_symlink = $web_config['nginx_vhost_conf_enabled_dir'].'/900-'.$data['old']['domain'].'.vhost'; if(is_link($vhost_symlink)) { $app->system->unlink($vhost_symlink); $app->log('Removing symlink: '.$vhost_symlink.'->'.$vhost_file, LOGLEVEL_DEBUG); } - $vhost_symlink = escapeshellcmd($web_config['nginx_vhost_conf_enabled_dir'].'/100-'.$data['old']['domain'].'.vhost'); + $vhost_symlink = $web_config['nginx_vhost_conf_enabled_dir'].'/100-'.$data['old']['domain'].'.vhost'; if(is_link($vhost_symlink)) { $app->system->unlink($vhost_symlink); $app->log('Removing symlink: '.$vhost_symlink.'->'.$vhost_file, LOGLEVEL_DEBUG); } - $vhost_symlink = escapeshellcmd($web_config['nginx_vhost_conf_enabled_dir'].'/'.$data['old']['domain'].'.vhost'); + $vhost_symlink = $web_config['nginx_vhost_conf_enabled_dir'].'/'.$data['old']['domain'].'.vhost'; if(is_link($vhost_symlink)) { $app->system->unlink($vhost_symlink); $app->log('Removing symlink: '.$vhost_symlink.'->'.$vhost_file, LOGLEVEL_DEBUG); } - $vhost_file = escapeshellcmd($web_config['nginx_vhost_conf_dir'].'/'.$data['old']['domain'].'.vhost'); + $vhost_file = $web_config['nginx_vhost_conf_dir'].'/'.$data['old']['domain'].'.vhost'; $app->system->unlink($vhost_file); $app->log('Removing file: '.$vhost_file, LOGLEVEL_DEBUG); } @@ -2062,14 +2054,10 @@ class nginx_plugin { if($data['old']['type'] == 'vhost' || $data['old']['type'] == 'vhostsubdomain' || $data['old']['type'] == 'vhostalias'){ if(is_array($log_folders) && !empty($log_folders)){ foreach($log_folders as $log_folder){ - //if($app->system->is_mounted($data['old']['document_root'].'/'.$log_folder)) exec('umount '.escapeshellarg($data['old']['document_root'].'/'.$log_folder)); - //exec('fuser -km '.escapeshellarg($data['old']['document_root'].'/'.$log_folder).' 2>/dev/null'); - exec('umount '.escapeshellarg($data['old']['document_root'].'/'.$log_folder).' 2>/dev/null'); + $app->system->exec_safe('umount ? 2>/dev/null', $data['old']['document_root'].'/'.$log_folder); } } else { - //if($app->system->is_mounted($data['old']['document_root'].'/'.$log_folder)) exec('umount '.escapeshellarg($data['old']['document_root'].'/'.$log_folder)); - //exec('fuser -km '.escapeshellarg($data['old']['document_root'].'/'.$log_folder).' 2>/dev/null'); - exec('umount '.escapeshellarg($data['old']['document_root'].'/'.$log_folder).' 2>/dev/null'); + $app->system->exec_safe('umount ? 2>/dev/null', $data['old']['document_root'].'/'.$log_folder); } // remove letsencrypt if it exists (renew will always fail otherwise) @@ -2109,19 +2097,19 @@ class nginx_plugin { } else { //* This is a website // Deleting the vhost file, symlink and the data directory - $vhost_file = escapeshellcmd($web_config['nginx_vhost_conf_dir'].'/'.$data['old']['domain'].'.vhost'); + $vhost_file = $web_config['nginx_vhost_conf_dir'].'/'.$data['old']['domain'].'.vhost'; - $vhost_symlink = escapeshellcmd($web_config['nginx_vhost_conf_enabled_dir'].'/'.$data['old']['domain'].'.vhost'); + $vhost_symlink = $web_config['nginx_vhost_conf_enabled_dir'].'/'.$data['old']['domain'].'.vhost'; if(is_link($vhost_symlink)){ $app->system->unlink($vhost_symlink); $app->log('Removing symlink: '.$vhost_symlink.'->'.$vhost_file, LOGLEVEL_DEBUG); } - $vhost_symlink = escapeshellcmd($web_config['nginx_vhost_conf_enabled_dir'].'/900-'.$data['old']['domain'].'.vhost'); + $vhost_symlink = $web_config['nginx_vhost_conf_enabled_dir'].'/900-'.$data['old']['domain'].'.vhost'; if(is_link($vhost_symlink)){ $app->system->unlink($vhost_symlink); $app->log('Removing symlink: '.$vhost_symlink.'->'.$vhost_file, LOGLEVEL_DEBUG); } - $vhost_symlink = escapeshellcmd($web_config['nginx_vhost_conf_enabled_dir'].'/100-'.$data['old']['domain'].'.vhost'); + $vhost_symlink = $web_config['nginx_vhost_conf_enabled_dir'].'/100-'.$data['old']['domain'].'.vhost'; if(is_link($vhost_symlink)){ $app->system->unlink($vhost_symlink); $app->log('Removing symlink: '.$vhost_symlink.'->'.$vhost_file, LOGLEVEL_DEBUG); @@ -2131,11 +2119,11 @@ class nginx_plugin { $app->log('Removing vhost file: '.$vhost_file, LOGLEVEL_DEBUG); if($data['old']['type'] == 'vhost' || $data['old']['type'] == 'vhostsubdomain' || $data['old']['type'] == 'vhostalias') { - $docroot = escapeshellcmd($data['old']['document_root']); + $docroot = $data['old']['document_root']; if($docroot != '' && !stristr($docroot, '..')) { if($data['old']['type'] == 'vhost') { // this is a vhost - we delete everything in here. - exec('rm -rf '.$docroot); + $app->system->exec_safe('rm -rf ?', $docroot); } elseif(!stristr($data['old']['web_folder'], '..')) { // this is a vhost subdomain // IMPORTANT: do some folder checks before we delete this! @@ -2185,7 +2173,7 @@ class nginx_plugin { unset($used_paths); } - if($do_delete === true && $delete_folder !== '') exec('rm -rf '.$docroot.'/'.$delete_folder); + if($do_delete === true && $delete_folder !== '') $app->system->exec_safe('rm -rf ?', $docroot.'/'.$delete_folder); unset($delete_folder); unset($path_elements); @@ -2198,12 +2186,12 @@ class nginx_plugin { $fastcgi_starter_path = str_replace('[system_user]', $data['old']['system_user'], $web_config['fastcgi_starter_path']); if($data['old']['type'] == 'vhost') { if (is_dir($fastcgi_starter_path)) { - exec('rm -rf '.$fastcgi_starter_path); + $app->system->exec_safe('rm -rf ?', $fastcgi_starter_path); } } else { $fcgi_starter_script = $fastcgi_starter_path.$web_config['fastcgi_starter_script'].'_web'.$data['old']['domain_id']; if (file_exists($fcgi_starter_script)) { - exec('rm -f '.$fcgi_starter_script); + $app->system->exec_safe('rm -f ?', $fcgi_starter_script); } } } @@ -2224,12 +2212,12 @@ class nginx_plugin { $cgi_starter_path = str_replace('[system_user]', $data['old']['system_user'], $web_config['cgi_starter_path']); if($data['old']['type'] == 'vhost') { if (is_dir($cgi_starter_path)) { - exec('rm -rf '.$cgi_starter_path); + $app->system->exec_safe('rm -rf ?', $cgi_starter_path); } } else { $cgi_starter_script = $cgi_starter_path.'php-cgi-starter_web'.$data['old']['domain_id']; if (file_exists($cgi_starter_script)) { - exec('rm -f '.$cgi_starter_script); + $app->system->exec_safe('rm -f ?', $cgi_starter_script); } } } @@ -2258,16 +2246,16 @@ class nginx_plugin { } // Delete the log file directory - $vhost_logfile_dir = escapeshellcmd('/var/log/ispconfig/httpd/'.$data['old']['domain']); - if($data['old']['domain'] != '' && !stristr($vhost_logfile_dir, '..')) exec('rm -rf '.$vhost_logfile_dir); + $vhost_logfile_dir = '/var/log/ispconfig/httpd/'.$data['old']['domain']; + if($data['old']['domain'] != '' && !stristr($vhost_logfile_dir, '..')) $app->system->exec_safe('rm -rf ?', $vhost_logfile_dir); $app->log('Removing website logfile directory: '.$vhost_logfile_dir, LOGLEVEL_DEBUG); if($data['old']['type'] == 'vhost') { //delete the web user - $command = 'killall -u '.escapeshellcmd($data['old']['system_user']).' ; userdel'; - $command .= ' '.escapeshellcmd($data['old']['system_user']); - exec($command); - if($nginx_chrooted) $app->system->_exec('chroot '.escapeshellcmd($web_config['website_basedir']).' '.$command); + $command = 'killall -u ? ; userdel'; + $command .= ' ?'; + $app->system->exec_safe($command, $data['old']['system_user'], $data['old']['system_user']); + if($nginx_chrooted) $app->system->exec_safe('chroot ? ?', $web_config['website_basedir'], $command); } @@ -2288,7 +2276,7 @@ class nginx_plugin { if($mount_backup){ $web_backup_dir = $backup_dir.'/web'.$data_old['domain_id']; //** do not use rm -rf $web_backup_dir because database(s) may exits - exec(escapeshellcmd('rm -f '.$web_backup_dir.'/web'.$data_old['domain_id'].'_').'*'); + $app->system->exec_safe('rm -f ?*', $web_backup_dir.'/web'.$data_old['domain_id'].'_'); //* cleanup database $sql = "DELETE FROM web_backup WHERE server_id = ? AND parent_domain_id = ? AND filename LIKE ?"; $app->db->query($sql, $conf['server_id'], $data_old['domain_id'], "web".$data_old['domain_id']."_%"); @@ -2338,7 +2326,7 @@ class nginx_plugin { //* Get the folder path. if(substr($folder['path'], 0, 1) == '/') $folder['path'] = substr($folder['path'], 1); if(substr($folder['path'], -1) == '/') $folder['path'] = substr($folder['path'], 0, -1); - $folder_path = escapeshellcmd($website['document_root'].'/' . $web_folder . '/'.$folder['path']); + $folder_path = $website['document_root'].'/' . $web_folder . '/'.$folder['path']; if(substr($folder_path, -1) != '/') $folder_path .= '/'; //* Check if the resulting path is inside the docroot @@ -2444,7 +2432,7 @@ class nginx_plugin { if(substr($data['new']['path'], 0, 1) == '/') $data['new']['path'] = substr($data['new']['path'], 1); if(substr($data['new']['path'], -1) == '/') $data['new']['path'] = substr($data['new']['path'], 0, -1); - $new_folder_path = escapeshellcmd($website['document_root'].'/' . $web_folder . '/'.$data['new']['path']); + $new_folder_path = $website['document_root'].'/' . $web_folder . '/'.$data['new']['path']; if(substr($new_folder_path, -1) != '/') $new_folder_path .= '/'; //* Check if the resulting path is inside the docroot @@ -2491,7 +2479,7 @@ class nginx_plugin { //* Create the domain.auth file which is included in the vhost configuration file $app->uses('getconf'); $web_config = $app->getconf->get_server_config($conf['server_id'], 'web'); - $basic_auth_file = escapeshellcmd($web_config['nginx_vhost_conf_dir'].'/'.$website['domain'].'.auth'); + $basic_auth_file = $web_config['nginx_vhost_conf_dir'].'/'.$website['domain'].'.auth'; //$app->load('tpl'); //$tpl = new tpl(); //$tpl->newTemplate('nginx_http_authentication.auth.master'); @@ -2616,9 +2604,9 @@ class nginx_plugin { $content = str_replace('{SYSTEM_USER}', $data['new']['system_user'], $content); file_put_contents('/etc/init.d/hhvm_' . $data['new']['system_user'], $content); - exec('chmod +x /etc/init.d/hhvm_' . $data['new']['system_user'] . ' >/dev/null 2>&1'); - exec('/usr/sbin/update-rc.d hhvm_' . $data['new']['system_user'] . ' defaults >/dev/null 2>&1'); - exec('/etc/init.d/hhvm_' . $data['new']['system_user'] . ' restart >/dev/null 2>&1'); + $app->system->exec_safe('chmod +x ? >/dev/null 2>&1', '/etc/init.d/hhvm_' . $data['new']['system_user']); + $app->system->exec_safe('/usr/sbin/update-rc.d ? defaults >/dev/null 2>&1', 'hhvm_' . $data['new']['system_user']); + $app->system->exec_safe('/etc/init.d/hhvm_' . $data['new']['system_user'] . ' restart >/dev/null 2>&1'); if(is_dir('/etc/monit/conf.d')){ $monit_content = str_replace('{SYSTEM_USER}', $data['new']['system_user'], $monit_content); @@ -2630,7 +2618,7 @@ class nginx_plugin { } elseif($data['new']['php'] != 'hhvm' && $data['old']['php'] == 'hhvm') { if($data['old']['system_user'] != ''){ exec('/etc/init.d/hhvm_' . $data['old']['system_user'] . ' stop >/dev/null 2>&1'); - exec('/usr/sbin/update-rc.d hhvm_' . $data['old']['system_user'] . ' remove >/dev/null 2>&1'); + $app->system->exec_safe('/usr/sbin/update-rc.d remove >/dev/null 2>&1', 'hhvm_' . $data['old']['system_user']); unlink('/etc/init.d/hhvm_' . $data['old']['system_user']); if(is_file('/etc/hhvm/'.$data['old']['system_user'].'.ini')) unlink('/etc/hhvm/'.$data['old']['system_user'].'.ini'); } @@ -2743,7 +2731,7 @@ class nginx_plugin { $tpl->setVar('document_root', $data['new']['document_root']); $tpl->setVar('security_level', $web_config['security_level']); $tpl->setVar('domain', $data['new']['domain']); - $php_open_basedir = ($data['new']['php_open_basedir'] == '')?escapeshellcmd($data['new']['document_root']):escapeshellcmd($data['new']['php_open_basedir']); + $php_open_basedir = ($data['new']['php_open_basedir'] == '')?$data['new']['document_root']:$data['new']['php_open_basedir']; $tpl->setVar('php_open_basedir', $php_open_basedir); if($php_open_basedir != ''){ $tpl->setVar('enable_php_open_basedir', ''); @@ -2830,7 +2818,7 @@ class nginx_plugin { unset($tpl); // delete pool in all other PHP versions - $default_pool_dir = trim(escapeshellcmd($web_config['php_fpm_pool_dir'])); + $default_pool_dir = trim($web_config['php_fpm_pool_dir']); if(substr($default_pool_dir, -1) != '/') $default_pool_dir .= '/'; if($default_pool_dir != $pool_dir){ if ( @is_file($default_pool_dir.$pool_name.'.conf') ) { @@ -2875,7 +2863,7 @@ class nginx_plugin { } if($default_php_fpm){ - $pool_dir = escapeshellcmd($web_config['php_fpm_pool_dir']); + $pool_dir = $web_config['php_fpm_pool_dir']; } else { $pool_dir = $custom_php_fpm_pool_dir; } @@ -2890,7 +2878,7 @@ class nginx_plugin { } // delete pool in all other PHP versions - $default_pool_dir = trim(escapeshellcmd($web_config['php_fpm_pool_dir'])); + $default_pool_dir = trim($web_config['php_fpm_pool_dir']); if(substr($default_pool_dir, -1) != '/') $default_pool_dir .= '/'; if($default_pool_dir != $pool_dir){ if ( @is_file($default_pool_dir.$pool_name.'.conf') ) { @@ -3093,7 +3081,7 @@ class nginx_plugin { } if($app->system->is_group('client'.$client_id)){ - $app->system->_exec('groupdel client'.$client_id); + $app->system->exec_safe('groupdel ?', 'client'.$client_id); $app->log('Removed group client'.$client_id, LOGLEVEL_DEBUG); } } diff --git a/server/plugins-available/nginx_reverseproxy_plugin.inc.php b/server/plugins-available/nginx_reverseproxy_plugin.inc.php index b5881dbf2..101304225 100644 --- a/server/plugins-available/nginx_reverseproxy_plugin.inc.php +++ b/server/plugins-available/nginx_reverseproxy_plugin.inc.php @@ -176,7 +176,7 @@ class nginx_reverseproxy_plugin { } - $vhost_file = escapeshellcmd($nginx_config['nginx_vhost_conf_dir'].'/'.$data['new']['domain'].'.vhost'); + $vhost_file = $nginx_config['nginx_vhost_conf_dir'].'/'.$data['new']['domain'].'.vhost'; //* Make a backup copy of vhost file copy($vhost_file, $vhost_file.'~'); @@ -187,7 +187,7 @@ class nginx_reverseproxy_plugin { // Set the symlink to enable the vhost - $vhost_symlink = escapeshellcmd($nginx_config['nginx_vhost_conf_enabled_dir'].'/'.$data['new']['domain'].'.vhost'); + $vhost_symlink = $nginx_config['nginx_vhost_conf_enabled_dir'].'/'.$data['new']['domain'].'.vhost'; if($data['new']['active'] == 'y' && !is_link($vhost_symlink)) { symlink($vhost_file, $vhost_symlink); $app->log('Creating symlink: '.$vhost_symlink.'->'.$vhost_file, LOGLEVEL_DEBUG); @@ -199,18 +199,18 @@ class nginx_reverseproxy_plugin { $app->log('Removing symlink: '.$vhost_symlink.'->'.$vhost_file, LOGLEVEL_DEBUG); } - if(!is_dir('/var/log/ispconfig/nginx/'.$data['new']['domain'])) exec('mkdir -p /var/log/ispconfig/nginx/'.$data['new']['domain']); + if(!is_dir('/var/log/ispconfig/nginx/'.$data['new']['domain'])) $app->system->exec_safe('mkdir -p ?', '/var/log/ispconfig/nginx/'.$data['new']['domain']); // remove old symlink and vhost file, if domain name of the site has changed if($this->action == 'update' && $data['old']['domain'] != '' && $data['new']['domain'] != $data['old']['domain']) { - $vhost_symlink = escapeshellcmd($nginx_config['nginx_vhost_conf_enabled_dir'].'/'.$data['old']['domain'].'.vhost'); + $vhost_symlink = $nginx_config['nginx_vhost_conf_enabled_dir'].'/'.$data['old']['domain'].'.vhost'; unlink($vhost_symlink); $app->log('Removing symlink: '.$vhost_symlink.'->'.$vhost_file, LOGLEVEL_DEBUG); - $vhost_file = escapeshellcmd($nginx_config['nginx_vhost_conf_dir'].'/'.$data['old']['domain'].'.vhost'); + $vhost_file = $nginx_config['nginx_vhost_conf_dir'].'/'.$data['old']['domain'].'.vhost'; unlink($vhost_file); $app->log('Removing file: '.$vhost_file, LOGLEVEL_DEBUG); - if(is_dir('/var/log/ispconfig/nginx/'.$data['old']['domain'])) exec('rm -rf /var/log/ispconfig/nginx/'.$data['old']['domain']); + if(is_dir('/var/log/ispconfig/nginx/'.$data['old']['domain'])) $app->system->exec_safe('rm -rf ?', '/var/log/ispconfig/nginx/'.$data['old']['domain']); } // request a httpd reload when all records have been processed @@ -232,7 +232,7 @@ class nginx_reverseproxy_plugin { function ssl($event_name, $data) { global $app, $conf; - if(!is_dir($conf['nginx']['config_dir'].'/ssl')) exec('mkdir -p '.$conf['nginx']['config_dir'].'/ssl'); + if(!is_dir($conf['nginx']['config_dir'].'/ssl')) $app->system->exec_safe('mkdir -p ?', $conf['nginx']['config_dir'].'/ssl'); $ssl_dir = $conf['nginx']['config_dir'].'/ssl'; $domain = $data['new']['ssl_domain']; $key_file = $ssl_dir.'/'.$domain.'.key.org'; @@ -250,7 +250,7 @@ class nginx_reverseproxy_plugin { //$csr_file = $ssl_dir.'/'.$domain.".csr"; //$crt_file = $ssl_dir.'/'.$domain.".crt"; //$bundle_file = $ssl_dir.'/'.$domain.".bundle"; - $this->_exec('rsync -v -e ssh root@'.$web['ip_address'].':~/$src_ssl_dir '.$ssl_dir); + $app->system->exec_safe('rsync -v -e ssh root@?:? ?', $web['ip_address'], '~/'.$src_ssl_dir, $ssl_dir); $app->log('Syncing SSL Cert for: '.$domain, LOGLEVEL_DEBUG); } @@ -284,31 +284,24 @@ class nginx_reverseproxy_plugin { //* This is a website // Deleting the vhost file, symlink and the data directory - $vhost_symlink = escapeshellcmd($nginx_config['nginx_vhost_conf_enabled_dir'].'/'.$data['old']['domain'].'.vhost'); + $vhost_symlink = $nginx_config['nginx_vhost_conf_enabled_dir'].'/'.$data['old']['domain'].'.vhost'; unlink($vhost_symlink); $app->log('Removing symlink: '.$vhost_symlink.'->'.$vhost_file, LOGLEVEL_DEBUG); - $vhost_file = escapeshellcmd($nginx_config['nginx_vhost_conf_dir'].'/'.$data['old']['domain'].'.vhost'); + $vhost_file = $nginx_config['nginx_vhost_conf_dir'].'/'.$data['old']['domain'].'.vhost'; unlink($vhost_file); $app->log('Removing vhost file: '.$vhost_file, LOGLEVEL_DEBUG); // Delete the log file directory - $vhost_logfile_dir = escapeshellcmd('/var/log/ispconfig/nginx/'.$data['old']['domain']); - if($data['old']['domain'] != '' && !stristr($vhost_logfile_dir, '..')) exec('rm -rf '.$vhost_logfile_dir); + $vhost_logfile_dir = '/var/log/ispconfig/nginx/'.$data['old']['domain']; + if($data['old']['domain'] != '' && !stristr($vhost_logfile_dir, '..')) $app->system->exec_safe('rm -rf ?', $vhost_logfile_dir); $app->log('Removing website logfile directory: '.$vhost_logfile_dir, LOGLEVEL_DEBUG); } } - //* Wrapper for exec function for easier debugging - private function _exec($command) { - global $app; - $app->log('exec: '.$command, LOGLEVEL_DEBUG); - exec($command); - } - function rewrite_insert($event_name, $data) { global $app, $conf; @@ -329,7 +322,7 @@ class nginx_reverseproxy_plugin { $tpl->newTemplate("nginx_reverseproxy_rewrites.conf.master"); if (!empty($rules))$tpl->setLoop('nginx_rewrite_rules', $rules); - $rewrites_file = escapeshellcmd($nginx_config['nginx_vhost_conf_dir'].'/default.rewrites.conf'); + $rewrites_file = $nginx_config['nginx_vhost_conf_dir'].'/default.rewrites.conf'; //* Make a backup copy of vhost file copy($rewrites_file, $rewrites_file.'~'); @@ -340,7 +333,7 @@ class nginx_reverseproxy_plugin { // Set the symlink to enable the vhost - $rewrite_symlink = escapeshellcmd($nginx_config['nginx_vhost_conf_enabled_dir'].'/default.rewrites.conf'); + $rewrite_symlink = $nginx_config['nginx_vhost_conf_enabled_dir'].'/default.rewrites.conf'; if(!is_link($rewrite_symlink)) { symlink($rewrites_file, $rewrite_symlink); diff --git a/server/plugins-available/openvz_plugin.inc.php b/server/plugins-available/openvz_plugin.inc.php index 5cc4bf652..f17edb7b8 100644 --- a/server/plugins-available/openvz_plugin.inc.php +++ b/server/plugins-available/openvz_plugin.inc.php @@ -86,11 +86,11 @@ class openvz_plugin { } $tmp = $app->db->queryOneRecord("SELECT template_file FROM openvz_ostemplate WHERE ostemplate_id = ?", $data['new']['ostemplate_id']); - $ostemplate = escapeshellcmd($tmp['template_file']); + $ostemplate = $tmp['template_file']; unset($tmp); //* Create the virtual machine - exec("vzctl create $veid --ostemplate $ostemplate"); + $app->system->exec_safe("vzctl create ? --ostemplate ?", $veid, $ostemplate); $app->log("Create OpenVZ VM: vzctl create $veid --ostemplate $ostemplate", LOGLEVEL_DEBUG); //* Write the configuration of the VM @@ -103,7 +103,7 @@ class openvz_plugin { } //* Set the root password in the virtual machine - exec("vzctl set $veid --userpasswd root:".escapeshellcmd($data['new']['vm_password'])); + $app->system->exec_safe("vzctl set ? --userpasswd root:?", $veid, $data['new']['vm_password']); } @@ -123,7 +123,7 @@ class openvz_plugin { //* new diskspace for ploop-containers requieres "vzctl set" if($data['new']['diskspace'] != $data['old']['diskspace']) { - exec("vzctl set ".$veid." --diskspace ".$data['new']['diskspace']."G --save"); + escapeshell("vzctl set ? --diskspace ? --save", $veid, $data['new']['diskspace']."G"); } //* Apply config changes to the VM @@ -140,7 +140,7 @@ class openvz_plugin { //* Set the root password in the virtual machine if($data['new']['vm_password'] != $data['old']['vm_password']) { - exec("vzctl set $veid --userpasswd root:".escapeshellcmd($data['new']['vm_password'])); + $app->system->exec_safe("vzctl set ? --userpasswd root:?", $veid, $data['new']['vm_password']); } @@ -193,12 +193,12 @@ class openvz_plugin { $parts = explode(':', $data); $veid = intval($parts[0]); $template_cache_dir = '/vz/template/cache/'; - $template_name = escapeshellcmd($parts[1]); + $template_name = $parts[1]; if($veid > 0 && $template_name != '' && is_dir($template_cache_dir)) { - $command = "vzdump --suspend --compress --stdexcludes --dumpdir $template_cache_dir $veid"; - exec($command); - exec("mv ".$template_cache_dir."vzdump-openvz-".$veid."*.tgz ".$template_cache_dir.$template_name.".tar.gz"); - exec("rm -f ".$template_cache_dir."vzdump-openvz-".$veid."*.log"); + $command = "vzdump --suspend --compress --stdexcludes --dumpdir ? ?"; + $app->system->exec_safe($command, $template_cache_dir, $veid); + $app->system->exec_safe("mv ?*.tgz ?", $template_cache_dir."vzdump-openvz-".$veid, $template_cache_dir.$template_name.".tar.gz"); + $app->system->exec_safe("rm -f ?*.log", $template_cache_dir."vzdump-openvz-".$veid); } $app->log("Created OpenVZ OStemplate $template_name from VM $veid", LOGLEVEL_DEBUG); return 'ok'; diff --git a/server/plugins-available/postfix_server_plugin.inc.php b/server/plugins-available/postfix_server_plugin.inc.php index 2b0b1ba67..569959b84 100644 --- a/server/plugins-available/postfix_server_plugin.inc.php +++ b/server/plugins-available/postfix_server_plugin.inc.php @@ -99,7 +99,7 @@ class postfix_server_plugin { exec("postconf -e 'smtp_sasl_auth_enable = no'"); } - exec("postconf -e 'relayhost = ".$mail_config['relayhost']."'"); + $app->system->exec_safe("postconf -e ?", 'relayhost = '.$mail_config['relayhost']); file_put_contents('/etc/postfix/sasl_passwd', $content); chmod('/etc/postfix/sasl_passwd', 0600); chown('/etc/postfix/sasl_passwd', 'root'); @@ -138,7 +138,7 @@ class postfix_server_plugin { if($value != '') $new_options[] = "reject_rbl_client ".$value; } } - exec("postconf -e 'smtpd_recipient_restrictions = ".implode(", ", $new_options)."'"); + $app->system->exec_safe("postconf -e ?", 'smtpd_recipient_restrictions = '.implode(", ", $new_options)); exec('postfix reload'); } @@ -157,7 +157,7 @@ class postfix_server_plugin { while (isset($new_options[$i]) && substr($new_options[$i], 0, 19) == 'check_sender_access') ++$i; array_splice($new_options, $i, 0, array('reject_authenticated_sender_login_mismatch')); } - exec("postconf -e 'smtpd_sender_restrictions = ".implode(", ", $new_options)."'"); + $app->system->exec_safe("postconf -e ?", 'smtpd_sender_restrictions = '.implode(", ", $new_options)); exec('postfix reload'); } @@ -182,9 +182,9 @@ class postfix_server_plugin { } } - exec("postconf -e 'mailbox_size_limit = ".intval($mail_config['mailbox_size_limit']*1024*1024)."'"); //TODO : no reload? - exec("postconf -e 'message_size_limit = ".intval($mail_config['message_size_limit']*1024*1024)."'"); //TODO : no reload? - + exec("postconf -e 'mailbox_size_limit = ".intval($mail_config['mailbox_size_limit']*1024*1024)."'"); + exec("postconf -e 'message_size_limit = ".intval($mail_config['message_size_limit']*1024*1024)."'"); + exec('postfix reload'); } diff --git a/server/plugins-available/powerdns_plugin.inc.php b/server/plugins-available/powerdns_plugin.inc.php index 1ecdfaf50..2e44e014d 100644 --- a/server/plugins-available/powerdns_plugin.inc.php +++ b/server/plugins-available/powerdns_plugin.inc.php @@ -448,16 +448,20 @@ class powerdns_plugin { } function notifySlave($data) { + global $app; + $pdns_control = $this->find_pdns_control(); if ( $pdns_control != false ) { - exec($pdns_control . ' notify ' . rtrim($data["new"]["origin"],".")); + $app->system->exec_safe($pdns_control . ' notify ?', rtrim($data["new"]["origin"],".")); } } function fetchFromMaster($data) { + global $app; + $pdns_control = $this->find_pdns_control(); if ( $pdns_control != false ) { - exec($pdns_control . ' retrieve ' . rtrim($data["new"]["origin"],".")); + $app->system->exec_safe($pdns_control . ' retrieve ?', rtrim($data["new"]["origin"],".")); } } @@ -693,11 +697,11 @@ class powerdns_plugin { if ( $pdns_pdnssec != false ) { if (isset($data["new"]["origin"])) { //* data has origin field only for SOA recordtypes - exec($pdns_pdnssec . ' rectify-zone ' . rtrim($data["new"]["origin"],".")); + $app->system->exec_safe($pdns_pdnssec . ' rectify-zone ?', rtrim($data["new"]["origin"],".")); } else { // get origin from DB for all other recordtypes $zn = $app->db->queryOneRecord("SELECT d.name AS name FROM powerdns.domains d, powerdns.records r WHERE r.ispconfig_id=? AND r.domain_id = d.id", $data["new"]["id"]); - exec($pdns_pdnssec . ' rectify-zone ' . trim($zn["name"])); + $app->system->exec_safe($pdns_pdnssec . ' rectify-zone ?', trim($zn["name"])); } } } diff --git a/server/plugins-available/shelluser_base_plugin.inc.php b/server/plugins-available/shelluser_base_plugin.inc.php index 9c4568901..90e3293ad 100755 --- a/server/plugins-available/shelluser_base_plugin.inc.php +++ b/server/plugins-available/shelluser_base_plugin.inc.php @@ -115,34 +115,28 @@ class shelluser_base_plugin { // Create home base directory if it does not exist if(!is_dir($data['new']['dir'].'/home')){ - $app->file->mkdirs(escapeshellcmd($data['new']['dir'].'/home'), '0755'); + $app->file->mkdirs($data['new']['dir'].'/home', '0755'); } // Change ownership of home base dir to root user - $app->system->chown(escapeshellcmd($data['new']['dir'].'/home'),'root'); - $app->system->chgrp(escapeshellcmd($data['new']['dir'].'/home'),'root'); - $app->system->chmod(escapeshellcmd($data['new']['dir'].'/home'),0755); + $app->system->chown($data['new']['dir'].'/home','root'); + $app->system->chgrp($data['new']['dir'].'/home','root'); + $app->system->chmod($data['new']['dir'].'/home',0755); if(!is_dir($homedir)){ - $app->file->mkdirs(escapeshellcmd($homedir), '0750'); - $app->system->chown(escapeshellcmd($homedir),escapeshellcmd($data['new']['puser']),false); - $app->system->chgrp(escapeshellcmd($homedir),escapeshellcmd($data['new']['pgroup']),false); + $app->file->mkdirs($homedir, '0750'); + $app->system->chown($homedir,$data['new']['puser'],false); + $app->system->chgrp($homedir,$data['new']['pgroup'],false); } - $command = 'useradd'; - $command .= ' -d '.escapeshellcmd($homedir); - $command .= ' -g '.escapeshellcmd($data['new']['pgroup']); - $command .= ' -o '; // non unique - if($data['new']['password'] != '') $command .= ' -p '.escapeshellcmd($data['new']['password']); - $command .= ' -s '.escapeshellcmd($data['new']['shell']); - $command .= ' -u '.escapeshellcmd($uid); - $command .= ' '.escapeshellcmd($data['new']['username']); - - exec($command); + $command = 'useradd -d ? -g ? -o ?'; // non unique + if($data['new']['password'] != '') $command .= ' -p ?'; + $command .= ' -s ? -u ? ?'; + $app->system->exec_safe($command, $homedir, $data['new']['pgroup'], $data['new']['password'], $data['new']['shell'], $uid, $data['new']['username']); $app->log("Executed command: ".$command, LOGLEVEL_DEBUG); $app->log("Added shelluser: ".$data['new']['username'], LOGLEVEL_DEBUG); - $app->system->chown(escapeshellcmd($data['new']['dir']),escapeshellcmd($data['new']['username']),false); - $app->system->chgrp(escapeshellcmd($data['new']['dir']),escapeshellcmd($data['new']['pgroup']),false); + $app->system->chown($data['new']['dir'],$data['new']['username'],false); + $app->system->chgrp($data['new']['dir'],$data['new']['pgroup'],false); // call the ssh-rsa update function @@ -152,21 +146,21 @@ class shelluser_base_plugin { $this->_setup_ssh_rsa(); //* Create .bash_history file - $app->system->touch(escapeshellcmd($homedir).'/.bash_history'); - $app->system->chmod(escapeshellcmd($homedir).'/.bash_history', 0750); - $app->system->chown(escapeshellcmd($homedir).'/.bash_history', $data['new']['username']); - $app->system->chgrp(escapeshellcmd($homedir).'/.bash_history', $data['new']['pgroup']); + $app->system->touch($homedir.'/.bash_history'); + $app->system->chmod($homedir.'/.bash_history', 0750); + $app->system->chown($homedir.'/.bash_history', $data['new']['username']); + $app->system->chgrp($homedir.'/.bash_history', $data['new']['pgroup']); //* Create .profile file - $app->system->touch(escapeshellcmd($homedir).'/.profile'); - $app->system->chmod(escapeshellcmd($homedir).'/.profile', 0644); - $app->system->chown(escapeshellcmd($homedir).'/.profile', $data['new']['username']); - $app->system->chgrp(escapeshellcmd($homedir).'/.profile', $data['new']['pgroup']); + $app->system->touch($homedir.'/.profile'); + $app->system->chmod($homedir.'/.profile', 0644); + $app->system->chown($homedir.'/.profile', $data['new']['username']); + $app->system->chgrp($homedir.'/.profile', $data['new']['pgroup']); //* Disable shell user temporarily if we use jailkit if($data['new']['chroot'] == 'jailkit') { - $command = 'usermod -s /bin/false -L '.escapeshellcmd($data['new']['username']).' 2>/dev/null'; - exec($command); + $command = 'usermod -s /bin/false -L ? 2>/dev/null'; + $app->system->exec_safe($command, $data['new']['username']); $app->log("Disabling shelluser temporarily: ".$command, LOGLEVEL_DEBUG); } @@ -233,55 +227,32 @@ class shelluser_base_plugin { if($app->system->is_user($data['old']['username'])) { //* Remove webfolder protection $app->system->web_folder_protection($web['document_root'], false); - - /* - $command = 'usermod'; - $command .= ' --home '.escapeshellcmd($data['new']['dir']); - $command .= ' --gid '.escapeshellcmd($data['new']['pgroup']); - // $command .= ' --non-unique '; - $command .= ' --password '.escapeshellcmd($data['new']['password']); - if($data['new']['chroot'] != 'jailkit') $command .= ' --shell '.escapeshellcmd($data['new']['shell']); - // $command .= ' --uid '.escapeshellcmd($uid); - $command .= ' --login '.escapeshellcmd($data['new']['username']); - $command .= ' '.escapeshellcmd($data['old']['username']); - - exec($command); - $app->log("Executed command: $command ",LOGLEVEL_DEBUG); - */ - //$groupinfo = $app->system->posix_getgrnam($data['new']['pgroup']); + if($homedir != $homedir_old){ $app->system->web_folder_protection($web['document_root'], false); // Rename dir, in case the new directory exists already. if(is_dir($homedir)) { $app->log("New Homedir exists, renaming it to ".$homedir.'_bak', LOGLEVEL_DEBUG); - $app->system->rename(escapeshellcmd($homedir),escapeshellcmd($homedir.'_bak')); + $app->system->rename($homedir,$homedir.'_bak'); } - /*if(!is_dir($data['new']['dir'].'/home')){ - $app->file->mkdirs(escapeshellcmd($data['new']['dir'].'/home'), '0750'); - $app->system->chown(escapeshellcmd($data['new']['dir'].'/home'),escapeshellcmd($data['new']['puser'])); - $app->system->chgrp(escapeshellcmd($data['new']['dir'].'/home'),escapeshellcmd($data['new']['pgroup'])); - } - $app->file->mkdirs(escapeshellcmd($homedir), '0755'); - $app->system->chown(escapeshellcmd($homedir),'root'); - $app->system->chgrp(escapeshellcmd($homedir),'root');*/ // Move old directory to new path - $app->system->rename(escapeshellcmd($homedir_old),escapeshellcmd($homedir)); - $app->file->mkdirs(escapeshellcmd($homedir), '0750'); - $app->system->chown(escapeshellcmd($homedir),escapeshellcmd($data['new']['puser'])); - $app->system->chgrp(escapeshellcmd($homedir),escapeshellcmd($data['new']['pgroup'])); + $app->system->rename($homedir_old,$homedir); + $app->file->mkdirs($homedir, '0750'); + $app->system->chown($homedir,$data['new']['puser']); + $app->system->chgrp($homedir,$data['new']['pgroup']); $app->system->web_folder_protection($web['document_root'], true); } else { if(!is_dir($homedir)){ $app->system->web_folder_protection($web['document_root'], false); if(!is_dir($data['new']['dir'].'/home')){ - $app->file->mkdirs(escapeshellcmd($data['new']['dir'].'/home'), '0755'); - $app->system->chown(escapeshellcmd($data['new']['dir'].'/home'),'root'); - $app->system->chgrp(escapeshellcmd($data['new']['dir'].'/home'),'root'); + $app->file->mkdirs($data['new']['dir'].'/home', '0755'); + $app->system->chown($data['new']['dir'].'/home','root'); + $app->system->chgrp($data['new']['dir'].'/home','root'); } - $app->file->mkdirs(escapeshellcmd($homedir), '0750'); - $app->system->chown(escapeshellcmd($homedir),escapeshellcmd($data['new']['puser'])); - $app->system->chgrp(escapeshellcmd($homedir),escapeshellcmd($data['new']['pgroup'])); + $app->file->mkdirs($homedir, '0750'); + $app->system->chown($homedir,$data['new']['puser']); + $app->system->chgrp($homedir,$data['new']['pgroup']); $app->system->web_folder_protection($web['document_root'], true); } } @@ -296,18 +267,18 @@ class shelluser_base_plugin { //* Create .bash_history file if(!is_file($data['new']['dir']).'/.bash_history') { - $app->system->touch(escapeshellcmd($homedir).'/.bash_history'); - $app->system->chmod(escapeshellcmd($homedir).'/.bash_history', 0750); - $app->system->chown(escapeshellcmd($homedir).'/.bash_history', escapeshellcmd($data['new']['username'])); - $app->system->chgrp(escapeshellcmd($homedir).'/.bash_history', escapeshellcmd($data['new']['pgroup'])); + $app->system->touch($homedir.'/.bash_history'); + $app->system->chmod($homedir.'/.bash_history', 0750); + $app->system->chown($homedir.'/.bash_history', $data['new']['username']); + $app->system->chgrp($homedir.'/.bash_history', $data['new']['pgroup']); } //* Create .profile file if(!is_file($data['new']['dir']).'/.profile') { - $app->system->touch(escapeshellcmd($homedir).'/.profile'); - $app->system->chmod(escapeshellcmd($homedir).'/.profile', 0644); - $app->system->chown(escapeshellcmd($homedir).'/.profile', escapeshellcmd($data['new']['username'])); - $app->system->chgrp(escapeshellcmd($homedir).'/.profile', escapeshellcmd($data['new']['pgroup'])); + $app->system->touch($homedir.'/.profile'); + $app->system->chmod($homedir.'/.profile', 0644); + $app->system->chown($homedir.'/.profile', $data['new']['username']); + $app->system->chgrp($homedir.'/.profile', $data['new']['pgroup']); } //* Add webfolder protection again @@ -362,7 +333,7 @@ class shelluser_base_plugin { if(is_file($homedir . $delfile) && fileowner($homedir . $delfile) == $userid) unlink($homedir . $delfile); } foreach($dirs as $deldir) { - if(is_dir($homedir . $deldir) && fileowner($homedir . $deldir) == $userid) exec('rm -rf ' . escapeshellarg($homedir . $deldir)); + if(is_dir($homedir . $deldir) && fileowner($homedir . $deldir) == $userid) $app->system->exec_safe('rm -rf ?', $homedir . $deldir); } $empty = true; $dirres = opendir($homedir); @@ -401,9 +372,8 @@ class shelluser_base_plugin { $app->services->restartService('php-fpm', 'stop:'.$conf['init_scripts'].'/'.$web_config['php_fpm_init_script']); } } - $command = 'killall -u '.escapeshellcmd($data['old']['username']).' ; userdel -f'; - $command .= ' '.escapeshellcmd($data['old']['username']).' &> /dev/null'; - exec($command); + $command = 'killall -u ? ; userdel -f ? &> /dev/null'; + $app->system->exec_safe($command, $data['old']['username'], $data['old']['username']); $app->log("Deleted shelluser: ".$data['old']['username'], LOGLEVEL_DEBUG); // start PHP-FPM again if($web['php'] == 'php-fpm'){ @@ -447,12 +417,10 @@ class shelluser_base_plugin { } } $sshrsa = trim($sshrsa); - $usrdir = escapeshellcmd($this->data['new']['dir']); + $usrdir = $this->data['new']['dir']; //* Home directory of the new shell user - if($this->data['new']['chroot'] == 'jailkit') { - $usrdir = escapeshellcmd($this->data['new']['dir']); - } else { - $usrdir = escapeshellcmd($this->data['new']['dir'].'/home/'.$this->data['new']['username']); + if($this->data['new']['chroot'] != 'jailkit') { + $usrdir = $this->data['new']['dir'].'/home/'.$this->data['new']['username']; } $sshdir = $usrdir.'/.ssh'; $sshkeys= $usrdir.'/.ssh/authorized_keys'; @@ -528,8 +496,8 @@ class shelluser_base_plugin { $this->app->log("ssh-rsa key updated in ".$sshkeys, LOGLEVEL_DEBUG); // set proper file permissions - exec("chown -R ".escapeshellcmd($this->data['new']['puser']).":".escapeshellcmd($this->data['new']['pgroup'])." ".$sshdir); - exec("chmod 600 '$sshkeys'"); + $app->system->exec_safe("chown -R ?:? ?", $this->data['new']['puser'], $this->data['new']['pgroup'], $sshdir); + $app->system->exec_safe("chmod 600 ?", $sshkeys); } diff --git a/server/plugins-available/shelluser_jailkit_plugin.inc.php b/server/plugins-available/shelluser_jailkit_plugin.inc.php index c7112c497..1f3a08fac 100755 --- a/server/plugins-available/shelluser_jailkit_plugin.inc.php +++ b/server/plugins-available/shelluser_jailkit_plugin.inc.php @@ -121,13 +121,11 @@ class shelluser_jailkit_plugin { //* call the ssh-rsa update function $this->_setup_ssh_rsa(); - //$command .= 'usermod -s /usr/sbin/jk_chrootsh -U '.escapeshellcmd($data['new']['username']); - //exec($command); $app->system->usermod($data['new']['username'], 0, 0, '', '/usr/sbin/jk_chrootsh', '', ''); //* Unlock user - $command = 'usermod -U '.escapeshellcmd($data['new']['username']).' 2>/dev/null'; - exec($command); + $command = 'usermod -U ? 2>/dev/null'; + $app->system->exec_safe($command, $data['new']['username']); $this->_update_website_security_level(); $app->system->web_folder_protection($web['document_root'], true); @@ -242,15 +240,12 @@ class shelluser_jailkit_plugin { $jailkit_chroot_userhome = $this->_get_home_dir($data['old']['username']); - //commented out proved to be dangerous on config errors - //exec('rm -rf '.$data['old']['dir'].$jailkit_chroot_userhome); - $app->system->web_folder_protection($web['document_root'], false); $userid = intval($app->system->getuid($data['old']['username'])); - $command = 'killall -u '.escapeshellcmd($data['old']['username']).' ; '; - $command .= 'userdel -f '.escapeshellcmd($data['old']['username']).' &> /dev/null'; - exec($command); + $command = 'killall -u ? ; '; + $command .= 'userdel -f ? &> /dev/null'; + $app->system->exec_safe($command, $data['old']['username'], $data['old']['username']); // Remove the jailed user from passwd and shadow file inside the jail $app->system->removeLine($data['old']['dir'].'/etc/passwd', $data['old']['username']); @@ -278,10 +273,8 @@ class shelluser_jailkit_plugin { //check if the chroot environment is created yet if not create it with a list of program sections from the config if (!is_dir($this->data['new']['dir'].'/etc/jailkit')) { - $command = '/usr/local/ispconfig/server/scripts/create_jailkit_chroot.sh'; - $command .= ' '.escapeshellcmd($this->data['new']['dir']); - $command .= ' \''.$this->jailkit_config['jailkit_chroot_app_sections'].'\''; - exec($command.' 2>/dev/null'); + $command = '/usr/local/ispconfig/server/scripts/create_jailkit_chroot.sh ? ?'; + $app->system->exec_safe($command.' 2>/dev/null', $this->data['new']['dir'], $this->jailkit_config['jailkit_chroot_app_sections']); $this->app->log("Added jailkit chroot with command: ".$command, LOGLEVEL_DEBUG); @@ -300,7 +293,7 @@ class shelluser_jailkit_plugin { $tpl->setVar('domain', $web['domain']); $tpl->setVar('home_dir', $this->_get_home_dir("")); - $bashrc = escapeshellcmd($this->data['new']['dir']).'/etc/bash.bashrc'; + $bashrc = $this->data['new']['dir'].'/etc/bash.bashrc'; if(@is_file($bashrc) || @is_link($bashrc)) unlink($bashrc); file_put_contents($bashrc, $tpl->grab()); @@ -313,7 +306,7 @@ class shelluser_jailkit_plugin { $tpl->setVar('domain', $web['domain']); - $motd = escapeshellcmd($this->data['new']['dir']).'/var/run/motd'; + $motd = $this->data['new']['dir'].'/var/run/motd'; if(@is_file($motd) || @is_link($motd)) unlink($motd); $app->system->file_put_contents($motd, $tpl->grab()); @@ -323,16 +316,15 @@ class shelluser_jailkit_plugin { function _add_jailkit_programs() { + global $app; $jailkit_chroot_app_programs = preg_split("/[\s,]+/", $this->jailkit_config['jailkit_chroot_app_programs']); if(is_array($jailkit_chroot_app_programs) && !empty($jailkit_chroot_app_programs)){ foreach($jailkit_chroot_app_programs as $jailkit_chroot_app_program){ $jailkit_chroot_app_program = trim($jailkit_chroot_app_program); if(is_file($jailkit_chroot_app_program) || is_dir($jailkit_chroot_app_program)){ //copy over further programs and its libraries - $command = '/usr/local/ispconfig/server/scripts/create_jailkit_programs.sh'; - $command .= ' '.escapeshellcmd($this->data['new']['dir']); - $command .= ' '.$jailkit_chroot_app_program; - exec($command.' 2>/dev/null'); + $command = '/usr/local/ispconfig/server/scripts/create_jailkit_programs.sh ? ?'; + $app->system->exec_safe($command.' 2>/dev/null', $this->data['new']['dir'], $jailkit_chroot_app_program); $this->app->log("Added programs to jailkit chroot with command: ".$command, LOGLEVEL_DEBUG); } @@ -342,7 +334,7 @@ class shelluser_jailkit_plugin { function _get_home_dir($username) { - return str_replace("[username]", escapeshellcmd($username), $this->jailkit_config['jailkit_chroot_home']); + return str_replace("[username]", $username, $this->jailkit_config['jailkit_chroot_home']); } function _add_jailkit_user() @@ -365,36 +357,8 @@ class shelluser_jailkit_plugin { // ALWAYS create the user. Even if the user was created before // if we check if the user exists, then a update (no shell -> jailkit) will not work // and the user has FULL ACCESS to the root of the server! - $command = '/usr/local/ispconfig/server/scripts/create_jailkit_user.sh'; - $command .= ' '.escapeshellcmd($this->data['new']['username']); - $command .= ' '.escapeshellcmd($this->data['new']['dir']); - $command .= ' '.$jailkit_chroot_userhome; - $command .= ' '.escapeshellcmd($this->data['new']['shell']); - $command .= ' '.$this->data['new']['puser']; - $command .= ' '.$jailkit_chroot_puserhome; - exec($command.' 2>/dev/null'); - - //* Change the homedir of the shell user and parent user - //* We have to do this manually as the usermod command fails - //* when the user is logged in or a command is running under that user - /* - $passwd_file_array = file('/etc/passwd'); - $passwd_out = ''; - if(is_array($passwd_file_array)) { - foreach($passwd_file_array as $line) { - $line = trim($line); - $parts = explode(':',$line); - if($parts[0] == $this->data['new']['username']) { - $parts[5] = escapeshellcmd($this->data['new']['dir'].'/.'.$jailkit_chroot_userhome); - $parts[6] = escapeshellcmd('/usr/sbin/jk_chrootsh'); - $new_line = implode(':',$parts); - copy('/etc/passwd','/etc/passwd~'); - chmod('/etc/passwd~',0600); - $app->uses('system'); - $app->system->replaceLine('/etc/passwd',$line,$new_line,1,0); - } - } - }*/ + $command = '/usr/local/ispconfig/server/scripts/create_jailkit_user.sh ? ? ? ? ? ?'; + $app->system->exec_safe($command.' 2>/dev/null', $this->data['new']['username'], $this->data['new']['dir'], $jailkit_chroot_userhome, $this->data['new']['shell'], $this->data['new']['puser'], $jailkit_chroot_puserhome); $shell = '/usr/sbin/jk_chrootsh'; if($this->data['new']['active'] != 'y') $shell = '/bin/false'; @@ -406,19 +370,19 @@ class shelluser_jailkit_plugin { if(!is_dir($this->data['new']['dir'].$jailkit_chroot_userhome)) { if(is_dir($this->data['old']['dir'].$jailkit_chroot_userhome_old)) { - $app->system->rename(escapeshellcmd($this->data['old']['dir'].$jailkit_chroot_userhome_old),escapeshellcmd($this->data['new']['dir'].$jailkit_chroot_userhome)); + $app->system->rename($this->data['old']['dir'].$jailkit_chroot_userhome_old,$this->data['new']['dir'].$jailkit_chroot_userhome); } else { - mkdir(escapeshellcmd($this->data['new']['dir'].$jailkit_chroot_userhome), 0750, true); + mkdir($this->data['new']['dir'].$jailkit_chroot_userhome, 0750, true); } } - $app->system->chown(escapeshellcmd($this->data['new']['dir'].$jailkit_chroot_userhome), $this->data['new']['username']); - $app->system->chgrp(escapeshellcmd($this->data['new']['dir'].$jailkit_chroot_userhome), $this->data['new']['pgroup']); + $app->system->chown($this->data['new']['dir'].$jailkit_chroot_userhome, $this->data['new']['username']); + $app->system->chgrp($this->data['new']['dir'].$jailkit_chroot_userhome, $this->data['new']['pgroup']); $this->app->log("Added created jailkit user home in : ".$this->data['new']['dir'].$jailkit_chroot_userhome, LOGLEVEL_DEBUG); - if(!is_dir($this->data['new']['dir'].$jailkit_chroot_puserhome)) mkdir(escapeshellcmd($this->data['new']['dir'].$jailkit_chroot_puserhome), 0750, true); - $app->system->chown(escapeshellcmd($this->data['new']['dir'].$jailkit_chroot_puserhome), $this->data['new']['puser']); - $app->system->chgrp(escapeshellcmd($this->data['new']['dir'].$jailkit_chroot_puserhome), $this->data['new']['pgroup']); + if(!is_dir($this->data['new']['dir'].$jailkit_chroot_puserhome)) mkdir($this->data['new']['dir'].$jailkit_chroot_puserhome, 0750, true); + $app->system->chown($this->data['new']['dir'].$jailkit_chroot_puserhome, $this->data['new']['puser']); + $app->system->chgrp($this->data['new']['dir'].$jailkit_chroot_puserhome, $this->data['new']['pgroup']); $this->app->log("Added jailkit parent user home in : ".$this->data['new']['dir'].$jailkit_chroot_puserhome, LOGLEVEL_DEBUG); @@ -447,13 +411,6 @@ class shelluser_jailkit_plugin { } - //* Wrapper for exec function for easier debugging - private function _exec($command) { - global $app; - $app->log('exec: '.$command, LOGLEVEL_DEBUG); - exec($command); - } - private function _setup_ssh_rsa() { global $app; $this->app->log("ssh-rsa setup shelluser_jailkit", LOGLEVEL_DEBUG); @@ -469,7 +426,7 @@ class shelluser_jailkit_plugin { // ssh-rsa authentication variables $sshrsa = $this->data['new']['ssh_rsa']; - $usrdir = escapeshellcmd($this->data['new']['dir']).'/'.$this->_get_home_dir($this->data['new']['username']); + $usrdir = $this->data['new']['dir'].'/'.$this->_get_home_dir($this->data['new']['username']); $sshdir = $usrdir.'/.ssh'; $sshkeys= $usrdir.'/.ssh/authorized_keys'; @@ -545,9 +502,9 @@ class shelluser_jailkit_plugin { $this->app->log("ssh-rsa key updated in ".$sshkeys, LOGLEVEL_DEBUG); // set proper file permissions - exec("chown -R ".escapeshellcmd($this->data['new']['puser']).":".escapeshellcmd($this->data['new']['pgroup'])." ".$sshdir); - exec("chmod 700 ".$sshdir); - exec("chmod 600 '$sshkeys'"); + $app->system->exec_safe("chown -R ?:? ?", $this->data['new']['puser'], $this->data['new']['pgroup'], $sshdir); + $app->system->exec_safe("chmod 700 ?", $sshdir); + $app->system->exec_safe("chmod 600 ?", $sshkeys); } @@ -569,7 +526,7 @@ class shelluser_jailkit_plugin { if(is_file($homedir . $delfile) && fileowner($homedir . $delfile) == $userid) unlink($homedir . $delfile); } foreach($dirs as $deldir) { - if(is_dir($homedir . $deldir) && fileowner($homedir . $deldir) == $userid) exec('rm -rf ' . escapeshellarg($homedir . $deldir)); + if(is_dir($homedir . $deldir) && fileowner($homedir . $deldir) == $userid) $app->system->exec_safe('rm -rf ?', $homedir . $deldir); } $empty = true; $dirres = opendir($homedir); diff --git a/server/plugins-available/software_update_plugin.inc.php b/server/plugins-available/software_update_plugin.inc.php index 587bd4f09..2626d1e75 100644 --- a/server/plugins-available/software_update_plugin.inc.php +++ b/server/plugins-available/software_update_plugin.inc.php @@ -111,11 +111,12 @@ class software_update_plugin { $software_update["update_url"] = str_replace('{key}', $software_package['package_key'], $software_update["update_url"]); //* Download the update package - $cmd = "cd $temp_dir && wget ".$software_update["update_url"]; if($installuser == '') { - exec($cmd); + $cmd = "cd ? && wget ?"; + $app->system->exec_safe($cmd, $temp_dir, $software_update["update_url"]); } else { - exec("su -c ".escapeshellarg($cmd)." $installuser"); + $cmd = "cd $temp_dir && wget ".$software_update["update_url"]; + $app->system->exec_safe("su -c ? ?", $cmd, $installuser); } $app->log("Downloading the update file from: ".$software_update["update_url"], LOGLEVEL_DEBUG); @@ -135,7 +136,7 @@ class software_update_plugin { if($update_filename == '') { $app->log("No package file found. Download failed? Installation aborted.", LOGLEVEL_WARN); - exec("rm -rf $temp_dir"); + $app->system->exec_safe("rm -rf ?", $temp_dir); $app->log("Deleting the temp directory $temp_dir", LOGLEVEL_DEBUG); $this->set_install_status($data["new"]["software_update_inst_id"], "failed"); return false; @@ -148,7 +149,7 @@ class software_update_plugin { //* Checking the md5sum if(md5_file($temp_dir.'/'.$update_filename) != $software_update["update_md5"]) { $app->log("The md5 sum of the downloaded file is incorrect. Update aborted.", LOGLEVEL_WARN); - exec("rm -rf $temp_dir"); + $app->system->exec_safe("rm -rf ", $temp_dir); $app->log("Deleting the temp directory $temp_dir", LOGLEVEL_DEBUG); $this->set_install_status($data["new"]["software_update_inst_id"], "failed"); return false; @@ -158,11 +159,13 @@ class software_update_plugin { //* unpacking the update - $cmd = "cd $temp_dir && unzip $update_filename"; + if($installuser == '') { - exec($cmd); + $cmd = "cd ? && unzip ?"; + $app->system->exec_safe($cmd, $temp_dir, $update_filename); } else { - exec("su -c ".escapeshellarg($cmd)." $installuser"); + $cmd = "cd $temp_dir && unzip $update_filename"; + $app->system->exec_safe("su -c ? ?", $cmd, $installuser); } //* Create a database, if the package requires one @@ -181,7 +184,7 @@ class software_update_plugin { $db_config['database_password'] != '' && $db_config['database_name'] != '' && $db_config['database_host'] != '') { - system("mysql --default-character-set=utf8 --force -h '".$db_config['database_host']."' -u '".$db_config['database_user']."' ".$db_config['database_name']." < ".escapeshellcmd($temp_dir.'/setup.sql')); + $app->system->exec_safe("mysql --default-character-set=utf8 --force -h ? -u ? ? < ?", $db_config['database_host'], $db_config['database_user'], $db_config['database_name'], $temp_dir.'/setup.sql'); $app->log("Loading setup.sql dump into the app db.", LOGLEVEL_DEBUG); } } @@ -196,13 +199,15 @@ class software_update_plugin { if(is_file($temp_dir.'/setup.sh')) { // Execute the setup script - exec('chmod +x '.$temp_dir.'/setup.sh'); + $app->system->exec_safe('chmod +x ?', $temp_dir.'/setup.sh'); $app->log("Executing setup.sh file in directory $temp_dir", LOGLEVEL_DEBUG); - $cmd = 'cd '.$temp_dir.' && ./setup.sh > package_install.log'; + if($installuser == '') { - exec($cmd); + $cmd = 'cd ? && ./setup.sh > package_install.log'; + $app->system->exec_safe($cmd, $temp_dir); } else { - exec("su -c ".escapeshellarg($cmd)." $installuser"); + $cmd = 'cd '.$temp_dir.' && ./setup.sh > package_install.log'; + $app->system->exec_safe("su -c ? ?", $cmd, $installuser); } $log_data = @file_get_contents("{$temp_dir}/package_install.log"); @@ -223,7 +228,7 @@ class software_update_plugin { $this->set_install_status($data["new"]["software_update_inst_id"], "failed"); } - if($temp_dir != '' && $temp_dir != '/') exec("rm -rf $temp_dir"); + if($temp_dir != '' && $temp_dir != '/') $app->system->exec_safe("rm -rf ?", $temp_dir); $app->log("Deleting the temp directory $temp_dir", LOGLEVEL_DEBUG); } diff --git a/server/plugins-available/xmpp_plugin.inc.php b/server/plugins-available/xmpp_plugin.inc.php index 128a88ebb..c680e62f0 100644 --- a/server/plugins-available/xmpp_plugin.inc.php +++ b/server/plugins-available/xmpp_plugin.inc.php @@ -240,8 +240,8 @@ class xmpp_plugin { $app->system->unlink("/etc/metronome/certs/$domain.csr"); // Remove all stored data var_dump('rm -rf /var/lib/metronome/'.$folder); - exec('rm -rf /var/lib/metronome/'.$folder); - exec('rm -rf /var/lib/metronome/*%2e'.$folder); + $app->system->exec_safe('rm -rf ?', '/var/lib/metronome/'.$folder); + $app->system->exec_safe('rm -rf ?*?', '/var/lib/metronome/', '%2e'.$folder); $app->services->restartServiceDelayed('metronome', 'reload'); } @@ -264,7 +264,7 @@ class xmpp_plugin { // Don't allow manual user deletion for mailaccount controlled domains // Remove account from metronome - exec('metronomectl deluser '.$data['old']['jid']); + $app->system->exec_safe('metronomectl deluser ?', $data['old']['jid']); } // Handle the creation of SSL certificates @@ -311,9 +311,9 @@ class xmpp_plugin { $app->system->file_put_contents($cnf_file, $tpl->grab()); // Generate new key, csr and cert - exec("(cd /etc/metronome/certs && make $domain.key)"); - exec("(cd /etc/metronome/certs && make $domain.csr)"); - exec("(cd /etc/metronome/certs && make $domain.cert)"); + $app->system->exec_safe("(cd /etc/metronome/certs && make ?)", "$domain.key"); + $app->system->exec_safe("(cd /etc/metronome/certs && make ?)", "$domain.csr"); + $app->system->exec_safe("(cd /etc/metronome/certs && make ?)", "$domain.cert"); $ssl_key = $app->system->file_get_contents($key_file); $app->system->chmod($key_file, 0400); -- GitLab From 709638f18ed87b5df3703c8d879001dfb05a10e3 Mon Sep 17 00:00:00 2001 From: Marius Burkard Date: Tue, 30 Jul 2019 14:10:11 +0200 Subject: [PATCH 114/215] - Coding guidelines --- server/scripts/ispconfig_patch | 22 +++++++++++++++------- 1 file changed, 15 insertions(+), 7 deletions(-) diff --git a/server/scripts/ispconfig_patch b/server/scripts/ispconfig_patch index a3361f507..4470552c1 100644 --- a/server/scripts/ispconfig_patch +++ b/server/scripts/ispconfig_patch @@ -79,7 +79,9 @@ function simple_query($query, $answers, $default) } function is_installed($appname) { - exec('which '.escapeshellcmd($appname).' 2> /dev/null',$out,$returncode); + $out = array(); + $returncode = null; + exec('which '.escapeshellarg($appname).' 2> /dev/null',$out,$returncode); if(isset($out[0]) && stristr($out[0],$appname) && $returncode == 0) { return true; } else { @@ -105,14 +107,18 @@ echo " _____ ___________ _____ __ _ |___/ "; echo "\n".str_repeat('-',80)."\n"; echo "\n\n>> Patch tool \n\n"; -if(!$auto) echo "Please enter the patch id that you want to be applied to your ISPConfig installation.\nPlease be aware that we take NO responsibility that this will work for you.\nOnly use patches if you know what you are doing.\n\n"; +if(!$auto) { + echo "Please enter the patch id that you want to be applied to your ISPConfig installation.\nPlease be aware that we take NO responsibility that this will work for you.\nOnly use patches if you know what you are doing.\n\n"; +} if(!is_installed('patch')) { swriteln("The program 'patch' is missing on your server. Please install it and try again."); exit; } -if(!$auto) $patch_id = simple_query('Enter patch id', false, ''); +if(!$auto) { + $patch_id = simple_query('Enter patch id', false, ''); +} if($patch_id == '') { swriteln("Patch terminated by user.\n"); die(); @@ -129,8 +135,12 @@ if(!$patch_data) { $patch_text = @file_get_contents('http://ispconfig.org/downloads/patches/' . $patch_id . '.txt'); if($patch_text) { - if($auto) $ok = 'y'; else $ok = simple_query("Patch description:\n".str_repeat("-", 80)."\n".$patch_text."\n".str_repeat("-", 80)."\nDo you really want to apply this patch now?", array('y','n'), 'y'); - if($ok != 'y') { + if($auto) { + $ok = 'y'; + } else { + $ok = simple_query("Patch description:\n" . str_repeat("-", 80) . "\n" . $patch_text . "\n" . str_repeat("-", 80) . "\nDo you really want to apply this patch now?", array('y', 'n'), 'y'); + } + if($ok != 'y') { swriteln("Patch terminated by user.\n"); die(); } @@ -146,5 +156,3 @@ passthru('patch -p0 < ' . escapeshellarg($temp_file)); unlink($temp_file); exit; - -?> -- GitLab From 0c5140ab1f60f13e5e1b8e2fae9cf4115b34d66c Mon Sep 17 00:00:00 2001 From: Marius Burkard Date: Tue, 30 Jul 2019 15:16:22 +0200 Subject: [PATCH 115/215] - fixed syntax error from previous commits --- server/lib/classes/system.inc.php | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/server/lib/classes/system.inc.php b/server/lib/classes/system.inc.php index 051f3554a..dafae52c8 100644 --- a/server/lib/classes/system.inc.php +++ b/server/lib/classes/system.inc.php @@ -1832,7 +1832,7 @@ class system{ function is_mounted($mountpoint){ //$cmd = 'df 2>/dev/null | grep " '.$mountpoint.'$"'; $cmd = 'mount 2>/dev/null | grep ?'; - exec($cmd, ' on '. $mountpoint . ' type '); + $this->exec_safe($cmd, ' on '. $mountpoint . ' type '); $return_var = $this->last_exec_retcode(); return $return_var == 0 ? true : false; } -- GitLab From c7e0c3fc89a6024b4b6fa1101475ba59f6a38f17 Mon Sep 17 00:00:00 2001 From: Marius Burkard Date: Tue, 30 Jul 2019 17:37:17 +0200 Subject: [PATCH 116/215] - implemented rspamd version of "global black/whitelist" --- server/conf/rspamd_wblist.inc.conf.master | 12 +- .../plugins-available/rspamd_plugin.inc.php | 103 ++++++++++++++---- 2 files changed, 94 insertions(+), 21 deletions(-) diff --git a/server/conf/rspamd_wblist.inc.conf.master b/server/conf/rspamd_wblist.inc.conf.master index aaa7d06f6..b61424451 100644 --- a/server/conf/rspamd_wblist.inc.conf.master +++ b/server/conf/rspamd_wblist.inc.conf.master @@ -1,7 +1,17 @@ -spamfilter_wblist- { +_wblist- { priority = ; + from = ""; + + rcpt = ""; + + + ip = ""; + + + hostname = ""; + want_spam = yes; apply { diff --git a/server/plugins-available/rspamd_plugin.inc.php b/server/plugins-available/rspamd_plugin.inc.php index b6eddc401..7fd3ebf77 100644 --- a/server/plugins-available/rspamd_plugin.inc.php +++ b/server/plugins-available/rspamd_plugin.inc.php @@ -71,11 +71,14 @@ class rspamd_plugin { $app->plugins->registerEvent('server_ip_insert', $this->plugin_name, 'server_ip'); $app->plugins->registerEvent('server_ip_update', $this->plugin_name, 'server_ip'); $app->plugins->registerEvent('server_ip_delete', $this->plugin_name, 'server_ip'); + + //* global mail access filters + $app->plugins->registerEvent('mail_access_insert', $this->plugin_name, 'spamfilter_wblist_insert'); + $app->plugins->registerEvent('mail_access_update', $this->plugin_name, 'spamfilter_wblist_update'); + $app->plugins->registerEvent('mail_access_delete', $this->plugin_name, 'spamfilter_wblist_delete'); } function spamfilter_users_insert($event_name, $data) { - global $app, $conf; - $this->action = 'insert'; // just run the spamfilter_users_update function $this->spamfilter_users_update($event_name, $data); @@ -161,8 +164,6 @@ class rspamd_plugin { } function spamfilter_wblist_insert($event_name, $data) { - global $app, $conf; - $this->action = 'insert'; // just run the spamfilter_wblist_update function $this->spamfilter_wblist_update($event_name, $data); @@ -175,34 +176,78 @@ class rspamd_plugin { $mail_config = $app->getconf->get_server_config($conf['server_id'], 'mail'); if(is_dir('/etc/rspamd')) { - $recipient = $app->db->queryOneRecord("SELECT email FROM spamfilter_users WHERE id = ?", intval($data['new']['rid'])); + $global_filter = false; //* Create the config file - $wblist_file = $this->users_config_dir.'spamfilter_wblist_'.intval($data['new']['wblist_id']).'.conf'; + $filter = null; + if($event_name === 'mail_access_insert' || $event_name === 'mail_access_update') { + $global_filter = true; + $record_id = intval($data['new']['access_id']); + $wblist_file = $this->users_config_dir.'global_wblist_'.$record_id.'.conf'; + $filter = array( + 'wb' => ($data['new']['access'] === 'OK' ? 'W' : 'B'), + 'from' => ($data['new']['type'] === 'sender' ? $app->functions->idn_encode($data['new']['source']) : ''), + 'rcpt' => ($data['new']['type'] === 'recipient' ? $app->functions->idn_encode($data['new']['source']) : ''), + 'ip' => ($data['new']['type'] === 'client' && $this->_is_valid_ip_address($data['new']['source']) ? $data['new']['source'] : ''), + 'hostname' => ($data['new']['type'] === 'client' && !$this->_is_valid_ip_address($data['new']['source']) ? $data['new']['source'] : '') + ); + } else { + $record_id = intval($data['new']['wblist_id']); + $wblist_file = $this->users_config_dir.'spamfilter_wblist_'.$record_id.'.conf'; + $tmp = $app->db->queryOneRecord("SELECT email FROM spamfilter_users WHERE id = ?", intval($data['new']['rid'])); + if($tmp && !empty($tmp)) { + $filter = array( + 'wb' => $data['new']['wb'], + 'from' => $app->functions->idn_encode($data['new']['email']), + 'rcpt' => $app->functions->idn_encode($tmp['email']), + 'ip' => '', + 'hostname' => '' + ); + } + } - if($data['new']['active'] == 'y' && is_array($recipient) && !empty($recipient)){ + if($data['new']['active'] == 'y' && is_array($filter) && !empty($filter)){ if(!is_dir($this->users_config_dir)){ $app->system->mkdirpath($this->users_config_dir); } $app->load('tpl'); + $filter_from = $filter['from']; + if($filter_from != '') { + if(strpos($filter_from, '@') === false) { + $filter_from = '@' . $filter_from; + } elseif(substr($filter_from, 0, 2) === '*@') { + $filter_from = substr($filter_from, 1); + } + } + $filter_rcpt = $filter['rcpt']; + if($filter_rcpt != '') { + if(strpos($filter_rcpt, '@') === false) { + $filter_rcpt = '@' . $filter_rcpt; + } elseif(substr($filter_rcpt, 0, 2) === '*@') { + $filter_rcpt = substr($filter_rcpt, 1); + } + } + $tpl = new tpl(); $tpl->newTemplate('rspamd_wblist.inc.conf.master'); - $tpl->setVar('record_id', intval($data['new']['wblist_id'])); + $tpl->setVar('list_scope', ($global_filter ? 'global' : 'spamfilter')); + $tpl->setVar('record_id', $record_id); // we need to add 10 to priority to avoid mailbox/domain spamfilter settings overriding white/blacklists - $tpl->setVar('priority', intval($data['new']['priority']) + 10); - $tpl->setVar('from', $app->functions->idn_encode($data['new']['email'])); - $tpl->setVar('recipient', $app->functions->idn_encode($recipient['email'])); - //$tpl->setVar('action', ($data['new']['wb'] == 'W'? 'want_spam = yes;' : 'action = "reject";')); - $tpl->setVar('wblist', $data['new']['wb']); + $tpl->setVar('priority', intval($data['new']['priority']) + ($global_filter ? 20 : 10)); + $tpl->setVar('from', $filter_from); + $tpl->setVar('recipient', $filter_rcpt); + $tpl->setVar('hostname', $filter['hostname']); + $tpl->setVar('ip', $filter['ip']); + $tpl->setVar('wblist', $filter['wb']); $app->system->file_put_contents($wblist_file, $tpl->grab()); - } else { - if(is_file($wblist_file)) unlink($wblist_file); + } elseif(is_file($wblist_file)) { + unlink($wblist_file); } - if($mail_config['content_filter'] == 'rspamd'){ - if(is_file('/etc/init.d/rspamd')) $app->services->restartServiceDelayed('rspamd', 'reload'); + if($mail_config['content_filter'] == 'rspamd' && is_file('/etc/init.d/rspamd')) { + $app->services->restartServiceDelayed('rspamd', 'reload'); } } } @@ -215,9 +260,15 @@ class rspamd_plugin { if(is_dir('/etc/rspamd')) { //* delete the config file - $wblist_file = $this->users_config_dir.'spamfilter_wblist_'.intval($data['old']['wblist_id']).'.conf'; - if(is_file($wblist_file)) unlink($wblist_file); - + if($event_name === 'mail_access_delete') { + $wblist_file = $this->users_config_dir.'global_wblist_'.intval($data['old']['access_id']).'.conf'; + } else { + $wblist_file = $this->users_config_dir.'spamfilter_wblist_'.intval($data['old']['wblist_id']).'.conf'; + } + if(is_file($wblist_file)) { + unlink($wblist_file); + } + if($mail_config['content_filter'] == 'rspamd'){ if(is_file('/etc/init.d/rspamd')) $app->services->restartServiceDelayed('rspamd', 'reload'); } @@ -253,4 +304,16 @@ class rspamd_plugin { } } + private function _is_valid_ip_address($ip) { + if(function_exists('filter_var')) { + if(!filter_var($ip, FILTER_VALIDATE_IP, FILTER_FLAG_IPV4 | FILTER_FLAG_IPV6)) { + return false; + } else { + return true; + } + } else { + return false; + } + } + } // end class -- GitLab From c5bdf04515c2db52ccad6e887b1d2966954164a6 Mon Sep 17 00:00:00 2001 From: Marius Burkard Date: Tue, 30 Jul 2019 22:22:21 +0200 Subject: [PATCH 117/215] - removed ENGINE=MyISAM from sql files, fixes #5342 --- install/sql/incremental/upd_0002.sql | 2 +- install/sql/incremental/upd_0004.sql | 4 +- install/sql/incremental/upd_0007.sql | 2 +- install/sql/incremental/upd_0009.sql | 6 +- install/sql/incremental/upd_0012.sql | 10 +- install/sql/incremental/upd_0013.sql | 2 +- install/sql/incremental/upd_0019.sql | 8 +- install/sql/incremental/upd_0028.sql | 2 +- install/sql/incremental/upd_0031.sql | 2 +- install/sql/incremental/upd_0033.sql | 2 +- install/sql/incremental/upd_0034.sql | 8 +- install/sql/incremental/upd_0035.sql | 2 +- install/sql/incremental/upd_0039.sql | 2 +- install/sql/incremental/upd_0040.sql | 2 +- install/sql/incremental/upd_0050.sql | 2 +- install/sql/incremental/upd_0056.sql | 2 +- install/sql/incremental/upd_0057.sql | 2 +- install/sql/incremental/upd_0062.sql | 2 +- install/sql/incremental/upd_0063.sql | 2 +- install/sql/incremental/upd_0075.sql | 2 +- install/sql/incremental/upd_0081.sql | 8 +- install/sql/incremental/upd_0087.sql | 2 +- install/sql/ispconfig3.sql | 160 +++++++++++++-------------- 23 files changed, 118 insertions(+), 118 deletions(-) diff --git a/install/sql/incremental/upd_0002.sql b/install/sql/incremental/upd_0002.sql index e71e11182..7802dfa16 100644 --- a/install/sql/incremental/upd_0002.sql +++ b/install/sql/incremental/upd_0002.sql @@ -5,4 +5,4 @@ CREATE TABLE IF NOT EXISTS `sys_session` ( `session_data` longtext, PRIMARY KEY (`session_id`), KEY `last_updated` (`last_updated`) -) ENGINE=MyISAM; \ No newline at end of file +); \ No newline at end of file diff --git a/install/sql/incremental/upd_0004.sql b/install/sql/incremental/upd_0004.sql index 3bba2461a..6153fc773 100644 --- a/install/sql/incremental/upd_0004.sql +++ b/install/sql/incremental/upd_0004.sql @@ -11,7 +11,7 @@ CREATE TABLE `help_faq_sections` ( `sys_perm_group` varchar(5) DEFAULT NULL, `sys_perm_other` varchar(5) DEFAULT NULL, PRIMARY KEY (`hfs_id`) -) ENGINE=MyISAM AUTO_INCREMENT=1; +) AUTO_INCREMENT=1; INSERT INTO `help_faq_sections` VALUES (1,'General',0,NULL,NULL,NULL,NULL,NULL); @@ -27,7 +27,7 @@ CREATE TABLE `help_faq` ( `sys_perm_group` varchar(5) DEFAULT NULL, `sys_perm_other` varchar(5) DEFAULT NULL, PRIMARY KEY (`hf_id`) -) ENGINE=MyISAM AUTO_INCREMENT=1; +) AUTO_INCREMENT=1; INSERT INTO `help_faq` VALUES (1,1,0,'I\'d like to know ...','Yes, of course.',1,1,'riud','riud','r'); diff --git a/install/sql/incremental/upd_0007.sql b/install/sql/incremental/upd_0007.sql index cea381322..0cdf99e2b 100644 --- a/install/sql/incremental/upd_0007.sql +++ b/install/sql/incremental/upd_0007.sql @@ -14,6 +14,6 @@ CREATE TABLE IF NOT EXISTS `mail_mailinglist` ( `email` varchar(255) NOT NULL, `password` varchar(255) NOT NULL, PRIMARY KEY (`mailinglist_id`) -) ENGINE=MyISAM AUTO_INCREMENT=1; +) AUTO_INCREMENT=1; DROP TABLE `mail_mailman_domain`; \ No newline at end of file diff --git a/install/sql/incremental/upd_0009.sql b/install/sql/incremental/upd_0009.sql index 5be069c73..43262d65b 100644 --- a/install/sql/incremental/upd_0009.sql +++ b/install/sql/incremental/upd_0009.sql @@ -10,7 +10,7 @@ CREATE TABLE IF NOT EXISTS `proxy_reverse` ( `rewrite_url_dst` varchar(100) NOT NULL, `active` enum('n','y') NOT NULL default 'y', PRIMARY KEY (`rewrite_id`) -) ENGINE=MyISAM AUTO_INCREMENT=5 DEFAULT CHARSET=utf8; +) AUTO_INCREMENT=5 DEFAULT CHARSET=utf8; CREATE TABLE IF NOT EXISTS `firewall_filter` ( @@ -38,7 +38,7 @@ CREATE TABLE IF NOT EXISTS `firewall_filter` ( `active` enum('n','y') NOT NULL default 'y', `client_id` int(11) NOT NULL, PRIMARY KEY (`firewall_id`) -) ENGINE=MyISAM AUTO_INCREMENT=12 DEFAULT CHARSET=utf8; +) AUTO_INCREMENT=12 DEFAULT CHARSET=utf8; CREATE TABLE IF NOT EXISTS `firewall_forward` ( `firewall_id` int(11) unsigned NOT NULL auto_increment, @@ -59,7 +59,7 @@ CREATE TABLE IF NOT EXISTS `firewall_forward` ( `active` enum('n','y') NOT NULL default 'y', `client_id` int(11) NOT NULL, PRIMARY KEY (`firewall_id`) -) ENGINE=MyISAM AUTO_INCREMENT=12 DEFAULT CHARSET=utf8; +) AUTO_INCREMENT=12 DEFAULT CHARSET=utf8; alter table `server` add column `proxy_server` tinyint(1) not null after `vserver_server`; alter table `server` add column `firewall_server` tinyint(1) not null after `proxy_server`; diff --git a/install/sql/incremental/upd_0012.sql b/install/sql/incremental/upd_0012.sql index 2ba957f8d..1fd355160 100644 --- a/install/sql/incremental/upd_0012.sql +++ b/install/sql/incremental/upd_0012.sql @@ -14,7 +14,7 @@ CREATE TABLE IF NOT EXISTS `openvz_ip` ( `vm_id` int(11) NOT NULL DEFAULT '0', `reserved` varchar(255) NOT NULL DEFAULT 'n', PRIMARY KEY (`ip_address_id`) -) ENGINE=MyISAM DEFAULT CHARSET=utf8 ; +) DEFAULT CHARSET=utf8 ; -- -- Dumping data for table `openvz_ip` @@ -40,7 +40,7 @@ CREATE TABLE IF NOT EXISTS `openvz_ostemplate` ( `active` varchar(255) NOT NULL DEFAULT 'y', `description` text, PRIMARY KEY (`ostemplate_id`) -) ENGINE=MyISAM DEFAULT CHARSET=utf8 ; +) DEFAULT CHARSET=utf8 ; -- -- Dumping data for table `openvz_ostemplate` @@ -100,7 +100,7 @@ CREATE TABLE IF NOT EXISTS `openvz_template` ( `create_dns` varchar(1) NOT NULL DEFAULT 'n', `capability` varchar(255) DEFAULT NULL, PRIMARY KEY (`template_id`) -) ENGINE=MyISAM DEFAULT CHARSET=utf8 ; +) DEFAULT CHARSET=utf8 ; -- -- Dumping data for table `openvz_template` @@ -119,7 +119,7 @@ CREATE TABLE IF NOT EXISTS `openvz_traffic` ( `traffic_date` date NOT NULL, `traffic_bytes` bigint(32) unsigned NOT NULL DEFAULT '0', PRIMARY KEY (`veid`,`traffic_date`) -) ENGINE=MyISAM DEFAULT CHARSET=utf8; +) DEFAULT CHARSET=utf8; -- -- Dumping data for table `openvz_traffic` @@ -164,7 +164,7 @@ CREATE TABLE IF NOT EXISTS `openvz_vm` ( `capability` text NOT NULL, `config` mediumtext NOT NULL, PRIMARY KEY (`vm_id`) -) ENGINE=MyISAM DEFAULT CHARSET=utf8 ; +) DEFAULT CHARSET=utf8 ; -- -- Dumping data for table `openvz_vm` diff --git a/install/sql/incremental/upd_0013.sql b/install/sql/incremental/upd_0013.sql index 9b43d3361..bc38241bb 100644 --- a/install/sql/incremental/upd_0013.sql +++ b/install/sql/incremental/upd_0013.sql @@ -16,5 +16,5 @@ CREATE TABLE `iptables` ( `target` varchar(10) DEFAULT NULL COMMENT 'ACCEPT DROP REJECT LOG', `active` enum('n','y') NOT NULL DEFAULT 'y', PRIMARY KEY (`iptables_id`) -) ENGINE=MyISAM AUTO_INCREMENT=5 DEFAULT CHARSET=utf8; +) AUTO_INCREMENT=5 DEFAULT CHARSET=utf8; diff --git a/install/sql/incremental/upd_0019.sql b/install/sql/incremental/upd_0019.sql index 60c464cea..1bd990c5d 100644 --- a/install/sql/incremental/upd_0019.sql +++ b/install/sql/incremental/upd_0019.sql @@ -10,7 +10,7 @@ CREATE TABLE IF NOT EXISTS `help_faq` ( `sys_perm_group` varchar(5) DEFAULT NULL, `sys_perm_other` varchar(5) DEFAULT NULL, PRIMARY KEY (`hf_id`) -) ENGINE=MyISAM DEFAULT CHARSET=utf8 AUTO_INCREMENT=1 ; +) DEFAULT CHARSET=utf8 AUTO_INCREMENT=1 ; CREATE TABLE IF NOT EXISTS `help_faq_sections` ( `hfs_id` int(11) NOT NULL AUTO_INCREMENT, @@ -22,7 +22,7 @@ CREATE TABLE IF NOT EXISTS `help_faq_sections` ( `sys_perm_group` varchar(5) DEFAULT NULL, `sys_perm_other` varchar(5) DEFAULT NULL, PRIMARY KEY (`hfs_id`) -) ENGINE=MyISAM DEFAULT CHARSET=utf8 AUTO_INCREMENT=1 ; +) DEFAULT CHARSET=utf8 AUTO_INCREMENT=1 ; CREATE TABLE IF NOT EXISTS `web_folder` ( `web_folder_id` bigint(20) NOT NULL AUTO_INCREMENT, @@ -36,7 +36,7 @@ CREATE TABLE IF NOT EXISTS `web_folder` ( `path` varchar(255) DEFAULT NULL, `active` varchar(255) NOT NULL DEFAULT 'y', PRIMARY KEY (`web_folder_id`) -) ENGINE=MyISAM DEFAULT CHARSET=utf8 AUTO_INCREMENT=1 ; +) DEFAULT CHARSET=utf8 AUTO_INCREMENT=1 ; CREATE TABLE IF NOT EXISTS `web_folder_user` ( `web_folder_user_id` bigint(20) NOT NULL AUTO_INCREMENT, @@ -50,7 +50,7 @@ CREATE TABLE IF NOT EXISTS `web_folder_user` ( `password` varchar(255) DEFAULT NULL, `active` varchar(255) NOT NULL DEFAULT 'y', PRIMARY KEY (`web_folder_user_id`) -) ENGINE=MyISAM DEFAULT CHARSET=utf8 AUTO_INCREMENT=1 ; +) DEFAULT CHARSET=utf8 AUTO_INCREMENT=1 ; DROP TABLE `mail_greylist`; DROP TABLE `firewall_filter`; diff --git a/install/sql/incremental/upd_0028.sql b/install/sql/incremental/upd_0028.sql index 0020cdd9a..67023de06 100644 --- a/install/sql/incremental/upd_0028.sql +++ b/install/sql/incremental/upd_0028.sql @@ -9,4 +9,4 @@ CREATE TABLE `web_backup` ( `tstamp` int(10) unsigned NOT NULL, `filename` varchar(255) NOT NULL, PRIMARY KEY (`backup_id`) -) ENGINE=MyISAM DEFAULT CHARSET=utf8 AUTO_INCREMENT=1 ; +) DEFAULT CHARSET=utf8 AUTO_INCREMENT=1 ; diff --git a/install/sql/incremental/upd_0031.sql b/install/sql/incremental/upd_0031.sql index 0fb25a5d4..7ebdef95c 100644 --- a/install/sql/incremental/upd_0031.sql +++ b/install/sql/incremental/upd_0031.sql @@ -14,5 +14,5 @@ CREATE TABLE `server_php` ( `php_fpm_ini_dir` varchar(255) DEFAULT NULL, `php_fpm_pool_dir` varchar(255) DEFAULT NULL, PRIMARY KEY (`server_php_id`) -) ENGINE=MyISAM DEFAULT CHARSET=utf8 AUTO_INCREMENT=1 ; +) DEFAULT CHARSET=utf8 AUTO_INCREMENT=1 ; ALTER TABLE `web_domain` ADD `fastcgi_php_version` VARCHAR( 255 ) NULL DEFAULT NULL; \ No newline at end of file diff --git a/install/sql/incremental/upd_0033.sql b/install/sql/incremental/upd_0033.sql index d4b3c0d6a..5d2b93cdb 100644 --- a/install/sql/incremental/upd_0033.sql +++ b/install/sql/incremental/upd_0033.sql @@ -10,4 +10,4 @@ CREATE TABLE IF NOT EXISTS `client_circle` ( `description` text, `active` enum('n','y') NOT NULL default 'y', PRIMARY KEY (`circle_id`) -) ENGINE=MyISAM DEFAULT CHARSET=utf8 AUTO_INCREMENT=1 ; \ No newline at end of file +) DEFAULT CHARSET=utf8 AUTO_INCREMENT=1 ; \ No newline at end of file diff --git a/install/sql/incremental/upd_0034.sql b/install/sql/incremental/upd_0034.sql index 8ae098c01..85e49f70b 100644 --- a/install/sql/incremental/upd_0034.sql +++ b/install/sql/incremental/upd_0034.sql @@ -16,7 +16,7 @@ CREATE TABLE IF NOT EXISTS `aps_instances` ( `package_id` int(4) NOT NULL, `instance_status` int(4) NOT NULL, PRIMARY KEY (`id`) -) ENGINE=MyISAM DEFAULT CHARSET=utf8 ; +) DEFAULT CHARSET=utf8 ; -- -------------------------------------------------------- @@ -31,7 +31,7 @@ CREATE TABLE IF NOT EXISTS `aps_instances_settings` ( `name` varchar(255) NOT NULL, `value` text NOT NULL, PRIMARY KEY (`id`) -) ENGINE=MyISAM DEFAULT CHARSET=utf8 ; +) DEFAULT CHARSET=utf8 ; -- -------------------------------------------------------- @@ -49,7 +49,7 @@ CREATE TABLE IF NOT EXISTS `aps_packages` ( `package_url` TEXT NOT NULL, `package_status` int(1) NOT NULL DEFAULT '2', PRIMARY KEY (`id`) -) ENGINE=MyISAM DEFAULT CHARSET=utf8 ; +) DEFAULT CHARSET=utf8 ; -- -------------------------------------------------------- @@ -63,7 +63,7 @@ CREATE TABLE IF NOT EXISTS `aps_settings` ( `value` text NOT NULL, PRIMARY KEY (`id`), UNIQUE KEY `name` (`name`) -) ENGINE=MyISAM DEFAULT CHARSET=utf8 ; +) DEFAULT CHARSET=utf8 ; -- -------------------------------------------------------- diff --git a/install/sql/incremental/upd_0035.sql b/install/sql/incremental/upd_0035.sql index 5f8031c51..1a453e587 100644 --- a/install/sql/incremental/upd_0035.sql +++ b/install/sql/incremental/upd_0035.sql @@ -10,7 +10,7 @@ CREATE TABLE IF NOT EXISTS `sys_theme` ( `username` varchar(64) NOT NULL, `logo_url` varchar(255) NOT NULL, PRIMARY KEY (`var_id`) -) ENGINE=MyISAM DEFAULT CHARSET=utf8 ; +) DEFAULT CHARSET=utf8 ; -- -------------------------------------------------------- diff --git a/install/sql/incremental/upd_0039.sql b/install/sql/incremental/upd_0039.sql index af8a5afc5..b090db4f7 100644 --- a/install/sql/incremental/upd_0039.sql +++ b/install/sql/incremental/upd_0039.sql @@ -15,7 +15,7 @@ CREATE TABLE IF NOT EXISTS `web_database_user` ( `database_user` varchar(64) DEFAULT NULL, `database_password` varchar(64) DEFAULT NULL, PRIMARY KEY (`database_user_id`) -) ENGINE=MyISAM DEFAULT CHARSET=utf8 AUTO_INCREMENT=1 ; +) DEFAULT CHARSET=utf8 AUTO_INCREMENT=1 ; -- -------------------------------------------------------- diff --git a/install/sql/incremental/upd_0040.sql b/install/sql/incremental/upd_0040.sql index b39e8f11f..f572a6e73 100644 --- a/install/sql/incremental/upd_0040.sql +++ b/install/sql/incremental/upd_0040.sql @@ -21,4 +21,4 @@ CREATE TABLE IF NOT EXISTS `directive_snippets` ( `snippet` mediumtext, `active` enum('n','y') NOT NULL DEFAULT 'y', PRIMARY KEY (`directive_snippets_id`) -) ENGINE=MyISAM DEFAULT CHARSET=utf8 AUTO_INCREMENT=1 ; +) DEFAULT CHARSET=utf8 AUTO_INCREMENT=1 ; diff --git a/install/sql/incremental/upd_0050.sql b/install/sql/incremental/upd_0050.sql index bc31868a7..0ce01b9b4 100644 --- a/install/sql/incremental/upd_0050.sql +++ b/install/sql/incremental/upd_0050.sql @@ -13,7 +13,7 @@ CREATE TABLE IF NOT EXISTS `dns_slave` ( PRIMARY KEY (`id`), KEY `origin` (`origin`), KEY `active` (`active`) -) ENGINE=MyISAM DEFAULT CHARSET=utf8 AUTO_INCREMENT=1 ; +) DEFAULT CHARSET=utf8 AUTO_INCREMENT=1 ; ALTER TABLE `dns_slave` DROP INDEX `origin`; ALTER TABLE `dns_slave` ADD CONSTRAINT `slave` UNIQUE (`origin`,`server_id`); \ No newline at end of file diff --git a/install/sql/incremental/upd_0056.sql b/install/sql/incremental/upd_0056.sql index c7cb5285c..d9e1e0228 100644 --- a/install/sql/incremental/upd_0056.sql +++ b/install/sql/incremental/upd_0056.sql @@ -4,7 +4,7 @@ CREATE TABLE `client_template_assigned` ( `client_template_id` int(11) NOT NULL DEFAULT '0', PRIMARY KEY (`assigned_template_id`), KEY `client_id` (`client_id`) -) ENGINE=MyISAM DEFAULT CHARSET=utf8 AUTO_INCREMENT=1 ; +) DEFAULT CHARSET=utf8 AUTO_INCREMENT=1 ; ALTER TABLE `client` ADD `gender` enum('','m','f') NOT NULL DEFAULT '' AFTER `company_id`, ADD `locked` enum('n','y') NOT NULL DEFAULT 'n' AFTER `created_at`, diff --git a/install/sql/incremental/upd_0057.sql b/install/sql/incremental/upd_0057.sql index b8452fe6e..01b2c58de 100644 --- a/install/sql/incremental/upd_0057.sql +++ b/install/sql/incremental/upd_0057.sql @@ -4,4 +4,4 @@ CREATE TABLE IF NOT EXISTS `sys_cron` ( `next_run` datetime NULL DEFAULT NULL, `running` tinyint(1) UNSIGNED NOT NULL DEFAULT '0', PRIMARY KEY (`name`) -) ENGINE=MyISAM DEFAULT CHARSET=utf8; +) DEFAULT CHARSET=utf8; diff --git a/install/sql/incremental/upd_0062.sql b/install/sql/incremental/upd_0062.sql index cee5ff93c..039a0bd00 100644 --- a/install/sql/incremental/upd_0062.sql +++ b/install/sql/incremental/upd_0062.sql @@ -8,7 +8,7 @@ CREATE TABLE `mail_backup` ( `filename` varchar(255) NOT NULL, `filesize` VARCHAR(10) NOT NULL, PRIMARY KEY (`backup_id`) -) ENGINE=MyISAM DEFAULT CHARSET=utf8 AUTO_INCREMENT=1 ; +) DEFAULT CHARSET=utf8 AUTO_INCREMENT=1 ; ALTER TABLE `mail_user` ADD `backup_interval` VARCHAR( 255 ) NOT NULL DEFAULT 'none'; ALTER TABLE `mail_user` ADD `backup_copies` INT NOT NULL DEFAULT '1'; diff --git a/install/sql/incremental/upd_0063.sql b/install/sql/incremental/upd_0063.sql index fc2534ac2..08e2f04f9 100644 --- a/install/sql/incremental/upd_0063.sql +++ b/install/sql/incremental/upd_0063.sql @@ -12,7 +12,7 @@ CREATE TABLE `client_message_template` ( `subject` varchar(255) DEFAULT NULL, `message` text, PRIMARY KEY (`client_message_template_id`) -) ENGINE=MyISAM DEFAULT CHARSET=utf8 AUTO_INCREMENT=1 ; +) DEFAULT CHARSET=utf8 AUTO_INCREMENT=1 ; ALTER TABLE `spamfilter_policy` ADD `policyd_quota_in` int(11) NOT NULL DEFAULT '-1', ADD `policyd_quota_in_period` int(11) NOT NULL DEFAULT '24', ADD `policyd_quota_out` int(11) NOT NULL DEFAULT '-1', diff --git a/install/sql/incremental/upd_0075.sql b/install/sql/incremental/upd_0075.sql index acca4e6ac..ce1bacf2d 100644 --- a/install/sql/incremental/upd_0075.sql +++ b/install/sql/incremental/upd_0075.sql @@ -77,4 +77,4 @@ CREATE TABLE IF NOT EXISTS `dns_slave` ( PRIMARY KEY (`id`), UNIQUE KEY `slave` (`origin`,`server_id`), KEY `active` (`active`) -) ENGINE=MyISAM DEFAULT CHARSET=utf8 AUTO_INCREMENT=1 ; +) DEFAULT CHARSET=utf8 AUTO_INCREMENT=1 ; diff --git a/install/sql/incremental/upd_0081.sql b/install/sql/incremental/upd_0081.sql index 69236784c..d24ce19ce 100644 --- a/install/sql/incremental/upd_0081.sql +++ b/install/sql/incremental/upd_0081.sql @@ -126,7 +126,7 @@ CREATE TABLE `xmpp_domain` ( PRIMARY KEY (`domain_id`), KEY `server_id` (`server_id`,`domain`), KEY `domain_active` (`domain`,`active`) -) ENGINE=MyISAM DEFAULT CHARSET=utf8 AUTO_INCREMENT=1 ; +) DEFAULT CHARSET=utf8 AUTO_INCREMENT=1 ; -- -- Table structure for table `xmpp_user` @@ -146,7 +146,7 @@ CREATE TABLE `xmpp_user` ( PRIMARY KEY (`xmppuser_id`), KEY `server_id` (`server_id`,`jid`), KEY `jid_active` (`jid`,`active`) -) ENGINE=MyISAM DEFAULT CHARSET=utf8 AUTO_INCREMENT=1 ; +) DEFAULT CHARSET=utf8 AUTO_INCREMENT=1 ; -- -------------------------------------------------------- @@ -176,7 +176,7 @@ CREATE TABLE `server_ip_map` ( `destination_ip` varchar(35) DEFAULT '', `active` enum('n','y') NOT NULL DEFAULT 'y', PRIMARY KEY (`server_ip_map_id`) -) ENGINE=MyISAM DEFAULT CHARSET=utf8 AUTO_INCREMENT=1 ; +) DEFAULT CHARSET=utf8 AUTO_INCREMENT=1 ; ALTER TABLE `web_domain` ADD COLUMN `rewrite_to_https` ENUM('y','n') NOT NULL DEFAULT 'n' AFTER `seo_redirect`; @@ -199,7 +199,7 @@ CREATE TABLE `ftp_traffic` ( `in_bytes` bigint(32) unsigned NOT NULL, `out_bytes` bigint(32) unsigned NOT NULL, UNIQUE KEY (`hostname`,`traffic_date`) -) ENGINE=MyISAM DEFAULT CHARSET=utf8 AUTO_INCREMENT=1 ; +) DEFAULT CHARSET=utf8 AUTO_INCREMENT=1 ; ALTER TABLE `mail_forwarding` ADD COLUMN `allow_send_as` ENUM('n','y') NOT NULL DEFAULT 'n' AFTER `active`; UPDATE `mail_forwarding` SET `allow_send_as` = 'y' WHERE `type` = 'alias'; diff --git a/install/sql/incremental/upd_0087.sql b/install/sql/incremental/upd_0087.sql index 55e3b846d..4d392cc44 100644 --- a/install/sql/incremental/upd_0087.sql +++ b/install/sql/incremental/upd_0087.sql @@ -18,7 +18,7 @@ CREATE TABLE IF NOT EXISTS `dns_ssl_ca` ( `ca_critical` tinyint(1) NOT NULL DEFAULT '0', PRIMARY KEY (`id`), UNIQUE KEY (`ca_issue`) -) ENGINE=MyISAM DEFAULT CHARSET=utf8 AUTO_INCREMENT=1 ; +) DEFAULT CHARSET=utf8 AUTO_INCREMENT=1 ; ALTER TABLE `dns_ssl_ca` ADD UNIQUE(`ca_issue`); diff --git a/install/sql/ispconfig3.sql b/install/sql/ispconfig3.sql index 3f534eedf..c7e170ca5 100644 --- a/install/sql/ispconfig3.sql +++ b/install/sql/ispconfig3.sql @@ -69,7 +69,7 @@ CREATE TABLE IF NOT EXISTS `aps_instances` ( `package_id` int(4) NOT NULL DEFAULT '0', `instance_status` int(4) NOT NULL DEFAULT '0', PRIMARY KEY (`id`) -) ENGINE=MyISAM DEFAULT CHARSET=utf8 ; +) DEFAULT CHARSET=utf8 ; -- -------------------------------------------------------- @@ -84,7 +84,7 @@ CREATE TABLE IF NOT EXISTS `aps_instances_settings` ( `name` varchar(255) NOT NULL DEFAULT '', `value` text, PRIMARY KEY (`id`) -) ENGINE=MyISAM DEFAULT CHARSET=utf8 ; +) DEFAULT CHARSET=utf8 ; -- -------------------------------------------------------- @@ -102,7 +102,7 @@ CREATE TABLE IF NOT EXISTS `aps_packages` ( `package_url` TEXT, `package_status` int(1) NOT NULL DEFAULT '2', PRIMARY KEY (`id`) -) ENGINE=MyISAM DEFAULT CHARSET=utf8 ; +) DEFAULT CHARSET=utf8 ; -- -------------------------------------------------------- @@ -116,7 +116,7 @@ CREATE TABLE IF NOT EXISTS `aps_settings` ( `value` text, PRIMARY KEY (`id`), UNIQUE KEY `name` (`name`) -) ENGINE=MyISAM DEFAULT CHARSET=utf8 ; +) DEFAULT CHARSET=utf8 ; -- -------------------------------------------------------- @@ -128,7 +128,7 @@ CREATE TABLE `attempts_login` ( `ip` varchar(39) NOT NULL DEFAULT '', `times` int(11) DEFAULT NULL, `login_time` timestamp NOT NULL DEFAULT CURRENT_TIMESTAMP ON UPDATE CURRENT_TIMESTAMP -) ENGINE=MyISAM DEFAULT CHARSET=utf8 ; +) DEFAULT CHARSET=utf8 ; -- -------------------------------------------------------- @@ -264,7 +264,7 @@ CREATE TABLE `client` ( `risk_score` int(10) unsigned NOT NULL DEFAULT '0', `activation_code` varchar(10) NOT NULL DEFAULT '', PRIMARY KEY (`client_id`) -) ENGINE=MyISAM DEFAULT CHARSET=utf8 AUTO_INCREMENT=1 ; +) DEFAULT CHARSET=utf8 AUTO_INCREMENT=1 ; -- -------------------------------------------------------- @@ -284,7 +284,7 @@ CREATE TABLE `client_circle` ( `description` text, `active` enum('n','y') NOT NULL default 'y', PRIMARY KEY (`circle_id`) -) ENGINE=MyISAM DEFAULT CHARSET=utf8 AUTO_INCREMENT=1 ; +) DEFAULT CHARSET=utf8 AUTO_INCREMENT=1 ; -- -------------------------------------------------------- @@ -369,7 +369,7 @@ CREATE TABLE `client_template` ( `limit_openvz_vm` int(11) NOT NULL DEFAULT '0', `limit_openvz_vm_template_id` int(11) NOT NULL DEFAULT '0', PRIMARY KEY (`template_id`) -) ENGINE=MyISAM DEFAULT CHARSET=utf8 AUTO_INCREMENT=1 ; +) DEFAULT CHARSET=utf8 AUTO_INCREMENT=1 ; -- -------------------------------------------------------- @@ -383,7 +383,7 @@ CREATE TABLE `client_template_assigned` ( `client_template_id` int(11) NOT NULL DEFAULT '0', PRIMARY KEY (`assigned_template_id`), KEY `client_id` (`client_id`) -) ENGINE=MyISAM DEFAULT CHARSET=utf8 AUTO_INCREMENT=1 ; +) DEFAULT CHARSET=utf8 AUTO_INCREMENT=1 ; -- -------------------------------------------------------- -- @@ -402,7 +402,7 @@ CREATE TABLE `client_message_template` ( `subject` varchar(255) DEFAULT NULL, `message` text, PRIMARY KEY (`client_message_template_id`) -) ENGINE=MyISAM DEFAULT CHARSET=utf8 AUTO_INCREMENT=1 ; +) DEFAULT CHARSET=utf8 AUTO_INCREMENT=1 ; -- -- Dumping data for table `invoice_message_template` @@ -422,7 +422,7 @@ CREATE TABLE `country` ( `numcode` smallint(6) DEFAULT NULL, `eu` enum('n','y') NOT NULL DEFAULT 'n', PRIMARY KEY (`iso`) -) ENGINE=MyISAM DEFAULT CHARSET=utf8 ; +) DEFAULT CHARSET=utf8 ; -- -------------------------------------------------------- @@ -448,7 +448,7 @@ CREATE TABLE `cron` ( `log` enum('n','y') NOT NULL default 'n', `active` enum('n','y') NOT NULL default 'y', PRIMARY KEY (`id`) -) ENGINE=MyISAM DEFAULT CHARSET=utf8 AUTO_INCREMENT=1 ; +) DEFAULT CHARSET=utf8 AUTO_INCREMENT=1 ; -- -------------------------------------------------------- @@ -471,7 +471,7 @@ CREATE TABLE IF NOT EXISTS `directive_snippets` ( `active` enum('n','y') NOT NULL DEFAULT 'y', `master_directive_snippets_id` int(11) unsigned NOT NULL DEFAULT '0', PRIMARY KEY (`directive_snippets_id`) -) ENGINE=MyISAM DEFAULT CHARSET=utf8 AUTO_INCREMENT=1 ; +) DEFAULT CHARSET=utf8 AUTO_INCREMENT=1 ; -- -------------------------------------------------------- @@ -497,7 +497,7 @@ CREATE TABLE `dns_rr` ( `serial` int(10) unsigned default NULL, PRIMARY KEY (`id`), KEY `rr` (`zone`,`type`,`name`) -) ENGINE=MyISAM DEFAULT CHARSET=utf8 AUTO_INCREMENT=1 ; +) DEFAULT CHARSET=utf8 AUTO_INCREMENT=1 ; -- -------------------------------------------------------- @@ -520,7 +520,7 @@ CREATE TABLE `dns_slave` ( PRIMARY KEY (`id`), UNIQUE KEY `slave` (`origin`,`server_id`), KEY `active` (`active`) -) ENGINE=MyISAM DEFAULT CHARSET=utf8 AUTO_INCREMENT=1 ; +) DEFAULT CHARSET=utf8 AUTO_INCREMENT=1 ; -- -------------------------------------------------------- @@ -543,7 +543,7 @@ CREATE TABLE IF NOT EXISTS `dns_ssl_ca` ( `ca_critical` tinyint(1) NOT NULL DEFAULT '0', PRIMARY KEY (`id`), UNIQUE KEY (`ca_issue`) -) ENGINE=MyISAM DEFAULT CHARSET=utf8 AUTO_INCREMENT=1 ; +) DEFAULT CHARSET=utf8 AUTO_INCREMENT=1 ; ALTER TABLE `dns_ssl_ca` ADD UNIQUE(`ca_issue`); @@ -630,7 +630,7 @@ CREATE TABLE `dns_soa` ( PRIMARY KEY (`id`), UNIQUE KEY `origin` (`origin`), KEY `active` (`active`) -) ENGINE=MyISAM DEFAULT CHARSET=utf8 AUTO_INCREMENT=1 ; +) DEFAULT CHARSET=utf8 AUTO_INCREMENT=1 ; -- -------------------------------------------------------- @@ -650,7 +650,7 @@ CREATE TABLE `dns_template` ( `template` text, `visible` enum('N','Y') NOT NULL default 'Y', PRIMARY KEY (`template_id`) -) ENGINE=MyISAM DEFAULT CHARSET=utf8 AUTO_INCREMENT=1 ; +) DEFAULT CHARSET=utf8 AUTO_INCREMENT=1 ; -- -- Table structure for table `domain` @@ -666,7 +666,7 @@ CREATE TABLE `domain` ( `domain` varchar(255) NOT NULL default '', PRIMARY KEY (`domain_id`), UNIQUE KEY `domain` (`domain`) -) ENGINE=MyISAM DEFAULT CHARSET=utf8 ; +) DEFAULT CHARSET=utf8 ; -- -------------------------------------------------------- @@ -686,7 +686,7 @@ CREATE TABLE `firewall` ( `udp_port` text, `active` enum('n','y') NOT NULL default 'y', PRIMARY KEY (`firewall_id`) -) ENGINE=MyISAM DEFAULT CHARSET=utf8 AUTO_INCREMENT=1 ; +) DEFAULT CHARSET=utf8 AUTO_INCREMENT=1 ; -- -------------------------------------------------------- @@ -724,7 +724,7 @@ CREATE TABLE `ftp_user` ( KEY `server_id` (`server_id`), KEY `username` (`username`), KEY `quota_files` (`quota_files`) -) ENGINE=MyISAM DEFAULT CHARSET=utf8 AUTO_INCREMENT=1 ; +) DEFAULT CHARSET=utf8 AUTO_INCREMENT=1 ; -- -------------------------------------------------------- @@ -738,7 +738,7 @@ CREATE TABLE `ftp_traffic` ( `in_bytes` bigint(32) unsigned NOT NULL, `out_bytes` bigint(32) unsigned NOT NULL, UNIQUE KEY (`hostname`,`traffic_date`) -) ENGINE=MyISAM DEFAULT CHARSET=utf8 AUTO_INCREMENT=1 ; +) DEFAULT CHARSET=utf8 AUTO_INCREMENT=1 ; -- -------------------------------------------------------- @@ -758,7 +758,7 @@ CREATE TABLE `help_faq` ( `sys_perm_group` varchar(5) DEFAULT NULL, `sys_perm_other` varchar(5) DEFAULT NULL, PRIMARY KEY (`hf_id`) -) ENGINE=MyISAM DEFAULT CHARSET=utf8 AUTO_INCREMENT=1 ; +) DEFAULT CHARSET=utf8 AUTO_INCREMENT=1 ; -- -------------------------------------------------------- @@ -776,7 +776,7 @@ CREATE TABLE `help_faq_sections` ( `sys_perm_group` varchar(5) DEFAULT NULL, `sys_perm_other` varchar(5) DEFAULT NULL, PRIMARY KEY (`hfs_id`) -) ENGINE=MyISAM DEFAULT CHARSET=utf8 AUTO_INCREMENT=1 ; +) DEFAULT CHARSET=utf8 AUTO_INCREMENT=1 ; -- -------------------------------------------------------- @@ -797,7 +797,7 @@ CREATE TABLE `iptables` ( `target` varchar(10) DEFAULT NULL COMMENT 'ACCEPT DROP REJECT LOG', `active` enum('n','y') NOT NULL DEFAULT 'y', PRIMARY KEY (`iptables_id`) -) ENGINE=MyISAM AUTO_INCREMENT=5 DEFAULT CHARSET=utf8; +) AUTO_INCREMENT=5 DEFAULT CHARSET=utf8; -- -------------------------------------------------------- @@ -819,7 +819,7 @@ CREATE TABLE `mail_access` ( `active` enum('n','y') NOT NULL default 'y', PRIMARY KEY (`access_id`), KEY `server_id` (`server_id`,`source`) -) ENGINE=MyISAM DEFAULT CHARSET=utf8 AUTO_INCREMENT=1 ; +) DEFAULT CHARSET=utf8 AUTO_INCREMENT=1 ; -- -------------------------------------------------------- @@ -837,7 +837,7 @@ CREATE TABLE `mail_backup` ( `filename` varchar(255) NOT NULL DEFAULT '', `filesize` VARCHAR(20) NOT NULL DEFAULT '', PRIMARY KEY (`backup_id`) -) ENGINE=MyISAM DEFAULT CHARSET=utf8 AUTO_INCREMENT=1 ; +) DEFAULT CHARSET=utf8 AUTO_INCREMENT=1 ; -- -------------------------------------------------------- @@ -859,7 +859,7 @@ CREATE TABLE `mail_content_filter` ( `action` varchar(255) default NULL, `active` varchar(255) NOT NULL default 'y', PRIMARY KEY (`content_filter_id`) -) ENGINE=MyISAM DEFAULT CHARSET=utf8 AUTO_INCREMENT=1 ; +) DEFAULT CHARSET=utf8 AUTO_INCREMENT=1 ; -- -------------------------------------------------------- @@ -884,7 +884,7 @@ CREATE TABLE `mail_domain` ( PRIMARY KEY (`domain_id`), KEY `server_id` (`server_id`,`domain`), KEY `domain_active` (`domain`,`active`) -) ENGINE=MyISAM DEFAULT CHARSET=utf8 AUTO_INCREMENT=1 ; +) DEFAULT CHARSET=utf8 AUTO_INCREMENT=1 ; -- -------------------------------------------------------- @@ -909,7 +909,7 @@ CREATE TABLE `mail_forwarding` ( PRIMARY KEY (`forwarding_id`), KEY `server_id` (`server_id`,`source`), KEY `type` (`type`) -) ENGINE=MyISAM DEFAULT CHARSET=utf8 AUTO_INCREMENT=1 ; +) DEFAULT CHARSET=utf8 AUTO_INCREMENT=1 ; -- -------------------------------------------------------- @@ -934,7 +934,7 @@ CREATE TABLE `mail_get` ( `destination` varchar(255) default NULL, `active` varchar(255) NOT NULL default 'y', PRIMARY KEY (`mailget_id`) -) ENGINE=MyISAM DEFAULT CHARSET=utf8 AUTO_INCREMENT=1 ; +) DEFAULT CHARSET=utf8 AUTO_INCREMENT=1 ; -- -------------------------------------------------------- @@ -955,7 +955,7 @@ CREATE TABLE `mail_mailinglist` ( `email` varchar(255) NOT NULL DEFAULT '', `password` varchar(255) NOT NULL DEFAULT '', PRIMARY KEY (`mailinglist_id`) -) ENGINE=MyISAM DEFAULT CHARSET=utf8 AUTO_INCREMENT=1 ; +) DEFAULT CHARSET=utf8 AUTO_INCREMENT=1 ; -- -------------------------------------------------------- @@ -975,7 +975,7 @@ CREATE TABLE IF NOT EXISTS `mail_relay_recipient` ( `access` varchar(255) NOT NULL DEFAULT 'OK', `active` varchar(255) NOT NULL DEFAULT 'y', PRIMARY KEY (`relay_recipient_id`) -) ENGINE=MyISAM DEFAULT CHARSET=utf8 AUTO_INCREMENT=1 ; +) DEFAULT CHARSET=utf8 AUTO_INCREMENT=1 ; -- -------------------------------------------------------- @@ -990,7 +990,7 @@ CREATE TABLE `mail_traffic` ( `traffic` bigint(20) unsigned NOT NULL DEFAULT '0', PRIMARY KEY (`traffic_id`), KEY `mailuser_id` (`mailuser_id`,`month`) -) ENGINE=MyISAM DEFAULT CHARSET=utf8 AUTO_INCREMENT=1 ; +) DEFAULT CHARSET=utf8 AUTO_INCREMENT=1 ; -- -------------------------------------------------------- @@ -1013,7 +1013,7 @@ CREATE TABLE `mail_transport` ( PRIMARY KEY (`transport_id`), KEY `server_id` (`server_id`,`transport`), KEY `server_id_2` (`server_id`,`domain`) -) ENGINE=MyISAM DEFAULT CHARSET=utf8 AUTO_INCREMENT=1 ; +) DEFAULT CHARSET=utf8 AUTO_INCREMENT=1 ; -- -------------------------------------------------------- @@ -1066,7 +1066,7 @@ CREATE TABLE `mail_user` ( PRIMARY KEY (`mailuser_id`), KEY `server_id` (`server_id`,`email`), KEY `email_access` (`email`,`access`) -) ENGINE=MyISAM DEFAULT CHARSET=utf8 AUTO_INCREMENT=1 ; +) DEFAULT CHARSET=utf8 AUTO_INCREMENT=1 ; -- -------------------------------------------------------- @@ -1090,7 +1090,7 @@ CREATE TABLE `mail_user_filter` ( `target` varchar(255) default NULL, `active` enum('n','y') NOT NULL default 'y', PRIMARY KEY (`filter_id`) -) ENGINE=MyISAM DEFAULT CHARSET=utf8 AUTO_INCREMENT=1 ; +) DEFAULT CHARSET=utf8 AUTO_INCREMENT=1 ; -- -------------------------------------------------------- @@ -1105,7 +1105,7 @@ CREATE TABLE `monitor_data` ( `data` mediumtext, `state` enum('no_state','unknown','ok','info','warning','critical','error') NOT NULL DEFAULT 'unknown', PRIMARY KEY (`server_id`,`type`,`created`) -) ENGINE=MyISAM DEFAULT CHARSET=utf8 ; +) DEFAULT CHARSET=utf8 ; -- -------------------------------------------------------- @@ -1126,7 +1126,7 @@ CREATE TABLE IF NOT EXISTS `openvz_ip` ( `reserved` varchar(255) NOT NULL DEFAULT 'n', `additional` varchar(255) NOT NULL DEFAULT 'n', PRIMARY KEY (`ip_address_id`) -) ENGINE=MyISAM DEFAULT CHARSET=utf8 ; +) DEFAULT CHARSET=utf8 ; -- -- Dumping data for table `openvz_ip` @@ -1152,7 +1152,7 @@ CREATE TABLE IF NOT EXISTS `openvz_ostemplate` ( `active` varchar(255) NOT NULL DEFAULT 'y', `description` text, PRIMARY KEY (`ostemplate_id`) -) ENGINE=MyISAM DEFAULT CHARSET=utf8 ; +) DEFAULT CHARSET=utf8 ; -- -- Dumping data for table `openvz_ostemplate` @@ -1215,7 +1215,7 @@ CREATE TABLE IF NOT EXISTS `openvz_template` ( `iptables` varchar(255) DEFAULT NULL, `custom` text, PRIMARY KEY (`template_id`) -) ENGINE=MyISAM DEFAULT CHARSET=utf8 ; +) DEFAULT CHARSET=utf8 ; -- -- Dumping data for table `openvz_template` @@ -1234,7 +1234,7 @@ CREATE TABLE IF NOT EXISTS `openvz_traffic` ( `traffic_date` date NULL DEFAULT NULL, `traffic_bytes` bigint(32) unsigned NOT NULL DEFAULT '0', UNIQUE KEY (`veid`,`traffic_date`) -) ENGINE=MyISAM DEFAULT CHARSET=utf8; +) DEFAULT CHARSET=utf8; -- -- Dumping data for table `openvz_traffic` @@ -1283,7 +1283,7 @@ CREATE TABLE IF NOT EXISTS `openvz_vm` ( `config` mediumtext, `custom` text, PRIMARY KEY (`vm_id`) -) ENGINE=MyISAM DEFAULT CHARSET=utf8 ; +) DEFAULT CHARSET=utf8 ; -- -- Dumping data for table `openvz_vm` @@ -1302,7 +1302,7 @@ CREATE TABLE `remote_session` ( `client_login` tinyint(1) unsigned NOT NULL default '0', `tstamp` int(10) unsigned NOT NULL DEFAULT '0', PRIMARY KEY (`remote_session`) -) ENGINE=MyISAM DEFAULT CHARSET=utf8 ; +) DEFAULT CHARSET=utf8 ; -- -------------------------------------------------------- @@ -1323,7 +1323,7 @@ CREATE TABLE `remote_user` ( `remote_ips` TEXT, `remote_functions` text, PRIMARY KEY (`remote_userid`) -) ENGINE=MyISAM DEFAULT CHARSET=utf8 AUTO_INCREMENT=1 ; +) DEFAULT CHARSET=utf8 AUTO_INCREMENT=1 ; -- -------------------------------------------------------- @@ -1354,7 +1354,7 @@ CREATE TABLE `server` ( `dbversion` int(11) unsigned NOT NULL default '1', `active` tinyint(1) NOT NULL default '1', PRIMARY KEY (`server_id`) -) ENGINE=MyISAM DEFAULT CHARSET=utf8 AUTO_INCREMENT=1 ; +) DEFAULT CHARSET=utf8 AUTO_INCREMENT=1 ; -- -------------------------------------------------------- @@ -1376,7 +1376,7 @@ CREATE TABLE `server_ip` ( `virtualhost` enum('n','y') NOT NULL default 'y', `virtualhost_port` varchar(255) default '80,443', PRIMARY KEY (`server_ip_id`) -) ENGINE=MyISAM DEFAULT CHARSET=utf8 AUTO_INCREMENT=1 ; +) DEFAULT CHARSET=utf8 AUTO_INCREMENT=1 ; -- -------------------------------------------------------- @@ -1396,7 +1396,7 @@ CREATE TABLE `server_ip_map` ( `destination_ip` varchar(35) DEFAULT '', `active` enum('n','y') NOT NULL DEFAULT 'y', PRIMARY KEY (`server_ip_map_id`) -) ENGINE=MyISAM DEFAULT CHARSET=utf8 AUTO_INCREMENT=1 ; +) DEFAULT CHARSET=utf8 AUTO_INCREMENT=1 ; -- -------------------------------------------------------- @@ -1421,7 +1421,7 @@ CREATE TABLE `server_php` ( `php_fpm_pool_dir` varchar(255) DEFAULT NULL, `active` enum('n','y') NOT NULL DEFAULT 'y', PRIMARY KEY (`server_php_id`) -) ENGINE=MyISAM DEFAULT CHARSET=utf8 AUTO_INCREMENT=1 ; +) DEFAULT CHARSET=utf8 AUTO_INCREMENT=1 ; -- -------------------------------------------------------- @@ -1450,7 +1450,7 @@ CREATE TABLE `shell_user` ( `chroot` varchar(255) NOT NULL DEFAULT '', `ssh_rsa` text, PRIMARY KEY (`shell_user_id`) -) ENGINE=MyISAM DEFAULT CHARSET=utf8 AUTO_INCREMENT=1 ; +) DEFAULT CHARSET=utf8 AUTO_INCREMENT=1 ; -- -------------------------------------------------------- @@ -1473,7 +1473,7 @@ CREATE TABLE `software_package` ( `package_config` text, PRIMARY KEY (`package_id`), UNIQUE KEY `package_name` (`package_name`) -) ENGINE=MyISAM DEFAULT CHARSET=utf8 AUTO_INCREMENT=1 ; +) DEFAULT CHARSET=utf8 AUTO_INCREMENT=1 ; -- -------------------------------------------------------- @@ -1494,7 +1494,7 @@ CREATE TABLE `software_repo` ( `repo_password` varchar(64) default NULL, `active` enum('n','y') NOT NULL default 'y', PRIMARY KEY (`software_repo_id`) -) ENGINE=MyISAM DEFAULT CHARSET=utf8 AUTO_INCREMENT=1 ; +) DEFAULT CHARSET=utf8 AUTO_INCREMENT=1 ; -- -------------------------------------------------------- @@ -1516,7 +1516,7 @@ CREATE TABLE `software_update` ( `v4` tinyint(1) NOT NULL default '0', `type` enum('full','update') NOT NULL default 'full', PRIMARY KEY (`software_update_id`) -) ENGINE=MyISAM DEFAULT CHARSET=utf8 AUTO_INCREMENT=1 ; +) DEFAULT CHARSET=utf8 AUTO_INCREMENT=1 ; -- -------------------------------------------------------- @@ -1532,7 +1532,7 @@ CREATE TABLE `software_update_inst` ( `status` enum('none','installing','installed','deleting','deleted','failed') NOT NULL default 'none', PRIMARY KEY (`software_update_inst_id`), UNIQUE KEY `software_update_id` (`software_update_id`,`package_name`,`server_id`) -) ENGINE=MyISAM DEFAULT CHARSET=utf8 AUTO_INCREMENT=1 ; +) DEFAULT CHARSET=utf8 AUTO_INCREMENT=1 ; -- -------------------------------------------------------- @@ -1590,7 +1590,7 @@ CREATE TABLE `spamfilter_policy` ( `policyd_quota_out_period` int(11) NOT NULL DEFAULT '24', `policyd_greylist` ENUM( 'Y', 'N' ) NOT NULL DEFAULT 'N', PRIMARY KEY (`id`) -) ENGINE=MyISAM DEFAULT CHARSET=utf8 AUTO_INCREMENT=1 ; +) DEFAULT CHARSET=utf8 AUTO_INCREMENT=1 ; -- -------------------------------------------------------- @@ -1613,7 +1613,7 @@ CREATE TABLE `spamfilter_users` ( `local` varchar(1) default NULL, PRIMARY KEY (`id`), UNIQUE KEY `email` (`email`) -) ENGINE=MyISAM DEFAULT CHARSET=utf8 AUTO_INCREMENT=1 ; +) DEFAULT CHARSET=utf8 AUTO_INCREMENT=1 ; -- -------------------------------------------------------- @@ -1635,7 +1635,7 @@ CREATE TABLE `spamfilter_wblist` ( `priority` tinyint(3) unsigned NOT NULL DEFAULT '0', `active` enum('y','n') NOT NULL default 'y', PRIMARY KEY (`wblist_id`) -) ENGINE=MyISAM DEFAULT CHARSET=utf8 AUTO_INCREMENT=1 ; +) DEFAULT CHARSET=utf8 AUTO_INCREMENT=1 ; -- -------------------------------------------------------- @@ -1656,7 +1656,7 @@ CREATE TABLE `support_message` ( `message` text default NULL, `tstamp` int(11) NOT NULL default '0', PRIMARY KEY (`support_message_id`) -) ENGINE=MyISAM DEFAULT CHARSET=utf8 AUTO_INCREMENT=1 ; +) DEFAULT CHARSET=utf8 AUTO_INCREMENT=1 ; -- -------------------------------------------------------- @@ -1669,7 +1669,7 @@ CREATE TABLE `sys_config` ( `name` varchar(64) NOT NULL DEFAULT '', `value` varchar(255) NOT NULL DEFAULT '', PRIMARY KEY (`group`, `name`) -) ENGINE=MyISAM DEFAULT CHARSET=utf8; +) DEFAULT CHARSET=utf8; -- -------------------------------------------------------- @@ -1684,7 +1684,7 @@ CREATE TABLE IF NOT EXISTS `sys_cron` ( `next_run` datetime NULL DEFAULT NULL, `running` tinyint(1) UNSIGNED NOT NULL DEFAULT '0', PRIMARY KEY (`name`) -) ENGINE=MyISAM DEFAULT CHARSET=utf8; +) DEFAULT CHARSET=utf8; -- -------------------------------------------------------- @@ -1707,7 +1707,7 @@ CREATE TABLE `sys_datalog` ( `session_id` varchar(64) NOT NULL DEFAULT '', PRIMARY KEY (`datalog_id`), KEY `server_id` (`server_id`,`status`) -) ENGINE=MyISAM DEFAULT CHARSET=utf8 AUTO_INCREMENT=1 ; +) DEFAULT CHARSET=utf8 AUTO_INCREMENT=1 ; -- -------------------------------------------------------- @@ -1731,7 +1731,7 @@ CREATE TABLE `sys_dbsync` ( `last_datalog_id` int(11) unsigned NOT NULL default '0', PRIMARY KEY (`id`), KEY `last_datalog_id` (`last_datalog_id`) -) ENGINE=MyISAM DEFAULT CHARSET=utf8 AUTO_INCREMENT=1 ; +) DEFAULT CHARSET=utf8 AUTO_INCREMENT=1 ; -- -------------------------------------------------------- @@ -1751,7 +1751,7 @@ CREATE TABLE `sys_filesync` ( `wput_options` varchar(255) NOT NULL default '--timestamping --reupload --dont-continue', `active` tinyint(1) NOT NULL default '1', PRIMARY KEY (`id`) -) ENGINE=MyISAM DEFAULT CHARSET=utf8 AUTO_INCREMENT=1 ; +) DEFAULT CHARSET=utf8 AUTO_INCREMENT=1 ; -- -------------------------------------------------------- @@ -1765,7 +1765,7 @@ CREATE TABLE `sys_group` ( `description` text, `client_id` int(11) unsigned NOT NULL default '0', PRIMARY KEY (`groupid`) -) ENGINE=MyISAM DEFAULT CHARSET=utf8 AUTO_INCREMENT=1 ; +) DEFAULT CHARSET=utf8 AUTO_INCREMENT=1 ; -- -------------------------------------------------------- @@ -1779,7 +1779,7 @@ CREATE TABLE `sys_ini` ( `default_logo` text NOT NULL, `custom_logo` text NOT NULL, PRIMARY KEY (`sysini_id`) -) ENGINE=MyISAM DEFAULT CHARSET=utf8 AUTO_INCREMENT=1 ; +) DEFAULT CHARSET=utf8 AUTO_INCREMENT=1 ; -- -------------------------------------------------------- @@ -1795,7 +1795,7 @@ CREATE TABLE `sys_log` ( `tstamp` int(11) unsigned NOT NULL DEFAULT '0', `message` text, PRIMARY KEY (`syslog_id`) -) ENGINE=MyISAM DEFAULT CHARSET=utf8 AUTO_INCREMENT=1 ; +) DEFAULT CHARSET=utf8 AUTO_INCREMENT=1 ; -- -------------------------------------------------------- @@ -1813,7 +1813,7 @@ CREATE TABLE `sys_remoteaction` ( `response` mediumtext, PRIMARY KEY (`action_id`), KEY `server_id` (`server_id`) -) ENGINE=MyISAM DEFAULT CHARSET=utf8 AUTO_INCREMENT=1 ; +) DEFAULT CHARSET=utf8 AUTO_INCREMENT=1 ; -- -------------------------------------------------------- @@ -1829,7 +1829,7 @@ CREATE TABLE `sys_session` ( `session_data` longtext, PRIMARY KEY (`session_id`), KEY `last_updated` (`last_updated`) -) ENGINE=MyISAM DEFAULT CHARSET=utf8 ; +) DEFAULT CHARSET=utf8 ; -- -------------------------------------------------------- @@ -1848,7 +1848,7 @@ CREATE TABLE IF NOT EXISTS `sys_theme` ( `username` varchar(64) NOT NULL DEFAULT '', `logo_url` varchar(255) NOT NULL DEFAULT '', PRIMARY KEY (`var_id`) -) ENGINE=MyISAM DEFAULT CHARSET=utf8 ; +) DEFAULT CHARSET=utf8 ; -- -------------------------------------------------------- @@ -1880,7 +1880,7 @@ CREATE TABLE `sys_user` ( `lost_password_hash` VARCHAR(50) NOT NULL default '', `lost_password_reqtime` DATETIME NULL default NULL, PRIMARY KEY (`userid`) -) ENGINE=MyISAM DEFAULT CHARSET=utf8 AUTO_INCREMENT=1 ; +) DEFAULT CHARSET=utf8 AUTO_INCREMENT=1 ; -- -------------------------------------------------------- @@ -1903,7 +1903,7 @@ CREATE TABLE `webdav_user` ( `active` enum('n','y') NOT NULL DEFAULT 'y', `dir` varchar(255) DEFAULT NULL, PRIMARY KEY (`webdav_user_id`) -) ENGINE=MyISAM DEFAULT CHARSET=utf8 AUTO_INCREMENT=1 ; +) DEFAULT CHARSET=utf8 AUTO_INCREMENT=1 ; -- -------------------------------------------------------- @@ -1921,7 +1921,7 @@ CREATE TABLE `web_backup` ( `filename` varchar(255) NOT NULL DEFAULT '', `filesize` VARCHAR(20) NOT NULL DEFAULT '', PRIMARY KEY (`backup_id`) -) ENGINE=MyISAM DEFAULT CHARSET=utf8 AUTO_INCREMENT=1 ; +) DEFAULT CHARSET=utf8 AUTO_INCREMENT=1 ; -- -------------------------------------------------------- @@ -1955,7 +1955,7 @@ CREATE TABLE `web_database` ( PRIMARY KEY (`database_id`), KEY `database_user_id` (`database_user_id`), KEY `database_ro_user_id` (`database_ro_user_id`) -) ENGINE=MyISAM DEFAULT CHARSET=utf8 AUTO_INCREMENT=1 ; +) DEFAULT CHARSET=utf8 AUTO_INCREMENT=1 ; -- -------------------------------------------------------- @@ -1976,7 +1976,7 @@ CREATE TABLE IF NOT EXISTS `web_database_user` ( `database_password` varchar(64) DEFAULT NULL, `database_password_mongo` varchar(32) DEFAULT NULL, PRIMARY KEY (`database_user_id`) -) ENGINE=MyISAM DEFAULT CHARSET=utf8 AUTO_INCREMENT=1 ; +) DEFAULT CHARSET=utf8 AUTO_INCREMENT=1 ; -- -------------------------------------------------------- @@ -2068,7 +2068,7 @@ CREATE TABLE `web_domain` ( `log_retention` int(11) NOT NULL DEFAULT '10', PRIMARY KEY (`domain_id`), UNIQUE KEY `serverdomain` ( `server_id` , `ip_address`, `domain` ) -) ENGINE=MyISAM DEFAULT CHARSET=utf8 AUTO_INCREMENT=1 ; +) DEFAULT CHARSET=utf8 AUTO_INCREMENT=1 ; -- -------------------------------------------------------- @@ -2088,7 +2088,7 @@ CREATE TABLE IF NOT EXISTS `web_folder` ( `path` varchar(255) DEFAULT NULL, `active` varchar(255) NOT NULL DEFAULT 'y', PRIMARY KEY (`web_folder_id`) -) ENGINE=MyISAM DEFAULT CHARSET=utf8 AUTO_INCREMENT=1 ; +) DEFAULT CHARSET=utf8 AUTO_INCREMENT=1 ; -- -- Dumping data for table `web_folder` @@ -2114,7 +2114,7 @@ CREATE TABLE IF NOT EXISTS `web_folder_user` ( `password` varchar(255) DEFAULT NULL, `active` varchar(255) NOT NULL DEFAULT 'y', PRIMARY KEY (`web_folder_user_id`) -) ENGINE=MyISAM DEFAULT CHARSET=utf8 AUTO_INCREMENT=1 ; +) DEFAULT CHARSET=utf8 AUTO_INCREMENT=1 ; -- -- Dumping data for table `web_folder_user` @@ -2131,7 +2131,7 @@ CREATE TABLE `web_traffic` ( `traffic_date` date NULL DEFAULT NULL, `traffic_bytes` bigint(32) unsigned NOT NULL default '0', UNIQUE KEY (`hostname`,`traffic_date`) -) ENGINE=MyISAM DEFAULT CHARSET=utf8 ; +) DEFAULT CHARSET=utf8 ; -- -------------------------------------------------------- @@ -2190,7 +2190,7 @@ CREATE TABLE `xmpp_domain` ( PRIMARY KEY (`domain_id`), KEY `server_id` (`server_id`,`domain`), KEY `domain_active` (`domain`,`active`) -) ENGINE=MyISAM DEFAULT CHARSET=utf8 AUTO_INCREMENT=1 ; +) DEFAULT CHARSET=utf8 AUTO_INCREMENT=1 ; -- -------------------------------------------------------- @@ -2212,7 +2212,7 @@ CREATE TABLE `xmpp_user` ( PRIMARY KEY (`xmppuser_id`), KEY `server_id` (`server_id`,`jid`), KEY `jid_active` (`jid`,`active`) -) ENGINE=MyISAM DEFAULT CHARSET=utf8 AUTO_INCREMENT=1 ; +) DEFAULT CHARSET=utf8 AUTO_INCREMENT=1 ; -- -------------------------------------------------------- -- GitLab From 3c2f3189ce3f56cc1c6d48b285b748df50a40d05 Mon Sep 17 00:00:00 2001 From: Marius Burkard Date: Tue, 30 Jul 2019 22:23:26 +0200 Subject: [PATCH 118/215] - removed files from failed patches (orig/rej) --- install/dist/conf/debiantesting.conf.php.orig | 234 -- install/lib/installer_base.lib.php.orig | 2962 ----------------- .../incremental/upd_dev_collection.sql.orig | 0 .../incremental/upd_dev_collection.sql.rej | 40 - install/sql/ispconfig3.sql.orig | 2570 -------------- install/sql/ispconfig3.sql.rej | 23 - .../admin/form/server_config.tform.php.orig | 1956 ----------- .../admin/lib/lang/de_server_config.lng.orig | 299 -- .../admin/lib/lang/de_server_config.lng.rej | 11 - .../admin/lib/lang/en_server_config.lng.orig | 300 -- .../admin/lib/lang/en_server_config.lng.rej | 11 - .../form/spamfilter_policy.tform.php.orig | 496 --- 12 files changed, 8902 deletions(-) delete mode 100644 install/dist/conf/debiantesting.conf.php.orig delete mode 100644 install/lib/installer_base.lib.php.orig delete mode 100644 install/sql/incremental/upd_dev_collection.sql.orig delete mode 100644 install/sql/incremental/upd_dev_collection.sql.rej delete mode 100644 install/sql/ispconfig3.sql.orig delete mode 100644 install/sql/ispconfig3.sql.rej delete mode 100644 interface/web/admin/form/server_config.tform.php.orig delete mode 100644 interface/web/admin/lib/lang/de_server_config.lng.orig delete mode 100644 interface/web/admin/lib/lang/de_server_config.lng.rej delete mode 100644 interface/web/admin/lib/lang/en_server_config.lng.orig delete mode 100644 interface/web/admin/lib/lang/en_server_config.lng.rej delete mode 100644 interface/web/mail/form/spamfilter_policy.tform.php.orig diff --git a/install/dist/conf/debiantesting.conf.php.orig b/install/dist/conf/debiantesting.conf.php.orig deleted file mode 100644 index 5e5e32f47..000000000 --- a/install/dist/conf/debiantesting.conf.php.orig +++ /dev/null @@ -1,234 +0,0 @@ - diff --git a/install/lib/installer_base.lib.php.orig b/install/lib/installer_base.lib.php.orig deleted file mode 100644 index 8d0456ef5..000000000 --- a/install/lib/installer_base.lib.php.orig +++ /dev/null @@ -1,2962 +0,0 @@ -conf = $conf; - } - - //: TODO Implement the translation function and language files for the installer. - public function lng($text) { - return $text; - } - - public function error($msg) { - die('ERROR: '.$msg."\n"); - } - - public function warning($msg) { - echo 'WARNING: '.$msg."\n"; - } - - public function simple_query($query, $answers, $default, $name = '') { - global $autoinstall, $autoupdate; - $finished = false; - do { - if($name != '' && $autoinstall[$name] != '') { - if($autoinstall[$name] == 'default') { - $input = $default; - } else { - $input = $autoinstall[$name]; - } - } elseif($name != '' && $autoupdate[$name] != '') { - if($autoupdate[$name] == 'default') { - $input = $default; - } else { - $input = $autoupdate[$name]; - } - } else { - $answers_str = implode(',', $answers); - swrite($this->lng($query).' ('.$answers_str.') ['.$default.']: '); - $input = sread(); - } - - //* Stop the installation - if($input == 'quit') { - swriteln($this->lng("Installation terminated by user.\n")); - die(); - } - - //* Select the default - if($input == '') { - $answer = $default; - $finished = true; - } - - //* Set answer id valid - if(in_array($input, $answers)) { - $answer = $input; - $finished = true; - } - - } while ($finished == false); - swriteln(); - return $answer; - } - - public function free_query($query, $default, $name = '') { - global $autoinstall, $autoupdate; - if($name != '' && $autoinstall[$name] != '') { - if($autoinstall[$name] == 'default') { - $input = $default; - } else { - $input = $autoinstall[$name]; - } - } elseif($name != '' && $autoupdate[$name] != '') { - if($autoupdate[$name] == 'default') { - $input = $default; - } else { - $input = $autoupdate[$name]; - } - } else { - swrite($this->lng($query).' ['.$default.']: '); - $input = sread(); - } - - //* Stop the installation - if($input == 'quit') { - swriteln($this->lng("Installation terminated by user.\n")); - die(); - } - - $answer = ($input == '') ? $default : $input; - swriteln(); - return $answer; - } - - /* - // TODO: this function is not used atmo I think - pedro - function request_language(){ - - swriteln(lng('Enter your language')); - swriteln(lng('de, en')); - - } - */ - - //** Detect PHP-Version - public function get_php_version() { - if(version_compare(PHP_VERSION, $this->min_php, '<')) return false; - else return true; - } - - //** Detect installed applications - public function find_installed_apps() { - global $conf; - - if(is_installed('mysql') || is_installed('mysqld')) $conf['mysql']['installed'] = true; - if(is_installed('postfix')) $conf['postfix']['installed'] = true; - if(is_installed('postgrey')) $conf['postgrey']['installed'] = true; - if(is_installed('mailman') || is_installed('mmsitepass')) $conf['mailman']['installed'] = true; - if(is_installed('apache') || is_installed('apache2') || is_installed('httpd') || is_installed('httpd2')) $conf['apache']['installed'] = true; - if(is_installed('getmail')) $conf['getmail']['installed'] = true; - if(is_installed('courierlogger')) $conf['courier']['installed'] = true; - if(is_installed('dovecot')) $conf['dovecot']['installed'] = true; - if(is_installed('saslauthd')) $conf['saslauthd']['installed'] = true; - if(is_installed('amavisd-new') || is_installed('amavisd')) $conf['amavis']['installed'] = true; - if(is_installed('clamdscan')) $conf['clamav']['installed'] = true; - if(is_installed('pure-ftpd') || is_installed('pure-ftpd-wrapper')) $conf['pureftpd']['installed'] = true; - if(is_installed('mydns') || is_installed('mydns-ng')) $conf['mydns']['installed'] = true; - if(is_installed('jk_chrootsh')) $conf['jailkit']['installed'] = true; - if(is_installed('pdns_server') || is_installed('pdns_control')) $conf['powerdns']['installed'] = true; - if(is_installed('named') || is_installed('bind') || is_installed('bind9')) $conf['bind']['installed'] = true; - if(is_installed('squid')) $conf['squid']['installed'] = true; - if(is_installed('nginx')) $conf['nginx']['installed'] = true; - if(is_installed('iptables') && is_installed('ufw')) { - $conf['ufw']['installed'] = true; - } elseif(is_installed('iptables')) { - $conf['firewall']['installed'] = true; - } - if(is_installed('fail2ban-server')) $conf['fail2ban']['installed'] = true; - if(is_installed('vzctl')) $conf['openvz']['installed'] = true; - if(is_installed('metronome') && is_installed('metronomectl')) $conf['xmpp']['installed'] = true; - if(is_installed('spamassassin')) $conf['spamassassin']['installed'] = true; - // if(is_installed('vlogger')) $conf['vlogger']['installed'] = true; - // ISPConfig ships with vlogger, so it is always installed. - $conf['vlogger']['installed'] = true; - if(is_installed('cron') || is_installed('anacron')) $conf['cron']['installed'] = true; - - if (($conf['apache']['installed'] && is_file($conf['apache']["vhost_conf_enabled_dir"]."/000-ispconfig.vhost")) || ($conf['nginx']['installed'] && is_file($conf['nginx']["vhost_conf_enabled_dir"]."/000-ispconfig.vhost"))) $this->ispconfig_interface_installed = true; - } - - public function force_configure_app($service, $enable_force=true) { - $force = false; - if(AUTOINSTALL == true) return false; - if($enable_force == true) { - swriteln("[WARN] autodetect for $service failed"); - } else { - swriteln("[INFO] service $service not detected"); - } - if($enable_force) { - if(strtolower($this->simple_query("Force configure $service", array('y', 'n'), 'n') ) == 'y') { - $force = true; - } else swriteln("Skipping $service\n"); - } - return $force; - } - - public function reconfigure_app($service, $reconfigure_services_answer) { - $reconfigure = false; - if ($reconfigure_services_answer != 'selected') { - $reconfigure = true; - } else { - if(strtolower($this->simple_query("Reconfigure $service", array('y', 'n'), 'y') ) == 'y') { - $reconfigure = true; - } else { - swriteln("Skip reconfigure $service\n"); - } - } - return $reconfigure; - } - - /** Create the database for ISPConfig */ - - - public function configure_database() { - global $conf; - - //* check sql-mode - /*$check_sql_mode = $this->db->queryOneRecord("SELECT @@sql_mode"); - - if ($check_sql_mode['@@sql_mode'] != '' && $check_sql_mode['@@sql_mode'] != 'NO_ENGINE_SUBSTITUTION') { - echo "Wrong SQL-mode. You should use NO_ENGINE_SUBSTITUTION. Add\n\n"; - echo " sql-mode=\"NO_ENGINE_SUBSTITUTION\"\n\n"; - echo"to the mysqld-section in your mysql-config on this server and restart mysqld afterwards\n"; - die(); - }*/ - - $unwanted_sql_plugins = array('validate_password'); - $sql_plugins = $this->db->queryAllRecords("SELECT plugin_name FROM information_schema.plugins WHERE plugin_status='ACTIVE' AND plugin_name IN ?", $unwanted_sql_plugins); - if(is_array($sql_plugins) && !empty($sql_plugins)) { - foreach ($sql_plugins as $plugin) echo "Login in to MySQL and disable $plugin[plugin_name] with:\n\n UNINSTALL PLUGIN $plugin[plugin_name];"; - die(); - } - - //** Create the database - if(!$this->db->query('CREATE DATABASE IF NOT EXISTS ?? DEFAULT CHARACTER SET ?', $conf['mysql']['database'], $conf['mysql']['charset'])) { - $this->error('Unable to create MySQL database: '.$conf['mysql']['database'].'.'); - } - - //* Set the database name in the DB library - $this->db->setDBName($conf['mysql']['database']); - - //* Load the database dump into the database, if database contains no tables - $db_tables = $this->db->getTables(); - if(count($db_tables) > 0) { - $this->error('Stopped: Database already contains some tables.'); - } else { - if($conf['mysql']['admin_password'] == '') { - caselog("mysql --default-character-set=".escapeshellarg($conf['mysql']['charset'])." -h ".escapeshellarg($conf['mysql']['host'])." -u ".escapeshellarg($conf['mysql']['admin_user'])." -P ".escapeshellarg($conf['mysql']['port'])." ".escapeshellarg($conf['mysql']['database'])." < '".ISPC_INSTALL_ROOT."/install/sql/ispconfig3.sql' &> /dev/null", - __FILE__, __LINE__, 'read in ispconfig3.sql', 'could not read in ispconfig3.sql'); - } else { - caselog("mysql --default-character-set=".escapeshellarg($conf['mysql']['charset'])." -h ".escapeshellarg($conf['mysql']['host'])." -u ".escapeshellarg($conf['mysql']['admin_user'])." -p".escapeshellarg($conf['mysql']['admin_password'])." -P ".escapeshellarg($conf['mysql']['port'])." ".escapeshellarg($conf['mysql']['database'])." < '".ISPC_INSTALL_ROOT."/install/sql/ispconfig3.sql' &> /dev/null", - __FILE__, __LINE__, 'read in ispconfig3.sql', 'could not read in ispconfig3.sql'); - } - $db_tables = $this->db->getTables(); - if(count($db_tables) == 0) { - $this->error('Unable to load SQL-Dump into database table.'); - } - - //* Load system.ini into the sys_ini table - $system_ini = rf('tpl/system.ini.master'); - $this->db->query("UPDATE sys_ini SET config = ? WHERE sysini_id = 1", $system_ini); - - } - } - - //** Create the server record in the database - public function add_database_server_record() { - - global $conf; - - if($conf['mysql']['host'] == 'localhost') { - $from_host = 'localhost'; - } else { - $from_host = $conf['hostname']; - } - - // Delete ISPConfig user in the local database, in case that it exists - $this->db->query("DROP USER ?@?", $conf['mysql']['ispconfig_user'], $from_host); - $this->db->query("DROP DATABASE IF EXISTS ?", $conf['mysql']['database']); - - //* Create the ISPConfig database user and grant permissions in the local database - $query = 'CREATE USER ?@? IDENTIFIED BY ?'; - if(!$this->db->query($query, $conf['mysql']['ispconfig_user'], $from_host, $conf['mysql']['ispconfig_password'])) { - $this->error('Unable to create database user: '.$conf['mysql']['ispconfig_user'].' Error: '.$this->db->errorMessage); - } - $query = 'GRANT SELECT, INSERT, UPDATE, DELETE ON ?? TO ?@?'; - if(!$this->db->query($query, $conf['mysql']['database'] . ".*", $conf['mysql']['ispconfig_user'], $from_host)) { - $this->error('Unable to grant databse permissions to user: '.$conf['mysql']['ispconfig_user'].' Error: '.$this->db->errorMessage); - } - - //* Set the database name in the DB library - $this->db->setDBName($conf['mysql']['database']); - - $tpl_ini_array = ini_to_array(rf('tpl/server.ini.master')); - - //* Update further distribution specific parameters for server config here - //* HINT: Every line added here has to be added in update.lib.php too!! - $tpl_ini_array['web']['vhost_conf_dir'] = $conf['apache']['vhost_conf_dir']; - $tpl_ini_array['web']['vhost_conf_enabled_dir'] = $conf['apache']['vhost_conf_enabled_dir']; - $tpl_ini_array['jailkit']['jailkit_chroot_app_programs'] = $conf['jailkit']['jailkit_chroot_app_programs']; - $tpl_ini_array['fastcgi']['fastcgi_phpini_path'] = $conf['fastcgi']['fastcgi_phpini_path']; - $tpl_ini_array['fastcgi']['fastcgi_starter_path'] = $conf['fastcgi']['fastcgi_starter_path']; - $tpl_ini_array['fastcgi']['fastcgi_bin'] = $conf['fastcgi']['fastcgi_bin']; - $tpl_ini_array['server']['hostname'] = $conf['hostname']; - $tpl_ini_array['server']['ip_address'] = @gethostbyname($conf['hostname']); - $tpl_ini_array['server']['firewall'] = ($conf['ufw']['installed'] == true)?'ufw':'bastille'; - $tpl_ini_array['web']['website_basedir'] = $conf['web']['website_basedir']; - $tpl_ini_array['web']['website_path'] = $conf['web']['website_path']; - $tpl_ini_array['web']['website_symlinks'] = $conf['web']['website_symlinks']; - $tpl_ini_array['cron']['crontab_dir'] = $conf['cron']['crontab_dir']; - $tpl_ini_array['web']['security_level'] = 20; - $tpl_ini_array['web']['user'] = $conf['apache']['user']; - $tpl_ini_array['web']['group'] = $conf['apache']['group']; - $tpl_ini_array['web']['php_ini_path_apache'] = $conf['apache']['php_ini_path_apache']; - $tpl_ini_array['web']['php_ini_path_cgi'] = $conf['apache']['php_ini_path_cgi']; - $tpl_ini_array['mail']['pop3_imap_daemon'] = ($conf['dovecot']['installed'] == true)?'dovecot':'courier'; - $tpl_ini_array['mail']['mail_filter_syntax'] = ($conf['dovecot']['installed'] == true)?'sieve':'maildrop'; - $tpl_ini_array['dns']['bind_user'] = $conf['bind']['bind_user']; - $tpl_ini_array['dns']['bind_group'] = $conf['bind']['bind_group']; - $tpl_ini_array['dns']['bind_zonefiles_dir'] = $conf['bind']['bind_zonefiles_dir']; - $tpl_ini_array['dns']['named_conf_path'] = $conf['bind']['named_conf_path']; - $tpl_ini_array['dns']['named_conf_local_path'] = $conf['bind']['named_conf_local_path']; - - $tpl_ini_array['web']['nginx_vhost_conf_dir'] = $conf['nginx']['vhost_conf_dir']; - $tpl_ini_array['web']['nginx_vhost_conf_enabled_dir'] = $conf['nginx']['vhost_conf_enabled_dir']; - $tpl_ini_array['web']['nginx_user'] = $conf['nginx']['user']; - $tpl_ini_array['web']['nginx_group'] = $conf['nginx']['group']; - $tpl_ini_array['web']['nginx_cgi_socket'] = $conf['nginx']['cgi_socket']; - $tpl_ini_array['web']['php_fpm_init_script'] = $conf['nginx']['php_fpm_init_script']; - $tpl_ini_array['web']['php_fpm_ini_path'] = $conf['nginx']['php_fpm_ini_path']; - $tpl_ini_array['web']['php_fpm_pool_dir'] = $conf['nginx']['php_fpm_pool_dir']; - $tpl_ini_array['web']['php_fpm_start_port'] = $conf['nginx']['php_fpm_start_port']; - $tpl_ini_array['web']['php_fpm_socket_dir'] = $conf['nginx']['php_fpm_socket_dir']; - - if ($conf['nginx']['installed'] == true) { - $tpl_ini_array['web']['server_type'] = 'nginx'; - $tpl_ini_array['global']['webserver'] = 'nginx'; - } - - if (array_key_exists('awstats', $conf)) { - foreach ($conf['awstats'] as $aw_sett => $aw_value) { - $tpl_ini_array['web']['awstats_'.$aw_sett] = $aw_value; - } - } - - $server_ini_content = array_to_ini($tpl_ini_array); - - $mail_server_enabled = ($conf['services']['mail'])?1:0; - $web_server_enabled = ($conf['services']['web'])?1:0; - $dns_server_enabled = ($conf['services']['dns'])?1:0; - $file_server_enabled = ($conf['services']['file'])?1:0; - $db_server_enabled = ($conf['services']['db'])?1:0; - $vserver_server_enabled = ($conf['openvz']['installed'])?1:0; - $proxy_server_enabled = (isset($conf['services']['proxy']) && $conf['services']['proxy'])?1:0; - $firewall_server_enabled = (isset($conf['services']['firewall']) && $conf['services']['firewall'])?1:0; - - //** Get the database version number based on the patchfiles - $found = true; - $current_db_version = 1; - while($found == true) { - $next_db_version = intval($current_db_version + 1); - $patch_filename = realpath(dirname(__FILE__).'/../').'/sql/incremental/upd_'.str_pad($next_db_version, 4, '0', STR_PAD_LEFT).'.sql'; - if(is_file($patch_filename)) { - $current_db_version = $next_db_version; - } else { - $found = false; - } - } - $current_db_version = intval($current_db_version); - - - if($conf['mysql']['master_slave_setup'] == 'y') { - - //* Insert the server record in master DB - $sql = "INSERT INTO `server` (`sys_userid`, `sys_groupid`, `sys_perm_user`, `sys_perm_group`, `sys_perm_other`, `server_name`, `mail_server`, `web_server`, `dns_server`, `file_server`, `db_server`, `vserver_server`, `config`, `updated`, `active`, `dbversion`,`firewall_server`,`proxy_server`) VALUES (1, 1, 'riud', 'riud', 'r', ?, ?, ?, ?, ?, ?, ?, ?, 0, 1, ?, ?, ?);"; - $this->dbmaster->query($sql, $conf['hostname'], $mail_server_enabled, $web_server_enabled, $dns_server_enabled, $file_server_enabled, $db_server_enabled, $vserver_server_enabled, $server_ini_content, $current_db_version, $proxy_server_enabled, $firewall_server_enabled); - $conf['server_id'] = $this->dbmaster->insertID(); - $conf['server_id'] = $conf['server_id']; - - //* Insert the same record in the local DB - $sql = "INSERT INTO `server` (`server_id`, `sys_userid`, `sys_groupid`, `sys_perm_user`, `sys_perm_group`, `sys_perm_other`, `server_name`, `mail_server`, `web_server`, `dns_server`, `file_server`, `db_server`, `vserver_server`, `config`, `updated`, `active`, `dbversion`,`firewall_server`,`proxy_server`) VALUES (?,1, 1, 'riud', 'riud', 'r', ?, ?, ?, ?, ?, ?, ?, ?, 0, 1, ?, ?, ?);"; - $this->db->query($sql, $conf['server_id'], $conf['hostname'], $mail_server_enabled, $web_server_enabled, $dns_server_enabled, $file_server_enabled, $db_server_enabled, $vserver_server_enabled, $server_ini_content, $current_db_version, $proxy_server_enabled, $firewall_server_enabled); - - //* username for the ispconfig user - $conf['mysql']['master_ispconfig_user'] = 'ispcsrv'.$conf['server_id']; - - $this->grant_master_database_rights(); - - } else { - //* Insert the server, if its not a mster / slave setup - $sql = "INSERT INTO `server` (`sys_userid`, `sys_groupid`, `sys_perm_user`, `sys_perm_group`, `sys_perm_other`, `server_name`, `mail_server`, `web_server`, `dns_server`, `file_server`, `db_server`, `vserver_server`, `config`, `updated`, `active`, `dbversion`,`firewall_server`,`proxy_server`) VALUES (1, 1, 'riud', 'riud', 'r', ?, ?, ?, ?, ?, ?, ?, ?, 0, 1, ?, ?, ?);"; - $this->db->query($sql, $conf['hostname'], $mail_server_enabled, $web_server_enabled, $dns_server_enabled, $file_server_enabled, $db_server_enabled, $vserver_server_enabled, $server_ini_content, $current_db_version, $proxy_server_enabled, $firewall_server_enabled); - $conf['server_id'] = $this->db->insertID(); - $conf['server_id'] = $conf['server_id']; - } - - - } - - public function detect_ips(){ - global $conf; - - exec("ip addr show | awk '/global/ { print $2 }' | cut -d '/' -f 1", $output, $retval); - - if($retval == 0){ - if(is_array($output) && !empty($output)){ - foreach($output as $line){ - $line = trim($line); - $ip_type = ''; - if (filter_var($line, FILTER_VALIDATE_IP, FILTER_FLAG_IPV4)) { - $ip_type = 'IPv4'; - } - if (filter_var($line, FILTER_VALIDATE_IP, FILTER_FLAG_IPV6)) { - $ip_type = 'IPv6'; - } - if($ip_type == '') continue; - if($this->db->dbHost != $this->dbmaster->dbHost){ - $this->dbmaster->query('INSERT INTO server_ip ( - sys_userid, sys_groupid, sys_perm_user, sys_perm_group, - sys_perm_other, server_id, client_id, ip_type, ip_address, - virtualhost, virtualhost_port - ) VALUES ( - 1, - 1, - "riud", - "riud", - "", - ?, - 0, - ?, - ?, - "y", - "80,443" - )', $conf['server_id'], $ip_type, $line); - $server_ip_id = $this->dbmaster->insertID(); - $this->db->query('INSERT INTO server_ip ( - server_php_id, sys_userid, sys_groupid, sys_perm_user, sys_perm_group, - sys_perm_other, server_id, client_id, ip_type, ip_address, - virtualhost, virtualhost_port - ) VALUES ( - ?, - 1, - 1, - "riud", - "riud", - "", - ?, - 0, - ?, - ?, - "y", - "80,443" - )', $server_ip_id, $conf['server_id'], $ip_type, $line); - } else { - $this->db->query('INSERT INTO server_ip ( - sys_userid, sys_groupid, sys_perm_user, sys_perm_group, - sys_perm_other, server_id, client_id, ip_type, ip_address, - virtualhost, virtualhost_port - ) VALUES ( - 1, - 1, - "riud", - "riud", - "", - ?, - 0, - ?, - ?, - "y", - "80,443" - )', $conf['server_id'], $ip_type, $line); - } - } - } - } - } - - public function grant_master_database_rights($verbose = false) { - global $conf; - - /* - * The following code is a little bit tricky: - * * If we HAVE a master-slave - Setup then the client has to grant the rights for himself - * at the master. - * * If we DO NOT have a master-slave - Setup then we have two possibilities - * 1) it is a single server - * 2) it is the MASTER of n clients - */ - $hosts = array(); - - if($conf['mysql']['master_slave_setup'] == 'y') { - /* - * it is a master-slave - Setup so the slave has to grant its rights in the master - * database - */ - - //* insert the ispconfig user in the remote server - $from_host = $conf['hostname']; - $from_ip = gethostbyname($conf['hostname']); - - $hosts[$from_host]['user'] = $conf['mysql']['master_ispconfig_user']; - $hosts[$from_host]['db'] = $conf['mysql']['master_database']; - $hosts[$from_host]['pwd'] = $conf['mysql']['master_ispconfig_password']; - - $hosts[$from_ip]['user'] = $conf['mysql']['master_ispconfig_user']; - $hosts[$from_ip]['db'] = $conf['mysql']['master_database']; - $hosts[$from_ip]['pwd'] = $conf['mysql']['master_ispconfig_password']; - } else{ - /* - * it is NOT a master-slave - Setup so we have to find out all clients and their - * host - */ - $query = "SELECT Host, User FROM mysql.user WHERE User like 'ispcsrv%' ORDER BY User, Host"; - $data = $this->dbmaster->queryAllRecords($query); - if($data === false) { - $this->error('Unable to get the user rights: '.$value['db'].' Error: '.$this->dbmaster->errorMessage); - } - foreach ($data as $item){ - $hosts[$item['Host']]['user'] = $item['User']; - $hosts[$item['Host']]['db'] = $conf['mysql']['master_database']; - $hosts[$item['Host']]['pwd'] = ''; // the user already exists, so we need no pwd! - } - } - - if(count($hosts) > 0) { - foreach($hosts as $host => $value) { - /* - * If a pwd exists, this means, we have to add the new user (and his pwd). - * if not, the user already exists and we do not need the pwd - */ - if ($value['pwd'] != ''){ - $query = "CREATE USER ?@? IDENTIFIED BY ?"; - if ($verbose){ - echo "\n\n" . $query ."\n"; - } - $this->dbmaster->query($query, $value['user'], $host, $value['pwd']); // ignore the error - } - - /* - * Try to delete all rights of the user in case that it exists. - * In Case that it will not exist, do nothing (ignore the error!) - */ - $query = "REVOKE ALL PRIVILEGES, GRANT OPTION FROM ?@?"; - if ($verbose){ - echo "\n\n" . $query ."\n"; - } - $this->dbmaster->query($query, $value['user'], $host); // ignore the error - - //* Create the ISPConfig database user in the remote database - $query = "GRANT SELECT ON ?? TO ?@?"; - if ($verbose){ - echo $query ."\n"; - } - if(!$this->dbmaster->query($query, $value['db'] . '.server', $value['user'], $host)) { - $this->warning('Unable to set rights of user in master database: '.$value['db']."\n Query: ".$query."\n Error: ".$this->dbmaster->errorMessage); - } - - $query = "GRANT SELECT, INSERT ON ?? TO ?@?"; - if ($verbose){ - echo $query ."\n"; - } - if(!$this->dbmaster->query($query, $value['db'] . '.sys_log', $value['user'], $host)) { - $this->warning('Unable to set rights of user in master database: '.$value['db']."\n Query: ".$query."\n Error: ".$this->dbmaster->errorMessage); - } - - $query = "GRANT SELECT, UPDATE(`status`, `error`) ON ?? TO ?@?"; - if ($verbose){ - echo $query ."\n"; - } - if(!$this->dbmaster->query($query, $value['db'] . '.sys_datalog', $value['user'], $host)) { - $this->warning('Unable to set rights of user in master database: '.$value['db']."\n Query: ".$query."\n Error: ".$this->dbmaster->errorMessage); - } - - $query = "GRANT SELECT, UPDATE(`status`) ON ?? TO ?@?"; - if ($verbose){ - echo $query ."\n"; - } - if(!$this->dbmaster->query($query, $value['db'] . '.software_update_inst', $value['user'], $host)) { - $this->warning('Unable to set rights of user in master database: '.$value['db']."\n Query: ".$query."\n Error: ".$this->dbmaster->errorMessage); - } - - $query = "GRANT SELECT, UPDATE(`updated`) ON ?? TO ?@?"; - if ($verbose){ - echo $query ."\n"; - } - if(!$this->dbmaster->query($query, $value['db'] . '.server', $value['user'], $host)) { - $this->warning('Unable to set rights of user in master database: '.$value['db']."\n Query: ".$query."\n Error: ".$this->dbmaster->errorMessage); - } - - $query = "GRANT SELECT, UPDATE (`ssl`, `ssl_letsencrypt`, `ssl_request`, `ssl_cert`, `ssl_action`, `ssl_key`) ON ?? TO ?@?"; - if ($verbose){ - echo $query ."\n"; - } - if(!$this->dbmaster->query($query, $value['db'] . '.web_domain', $value['user'], $host)) { - $this->warning('Unable to set rights of user in master database: '.$value['db']."\n Query: ".$query."\n Error: ".$this->dbmaster->errorMessage); - } - - $query = "GRANT SELECT ON ?? TO ?@?"; - if ($verbose){ - echo $query ."\n"; - } - if(!$this->dbmaster->query($query, $value['db'] . '.sys_group', $value['user'], $host)) { - $this->warning('Unable to set rights of user in master database: '.$value['db']."\n Query: ".$query."\n Error: ".$this->dbmaster->errorMessage); - } - - $query = "GRANT SELECT, UPDATE (`action_state`, `response`) ON ?? TO ?@?"; - if ($verbose){ - echo $query ."\n"; - } - if(!$this->dbmaster->query($query, $value['db'] . '.sys_remoteaction', $value['user'], $host)) { - $this->warning('Unable to set rights of user in master database: '.$value['db']."\n Query: ".$query."\n Error: ".$this->dbmaster->errorMessage); - } - - $query = "GRANT SELECT, INSERT , DELETE ON ?? TO ?@?"; - if ($verbose){ - echo $query ."\n"; - } - if(!$this->dbmaster->query($query, $value['db'] . '.monitor_data', $value['user'], $host)) { - $this->warning('Unable to set rights of user in master database: '.$value['db']."\n Query: ".$query."\n Error: ".$this->dbmaster->errorMessage); - } - - $query = "GRANT SELECT, INSERT, UPDATE ON ?? TO ?@?"; - if ($verbose){ - echo $query ."\n"; - } - if(!$this->dbmaster->query($query, $value['db'] . '.mail_traffic', $value['user'], $host)) { - $this->warning('Unable to set rights of user in master database: '.$value['db']."\n Query: ".$query."\n Error: ".$this->dbmaster->errorMessage); - } - - $query = "GRANT SELECT, INSERT, UPDATE ON ?? TO ?@?"; - if ($verbose){ - echo $query ."\n"; - } - if(!$this->dbmaster->query($query, $value['db'] . '.web_traffic', $value['user'], $host)) { - $this->warning('Unable to set rights of user in master database: '.$value['db']."\n Query: ".$query."\n Error: ".$this->dbmaster->errorMessage); - } - - $query = "GRANT SELECT, UPDATE, DELETE ON ?? TO ?@?"; - if ($verbose){ - echo $query ."\n"; - } - if(!$this->dbmaster->query($query, $value['db'] . '.aps_instances', $value['user'], $host)) { - $this->warning('Unable to set rights of user in master database: '.$value['db']."\n Query: ".$query."\n Error: ".$this->dbmaster->errorMessage); - } - - $query = "GRANT SELECT, DELETE ON ?? TO ?@?"; - if ($verbose){ - echo $query ."\n"; - } - if(!$this->dbmaster->query($query, $value['db'] . '.aps_instances_settings', $value['user'], $host)) { - $this->warning('Unable to set rights of user in master database: '.$value['db']."\n Query: ".$query."\n Error: ".$this->dbmaster->errorMessage); - } - - $query = "GRANT SELECT, INSERT, DELETE ON ?? TO ?@?"; - if ($verbose){ - echo $query ."\n"; - } - if(!$this->dbmaster->query($query, $value['db'] . '.web_backup', $value['user'], $host)) { - $this->warning('Unable to set rights of user in master database: '.$value['db']."\n Query: ".$query."\n Error: ".$this->dbmaster->errorMessage); - } - - $query = "GRANT SELECT, INSERT, DELETE ON ?? TO ?@?"; - if ($verbose){ - echo $query ."\n"; - } - if(!$this->dbmaster->query($query, $value['db'] . '.mail_backup', $value['user'], $host)) { - $this->warning('Unable to set rights of user in master database: '.$value['db']."\n Query: ".$query."\n Error: ".$this->dbmaster->errorMessage); - } - - $query = "GRANT SELECT, UPDATE(`dnssec_initialized`, `dnssec_info`, `dnssec_last_signed`) ON ?? TO ?@?"; - if ($verbose){ - echo $query ."\n"; - } - if(!$this->dbmaster->query($query, $value['db'] . '.dns_soa', $value['user'], $host)) { - $this->warning('Unable to set rights of user in master database: '.$value['db']."\n Query: ".$query."\n Error: ".$this->dbmaster->errorMessage); - } - - $query = "GRANT SELECT, INSERT, UPDATE ON ?? TO ?@?"; - if ($verbose){ - echo $query ."\n"; - } - if(!$this->dbmaster->query($query, $value['db'] . '.ftp_traffic', $value['user'], $host)) { - $this->warning('Unable to set rights of user in master database: '.$value['db']."\n Query: ".$query."\n Error: ".$this->dbmaster->errorMessage); - } - - } - - } - - } - - //** writes postfix configuration files - public function process_postfix_config($configfile) { - global $conf; - - $config_dir = $conf['postfix']['config_dir'].'/'; - $full_file_name = $config_dir.$configfile; - //* Backup exiting file - if(is_file($full_file_name)) { - copy($full_file_name, $config_dir.$configfile.'~'); - } - $content = rfsel($conf['ispconfig_install_dir'].'/server/conf-custom/install/'.$configfile.'.master', 'tpl/'.$configfile.'.master'); - $content = str_replace('{mysql_server_ispconfig_user}', $conf['mysql']['ispconfig_user'], $content); - $content = str_replace('{mysql_server_ispconfig_password}', $conf['mysql']['ispconfig_password'], $content); - $content = str_replace('{mysql_server_database}', $conf['mysql']['database'], $content); - $content = str_replace('{mysql_server_ip}', $conf['mysql']['ip'], $content); - $content = str_replace('{server_id}', $conf['server_id'], $content); - wf($full_file_name, $content); - } - - public function configure_jailkit() { - global $conf; - - $cf = $conf['jailkit']; - $config_dir = $cf['config_dir']; - $jk_init = $cf['jk_init']; - $jk_chrootsh = $cf['jk_chrootsh']; - - if (is_dir($config_dir)) { - if(is_file($config_dir.'/'.$jk_init)) copy($config_dir.'/'.$jk_init, $config_dir.'/'.$jk_init.'~'); - if(is_file($config_dir.'/'.$jk_chrootsh.'.master')) copy($config_dir.'/'.$jk_chrootsh.'.master', $config_dir.'/'.$jk_chrootsh.'~'); - - if(is_file($conf['ispconfig_install_dir'].'/server/conf-custom/install/'.$jk_init.'.master')) { - copy($conf['ispconfig_install_dir'].'/server/conf-custom/install/'.$jk_init.'.master', $config_dir.'/'.$jk_init); - } else { - copy('tpl/'.$jk_init.'.master', $config_dir.'/'.$jk_init); - } - if(is_file($conf['ispconfig_install_dir'].'/server/conf-custom/install/'.$jk_chrootsh.'.master')) { - copy($conf['ispconfig_install_dir'].'/server/conf-custom/install/'.$jk_chrootsh.'.master', $config_dir.'/'.$jk_chrootsh); - } else { - copy('tpl/'.$jk_chrootsh.'.master', $config_dir.'/'.$jk_chrootsh); - } - } - - //* help jailkit fo find its ini files - if(!is_link('/usr/jk_socketd.ini')) exec('ln -s /etc/jailkit/jk_socketd.ini /usr/jk_socketd.ini'); - if(!is_link('/usr/jk_init.ini')) exec('ln -s /etc/jailkit/jk_init.ini /usr/jk_init.ini'); - - } - - public function configure_mailman($status = 'insert') { - global $conf; - - $config_dir = $conf['mailman']['config_dir'].'/'; - $full_file_name = $config_dir.'mm_cfg.py'; - //* Backup exiting file - if(is_file($full_file_name)) { - copy($full_file_name, $config_dir.'mm_cfg.py~'); - } - - // load files - $content = rfsel($conf['ispconfig_install_dir'].'/server/conf-custom/install/mm_cfg.py.master', 'tpl/mm_cfg.py.master'); - $old_file = rf($full_file_name); - - $old_options = array(); - $lines = explode("\n", $old_file); - foreach ($lines as $line) - { - if (trim($line) != '' && substr($line, 0, 1) != '#') - { - @list($key, $value) = @explode("=", $line); - if (isset($value) && $value !== '') - { - $key = rtrim($key); - $old_options[$key] = trim($value); - } - } - } - - $virtual_domains = ''; - if($status == 'update') - { - // create virtual_domains list - $domainAll = $this->db->queryAllRecords("SELECT domain FROM mail_mailinglist GROUP BY domain"); - - if(is_array($domainAll)) { - foreach($domainAll as $domain) - { - if ($domainAll[0]['domain'] == $domain['domain']) - $virtual_domains .= "'".$domain['domain']."'"; - else - $virtual_domains .= ", '".$domain['domain']."'"; - } - } - } - else - $virtual_domains = "' '"; - - $content = str_replace('{hostname}', $conf['hostname'], $content); - if(!isset($old_options['DEFAULT_SERVER_LANGUAGE']) || $old_options['DEFAULT_SERVER_LANGUAGE'] == '') $old_options['DEFAULT_SERVER_LANGUAGE'] = "'en'"; - $content = str_replace('{default_language}', $old_options['DEFAULT_SERVER_LANGUAGE'], $content); - $content = str_replace('{virtual_domains}', $virtual_domains, $content); - - wf($full_file_name, $content); - - //* Write virtual_to_transport.sh script - $config_dir = $conf['mailman']['config_dir'].'/'; - $full_file_name = $config_dir.'virtual_to_transport.sh'; - - //* Backup exiting virtual_to_transport.sh script - if(is_file($full_file_name)) { - copy($full_file_name, $config_dir.'virtual_to_transport.sh~'); - } - - if(is_dir('/etc/mailman')) { - if(is_file($conf['ispconfig_install_dir'].'/server/conf-custom/install/mailman-virtual_to_transport.sh')) { - copy($conf['ispconfig_install_dir'].'/server/conf-custom/install/mailman-virtual_to_transport.sh', $full_file_name); - } else { - copy('tpl/mailman-virtual_to_transport.sh', $full_file_name); - } - chgrp($full_file_name, $this->mailman_group); - chmod($full_file_name, 0755); - } - - //* Create aliasaes - if($status == 'install') exec('/usr/lib/mailman/bin/genaliases 2>/dev/null'); - - if(!is_file('/var/lib/mailman/data/transport-mailman')) touch('/var/lib/mailman/data/transport-mailman'); - exec('/usr/sbin/postmap /var/lib/mailman/data/transport-mailman'); - } - - public function get_postfix_service($service, $type) { - global $conf; - - exec("postconf -M 2> /dev/null", $out, $ret); - - if ($ret === 0) { //* with postfix >= 2.9 we can detect configured services with postconf - unset($out); - exec ("postconf -M $service/$type 2> /dev/null", $out, $ret); //* Postfix >= 2.11 - if (!isset($out[0])) { //* try Postfix 2.9 - exec ("postconf -M $service.$type 2> /dev/null", $out, $ret); - } - $postfix_service = @($out[0]=='')?false:true; - } else { //* fallback - Postfix < 2.9 - $content = rf($conf['postfix']['config_dir'].'/master.cf'); - $regex = "/^((?!#)".$service.".*".$type.".*)$/m"; - $postfix_service = @(preg_match($regex, $content))?true:false; - } - - return $postfix_service; - } - - public function configure_postfix($options = '') { - global $conf,$autoinstall; - $cf = $conf['postfix']; - $config_dir = $cf['config_dir']; - - if(!is_dir($config_dir)) { - $this->error("The postfix configuration directory '$config_dir' does not exist."); - } - - //* mysql-virtual_domains.cf - $this->process_postfix_config('mysql-virtual_domains.cf'); - - //* mysql-virtual_forwardings.cf - $this->process_postfix_config('mysql-virtual_forwardings.cf'); - - //* mysql-virtual_mailboxes.cf - $this->process_postfix_config('mysql-virtual_mailboxes.cf'); - - //* mysql-virtual_email2email.cf - $this->process_postfix_config('mysql-virtual_email2email.cf'); - - //* mysql-virtual_transports.cf - $this->process_postfix_config('mysql-virtual_transports.cf'); - - //* mysql-virtual_recipient.cf - $this->process_postfix_config('mysql-virtual_recipient.cf'); - - //* mysql-virtual_sender.cf - $this->process_postfix_config('mysql-virtual_sender.cf'); - - //* mysql-virtual_sender_login_maps.cf - $this->process_postfix_config('mysql-virtual_sender_login_maps.cf'); - - //* mysql-virtual_client.cf - $this->process_postfix_config('mysql-virtual_client.cf'); - - //* mysql-virtual_relaydomains.cf - $this->process_postfix_config('mysql-virtual_relaydomains.cf'); - - //* mysql-virtual_relayrecipientmaps.cf - $this->process_postfix_config('mysql-virtual_relayrecipientmaps.cf'); - - //* mysql-virtual_outgoing_bcc.cf - $this->process_postfix_config('mysql-virtual_outgoing_bcc.cf'); - - //* mysql-virtual_policy_greylist.cf - $this->process_postfix_config('mysql-virtual_policy_greylist.cf'); - - //* mysql-virtual_gids.cf.master - $this->process_postfix_config('mysql-virtual_gids.cf'); - - //* mysql-virtual_uids.cf - $this->process_postfix_config('mysql-virtual_uids.cf'); - - //* postfix-dkim - $filename='tag_as_originating.re'; - $full_file_name=$config_dir.'/'.$filename; - if(is_file($full_file_name)) copy($full_file_name, $full_file_name.'~'); - $content = rfsel($conf['ispconfig_install_dir'].'/server/conf-custom/install/postfix-'.$filename.'.master', 'tpl/postfix-'.$filename.'.master'); - wf($full_file_name, $content); - - $filename='tag_as_foreign.re'; - $full_file_name=$config_dir.'/'.$filename; - if(is_file($full_file_name)) copy($full_file_name, $full_file_name.'~'); - $content = rfsel($conf['ispconfig_install_dir'].'/server/conf-custom/install/postfix-'.$filename.'.master', 'tpl/postfix-'.$filename.'.master'); - wf($full_file_name, $content); - - //* Changing mode and group of the new created config files. - caselog('chmod u=rw,g=r,o= '.$config_dir.'/mysql-virtual_*.cf* &> /dev/null', - __FILE__, __LINE__, 'chmod on mysql-virtual_*.cf*', 'chmod on mysql-virtual_*.cf* failed'); - caselog('chgrp '.$cf['group'].' '.$config_dir.'/mysql-virtual_*.cf* &> /dev/null', - __FILE__, __LINE__, 'chgrp on mysql-virtual_*.cf*', 'chgrp on mysql-virtual_*.cf* failed'); - - //* Creating virtual mail user and group - $command = 'groupadd -g '.$cf['vmail_groupid'].' '.$cf['vmail_groupname']; - if(!is_group($cf['vmail_groupname'])) caselog($command.' &> /dev/null', __FILE__, __LINE__, "EXECUTED: $command", "Failed to execute the command $command"); - - $command = 'useradd -g '.$cf['vmail_groupname'].' -u '.$cf['vmail_userid'].' '.$cf['vmail_username'].' -d '.$cf['vmail_mailbox_base'].' -m'; - if(!is_user($cf['vmail_username'])) caselog("$command &> /dev/null", __FILE__, __LINE__, "EXECUTED: $command", "Failed to execute the command $command"); - - //* These postconf commands will be executed on installation and update - $server_ini_rec = $this->db->queryOneRecord("SELECT config FROM ?? WHERE server_id = ?", $conf["mysql"]["database"] . '.server', $conf['server_id']); - $server_ini_array = ini_to_array(stripslashes($server_ini_rec['config'])); - unset($server_ini_rec); - - //* If there are RBL's defined, format the list and add them to smtp_recipient_restrictions to prevent removeal after an update - $rbl_list = ''; - if (@isset($server_ini_array['mail']['realtime_blackhole_list']) && $server_ini_array['mail']['realtime_blackhole_list'] != '') { - $rbl_hosts = explode(",", str_replace(" ", "", $server_ini_array['mail']['realtime_blackhole_list'])); - foreach ($rbl_hosts as $key => $value) { - $rbl_list .= ", reject_rbl_client ". $value; - } - } - unset($rbl_hosts); - - //* If Postgrey is installed, configure it - $greylisting = ''; - if($conf['postgrey']['installed'] == true) { - $greylisting = ', check_recipient_access mysql:/etc/postfix/mysql-virtual_policy_greylist.cf'; - } - - $reject_sender_login_mismatch = ''; - if(isset($server_ini_array['mail']['reject_sender_login_mismatch']) && ($server_ini_array['mail']['reject_sender_login_mismatch'] == 'y')) { - $reject_sender_login_mismatch = ', reject_authenticated_sender_login_mismatch'; - } - unset($server_ini_array); - - $tmp = str_replace('.','\.',$conf['hostname']); - - $postconf_placeholders = array('{config_dir}' => $config_dir, - '{vmail_mailbox_base}' => $cf['vmail_mailbox_base'], - '{vmail_userid}' => $cf['vmail_userid'], - '{vmail_groupid}' => $cf['vmail_groupid'], - '{rbl_list}' => $rbl_list, - '{greylisting}' => $greylisting, - '{reject_slm}' => $reject_sender_login_mismatch, - '{myhostname}' => $tmp, - ); - - $postconf_tpl = rfsel($conf['ispconfig_install_dir'].'/server/conf-custom/install/debian_postfix.conf.master', 'tpl/debian_postfix.conf.master'); - $postconf_tpl = strtr($postconf_tpl, $postconf_placeholders); - $postconf_commands = array_filter(explode("\n", $postconf_tpl)); // read and remove empty lines - - //* These postconf commands will be executed on installation only - if($this->is_update == false) { - $postconf_commands = array_merge($postconf_commands, array( - 'myhostname = '.$conf['hostname'], - 'mydestination = '.$conf['hostname'].', localhost, localhost.localdomain', - 'mynetworks = 127.0.0.0/8 [::1]/128' - )); - } - - //* Create the header and body check files - touch($config_dir.'/header_checks'); - touch($config_dir.'/mime_header_checks'); - touch($config_dir.'/nested_header_checks'); - touch($config_dir.'/body_checks'); - - //* Create the mailman files - if(!is_dir('/var/lib/mailman/data')) exec('mkdir -p /var/lib/mailman/data'); - if(!is_file('/var/lib/mailman/data/aliases')) touch('/var/lib/mailman/data/aliases'); - exec('postalias /var/lib/mailman/data/aliases'); - if(!is_file('/var/lib/mailman/data/virtual-mailman')) touch('/var/lib/mailman/data/virtual-mailman'); - exec('postmap /var/lib/mailman/data/virtual-mailman'); - if(!is_file('/var/lib/mailman/data/transport-mailman')) touch('/var/lib/mailman/data/transport-mailman'); - exec('/usr/sbin/postmap /var/lib/mailman/data/transport-mailman'); - - //* Create auxillary postfix conf files - $configfile = 'helo_access'; - if(is_file($config_dir.'/'.$configfile)) { - copy($config_dir.'/'.$configfile, $config_dir.'/'.$configfile.'~'); - chmod($config_dir.'/'.$configfile.'~', 0400); - } - $content = rfsel($conf['ispconfig_install_dir'].'/server/conf-custom/install/'.$configfile.'.master', 'tpl/'.$configfile.'.master'); - $content = strtr($content, $postconf_placeholders); - # todo: look up this server's ip addrs and loop through each - # todo: look up domains hosted on this server and loop through each - wf($config_dir.'/'.$configfile, $content); - - $configfile = 'blacklist_helo'; - if(is_file($config_dir.'/'.$configfile)) { - copy($config_dir.'/'.$configfile, $config_dir.'/'.$configfile.'~'); - chmod($config_dir.'/'.$configfile.'~', 0400); - } - $content = rfsel($conf['ispconfig_install_dir'].'/server/conf-custom/install/'.$configfile.'.master', 'tpl/'.$configfile.'.master'); - $content = strtr($content, $postconf_placeholders); - wf($config_dir.'/'.$configfile, $content); - - //* Make a backup copy of the main.cf file - copy($config_dir.'/main.cf', $config_dir.'/main.cf~'); - - //* Executing the postconf commands - foreach($postconf_commands as $cmd) { - $command = "postconf -e '$cmd'"; - caselog($command." &> /dev/null", __FILE__, __LINE__, 'EXECUTED: '.$command, 'Failed to execute the command '.$command); - } - - if(!stristr($options, 'dont-create-certs')) { - //* Create the SSL certificate - if(AUTOINSTALL){ - $command = 'cd '.$config_dir.'; ' - ."openssl req -new -subj '/C=".escapeshellcmd($autoinstall['ssl_cert_country'])."/ST=".escapeshellcmd($autoinstall['ssl_cert_state'])."/L=".escapeshellcmd($autoinstall['ssl_cert_locality'])."/O=".escapeshellcmd($autoinstall['ssl_cert_organisation'])."/OU=".escapeshellcmd($autoinstall['ssl_cert_organisation_unit'])."/CN=".escapeshellcmd($autoinstall['ssl_cert_common_name'])."' -outform PEM -out smtpd.cert -newkey rsa:4096 -nodes -keyout smtpd.key -keyform PEM -days 3650 -x509"; - } else { - $command = 'cd '.$config_dir.'; ' - .'openssl req -new -outform PEM -out smtpd.cert -newkey rsa:4096 -nodes -keyout smtpd.key -keyform PEM -days 3650 -x509'; - } - exec($command); - - $command = 'chmod o= '.$config_dir.'/smtpd.key'; - caselog($command.' &> /dev/null', __FILE__, __LINE__, 'EXECUTED: '.$command, 'Failed to execute the command '.$command); - } - - //** We have to change the permissions of the courier authdaemon directory to make it accessible for maildrop. - $command = 'chmod 755 /var/run/courier/authdaemon/'; - if(is_file('/var/run/courier/authdaemon/')) caselog($command.' &> /dev/null', __FILE__, __LINE__, 'EXECUTED: '.$command, 'Failed to execute the command '.$command); - - //* Check maildrop service in posfix master.cf - $regex = "/^maildrop unix.*pipe flags=DRhu user=vmail argv=\\/usr\\/bin\\/maildrop -d ".$cf['vmail_username']." \\$\{extension} \\$\{recipient} \\$\{user} \\$\{nexthop} \\$\{sender}/"; - $configfile = $config_dir.'/master.cf'; - if($this->get_postfix_service('maildrop', 'unix')) { - exec ("postconf -M maildrop.unix 2> /dev/null", $out, $ret); - $change_maildrop_flags = @(preg_match($regex, $out[0]) && $out[0] !='')?false:true; - } else { - $change_maildrop_flags = @(preg_match($regex, $configfile))?false:true; - } - if ($change_maildrop_flags) { - //* Change maildrop service in posfix master.cf - if(is_file($config_dir.'/master.cf')) { - copy($config_dir.'/master.cf', $config_dir.'/master.cf~'); - } - if(is_file($config_dir.'/master.cf~')) { - chmod($config_dir.'/master.cf~', 0400); - } - $configfile = $config_dir.'/master.cf'; - $content = rf($configfile); - $content = str_replace('flags=DRhu user=vmail argv=/usr/bin/maildrop -d ${recipient}', - 'flags=DRhu user='.$cf['vmail_username'].' argv=/usr/bin/maildrop -d '.$cf['vmail_username'].' ${extension} ${recipient} ${user} ${nexthop} ${sender}', - $content); - wf($configfile, $content); - } - - //* Writing the Maildrop mailfilter file - $configfile = 'mailfilter'; - if(is_file($cf['vmail_mailbox_base'].'/.'.$configfile)) { - copy($cf['vmail_mailbox_base'].'/.'.$configfile, $cf['vmail_mailbox_base'].'/.'.$configfile.'~'); - } - $content = rfsel($conf['ispconfig_install_dir'].'/server/conf-custom/install/'.$configfile.'.master', 'tpl/'.$configfile.'.master'); - $content = str_replace('{dist_postfix_vmail_mailbox_base}', $cf['vmail_mailbox_base'], $content); - wf($cf['vmail_mailbox_base'].'/.'.$configfile, $content); - - //* Create the directory for the custom mailfilters - if(!is_dir($cf['vmail_mailbox_base'].'/mailfilters')) { - $command = 'mkdir '.$cf['vmail_mailbox_base'].'/mailfilters'; - caselog($command." &> /dev/null", __FILE__, __LINE__, "EXECUTED: $command", "Failed to execute the command $command"); - } - - //* Chmod and chown the .mailfilter file - $command = 'chown '.$cf['vmail_username'].':'.$cf['vmail_groupname'].' '.$cf['vmail_mailbox_base'].'/.mailfilter'; - caselog($command." &> /dev/null", __FILE__, __LINE__, "EXECUTED: $command", "Failed to execute the command $command"); - - $command = 'chmod 600 '.$cf['vmail_mailbox_base'].'/.mailfilter'; - caselog($command." &> /dev/null", __FILE__, __LINE__, "EXECUTED: $command", "Failed to execute the command $command"); - - } - - public function configure_saslauthd() { - global $conf; - - //* Get saslsauthd version - exec('saslauthd -v 2>&1', $out); - $parts = explode(' ', $out[0]); - $saslversion = $parts[1]; - unset($parts); - unset($out); - - if(version_compare($saslversion , '2.1.23', '<=')) { - //* Configfile for saslauthd versions up to 2.1.23 - $configfile = 'sasl_smtpd.conf'; - } else { - //* Configfile for saslauthd versions 2.1.24 and newer - $configfile = 'sasl_smtpd2.conf'; - } - - if(is_file($conf['postfix']['config_dir'].'/sasl/smtpd.conf')) copy($conf['postfix']['config_dir'].'/sasl/smtpd.conf', $conf['postfix']['config_dir'].'/sasl/smtpd.conf~'); - if(is_file($conf['postfix']['config_dir'].'/sasl/smtpd.conf~')) chmod($conf['postfix']['config_dir'].'/sasl/smtpd.conf~', 0400); - $content = rfsel($conf['ispconfig_install_dir'].'/server/conf-custom/install/'.$configfile.'.master', 'tpl/'.$configfile.'.master'); - $content = str_replace('{mysql_server_ispconfig_user}', $conf['mysql']['ispconfig_user'], $content); - $content = str_replace('{mysql_server_ispconfig_password}', $conf['mysql']['ispconfig_password'], $content); - $content = str_replace('{mysql_server_database}', $conf['mysql']['database'], $content); - $content = str_replace('{mysql_server_ip}', $conf['mysql']['ip'], $content); - wf($conf['postfix']['config_dir'].'/sasl/smtpd.conf', $content); - - // TODO: Chmod and chown on the config file - - - // Recursively create the spool directory - if(!@is_dir('/var/spool/postfix/var/run/saslauthd')) mkdir('/var/spool/postfix/var/run/saslauthd', 0755, true); - - // Edit the file /etc/default/saslauthd - $configfile = $conf['saslauthd']['config']; - if(is_file($configfile)) copy($configfile, $configfile.'~'); - if(is_file($configfile.'~')) chmod($configfile.'~', 0400); - $content = rf($configfile); - $content = str_replace('START=no', 'START=yes', $content); - // Debian - $content = str_replace('OPTIONS="-c"', 'OPTIONS="-m /var/spool/postfix/var/run/saslauthd -r"', $content); - // Ubuntu - $content = str_replace('OPTIONS="-c -m /var/run/saslauthd"', 'OPTIONS="-c -m /var/spool/postfix/var/run/saslauthd -r"', $content); - wf($configfile, $content); - - // Edit the file /etc/init.d/saslauthd - $configfile = $conf['init_scripts'].'/'.$conf['saslauthd']['init_script']; - $content = rf($configfile); - $content = str_replace('PIDFILE=$RUN_DIR/saslauthd.pid', 'PIDFILE="/var/spool/postfix/var/run/${NAME}/saslauthd.pid"', $content); - wf($configfile, $content); - - // add the postfix user to the sasl group (at least necessary for Ubuntu 8.04 and most likely Debian Lenny as well. - exec('adduser postfix sasl'); - - - } - - public function configure_pam() { - global $conf; - $pam = $conf['pam']; - //* configure pam for SMTP authentication agains the ispconfig database - $configfile = 'pamd_smtp'; - if(is_file($pam.'/smtp')) copy($pam.'/smtp', $pam.'/smtp~'); - if(is_file($pam.'/smtp~')) chmod($pam.'/smtp~', 0400); - - $content = rfsel($conf['ispconfig_install_dir'].'/server/conf-custom/install/'.$configfile.'.master', 'tpl/'.$configfile.'.master'); - $content = str_replace('{mysql_server_ispconfig_user}', $conf['mysql']['ispconfig_user'], $content); - $content = str_replace('{mysql_server_ispconfig_password}', $conf['mysql']['ispconfig_password'], $content); - $content = str_replace('{mysql_server_database}', $conf['mysql']['database'], $content); - $content = str_replace('{mysql_server_ip}', $conf['mysql']['ip'], $content); - wf($pam.'/smtp', $content); - // On some OSes smtp is world readable which allows for reading database information. Removing world readable rights should have no effect. - if(is_file($pam.'/smtp')) exec("chmod o= $pam/smtp"); - chmod($pam.'/smtp', 0660); - chown($pam.'/smtp', 'daemon'); - chgrp($pam.'/smtp', 'daemon'); - - } - - public function configure_courier() { - global $conf; - $config_dir = $conf['courier']['config_dir']; - //* authmysqlrc - $configfile = 'authmysqlrc'; - if(is_file($config_dir.'/'.$configfile)) { - copy($config_dir.'/'.$configfile, $config_dir.'/'.$configfile.'~'); - } - chmod($config_dir.'/'.$configfile.'~', 0400); - $content = rfsel($conf['ispconfig_install_dir'].'/server/conf-custom/install/'.$configfile.'.master', 'tpl/'.$configfile.'.master'); - $content = str_replace('{mysql_server_ispconfig_user}', $conf['mysql']['ispconfig_user'], $content); - $content = str_replace('{mysql_server_ispconfig_password}', $conf['mysql']['ispconfig_password'], $content); - $content = str_replace('{mysql_server_database}', $conf['mysql']['database'], $content); - $content = str_replace('{mysql_server_host}', $conf['mysql']['host'], $content); - $content = str_replace('{mysql_server_port}', $conf['mysql']['port'], $content); - wf($config_dir.'/'.$configfile, $content); - - chmod($config_dir.'/'.$configfile, 0660); - chown($config_dir.'/'.$configfile, 'daemon'); - chgrp($config_dir.'/'.$configfile, 'daemon'); - - //* authdaemonrc - $configfile = $config_dir.'/authdaemonrc'; - if(is_file($configfile)) { - copy($configfile, $configfile.'~'); - } - if(is_file($configfile.'~')) { - chmod($configfile.'~', 0400); - } - $content = rf($configfile); - $content = str_replace('authmodulelist="authpam"', 'authmodulelist="authmysql"', $content); - wf($configfile, $content); - } - - public function configure_dovecot() { - global $conf; - - $virtual_transport = 'dovecot'; - - $configure_lmtp = false; - - // check if virtual_transport must be changed - if ($this->is_update) { - $tmp = $this->db->queryOneRecord("SELECT * FROM ?? WHERE server_id = ?", $conf["mysql"]["database"] . ".server", $conf['server_id']); - $ini_array = ini_to_array(stripslashes($tmp['config'])); - // ini_array needs not to be checked, because already done in update.php -> updateDbAndIni() - - if(isset($ini_array['mail']['mailbox_virtual_uidgid_maps']) && $ini_array['mail']['mailbox_virtual_uidgid_maps'] == 'y') { - $virtual_transport = 'lmtp:unix:private/dovecot-lmtp'; - $configure_lmtp = true; - } - } - - $config_dir = $conf['postfix']['config_dir']; - - //* Configure master.cf and add a line for deliver - if(!$this->get_postfix_service('dovecot', 'unix')) { - //* backup - if(is_file($config_dir.'/master.cf')){ - copy($config_dir.'/master.cf', $config_dir.'/master.cf~2'); - } - if(is_file($config_dir.'/master.cf~')){ - chmod($config_dir.'/master.cf~2', 0400); - } - //* Configure master.cf and add a line for deliver - $content = rf($conf["postfix"]["config_dir"].'/master.cf'); - $deliver_content = 'dovecot unix - n n - - pipe'."\n".' flags=DRhu user=vmail:vmail argv=/usr/lib/dovecot/deliver -f ${sender} -d ${user}@${nexthop}'."\n"; - af($config_dir.'/master.cf', $deliver_content); - unset($content); - unset($deliver_content); - } - - //* Reconfigure postfix to use dovecot authentication - // Adding the amavisd commands to the postfix configuration - $postconf_commands = array ( - 'dovecot_destination_recipient_limit = 1', - 'virtual_transport = '.$virtual_transport, - 'smtpd_sasl_type = dovecot', - 'smtpd_sasl_path = private/auth' - ); - - // Make a backup copy of the main.cf file - copy($conf['postfix']['config_dir'].'/main.cf', $conf['postfix']['config_dir'].'/main.cf~3'); - - // Executing the postconf commands - foreach($postconf_commands as $cmd) { - $command = "postconf -e '$cmd'"; - caselog($command." &> /dev/null", __FILE__, __LINE__, "EXECUTED: $command", "Failed to execute the command $command"); - } - - //* backup dovecot.conf - $config_dir = $conf['dovecot']['config_dir']; - $configfile = 'dovecot.conf'; - if(is_file($config_dir.'/'.$configfile)) { - copy($config_dir.'/'.$configfile, $config_dir.'/'.$configfile.'~'); - } - - //* Get the dovecot version - exec('dovecot --version', $tmp); - $dovecot_version = $tmp[0]; - unset($tmp); - - //* Copy dovecot configuration file - if(version_compare($dovecot_version,1, '<=')) { //* Dovecot 1.x - if(is_file($conf['ispconfig_install_dir'].'/server/conf-custom/install/debian_dovecot.conf.master')) { - copy($conf['ispconfig_install_dir'].'/server/conf-custom/install/debian_dovecot.conf.master', $config_dir.'/'.$configfile); - } else { - copy('tpl/debian_dovecot.conf.master', $config_dir.'/'.$configfile); - } - } else { //* Dovecot 2.x - if(is_file($conf['ispconfig_install_dir'].'/server/conf-custom/install/debian_dovecot2.conf.master')) { - copy($conf['ispconfig_install_dir'].'/server/conf-custom/install/debian_dovecot2.conf.master', $config_dir.'/'.$configfile); - } else { - copy('tpl/debian_dovecot2.conf.master', $config_dir.'/'.$configfile); - } - replaceLine($config_dir.'/'.$configfile, 'postmaster_address = postmaster@example.com', 'postmaster_address = postmaster@'.$conf['hostname'], 1, 0); - replaceLine($config_dir.'/'.$configfile, 'postmaster_address = webmaster@localhost', 'postmaster_address = postmaster@'.$conf['hostname'], 1, 0); - if(version_compare($dovecot_version, 2.1, '<')) { - removeLine($config_dir.'/'.$configfile, 'ssl_protocols ='); - } - if(version_compare($dovecot_version,2.2) >= 0) { - // Dovecot > 2.2 does not recognize !SSLv2 anymore on Debian 9 - $content = file_get_contents($config_dir.'/'.$configfile); - $content = str_replace('!SSLv2','',$content); - file_put_contents($config_dir.'/'.$configfile,$content); - unset($content); - } - } - - //* dovecot-lmtpd - if($configure_lmtp) { - replaceLine($config_dir.'/'.$configfile, 'protocols = imap pop3', 'protocols = imap pop3 lmtp', 1, 0); - } - - //* dovecot-sql.conf - $configfile = 'dovecot-sql.conf'; - if(is_file($config_dir.'/'.$configfile)) { - copy($config_dir.'/'.$configfile, $config_dir.'/'.$configfile.'~'); - } - if(is_file($config_dir.'/'.$configfile.'~')) chmod($config_dir.'/'.$configfile.'~', 0400); - $content = rfsel($conf['ispconfig_install_dir'].'/server/conf-custom/install/debian_dovecot-sql.conf.master', 'tpl/debian_dovecot-sql.conf.master'); - $content = str_replace('{mysql_server_ispconfig_user}', $conf['mysql']['ispconfig_user'], $content); - $content = str_replace('{mysql_server_ispconfig_password}', $conf['mysql']['ispconfig_password'], $content); - $content = str_replace('{mysql_server_database}', $conf['mysql']['database'], $content); - $content = str_replace('{mysql_server_host}', $conf['mysql']['host'], $content); - $content = str_replace('{mysql_server_port}', $conf['mysql']['port'], $content); - $content = str_replace('{server_id}', $conf['server_id'], $content); - # enable iterate_query for dovecot2 - if(version_compare($dovecot_version,2, '>=')) { - $content = str_replace('# iterate_query', 'iterate_query', $content); - } - wf($config_dir.'/'.$configfile, $content); - - chmod($config_dir.'/'.$configfile, 0600); - chown($config_dir.'/'.$configfile, 'root'); - chgrp($config_dir.'/'.$configfile, 'root'); - - // Dovecot shall ignore mounts in website directory - if(is_installed('doveadm')) exec("doveadm mount add '/var/www/*' ignore > /dev/null 2> /dev/null"); - - } - - public function configure_amavis() { - global $conf; - - // amavisd user config file - $configfile = 'amavisd_user_config'; - if(is_file($conf['amavis']['config_dir'].'/conf.d/50-user')) copy($conf['amavis']['config_dir'].'/conf.d/50-user', $conf['amavis']['config_dir'].'/50-user~'); - if(is_file($conf['amavis']['config_dir'].'/conf.d/50-user~')) chmod($conf['amavis']['config_dir'].'/50-user~', 0400); - $content = rfsel($conf['ispconfig_install_dir'].'/server/conf-custom/install/'.$configfile.'.master', 'tpl/'.$configfile.'.master'); - $content = str_replace('{mysql_server_ispconfig_user}', $conf['mysql']['ispconfig_user'], $content); - $content = str_replace('{mysql_server_ispconfig_password}', $conf['mysql']['ispconfig_password'], $content); - $content = str_replace('{mysql_server_database}', $conf['mysql']['database'], $content); - $content = str_replace('{mysql_server_port}', $conf['mysql']['port'], $content); - $content = str_replace('{mysql_server_ip}', $conf['mysql']['ip'], $content); - wf($conf['amavis']['config_dir'].'/conf.d/50-user', $content); - chmod($conf['amavis']['config_dir'].'/conf.d/50-user', 0640); - - // TODO: chmod and chown on the config file - - - // Adding the amavisd commands to the postfix configuration - // Add array for no error in foreach and maybe future options - $postconf_commands = array (); - - // Check for amavisd -> pure webserver with postfix for mailing without antispam - if ($conf['amavis']['installed']) { - $postconf_commands[] = 'content_filter = amavis:[127.0.0.1]:10024'; - $postconf_commands[] = 'receive_override_options = no_address_mappings'; - } - - // Make a backup copy of the main.cf file - copy($conf['postfix']['config_dir'].'/main.cf', $conf['postfix']['config_dir'].'/main.cf~2'); - - // Executing the postconf commands - foreach($postconf_commands as $cmd) { - $command = "postconf -e '$cmd'"; - caselog($command." &> /dev/null", __FILE__, __LINE__, "EXECUTED: $command", "Failed to execute the command $command"); - } - - $config_dir = $conf['postfix']['config_dir']; - - // Adding amavis-services to the master.cf file if the service does not already exists - $add_amavis = !$this->get_postfix_service('amavis','unix'); - $add_amavis_10025 = !$this->get_postfix_service('127.0.0.1:10025','inet'); - $add_amavis_10027 = !$this->get_postfix_service('127.0.0.1:10027','inet'); - //*TODO: check templates against existing postfix-services to make sure we use the template - - if ($add_amavis || $add_amavis_10025 || $add_amavis_10027) { - //* backup master.cf - if(is_file($config_dir.'/master.cf')) copy($config_dir.'/master.cf', $config_dir.'/master.cf~'); - // adjust amavis-config - if($add_amavis) { - $content = rfsel($conf['ispconfig_install_dir'].'/server/conf-custom/install/master_cf_amavis.master', 'tpl/master_cf_amavis.master'); - af($config_dir.'/master.cf', $content); - unset($content); - } - if ($add_amavis_10025) { - $content = rfsel($conf['ispconfig_install_dir'].'/server/conf-custom/install/master_cf_amavis10025.master', 'tpl/master_cf_amavis10025.master'); - af($config_dir.'/master.cf', $content); - unset($content); - } - if ($add_amavis_10027) { - $content = rfsel($conf['ispconfig_install_dir'].'/server/conf-custom/install/master_cf_amavis10027.master', 'tpl/master_cf_amavis10027.master'); - af($config_dir.'/master.cf', $content); - unset($content); - } - } - - // Add the clamav user to the amavis group - exec('adduser clamav amavis'); - // get shell-group for amavis - $amavis_group=exec('grep -o "^amavis:\|^vscan:" /etc/group'); - if(!empty($amavis_group)) { - $amavis_group=rtrim($amavis_group, ":"); - } - // get shell-user for amavis - $amavis_user=exec('grep -o "^amavis:\|^vscan:" /etc/passwd'); - if(!empty($amavis_user)) { - $amavis_user=rtrim($amavis_user, ":"); - } - - // Create the director for DKIM-Keys - if(!is_dir('/var/lib/amavis')) mkdir('/var/lib/amavis', 0750, true); - if(!empty($amavis_user)) exec('chown '.$amavis_user.' /var/lib/amavis'); - if(!empty($amavis_group)) exec('chgrp '.$amavis_group.' /var/lib/amavis'); - if(!is_dir('/var/lib/amavis/dkim')) mkdir('/var/lib/amavis/dkim', 0750); - if(!empty($amavis_user)) exec('chown -R '.$amavis_user.' /var/lib/amavis/dkim'); - if(!empty($amavis_group)) exec('chgrp -R '.$amavis_group.' /var/lib/amavis/dkim'); - - } - - public function configure_spamassassin() { - global $conf; - - //* Enable spamasasssin on debian and ubuntu - $configfile = '/etc/default/spamassassin'; - if(is_file($configfile)) { - copy($configfile, $configfile.'~'); - } - $content = rf($configfile); - $content = str_replace('ENABLED=0', 'ENABLED=1', $content); - wf($configfile, $content); - } - - public function configure_getmail() { - global $conf; - - $config_dir = $conf['getmail']['config_dir']; - - if(!@is_dir($config_dir)) mkdir(escapeshellcmd($config_dir), 0700, true); - - $command = 'useradd -d '.$config_dir.' getmail'; - if(!is_user('getmail')) caselog($command.' &> /dev/null', __FILE__, __LINE__, "EXECUTED: $command", "Failed to execute the command $command"); - - $command = "chown -R getmail $config_dir"; - caselog($command.' &> /dev/null', __FILE__, __LINE__, "EXECUTED: $command", "Failed to execute the command $command"); - - $command = "chmod -R 700 $config_dir"; - caselog($command.' &> /dev/null', __FILE__, __LINE__, "EXECUTED: $command", "Failed to execute the command $command"); - } - - - public function configure_pureftpd() { - global $conf; - - $config_dir = $conf['pureftpd']['config_dir']; - - //* configure pure-ftpd for MySQL authentication against the ispconfig database - $configfile = 'db/mysql.conf'; - if(is_file($config_dir.'/'.$configfile)) { - copy($config_dir.'/'.$configfile, $config_dir.'/'.$configfile.'~'); - } - if(is_file($config_dir.'/'.$configfile.'~')) { - chmod($config_dir.'/'.$configfile.'~', 0400); - } - $content = rfsel($conf['ispconfig_install_dir'].'/server/conf-custom/install/pureftpd_mysql.conf.master', 'tpl/pureftpd_mysql.conf.master'); - $content = str_replace('{mysql_server_ispconfig_user}', $conf['mysql']['ispconfig_user'], $content); - $content = str_replace('{mysql_server_ispconfig_password}', $conf['mysql']['ispconfig_password'], $content); - $content = str_replace('{mysql_server_database}', $conf['mysql']['database'], $content); - $content = str_replace('{mysql_server_ip}', $conf['mysql']['ip'], $content); - $content = str_replace('{server_id}', $conf['server_id'], $content); - wf($config_dir.'/'.$configfile, $content); - chmod($config_dir.'/'.$configfile, 0600); - chown($config_dir.'/'.$configfile, 'root'); - chgrp($config_dir.'/'.$configfile, 'root'); - // **enable chrooting - //exec('mkdir -p '.$config_dir.'/conf/ChrootEveryone'); - exec('echo "yes" > '.$config_dir.'/conf/ChrootEveryone'); - exec('echo "yes" > '.$config_dir.'/conf/BrokenClientsCompatibility'); - exec('echo "yes" > '.$config_dir.'/conf/DisplayDotFiles'); - - if(is_file('/etc/default/pure-ftpd-common')) { - replaceLine('/etc/default/pure-ftpd-common', 'STANDALONE_OR_INETD=inetd', 'STANDALONE_OR_INETD=standalone', 1, 0); - replaceLine('/etc/default/pure-ftpd-common', 'VIRTUALCHROOT=false', 'VIRTUALCHROOT=true', 1, 0); - } - - if(is_file('/etc/inetd.conf')) { - replaceLine('/etc/inetd.conf', '/usr/sbin/pure-ftpd-wrapper', '#ftp stream tcp nowait root /usr/sbin/tcpd /usr/sbin/pure-ftpd-wrapper', 0, 0); - exec($this->getinitcommand('openbsd-inetd', 'restart')); - //if(is_file($conf['init_scripts'].'/'.'openbsd-inetd')) exec($conf['init_scripts'].'/'.'openbsd-inetd restart'); - } - - if(!is_file('/etc/pure-ftpd/conf/DontResolve')) exec('echo "yes" > /etc/pure-ftpd/conf/DontResolve'); - } - - public function configure_mydns() { - global $conf; - - // configure pam for SMTP authentication agains the ispconfig database - $configfile = 'mydns.conf'; - if(is_file($conf['mydns']['config_dir'].'/'.$configfile)) copy($conf['mydns']['config_dir'].'/'.$configfile, $conf['mydns']['config_dir'].'/'.$configfile.'~'); - if(is_file($conf['mydns']['config_dir'].'/'.$configfile.'~')) chmod($conf['mydns']['config_dir'].'/'.$configfile.'~', 0400); - $content = rfsel($conf['ispconfig_install_dir'].'/server/conf-custom/install/'.$configfile.'.master', 'tpl/'.$configfile.'.master'); - $content = str_replace('{mysql_server_ispconfig_user}', $conf['mysql']['ispconfig_user'], $content); - $content = str_replace('{mysql_server_ispconfig_password}', $conf['mysql']['ispconfig_password'], $content); - $content = str_replace('{mysql_server_database}', $conf['mysql']['database'], $content); - $content = str_replace('{mysql_server_host}', $conf['mysql']['host'], $content); - $content = str_replace('{mysql_server_port}', $conf['mysql']['port'], $content); - $content = str_replace('{server_id}', $conf['server_id'], $content); - wf($conf['mydns']['config_dir'].'/'.$configfile, $content); - chmod($conf['mydns']['config_dir'].'/'.$configfile, 0600); - chown($conf['mydns']['config_dir'].'/'.$configfile, 'root'); - chgrp($conf['mydns']['config_dir'].'/'.$configfile, 'root'); - - } - - public function configure_powerdns() { - global $conf; - - //* Create the database - if(!$this->db->query('CREATE DATABASE IF NOT EXISTS ?? DEFAULT CHARACTER SET ?', $conf['powerdns']['database'], $conf['mysql']['charset'])) { - $this->error('Unable to create MySQL database: '.$conf['powerdns']['database'].'.'); - } - - //* Create the ISPConfig database user in the local database - $query = "GRANT ALL ON ?? TO ?@'localhost'"; - if(!$this->db->query($query, $conf['powerdns']['database'] . '.*', $conf['mysql']['ispconfig_user'])) { - $this->error('Unable to create user for powerdns database Error: '.$this->db->errorMessage); - } - - //* load the powerdns databse dump - if($conf['mysql']['admin_password'] == '') { - caselog("mysql --default-character-set=".$conf['mysql']['charset']." -h '".$conf['mysql']['host']."' -u '".$conf['mysql']['admin_user']."' '".$conf['powerdns']['database']."' < '".ISPC_INSTALL_ROOT."/install/sql/powerdns.sql' &> /dev/null", - __FILE__, __LINE__, 'read in ispconfig3.sql', 'could not read in powerdns.sql'); - } else { - caselog("mysql --default-character-set=".$conf['mysql']['charset']." -h '".$conf['mysql']['host']."' -u '".$conf['mysql']['admin_user']."' -p'".$conf['mysql']['admin_password']."' '".$conf['powerdns']['database']."' < '".ISPC_INSTALL_ROOT."/install/sql/powerdns.sql' &> /dev/null", - __FILE__, __LINE__, 'read in ispconfig3.sql', 'could not read in powerdns.sql'); - } - - //* Create the powerdns config file - $configfile = 'pdns.local'; - if(is_file($conf['powerdns']['config_dir'].'/'.$configfile)) copy($conf['powerdns']['config_dir'].'/'.$configfile, $conf['powerdns']['config_dir'].'/'.$configfile.'~'); - if(is_file($conf['powerdns']['config_dir'].'/'.$configfile.'~')) chmod($conf['powerdns']['config_dir'].'/'.$configfile.'~', 0400); - $content = rfsel($conf['ispconfig_install_dir'].'/server/conf-custom/install/'.$configfile.'.master', 'tpl/'.$configfile.'.master'); - $content = str_replace('{mysql_server_ispconfig_user}', $conf['mysql']['ispconfig_user'], $content); - $content = str_replace('{mysql_server_ispconfig_password}', $conf['mysql']['ispconfig_password'], $content); - $content = str_replace('{powerdns_database}', $conf['powerdns']['database'], $content); - $content = str_replace('{mysql_server_host}', $conf['mysql']['host'], $content); - $content = str_replace('{mysql_server_port}', $conf['mysql']['port'], $content); - wf($conf['powerdns']['config_dir'].'/'.$configfile, $content); - chmod($conf['powerdns']['config_dir'].'/'.$configfile, 0600); - chown($conf['powerdns']['config_dir'].'/'.$configfile, 'root'); - chgrp($conf['powerdns']['config_dir'].'/'.$configfile, 'root'); - - - } - - //** writes bind configuration files - public function process_bind_file($configfile, $target='/', $absolute=false) { - global $conf; - - if ($absolute) $full_file_name = $target.$configfile; - else $full_file_name = $conf['ispconfig_install_dir'].$target.$configfile; - - //* Backup exiting file - if(is_file($full_file_name)) { - copy($full_file_name, $config_dir.$configfile.'~'); - } - $content = rfsel($conf['ispconfig_install_dir'].'/server/conf-custom/install/'.$configfile.'.master', 'tpl/'.$configfile.'.master'); - $content = str_replace('{mysql_server_ispconfig_user}', $conf['mysql']['ispconfig_user'], $content); - $content = str_replace('{mysql_server_ispconfig_password}', $conf['mysql']['ispconfig_password'], $content); - $content = str_replace('{mysql_server_ispconfig_database}', $conf['mysql']['database'], $content); - $content = str_replace('{mysql_server_ip}', $conf['mysql']['ip'], $content); - $content = str_replace('{ispconfig_install_dir}', $conf['ispconfig_install_dir'], $content); - $content = str_replace('{dnssec_conffile}', $conf['ispconfig_install_dir'].'/server/scripts/dnssec-config.sh', $content); - wf($full_file_name, $content); - } - - public function configure_bind() { - global $conf; - - //* Check if the zonefile directory has a slash at the end - $content=$conf['bind']['bind_zonefiles_dir']; - if(substr($content, -1, 1) != '/') { - $content .= '/'; - } - - //* Create the slave subdirectory - $content .= 'slave'; - if(!@is_dir($content)) mkdir($content, 02770, true); - - //* Chown the slave subdirectory to $conf['bind']['bind_user'] - chown($content, $conf['bind']['bind_user']); - chgrp($content, $conf['bind']['bind_group']); - chmod($content, 02770); - - //* Install scripts for dnssec implementation - $this->process_bind_file('named.conf.options', '/etc/bind/', true); //TODO replace hardcoded path - } - - - public function configure_xmpp($options = '') { - global $conf; - - if($conf['xmpp']['installed'] == false) return; - //* Create the logging directory for xmpp server - if(!@is_dir('/var/log/metronome')) mkdir('/var/log/metronome', 0755, true); - chown('/var/log/metronome', 'metronome'); - if(!@is_dir('/var/run/metronome')) mkdir('/var/run/metronome', 0755, true); - chown('/var/run/metronome', 'metronome'); - if(!@is_dir('/var/lib/metronome')) mkdir('/var/lib/metronome', 0755, true); - chown('/var/lib/metronome', 'metronome'); - if(!@is_dir('/etc/metronome/hosts')) mkdir('/etc/metronome/hosts', 0755, true); - if(!@is_dir('/etc/metronome/status')) mkdir('/etc/metronome/status', 0755, true); - unlink('/etc/metronome/metronome.cfg.lua'); - - $row = $this->db->queryOneRecord("SELECT server_name FROM server WHERE server_id = ?", $conf["server_id"]); - $server_name = $row["server_name"]; - - $tpl = new tpl('metronome_conf_main.master'); - wf('/etc/metronome/metronome.cfg.lua', $tpl->grab()); - unset($tpl); - - $tpl = new tpl('metronome_conf_global.master'); - $tpl->setVar('xmpp_admins',''); - wf('/etc/metronome/global.cfg.lua', $tpl->grab()); - unset($tpl); - - // Copy isp libs - if(!@is_dir('/usr/lib/metronome/isp-modules')) mkdir('/usr/lib/metronome/isp-modules', 0755, true); - caselog('cp -rf apps/metronome_libs/* /usr/lib/metronome/isp-modules/', __FILE__, __LINE__); - caselog('chmod 755 /usr/lib/metronome/isp-modules/mod_auth_external/authenticate_isp.sh', __FILE__, __LINE__); - // Process db config - $full_file_name = '/usr/lib/metronome/isp-modules/mod_auth_external/db_conf.inc.php'; - $content = rf($full_file_name); - $content = str_replace('{mysql_server_ispconfig_user}', $conf['mysql']['ispconfig_user'], $content); - $content = str_replace('{mysql_server_ispconfig_password}', $conf['mysql']['ispconfig_password'], $content); - $content = str_replace('{mysql_server_database}', $conf['mysql']['database'], $content); - $content = str_replace('{mysql_server_ip}', $conf['mysql']['ip'], $content); - $content = str_replace('{server_id}', $conf['server_id'], $content); - wf($full_file_name, $content); - - if(!stristr($options, 'dont-create-certs')){ - // Create SSL Certificate for localhost - // Ensure no line is left blank - echo "writing new private key to 'localhost.key'\n-----\n"; - $ssl_country = $this->free_query('Country Name (2 letter code)', 'AU','ssl_cert_country'); - $ssl_locality = $this->free_query('Locality Name (eg, city)', 'City Name','ssl_cert_locality'); - $ssl_organisation = $this->free_query('Organization Name (eg, company)', 'Internet Widgits Pty Ltd','ssl_cert_organisation'); - $ssl_organisation_unit = $this->free_query('Organizational Unit Name (eg, section)', 'Infrastructure','ssl_cert_organisation_unit'); - $ssl_domain = $this->free_query('Common Name (e.g. server FQDN or YOUR name)', $conf['hostname'],'ssl_cert_common_name'); - $ssl_email = $this->free_query('Email Address', 'hostmaster@'.$conf['hostname'],'ssl_cert_email'); - - $tpl = new tpl('metronome_conf_ssl.master'); - $tpl->setVar('ssl_country',$ssl_country); - $tpl->setVar('ssl_locality',$ssl_locality); - $tpl->setVar('ssl_organisation',$ssl_organisation); - $tpl->setVar('ssl_organisation_unit',$ssl_organisation_unit); - $tpl->setVar('domain',$ssl_domain); - $tpl->setVar('ssl_email',$ssl_email); - wf('/etc/metronome/certs/localhost.cnf', $tpl->grab()); - unset($tpl); - // Generate new key, csr and cert - exec("(cd /etc/metronome/certs && make localhost.key)"); - exec("(cd /etc/metronome/certs && make localhost.csr)"); - exec("(cd /etc/metronome/certs && make localhost.cert)"); - exec('chmod 0400 /etc/metronome/certs/localhost.key'); - exec('chown metronome /etc/metronome/certs/localhost.key'); - - echo "IMPORTANT:\n"; - echo "Localhost Key, Csr and a self-signed Cert have been saved to /etc/metronome/certs\n"; - echo "In order to work with all clients, the server must have a trusted certificate, so use the Csr\n"; - echo "to get a trusted certificate from your CA or replace Key and Cert with already signed files for\n"; - echo "your domain. Clients like Pidgin dont allow to use untrusted self-signed certificates.\n"; - echo "\n"; - - }else{ - /* - echo "-----\n"; - echo "Metronome XMPP SSL server certificate is not renewed. Run the following command manual as root to recreate it:\n"; - echo "# (cd /etc/metronome/certs && make localhost.key && make localhost.csr && make localhost.cert && chmod 0400 localhost.key && chown metronome localhost.key)\n"; - echo "-----\n"; - */ - } - - // Copy init script - caselog('cp -f apps/metronome-init /etc/init.d/metronome', __FILE__, __LINE__); - caselog('chmod u+x /etc/init.d/metronome', __FILE__, __LINE__); - caselog('update-rc.d metronome defaults', __FILE__, __LINE__); - - exec($this->getinitcommand($conf['xmpp']['init_script'], 'restart')); - } - - - public function configure_apache() { - global $conf; - - if($conf['apache']['installed'] == false) return; - //* Create the logging directory for the vhost logfiles - if(!@is_dir($conf['ispconfig_log_dir'].'/httpd')) mkdir($conf['ispconfig_log_dir'].'/httpd', 0755, true); - - if(is_file('/etc/suphp/suphp.conf')) { - replaceLine('/etc/suphp/suphp.conf', 'php="php:/usr/bin', 'x-httpd-suphp="php:/usr/bin/php-cgi"', 0); - //replaceLine('/etc/suphp/suphp.conf','docroot=','docroot=/var/clients',0); - replaceLine('/etc/suphp/suphp.conf', 'umask=00', 'umask=0022', 0); - } - - if(is_file('/etc/apache2/sites-enabled/000-default')) { - replaceLine('/etc/apache2/sites-available/000-default', 'NameVirtualHost *', 'NameVirtualHost *:80', 1, 0); - replaceLine('/etc/apache2/sites-available/000-default', '', '', 1, 0); - } - - if(is_file('/etc/apache2/ports.conf')) { - // add a line "Listen 443" to ports conf if line does not exist - replaceLine('/etc/apache2/ports.conf', 'Listen 443', 'Listen 443', 1); - - // Comment out the namevirtualhost lines, as they were added by ispconfig in ispconfig.conf file again - replaceLine('/etc/apache2/ports.conf', 'NameVirtualHost *:80', '# NameVirtualHost *:80', 1); - replaceLine('/etc/apache2/ports.conf', 'NameVirtualHost *:443', '# NameVirtualHost *:443', 1); - } - - if(is_file('/etc/apache2/mods-available/fcgid.conf')) { - // add or modify the parameters for fcgid.conf - replaceLine('/etc/apache2/mods-available/fcgid.conf','MaxRequestLen','MaxRequestLen 15728640',1); - } - - if(is_file('/etc/apache2/apache.conf')) { - if(hasLine('/etc/apache2/apache.conf', 'Include sites-enabled/', 1) == false) { - if(hasLine('/etc/apache2/apache.conf', 'IncludeOptional sites-enabled/*.conf', 1) == false && hasLine('/etc/apache2/apache.conf', 'IncludeOptional sites-enabled/', 1) == false) { - replaceLine('/etc/apache2/apache.conf', 'Include sites-enabled/', 'Include sites-enabled/', 1, 1); - } elseif(hasLine('/etc/apache2/apache.conf', 'IncludeOptional sites-enabled/*.vhost', 1) == false) { - replaceLine('/etc/apache2/apache.conf', 'IncludeOptional sites-enabled/*.vhost', 'IncludeOptional sites-enabled/', 1, 1); - } - } - } - - if(is_file('/etc/apache2/apache2.conf')) { - if(hasLine('/etc/apache2/apache2.conf', 'Include sites-enabled/', 1) == false && hasLine('/etc/apache2/apache2.conf', 'IncludeOptional sites-enabled/', 1) == false) { - if(hasLine('/etc/apache2/apache2.conf', 'Include sites-enabled/*.conf', 1) == true) { - replaceLine('/etc/apache2/apache2.conf', 'Include sites-enabled/*.conf', 'Include sites-enabled/', 1, 1); - } elseif(hasLine('/etc/apache2/apache2.conf', 'IncludeOptional sites-enabled/*.conf', 1) == true) { - replaceLine('/etc/apache2/apache2.conf', 'IncludeOptional sites-enabled/*.conf', 'IncludeOptional sites-enabled/', 1, 1); - } - } - } - - //* Copy the ISPConfig configuration include - $vhost_conf_dir = $conf['apache']['vhost_conf_dir']; - $vhost_conf_enabled_dir = $conf['apache']['vhost_conf_enabled_dir']; - - $tpl = new tpl('apache_ispconfig.conf.master'); - $tpl->setVar('apache_version',getapacheversion()); - - if($this->is_update == true) { - $tpl->setVar('logging',get_logging_state()); - } else { - $tpl->setVar('logging','yes'); - } - - $records = $this->db->queryAllRecords("SELECT * FROM ?? WHERE server_id = ? AND virtualhost = 'y'", $conf['mysql']['master_database'] . '.server_ip', $conf['server_id']); - $ip_addresses = array(); - - if(is_array($records) && count($records) > 0) { - foreach($records as $rec) { - if($rec['ip_type'] == 'IPv6') { - $ip_address = '['.$rec['ip_address'].']'; - } else { - $ip_address = $rec['ip_address']; - } - $ports = explode(',', $rec['virtualhost_port']); - if(is_array($ports)) { - foreach($ports as $port) { - $port = intval($port); - if($port > 0 && $port < 65536 && $ip_address != '') { - $ip_addresses[] = array('ip_address' => $ip_address, 'port' => $port); - } - } - } - } - } - - if(count($ip_addresses) > 0) $tpl->setLoop('ip_adresses',$ip_addresses); - - wf($vhost_conf_dir.'/ispconfig.conf', $tpl->grab()); - unset($tpl); - - if(!@is_link($vhost_conf_enabled_dir.'/000-ispconfig.conf')) { - symlink($vhost_conf_dir.'/ispconfig.conf', $vhost_conf_enabled_dir.'/000-ispconfig.conf'); - } - - //* make sure that webalizer finds its config file when it is directly in /etc - if(@is_file('/etc/webalizer.conf') && !@is_dir('/etc/webalizer')) { - mkdir('/etc/webalizer'); - symlink('/etc/webalizer.conf', '/etc/webalizer/webalizer.conf'); - } - - if(is_file('/etc/webalizer/webalizer.conf')) { - // Change webalizer mode to incremental - replaceLine('/etc/webalizer/webalizer.conf', '#IncrementalName', 'IncrementalName webalizer.current', 0, 0); - replaceLine('/etc/webalizer/webalizer.conf', '#Incremental', 'Incremental yes', 0, 0); - replaceLine('/etc/webalizer/webalizer.conf', '#HistoryName', 'HistoryName webalizer.hist', 0, 0); - } - - // Check the awsatst script - if(!is_dir('/usr/share/awstats/tools')) exec('mkdir -p /usr/share/awstats/tools'); - if(!file_exists('/usr/share/awstats/tools/awstats_buildstaticpages.pl') && file_exists('/usr/share/doc/awstats/examples/awstats_buildstaticpages.pl')) symlink('/usr/share/doc/awstats/examples/awstats_buildstaticpages.pl', '/usr/share/awstats/tools/awstats_buildstaticpages.pl'); - if(file_exists('/etc/awstats/awstats.conf.local')) replaceLine('/etc/awstats/awstats.conf.local', 'LogFormat=4', 'LogFormat=1', 0, 1); - - //* add a sshusers group - $command = 'groupadd sshusers'; - if(!is_group('sshusers')) caselog($command.' &> /dev/null 2> /dev/null', __FILE__, __LINE__, "EXECUTED: $command", "Failed to execute the command $command"); - - } - - public function configure_nginx(){ - global $conf; - - if($conf['nginx']['installed'] == false) return; - //* Create the logging directory for the vhost logfiles - if(!@is_dir($conf['ispconfig_log_dir'].'/httpd')) mkdir($conf['ispconfig_log_dir'].'/httpd', 0755, true); - - //* make sure that webalizer finds its config file when it is directly in /etc - if(@is_file('/etc/webalizer.conf') && !@is_dir('/etc/webalizer')) { - mkdir('/etc/webalizer'); - symlink('/etc/webalizer.conf', '/etc/webalizer/webalizer.conf'); - } - - if(is_file('/etc/webalizer/webalizer.conf')) { - // Change webalizer mode to incremental - replaceLine('/etc/webalizer/webalizer.conf', '#IncrementalName', 'IncrementalName webalizer.current', 0, 0); - replaceLine('/etc/webalizer/webalizer.conf', '#Incremental', 'Incremental yes', 0, 0); - replaceLine('/etc/webalizer/webalizer.conf', '#HistoryName', 'HistoryName webalizer.hist', 0, 0); - } - - // Check the awsatst script - if(!is_dir('/usr/share/awstats/tools')) exec('mkdir -p /usr/share/awstats/tools'); - if(!file_exists('/usr/share/awstats/tools/awstats_buildstaticpages.pl') && file_exists('/usr/share/doc/awstats/examples/awstats_buildstaticpages.pl')) symlink('/usr/share/doc/awstats/examples/awstats_buildstaticpages.pl', '/usr/share/awstats/tools/awstats_buildstaticpages.pl'); - if(file_exists('/etc/awstats/awstats.conf.local')) replaceLine('/etc/awstats/awstats.conf.local', 'LogFormat=4', 'LogFormat=1', 0, 1); - - //* add a sshusers group - $command = 'groupadd sshusers'; - if(!is_group('sshusers')) caselog($command.' &> /dev/null 2> /dev/null', __FILE__, __LINE__, "EXECUTED: $command", "Failed to execute the command $command"); - - // add anonymized log option to nginxx.conf file - $nginx_conf_file = $conf['nginx']['config_dir'].'/nginx.conf'; - if(is_file($nginx_conf_file)) { - $tmp = file_get_contents($nginx_conf_file); - if(!stristr($tmp, 'log_format anonymized')) { - copy($nginx_conf_file,$nginx_conf_file.'~'); - replaceLine($nginx_conf_file, 'http {', "http {\n\n".file_get_contents('tpl/nginx_anonlog.master'), 0, 0); - } - } - - } - - public function configure_fail2ban() { - // To Do - } - - public function configure_squid() - { - global $conf; - $row = $this->db->queryOneRecord("SELECT server_name FROM server WHERE server_id = ?", $conf["server_id"]); - $ip_address = gethostbyname($row["server_name"]); - $server_name = $row["server_name"]; - - $configfile = 'squid.conf'; - if(is_file($conf["squid"]["config_dir"].'/'.$configfile)) copy($conf["squid"]["config_dir"].'/'.$configfile, $conf["squid"]["config_dir"].'/'.$configfile.'~'); - if(is_file($conf["squid"]["config_dir"].'/'.$configfile.'~')) exec('chmod 400 '.$conf["squid"]["config_dir"].'/'.$configfile.'~'); - $content = rfsel($conf['ispconfig_install_dir'].'/server/conf-custom/install/'.$configfile.'.master', "tpl/".$configfile.".master"); - $content = str_replace('{server_name}', $server_name, $content); - $content = str_replace('{ip_address}', $ip_address, $content); - $content = str_replace('{config_dir}', $conf['squid']['config_dir'], $content); - wf($conf["squid"]["config_dir"].'/'.$configfile, $content); - exec('chmod 600 '.$conf["squid"]["config_dir"].'/'.$configfile); - exec('chown root:root '.$conf["squid"]["config_dir"].'/'.$configfile); - } - - public function configure_ufw_firewall() - { - if($this->is_update == false) { - $configfile = 'ufw.conf'; - if(is_file('/etc/ufw/ufw.conf')) copy('/etc/ufw/ufw.conf', '/etc/ufw/ufw.conf~'); - $content = rf("tpl/".$configfile.".master"); - wf('/etc/ufw/ufw.conf', $content); - exec('chmod 600 /etc/ufw/ufw.conf'); - exec('chown root:root /etc/ufw/ufw.conf'); - } - } - - public function configure_bastille_firewall() { - global $conf; - - $dist_init_scripts = $conf['init_scripts']; - - if(is_dir('/etc/Bastille.backup')) caselog('rm -rf /etc/Bastille.backup', __FILE__, __LINE__); - if(is_dir('/etc/Bastille')) caselog('mv -f /etc/Bastille /etc/Bastille.backup', __FILE__, __LINE__); - @mkdir('/etc/Bastille', 0700); - if(is_dir('/etc/Bastille.backup/firewall.d')) caselog('cp -pfr /etc/Bastille.backup/firewall.d /etc/Bastille/', __FILE__, __LINE__); - if(is_file($conf['ispconfig_install_dir'].'/server/conf-custom/install/bastille-firewall.cfg.master')) { - caselog('cp -f ' . $conf['ispconfig_install_dir'].'/server/conf-custom/install/bastille-firewall.cfg.master /etc/Bastille/bastille-firewall.cfg', __FILE__, __LINE__); - } else { - caselog('cp -f tpl/bastille-firewall.cfg.master /etc/Bastille/bastille-firewall.cfg', __FILE__, __LINE__); - } - caselog('chmod 644 /etc/Bastille/bastille-firewall.cfg', __FILE__, __LINE__); - $content = rf('/etc/Bastille/bastille-firewall.cfg'); - $content = str_replace('{DNS_SERVERS}', '', $content); - - $tcp_public_services = ''; - $udp_public_services = ''; - - $row = $this->db->queryOneRecord('SELECT * FROM ?? WHERE server_id = ?', $conf["mysql"]["database"] . '.firewall', $conf['server_id']); - - if(trim($row['tcp_port']) != '' || trim($row['udp_port']) != '') { - $tcp_public_services = trim(str_replace(',', ' ', $row['tcp_port'])); - $udp_public_services = trim(str_replace(',', ' ', $row['udp_port'])); - } else { - $tcp_public_services = '21 22 25 53 80 110 143 443 3306 8080 10000'; - $udp_public_services = '53'; - } - - if(!stristr($tcp_public_services, $conf['apache']['vhost_port'])) { - $tcp_public_services .= ' '.intval($conf['apache']['vhost_port']); - if($row['tcp_port'] != '') $this->db->query("UPDATE firewall SET tcp_port = tcp_port + ? WHERE server_id = ?", ',' . intval($conf['apache']['vhost_port']), $conf['server_id']); - } - - $content = str_replace('{TCP_PUBLIC_SERVICES}', $tcp_public_services, $content); - $content = str_replace('{UDP_PUBLIC_SERVICES}', $udp_public_services, $content); - - wf('/etc/Bastille/bastille-firewall.cfg', $content); - - if(is_file($dist_init_scripts.'/bastille-firewall')) caselog('mv -f '.$dist_init_scripts.'/bastille-firewall '.$dist_init_scripts.'/bastille-firewall.backup', __FILE__, __LINE__); - caselog('cp -f apps/bastille-firewall '.$dist_init_scripts, __FILE__, __LINE__); - caselog('chmod 700 '.$dist_init_scripts.'/bastille-firewall', __FILE__, __LINE__); - - if(is_file('/sbin/bastille-ipchains')) caselog('mv -f /sbin/bastille-ipchains /sbin/bastille-ipchains.backup', __FILE__, __LINE__); - caselog('cp -f apps/bastille-ipchains /sbin', __FILE__, __LINE__); - caselog('chmod 700 /sbin/bastille-ipchains', __FILE__, __LINE__); - - if(is_file('/sbin/bastille-netfilter')) caselog('mv -f /sbin/bastille-netfilter /sbin/bastille-netfilter.backup', __FILE__, __LINE__); - caselog('cp -f apps/bastille-netfilter /sbin', __FILE__, __LINE__); - caselog('chmod 700 /sbin/bastille-netfilter', __FILE__, __LINE__); - - if(!@is_dir('/var/lock/subsys')) caselog('mkdir /var/lock/subsys', __FILE__, __LINE__); - - exec('which ipchains &> /dev/null', $ipchains_location, $ret_val); - if(!is_file('/sbin/ipchains') && !is_link('/sbin/ipchains') && $ret_val == 0) phpcaselog(@symlink(shell_exec('which ipchains'), '/sbin/ipchains'), 'create symlink', __FILE__, __LINE__); - unset($ipchains_location); - exec('which iptables &> /dev/null', $iptables_location, $ret_val); - if(!is_file('/sbin/iptables') && !is_link('/sbin/iptables') && $ret_val == 0) phpcaselog(@symlink(trim(shell_exec('which iptables')), '/sbin/iptables'), 'create symlink', __FILE__, __LINE__); - unset($iptables_location); - - } - - public function configure_vlogger() { - global $conf; - - //** Configure vlogger to use traffic logging to mysql (master) db - $configfile = 'vlogger-dbi.conf'; - if(is_file($conf['vlogger']['config_dir'].'/'.$configfile)) copy($conf['vlogger']['config_dir'].'/'.$configfile, $conf['vlogger']['config_dir'].'/'.$configfile.'~'); - if(is_file($conf['vlogger']['config_dir'].'/'.$configfile.'~')) chmod($conf['vlogger']['config_dir'].'/'.$configfile.'~', 0400); - $content = rfsel($conf['ispconfig_install_dir'].'/server/conf-custom/install/'.$configfile.'.master', 'tpl/'.$configfile.'.master'); - if($conf['mysql']['master_slave_setup'] == 'y') { - $content = str_replace('{mysql_server_ispconfig_user}', $conf['mysql']['master_ispconfig_user'], $content); - $content = str_replace('{mysql_server_ispconfig_password}', $conf['mysql']['master_ispconfig_password'], $content); - $content = str_replace('{mysql_server_database}', $conf['mysql']['master_database'], $content); - $content = str_replace('{mysql_server_ip}', $conf['mysql']['master_host'], $content); - } else { - $content = str_replace('{mysql_server_ispconfig_user}', $conf['mysql']['ispconfig_user'], $content); - $content = str_replace('{mysql_server_ispconfig_password}', $conf['mysql']['ispconfig_password'], $content); - $content = str_replace('{mysql_server_database}', $conf['mysql']['database'], $content); - $content = str_replace('{mysql_server_ip}', $conf['mysql']['ip'], $content); - } - wf($conf['vlogger']['config_dir'].'/'.$configfile, $content); - chmod($conf['vlogger']['config_dir'].'/'.$configfile, 0600); - chown($conf['vlogger']['config_dir'].'/'.$configfile, 'root'); - chgrp($conf['vlogger']['config_dir'].'/'.$configfile, 'root'); - - } - - public function configure_apps_vhost() { - global $conf; - - //* Create the ispconfig apps vhost user and group - if($conf['apache']['installed'] == true){ - $apps_vhost_user = escapeshellcmd($conf['web']['apps_vhost_user']); - $apps_vhost_group = escapeshellcmd($conf['web']['apps_vhost_group']); - $install_dir = escapeshellcmd($conf['web']['website_basedir'].'/apps'); - - $command = 'groupadd '.$apps_vhost_user; - if(!is_group($apps_vhost_group)) caselog($command.' &> /dev/null 2> /dev/null', __FILE__, __LINE__, "EXECUTED: $command", "Failed to execute the command $command"); - - $command = 'useradd -g '.$apps_vhost_group.' -d '.$install_dir.' '.$apps_vhost_group; - if(!is_user($apps_vhost_user)) caselog($command.' &> /dev/null 2> /dev/null', __FILE__, __LINE__, "EXECUTED: $command", "Failed to execute the command $command"); - - - //$command = 'adduser '.$conf['apache']['user'].' '.$apps_vhost_group; - $command = 'usermod -a -G '.$apps_vhost_group.' '.$conf['apache']['user']; - caselog($command.' &> /dev/null', __FILE__, __LINE__, "EXECUTED: $command", "Failed to execute the command $command"); - - if(!@is_dir($install_dir)){ - mkdir($install_dir, 0755, true); - } else { - chmod($install_dir, 0755); - } - chown($install_dir, $apps_vhost_user); - chgrp($install_dir, $apps_vhost_group); - - //* Copy the apps vhost file - $vhost_conf_dir = $conf['apache']['vhost_conf_dir']; - $vhost_conf_enabled_dir = $conf['apache']['vhost_conf_enabled_dir']; - $apps_vhost_servername = ($conf['web']['apps_vhost_servername'] == '')?'':'ServerName '.$conf['web']['apps_vhost_servername']; - - //* Get the apps vhost port - if($this->is_update == true) { - $conf['web']['apps_vhost_port'] = get_apps_vhost_port_number(); - } - - // Dont just copy over the virtualhost template but add some custom settings - $tpl = new tpl('apache_apps.vhost.master'); - $tpl->setVar('apps_vhost_ip',$conf['web']['apps_vhost_ip']); - $tpl->setVar('apps_vhost_port',$conf['web']['apps_vhost_port']); - $tpl->setVar('apps_vhost_dir',$conf['web']['website_basedir'].'/apps'); - $tpl->setVar('apps_vhost_basedir',$conf['web']['website_basedir']); - $tpl->setVar('apps_vhost_servername',$apps_vhost_servername); - $tpl->setVar('apache_version',getapacheversion()); - if($this->is_update == true) { - $tpl->setVar('logging',get_logging_state()); - } else { - $tpl->setVar('logging','yes'); - } - - - // comment out the listen directive if port is 80 or 443 - if($conf['web']['apps_vhost_ip'] == 80 or $conf['web']['apps_vhost_ip'] == 443) { - $tpl->setVar('vhost_port_listen','#'); - } else { - $tpl->setVar('vhost_port_listen',''); - } - - wf($vhost_conf_dir.'/apps.vhost', $tpl->grab()); - unset($tpl); - - //copy('tpl/apache_ispconfig.vhost.master', "$vhost_conf_dir/ispconfig.vhost"); - //* and create the symlink - if(@is_link($vhost_conf_enabled_dir.'/apps.vhost')) unlink($vhost_conf_enabled_dir.'/apps.vhost'); - if(!@is_link($vhost_conf_enabled_dir.'/000-apps.vhost') && @is_file($vhost_conf_dir.'/apps.vhost')) { - @symlink($vhost_conf_dir.'/apps.vhost', $vhost_conf_enabled_dir.'/000-apps.vhost'); - } - - if(!is_file($conf['web']['website_basedir'].'/php-fcgi-scripts/apps/.php-fcgi-starter')) { - $content = rfsel($conf['ispconfig_install_dir'].'/server/conf-custom/install/apache_apps_fcgi_starter.master', 'tpl/apache_apps_fcgi_starter.master'); - $content = str_replace('{fastcgi_bin}', $conf['fastcgi']['fastcgi_bin'], $content); - $content = str_replace('{fastcgi_phpini_path}', $conf['fastcgi']['fastcgi_phpini_path'], $content); - mkdir($conf['web']['website_basedir'].'/php-fcgi-scripts/apps', 0755, true); - //copy('tpl/apache_apps_fcgi_starter.master',$conf['web']['website_basedir'].'/php-fcgi-scripts/apps/.php-fcgi-starter'); - wf($conf['web']['website_basedir'].'/php-fcgi-scripts/apps/.php-fcgi-starter', $content); - exec('chmod +x '.$conf['web']['website_basedir'].'/php-fcgi-scripts/apps/.php-fcgi-starter'); - exec('chown -R ispapps:ispapps '.$conf['web']['website_basedir'].'/php-fcgi-scripts/apps'); - - } - } - if($conf['nginx']['installed'] == true){ - $apps_vhost_user = escapeshellcmd($conf['web']['apps_vhost_user']); - $apps_vhost_group = escapeshellcmd($conf['web']['apps_vhost_group']); - $install_dir = escapeshellcmd($conf['web']['website_basedir'].'/apps'); - - $command = 'groupadd '.$apps_vhost_user; - if(!is_group($apps_vhost_group)) caselog($command.' &> /dev/null 2> /dev/null', __FILE__, __LINE__, "EXECUTED: $command", "Failed to execute the command $command"); - - $command = 'useradd -g '.$apps_vhost_group.' -d '.$install_dir.' '.$apps_vhost_group; - if(!is_user($apps_vhost_user)) caselog($command.' &> /dev/null 2> /dev/null', __FILE__, __LINE__, "EXECUTED: $command", "Failed to execute the command $command"); - - - //$command = 'adduser '.$conf['nginx']['user'].' '.$apps_vhost_group; - $command = 'usermod -a -G '.$apps_vhost_group.' '.$conf['nginx']['user']; - caselog($command.' &> /dev/null', __FILE__, __LINE__, "EXECUTED: $command", "Failed to execute the command $command"); - - if(!@is_dir($install_dir)){ - mkdir($install_dir, 0755, true); - } else { - chmod($install_dir, 0755); - } - chown($install_dir, $apps_vhost_user); - chgrp($install_dir, $apps_vhost_group); - - //* Copy the apps vhost file - $vhost_conf_dir = $conf['nginx']['vhost_conf_dir']; - $vhost_conf_enabled_dir = $conf['nginx']['vhost_conf_enabled_dir']; - $apps_vhost_servername = ($conf['web']['apps_vhost_servername'] == '')?'_':$conf['web']['apps_vhost_servername']; - - // Dont just copy over the virtualhost template but add some custom settings - $content = rfsel($conf['ispconfig_install_dir'].'/server/conf-custom/install/nginx_apps.vhost.master', 'tpl/nginx_apps.vhost.master'); - - if($conf['web']['apps_vhost_ip'] == '_default_'){ - $apps_vhost_ip = ''; - } else { - $apps_vhost_ip = $conf['web']['apps_vhost_ip'].':'; - } - - $socket_dir = escapeshellcmd($conf['nginx']['php_fpm_socket_dir']); - if(substr($socket_dir, -1) != '/') $socket_dir .= '/'; - if(!is_dir($socket_dir)) exec('mkdir -p '.$socket_dir); - $fpm_socket = $socket_dir.'apps.sock'; - $cgi_socket = escapeshellcmd($conf['nginx']['cgi_socket']); - - $content = str_replace('{apps_vhost_ip}', $apps_vhost_ip, $content); - $content = str_replace('{apps_vhost_port}', $conf['web']['apps_vhost_port'], $content); - $content = str_replace('{apps_vhost_dir}', $conf['web']['website_basedir'].'/apps', $content); - $content = str_replace('{apps_vhost_servername}', $apps_vhost_servername, $content); - //$content = str_replace('{fpm_port}', ($conf['nginx']['php_fpm_start_port']+1), $content); - $content = str_replace('{fpm_socket}', $fpm_socket, $content); - $content = str_replace('{cgi_socket}', $cgi_socket, $content); - - if( file_exists('/var/run/php5-fpm.sock') - || file_exists('/var/run/php/php7.0-fpm.sock') - || file_exists('/var/run/php/php7.1-fpm.sock') - || file_exists('/var/run/php/php7.2-fpm.sock') - || file_exists('/var/run/php/php7.3-fpm.sock') - ){ - $use_tcp = '#'; - $use_socket = ''; - } else { - $use_tcp = ''; - $use_socket = '#'; - } - $content = str_replace('{use_tcp}', $use_tcp, $content); - $content = str_replace('{use_socket}', $use_socket, $content); - - // SSL in apps vhost is off by default. Might change later. - $content = str_replace('{ssl_on}', '', $content); - $content = str_replace('{ssl_comment}', '#', $content); - - // Fix socket path on PHP 7 systems - if(file_exists('/var/run/php/php7.0-fpm.sock')) $content = str_replace('/var/run/php5-fpm.sock', '/var/run/php/php7.0-fpm.sock', $content); - if(file_exists('/var/run/php/php7.1-fpm.sock')) $content = str_replace('/var/run/php5-fpm.sock', '/var/run/php/php7.1-fpm.sock', $content); - if(file_exists('/var/run/php/php7.2-fpm.sock')) $content = str_replace('/var/run/php5-fpm.sock', '/var/run/php/php7.2-fpm.sock', $content); - - wf($vhost_conf_dir.'/apps.vhost', $content); - - // PHP-FPM - // Dont just copy over the php-fpm pool template but add some custom settings - $content = rfsel($conf['ispconfig_install_dir'].'/server/conf-custom/install/apps_php_fpm_pool.conf.master', 'tpl/apps_php_fpm_pool.conf.master'); - $content = str_replace('{fpm_pool}', 'apps', $content); - //$content = str_replace('{fpm_port}', ($conf['nginx']['php_fpm_start_port']+1), $content); - $content = str_replace('{fpm_socket}', $fpm_socket, $content); - $content = str_replace('{fpm_user}', $apps_vhost_user, $content); - $content = str_replace('{fpm_group}', $apps_vhost_group, $content); - wf($conf['nginx']['php_fpm_pool_dir'].'/apps.conf', $content); - - //copy('tpl/nginx_ispconfig.vhost.master', "$vhost_conf_dir/ispconfig.vhost"); - //* and create the symlink - if(@is_link($vhost_conf_enabled_dir.'/apps.vhost')) unlink($vhost_conf_enabled_dir.'/apps.vhost'); - if(!@is_link($vhost_conf_enabled_dir.'/000-apps.vhost')) { - symlink($vhost_conf_dir.'/apps.vhost', $vhost_conf_enabled_dir.'/000-apps.vhost'); - } - - } - } - - public function make_ispconfig_ssl_cert() { - global $conf,$autoinstall; - - $install_dir = $conf['ispconfig_install_dir']; - - $ssl_crt_file = $install_dir.'/interface/ssl/ispserver.crt'; - $ssl_csr_file = $install_dir.'/interface/ssl/ispserver.csr'; - $ssl_key_file = $install_dir.'/interface/ssl/ispserver.key'; - - if(!@is_dir($install_dir.'/interface/ssl')) mkdir($install_dir.'/interface/ssl', 0755, true); - - $ssl_pw = substr(md5(mt_rand()), 0, 6); - exec("openssl genrsa -des3 -passout pass:$ssl_pw -out $ssl_key_file 4096"); - if(AUTOINSTALL){ - exec("openssl req -new -passin pass:$ssl_pw -passout pass:$ssl_pw -subj '/C=".escapeshellcmd($autoinstall['ssl_cert_country'])."/ST=".escapeshellcmd($autoinstall['ssl_cert_state'])."/L=".escapeshellcmd($autoinstall['ssl_cert_locality'])."/O=".escapeshellcmd($autoinstall['ssl_cert_organisation'])."/OU=".escapeshellcmd($autoinstall['ssl_cert_organisation_unit'])."/CN=".escapeshellcmd($autoinstall['ssl_cert_common_name'])."' -key $ssl_key_file -out $ssl_csr_file"); - } else { - exec("openssl req -new -passin pass:$ssl_pw -passout pass:$ssl_pw -key $ssl_key_file -out $ssl_csr_file"); - } - exec("openssl req -x509 -passin pass:$ssl_pw -passout pass:$ssl_pw -key $ssl_key_file -in $ssl_csr_file -out $ssl_crt_file -days 3650"); - exec("openssl rsa -passin pass:$ssl_pw -in $ssl_key_file -out $ssl_key_file.insecure"); - rename($ssl_key_file, $ssl_key_file.'.secure'); - rename($ssl_key_file.'.insecure', $ssl_key_file); - - exec('chown -R root:root /usr/local/ispconfig/interface/ssl'); - - } - - public function install_ispconfig() { - global $conf; - - $install_dir = $conf['ispconfig_install_dir']; - - //* Create the ISPConfig installation directory - if(!@is_dir($install_dir)) { - $command = "mkdir $install_dir"; - caselog($command.' &> /dev/null', __FILE__, __LINE__, "EXECUTED: $command", "Failed to execute the command $command"); - } - - //* Create a ISPConfig user and group - $command = 'groupadd ispconfig'; - if(!is_group('ispconfig')) caselog($command.' &> /dev/null 2> /dev/null', __FILE__, __LINE__, "EXECUTED: $command", "Failed to execute the command $command"); - - $command = 'useradd -g ispconfig -d '.$install_dir.' ispconfig'; - if(!is_user('ispconfig')) caselog($command.' &> /dev/null 2> /dev/null', __FILE__, __LINE__, "EXECUTED: $command", "Failed to execute the command $command"); - - //* copy the ISPConfig interface part - $command = 'cp -rf ../interface '.$install_dir; - caselog($command.' &> /dev/null', __FILE__, __LINE__, "EXECUTED: $command", "Failed to execute the command $command"); - - //* copy the ISPConfig server part - $command = 'cp -rf ../server '.$install_dir; - caselog($command.' &> /dev/null', __FILE__, __LINE__, "EXECUTED: $command", "Failed to execute the command $command"); - - //* Make a backup of the security settings - if(is_file('/usr/local/ispconfig/security/security_settings.ini')) copy('/usr/local/ispconfig/security/security_settings.ini','/usr/local/ispconfig/security/security_settings.ini~'); - - //* copy the ISPConfig security part - $command = 'cp -rf ../security '.$install_dir; - caselog($command.' &> /dev/null', __FILE__, __LINE__, "EXECUTED: $command", "Failed to execute the command $command"); - - //* Apply changed security_settings.ini values to new security_settings.ini file - if(is_file('/usr/local/ispconfig/security/security_settings.ini~')) { - $security_settings_old = ini_to_array(file_get_contents('/usr/local/ispconfig/security/security_settings.ini~')); - $security_settings_new = ini_to_array(file_get_contents('/usr/local/ispconfig/security/security_settings.ini')); - if(is_array($security_settings_new) && is_array($security_settings_old)) { - foreach($security_settings_new as $section => $sval) { - if(is_array($sval)) { - foreach($sval as $key => $val) { - if(isset($security_settings_old[$section]) && isset($security_settings_old[$section][$key])) { - $security_settings_new[$section][$key] = $security_settings_old[$section][$key]; - } - } - } - } - file_put_contents('/usr/local/ispconfig/security/security_settings.ini',array_to_ini($security_settings_new)); - } - } - - //* Create a symlink, so ISPConfig is accessible via web - // Replaced by a separate vhost definition for port 8080 - // $command = "ln -s $install_dir/interface/web/ /var/www/ispconfig"; - // caselog($command.' &> /dev/null', __FILE__, __LINE__, "EXECUTED: $command", "Failed to execute the command $command"); - - //* Create the config file for ISPConfig interface - $configfile = 'config.inc.php'; - if(is_file($install_dir.'/interface/lib/'.$configfile)) { - copy($install_dir.'/interface/lib/'.$configfile, $install_dir.'/interface/lib/'.$configfile.'~'); - } - $content = rfsel($conf['ispconfig_install_dir'].'/server/conf-custom/install/'.$configfile.'.master', 'tpl/'.$configfile.'.master'); - $content = str_replace('{mysql_server_ispconfig_user}', $conf['mysql']['ispconfig_user'], $content); - $content = str_replace('{mysql_server_ispconfig_password}', $conf['mysql']['ispconfig_password'], $content); - $content = str_replace('{mysql_server_database}', $conf['mysql']['database'], $content); - $content = str_replace('{mysql_server_host}', $conf['mysql']['host'], $content); - $content = str_replace('{mysql_server_port}', $conf['mysql']['port'], $content); - - $content = str_replace('{mysql_master_server_ispconfig_user}', $conf['mysql']['master_ispconfig_user'], $content); - $content = str_replace('{mysql_master_server_ispconfig_password}', $conf['mysql']['master_ispconfig_password'], $content); - $content = str_replace('{mysql_master_server_database}', $conf['mysql']['master_database'], $content); - $content = str_replace('{mysql_master_server_host}', $conf['mysql']['master_host'], $content); - $content = str_replace('{mysql_master_server_port}', $conf['mysql']['master_port'], $content); - - $content = str_replace('{server_id}', $conf['server_id'], $content); - $content = str_replace('{ispconfig_log_priority}', $conf['ispconfig_log_priority'], $content); - $content = str_replace('{language}', $conf['language'], $content); - $content = str_replace('{timezone}', $conf['timezone'], $content); - $content = str_replace('{theme}', $conf['theme'], $content); - $content = str_replace('{language_file_import_enabled}', ($conf['language_file_import_enabled'] == true)?'true':'false', $content); - - wf($install_dir.'/interface/lib/'.$configfile, $content); - - //* Create the config file for ISPConfig server - $configfile = 'config.inc.php'; - if(is_file($install_dir.'/server/lib/'.$configfile)) { - copy($install_dir.'/server/lib/'.$configfile, $install_dir.'/interface/lib/'.$configfile.'~'); - } - $content = rfsel($conf['ispconfig_install_dir'].'/server/conf-custom/install/'.$configfile.'.master', 'tpl/'.$configfile.'.master'); - $content = str_replace('{mysql_server_ispconfig_user}', $conf['mysql']['ispconfig_user'], $content); - $content = str_replace('{mysql_server_ispconfig_password}', $conf['mysql']['ispconfig_password'], $content); - $content = str_replace('{mysql_server_database}', $conf['mysql']['database'], $content); - $content = str_replace('{mysql_server_host}', $conf['mysql']['host'], $content); - $content = str_replace('{mysql_server_port}', $conf['mysql']['port'], $content); - - $content = str_replace('{mysql_master_server_ispconfig_user}', $conf['mysql']['master_ispconfig_user'], $content); - $content = str_replace('{mysql_master_server_ispconfig_password}', $conf['mysql']['master_ispconfig_password'], $content); - $content = str_replace('{mysql_master_server_database}', $conf['mysql']['master_database'], $content); - $content = str_replace('{mysql_master_server_host}', $conf['mysql']['master_host'], $content); - $content = str_replace('{mysql_master_server_port}', $conf['mysql']['master_port'], $content); - - $content = str_replace('{server_id}', $conf['server_id'], $content); - $content = str_replace('{ispconfig_log_priority}', $conf['ispconfig_log_priority'], $content); - $content = str_replace('{language}', $conf['language'], $content); - $content = str_replace('{timezone}', $conf['timezone'], $content); - $content = str_replace('{theme}', $conf['theme'], $content); - $content = str_replace('{language_file_import_enabled}', ($conf['language_file_import_enabled'] == true)?'true':'false', $content); - - wf($install_dir.'/server/lib/'.$configfile, $content); - - //* Create the config file for remote-actions (but only, if it does not exist, because - // the value is a autoinc-value and so changed by the remoteaction_core_module - if (!file_exists($install_dir.'/server/lib/remote_action.inc.php')) { - $content = ''; - wf($install_dir.'/server/lib/remote_action.inc.php', $content); - } - - //* Enable the server modules and plugins. - // TODO: Implement a selector which modules and plugins shall be enabled. - $dir = $install_dir.'/server/mods-available/'; - if (is_dir($dir)) { - if ($dh = opendir($dir)) { - while (($file = readdir($dh)) !== false) { - if($file != '.' && $file != '..' && substr($file, -8, 8) == '.inc.php') { - include_once $install_dir.'/server/mods-available/'.$file; - $module_name = substr($file, 0, -8); - $tmp = new $module_name; - if($tmp->onInstall()) { - if(!@is_link($install_dir.'/server/mods-enabled/'.$file)) { - @symlink($install_dir.'/server/mods-available/'.$file, $install_dir.'/server/mods-enabled/'.$file); - // @symlink($install_dir.'/server/mods-available/'.$file, '../mods-enabled/'.$file); - } - if (strpos($file, '_core_module') !== false) { - if(!@is_link($install_dir.'/server/mods-core/'.$file)) { - @symlink($install_dir.'/server/mods-available/'.$file, $install_dir.'/server/mods-core/'.$file); - // @symlink($install_dir.'/server/mods-available/'.$file, '../mods-core/'.$file); - } - } - } - unset($tmp); - } - } - closedir($dh); - } - } - - $dir = $install_dir.'/server/plugins-available/'; - if (is_dir($dir)) { - if ($dh = opendir($dir)) { - while (($file = readdir($dh)) !== false) { - if($conf['apache']['installed'] == true && $file == 'nginx_plugin.inc.php') continue; - if($conf['nginx']['installed'] == true && $file == 'apache2_plugin.inc.php') continue; - if($file != '.' && $file != '..' && substr($file, -8, 8) == '.inc.php') { - include_once $install_dir.'/server/plugins-available/'.$file; - $plugin_name = substr($file, 0, -8); - $tmp = new $plugin_name; - if(method_exists($tmp, 'onInstall') && $tmp->onInstall()) { - if(!@is_link($install_dir.'/server/plugins-enabled/'.$file)) { - @symlink($install_dir.'/server/plugins-available/'.$file, $install_dir.'/server/plugins-enabled/'.$file); - //@symlink($install_dir.'/server/plugins-available/'.$file, '../plugins-enabled/'.$file); - } - if (strpos($file, '_core_plugin') !== false) { - if(!@is_link($install_dir.'/server/plugins-core/'.$file)) { - @symlink($install_dir.'/server/plugins-available/'.$file, $install_dir.'/server/plugins-core/'.$file); - //@symlink($install_dir.'/server/plugins-available/'.$file, '../plugins-core/'.$file); - } - } - } - unset($tmp); - } - } - closedir($dh); - } - } - - // Update the server config - $mail_server_enabled = ($conf['services']['mail'])?1:0; - $web_server_enabled = ($conf['services']['web'])?1:0; - $dns_server_enabled = ($conf['services']['dns'])?1:0; - $file_server_enabled = ($conf['services']['file'])?1:0; - $db_server_enabled = ($conf['services']['db'])?1:0; - $vserver_server_enabled = ($conf['openvz']['installed'])?1:0; - $proxy_server_enabled = ($conf['services']['proxy'])?1:0; - $firewall_server_enabled = ($conf['services']['firewall'])?1:0; - $xmpp_server_enabled = ($conf['services']['xmpp'])?1:0; - - $sql = "UPDATE `server` SET mail_server = '$mail_server_enabled', web_server = '$web_server_enabled', dns_server = '$dns_server_enabled', file_server = '$file_server_enabled', db_server = '$db_server_enabled', vserver_server = '$vserver_server_enabled', proxy_server = '$proxy_server_enabled', firewall_server = '$firewall_server_enabled', xmpp_server = '$xmpp_server_enabled' WHERE server_id = ?"; - - $this->db->query($sql, $conf['server_id']); - if($conf['mysql']['master_slave_setup'] == 'y') { - $this->dbmaster->query($sql, $conf['server_id']); - } - - - // chown install dir to root and chmod 755 - $command = 'chown root:root '.$install_dir; - caselog($command.' &> /dev/null', __FILE__, __LINE__, "EXECUTED: $command", "Failed to execute the command $command"); - $command = 'chmod 755 '.$install_dir; - caselog($command.' &> /dev/null', __FILE__, __LINE__, "EXECUTED: $command", "Failed to execute the command $command"); - - //* Chmod the files and directories in the install dir - $command = 'chmod -R 750 '.$install_dir.'/*'; - caselog($command.' &> /dev/null', __FILE__, __LINE__, "EXECUTED: $command", "Failed to execute the command $command"); - - //* chown the interface files to the ispconfig user and group - $command = 'chown -R ispconfig:ispconfig '.$install_dir.'/interface'; - caselog($command.' &> /dev/null', __FILE__, __LINE__, "EXECUTED: $command", "Failed to execute the command $command"); - - //* Chmod the files and directories in the acme dir - $command = 'chmod -R 755 '.$install_dir.'/interface/acme'; - caselog($command.' &> /dev/null', __FILE__, __LINE__, "EXECUTED: $command", "Failed to execute the command $command"); - - //* chown the server files to the root user and group - $command = 'chown -R root:root '.$install_dir.'/server'; - caselog($command.' &> /dev/null', __FILE__, __LINE__, "EXECUTED: $command", "Failed to execute the command $command"); - - //* chown the security files to the root user and group - $command = 'chown -R root:root '.$install_dir.'/security'; - caselog($command.' &> /dev/null', __FILE__, __LINE__, "EXECUTED: $command", "Failed to execute the command $command"); - - //* chown the security directory and security_settings.ini to root:ispconfig - $command = 'chown root:ispconfig '.$install_dir.'/security/security_settings.ini'; - caselog($command.' &> /dev/null', __FILE__, __LINE__, "EXECUTED: $command", "Failed to execute the command $command"); - $command = 'chown root:ispconfig '.$install_dir.'/security'; - caselog($command.' &> /dev/null', __FILE__, __LINE__, "EXECUTED: $command", "Failed to execute the command $command"); - $command = 'chown root:ispconfig '.$install_dir.'/security/ids.whitelist'; - caselog($command.' &> /dev/null', __FILE__, __LINE__, "EXECUTED: $command", "Failed to execute the command $command"); - $command = 'chown root:ispconfig '.$install_dir.'/security/ids.htmlfield'; - caselog($command.' &> /dev/null', __FILE__, __LINE__, "EXECUTED: $command", "Failed to execute the command $command"); - $command = 'chown root:ispconfig '.$install_dir.'/security/apache_directives.blacklist'; - caselog($command.' &> /dev/null', __FILE__, __LINE__, "EXECUTED: $command", "Failed to execute the command $command"); - $command = 'chown root:ispconfig '.$install_dir.'/security/nginx_directives.blacklist'; - caselog($command.' &> /dev/null', __FILE__, __LINE__, "EXECUTED: $command", "Failed to execute the command $command"); - - //* Make the global language file directory group writable - exec("chmod -R 770 $install_dir/interface/lib/lang"); - - //* Make the temp directory for language file exports writable - if(is_dir($install_dir.'/interface/web/temp')) exec("chmod -R 770 $install_dir/interface/web/temp"); - - //* Make all interface language file directories group writable - $handle = @opendir($install_dir.'/interface/web'); - while ($file = @readdir($handle)) { - if ($file != '.' && $file != '..') { - if(@is_dir($install_dir.'/interface/web'.'/'.$file.'/lib/lang')) { - $handle2 = opendir($install_dir.'/interface/web'.'/'.$file.'/lib/lang'); - chmod($install_dir.'/interface/web'.'/'.$file.'/lib/lang', 0770); - while ($lang_file = @readdir($handle2)) { - if ($lang_file != '.' && $lang_file != '..') { - chmod($install_dir.'/interface/web'.'/'.$file.'/lib/lang/'.$lang_file, 0770); - } - } - } - } - } - - //* Make the APS directories group writable - exec("chmod -R 770 $install_dir/interface/web/sites/aps_meta_packages"); - exec("chmod -R 770 $install_dir/server/aps_packages"); - - //* make sure that the server config file (not the interface one) is only readable by the root user - chmod($install_dir.'/server/lib/config.inc.php', 0600); - chown($install_dir.'/server/lib/config.inc.php', 'root'); - chgrp($install_dir.'/server/lib/config.inc.php', 'root'); - - //* Make sure thet the interface config file is readable by user ispconfig only - chmod($install_dir.'/interface/lib/config.inc.php', 0600); - chown($install_dir.'/interface/lib/config.inc.php', 'ispconfig'); - chgrp($install_dir.'/interface/lib/config.inc.php', 'ispconfig'); - - chmod($install_dir.'/server/lib/remote_action.inc.php', 0600); - chown($install_dir.'/server/lib/remote_action.inc.php', 'root'); - chgrp($install_dir.'/server/lib/remote_action.inc.php', 'root'); - - if(@is_file($install_dir.'/server/lib/mysql_clientdb.conf')) { - chmod($install_dir.'/server/lib/mysql_clientdb.conf', 0600); - chown($install_dir.'/server/lib/mysql_clientdb.conf', 'root'); - chgrp($install_dir.'/server/lib/mysql_clientdb.conf', 'root'); - } - - if(is_dir($install_dir.'/interface/invoices')) { - exec('chmod -R 770 '.escapeshellarg($install_dir.'/interface/invoices')); - exec('chown -R ispconfig:ispconfig '.escapeshellarg($install_dir.'/interface/invoices')); - } - - exec('chown -R root:root /usr/local/ispconfig/interface/ssl'); - - // TODO: FIXME: add the www-data user to the ispconfig group. This is just for testing - // and must be fixed as this will allow the apache user to read the ispconfig files. - // Later this must run as own apache server or via suexec! - if($conf['apache']['installed'] == true){ - $command = 'adduser '.$conf['apache']['user'].' ispconfig'; - caselog($command.' &> /dev/null', __FILE__, __LINE__, "EXECUTED: $command", "Failed to execute the command $command"); - if(is_group('ispapps')){ - $command = 'adduser '.$conf['apache']['user'].' ispapps'; - caselog($command.' &> /dev/null', __FILE__, __LINE__, "EXECUTED: $command", "Failed to execute the command $command"); - } - } - if($conf['nginx']['installed'] == true){ - $command = 'adduser '.$conf['nginx']['user'].' ispconfig'; - caselog($command.' &> /dev/null', __FILE__, __LINE__, "EXECUTED: $command", "Failed to execute the command $command"); - if(is_group('ispapps')){ - $command = 'adduser '.$conf['nginx']['user'].' ispapps'; - caselog($command.' &> /dev/null', __FILE__, __LINE__, "EXECUTED: $command", "Failed to execute the command $command"); - } - } - - //* Make the shell scripts executable - $command = "chmod +x $install_dir/server/scripts/*.sh"; - caselog($command.' &> /dev/null', __FILE__, __LINE__, "EXECUTED: $command", "Failed to execute the command $command"); - - if ($this->install_ispconfig_interface == true && isset($conf['interface_password']) && $conf['interface_password']!='admin') { - $sql = "UPDATE sys_user SET passwort = md5(?) WHERE username = 'admin';"; - $this->db->query($sql, $conf['interface_password']); - } - - if($conf['apache']['installed'] == true && $this->install_ispconfig_interface == true){ - //* Copy the ISPConfig vhost for the controlpanel - $vhost_conf_dir = $conf['apache']['vhost_conf_dir']; - $vhost_conf_enabled_dir = $conf['apache']['vhost_conf_enabled_dir']; - - // Dont just copy over the virtualhost template but add some custom settings - $tpl = new tpl('apache_ispconfig.vhost.master'); - $tpl->setVar('vhost_port',$conf['apache']['vhost_port']); - - // comment out the listen directive if port is 80 or 443 - if($conf['apache']['vhost_port'] == 80 or $conf['apache']['vhost_port'] == 443) { - $tpl->setVar('vhost_port_listen','#'); - } else { - $tpl->setVar('vhost_port_listen',''); - } - - if(is_file($install_dir.'/interface/ssl/ispserver.crt') && is_file($install_dir.'/interface/ssl/ispserver.key')) { - $tpl->setVar('ssl_comment',''); - } else { - $tpl->setVar('ssl_comment','#'); - } - if(is_file($install_dir.'/interface/ssl/ispserver.crt') && is_file($install_dir.'/interface/ssl/ispserver.key') && is_file($install_dir.'/interface/ssl/ispserver.bundle')) { - $tpl->setVar('ssl_bundle_comment',''); - } else { - $tpl->setVar('ssl_bundle_comment','#'); - } - - $tpl->setVar('apache_version',getapacheversion()); - - wf($vhost_conf_dir.'/ispconfig.vhost', $tpl->grab()); - - //* and create the symlink - if($this->is_update == false) { - if(@is_link($vhost_conf_enabled_dir.'/ispconfig.vhost')) unlink($vhost_conf_enabled_dir.'/ispconfig.vhost'); - if(!@is_link($vhost_conf_enabled_dir.'/000-ispconfig.vhost')) { - symlink($vhost_conf_dir.'/ispconfig.vhost', $vhost_conf_enabled_dir.'/000-ispconfig.vhost'); - } - } - //if(!is_file('/var/www/php-fcgi-scripts/ispconfig/.php-fcgi-starter')) { - $content = rfsel($conf['ispconfig_install_dir'].'/server/conf-custom/install/apache_ispconfig_fcgi_starter.master', 'tpl/apache_ispconfig_fcgi_starter.master'); - $content = str_replace('{fastcgi_bin}', $conf['fastcgi']['fastcgi_bin'], $content); - $content = str_replace('{fastcgi_phpini_path}', $conf['fastcgi']['fastcgi_phpini_path'], $content); - @mkdir('/var/www/php-fcgi-scripts/ispconfig', 0755, true); - wf('/var/www/php-fcgi-scripts/ispconfig/.php-fcgi-starter', $content); - exec('chmod +x /var/www/php-fcgi-scripts/ispconfig/.php-fcgi-starter'); - @symlink($install_dir.'/interface/web', '/var/www/ispconfig'); - exec('chown -R ispconfig:ispconfig /var/www/php-fcgi-scripts/ispconfig'); - //} - } - - if($conf['nginx']['installed'] == true && $this->install_ispconfig_interface == true){ - //* Copy the ISPConfig vhost for the controlpanel - $vhost_conf_dir = $conf['nginx']['vhost_conf_dir']; - $vhost_conf_enabled_dir = $conf['nginx']['vhost_conf_enabled_dir']; - - // Dont just copy over the virtualhost template but add some custom settings - $content = rfsel($conf['ispconfig_install_dir'].'/server/conf-custom/install/nginx_ispconfig.vhost.master', 'tpl/nginx_ispconfig.vhost.master'); - $content = str_replace('{vhost_port}', $conf['nginx']['vhost_port'], $content); - - if(is_file($install_dir.'/interface/ssl/ispserver.crt') && is_file($install_dir.'/interface/ssl/ispserver.key')) { - $content = str_replace('{ssl_on}', 'ssl', $content); - $content = str_replace('{ssl_comment}', '', $content); - $content = str_replace('{fastcgi_ssl}', 'on', $content); - } else { - $content = str_replace('{ssl_on}', '', $content); - $content = str_replace('{ssl_comment}', '#', $content); - $content = str_replace('{fastcgi_ssl}', 'off', $content); - } - - $socket_dir = escapeshellcmd($conf['nginx']['php_fpm_socket_dir']); - if(substr($socket_dir, -1) != '/') $socket_dir .= '/'; - if(!is_dir($socket_dir)) exec('mkdir -p '.$socket_dir); - $fpm_socket = $socket_dir.'ispconfig.sock'; - - //$content = str_replace('{fpm_port}', $conf['nginx']['php_fpm_start_port'], $content); - $content = str_replace('{fpm_socket}', $fpm_socket, $content); - - wf($vhost_conf_dir.'/ispconfig.vhost', $content); - - unset($content); - - // PHP-FPM - // Dont just copy over the php-fpm pool template but add some custom settings - $content = rfsel($conf['ispconfig_install_dir'].'/server/conf-custom/install/php_fpm_pool.conf.master', 'tpl/php_fpm_pool.conf.master'); - $content = str_replace('{fpm_pool}', 'ispconfig', $content); - //$content = str_replace('{fpm_port}', $conf['nginx']['php_fpm_start_port'], $content); - $content = str_replace('{fpm_socket}', $fpm_socket, $content); - $content = str_replace('{fpm_user}', 'ispconfig', $content); - $content = str_replace('{fpm_group}', 'ispconfig', $content); - wf($conf['nginx']['php_fpm_pool_dir'].'/ispconfig.conf', $content); - - //copy('tpl/nginx_ispconfig.vhost.master', $vhost_conf_dir.'/ispconfig.vhost'); - //* and create the symlink - if($this->is_update == false) { - if(@is_link($vhost_conf_enabled_dir.'/ispconfig.vhost')) unlink($vhost_conf_enabled_dir.'/ispconfig.vhost'); - if(!@is_link($vhost_conf_enabled_dir.'/000-ispconfig.vhost')) { - symlink($vhost_conf_dir.'/ispconfig.vhost', $vhost_conf_enabled_dir.'/000-ispconfig.vhost'); - } - } - } - - //* Install the update script - if(is_file('/usr/local/bin/ispconfig_update_from_dev.sh')) unlink('/usr/local/bin/ispconfig_update_from_dev.sh'); - chown($install_dir.'/server/scripts/update_from_dev.sh', 'root'); - chmod($install_dir.'/server/scripts/update_from_dev.sh', 0700); -// chown($install_dir.'/server/scripts/update_from_tgz.sh', 'root'); -// chmod($install_dir.'/server/scripts/update_from_tgz.sh', 0700); - chown($install_dir.'/server/scripts/ispconfig_update.sh', 'root'); - chmod($install_dir.'/server/scripts/ispconfig_update.sh', 0700); - if(!is_link('/usr/local/bin/ispconfig_update_from_dev.sh')) symlink($install_dir.'/server/scripts/ispconfig_update.sh', '/usr/local/bin/ispconfig_update_from_dev.sh'); - if(!is_link('/usr/local/bin/ispconfig_update.sh')) symlink($install_dir.'/server/scripts/ispconfig_update.sh', '/usr/local/bin/ispconfig_update.sh'); - - //* Make the logs readable for the ispconfig user - if(@is_file('/var/log/mail.log')) exec('chmod +r /var/log/mail.log'); - if(@is_file('/var/log/mail.warn')) exec('chmod +r /var/log/mail.warn'); - if(@is_file('/var/log/mail.err')) exec('chmod +r /var/log/mail.err'); - if(@is_file('/var/log/messages')) exec('chmod +r /var/log/messages'); - if(@is_file('/var/log/clamav/clamav.log')) exec('chmod +r /var/log/clamav/clamav.log'); - if(@is_file('/var/log/clamav/freshclam.log')) exec('chmod +r /var/log/clamav/freshclam.log'); - - //* Create the ispconfig log file and directory - if(!is_file($conf['ispconfig_log_dir'].'/ispconfig.log')) { - if(!is_dir($conf['ispconfig_log_dir'])) mkdir($conf['ispconfig_log_dir'], 0755); - touch($conf['ispconfig_log_dir'].'/ispconfig.log'); - } - - //* Create the ispconfig auth log file and set uid/gid - if(!is_file($conf['ispconfig_log_dir'].'/auth.log')) { - touch($conf['ispconfig_log_dir'].'/auth.log'); - } - exec('chown ispconfig:ispconfig '. $conf['ispconfig_log_dir'].'/auth.log'); - exec('chmod 660 '. $conf['ispconfig_log_dir'].'/auth.log'); - - if(is_user('getmail')) { - rename($install_dir.'/server/scripts/run-getmail.sh', '/usr/local/bin/run-getmail.sh'); - if(is_user('getmail')) chown('/usr/local/bin/run-getmail.sh', 'getmail'); - chmod('/usr/local/bin/run-getmail.sh', 0744); - } - - //* Add Log-Rotation - if (is_dir('/etc/logrotate.d')) { - @unlink('/etc/logrotate.d/logispc3'); // ignore, if the file is not there - /* We rotate these logs in cron_daily.php - $fh = fopen('/etc/logrotate.d/logispc3', 'w'); - fwrite($fh, - "$conf['ispconfig_log_dir']/ispconfig.log { \n" . - " weekly \n" . - " missingok \n" . - " rotate 4 \n" . - " compress \n" . - " delaycompress \n" . - "} \n" . - "$conf['ispconfig_log_dir']/cron.log { \n" . - " weekly \n" . - " missingok \n" . - " rotate 4 \n" . - " compress \n" . - " delaycompress \n" . - "}"); - fclose($fh); - */ - } - - //* Remove Domain module as its functions are available in the client module now - if(@is_dir('/usr/local/ispconfig/interface/web/domain')) exec('rm -rf /usr/local/ispconfig/interface/web/domain'); - - //* Disable rkhunter run and update in debian cronjob as ispconfig is running and updating rkhunter - if(is_file('/etc/default/rkhunter')) { - replaceLine('/etc/default/rkhunter', 'CRON_DAILY_RUN="yes"', 'CRON_DAILY_RUN="no"', 1, 0); - replaceLine('/etc/default/rkhunter', 'CRON_DB_UPDATE="yes"', 'CRON_DB_UPDATE="no"', 1, 0); - } - - // Add symlink for patch tool - if(!is_link('/usr/local/bin/ispconfig_patch')) exec('ln -s /usr/local/ispconfig/server/scripts/ispconfig_patch /usr/local/bin/ispconfig_patch'); - - // Change mode of a few files from amavisd - if(is_file($conf['amavis']['config_dir'].'/conf.d/50-user')) chmod($conf['amavis']['config_dir'].'/conf.d/50-user', 0640); - if(is_file($conf['amavis']['config_dir'].'/50-user~')) chmod($conf['amavis']['config_dir'].'/50-user~', 0400); - if(is_file($conf['amavis']['config_dir'].'/amavisd.conf')) chmod($conf['amavis']['config_dir'].'/amavisd.conf', 0640); - if(is_file($conf['amavis']['config_dir'].'/amavisd.conf~')) chmod($conf['amavis']['config_dir'].'/amavisd.conf~', 0400); - } - - public function configure_dbserver() { - global $conf; - - //* If this server shall act as database server for client DB's, we configure this here - $install_dir = $conf['ispconfig_install_dir']; - - // Create a file with the database login details which - // are used to create the client databases. - - if(!is_dir($install_dir.'/server/lib')) { - $command = "mkdir $install_dir/server/lib"; - caselog($command.' &> /dev/null', __FILE__, __LINE__, "EXECUTED: $command", "Failed to execute the command $command"); - } - - $content = rfsel($conf['ispconfig_install_dir'].'/server/conf-custom/install/mysql_clientdb.conf.master', 'tpl/mysql_clientdb.conf.master'); - $content = str_replace('{hostname}', $conf['mysql']['host'], $content); - $content = str_replace('{username}', $conf['mysql']['admin_user'], $content); - $content = str_replace('{password}', addslashes($conf['mysql']['admin_password']), $content); - wf($install_dir.'/server/lib/mysql_clientdb.conf', $content); - chmod($install_dir.'/server/lib/mysql_clientdb.conf', 0600); - chown($install_dir.'/server/lib/mysql_clientdb.conf', 'root'); - chgrp($install_dir.'/server/lib/mysql_clientdb.conf', 'root'); - - } - - public function install_crontab() { - global $conf; - - $install_dir = $conf['ispconfig_install_dir']; - - //* Root Crontab - exec('crontab -u root -l > crontab.txt'); - $existing_root_cron_jobs = file('crontab.txt'); - - // remove existing ispconfig cronjobs, in case the syntax has changed - foreach($existing_root_cron_jobs as $key => $val) { - if(stristr($val, $install_dir)) unset($existing_root_cron_jobs[$key]); - } - - $root_cron_jobs = array( - "* * * * * ".$install_dir."/server/server.sh 2>&1 | while read line; do echo `/bin/date` \"\$line\" >> ".$conf['ispconfig_log_dir']."/cron.log; done", - "* * * * * ".$install_dir."/server/cron.sh 2>&1 | while read line; do echo `/bin/date` \"\$line\" >> ".$conf['ispconfig_log_dir']."/cron.log; done" - ); - - if ($conf['nginx']['installed'] == true) { - $root_cron_jobs[] = "0 0 * * * ".$install_dir."/server/scripts/create_daily_nginx_access_logs.sh &> /dev/null"; - } - - foreach($root_cron_jobs as $cron_job) { - if(!in_array($cron_job."\n", $existing_root_cron_jobs)) { - $existing_root_cron_jobs[] = $cron_job."\n"; - } - } - file_put_contents('crontab.txt', $existing_root_cron_jobs); - exec('crontab -u root crontab.txt &> /dev/null'); - unlink('crontab.txt'); - - //* Getmail crontab - if(is_user('getmail')) { - $cf = $conf['getmail']; - exec('crontab -u getmail -l > crontab.txt'); - $existing_cron_jobs = file('crontab.txt'); - - $cron_jobs = array( - '*/5 * * * * /usr/local/bin/run-getmail.sh > /dev/null 2>> /dev/null' - ); - - // remove existing ispconfig cronjobs, in case the syntax has changed - foreach($existing_cron_jobs as $key => $val) { - if(stristr($val, 'getmail')) unset($existing_cron_jobs[$key]); - } - - foreach($cron_jobs as $cron_job) { - if(!in_array($cron_job."\n", $existing_cron_jobs)) { - $existing_cron_jobs[] = $cron_job."\n"; - } - } - file_put_contents('crontab.txt', $existing_cron_jobs); - exec('crontab -u getmail crontab.txt &> /dev/null'); - unlink('crontab.txt'); - } - - touch($conf['ispconfig_log_dir'].'/cron.log'); - chmod($conf['ispconfig_log_dir'].'/cron.log', 0660); - - } - - public function create_mount_script(){ - global $app, $conf; - $mount_script = '/usr/local/ispconfig/server/scripts/backup_dir_mount.sh'; - $mount_command = ''; - - if(is_file($mount_script)) return; - if(is_file('/etc/rc.local')){ - $rc_local = file('/etc/rc.local'); - if(is_array($rc_local) && !empty($rc_local)){ - foreach($rc_local as $line){ - $line = trim($line); - if(substr($line, 0, 1) == '#') continue; - if(strpos($line, 'sshfs') !== false && strpos($line, '/var/backup') !== false){ - $mount_command = "#!/bin/sh\n\n"; - $mount_command .= $line."\n\n"; - file_put_contents($mount_script, $mount_command); - chmod($mount_script, 0755); - chown($mount_script, 'root'); - chgrp($mount_script, 'root'); - break; - } - } - } - } - } - - // This function is called at the end of the update process and contains code to clean up parts of old ISPCONfig releases - public function cleanup_ispconfig() { - global $app,$conf; - - // Remove directories recursively - if(is_dir('/usr/local/ispconfig/interface/web/designer')) exec('rm -rf /usr/local/ispconfig/interface/web/designer'); - if(is_dir('/usr/local/ispconfig/interface/web/themes/default-304')) exec('rm -rf /usr/local/ispconfig/interface/web/themes/default-304'); - - // Remove files - if(is_file('/usr/local/ispconfig/interface/lib/classes/db_firebird.inc.php')) unlink('/usr/local/ispconfig/interface/lib/classes/db_firebird.inc.php'); - if(is_file('/usr/local/ispconfig/interface/lib/classes/form.inc.php')) unlink('/usr/local/ispconfig/interface/lib/classes/form.inc.php'); - - // Change mode of a few files from amavisd - if(is_file($conf['amavis']['config_dir'].'/conf.d/50-user')) chmod($conf['amavis']['config_dir'].'/conf.d/50-user', 0640); - if(is_file($conf['amavis']['config_dir'].'/50-user~')) chmod($conf['amavis']['config_dir'].'/50-user~', 0400); - if(is_file($conf['amavis']['config_dir'].'/amavisd.conf')) chmod($conf['amavis']['config_dir'].'/amavisd.conf', 0640); - if(is_file($conf['amavis']['config_dir'].'/amavisd.conf~')) chmod($conf['amavis']['config_dir'].'/amavisd.conf~', 0400); - - } - - public function getinitcommand($servicename, $action, $init_script_directory = ''){ - global $conf; - // upstart - if(is_executable('/sbin/initctl')){ - exec('/sbin/initctl version 2>/dev/null | /bin/grep -q upstart', $retval['output'], $retval['retval']); - if(intval($retval['retval']) == 0) return 'service '.$servicename.' '.$action; - } - // systemd - if(is_executable('/bin/systemd') || is_executable('/usr/bin/systemctl')){ - return 'systemctl '.$action.' '.$servicename.'.service'; - } - // sysvinit - if($init_script_directory == '') $init_script_directory = $conf['init_scripts']; - if(substr($init_script_directory, -1) === '/') $init_script_directory = substr($init_script_directory, 0, -1); - return $init_script_directory.'/'.$servicename.' '.$action; - } - - /** - * Helper function - get the path to a template file based on - * the local part of the filename. Checks first for the existence - * of a distribution specific file and if not found looks in the - * base template folder. Optionally the behaviour can be changed - * by setting the 2nd parameter which will fetch the contents - * of the template file and return it instead of the path. The 3rd - * parameter further extends this behaviour by filtering the contents - * by inserting the ispconfig database credentials using the {} placeholders. - * - * @param string $tLocal local part of filename - * @param bool $tRf - * @param bool $tDBCred - * @return string Relative path to the chosen template file - */ - protected function get_template_file($tLocal, $tRf=false, $tDBCred=false) { - global $conf, $dist; - - $final_path = ''; - $dist_template = $conf['ispconfig_install_dir'] . '/server/conf-custom/install/' . $tLocal . '.master'; - if (file_exists($dist_template)) { - $final_path = $dist_template; - } else { - $dist_template = 'dist/tpl/'.strtolower($dist['name'])."/$tLocal.master"; - if (file_exists($dist_template)) { - $final_path = $dist_template; - } else { - $final_path = "tpl/$tLocal.master"; - } - } - - if (!$tRf) { - return $final_path; - } else { - return (!$tDBCred) ? rf($final_path) : $this->insert_db_credentials(rf($final_path)); - } - } - - /** - * Helper function - writes the contents to a config file - * and performs a backup if the file exist. Additionally - * if the file exists the new file will be given the - * same rights and ownership as the original. Optionally the - * rights and/or ownership can be overriden by appending umask, - * user and group to the parameters. Providing only uid and gid - * values will result in only a chown. - * - * @param $tConf - * @param $tContents - * @return bool - */ - protected function write_config_file($tConf, $tContents) { - // Backup config file before writing new contents and stat file - if ( is_file($tConf) ) { - $stat = exec('stat -c \'%a %U %G\' '.escapeshellarg($tConf), $output, $res); - if ($res == 0) { // stat successfull - list($access, $user, $group) = explode(" ", $stat); - } - - if ( copy($tConf, $tConf.'~') ) { - chmod($tConf.'~', 0400); - } - } - - wf($tConf, $tContents); // write file - - if (func_num_args() >= 4) // override rights and/or ownership - { - $args = func_get_args(); - $output = array_slice($args, 2); - - switch (sizeof($output)) { - case 3: - $umask = array_shift($output); - if (is_numeric($umask) && preg_match('/^0?[0-7]{3}$/', $umask)) { - $access = $umask; - } - case 2: - if (is_user($output[0]) && is_group($output[1])) { - list($user, $group) = $output; - } - break; - } - } - - if (!empty($user) && !empty($group)) { - chown($tConf, $user); - chgrp($tConf, $group); - } - - if (!empty($access)) { - exec("chmod $access $tConf"); - } - } - - /** - * Helper function - filter the contents of a config - * file by inserting the common ispconfig database - * credentials. - * - * @param $tContents - * @return string - */ - protected function insert_db_credentials($tContents) { - global $conf; - - $tContents = str_replace('{mysql_server_ispconfig_user}', $conf["mysql"]["ispconfig_user"], $tContents); - $tContents = str_replace('{mysql_server_ispconfig_password}', $conf["mysql"]["ispconfig_password"], $tContents); - $tContents = str_replace('{mysql_server_database}', $conf["mysql"]["database"], $tContents); - $tContents = str_replace('{mysql_server_ip}', $conf["mysql"]["ip"], $tContents); - $tContents = str_replace('{mysql_server_host}', $conf['mysql']['host'], $tContents); - $tContents = str_replace('{mysql_server_port}', $conf['mysql']['port'], $tContents); - $tContents = str_replace('{mysql_server_port}', $conf["mysql"]["port"], $tContents); - - return $tContents; - } - -} - -?> diff --git a/install/sql/incremental/upd_dev_collection.sql.orig b/install/sql/incremental/upd_dev_collection.sql.orig deleted file mode 100644 index e69de29bb..000000000 diff --git a/install/sql/incremental/upd_dev_collection.sql.rej b/install/sql/incremental/upd_dev_collection.sql.rej deleted file mode 100644 index 4c57d840a..000000000 --- a/install/sql/incremental/upd_dev_collection.sql.rej +++ /dev/null @@ -1,40 +0,0 @@ ---- install/sql/incremental/upd_dev_collection.sql -+++ install/sql/incremental/upd_dev_collection.sql -@@ -80,4 +80,37 @@ INSERT IGNORE INTO `dns_ssl_ca` (`id`, `sys_userid`, `sys_groupid`, `sys_perm_us - - ALTER TABLE `dns_soa` CHANGE `xfer` `xfer` TEXT NULL; - ALTER TABLE `dns_soa` CHANGE `also_notify` `also_notify` TEXT NULL; --ALTER TABLE `dns_slave` CHANGE `xfer` `xfer` TEXT NULL;+ALTER TABLE `dns_slave` CHANGE `xfer` `xfer` TEXT NULL; -+ -+-- rspamd -+ALTER TABLE `spamfilter_policy` ADD `rspamd_greylisting` ENUM('n','y') CHARACTER SET utf8 COLLATE utf8_general_ci NOT NULL DEFAULT 'n' AFTER `policyd_greylist`; -+ALTER TABLE `spamfilter_policy` ADD `rspamd_spam_greylisting_level` DECIMAL(5,2) NULL DEFAULT NULL AFTER `rspamd_greylisting`; -+ALTER TABLE `spamfilter_policy` ADD `rspamd_spam_tag_level` DECIMAL(5,2) NULL DEFAULT NULL AFTER `rspamd_spam_greylisting_level`; -+ALTER TABLE `spamfilter_policy` ADD `rspamd_spam_tag_method` ENUM('add_header','rewrite_subject') CHARACTER SET utf8 COLLATE utf8_general_ci NOT NULL DEFAULT 'rewrite_subject' AFTER `rspamd_spam_tag_level`; -+ALTER TABLE `spamfilter_policy` ADD `rspamd_spam_kill_level` DECIMAL(5,2) NULL DEFAULT NULL AFTER `rspamd_spam_tag_method`; -+ -+UPDATE `spamfilter_policy` SET `rspamd_greylisting` = 'y' WHERE id = 4; -+UPDATE `spamfilter_policy` SET `rspamd_greylisting` = 'y' WHERE id = 5; -+UPDATE `spamfilter_policy` SET `rspamd_greylisting` = 'y' WHERE id = 6; -+ -+UPDATE `spamfilter_policy` SET `rspamd_spam_greylisting_level` = '4.00'; -+UPDATE `spamfilter_policy` SET `rspamd_spam_greylisting_level` = '6.00' WHERE id = 1; -+UPDATE `spamfilter_policy` SET `rspamd_spam_greylisting_level` = '999.00' WHERE id = 2; -+UPDATE `spamfilter_policy` SET `rspamd_spam_greylisting_level` = '999.00' WHERE id = 3; -+UPDATE `spamfilter_policy` SET `rspamd_spam_greylisting_level` = '2.00' WHERE id = 6; -+UPDATE `spamfilter_policy` SET `rspamd_spam_greylisting_level` = '7.00' WHERE id = 7; -+ -+UPDATE `spamfilter_policy` SET `rspamd_spam_tag_level` = '6.00'; -+UPDATE `spamfilter_policy` SET `rspamd_spam_tag_level` = '8.00' WHERE id = 1; -+UPDATE `spamfilter_policy` SET `rspamd_spam_tag_level` = '999.00' WHERE id = 2; -+UPDATE `spamfilter_policy` SET `rspamd_spam_tag_level` = '999.00' WHERE id = 3; -+UPDATE `spamfilter_policy` SET `rspamd_spam_tag_level` = '4.00' WHERE id = 6; -+UPDATE `spamfilter_policy` SET `rspamd_spam_tag_level` = '10.00' WHERE id = 7; -+ -+UPDATE `spamfilter_policy` SET `rspamd_spam_kill_level` = '10.00'; -+UPDATE `spamfilter_policy` SET `rspamd_spam_kill_level` = '12.00' WHERE id = 1; -+UPDATE `spamfilter_policy` SET `rspamd_spam_kill_level` = '999.00' WHERE id = 2; -+UPDATE `spamfilter_policy` SET `rspamd_spam_kill_level` = '999.00' WHERE id = 3; -+UPDATE `spamfilter_policy` SET `rspamd_spam_kill_level` = '8.00' WHERE id = 6; -+UPDATE `spamfilter_policy` SET `rspamd_spam_kill_level` = '20.00' WHERE id = 7; -+-- end of rspamd diff --git a/install/sql/ispconfig3.sql.orig b/install/sql/ispconfig3.sql.orig deleted file mode 100644 index 2417ef0d2..000000000 --- a/install/sql/ispconfig3.sql.orig +++ /dev/null @@ -1,2570 +0,0 @@ -/* -Copyright (c) 2007-2012, Till Brehm, projektfarm Gmbh -All rights reserved. - -Redistribution and use in source and binary forms, with or without modification, -are permitted provided that the following conditions are met: - - * Redistributions of source code must retain the above copyright notice, - this list of conditions and the following disclaimer. - * Redistributions in binary form must reproduce the above copyright notice, - this list of conditions and the following disclaimer in the documentation - and/or other materials provided with the distribution. - * Neither the name of ISPConfig nor the names of its contributors - may be used to endorse or promote products derived from this software without - specific prior written permission. - -THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" AND -ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED -WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED. -IN NO EVENT SHALL THE COPYRIGHT OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, -INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, -BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, -DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY -OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING -NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, -EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. -*/ - --- Includes --- --- iso_country_list.sql --- --- This will create and then populate a MySQL table with a list of the names and --- ISO 3166 codes for countries in existence as of the date below. --- --- For updates to this file, see http://27.org/isocountrylist/ --- For more about ISO 3166, see http://www.iso.ch/iso/en/prods-services/iso3166ma/02iso-3166-code-lists/list-en1.html --- --- Created by getisocountrylist.pl on Sun Nov 2 14:59:20 2003. --- Wm. Rhodes --- - --- --- ISPConfig 3 --- DB-Version: 3.0.0.9 --- - -SET FOREIGN_KEY_CHECKS = 0; - --- -------------------------------------------------------- --- -------------------------------------------------------- --- DB-STRUCTURE --- -------------------------------------------------------- --- -------------------------------------------------------- - --- --- Table structure for table `aps_instances` --- - -CREATE TABLE IF NOT EXISTS `aps_instances` ( - `id` int(4) NOT NULL AUTO_INCREMENT, - `sys_userid` int(11) unsigned NOT NULL DEFAULT '0', - `sys_groupid` int(11) unsigned NOT NULL DEFAULT '0', - `sys_perm_user` varchar(5) DEFAULT NULL, - `sys_perm_group` varchar(5) DEFAULT NULL, - `sys_perm_other` varchar(5) DEFAULT NULL, - `server_id` int(11) NOT NULL DEFAULT '0', - `customer_id` int(4) NOT NULL DEFAULT '0', - `package_id` int(4) NOT NULL DEFAULT '0', - `instance_status` int(4) NOT NULL DEFAULT '0', - PRIMARY KEY (`id`) -) ENGINE=MyISAM DEFAULT CHARSET=utf8 ; - --- -------------------------------------------------------- - --- --- Table structure for table `aps_instances_settings` --- - -CREATE TABLE IF NOT EXISTS `aps_instances_settings` ( - `id` int(4) NOT NULL AUTO_INCREMENT, - `server_id` int(11) NOT NULL DEFAULT '0', - `instance_id` int(4) NOT NULL DEFAULT '0', - `name` varchar(255) NOT NULL DEFAULT '', - `value` text, - PRIMARY KEY (`id`) -) ENGINE=MyISAM DEFAULT CHARSET=utf8 ; - --- -------------------------------------------------------- - --- --- Table structure for table `aps_packages` --- - -CREATE TABLE IF NOT EXISTS `aps_packages` ( - `id` int(4) NOT NULL AUTO_INCREMENT, - `path` varchar(255) NOT NULL DEFAULT '', - `name` varchar(255) NOT NULL DEFAULT '', - `category` varchar(255) NOT NULL DEFAULT '', - `version` varchar(20) NOT NULL DEFAULT '', - `release` int(4) NOT NULL DEFAULT '0', - `package_url` TEXT, - `package_status` int(1) NOT NULL DEFAULT '2', - PRIMARY KEY (`id`) -) ENGINE=MyISAM DEFAULT CHARSET=utf8 ; - --- -------------------------------------------------------- - --- --- Tabellenstruktur für Tabelle `aps_settings` --- - -CREATE TABLE IF NOT EXISTS `aps_settings` ( - `id` int(4) NOT NULL AUTO_INCREMENT, - `name` varchar(255) NOT NULL DEFAULT '', - `value` text, - PRIMARY KEY (`id`), - UNIQUE KEY `name` (`name`) -) ENGINE=MyISAM DEFAULT CHARSET=utf8 ; - --- -------------------------------------------------------- - --- --- Table structure for table `attempts_login` --- - -CREATE TABLE `attempts_login` ( - `ip` varchar(39) NOT NULL DEFAULT '', - `times` int(11) DEFAULT NULL, - `login_time` timestamp NOT NULL DEFAULT CURRENT_TIMESTAMP ON UPDATE CURRENT_TIMESTAMP -) ENGINE=MyISAM DEFAULT CHARSET=utf8 ; - --- -------------------------------------------------------- - --- --- Table structure for table `client` --- - -CREATE TABLE `client` ( - `client_id` int(11) unsigned NOT NULL AUTO_INCREMENT, - `sys_userid` int(11) unsigned NOT NULL DEFAULT '0', - `sys_groupid` int(11) unsigned NOT NULL DEFAULT '0', - `sys_perm_user` varchar(5) DEFAULT NULL, - `sys_perm_group` varchar(5) DEFAULT NULL, - `sys_perm_other` varchar(5) DEFAULT NULL, - `company_name` varchar(64) DEFAULT NULL, - `company_id` varchar(255) DEFAULT NULL, - `gender` enum('','m','f') NOT NULL DEFAULT '', - `contact_firstname` varchar( 64 ) NOT NULL DEFAULT '', - `contact_name` varchar(64) DEFAULT NULL, - `customer_no` varchar(64) DEFAULT NULL, - `vat_id` varchar(64) DEFAULT NULL, - `street` varchar(255) DEFAULT NULL, - `zip` varchar(32) DEFAULT NULL, - `city` varchar(64) DEFAULT NULL, - `state` varchar(32) DEFAULT NULL, - `country` char(2) DEFAULT NULL, - `telephone` varchar(32) DEFAULT NULL, - `mobile` varchar(32) DEFAULT NULL, - `fax` varchar(32) DEFAULT NULL, - `email` varchar(255) DEFAULT NULL, - `internet` varchar(255) NOT NULL DEFAULT '', - `icq` varchar(16) DEFAULT NULL, - `notes` text, - `bank_account_owner` varchar(255) DEFAULT NULL, - `bank_account_number` varchar(255) DEFAULT NULL, - `bank_code` varchar(255) DEFAULT NULL, - `bank_name` varchar(255) DEFAULT NULL, - `bank_account_iban` varchar(255) DEFAULT NULL, - `bank_account_swift` varchar(255) DEFAULT NULL, - `paypal_email` varchar(255) DEFAULT NULL, - `default_mailserver` int(11) unsigned NOT NULL DEFAULT '1', - `mail_servers` text, - `limit_maildomain` int(11) NOT NULL DEFAULT '-1', - `limit_mailbox` int(11) NOT NULL DEFAULT '-1', - `limit_mailalias` int(11) NOT NULL DEFAULT '-1', - `limit_mailaliasdomain` int(11) NOT NULL DEFAULT '-1', - `limit_mailforward` int(11) NOT NULL DEFAULT '-1', - `limit_mailcatchall` int(11) NOT NULL DEFAULT '-1', - `limit_mailrouting` int(11) NOT NULL DEFAULT '0', - `limit_mailfilter` int(11) NOT NULL DEFAULT '-1', - `limit_fetchmail` int(11) NOT NULL DEFAULT '-1', - `limit_mailquota` int(11) NOT NULL DEFAULT '-1', - `limit_spamfilter_wblist` int(11) NOT NULL DEFAULT '0', - `limit_spamfilter_user` int(11) NOT NULL DEFAULT '0', - `limit_spamfilter_policy` int(11) NOT NULL DEFAULT '0', - `default_xmppserver` int(11) unsigned NOT NULL DEFAULT '1', - `xmpp_servers` text, - `limit_xmpp_domain` int(11) NOT NULL DEFAULT '-1', - `limit_xmpp_user` int(11) NOT NULL DEFAULT '-1', - `limit_xmpp_muc` ENUM( 'n', 'y' ) NOT NULL default 'n', - `limit_xmpp_anon` ENUM( 'n', 'y' ) NOT NULL default 'n', - `limit_xmpp_auth_options` varchar(255) NOT NULL DEFAULT 'plain,hashed,isp', - `limit_xmpp_vjud` ENUM( 'n', 'y' ) NOT NULL default 'n', - `limit_xmpp_proxy` ENUM( 'n', 'y' ) NOT NULL default 'n', - `limit_xmpp_status` ENUM( 'n', 'y' ) NOT NULL default 'n', - `limit_xmpp_pastebin` ENUM( 'n', 'y' ) NOT NULL default 'n', - `limit_xmpp_httparchive` ENUM( 'n', 'y' ) NOT NULL default 'n', - `default_webserver` int(11) unsigned NOT NULL DEFAULT '1', - `web_servers` text, - `limit_web_ip` text, - `limit_web_domain` int(11) NOT NULL DEFAULT '-1', - `limit_web_quota` int(11) NOT NULL DEFAULT '-1', - `web_php_options` varchar(255) NOT NULL DEFAULT 'no,fast-cgi,cgi,mod,suphp,php-fpm,hhvm', - `limit_cgi` enum('n','y') NOT NULL DEFAULT 'n', - `limit_ssi` enum('n','y') NOT NULL DEFAULT 'n', - `limit_perl` enum('n','y') NOT NULL DEFAULT 'n', - `limit_ruby` enum('n','y') NOT NULL DEFAULT 'n', - `limit_python` enum('n','y') NOT NULL DEFAULT 'n', - `force_suexec` enum('n','y') NOT NULL DEFAULT 'y', - `limit_hterror` enum('n','y') NOT NULL DEFAULT 'n', - `limit_wildcard` enum('n','y') NOT NULL DEFAULT 'n', - `limit_ssl` enum('n','y') NOT NULL DEFAULT 'n', - `limit_ssl_letsencrypt` enum('n','y') NOT NULL DEFAULT 'n', - `limit_web_subdomain` int(11) NOT NULL DEFAULT '-1', - `limit_web_aliasdomain` int(11) NOT NULL DEFAULT '-1', - `limit_ftp_user` int(11) NOT NULL DEFAULT '-1', - `limit_shell_user` int(11) NOT NULL DEFAULT '0', - `ssh_chroot` varchar(255) NOT NULL DEFAULT 'no,jailkit,ssh-chroot', - `limit_webdav_user` int(11) NOT NULL DEFAULT '0', - `limit_backup` ENUM( 'n', 'y' ) NOT NULL DEFAULT 'y', - `limit_directive_snippets` ENUM( 'n', 'y' ) NOT NULL DEFAULT 'n', - `limit_aps` int(11) NOT NULL DEFAULT '-1', - `default_dnsserver` int(11) unsigned NOT NULL DEFAULT '1', - `db_servers` text, - `limit_dns_zone` int(11) NOT NULL DEFAULT '-1', - `default_slave_dnsserver` int(11) unsigned NOT NULL DEFAULT '1', - `limit_dns_slave_zone` int(11) NOT NULL DEFAULT '-1', - `limit_dns_record` int(11) NOT NULL DEFAULT '-1', - `default_dbserver` int(11) NOT NULL DEFAULT '1', - `dns_servers` text, - `limit_database` int(11) NOT NULL DEFAULT '-1', - `limit_database_user` int(11) NOT NULL DEFAULT '-1', - `limit_database_quota` int(11) NOT NULL default '-1', - `limit_cron` int(11) NOT NULL DEFAULT '0', - `limit_cron_type` enum('url','chrooted','full') NOT NULL DEFAULT 'url', - `limit_cron_frequency` int(11) NOT NULL DEFAULT '5', - `limit_traffic_quota` int(11) NOT NULL DEFAULT '-1', - `limit_client` int(11) NOT NULL DEFAULT '0', - `limit_domainmodule` int(11) NOT NULL DEFAULT '0', - `limit_mailmailinglist` int(11) NOT NULL DEFAULT '-1', - `limit_openvz_vm` int(11) NOT NULL DEFAULT '0', - `limit_openvz_vm_template_id` int(11) NOT NULL DEFAULT '0', - `parent_client_id` int(11) unsigned NOT NULL DEFAULT '0', - `username` varchar(64) DEFAULT NULL, - `password` varchar(64) DEFAULT NULL, - `language` char(2) NOT NULL DEFAULT 'en', - `usertheme` varchar(32) NOT NULL DEFAULT 'default', - `template_master` int(11) unsigned NOT NULL DEFAULT '0', - `template_additional` text, - `created_at` bigint(20) DEFAULT NULL, - `locked` enum('n','y') NOT NULL DEFAULT 'n', - `canceled` enum('n','y') NOT NULL DEFAULT 'n', - `can_use_api` enum('n','y') NOT NULL DEFAULT 'n', - `tmp_data` mediumblob, - `id_rsa` varchar(2000) NOT NULL DEFAULT '', - `ssh_rsa` varchar(600) NOT NULL DEFAULT '', - `customer_no_template` varchar(255) DEFAULT 'R[CLIENTID]C[CUSTOMER_NO]', - `customer_no_start` int(11) NOT NULL DEFAULT '1', - `customer_no_counter` int(11) NOT NULL DEFAULT '0', - `added_date` date NULL DEFAULT NULL, - `added_by` varchar(255) DEFAULT NULL, - `validation_status` enum('accept','review','reject') NOT NULL DEFAULT 'accept', - `risk_score` int(10) unsigned NOT NULL DEFAULT '0', - `activation_code` varchar(10) NOT NULL DEFAULT '', - PRIMARY KEY (`client_id`) -) ENGINE=MyISAM DEFAULT CHARSET=utf8 AUTO_INCREMENT=1 ; - --- -------------------------------------------------------- - --- --- Table structure for table `client_circle` --- - -CREATE TABLE `client_circle` ( - `circle_id` int(11) NOT NULL AUTO_INCREMENT, - `sys_userid` int(11) NOT NULL DEFAULT '0', - `sys_groupid` int(11) NOT NULL DEFAULT '0', - `sys_perm_user` varchar(5) DEFAULT NULL, - `sys_perm_group` varchar(5) DEFAULT NULL, - `sys_perm_other` varchar(5) DEFAULT NULL, - `circle_name` varchar(64) DEFAULT NULL, - `client_ids` text, - `description` text, - `active` enum('n','y') NOT NULL default 'y', - PRIMARY KEY (`circle_id`) -) ENGINE=MyISAM DEFAULT CHARSET=utf8 AUTO_INCREMENT=1 ; - --- -------------------------------------------------------- - --- --- Table structure for table `client_template` --- - -CREATE TABLE `client_template` ( - `template_id` int(11) unsigned NOT NULL auto_increment, - `sys_userid` int(11) unsigned NOT NULL default '0', - `sys_groupid` int(11) unsigned NOT NULL default '0', - `sys_perm_user` varchar(5) default NULL, - `sys_perm_group` varchar(5) default NULL, - `sys_perm_other` varchar(5) default NULL, - `template_name` varchar(64) NOT NULL DEFAULT '', - `template_type` varchar(1) NOT NULL default 'm', - `mail_servers` text, - `limit_maildomain` int(11) NOT NULL default '-1', - `limit_mailbox` int(11) NOT NULL default '-1', - `limit_mailalias` int(11) NOT NULL default '-1', - `limit_mailaliasdomain` int(11) NOT NULL default '-1', - `limit_mailforward` int(11) NOT NULL default '-1', - `limit_mailcatchall` int(11) NOT NULL default '-1', - `limit_mailrouting` int(11) NOT NULL default '0', - `limit_mailfilter` int(11) NOT NULL default '-1', - `limit_fetchmail` int(11) NOT NULL default '-1', - `limit_mailquota` int(11) NOT NULL default '-1', - `limit_spamfilter_wblist` int(11) NOT NULL default '0', - `limit_spamfilter_user` int(11) NOT NULL default '0', - `limit_spamfilter_policy` int(11) NOT NULL default '0', - `default_xmppserver` int(11) unsigned NOT NULL DEFAULT '1', - `xmpp_servers` text, - `limit_xmpp_domain` int(11) NOT NULL DEFAULT '-1', - `limit_xmpp_user` int(11) NOT NULL DEFAULT '-1', - `limit_xmpp_muc` ENUM( 'n', 'y' ) NOT NULL default 'n', - `limit_xmpp_anon` ENUM( 'n', 'y' ) NOT NULL default 'n', - `limit_xmpp_vjud` ENUM( 'n', 'y' ) NOT NULL default 'n', - `limit_xmpp_proxy` ENUM( 'n', 'y' ) NOT NULL default 'n', - `limit_xmpp_status` ENUM( 'n', 'y' ) NOT NULL default 'n', - `limit_xmpp_pastebin` ENUM( 'n', 'y' ) NOT NULL default 'n', - `limit_xmpp_httparchive` ENUM( 'n', 'y' ) NOT NULL default 'n', - `web_servers` text, - `limit_web_ip` text, - `limit_web_domain` int(11) NOT NULL default '-1', - `limit_web_quota` int(11) NOT NULL default '-1', - `web_php_options` varchar(255) NOT NULL DEFAULT 'no', - `limit_cgi` enum('n','y') NOT NULL DEFAULT 'n', - `limit_ssi` enum('n','y') NOT NULL DEFAULT 'n', - `limit_perl` enum('n','y') NOT NULL DEFAULT 'n', - `limit_ruby` enum('n','y') NOT NULL DEFAULT 'n', - `limit_python` enum('n','y') NOT NULL DEFAULT 'n', - `force_suexec` enum('n','y') NOT NULL DEFAULT 'y', - `limit_hterror` enum('n','y') NOT NULL DEFAULT 'n', - `limit_wildcard` enum('n','y') NOT NULL DEFAULT 'n', - `limit_ssl` enum('n','y') NOT NULL DEFAULT 'n', - `limit_ssl_letsencrypt` enum('n','y') NOT NULL DEFAULT 'n', - `limit_web_subdomain` int(11) NOT NULL default '-1', - `limit_web_aliasdomain` int(11) NOT NULL default '-1', - `limit_ftp_user` int(11) NOT NULL default '-1', - `limit_shell_user` int(11) NOT NULL default '0', - `ssh_chroot` varchar(255) NOT NULL DEFAULT 'no', - `limit_webdav_user` int(11) NOT NULL default '0', - `limit_backup` ENUM( 'n', 'y' ) NOT NULL DEFAULT 'y', - `limit_directive_snippets` ENUM( 'n', 'y' ) NOT NULL DEFAULT 'n', - `limit_aps` int(11) NOT NULL DEFAULT '-1', - `dns_servers` text, - `limit_dns_zone` int(11) NOT NULL default '-1', - `default_slave_dnsserver` int(11) NOT NULL DEFAULT '0', - `limit_dns_slave_zone` int(11) NOT NULL default '-1', - `limit_dns_record` int(11) NOT NULL default '-1', - `db_servers` text, - `limit_database` int(11) NOT NULL default '-1', - `limit_database_user` int(11) NOT NULL DEFAULT '-1', - `limit_database_quota` int(11) NOT NULL default '-1', - `limit_cron` int(11) NOT NULL default '0', - `limit_cron_type` enum('url','chrooted','full') NOT NULL default 'url', - `limit_cron_frequency` int(11) NOT NULL default '5', - `limit_traffic_quota` int(11) NOT NULL default '-1', - `limit_client` int(11) NOT NULL default '0', - `limit_domainmodule` int(11) NOT NULL DEFAULT '0', - `limit_mailmailinglist` int(11) NOT NULL default '-1', - `limit_openvz_vm` int(11) NOT NULL DEFAULT '0', - `limit_openvz_vm_template_id` int(11) NOT NULL DEFAULT '0', - PRIMARY KEY (`template_id`) -) ENGINE=MyISAM DEFAULT CHARSET=utf8 AUTO_INCREMENT=1 ; - --- -------------------------------------------------------- - --- --- Table structure for table `client_template_assigned` --- - -CREATE TABLE `client_template_assigned` ( - `assigned_template_id` bigint(20) NOT NULL auto_increment, - `client_id` bigint(11) NOT NULL DEFAULT '0', - `client_template_id` int(11) NOT NULL DEFAULT '0', - PRIMARY KEY (`assigned_template_id`), - KEY `client_id` (`client_id`) -) ENGINE=MyISAM DEFAULT CHARSET=utf8 AUTO_INCREMENT=1 ; --- -------------------------------------------------------- - --- --- Table structure for table `invoice_message_template` --- - -CREATE TABLE `client_message_template` ( - `client_message_template_id` bigint(20) NOT NULL AUTO_INCREMENT, - `sys_userid` int(11) NOT NULL DEFAULT '0', - `sys_groupid` int(11) NOT NULL DEFAULT '0', - `sys_perm_user` varchar(5) DEFAULT NULL, - `sys_perm_group` varchar(5) DEFAULT NULL, - `sys_perm_other` varchar(5) DEFAULT NULL, - `template_type` varchar(255) DEFAULT NULL, - `template_name` varchar(255) DEFAULT NULL, - `subject` varchar(255) DEFAULT NULL, - `message` text, - PRIMARY KEY (`client_message_template_id`) -) ENGINE=MyISAM DEFAULT CHARSET=utf8 AUTO_INCREMENT=1 ; - --- --- Dumping data for table `invoice_message_template` --- - --- -------------------------------------------------------- - --- --- Table structure for table `country` --- - -CREATE TABLE `country` ( - `iso` char(2) NOT NULL DEFAULT '', - `name` varchar(64) NOT NULL DEFAULT '', - `printable_name` varchar(64) NOT NULL DEFAULT '', - `iso3` char(3) DEFAULT NULL, - `numcode` smallint(6) DEFAULT NULL, - `eu` enum('n','y') NOT NULL DEFAULT 'n', - PRIMARY KEY (`iso`) -) ENGINE=MyISAM DEFAULT CHARSET=utf8 ; - --- -------------------------------------------------------- - --- --- Table structure for table `cron` --- -CREATE TABLE `cron` ( - `id` int(11) unsigned NOT NULL auto_increment, - `sys_userid` int(11) unsigned NOT NULL default '0', - `sys_groupid` int(11) unsigned NOT NULL default '0', - `sys_perm_user` varchar(5) NULL default NULL, - `sys_perm_group` varchar(5) NULL default NULL, - `sys_perm_other` varchar(5) NULL default NULL, - `server_id` int(11) unsigned NOT NULL default '0', - `parent_domain_id` int(11) unsigned NOT NULL default '0', - `type` enum('url','chrooted','full') NOT NULL default 'url', - `command` TEXT, - `run_min` varchar(100) NULL, - `run_hour` varchar(100) NULL, - `run_mday` varchar(100) NULL, - `run_month` varchar(100) NULL, - `run_wday` varchar(100) NULL, - `log` enum('n','y') NOT NULL default 'n', - `active` enum('n','y') NOT NULL default 'y', - PRIMARY KEY (`id`) -) ENGINE=MyISAM DEFAULT CHARSET=utf8 AUTO_INCREMENT=1 ; - --- -------------------------------------------------------- - --- --- Table structure for table `directive_snippets` --- - -CREATE TABLE IF NOT EXISTS `directive_snippets` ( - `directive_snippets_id` int(11) unsigned NOT NULL AUTO_INCREMENT, - `sys_userid` int(11) unsigned NOT NULL DEFAULT '0', - `sys_groupid` int(11) unsigned NOT NULL DEFAULT '0', - `sys_perm_user` varchar(5) DEFAULT NULL, - `sys_perm_group` varchar(5) DEFAULT NULL, - `sys_perm_other` varchar(5) DEFAULT NULL, - `name` varchar(255) DEFAULT NULL, - `type` varchar(255) DEFAULT NULL, - `snippet` mediumtext, - `customer_viewable` ENUM('n','y') NOT NULL DEFAULT 'n', - `required_php_snippets` varchar(255) NOT NULL DEFAULT '', - `active` enum('n','y') NOT NULL DEFAULT 'y', - `master_directive_snippets_id` int(11) unsigned NOT NULL DEFAULT '0', - PRIMARY KEY (`directive_snippets_id`) -) ENGINE=MyISAM DEFAULT CHARSET=utf8 AUTO_INCREMENT=1 ; - --- -------------------------------------------------------- - --- --- Table structure for table `dns_rr` --- -CREATE TABLE `dns_rr` ( - `id` int(11) unsigned NOT NULL auto_increment, - `sys_userid` int(11) unsigned NOT NULL DEFAULT '0', - `sys_groupid` int(11) unsigned NOT NULL DEFAULT '0', - `sys_perm_user` varchar(5) NOT NULL DEFAULT '', - `sys_perm_group` varchar(5) NOT NULL DEFAULT '', - `sys_perm_other` varchar(5) NOT NULL DEFAULT '', - `server_id` int(11) NOT NULL default '1', - `zone` int(11) unsigned NOT NULL DEFAULT '0', - `name` varchar(255) NOT NULL DEFAULT '', - `type` enum('A','AAAA','ALIAS','CNAME','CAA','DS','HINFO','LOC','MX','NAPTR','NS','PTR','RP','SRV','TXT','TLSA','DNSKEY') default NULL, - `data` TEXT NOT NULL, - `aux` int(11) unsigned NOT NULL default '0', - `ttl` int(11) unsigned NOT NULL default '3600', - `active` enum('N','Y') NOT NULL default 'Y', - `stamp` timestamp NOT NULL default CURRENT_TIMESTAMP, - `serial` int(10) unsigned default NULL, - PRIMARY KEY (`id`), - KEY `rr` (`zone`,`type`,`name`) -) ENGINE=MyISAM DEFAULT CHARSET=utf8 AUTO_INCREMENT=1 ; - --- -------------------------------------------------------- - --- --- Table structure for table `dns_slave` --- - -CREATE TABLE `dns_slave` ( - `id` int(10) unsigned NOT NULL auto_increment, - `sys_userid` int(11) unsigned NOT NULL DEFAULT '0', - `sys_groupid` int(11) unsigned NOT NULL DEFAULT '0', - `sys_perm_user` varchar(5) NOT NULL DEFAULT '', - `sys_perm_group` varchar(5) NOT NULL DEFAULT '', - `sys_perm_other` varchar(5) NOT NULL DEFAULT '', - `server_id` int(11) NOT NULL default '1', - `origin` varchar(255) NOT NULL DEFAULT '', - `ns` varchar(255) NOT NULL DEFAULT '', - `active` enum('N','Y') NOT NULL DEFAULT 'N', - `xfer` TEXT NULL, - PRIMARY KEY (`id`), - UNIQUE KEY `slave` (`origin`,`server_id`), - KEY `active` (`active`) -) ENGINE=MyISAM DEFAULT CHARSET=utf8 AUTO_INCREMENT=1 ; - --- -------------------------------------------------------- - --- --- Table structure for table `dns_ssl_ca` --- - -CREATE TABLE IF NOT EXISTS `dns_ssl_ca` ( - `id` int(10) unsigned NOT NULL AUTO_INCREMENT, - `sys_userid` int(11) unsigned NOT NULL DEFAULT '0', - `sys_groupid` int(11) unsigned NOT NULL DEFAULT '0', - `sys_perm_user` varchar(5) NOT NULL DEFAULT '', - `sys_perm_group` varchar(5) NOT NULL DEFAULT '', - `sys_perm_other` varchar(5) NOT NULL DEFAULT '', - `active` enum('N','Y') NOT NULL DEFAULT 'N', - `ca_name` varchar(255) NOT NULL DEFAULT '', - `ca_issue` varchar(255) NOT NULL DEFAULT '', - `ca_wildcard` enum('Y','N') NOT NULL DEFAULT 'N', - `ca_iodef` text NOT NULL, - `ca_critical` tinyint(1) NOT NULL DEFAULT '0', - PRIMARY KEY (`id`), - UNIQUE KEY (`ca_issue`) -) ENGINE=MyISAM DEFAULT CHARSET=utf8 AUTO_INCREMENT=1 ; - -ALTER TABLE `dns_ssl_ca` ADD UNIQUE(`ca_issue`); - -INSERT INTO `dns_ssl_ca` (`id`, `sys_userid`, `sys_groupid`, `sys_perm_user`, `sys_perm_group`, `sys_perm_other`, `active`, `ca_name`, `ca_issue`, `ca_wildcard`, `ca_iodef`, `ca_critical`) VALUES -(NULL, 1, 1, 'riud', 'riud', '', 'Y', 'AC Camerfirma', 'camerfirma.com', 'Y', '', 0), -(NULL, 1, 1, 'riud', 'riud', '', 'Y', 'ACCV', 'accv.es', 'Y', '', 0), -(NULL, 1, 1, 'riud', 'riud', '', 'Y', 'Actalis', 'actalis.it', 'Y', '', 0), -(NULL, 1, 1, 'riud', 'riud', '', 'Y', 'Amazon', 'amazon.com', 'Y', '', 0), -(NULL, 1, 1, 'riud', 'riud', '', 'Y', 'Asseco', 'certum.pl', 'Y', '', 0), -(NULL, 1, 1, 'riud', 'riud', '', 'Y', 'Buypass', 'buypass.com', 'Y', '', 0), -(NULL, 1, 1, 'riud', 'riud', '', 'Y', 'CA Disig', 'disig.sk', 'Y', '', 0), -(NULL, 1, 1, 'riud', 'riud', '', 'Y', 'CATCert', 'aoc.cat', 'Y', '', 0), -(NULL, 1, 1, 'riud', 'riud', '', 'Y', 'Certinomis', 'www.certinomis.com', 'Y', '', 0), -(NULL, 1, 1, 'riud', 'riud', '', 'Y', 'Certizen', 'hongkongpost.gov.hk', 'Y', '', 0), -(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', 'Comodo', 'comodoca.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), -(NULL, 1, 1, 'riud', 'riud', '', 'Y', 'e-tugra', 'e-tugra.com', 'Y', '', 0), -(NULL, 1, 1, 'riud', 'riud', '', 'Y', 'EDICOM', 'edicomgroup.com', 'Y', '', 0), -(NULL, 1, 1, 'riud', 'riud', '', 'Y', 'Entrust', 'entrust.net', 'Y', '', 0), -(NULL, 1, 1, 'riud', 'riud', '', 'Y', 'Firmaprofesional', 'firmaprofesional.com', 'Y', '', 0), -(NULL, 1, 1, 'riud', 'riud', '', 'Y', 'FNMT', 'fnmt.es', 'Y', '', 0), -(NULL, 1, 1, 'riud', 'riud', '', 'Y', 'GlobalSign', 'globalsign.com', 'Y', '', 0), -(NULL, 1, 1, 'riud', 'riud', '', 'Y', 'GoDaddy', 'godaddy.com', 'Y', '', 0), -(NULL, 1, 1, 'riud', 'riud', '', 'Y', 'Google Trust Services', 'pki.goog', 'Y', '', 0), -(NULL, 1, 1, 'riud', 'riud', '', 'Y', 'GRCA', 'gca.nat.gov.tw', 'Y', '', 0), -(NULL, 1, 1, 'riud', 'riud', '', 'Y', 'HARICA', 'harica.gr', 'Y', '', 0), -(NULL, 1, 1, 'riud', 'riud', '', 'Y', 'IdenTrust', 'identrust.com', 'Y', '', 0), -(NULL, 1, 1, 'riud', 'riud', '', 'Y', 'Izenpe', 'izenpe.com', 'Y', '', 0), -(NULL, 1, 1, 'riud', 'riud', '', 'Y', 'Kamu SM', 'kamusm.gov.tr', 'Y', '', 0), -(NULL, 1, 1, 'riud', 'riud', '', 'Y', 'Let''s Encrypt', 'letsencrypt.org', 'Y', '', 0), -(NULL, 1, 1, 'riud', 'riud', '', 'Y', 'Microsec e-Szigno', 'e-szigno.hu', 'Y', '', 0), -(NULL, 1, 1, 'riud', 'riud', '', 'Y', 'NetLock', 'netlock.hu', 'Y', '', 0), -(NULL, 1, 1, 'riud', 'riud', '', 'Y', 'PKIoverheid', 'www.pkioverheid.nl', 'Y', '', 0), -(NULL, 1, 1, 'riud', 'riud', '', 'Y', 'PROCERT', 'procert.net.ve', 'Y', '', 0), -(NULL, 1, 1, 'riud', 'riud', '', 'Y', 'QuoVadis', 'quovadisglobal.com', 'Y', '', 0), -(NULL, 1, 1, 'riud', 'riud', '', 'Y', 'SECOM', 'secomtrust.net', 'Y', '', 0), -(NULL, 1, 1, 'riud', 'riud', '', 'Y', 'Sertifitseerimiskeskuse', 'sk.ee', 'Y', '', 0), -(NULL, 1, 1, 'riud', 'riud', '', 'Y', 'StartCom', 'startcomca.com', 'Y', '', 0), -(NULL, 1, 1, 'riud', 'riud', '', 'Y', 'SwissSign', 'swisssign.com', 'Y', '', 0), -(NULL, 1, 1, 'riud', 'riud', '', 'Y', 'Symantec / Thawte / GeoTrust', 'symantec.com', 'Y', '', 0), -(NULL, 1, 1, 'riud', 'riud', '', 'Y', 'T-Systems', 'telesec.de', 'Y', '', 0), -(NULL, 1, 1, 'riud', 'riud', '', 'Y', 'Telia', 'telia.com', 'Y', '', 0), -(NULL, 1, 1, 'riud', 'riud', '', 'Y', 'Trustwave', 'trustwave.com', 'Y', '', 0), -(NULL, 1, 1, 'riud', 'riud', '', 'Y', 'Web.com', 'web.com', 'Y', '', 0), -(NULL, 1, 1, 'riud', 'riud', '', 'Y', 'WISeKey', 'wisekey.com', 'Y', '', 0), -(NULL, 1, 1, 'riud', 'riud', '', 'Y', 'WoSign', 'wosign.com', 'Y', '', 0); - --- -------------------------------------------------------- - --- --- Table structure for table `dns_soa` --- - -CREATE TABLE `dns_soa` ( - `id` int(10) unsigned NOT NULL auto_increment, - `sys_userid` int(11) unsigned NOT NULL DEFAULT '0', - `sys_groupid` int(11) unsigned NOT NULL DEFAULT '0', - `sys_perm_user` varchar(5) NOT NULL DEFAULT '', - `sys_perm_group` varchar(5) NOT NULL DEFAULT '', - `sys_perm_other` varchar(5) NOT NULL DEFAULT '', - `server_id` int(11) NOT NULL default '1', - `origin` varchar(255) NOT NULL DEFAULT '', - `ns` varchar(255) NOT NULL DEFAULT '', - `mbox` varchar(255) NOT NULL DEFAULT '', - `serial` int(11) unsigned NOT NULL default '1', - `refresh` int(11) unsigned NOT NULL default '28800', - `retry` int(11) unsigned NOT NULL default '7200', - `expire` int(11) unsigned NOT NULL default '604800', - `minimum` int(11) unsigned NOT NULL default '3600', - `ttl` int(11) unsigned NOT NULL default '3600', - `active` enum('N','Y') NOT NULL DEFAULT 'N', - `xfer` TEXT NULL, - `also_notify` TEXT NULL, - `update_acl` varchar(255) default NULL, - `dnssec_initialized` ENUM('Y','N') NOT NULL DEFAULT 'N', - `dnssec_wanted` ENUM('Y','N') NOT NULL DEFAULT 'N', - `dnssec_last_signed` BIGINT NOT NULL DEFAULT '0', - `dnssec_info` TEXT NULL, - PRIMARY KEY (`id`), - UNIQUE KEY `origin` (`origin`), - KEY `active` (`active`) -) ENGINE=MyISAM DEFAULT CHARSET=utf8 AUTO_INCREMENT=1 ; - --- -------------------------------------------------------- - --- --- Table structure for table `dns_template` --- - -CREATE TABLE `dns_template` ( - `template_id` int(11) unsigned NOT NULL auto_increment, - `sys_userid` int(11) unsigned NOT NULL default '0', - `sys_groupid` int(11) unsigned NOT NULL default '0', - `sys_perm_user` varchar(5) default NULL, - `sys_perm_group` varchar(5) default NULL, - `sys_perm_other` varchar(5) default NULL, - `name` varchar(64) default NULL, - `fields` varchar(255) default NULL, - `template` text, - `visible` enum('N','Y') NOT NULL default 'Y', - PRIMARY KEY (`template_id`) -) ENGINE=MyISAM DEFAULT CHARSET=utf8 AUTO_INCREMENT=1 ; - --- --- Table structure for table `domain` --- - -CREATE TABLE `domain` ( - `domain_id` int(11) unsigned NOT NULL auto_increment, - `sys_userid` int(11) unsigned NOT NULL default '0', - `sys_groupid` int(11) unsigned NOT NULL default '0', - `sys_perm_user` varchar(5) NOT NULL default '', - `sys_perm_group` varchar(5) NOT NULL default '', - `sys_perm_other` varchar(5) NOT NULL default '', - `domain` varchar(255) NOT NULL default '', - PRIMARY KEY (`domain_id`), - UNIQUE KEY `domain` (`domain`) -) ENGINE=MyISAM DEFAULT CHARSET=utf8 ; - --- -------------------------------------------------------- - --- --- Table structure for table `firewall` --- - -CREATE TABLE `firewall` ( - `firewall_id` int(11) unsigned NOT NULL auto_increment, - `sys_userid` int(11) unsigned NOT NULL default '0', - `sys_groupid` int(11) unsigned NOT NULL default '0', - `sys_perm_user` varchar(5) default NULL, - `sys_perm_group` varchar(5) default NULL, - `sys_perm_other` varchar(5) default NULL, - `server_id` int(11) unsigned NOT NULL default '0', - `tcp_port` text, - `udp_port` text, - `active` enum('n','y') NOT NULL default 'y', - PRIMARY KEY (`firewall_id`) -) ENGINE=MyISAM DEFAULT CHARSET=utf8 AUTO_INCREMENT=1 ; - --- -------------------------------------------------------- - --- --- Table structure for table `ftp_user` --- - -CREATE TABLE `ftp_user` ( - `ftp_user_id` int(11) unsigned NOT NULL auto_increment, - `sys_userid` int(11) unsigned NOT NULL default '0', - `sys_groupid` int(11) unsigned NOT NULL default '0', - `sys_perm_user` varchar(5) default NULL, - `sys_perm_group` varchar(5) default NULL, - `sys_perm_other` varchar(5) default NULL, - `server_id` int(11) unsigned NOT NULL default '0', - `parent_domain_id` int(11) unsigned NOT NULL default '0', - `username` varchar(64) default NULL, - `username_prefix` varchar(50) NOT NULL default '', - `password` varchar(64) default NULL, - `quota_size` bigint(20) NOT NULL default '-1', - `active` enum('n','y') NOT NULL default 'y', - `uid` varchar(64) default NULL, - `gid` varchar(64) default NULL, - `dir` varchar(255) default NULL, - `quota_files` bigint(20) NOT NULL default '-1', - `ul_ratio` int(11) NOT NULL default '-1', - `dl_ratio` int(11) NOT NULL default '-1', - `ul_bandwidth` int(11) NOT NULL default '-1', - `dl_bandwidth` int(11) NOT NULL default '-1', - `expires` datetime NULL DEFAULT NULL, - `user_type` set('user','system') NOT NULL DEFAULT 'user', - `user_config` text, - PRIMARY KEY (`ftp_user_id`), - KEY `active` (`active`), - KEY `server_id` (`server_id`), - KEY `username` (`username`), - KEY `quota_files` (`quota_files`) -) ENGINE=MyISAM DEFAULT CHARSET=utf8 AUTO_INCREMENT=1 ; - --- -------------------------------------------------------- - --- --- Table structure for table `ftp_traffic` --- - -CREATE TABLE `ftp_traffic` ( - `hostname` varchar(255) NOT NULL, - `traffic_date` date NOT NULL, - `in_bytes` bigint(32) unsigned NOT NULL, - `out_bytes` bigint(32) unsigned NOT NULL, - UNIQUE KEY (`hostname`,`traffic_date`) -) ENGINE=MyISAM DEFAULT CHARSET=utf8 AUTO_INCREMENT=1 ; - --- -------------------------------------------------------- - --- --- Table structure for table `help_faq` --- - -CREATE TABLE `help_faq` ( - `hf_id` int(11) NOT NULL AUTO_INCREMENT, - `hf_section` int(11) DEFAULT NULL, - `hf_order` int(11) DEFAULT '0', - `hf_question` text, - `hf_answer` text, - `sys_userid` int(11) DEFAULT NULL, - `sys_groupid` int(11) DEFAULT NULL, - `sys_perm_user` varchar(5) DEFAULT NULL, - `sys_perm_group` varchar(5) DEFAULT NULL, - `sys_perm_other` varchar(5) DEFAULT NULL, - PRIMARY KEY (`hf_id`) -) ENGINE=MyISAM DEFAULT CHARSET=utf8 AUTO_INCREMENT=1 ; - --- -------------------------------------------------------- - --- --- Table structure for table `help_faq_sections` --- - -CREATE TABLE `help_faq_sections` ( - `hfs_id` int(11) NOT NULL AUTO_INCREMENT, - `hfs_name` varchar(255) DEFAULT NULL, - `hfs_order` int(11) DEFAULT '0', - `sys_userid` int(11) DEFAULT NULL, - `sys_groupid` int(11) DEFAULT NULL, - `sys_perm_user` varchar(5) DEFAULT NULL, - `sys_perm_group` varchar(5) DEFAULT NULL, - `sys_perm_other` varchar(5) DEFAULT NULL, - PRIMARY KEY (`hfs_id`) -) ENGINE=MyISAM DEFAULT CHARSET=utf8 AUTO_INCREMENT=1 ; - --- -------------------------------------------------------- - --- Table structure for table `iptables` --- - -DROP TABLE IF EXISTS `iptables`; -CREATE TABLE `iptables` ( - `iptables_id` int(10) unsigned NOT NULL AUTO_INCREMENT, - `server_id` int(10) unsigned NOT NULL DEFAULT '0', - `table` varchar(10) DEFAULT NULL COMMENT 'INPUT OUTPUT FORWARD', - `source_ip` varchar(16) DEFAULT NULL, - `destination_ip` varchar(16) DEFAULT NULL, - `protocol` varchar(10) DEFAULT 'TCP' COMMENT 'TCP UDP GRE', - `singleport` varchar(10) DEFAULT NULL, - `multiport` varchar(40) DEFAULT NULL, - `state` varchar(20) DEFAULT NULL COMMENT 'NEW ESTABLISHED RECNET etc', - `target` varchar(10) DEFAULT NULL COMMENT 'ACCEPT DROP REJECT LOG', - `active` enum('n','y') NOT NULL DEFAULT 'y', - PRIMARY KEY (`iptables_id`) -) ENGINE=MyISAM AUTO_INCREMENT=5 DEFAULT CHARSET=utf8; - --- -------------------------------------------------------- - --- --- Table structure for table `mail_access` --- - -CREATE TABLE `mail_access` ( - `access_id` int(11) unsigned NOT NULL auto_increment, - `sys_userid` int(11) unsigned NOT NULL default '0', - `sys_groupid` int(11) unsigned NOT NULL default '0', - `sys_perm_user` varchar(5) NOT NULL default '', - `sys_perm_group` varchar(5) NOT NULL default '', - `sys_perm_other` varchar(5) NOT NULL default '', - `server_id` int(11) NOT NULL default '0', - `source` varchar(255) NOT NULL DEFAULT '', - `access` varchar(255) NOT NULL DEFAULT '', - `type` set('recipient','sender','client') NOT NULL DEFAULT 'recipient', - `active` enum('n','y') NOT NULL default 'y', - PRIMARY KEY (`access_id`), - KEY `server_id` (`server_id`,`source`) -) ENGINE=MyISAM DEFAULT CHARSET=utf8 AUTO_INCREMENT=1 ; - --- -------------------------------------------------------- - --- --- Table structure for table `mail_backup` --- - -CREATE TABLE `mail_backup` ( - `backup_id` int(10) unsigned NOT NULL AUTO_INCREMENT, - `server_id` int(10) unsigned NOT NULL DEFAULT '0', - `parent_domain_id` int(10) unsigned NOT NULL DEFAULT '0', - `mailuser_id` int(10) unsigned NOT NULL DEFAULT '0', - `backup_mode` varchar(64) NOT NULL DEFAULT '', - `tstamp` int(10) unsigned NOT NULL DEFAULT '0', - `filename` varchar(255) NOT NULL DEFAULT '', - `filesize` VARCHAR(20) NOT NULL DEFAULT '', - PRIMARY KEY (`backup_id`) -) ENGINE=MyISAM DEFAULT CHARSET=utf8 AUTO_INCREMENT=1 ; - --- -------------------------------------------------------- - --- --- Table structure for table `mail_content_filter` --- - -CREATE TABLE `mail_content_filter` ( - `content_filter_id` int(11) unsigned NOT NULL auto_increment, - `sys_userid` int(11) unsigned NOT NULL default '0', - `sys_groupid` int(11) unsigned NOT NULL default '0', - `sys_perm_user` varchar(5) default NULL, - `sys_perm_group` varchar(5) default NULL, - `sys_perm_other` varchar(5) default NULL, - `server_id` int(11) NOT NULL default '0', - `type` varchar(255) default NULL, - `pattern` varchar(255) default NULL, - `data` varchar(255) default NULL, - `action` varchar(255) default NULL, - `active` varchar(255) NOT NULL default 'y', - PRIMARY KEY (`content_filter_id`) -) ENGINE=MyISAM DEFAULT CHARSET=utf8 AUTO_INCREMENT=1 ; - --- -------------------------------------------------------- - --- --- Table structure for table `mail_domain` --- - -CREATE TABLE `mail_domain` ( - `domain_id` int(11) unsigned NOT NULL auto_increment, - `sys_userid` int(11) unsigned NOT NULL default '0', - `sys_groupid` int(11) unsigned NOT NULL default '0', - `sys_perm_user` varchar(5) NOT NULL default '', - `sys_perm_group` varchar(5) NOT NULL default '', - `sys_perm_other` varchar(5) NOT NULL default '', - `server_id` int(11) unsigned NOT NULL default '0', - `domain` varchar(255) NOT NULL default '', - `dkim` ENUM( 'n', 'y' ) NOT NULL default 'n', - `dkim_selector` varchar(63) NOT NULL DEFAULT 'default', - `dkim_private` mediumtext NULL, - `dkim_public` mediumtext NULL, - `active` enum('n','y') NOT NULL DEFAULT 'n', - PRIMARY KEY (`domain_id`), - KEY `server_id` (`server_id`,`domain`), - KEY `domain_active` (`domain`,`active`) -) ENGINE=MyISAM DEFAULT CHARSET=utf8 AUTO_INCREMENT=1 ; - --- -------------------------------------------------------- - --- --- Table structure for table `mail_forwarding` --- - -CREATE TABLE `mail_forwarding` ( - `forwarding_id` int(11) unsigned NOT NULL auto_increment, - `sys_userid` int(11) unsigned NOT NULL default '0', - `sys_groupid` int(11) unsigned NOT NULL default '0', - `sys_perm_user` varchar(5) NOT NULL default '', - `sys_perm_group` varchar(5) NOT NULL default '', - `sys_perm_other` varchar(5) NOT NULL default '', - `server_id` int(11) unsigned NOT NULL default '0', - `source` varchar(255) NOT NULL DEFAULT '', - `destination` text, - `type` enum('alias','aliasdomain','forward','catchall') NOT NULL default 'alias', - `active` enum('n','y') NOT NULL DEFAULT 'n', - `allow_send_as` ENUM('n','y') NOT NULL DEFAULT 'n', - `greylisting` enum('n','y' ) NOT NULL DEFAULT 'n', - PRIMARY KEY (`forwarding_id`), - KEY `server_id` (`server_id`,`source`), - KEY `type` (`type`) -) ENGINE=MyISAM DEFAULT CHARSET=utf8 AUTO_INCREMENT=1 ; - --- -------------------------------------------------------- - --- --- Table structure for table `mail_get` --- - -CREATE TABLE `mail_get` ( - `mailget_id` int(11) unsigned NOT NULL auto_increment, - `sys_userid` int(11) unsigned NOT NULL default '0', - `sys_groupid` int(11) unsigned NOT NULL default '0', - `sys_perm_user` varchar(5) default NULL, - `sys_perm_group` varchar(5) default NULL, - `sys_perm_other` varchar(5) default NULL, - `server_id` int(11) unsigned NOT NULL default '0', - `type` varchar(255) default NULL, - `source_server` varchar(255) default NULL, - `source_username` varchar(255) default NULL, - `source_password` varchar(64) default NULL, - `source_delete` varchar(255) NOT NULL default 'y', - `source_read_all` varchar(255) NOT NULL default 'y', - `destination` varchar(255) default NULL, - `active` varchar(255) NOT NULL default 'y', - PRIMARY KEY (`mailget_id`) -) ENGINE=MyISAM DEFAULT CHARSET=utf8 AUTO_INCREMENT=1 ; - --- -------------------------------------------------------- - --- --- Tabellenstruktur für Tabelle `mail_mailinglist` --- - -CREATE TABLE `mail_mailinglist` ( - `mailinglist_id` int(11) unsigned NOT NULL auto_increment, - `sys_userid` int(11) unsigned NOT NULL default '0', - `sys_groupid` int(11) unsigned NOT NULL default '0', - `sys_perm_user` varchar(5) NOT NULL DEFAULT '', - `sys_perm_group` varchar(5) NOT NULL DEFAULT '', - `sys_perm_other` varchar(5) NOT NULL DEFAULT '', - `server_id` int(11) unsigned NOT NULL default '0', - `domain` varchar(255) NOT NULL DEFAULT '', - `listname` varchar(255) NOT NULL DEFAULT '', - `email` varchar(255) NOT NULL DEFAULT '', - `password` varchar(255) NOT NULL DEFAULT '', - PRIMARY KEY (`mailinglist_id`) -) ENGINE=MyISAM DEFAULT CHARSET=utf8 AUTO_INCREMENT=1 ; - --- -------------------------------------------------------- - --- --- Table structure for Table `mail_relay_recipient` --- - -CREATE TABLE IF NOT EXISTS `mail_relay_recipient` ( - `relay_recipient_id` bigint(20) NOT NULL AUTO_INCREMENT, - `sys_userid` int(11) NOT NULL DEFAULT '0', - `sys_groupid` int(11) NOT NULL DEFAULT '0', - `sys_perm_user` varchar(5) DEFAULT NULL, - `sys_perm_group` varchar(5) DEFAULT NULL, - `sys_perm_other` varchar(5) DEFAULT NULL, - `server_id` int(11) NOT NULL DEFAULT '0', - `source` varchar(255) DEFAULT NULL, - `access` varchar(255) NOT NULL DEFAULT 'OK', - `active` varchar(255) NOT NULL DEFAULT 'y', - PRIMARY KEY (`relay_recipient_id`) -) ENGINE=MyISAM DEFAULT CHARSET=utf8 AUTO_INCREMENT=1 ; - --- -------------------------------------------------------- - --- --- Table structure for table `mail_traffic` --- - -CREATE TABLE `mail_traffic` ( - `traffic_id` int(11) unsigned NOT NULL auto_increment, - `mailuser_id` int(11) unsigned NOT NULL DEFAULT '0', - `month` char(7) NOT NULL DEFAULT '', - `traffic` bigint(20) unsigned NOT NULL DEFAULT '0', - PRIMARY KEY (`traffic_id`), - KEY `mailuser_id` (`mailuser_id`,`month`) -) ENGINE=MyISAM DEFAULT CHARSET=utf8 AUTO_INCREMENT=1 ; - --- -------------------------------------------------------- - --- --- Table structure for table `mail_transport` --- - -CREATE TABLE `mail_transport` ( - `transport_id` int(11) unsigned NOT NULL auto_increment, - `sys_userid` int(11) unsigned NOT NULL default '0', - `sys_groupid` int(11) unsigned NOT NULL default '0', - `sys_perm_user` varchar(5) NOT NULL default '', - `sys_perm_group` varchar(5) NOT NULL default '', - `sys_perm_other` varchar(5) NOT NULL default '', - `server_id` int(11) unsigned NOT NULL default '0', - `domain` varchar(255) NOT NULL default '', - `transport` varchar(255) NOT NULL DEFAULT '', - `sort_order` int(11) unsigned NOT NULL default '5', - `active` enum('n','y') NOT NULL DEFAULT 'n', - PRIMARY KEY (`transport_id`), - KEY `server_id` (`server_id`,`transport`), - KEY `server_id_2` (`server_id`,`domain`) -) ENGINE=MyISAM DEFAULT CHARSET=utf8 AUTO_INCREMENT=1 ; - --- -------------------------------------------------------- - --- --- Table structure for table `mail_user` --- - -CREATE TABLE `mail_user` ( - `mailuser_id` int(11) unsigned NOT NULL auto_increment, - `sys_userid` int(11) unsigned NOT NULL default '0', - `sys_groupid` int(11) unsigned NOT NULL default '0', - `sys_perm_user` varchar(5) NOT NULL default '', - `sys_perm_group` varchar(5) NOT NULL default '', - `sys_perm_other` varchar(5) NOT NULL default '', - `server_id` int(11) unsigned NOT NULL default '0', - `email` varchar(255) NOT NULL default '', - `login` varchar(255) NOT NULL default '', - `password` varchar(255) NOT NULL default '', - `name` varchar(255) NOT NULL default '', - `uid` int(11) NOT NULL default '5000', - `gid` int(11) NOT NULL default '5000', - `maildir` varchar(255) NOT NULL default '', - `maildir_format` varchar(255) NOT NULL default 'maildir', - `quota` bigint(20) NOT NULL default '-1', - `cc` varchar(255) NOT NULL default '', - `sender_cc` varchar(255) NOT NULL default '', - `homedir` varchar(255) NOT NULL default '', - `autoresponder` enum('n','y') NOT NULL default 'n', - `autoresponder_start_date` datetime NULL default NULL, - `autoresponder_end_date` datetime NULL default NULL, - `autoresponder_subject` varchar(255) NOT NULL default 'Out of office reply', - `autoresponder_text` mediumtext NULL, - `move_junk` enum('n','y') NOT NULL default 'n', - `custom_mailfilter` mediumtext, - `postfix` enum('n','y') NOT NULL default 'y', - `greylisting` enum('n','y' ) NOT NULL DEFAULT 'n', - `access` enum('n','y') NOT NULL default 'y', - `disableimap` enum('n','y') NOT NULL default 'n', - `disablepop3` enum('n','y') NOT NULL default 'n', - `disabledeliver` enum('n','y') NOT NULL default 'n', - `disablesmtp` enum('n','y') NOT NULL default 'n', - `disablesieve` enum('n','y') NOT NULL default 'n', - `disablesieve-filter` enum('n','y') NOT NULL default 'n', - `disablelda` enum('n','y') NOT NULL default 'n', - `disablelmtp` enum('n','y') NOT NULL default 'n', - `disabledoveadm` enum('n','y') NOT NULL default 'n', - `last_quota_notification` date NULL default NULL, - `backup_interval` VARCHAR( 255 ) NOT NULL default 'none', - `backup_copies` INT NOT NULL DEFAULT '1', - PRIMARY KEY (`mailuser_id`), - KEY `server_id` (`server_id`,`email`), - KEY `email_access` (`email`,`access`) -) ENGINE=MyISAM DEFAULT CHARSET=utf8 AUTO_INCREMENT=1 ; - --- -------------------------------------------------------- - --- --- Table structure for table `mail_user_filter` --- - -CREATE TABLE `mail_user_filter` ( - `filter_id` int(11) unsigned NOT NULL auto_increment, - `sys_userid` int(11) unsigned NOT NULL default '0', - `sys_groupid` int(11) unsigned NOT NULL default '0', - `sys_perm_user` varchar(5) default NULL, - `sys_perm_group` varchar(5) default NULL, - `sys_perm_other` varchar(5) default NULL, - `mailuser_id` int(11) unsigned NOT NULL default '0', - `rulename` varchar(64) default NULL, - `source` varchar(255) default NULL, - `searchterm` varchar(255) default NULL, - `op` varchar(255) default NULL, - `action` varchar(255) default NULL, - `target` varchar(255) default NULL, - `active` enum('n','y') NOT NULL default 'y', - PRIMARY KEY (`filter_id`) -) ENGINE=MyISAM DEFAULT CHARSET=utf8 AUTO_INCREMENT=1 ; - --- -------------------------------------------------------- - --- --- Table structure for table `monitor_data` --- - -CREATE TABLE `monitor_data` ( - `server_id` int(11) unsigned NOT NULL default '0', - `type` varchar(255) NOT NULL default '', - `created` int(11) unsigned NOT NULL default '0', - `data` mediumtext, - `state` enum('no_state','unknown','ok','info','warning','critical','error') NOT NULL DEFAULT 'unknown', - PRIMARY KEY (`server_id`,`type`,`created`) -) ENGINE=MyISAM DEFAULT CHARSET=utf8 ; - --- -------------------------------------------------------- - --- --- Table structure for table `openvz_ip` --- - -CREATE TABLE IF NOT EXISTS `openvz_ip` ( - `ip_address_id` bigint(20) NOT NULL AUTO_INCREMENT, - `sys_userid` int(11) NOT NULL DEFAULT '0', - `sys_groupid` int(11) NOT NULL DEFAULT '0', - `sys_perm_user` varchar(5) DEFAULT NULL, - `sys_perm_group` varchar(5) DEFAULT NULL, - `sys_perm_other` varchar(5) DEFAULT NULL, - `server_id` int(11) NOT NULL DEFAULT '0', - `ip_address` varchar(39) DEFAULT NULL, - `vm_id` int(11) NOT NULL DEFAULT '0', - `reserved` varchar(255) NOT NULL DEFAULT 'n', - `additional` varchar(255) NOT NULL DEFAULT 'n', - PRIMARY KEY (`ip_address_id`) -) ENGINE=MyISAM DEFAULT CHARSET=utf8 ; - --- --- Dumping data for table `openvz_ip` --- - --- -------------------------------------------------------- - --- --- Table structure for table `openvz_ostemplate` --- - -CREATE TABLE IF NOT EXISTS `openvz_ostemplate` ( - `ostemplate_id` bigint(20) NOT NULL AUTO_INCREMENT, - `sys_userid` int(11) NOT NULL DEFAULT '0', - `sys_groupid` int(11) NOT NULL DEFAULT '0', - `sys_perm_user` varchar(5) DEFAULT NULL, - `sys_perm_group` varchar(5) DEFAULT NULL, - `sys_perm_other` varchar(5) DEFAULT NULL, - `template_name` varchar(255) DEFAULT NULL, - `template_file` varchar(255) NOT NULL DEFAULT '', - `server_id` int(11) NOT NULL DEFAULT '0', - `allservers` varchar(255) NOT NULL DEFAULT 'y', - `active` varchar(255) NOT NULL DEFAULT 'y', - `description` text, - PRIMARY KEY (`ostemplate_id`) -) ENGINE=MyISAM DEFAULT CHARSET=utf8 ; - --- --- Dumping data for table `openvz_ostemplate` --- - -INSERT INTO `openvz_ostemplate` (`ostemplate_id`, `sys_userid`, `sys_groupid`, `sys_perm_user`, `sys_perm_group`, `sys_perm_other`, `template_name`, `template_file`, `server_id`, `allservers`, `active`, `description`) VALUES(1, 1, 1, 'riud', 'riud', '', 'Debian minimal', 'debian-minimal-x86', 1, 'y', 'y', 'Debian minimal image.'); - --- -------------------------------------------------------- - --- --- Table structure for table `openvz_template` --- - -CREATE TABLE IF NOT EXISTS `openvz_template` ( - `template_id` bigint(20) NOT NULL AUTO_INCREMENT, - `sys_userid` int(11) NOT NULL DEFAULT '0', - `sys_groupid` int(11) NOT NULL DEFAULT '0', - `sys_perm_user` varchar(5) DEFAULT NULL, - `sys_perm_group` varchar(5) DEFAULT NULL, - `sys_perm_other` varchar(5) DEFAULT NULL, - `template_name` varchar(255) DEFAULT NULL, - `diskspace` int(11) NOT NULL DEFAULT '0', - `traffic` int(11) NOT NULL DEFAULT '-1', - `bandwidth` int(11) NOT NULL DEFAULT '-1', - `ram` int(11) NOT NULL DEFAULT '0', - `ram_burst` int(11) NOT NULL DEFAULT '0', - `cpu_units` int(11) NOT NULL DEFAULT '1000', - `cpu_num` int(11) NOT NULL DEFAULT '4', - `cpu_limit` int(11) NOT NULL DEFAULT '400', - `io_priority` int(11) NOT NULL DEFAULT '4', - `active` varchar(255) NOT NULL DEFAULT 'y', - `description` text, - `numproc` varchar(255) DEFAULT NULL, - `numtcpsock` varchar(255) DEFAULT NULL, - `numothersock` varchar(255) DEFAULT NULL, - `vmguarpages` varchar(255) DEFAULT NULL, - `kmemsize` varchar(255) DEFAULT NULL, - `tcpsndbuf` varchar(255) DEFAULT NULL, - `tcprcvbuf` varchar(255) DEFAULT NULL, - `othersockbuf` varchar(255) DEFAULT NULL, - `dgramrcvbuf` varchar(255) DEFAULT NULL, - `oomguarpages` varchar(255) DEFAULT NULL, - `privvmpages` varchar(255) DEFAULT NULL, - `lockedpages` varchar(255) DEFAULT NULL, - `shmpages` varchar(255) DEFAULT NULL, - `physpages` varchar(255) DEFAULT NULL, - `numfile` varchar(255) DEFAULT NULL, - `avnumproc` varchar(255) DEFAULT NULL, - `numflock` varchar(255) DEFAULT NULL, - `numpty` varchar(255) DEFAULT NULL, - `numsiginfo` varchar(255) DEFAULT NULL, - `dcachesize` varchar(255) DEFAULT NULL, - `numiptent` varchar(255) DEFAULT NULL, - `swappages` varchar(255) DEFAULT NULL, - `hostname` varchar(255) DEFAULT NULL, - `nameserver` varchar(255) DEFAULT NULL, - `create_dns` varchar(1) NOT NULL DEFAULT 'n', - `capability` varchar(255) DEFAULT NULL, - `features` varchar(255) DEFAULT NULL, - `iptables` varchar(255) DEFAULT NULL, - `custom` text, - PRIMARY KEY (`template_id`) -) ENGINE=MyISAM DEFAULT CHARSET=utf8 ; - --- --- Dumping data for table `openvz_template` --- - -INSERT INTO `openvz_template` (`template_id`, `sys_userid`, `sys_groupid`, `sys_perm_user`, `sys_perm_group`, `sys_perm_other`, `template_name`, `diskspace`, `traffic`, `bandwidth`, `ram`, `ram_burst`, `cpu_units`, `cpu_num`, `cpu_limit`, `io_priority`, `active`, `description`, `numproc`, `numtcpsock`, `numothersock`, `vmguarpages`, `kmemsize`, `tcpsndbuf`, `tcprcvbuf`, `othersockbuf`, `dgramrcvbuf`, `oomguarpages`, `privvmpages`, `lockedpages`, `shmpages`, `physpages`, `numfile`, `avnumproc`, `numflock`, `numpty`, `numsiginfo`, `dcachesize`, `numiptent`, `swappages`, `hostname`, `nameserver`, `create_dns`, `capability`, `features`, `iptables`, `custom`) VALUES(1, 1, 1, 'riud', 'riud', '', 'small', 10, -1, -1, 256, 512, 1000, 4, 400, 4, 'y', '', '999999:999999', '7999992:7999992', '7999992:7999992', '65536:unlimited', '2147483646:2147483646', '214748160:396774400', '214748160:396774400', '214748160:396774400', '214748160:396774400', '65536:65536', '131072:139264', '999999:999999', '65536:65536', '0:2147483647', '23999976:23999976', '180:180', '999999:999999', '500000:500000', '999999:999999', '2147483646:2147483646', '999999:999999', '256000:256000', 'v{VEID}.test.tld', '8.8.8.8 8.8.4.4', 'n', '', '', '', ''); - --- -------------------------------------------------------- - --- --- Table structure for table `openvz_traffic` --- - -CREATE TABLE IF NOT EXISTS `openvz_traffic` ( - `veid` int(11) NOT NULL DEFAULT '0', - `traffic_date` date NULL DEFAULT NULL, - `traffic_bytes` bigint(32) unsigned NOT NULL DEFAULT '0', - UNIQUE KEY (`veid`,`traffic_date`) -) ENGINE=MyISAM DEFAULT CHARSET=utf8; - --- --- Dumping data for table `openvz_traffic` --- - - --- -------------------------------------------------------- - --- --- Table structure for table `openvz_vm` --- - -CREATE TABLE IF NOT EXISTS `openvz_vm` ( - `vm_id` bigint(20) NOT NULL AUTO_INCREMENT, - `sys_userid` int(11) NOT NULL DEFAULT '0', - `sys_groupid` int(11) NOT NULL DEFAULT '0', - `sys_perm_user` varchar(5) DEFAULT NULL, - `sys_perm_group` varchar(5) DEFAULT NULL, - `sys_perm_other` varchar(5) DEFAULT NULL, - `server_id` int(11) NOT NULL DEFAULT '0', - `veid` int(10) unsigned NOT NULL DEFAULT '0', - `ostemplate_id` int(11) NOT NULL DEFAULT '0', - `template_id` int(11) NOT NULL DEFAULT '0', - `ip_address` varchar(255) NOT NULL DEFAULT '', - `hostname` varchar(255) DEFAULT NULL, - `vm_password` varchar(255) DEFAULT NULL, - `start_boot` varchar(255) NOT NULL DEFAULT 'y', - `bootorder` int(11) NOT NULL DEFAULT '1', - `active` varchar(255) NOT NULL DEFAULT 'y', - `active_until_date` date NULL DEFAULT NULL, - `description` text, - `diskspace` int(11) NOT NULL DEFAULT '0', - `traffic` int(11) NOT NULL DEFAULT '-1', - `bandwidth` int(11) NOT NULL DEFAULT '-1', - `ram` int(11) NOT NULL DEFAULT '0', - `ram_burst` int(11) NOT NULL DEFAULT '0', - `cpu_units` int(11) NOT NULL DEFAULT '1000', - `cpu_num` int(11) NOT NULL DEFAULT '4', - `cpu_limit` int(11) NOT NULL DEFAULT '400', - `io_priority` int(11) NOT NULL DEFAULT '4', - `nameserver` varchar(255) NOT NULL DEFAULT '8.8.8.8 8.8.4.4', - `create_dns` varchar(1) NOT NULL DEFAULT 'n', - `capability` text, - `features` text, - `iptabless` text, - `config` mediumtext, - `custom` text, - PRIMARY KEY (`vm_id`) -) ENGINE=MyISAM DEFAULT CHARSET=utf8 ; - --- --- Dumping data for table `openvz_vm` --- - --- -------------------------------------------------------- - --- --- Table structure for table `remote_session` --- - -CREATE TABLE `remote_session` ( - `remote_session` varchar(64) NOT NULL DEFAULT '', - `remote_userid` int(11) unsigned NOT NULL DEFAULT '0', - `remote_functions` text, - `client_login` tinyint(1) unsigned NOT NULL default '0', - `tstamp` int(10) unsigned NOT NULL DEFAULT '0', - PRIMARY KEY (`remote_session`) -) ENGINE=MyISAM DEFAULT CHARSET=utf8 ; - --- -------------------------------------------------------- - --- --- Table structure for table `remote_user` --- - -CREATE TABLE `remote_user` ( - `remote_userid` int(11) unsigned NOT NULL auto_increment, - `sys_userid` int(11) unsigned NOT NULL default '0', - `sys_groupid` int(11) unsigned NOT NULL default '0', - `sys_perm_user` varchar(5) default NULL, - `sys_perm_group` varchar(5) default NULL, - `sys_perm_other` varchar(5) default NULL, - `remote_username` varchar(64) NOT NULL DEFAULT '', - `remote_password` varchar(64) NOT NULL DEFAULT '', - `remote_access` enum('y','n') NOT NULL DEFAULT 'y', - `remote_ips` TEXT, - `remote_functions` text, - PRIMARY KEY (`remote_userid`) -) ENGINE=MyISAM DEFAULT CHARSET=utf8 AUTO_INCREMENT=1 ; - --- -------------------------------------------------------- - --- --- Table structure for table `server` --- - -CREATE TABLE `server` ( - `server_id` int(11) unsigned NOT NULL auto_increment, - `sys_userid` int(11) unsigned NOT NULL default '0', - `sys_groupid` int(11) unsigned NOT NULL default '0', - `sys_perm_user` varchar(5) NOT NULL default '', - `sys_perm_group` varchar(5) NOT NULL default '', - `sys_perm_other` varchar(5) NOT NULL default '', - `server_name` varchar(255) NOT NULL default '', - `mail_server` tinyint(1) NOT NULL default '0', - `web_server` tinyint(1) NOT NULL default '0', - `dns_server` tinyint(1) NOT NULL default '0', - `file_server` tinyint(1) NOT NULL default '0', - `db_server` tinyint(1) NOT NULL default '0', - `vserver_server` tinyint(1) NOT NULL default '0', - `proxy_server` tinyint(1) NOT NULL default '0', - `firewall_server` tinyint(1) NOT NULL default '0', - `xmpp_server` tinyint(1) NOT NULL default '0', - `config` text, - `updated` bigint(20) unsigned NOT NULL default '0', - `mirror_server_id` int(11) unsigned NOT NULL default '0', - `dbversion` int(11) unsigned NOT NULL default '1', - `active` tinyint(1) NOT NULL default '1', - PRIMARY KEY (`server_id`) -) ENGINE=MyISAM DEFAULT CHARSET=utf8 AUTO_INCREMENT=1 ; - --- -------------------------------------------------------- - --- --- Table structure for table `server_ip` --- - -CREATE TABLE `server_ip` ( - `server_ip_id` int(11) unsigned NOT NULL auto_increment, - `sys_userid` int(11) unsigned NOT NULL default '0', - `sys_groupid` int(11) unsigned NOT NULL default '0', - `sys_perm_user` varchar(5) default NULL, - `sys_perm_group` varchar(5) default NULL, - `sys_perm_other` varchar(5) default NULL, - `server_id` int(11) unsigned NOT NULL default '0', - `client_id` int(11) unsigned NOT NULL default '0', - `ip_type` enum( 'IPv4', 'IPv6' ) NOT NULL DEFAULT 'IPv4', - `ip_address` varchar(39) default NULL, - `virtualhost` enum('n','y') NOT NULL default 'y', - `virtualhost_port` varchar(255) default '80,443', - PRIMARY KEY (`server_ip_id`) -) ENGINE=MyISAM DEFAULT CHARSET=utf8 AUTO_INCREMENT=1 ; - --- -------------------------------------------------------- - --- --- Table structure for table `server_ip_map` --- - -CREATE TABLE `server_ip_map` ( - `server_ip_map_id` int(11) unsigned NOT NULL AUTO_INCREMENT, - `sys_userid` int(11) unsigned NOT NULL DEFAULT '0', - `sys_groupid` int(11) unsigned NOT NULL DEFAULT '0', - `sys_perm_user` varchar(5) DEFAULT NULL, - `sys_perm_group` varchar(5) DEFAULT NULL, - `sys_perm_other` varchar(5) DEFAULT NULL, - `server_id` int(11) unsigned NOT NULL DEFAULT '0', - `source_ip` varchar(15) DEFAULT NULL, - `destination_ip` varchar(35) DEFAULT '', - `active` enum('n','y') NOT NULL DEFAULT 'y', - PRIMARY KEY (`server_ip_map_id`) -) ENGINE=MyISAM DEFAULT CHARSET=utf8 AUTO_INCREMENT=1 ; - --- -------------------------------------------------------- - --- --- Table structure for table `server_php` --- - -CREATE TABLE `server_php` ( - `server_php_id` int(11) unsigned NOT NULL AUTO_INCREMENT, - `sys_userid` int(11) unsigned NOT NULL DEFAULT '0', - `sys_groupid` int(11) unsigned NOT NULL DEFAULT '0', - `sys_perm_user` varchar(5) DEFAULT NULL, - `sys_perm_group` varchar(5) DEFAULT NULL, - `sys_perm_other` varchar(5) DEFAULT NULL, - `server_id` int(11) unsigned NOT NULL DEFAULT '0', - `client_id` int(11) unsigned NOT NULL DEFAULT '0', - `name` varchar(255) DEFAULT NULL, - `php_fastcgi_binary` varchar(255) DEFAULT NULL, - `php_fastcgi_ini_dir` varchar(255) DEFAULT NULL, - `php_fpm_init_script` varchar(255) DEFAULT NULL, - `php_fpm_ini_dir` varchar(255) DEFAULT NULL, - `php_fpm_pool_dir` varchar(255) DEFAULT NULL, - `active` enum('n','y') NOT NULL DEFAULT 'y', - PRIMARY KEY (`server_php_id`) -) ENGINE=MyISAM DEFAULT CHARSET=utf8 AUTO_INCREMENT=1 ; - --- -------------------------------------------------------- - --- --- Table structure for table `shell_user` --- - -CREATE TABLE `shell_user` ( - `shell_user_id` int(11) unsigned NOT NULL auto_increment, - `sys_userid` int(11) unsigned NOT NULL default '0', - `sys_groupid` int(11) unsigned NOT NULL default '0', - `sys_perm_user` varchar(5) default NULL, - `sys_perm_group` varchar(5) default NULL, - `sys_perm_other` varchar(5) default NULL, - `server_id` int(11) unsigned NOT NULL default '0', - `parent_domain_id` int(11) unsigned NOT NULL default '0', - `username` varchar(64) default NULL, - `username_prefix` varchar(50) NOT NULL default '', - `password` varchar(64) default NULL, - `quota_size` bigint(20) NOT NULL default '-1', - `active` enum('n','y') NOT NULL default 'y', - `puser` varchar(255) default NULL, - `pgroup` varchar(255) default NULL, - `shell` varchar(255) NOT NULL default '/bin/bash', - `dir` varchar(255) default NULL, - `chroot` varchar(255) NOT NULL DEFAULT '', - `ssh_rsa` text, - PRIMARY KEY (`shell_user_id`) -) ENGINE=MyISAM DEFAULT CHARSET=utf8 AUTO_INCREMENT=1 ; - --- -------------------------------------------------------- - --- --- Table structure for table `software_package` --- - -CREATE TABLE `software_package` ( - `package_id` int(11) unsigned NOT NULL auto_increment, - `software_repo_id` int(11) unsigned NOT NULL DEFAULT '0', - `package_name` varchar(64) NOT NULL DEFAULT '', - `package_title` varchar(64) NOT NULL DEFAULT '', - `package_description` text, - `package_version` varchar(8) default NULL, - `package_type` enum('ispconfig','app','web') NOT NULL default 'app', - `package_installable` enum('yes','no','key') NOT NULL default 'yes', - `package_requires_db` enum('no','mysql') NOT NULL default 'no', - `package_remote_functions` text, - `package_key` varchar(255) NOT NULL DEFAULT '', - `package_config` text, - PRIMARY KEY (`package_id`), - UNIQUE KEY `package_name` (`package_name`) -) ENGINE=MyISAM DEFAULT CHARSET=utf8 AUTO_INCREMENT=1 ; - --- -------------------------------------------------------- - --- --- Table structure for table `software_repo` --- - -CREATE TABLE `software_repo` ( - `software_repo_id` int(11) unsigned NOT NULL auto_increment, - `sys_userid` int(11) unsigned NOT NULL default '0', - `sys_groupid` int(11) unsigned NOT NULL default '0', - `sys_perm_user` varchar(5) default NULL, - `sys_perm_group` varchar(5) default NULL, - `sys_perm_other` varchar(5) default NULL, - `repo_name` varchar(64) default NULL, - `repo_url` varchar(255) default NULL, - `repo_username` varchar(64) default NULL, - `repo_password` varchar(64) default NULL, - `active` enum('n','y') NOT NULL default 'y', - PRIMARY KEY (`software_repo_id`) -) ENGINE=MyISAM DEFAULT CHARSET=utf8 AUTO_INCREMENT=1 ; - --- -------------------------------------------------------- - --- --- Table structure for table `software_update` --- - -CREATE TABLE `software_update` ( - `software_update_id` int(11) unsigned NOT NULL auto_increment, - `software_repo_id` int(11) unsigned NOT NULL DEFAULT '0', - `package_name` varchar(64) NOT NULL DEFAULT '', - `update_url` varchar(255) NOT NULL DEFAULT '', - `update_md5` varchar(255) NOT NULL DEFAULT '', - `update_dependencies` varchar(255) NOT NULL DEFAULT '', - `update_title` varchar(64) NOT NULL DEFAULT '', - `v1` tinyint(1) NOT NULL default '0', - `v2` tinyint(1) NOT NULL default '0', - `v3` tinyint(1) NOT NULL default '0', - `v4` tinyint(1) NOT NULL default '0', - `type` enum('full','update') NOT NULL default 'full', - PRIMARY KEY (`software_update_id`) -) ENGINE=MyISAM DEFAULT CHARSET=utf8 AUTO_INCREMENT=1 ; - --- -------------------------------------------------------- - --- --- Table structure for table `software_update_inst` --- - -CREATE TABLE `software_update_inst` ( - `software_update_inst_id` int(11) unsigned NOT NULL auto_increment, - `software_update_id` int(11) unsigned NOT NULL default '0', - `package_name` varchar(64) NOT NULL DEFAULT '', - `server_id` int(11) unsigned NOT NULL DEFAULT '0', - `status` enum('none','installing','installed','deleting','deleted','failed') NOT NULL default 'none', - PRIMARY KEY (`software_update_inst_id`), - UNIQUE KEY `software_update_id` (`software_update_id`,`package_name`,`server_id`) -) ENGINE=MyISAM DEFAULT CHARSET=utf8 AUTO_INCREMENT=1 ; - --- -------------------------------------------------------- - --- --- Table structure for table `spamfilter_policy` --- - -CREATE TABLE `spamfilter_policy` ( - `id` int(11) unsigned NOT NULL auto_increment, - `sys_userid` int(11) unsigned NOT NULL DEFAULT '0', - `sys_groupid` int(11) unsigned NOT NULL DEFAULT '0', - `sys_perm_user` varchar(5) NOT NULL DEFAULT '', - `sys_perm_group` varchar(5) NOT NULL DEFAULT '', - `sys_perm_other` varchar(5) NOT NULL DEFAULT '', - `policy_name` varchar(64) default NULL, - `virus_lover` enum('N','Y') default 'N', - `spam_lover` enum('N','Y') default 'N', - `banned_files_lover` enum('N','Y') default 'N', - `bad_header_lover` enum('N','Y') default 'N', - `bypass_virus_checks` enum('N','Y') default 'N', - `bypass_spam_checks` enum('N','Y') default 'N', - `bypass_banned_checks` enum('N','Y') default 'N', - `bypass_header_checks` enum('N','Y') default 'N', - `spam_modifies_subj` enum('N','Y') default 'N', - `virus_quarantine_to` varchar(255) default NULL, - `spam_quarantine_to` varchar(255) default NULL, - `banned_quarantine_to` varchar(255) default NULL, - `bad_header_quarantine_to` varchar(255) default NULL, - `clean_quarantine_to` varchar(255) default NULL, - `other_quarantine_to` varchar(255) default NULL, - `spam_tag_level` DECIMAL(5,2) default NULL, - `spam_tag2_level` DECIMAL(5,2) default NULL, - `spam_kill_level` DECIMAL(5,2) default NULL, - `spam_dsn_cutoff_level` DECIMAL(5,2) default NULL, - `spam_quarantine_cutoff_level` DECIMAL(5,2) default NULL, - `addr_extension_virus` varchar(64) default NULL, - `addr_extension_spam` varchar(64) default NULL, - `addr_extension_banned` varchar(64) default NULL, - `addr_extension_bad_header` varchar(64) default NULL, - `warnvirusrecip` enum('N','Y') default 'N', - `warnbannedrecip` enum('N','Y') default 'N', - `warnbadhrecip` enum('N','Y') default 'N', - `newvirus_admin` varchar(64) default NULL, - `virus_admin` varchar(64) default NULL, - `banned_admin` varchar(64) default NULL, - `bad_header_admin` varchar(64) default NULL, - `spam_admin` varchar(64) default NULL, - `spam_subject_tag` varchar(64) default NULL, - `spam_subject_tag2` varchar(64) default NULL, - `message_size_limit` int(11) unsigned default NULL, - `banned_rulenames` varchar(64) default NULL, - `policyd_quota_in` int(11) NOT NULL DEFAULT '-1', - `policyd_quota_in_period` int(11) NOT NULL DEFAULT '24', - `policyd_quota_out` int(11) NOT NULL DEFAULT '-1', - `policyd_quota_out_period` int(11) NOT NULL DEFAULT '24', - `policyd_greylist` ENUM( 'Y', 'N' ) NOT NULL DEFAULT 'N', - PRIMARY KEY (`id`) -) ENGINE=MyISAM DEFAULT CHARSET=utf8 AUTO_INCREMENT=1 ; - --- -------------------------------------------------------- - --- --- Table structure for table `spamfilter_users` --- - -CREATE TABLE `spamfilter_users` ( - `id` int(11) unsigned NOT NULL auto_increment, - `sys_userid` int(11) unsigned NOT NULL DEFAULT '0', - `sys_groupid` int(11) unsigned NOT NULL DEFAULT '0', - `sys_perm_user` varchar(5) NOT NULL DEFAULT '', - `sys_perm_group` varchar(5) NOT NULL DEFAULT '', - `sys_perm_other` varchar(5) NOT NULL DEFAULT '', - `server_id` int(11) unsigned NOT NULL DEFAULT '0', - `priority` tinyint(3) unsigned NOT NULL default '7', - `policy_id` int(11) unsigned NOT NULL default '1', - `email` varchar(255) NOT NULL DEFAULT '', - `fullname` varchar(64) default NULL, - `local` varchar(1) default NULL, - PRIMARY KEY (`id`), - UNIQUE KEY `email` (`email`) -) ENGINE=MyISAM DEFAULT CHARSET=utf8 AUTO_INCREMENT=1 ; - --- -------------------------------------------------------- - --- --- Table structure for table `spamfilter_wblist` --- - -CREATE TABLE `spamfilter_wblist` ( - `wblist_id` int(11) unsigned NOT NULL auto_increment, - `sys_userid` int(11) unsigned NOT NULL DEFAULT '0', - `sys_groupid` int(11) unsigned NOT NULL DEFAULT '0', - `sys_perm_user` varchar(5) NOT NULL DEFAULT '', - `sys_perm_group` varchar(5) NOT NULL DEFAULT '', - `sys_perm_other` varchar(5) NOT NULL DEFAULT '', - `server_id` int(11) unsigned NOT NULL DEFAULT '0', - `wb` enum('W','B') NOT NULL default 'W', - `rid` int(11) unsigned NOT NULL DEFAULT '0', - `email` varchar(255) NOT NULL DEFAULT '', - `priority` tinyint(3) unsigned NOT NULL DEFAULT '0', - `active` enum('y','n') NOT NULL default 'y', - PRIMARY KEY (`wblist_id`) -) ENGINE=MyISAM DEFAULT CHARSET=utf8 AUTO_INCREMENT=1 ; - --- -------------------------------------------------------- - --- --- Table structure for table `support_message` --- - -CREATE TABLE `support_message` ( - `support_message_id` int(11) unsigned NOT NULL auto_increment, - `sys_userid` int(11) unsigned NOT NULL default '0', - `sys_groupid` int(11) unsigned NOT NULL default '0', - `sys_perm_user` varchar(5) default NULL, - `sys_perm_group` varchar(5) default NULL, - `sys_perm_other` varchar(5) default NULL, - `recipient_id` int(11) unsigned NOT NULL default '0', - `sender_id` int(11) unsigned NOT NULL default '0', - `subject` varchar(255) default NULL, - `message` text default NULL, - `tstamp` int(11) NOT NULL default '0', - PRIMARY KEY (`support_message_id`) -) ENGINE=MyISAM DEFAULT CHARSET=utf8 AUTO_INCREMENT=1 ; - --- -------------------------------------------------------- - --- --- Table structure for table `sys_config` --- - -CREATE TABLE `sys_config` ( - `group` varchar(64) NOT NULL DEFAULT '', - `name` varchar(64) NOT NULL DEFAULT '', - `value` varchar(255) NOT NULL DEFAULT '', - PRIMARY KEY (`group`, `name`) -) ENGINE=MyISAM DEFAULT CHARSET=utf8; - - --- -------------------------------------------------------- - --- --- Table structure for table `sys_cron` --- - -CREATE TABLE IF NOT EXISTS `sys_cron` ( - `name` varchar(50) NOT NULL DEFAULT '', - `last_run` datetime NULL DEFAULT NULL, - `next_run` datetime NULL DEFAULT NULL, - `running` tinyint(1) UNSIGNED NOT NULL DEFAULT '0', - PRIMARY KEY (`name`) -) ENGINE=MyISAM DEFAULT CHARSET=utf8; - - --- -------------------------------------------------------- - --- --- Table structure for table `sys_datalog` --- - -CREATE TABLE `sys_datalog` ( - `datalog_id` int(11) unsigned NOT NULL auto_increment, - `server_id` int(11) unsigned NOT NULL DEFAULT '0', - `dbtable` varchar(255) NOT NULL default '', - `dbidx` varchar(255) NOT NULL default '', - `action` char(1) NOT NULL default '', - `tstamp` int(11) NOT NULL default '0', - `user` varchar(255) NOT NULL default '', - `data` longtext, - `status` set('pending','ok','warning','error') NOT NULL default 'ok', - `error` mediumtext, - `session_id` varchar(64) NOT NULL DEFAULT '', - PRIMARY KEY (`datalog_id`), - KEY `server_id` (`server_id`,`status`) -) ENGINE=MyISAM DEFAULT CHARSET=utf8 AUTO_INCREMENT=1 ; - --- -------------------------------------------------------- - --- --- Table structure for table `sys_dbsync` --- - -CREATE TABLE `sys_dbsync` ( - `id` int(11) unsigned NOT NULL auto_increment, - `jobname` varchar(64) NOT NULL default '', - `sync_interval_minutes` int(11) unsigned NOT NULL default '0', - `db_type` varchar(16) NOT NULL default '', - `db_host` varchar(255) NOT NULL default '', - `db_name` varchar(64) NOT NULL default '', - `db_username` varchar(64) NOT NULL default '', - `db_password` varchar(64) NOT NULL default '', - `db_tables` varchar(255) NOT NULL default 'admin,forms', - `empty_datalog` int(11) unsigned NOT NULL default '0', - `sync_datalog_external` int(11) unsigned NOT NULL default '0', - `active` tinyint(1) NOT NULL default '1', - `last_datalog_id` int(11) unsigned NOT NULL default '0', - PRIMARY KEY (`id`), - KEY `last_datalog_id` (`last_datalog_id`) -) ENGINE=MyISAM DEFAULT CHARSET=utf8 AUTO_INCREMENT=1 ; - --- -------------------------------------------------------- - --- --- Table structure for table `sys_filesync` --- - -CREATE TABLE `sys_filesync` ( - `id` int(11) unsigned NOT NULL auto_increment, - `jobname` varchar(64) NOT NULL default '', - `sync_interval_minutes` int(11) unsigned NOT NULL default '0', - `ftp_host` varchar(255) NOT NULL default '', - `ftp_path` varchar(255) NOT NULL default '', - `ftp_username` varchar(64) NOT NULL default '', - `ftp_password` varchar(64) NOT NULL default '', - `local_path` varchar(255) NOT NULL default '', - `wput_options` varchar(255) NOT NULL default '--timestamping --reupload --dont-continue', - `active` tinyint(1) NOT NULL default '1', - PRIMARY KEY (`id`) -) ENGINE=MyISAM DEFAULT CHARSET=utf8 AUTO_INCREMENT=1 ; - --- -------------------------------------------------------- - --- --- Table structure for table `sys_group` --- - -CREATE TABLE `sys_group` ( - `groupid` int(11) unsigned NOT NULL auto_increment, - `name` varchar(64) NOT NULL default '', - `description` text, - `client_id` int(11) unsigned NOT NULL default '0', - PRIMARY KEY (`groupid`) -) ENGINE=MyISAM DEFAULT CHARSET=utf8 AUTO_INCREMENT=1 ; - --- -------------------------------------------------------- - --- --- Table structure for table `sys_ini` --- - -CREATE TABLE `sys_ini` ( - `sysini_id` int(11) unsigned NOT NULL auto_increment, - `config` longtext, - `default_logo` text NOT NULL, - `custom_logo` text NOT NULL, - PRIMARY KEY (`sysini_id`) -) ENGINE=MyISAM DEFAULT CHARSET=utf8 AUTO_INCREMENT=1 ; - --- -------------------------------------------------------- - --- --- Table structure for table `sys_log` --- - -CREATE TABLE `sys_log` ( - `syslog_id` int(11) unsigned NOT NULL auto_increment, - `server_id` int(11) unsigned NOT NULL default '0', - `datalog_id` int(11) unsigned NOT NULL default '0', - `loglevel` tinyint(4) NOT NULL default '0', - `tstamp` int(11) unsigned NOT NULL DEFAULT '0', - `message` text, - PRIMARY KEY (`syslog_id`) -) ENGINE=MyISAM DEFAULT CHARSET=utf8 AUTO_INCREMENT=1 ; - --- -------------------------------------------------------- - --- --- Table structure for table `sys_remoteaction` --- - -CREATE TABLE `sys_remoteaction` ( - `action_id` int(11) unsigned NOT NULL AUTO_INCREMENT, - `server_id` int(11) unsigned NOT NULL DEFAULT '0', - `tstamp` int(11) NOT NULL DEFAULT '0', - `action_type` varchar(20) NOT NULL DEFAULT '', - `action_param` mediumtext, - `action_state` enum('pending','ok','warning','error') NOT NULL DEFAULT 'pending', - `response` mediumtext, - PRIMARY KEY (`action_id`), - KEY `server_id` (`server_id`) -) ENGINE=MyISAM DEFAULT CHARSET=utf8 AUTO_INCREMENT=1 ; - --- -------------------------------------------------------- - --- --- Table structure for table `sys_session` --- - -CREATE TABLE `sys_session` ( - `session_id` varchar(64) NOT NULL DEFAULT '', - `date_created` datetime NULL DEFAULT NULL, - `last_updated` datetime NULL DEFAULT NULL, - `permanent` enum('n','y') NOT NULL DEFAULT 'n', - `session_data` longtext, - PRIMARY KEY (`session_id`), - KEY `last_updated` (`last_updated`) -) ENGINE=MyISAM DEFAULT CHARSET=utf8 ; - --- -------------------------------------------------------- - --- --- Table structure for table `sys_theme` --- - -CREATE TABLE IF NOT EXISTS `sys_theme` ( - `sys_userid` int(11) unsigned NOT NULL DEFAULT '0', - `sys_groupid` int(11) unsigned NOT NULL DEFAULT '0', - `sys_perm_user` varchar(5) DEFAULT NULL, - `sys_perm_group` varchar(5) DEFAULT NULL, - `sys_perm_other` varchar(5) DEFAULT NULL, - `var_id` int(11) unsigned NOT NULL AUTO_INCREMENT, - `tpl_name` varchar(32) NOT NULL DEFAULT '', - `username` varchar(64) NOT NULL DEFAULT '', - `logo_url` varchar(255) NOT NULL DEFAULT '', - PRIMARY KEY (`var_id`) -) ENGINE=MyISAM DEFAULT CHARSET=utf8 ; - --- -------------------------------------------------------- - --- --- Table structure for table `sys_user` --- - -CREATE TABLE `sys_user` ( - `userid` int(11) unsigned NOT NULL auto_increment, - `sys_userid` int(11) unsigned NOT NULL default '1' COMMENT 'Created by userid', - `sys_groupid` int(11) unsigned NOT NULL default '1' COMMENT 'Created by groupid', - `sys_perm_user` varchar(5) NOT NULL default 'riud', - `sys_perm_group` varchar(5) NOT NULL default 'riud', - `sys_perm_other` varchar(5) NOT NULL default '', - `username` varchar(64) NOT NULL default '', - `passwort` varchar(64) NOT NULL default '', - `modules` varchar(255) NOT NULL default '', - `startmodule` varchar(255) NOT NULL default '', - `app_theme` varchar(32) NOT NULL default 'default', - `typ` varchar(16) NOT NULL default 'user', - `active` tinyint(1) NOT NULL default '1', - `language` varchar(2) NOT NULL default 'en', - `groups` TEXT, - `default_group` int(11) unsigned NOT NULL default '0', - `client_id` int(11) unsigned NOT NULL default '0', - `id_rsa` VARCHAR( 2000 ) NOT NULL default '', - `ssh_rsa` VARCHAR( 600 ) NOT NULL default '', - `lost_password_function` tinyint(1) NOT NULL default '1', - `lost_password_hash` VARCHAR(50) NOT NULL default '', - `lost_password_reqtime` DATETIME NULL default NULL, - PRIMARY KEY (`userid`) -) ENGINE=MyISAM DEFAULT CHARSET=utf8 AUTO_INCREMENT=1 ; - --- -------------------------------------------------------- - --- --- Table structure for table `webdav_user` --- - -CREATE TABLE `webdav_user` ( - `webdav_user_id` int(11) unsigned NOT NULL AUTO_INCREMENT, - `sys_userid` int(11) unsigned NOT NULL DEFAULT '0', - `sys_groupid` int(11) unsigned NOT NULL DEFAULT '0', - `sys_perm_user` varchar(5) DEFAULT NULL, - `sys_perm_group` varchar(5) DEFAULT NULL, - `sys_perm_other` varchar(5) DEFAULT NULL, - `server_id` int(11) unsigned NOT NULL DEFAULT '0', - `parent_domain_id` int(11) unsigned NOT NULL DEFAULT '0', - `username` varchar(64) DEFAULT NULL, - `username_prefix` varchar(50) NOT NULL default '', - `password` varchar(64) DEFAULT NULL, - `active` enum('n','y') NOT NULL DEFAULT 'y', - `dir` varchar(255) DEFAULT NULL, - PRIMARY KEY (`webdav_user_id`) -) ENGINE=MyISAM DEFAULT CHARSET=utf8 AUTO_INCREMENT=1 ; - --- -------------------------------------------------------- - --- --- Table structure for table `web_backup` --- - -CREATE TABLE `web_backup` ( - `backup_id` int(10) unsigned NOT NULL AUTO_INCREMENT, - `server_id` int(10) unsigned NOT NULL DEFAULT '0', - `parent_domain_id` int(10) unsigned NOT NULL DEFAULT '0', - `backup_type` enum('web','mysql','mongodb') NOT NULL DEFAULT 'web', - `backup_mode` varchar(64) NOT NULL DEFAULT '', - `tstamp` int(10) unsigned NOT NULL DEFAULT '0', - `filename` varchar(255) NOT NULL DEFAULT '', - `filesize` VARCHAR(20) NOT NULL DEFAULT '', - PRIMARY KEY (`backup_id`) -) ENGINE=MyISAM DEFAULT CHARSET=utf8 AUTO_INCREMENT=1 ; - --- -------------------------------------------------------- - --- --- Table structure for table `web_database` --- - -CREATE TABLE `web_database` ( - `database_id` int(11) unsigned NOT NULL AUTO_INCREMENT, - `sys_userid` int(11) unsigned NOT NULL DEFAULT '0', - `sys_groupid` int(11) unsigned NOT NULL DEFAULT '0', - `sys_perm_user` varchar(5) DEFAULT NULL, - `sys_perm_group` varchar(5) DEFAULT NULL, - `sys_perm_other` varchar(5) DEFAULT NULL, - `server_id` int(11) unsigned NOT NULL DEFAULT '0', - `parent_domain_id` int(11) unsigned NOT NULL DEFAULT '0', - `type` varchar(16) NOT NULL DEFAULT 'y', - `database_name` varchar(64) DEFAULT NULL, - `database_name_prefix` varchar(50) NOT NULL default '', - `database_quota` int(11) DEFAULT NULL, - `quota_exceeded` enum('n','y') NOT NULL DEFAULT 'n', - `last_quota_notification` date NULL default NULL, - `database_user_id` int(11) unsigned DEFAULT NULL, - `database_ro_user_id` int(11) unsigned DEFAULT NULL, - `database_charset` varchar(64) DEFAULT NULL, - `remote_access` enum('n','y') NOT NULL DEFAULT 'y', - `remote_ips` text, - `backup_interval` VARCHAR( 255 ) NOT NULL DEFAULT 'none', - `backup_copies` INT NOT NULL DEFAULT '1', - `active` enum('n','y') NOT NULL DEFAULT 'y', - PRIMARY KEY (`database_id`), - KEY `database_user_id` (`database_user_id`), - KEY `database_ro_user_id` (`database_ro_user_id`) -) ENGINE=MyISAM DEFAULT CHARSET=utf8 AUTO_INCREMENT=1 ; - --- -------------------------------------------------------- - --- --- Tabellenstruktur für Tabelle `web_database_user` --- - -CREATE TABLE IF NOT EXISTS `web_database_user` ( - `database_user_id` int(11) unsigned NOT NULL AUTO_INCREMENT, - `sys_userid` int(11) unsigned NOT NULL DEFAULT '0', - `sys_groupid` int(11) unsigned NOT NULL DEFAULT '0', - `sys_perm_user` varchar(5) DEFAULT NULL, - `sys_perm_group` varchar(5) DEFAULT NULL, - `sys_perm_other` varchar(5) DEFAULT NULL, - `server_id` int(11) UNSIGNED NOT NULL DEFAULT '0', - `database_user` varchar(64) DEFAULT NULL, - `database_user_prefix` varchar(50) NOT NULL default '', - `database_password` varchar(64) DEFAULT NULL, - `database_password_mongo` varchar(32) DEFAULT NULL, - PRIMARY KEY (`database_user_id`) -) ENGINE=MyISAM DEFAULT CHARSET=utf8 AUTO_INCREMENT=1 ; - --- -------------------------------------------------------- - --- --- Table structure for table `web_domain` --- - -CREATE TABLE `web_domain` ( - `domain_id` int(11) unsigned NOT NULL auto_increment, - `sys_userid` int(11) unsigned NOT NULL default '0', - `sys_groupid` int(11) unsigned NOT NULL default '0', - `sys_perm_user` varchar(5) default NULL, - `sys_perm_group` varchar(5) default NULL, - `sys_perm_other` varchar(5) default NULL, - `server_id` int(11) unsigned NOT NULL default '0', - `ip_address` varchar(39) default NULL, - `ipv6_address` VARCHAR( 255 ) default NULL, - `domain` varchar(255) default NULL, - `type` varchar(32) default NULL, - `parent_domain_id` int(11) unsigned NOT NULL default '0', - `vhost_type` varchar(32) default NULL, - `document_root` varchar(255) default NULL, - `web_folder` varchar(100) default NULL, - `system_user` varchar(255) default NULL, - `system_group` varchar(255) default NULL, - `hd_quota` bigint(20) NOT NULL default '0', - `traffic_quota` bigint(20) NOT NULL default '-1', - `cgi` enum('n','y') NOT NULL default 'y', - `ssi` enum('n','y') NOT NULL default 'y', - `suexec` enum('n','y') NOT NULL default 'y', - `errordocs` tinyint(1) NOT NULL default '1', - `is_subdomainwww` tinyint(1) NOT NULL default '1', - `subdomain` enum('none','www','*') NOT NULL default 'none', - `php` varchar(32) NOT NULL default 'y', - `ruby` enum('n','y') NOT NULL default 'n', - `python` enum('n','y') NOT NULL default 'n', - `perl` enum('n','y') NOT NULL default 'n', - `redirect_type` varchar(255) default NULL, - `redirect_path` varchar(255) default NULL, - `seo_redirect` varchar(255) default NULL, - `rewrite_to_https` ENUM('y','n') NOT NULL DEFAULT 'n', - `ssl` enum('n','y') NOT NULL default 'n', - `ssl_letsencrypt` enum('n','y') NOT NULL DEFAULT 'n', - `ssl_letsencrypt_exclude` enum('n','y') NOT NULL DEFAULT 'n', - `ssl_state` varchar(255) NULL, - `ssl_locality` varchar(255) NULL, - `ssl_organisation` varchar(255) NULL, - `ssl_organisation_unit` varchar(255) NULL, - `ssl_country` varchar(255) NULL, - `ssl_domain` varchar(255) NULL, - `ssl_request` mediumtext NULL, - `ssl_cert` mediumtext NULL, - `ssl_bundle` mediumtext NULL, - `ssl_key` mediumtext NULL, - `ssl_action` varchar(16) NULL, - `stats_password` varchar(255) default NULL, - `stats_type` varchar(255) default 'awstats', - `allow_override` varchar(255) NOT NULL default 'All', - `apache_directives` mediumtext, - `nginx_directives` mediumtext, - `php_fpm_use_socket` ENUM('n','y') NOT NULL DEFAULT 'y', - `php_fpm_chroot` enum('n','y') NOT NULL DEFAULT 'n', - `pm` enum('static','dynamic','ondemand') NOT NULL DEFAULT 'dynamic', - `pm_max_children` int(11) NOT NULL DEFAULT '10', - `pm_start_servers` int(11) NOT NULL DEFAULT '2', - `pm_min_spare_servers` int(11) NOT NULL DEFAULT '1', - `pm_max_spare_servers` int(11) NOT NULL DEFAULT '5', - `pm_process_idle_timeout` int(11) NOT NULL DEFAULT '10', - `pm_max_requests` int(11) NOT NULL DEFAULT '0', - `php_open_basedir` mediumtext, - `custom_php_ini` mediumtext, - `backup_interval` VARCHAR( 255 ) NOT NULL DEFAULT 'none', - `backup_copies` INT NOT NULL DEFAULT '1', - `backup_excludes` mediumtext, - `active` enum('n','y') NOT NULL default 'y', - `traffic_quota_lock` enum('n','y') NOT NULL default 'n', - `fastcgi_php_version` varchar(255) DEFAULT NULL, - `proxy_directives` mediumtext, - `enable_spdy` ENUM('y','n') NULL DEFAULT 'n', - `last_quota_notification` date NULL default NULL, - `rewrite_rules` mediumtext, - `added_date` date NULL DEFAULT NULL, - `added_by` varchar(255) DEFAULT NULL, - `directive_snippets_id` int(11) unsigned NOT NULL default '0', - `enable_pagespeed` ENUM('y','n') NOT NULL DEFAULT 'n', - `http_port` int(11) unsigned NOT NULL DEFAULT '80', - `https_port` int(11) unsigned NOT NULL DEFAULT '443', - `folder_directive_snippets` text, - `log_retention` int(11) NOT NULL DEFAULT '10', - PRIMARY KEY (`domain_id`), - UNIQUE KEY `serverdomain` ( `server_id` , `ip_address`, `domain` ) -) ENGINE=MyISAM DEFAULT CHARSET=utf8 AUTO_INCREMENT=1 ; - --- -------------------------------------------------------- - --- --- Table structure for table `web_folder` --- - -CREATE TABLE IF NOT EXISTS `web_folder` ( - `web_folder_id` bigint(20) NOT NULL AUTO_INCREMENT, - `sys_userid` int(11) NOT NULL DEFAULT '0', - `sys_groupid` int(11) NOT NULL DEFAULT '0', - `sys_perm_user` varchar(5) DEFAULT NULL, - `sys_perm_group` varchar(5) DEFAULT NULL, - `sys_perm_other` varchar(5) DEFAULT NULL, - `server_id` int(11) NOT NULL DEFAULT '0', - `parent_domain_id` int(11) NOT NULL DEFAULT '0', - `path` varchar(255) DEFAULT NULL, - `active` varchar(255) NOT NULL DEFAULT 'y', - PRIMARY KEY (`web_folder_id`) -) ENGINE=MyISAM DEFAULT CHARSET=utf8 AUTO_INCREMENT=1 ; - --- --- Dumping data for table `web_folder` --- - - --- -------------------------------------------------------- - --- --- Table structure for table `web_folder_user` --- - -CREATE TABLE IF NOT EXISTS `web_folder_user` ( - `web_folder_user_id` bigint(20) NOT NULL AUTO_INCREMENT, - `sys_userid` int(11) NOT NULL DEFAULT '0', - `sys_groupid` int(11) NOT NULL DEFAULT '0', - `sys_perm_user` varchar(5) DEFAULT NULL, - `sys_perm_group` varchar(5) DEFAULT NULL, - `sys_perm_other` varchar(5) DEFAULT NULL, - `server_id` int(11) NOT NULL DEFAULT '0', - `web_folder_id` int(11) NOT NULL DEFAULT '0', - `username` varchar(255) DEFAULT NULL, - `password` varchar(255) DEFAULT NULL, - `active` varchar(255) NOT NULL DEFAULT 'y', - PRIMARY KEY (`web_folder_user_id`) -) ENGINE=MyISAM DEFAULT CHARSET=utf8 AUTO_INCREMENT=1 ; - --- --- Dumping data for table `web_folder_user` --- - --- -------------------------------------------------------- - --- --- Table structure for table `web_traffic` --- - -CREATE TABLE `web_traffic` ( - `hostname` varchar(255) NOT NULL DEFAULT '', - `traffic_date` date NULL DEFAULT NULL, - `traffic_bytes` bigint(32) unsigned NOT NULL default '0', - UNIQUE KEY (`hostname`,`traffic_date`) -) ENGINE=MyISAM DEFAULT CHARSET=utf8 ; - --- -------------------------------------------------------- - --- --- Table structure for table `xmpp_domain` --- - -CREATE TABLE `xmpp_domain` ( - `domain_id` int(11) unsigned NOT NULL auto_increment, - `sys_userid` int(11) unsigned NOT NULL default '0', - `sys_groupid` int(11) unsigned NOT NULL default '0', - `sys_perm_user` varchar(5) NOT NULL default '', - `sys_perm_group` varchar(5) NOT NULL default '', - `sys_perm_other` varchar(5) NOT NULL default '', - `server_id` int(11) unsigned NOT NULL default '0', - `domain` varchar(255) NOT NULL default '', - - `management_method` ENUM( 'normal', 'maildomain' ) NOT NULL default 'normal', - `public_registration` ENUM( 'n', 'y' ) NOT NULL default 'n', - `registration_url` varchar(255) NOT NULL DEFAULT '', - `registration_message` varchar(255) NOT NULL DEFAULT '', - `domain_admins` text, - - `use_pubsub` enum('n','y') NOT NULL DEFAULT 'n', - `use_proxy` enum('n','y') NOT NULL DEFAULT 'n', - `use_anon_host` enum('n','y') NOT NULL DEFAULT 'n', - - `use_vjud` enum('n','y') NOT NULL DEFAULT 'n', - `vjud_opt_mode` enum('in', 'out') NOT NULL DEFAULT 'in', - - `use_muc_host` enum('n','y') NOT NULL DEFAULT 'n', - `muc_name` varchar(30) NOT NULL DEFAULT '', - `muc_restrict_room_creation` enum('n', 'y', 'm') NOT NULL DEFAULT 'm', - `muc_admins` text, - `use_pastebin` enum('n','y') NOT NULL DEFAULT 'n', - `pastebin_expire_after` int(3) NOT NULL DEFAULT 48, - `pastebin_trigger` varchar(10) NOT NULL DEFAULT '!paste', - `use_http_archive` enum('n','y') NOT NULL DEFAULT 'n', - `http_archive_show_join` enum('n', 'y') NOT NULL DEFAULT 'n', - `http_archive_show_status` enum('n', 'y') NOT NULL DEFAULT 'n', - `use_status_host` enum('n','y') NOT NULL DEFAULT 'n', - - `ssl_state` varchar(255) NULL, - `ssl_locality` varchar(255) NULL, - `ssl_organisation` varchar(255) NULL, - `ssl_organisation_unit` varchar(255) NULL, - `ssl_country` varchar(255) NULL, - `ssl_email` varchar(255) NULL, - `ssl_request` mediumtext NULL, - `ssl_cert` mediumtext NULL, - `ssl_bundle` mediumtext NULL, - `ssl_key` mediumtext NULL, - `ssl_action` varchar(16) NULL, - - `active` enum('n','y') NOT NULL DEFAULT 'n', - PRIMARY KEY (`domain_id`), - KEY `server_id` (`server_id`,`domain`), - KEY `domain_active` (`domain`,`active`) -) ENGINE=MyISAM DEFAULT CHARSET=utf8 AUTO_INCREMENT=1 ; - --- -------------------------------------------------------- - --- --- Table structure for table `xmpp_user` --- - -CREATE TABLE `xmpp_user` ( - `xmppuser_id` int(11) unsigned NOT NULL auto_increment, - `sys_userid` int(11) unsigned NOT NULL default '0', - `sys_groupid` int(11) unsigned NOT NULL default '0', - `sys_perm_user` varchar(5) NOT NULL default '', - `sys_perm_group` varchar(5) NOT NULL default '', - `sys_perm_other` varchar(5) NOT NULL default '', - `server_id` int(11) unsigned NOT NULL default '0', - `jid` varchar(255) NOT NULL default '', - `password` varchar(255) NOT NULL default '', - `active` enum('n','y') NOT NULL DEFAULT 'n', - PRIMARY KEY (`xmppuser_id`), - KEY `server_id` (`server_id`,`jid`), - KEY `jid_active` (`jid`,`active`) -) ENGINE=MyISAM DEFAULT CHARSET=utf8 AUTO_INCREMENT=1 ; - --- -------------------------------------------------------- - --- -------------------------------------------------------- --- -------------------------------------------------------- --- DB-DATA --- -------------------------------------------------------- --- -------------------------------------------------------- - --- --- Dumping data for table `aps_settings` --- - -INSERT INTO `aps_settings` (`id`, `name`, `value`) VALUES(1, 'ignore-php-extension', ''); -INSERT INTO `aps_settings` (`id`, `name`, `value`) VALUES(2, 'ignore-php-configuration', ''); -INSERT INTO `aps_settings` (`id`, `name`, `value`) VALUES(3, 'ignore-webserver-module', ''); - --- -------------------------------------------------------- - --- --- Dumping data for table `country` --- - -INSERT INTO `country` (`iso`, `name`, `printable_name`, `iso3`, `numcode`, `eu`) VALUES -('AF', 'AFGHANISTAN', 'Afghanistan', 'AFG', 4, 'n'), -('AL', 'ALBANIA', 'Albania', 'ALB', 8, 'n'), -('DZ', 'ALGERIA', 'Algeria', 'DZA', 12, 'n'), -('AS', 'AMERICAN SAMOA', 'American Samoa', 'ASM', 16, 'n'), -('AD', 'ANDORRA', 'Andorra', 'AND', 20, 'n'), -('AO', 'ANGOLA', 'Angola', 'AGO', 24, 'n'), -('AI', 'ANGUILLA', 'Anguilla', 'AIA', 660, 'n'), -('AQ', 'ANTARCTICA', 'Antarctica', NULL, NULL, 'n'), -('AG', 'ANTIGUA AND BARBUDA', 'Antigua and Barbuda', 'ATG', 28, 'n'), -('AR', 'ARGENTINA', 'Argentina', 'ARG', 32, 'n'), -('AM', 'ARMENIA', 'Armenia', 'ARM', 51, 'n'), -('AW', 'ARUBA', 'Aruba', 'ABW', 533, 'n'), -('AU', 'AUSTRALIA', 'Australia', 'AUS', 36, 'n'), -('AT', 'AUSTRIA', 'Austria', 'AUT', 40, 'y'), -('AZ', 'AZERBAIJAN', 'Azerbaijan', 'AZE', 31, 'n'), -('BS', 'BAHAMAS', 'Bahamas', 'BHS', 44, 'n'), -('BH', 'BAHRAIN', 'Bahrain', 'BHR', 48, 'n'), -('BD', 'BANGLADESH', 'Bangladesh', 'BGD', 50, 'n'), -('BB', 'BARBADOS', 'Barbados', 'BRB', 52, 'n'), -('BY', 'BELARUS', 'Belarus', 'BLR', 112, 'n'), -('BE', 'BELGIUM', 'Belgium', 'BEL', 56, 'y'), -('BZ', 'BELIZE', 'Belize', 'BLZ', 84, 'n'), -('BJ', 'BENIN', 'Benin', 'BEN', 204, 'n'), -('BM', 'BERMUDA', 'Bermuda', 'BMU', 60, 'n'), -('BT', 'BHUTAN', 'Bhutan', 'BTN', 64, 'n'), -('BO', 'BOLIVIA', 'Bolivia', 'BOL', 68, 'n'), -('BA', 'BOSNIA AND HERZEGOVINA', 'Bosnia and Herzegovina', 'BIH', 70, 'n'), -('BW', 'BOTSWANA', 'Botswana', 'BWA', 72, 'n'), -('BV', 'BOUVET ISLAND', 'Bouvet Island', NULL, NULL, 'n'), -('BR', 'BRAZIL', 'Brazil', 'BRA', 76, 'n'), -('IO', 'BRITISH INDIAN OCEAN TERRITORY', 'British Indian Ocean Territory', NULL, NULL, 'n'), -('BN', 'BRUNEI DARUSSALAM', 'Brunei Darussalam', 'BRN', 96, 'n'), -('BG', 'BULGARIA', 'Bulgaria', 'BGR', 100, 'y'), -('BF', 'BURKINA FASO', 'Burkina Faso', 'BFA', 854, 'n'), -('BI', 'BURUNDI', 'Burundi', 'BDI', 108, 'n'), -('KH', 'CAMBODIA', 'Cambodia', 'KHM', 116, 'n'), -('CM', 'CAMEROON', 'Cameroon', 'CMR', 120, 'n'), -('CA', 'CANADA', 'Canada', 'CAN', 124, 'n'), -('CV', 'CAPE VERDE', 'Cape Verde', 'CPV', 132, 'n'), -('KY', 'CAYMAN ISLANDS', 'Cayman Islands', 'CYM', 136, 'n'), -('CF', 'CENTRAL AFRICAN REPUBLIC', 'Central African Republic', 'CAF', 140, 'n'), -('TD', 'CHAD', 'Chad', 'TCD', 148, 'n'), -('CL', 'CHILE', 'Chile', 'CHL', 152, 'n'), -('CN', 'CHINA', 'China', 'CHN', 156, 'n'), -('CX', 'CHRISTMAS ISLAND', 'Christmas Island', NULL, NULL, 'n'), -('CC', 'COCOS (KEELING) ISLANDS', 'Cocos (Keeling) Islands', NULL, NULL, 'n'), -('CO', 'COLOMBIA', 'Colombia', 'COL', 170, 'n'), -('KM', 'COMOROS', 'Comoros', 'COM', 174, 'n'), -('CG', 'CONGO', 'Congo', 'COG', 178, 'n'), -('CD', 'CONGO, THE DEMOCRATIC REPUBLIC OF THE', 'Congo, the Democratic Republic of the', 'COD', 180, 'n'), -('CK', 'COOK ISLANDS', 'Cook Islands', 'COK', 184, 'n'), -('CR', 'COSTA RICA', 'Costa Rica', 'CRI', 188, 'n'), -('CI', 'COTE D''IVOIRE', 'Cote D''Ivoire', 'CIV', 384, 'n'), -('HR', 'CROATIA', 'Croatia', 'HRV', 191, 'y'), -('CU', 'CUBA', 'Cuba', 'CUB', 192, 'n'), -('CY', 'CYPRUS', 'Cyprus', 'CYP', 196, 'y'), -('CZ', 'CZECH REPUBLIC', 'Czech Republic', 'CZE', 203, 'y'), -('DK', 'DENMARK', 'Denmark', 'DNK', 208, 'y'), -('DJ', 'DJIBOUTI', 'Djibouti', 'DJI', 262, 'n'), -('DM', 'DOMINICA', 'Dominica', 'DMA', 212, 'n'), -('DO', 'DOMINICAN REPUBLIC', 'Dominican Republic', 'DOM', 214, 'n'), -('EC', 'ECUADOR', 'Ecuador', 'ECU', 218, 'n'), -('EG', 'EGYPT', 'Egypt', 'EGY', 818, 'n'), -('SV', 'EL SALVADOR', 'El Salvador', 'SLV', 222, 'n'), -('GQ', 'EQUATORIAL GUINEA', 'Equatorial Guinea', 'GNQ', 226, 'n'), -('ER', 'ERITREA', 'Eritrea', 'ERI', 232, 'n'), -('EE', 'ESTONIA', 'Estonia', 'EST', 233, 'y'), -('ET', 'ETHIOPIA', 'Ethiopia', 'ETH', 231, 'n'), -('FK', 'FALKLAND ISLANDS (MALVINAS)', 'Falkland Islands (Malvinas)', 'FLK', 238, 'n'), -('FO', 'FAROE ISLANDS', 'Faroe Islands', 'FRO', 234, 'n'), -('FJ', 'FIJI', 'Fiji', 'FJI', 242, 'n'), -('FI', 'FINLAND', 'Finland', 'FIN', 246, 'y'), -('FR', 'FRANCE', 'France', 'FRA', 250, 'y'), -('GF', 'FRENCH GUIANA', 'French Guiana', 'GUF', 254, 'n'), -('PF', 'FRENCH POLYNESIA', 'French Polynesia', 'PYF', 258, 'n'), -('TF', 'FRENCH SOUTHERN TERRITORIES', 'French Southern Territories', NULL, NULL, 'n'), -('GA', 'GABON', 'Gabon', 'GAB', 266, 'n'), -('GM', 'GAMBIA', 'Gambia', 'GMB', 270, 'n'), -('GE', 'GEORGIA', 'Georgia', 'GEO', 268, 'n'), -('DE', 'GERMANY', 'Germany', 'DEU', 276, 'y'), -('GH', 'GHANA', 'Ghana', 'GHA', 288, 'n'), -('GI', 'GIBRALTAR', 'Gibraltar', 'GIB', 292, 'n'), -('GR', 'GREECE', 'Greece', 'GRC', 300, 'y'), -('GL', 'GREENLAND', 'Greenland', 'GRL', 304, 'n'), -('GD', 'GRENADA', 'Grenada', 'GRD', 308, 'n'), -('GP', 'GUADELOUPE', 'Guadeloupe', 'GLP', 312, 'n'), -('GU', 'GUAM', 'Guam', 'GUM', 316, 'n'), -('GT', 'GUATEMALA', 'Guatemala', 'GTM', 320, 'n'), -('GN', 'GUINEA', 'Guinea', 'GIN', 324, 'n'), -('GW', 'GUINEA-BISSAU', 'Guinea-Bissau', 'GNB', 624, 'n'), -('GY', 'GUYANA', 'Guyana', 'GUY', 328, 'n'), -('HT', 'HAITI', 'Haiti', 'HTI', 332, 'n'), -('HM', 'HEARD ISLAND AND MCDONALD ISLANDS', 'Heard Island and Mcdonald Islands', NULL, NULL, 'n'), -('VA', 'HOLY SEE (VATICAN CITY STATE)', 'Holy See (Vatican City State)', 'VAT', 336, 'n'), -('HN', 'HONDURAS', 'Honduras', 'HND', 340, 'n'), -('HK', 'HONG KONG', 'Hong Kong', 'HKG', 344, 'n'), -('HU', 'HUNGARY', 'Hungary', 'HUN', 348, 'y'), -('IS', 'ICELAND', 'Iceland', 'ISL', 352, 'n'), -('IN', 'INDIA', 'India', 'IND', 356, 'n'), -('ID', 'INDONESIA', 'Indonesia', 'IDN', 360, 'n'), -('IR', 'IRAN, ISLAMIC REPUBLIC OF', 'Iran, Islamic Republic of', 'IRN', 364, 'n'), -('IQ', 'IRAQ', 'Iraq', 'IRQ', 368, 'n'), -('IE', 'IRELAND', 'Ireland', 'IRL', 372, 'y'), -('IL', 'ISRAEL', 'Israel', 'ISR', 376, 'n'), -('IT', 'ITALY', 'Italy', 'ITA', 380, 'y'), -('JM', 'JAMAICA', 'Jamaica', 'JAM', 388, 'n'), -('JP', 'JAPAN', 'Japan', 'JPN', 392, 'n'), -('JO', 'JORDAN', 'Jordan', 'JOR', 400, 'n'), -('KZ', 'KAZAKHSTAN', 'Kazakhstan', 'KAZ', 398, 'n'), -('KE', 'KENYA', 'Kenya', 'KEN', 404, 'n'), -('KI', 'KIRIBATI', 'Kiribati', 'KIR', 296, 'n'), -('KP', 'KOREA, DEMOCRATIC PEOPLE''S REPUBLIC OF', 'Korea, Democratic People''s Republic of', 'PRK', 408, 'n'), -('KR', 'KOREA, REPUBLIC OF', 'Korea, Republic of', 'KOR', 410, 'n'), -('KW', 'KUWAIT', 'Kuwait', 'KWT', 414, 'n'), -('KG', 'KYRGYZSTAN', 'Kyrgyzstan', 'KGZ', 417, 'n'), -('LA', 'LAO PEOPLE''S DEMOCRATIC REPUBLIC', 'Lao People''s Democratic Republic', 'LAO', 418, 'n'), -('LV', 'LATVIA', 'Latvia', 'LVA', 428, 'y'), -('LB', 'LEBANON', 'Lebanon', 'LBN', 422, 'n'), -('LS', 'LESOTHO', 'Lesotho', 'LSO', 426, 'n'), -('LR', 'LIBERIA', 'Liberia', 'LBR', 430, 'n'), -('LY', 'LIBYAN ARAB JAMAHIRIYA', 'Libyan Arab Jamahiriya', 'LBY', 434, 'n'), -('LI', 'LIECHTENSTEIN', 'Liechtenstein', 'LIE', 438, 'n'), -('LT', 'LITHUANIA', 'Lithuania', 'LTU', 440, 'y'), -('LU', 'LUXEMBOURG', 'Luxembourg', 'LUX', 442, 'y'), -('MO', 'MACAO', 'Macao', 'MAC', 446, 'n'), -('MK', 'MACEDONIA, THE FORMER YUGOSLAV REPUBLIC OF', 'Macedonia, the Former Yugoslav Republic of', 'MKD', 807, 'n'), -('MG', 'MADAGASCAR', 'Madagascar', 'MDG', 450, 'n'), -('MW', 'MALAWI', 'Malawi', 'MWI', 454, 'n'), -('MY', 'MALAYSIA', 'Malaysia', 'MYS', 458, 'n'), -('MV', 'MALDIVES', 'Maldives', 'MDV', 462, 'n'), -('ML', 'MALI', 'Mali', 'MLI', 466, 'n'), -('MT', 'MALTA', 'Malta', 'MLT', 470, 'y'), -('MH', 'MARSHALL ISLANDS', 'Marshall Islands', 'MHL', 584, 'n'), -('MQ', 'MARTINIQUE', 'Martinique', 'MTQ', 474, 'n'), -('MR', 'MAURITANIA', 'Mauritania', 'MRT', 478, 'n'), -('MU', 'MAURITIUS', 'Mauritius', 'MUS', 480, 'n'), -('YT', 'MAYOTTE', 'Mayotte', NULL, NULL, 'n'), -('MX', 'MEXICO', 'Mexico', 'MEX', 484, 'n'), -('FM', 'MICRONESIA, FEDERATED STATES OF', 'Micronesia, Federated States of', 'FSM', 583, 'n'), -('MD', 'MOLDOVA, REPUBLIC OF', 'Moldova, Republic of', 'MDA', 498, 'n'), -('MC', 'MONACO', 'Monaco', 'MCO', 492, 'n'), -('MN', 'MONGOLIA', 'Mongolia', 'MNG', 496, 'n'), -('MS', 'MONTSERRAT', 'Montserrat', 'MSR', 500, 'n'), -('MA', 'MOROCCO', 'Morocco', 'MAR', 504, 'n'), -('MZ', 'MOZAMBIQUE', 'Mozambique', 'MOZ', 508, 'n'), -('MM', 'MYANMAR', 'Myanmar', 'MMR', 104, 'n'), -('NA', 'NAMIBIA', 'Namibia', 'NAM', 516, 'n'), -('NR', 'NAURU', 'Nauru', 'NRU', 520, 'n'), -('NP', 'NEPAL', 'Nepal', 'NPL', 524, 'n'), -('NL', 'NETHERLANDS', 'Netherlands', 'NLD', 528, 'y'), -('AN', 'NETHERLANDS ANTILLES', 'Netherlands Antilles', 'ANT', 530, 'n'), -('NC', 'NEW CALEDONIA', 'New Caledonia', 'NCL', 540, 'n'), -('NZ', 'NEW ZEALAND', 'New Zealand', 'NZL', 554, 'n'), -('NI', 'NICARAGUA', 'Nicaragua', 'NIC', 558, 'n'), -('NE', 'NIGER', 'Niger', 'NER', 562, 'n'), -('NG', 'NIGERIA', 'Nigeria', 'NGA', 566, 'n'), -('NU', 'NIUE', 'Niue', 'NIU', 570, 'n'), -('NF', 'NORFOLK ISLAND', 'Norfolk Island', 'NFK', 574, 'n'), -('MP', 'NORTHERN MARIANA ISLANDS', 'Northern Mariana Islands', 'MNP', 580, 'n'), -('NO', 'NORWAY', 'Norway', 'NOR', 578, 'n'), -('OM', 'OMAN', 'Oman', 'OMN', 512, 'n'), -('PK', 'PAKISTAN', 'Pakistan', 'PAK', 586, 'n'), -('PW', 'PALAU', 'Palau', 'PLW', 585, 'n'), -('PS', 'PALESTINIAN TERRITORY, OCCUPIED', 'Palestinian Territory, Occupied', NULL, NULL, 'n'), -('PA', 'PANAMA', 'Panama', 'PAN', 591, 'n'), -('PG', 'PAPUA NEW GUINEA', 'Papua New Guinea', 'PNG', 598, 'n'), -('PY', 'PARAGUAY', 'Paraguay', 'PRY', 600, 'n'), -('PE', 'PERU', 'Peru', 'PER', 604, 'n'), -('PH', 'PHILIPPINES', 'Philippines', 'PHL', 608, 'n'), -('PN', 'PITCAIRN', 'Pitcairn', 'PCN', 612, 'n'), -('PL', 'POLAND', 'Poland', 'POL', 616, 'y'), -('PT', 'PORTUGAL', 'Portugal', 'PRT', 620, 'y'), -('PR', 'PUERTO RICO', 'Puerto Rico', 'PRI', 630, 'n'), -('QA', 'QATAR', 'Qatar', 'QAT', 634, 'n'), -('RE', 'REUNION', 'Reunion', 'REU', 638, 'n'), -('RO', 'ROMANIA', 'Romania', 'ROM', 642, 'y'), -('RU', 'RUSSIAN FEDERATION', 'Russian Federation', 'RUS', 643, 'n'), -('RW', 'RWANDA', 'Rwanda', 'RWA', 646, 'n'), -('SH', 'SAINT HELENA', 'Saint Helena', 'SHN', 654, 'n'), -('KN', 'SAINT KITTS AND NEVIS', 'Saint Kitts and Nevis', 'KNA', 659, 'n'), -('LC', 'SAINT LUCIA', 'Saint Lucia', 'LCA', 662, 'n'), -('PM', 'SAINT PIERRE AND MIQUELON', 'Saint Pierre and Miquelon', 'SPM', 666, 'n'), -('VC', 'SAINT VINCENT AND THE GRENADINES', 'Saint Vincent and the Grenadines', 'VCT', 670, 'n'), -('WS', 'SAMOA', 'Samoa', 'WSM', 882, 'n'), -('SM', 'SAN MARINO', 'San Marino', 'SMR', 674, 'n'), -('ST', 'SAO TOME AND PRINCIPE', 'Sao Tome and Principe', 'STP', 678, 'n'), -('SA', 'SAUDI ARABIA', 'Saudi Arabia', 'SAU', 682, 'n'), -('SN', 'SENEGAL', 'Senegal', 'SEN', 686, 'n'), -('RS', 'SERBIA', 'Serbia', 'SRB', 381, 'n'), -('SC', 'SEYCHELLES', 'Seychelles', 'SYC', 690, 'n'), -('SL', 'SIERRA LEONE', 'Sierra Leone', 'SLE', 694, 'n'), -('SG', 'SINGAPORE', 'Singapore', 'SGP', 702, 'n'), -('SK', 'SLOVAKIA', 'Slovakia', 'SVK', 703, 'y'), -('SI', 'SLOVENIA', 'Slovenia', 'SVN', 705, 'y'), -('SB', 'SOLOMON ISLANDS', 'Solomon Islands', 'SLB', 90, 'n'), -('SO', 'SOMALIA', 'Somalia', 'SOM', 706, 'n'), -('ZA', 'SOUTH AFRICA', 'South Africa', 'ZAF', 710, 'n'), -('GS', 'SOUTH GEORGIA AND THE SOUTH SANDWICH ISLANDS', 'South Georgia and the South Sandwich Islands', NULL, NULL, 'n'), -('ES', 'SPAIN', 'Spain', 'ESP', 724, 'y'), -('LK', 'SRI LANKA', 'Sri Lanka', 'LKA', 144, 'n'), -('SD', 'SUDAN', 'Sudan', 'SDN', 736, 'n'), -('SR', 'SURINAME', 'Suriname', 'SUR', 740, 'n'), -('SJ', 'SVALBARD AND JAN MAYEN', 'Svalbard and Jan Mayen', 'SJM', 744, 'n'), -('SZ', 'SWAZILAND', 'Swaziland', 'SWZ', 748, 'n'), -('SE', 'SWEDEN', 'Sweden', 'SWE', 752, 'y'), -('CH', 'SWITZERLAND', 'Switzerland', 'CHE', 756, 'n'), -('SY', 'SYRIAN ARAB REPUBLIC', 'Syrian Arab Republic', 'SYR', 760, 'n'), -('TW', 'TAIWAN, PROVINCE OF CHINA', 'Taiwan, Province of China', 'TWN', 158, 'n'), -('TJ', 'TAJIKISTAN', 'Tajikistan', 'TJK', 762, 'n'), -('TZ', 'TANZANIA, UNITED REPUBLIC OF', 'Tanzania, United Republic of', 'TZA', 834, 'n'), -('TH', 'THAILAND', 'Thailand', 'THA', 764, 'n'), -('TL', 'TIMOR-LESTE', 'Timor-Leste', NULL, NULL, 'n'), -('TG', 'TOGO', 'Togo', 'TGO', 768, 'n'), -('TK', 'TOKELAU', 'Tokelau', 'TKL', 772, 'n'), -('TO', 'TONGA', 'Tonga', 'TON', 776, 'n'), -('TT', 'TRINIDAD AND TOBAGO', 'Trinidad and Tobago', 'TTO', 780, 'n'), -('TN', 'TUNISIA', 'Tunisia', 'TUN', 788, 'n'), -('TR', 'TURKEY', 'Turkey', 'TUR', 792, 'n'), -('TM', 'TURKMENISTAN', 'Turkmenistan', 'TKM', 795, 'n'), -('TC', 'TURKS AND CAICOS ISLANDS', 'Turks and Caicos Islands', 'TCA', 796, 'n'), -('TV', 'TUVALU', 'Tuvalu', 'TUV', 798, 'n'), -('UG', 'UGANDA', 'Uganda', 'UGA', 800, 'n'), -('UA', 'UKRAINE', 'Ukraine', 'UKR', 804, 'n'), -('AE', 'UNITED ARAB EMIRATES', 'United Arab Emirates', 'ARE', 784, 'n'), -('GB', 'UNITED KINGDOM', 'United Kingdom', 'GBR', 826, 'y'), -('US', 'UNITED STATES', 'United States', 'USA', 840, 'n'), -('UM', 'UNITED STATES MINOR OUTLYING ISLANDS', 'United States Minor Outlying Islands', NULL, NULL, 'n'), -('UY', 'URUGUAY', 'Uruguay', 'URY', 858, 'n'), -('UZ', 'UZBEKISTAN', 'Uzbekistan', 'UZB', 860, 'n'), -('VU', 'VANUATU', 'Vanuatu', 'VUT', 548, 'n'), -('VE', 'VENEZUELA', 'Venezuela', 'VEN', 862, 'n'), -('VN', 'VIET NAM', 'Viet Nam', 'VNM', 704, 'n'), -('VG', 'VIRGIN ISLANDS, BRITISH', 'Virgin Islands, British', 'VGB', 92, 'n'), -('VI', 'VIRGIN ISLANDS, U.S.', 'Virgin Islands, U.s.', 'VIR', 850, 'n'), -('WF', 'WALLIS AND FUTUNA', 'Wallis and Futuna', 'WLF', 876, 'n'), -('EH', 'WESTERN SAHARA', 'Western Sahara', 'ESH', 732, 'n'), -('YE', 'YEMEN', 'Yemen', 'YEM', 887, 'n'), -('ZM', 'ZAMBIA', 'Zambia', 'ZMB', 894, 'n'), -('ZW', 'ZIMBABWE', 'Zimbabwe', 'ZWE', 716, 'n'), -('ME', 'MONTENEGRO', 'Montenegro', 'MNE', 382, 'n'); - --- -------------------------------------------------------- - --- --- Dumping data for table `dns_template` --- - -INSERT INTO `dns_template` (`template_id`, `sys_userid`, `sys_groupid`, `sys_perm_user`, `sys_perm_group`, `sys_perm_other`, `name`, `fields`, `template`, `visible`) VALUES (1, 1, 1, 'riud', 'riud', '', 'Default', 'DOMAIN,IP,NS1,NS2,EMAIL,DKIM,DNSSEC', '[ZONE]\norigin={DOMAIN}.\nns={NS1}.\nmbox={EMAIL}.\nrefresh=7200\nretry=540\nexpire=604800\nminimum=3600\nttl=3600\n\n[DNS_RECORDS]\nA|{DOMAIN}.|{IP}|0|3600\nA|www|{IP}|0|3600\nA|mail|{IP}|0|3600\nNS|{DOMAIN}.|{NS1}.|0|3600\nNS|{DOMAIN}.|{NS2}.|0|3600\nMX|{DOMAIN}.|mail.{DOMAIN}.|10|3600\nTXT|{DOMAIN}.|v=spf1 mx a ~all|0|3600', 'y'); - - --- -------------------------------------------------------- - --- --- Dumping data for table `help_faq` --- - -INSERT INTO `help_faq` VALUES (1,1,0,'I would like to know ...','Yes, of course.',1,1,'riud','riud','r'); - --- -------------------------------------------------------- - --- --- Dumping data for table `help_faq_sections` --- - -INSERT INTO `help_faq_sections` VALUES (1,'General',0,NULL,NULL,NULL,NULL,NULL); - --- -------------------------------------------------------- - --- --- Dumping data for table `software_repo` --- - -INSERT INTO `software_repo` (`software_repo_id`, `sys_userid`, `sys_groupid`, `sys_perm_user`, `sys_perm_group`, `sys_perm_other`, `repo_name`, `repo_url`, `repo_username`, `repo_password`, `active`) VALUES (1, 1, 1, 'riud', 'riud', '', 'ISPConfig Addons', 'http://repo.ispconfig.org/addons/', '', '', 'n'); - --- -------------------------------------------------------- - --- --- Dumping data for table `spamfilter_policy` --- - -INSERT INTO `spamfilter_policy` (`id`, `sys_userid`, `sys_groupid`, `sys_perm_user`, `sys_perm_group`, `sys_perm_other`, `policy_name`, `virus_lover`, `spam_lover`, `banned_files_lover`, `bad_header_lover`, `bypass_virus_checks`, `bypass_spam_checks`, `bypass_banned_checks`, `bypass_header_checks`, `spam_modifies_subj`, `virus_quarantine_to`, `spam_quarantine_to`, `banned_quarantine_to`, `bad_header_quarantine_to`, `clean_quarantine_to`, `other_quarantine_to`, `spam_tag_level`, `spam_tag2_level`, `spam_kill_level`, `spam_dsn_cutoff_level`, `spam_quarantine_cutoff_level`, `addr_extension_virus`, `addr_extension_spam`, `addr_extension_banned`, `addr_extension_bad_header`, `warnvirusrecip`, `warnbannedrecip`, `warnbadhrecip`, `newvirus_admin`, `virus_admin`, `banned_admin`, `bad_header_admin`, `spam_admin`, `spam_subject_tag`, `spam_subject_tag2`, `message_size_limit`, `banned_rulenames`) VALUES(1, 1, 0, 'riud', 'riud', 'r', 'Non-paying', 'N', 'N', 'N', 'N', 'Y', 'Y', 'Y', 'N', 'Y', '', '', '', '', '', '', 3, 7, 10, 0, 0, '', '', '', '', 'N', 'N', 'N', '', '', '', '', '', '', '', 0, ''); -INSERT INTO `spamfilter_policy` (`id`, `sys_userid`, `sys_groupid`, `sys_perm_user`, `sys_perm_group`, `sys_perm_other`, `policy_name`, `virus_lover`, `spam_lover`, `banned_files_lover`, `bad_header_lover`, `bypass_virus_checks`, `bypass_spam_checks`, `bypass_banned_checks`, `bypass_header_checks`, `spam_modifies_subj`, `virus_quarantine_to`, `spam_quarantine_to`, `banned_quarantine_to`, `bad_header_quarantine_to`, `clean_quarantine_to`, `other_quarantine_to`, `spam_tag_level`, `spam_tag2_level`, `spam_kill_level`, `spam_dsn_cutoff_level`, `spam_quarantine_cutoff_level`, `addr_extension_virus`, `addr_extension_spam`, `addr_extension_banned`, `addr_extension_bad_header`, `warnvirusrecip`, `warnbannedrecip`, `warnbadhrecip`, `newvirus_admin`, `virus_admin`, `banned_admin`, `bad_header_admin`, `spam_admin`, `spam_subject_tag`, `spam_subject_tag2`, `message_size_limit`, `banned_rulenames`) VALUES(2, 1, 0, 'riud', 'riud', 'r', 'Uncensored', 'Y', 'Y', 'Y', 'Y', 'N', 'N', 'N', 'N', 'N', NULL, NULL, NULL, NULL, NULL, NULL, 3, 999, 999, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL); -INSERT INTO `spamfilter_policy` (`id`, `sys_userid`, `sys_groupid`, `sys_perm_user`, `sys_perm_group`, `sys_perm_other`, `policy_name`, `virus_lover`, `spam_lover`, `banned_files_lover`, `bad_header_lover`, `bypass_virus_checks`, `bypass_spam_checks`, `bypass_banned_checks`, `bypass_header_checks`, `spam_modifies_subj`, `virus_quarantine_to`, `spam_quarantine_to`, `banned_quarantine_to`, `bad_header_quarantine_to`, `clean_quarantine_to`, `other_quarantine_to`, `spam_tag_level`, `spam_tag2_level`, `spam_kill_level`, `spam_dsn_cutoff_level`, `spam_quarantine_cutoff_level`, `addr_extension_virus`, `addr_extension_spam`, `addr_extension_banned`, `addr_extension_bad_header`, `warnvirusrecip`, `warnbannedrecip`, `warnbadhrecip`, `newvirus_admin`, `virus_admin`, `banned_admin`, `bad_header_admin`, `spam_admin`, `spam_subject_tag`, `spam_subject_tag2`, `message_size_limit`, `banned_rulenames`) VALUES(3, 1, 0, 'riud', 'riud', 'r', 'Wants all spam', 'N', 'Y', 'N', 'N', 'N', 'N', 'N', 'N', 'Y', NULL, NULL, NULL, NULL, NULL, NULL, 3, 999, 999, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL); -INSERT INTO `spamfilter_policy` (`id`, `sys_userid`, `sys_groupid`, `sys_perm_user`, `sys_perm_group`, `sys_perm_other`, `policy_name`, `virus_lover`, `spam_lover`, `banned_files_lover`, `bad_header_lover`, `bypass_virus_checks`, `bypass_spam_checks`, `bypass_banned_checks`, `bypass_header_checks`, `spam_modifies_subj`, `virus_quarantine_to`, `spam_quarantine_to`, `banned_quarantine_to`, `bad_header_quarantine_to`, `clean_quarantine_to`, `other_quarantine_to`, `spam_tag_level`, `spam_tag2_level`, `spam_kill_level`, `spam_dsn_cutoff_level`, `spam_quarantine_cutoff_level`, `addr_extension_virus`, `addr_extension_spam`, `addr_extension_banned`, `addr_extension_bad_header`, `warnvirusrecip`, `warnbannedrecip`, `warnbadhrecip`, `newvirus_admin`, `virus_admin`, `banned_admin`, `bad_header_admin`, `spam_admin`, `spam_subject_tag`, `spam_subject_tag2`, `message_size_limit`, `banned_rulenames`) VALUES(4, 1, 0, 'riud', 'riud', 'r', 'Wants viruses', 'Y', 'N', 'Y', 'Y', 'N', 'N', 'N', 'N', 'Y', NULL, NULL, NULL, NULL, NULL, NULL, 3, 6.9, 6.9, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL); -INSERT INTO `spamfilter_policy` (`id`, `sys_userid`, `sys_groupid`, `sys_perm_user`, `sys_perm_group`, `sys_perm_other`, `policy_name`, `virus_lover`, `spam_lover`, `banned_files_lover`, `bad_header_lover`, `bypass_virus_checks`, `bypass_spam_checks`, `bypass_banned_checks`, `bypass_header_checks`, `spam_modifies_subj`, `virus_quarantine_to`, `spam_quarantine_to`, `banned_quarantine_to`, `bad_header_quarantine_to`, `clean_quarantine_to`, `other_quarantine_to`, `spam_tag_level`, `spam_tag2_level`, `spam_kill_level`, `spam_dsn_cutoff_level`, `spam_quarantine_cutoff_level`, `addr_extension_virus`, `addr_extension_spam`, `addr_extension_banned`, `addr_extension_bad_header`, `warnvirusrecip`, `warnbannedrecip`, `warnbadhrecip`, `newvirus_admin`, `virus_admin`, `banned_admin`, `bad_header_admin`, `spam_admin`, `spam_subject_tag`, `spam_subject_tag2`, `message_size_limit`, `banned_rulenames`) VALUES(5, 1, 0, 'riud', 'riud', 'r', 'Normal', 'N', 'N', 'N', 'N', 'N', 'N', 'N', 'N', 'Y', '', '', '', '', '', '', 1, 4.5, 50, 0, 0, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, '', '***SPAM*** ', NULL, NULL); -INSERT INTO `spamfilter_policy` (`id`, `sys_userid`, `sys_groupid`, `sys_perm_user`, `sys_perm_group`, `sys_perm_other`, `policy_name`, `virus_lover`, `spam_lover`, `banned_files_lover`, `bad_header_lover`, `bypass_virus_checks`, `bypass_spam_checks`, `bypass_banned_checks`, `bypass_header_checks`, `spam_modifies_subj`, `virus_quarantine_to`, `spam_quarantine_to`, `banned_quarantine_to`, `bad_header_quarantine_to`, `clean_quarantine_to`, `other_quarantine_to`, `spam_tag_level`, `spam_tag2_level`, `spam_kill_level`, `spam_dsn_cutoff_level`, `spam_quarantine_cutoff_level`, `addr_extension_virus`, `addr_extension_spam`, `addr_extension_banned`, `addr_extension_bad_header`, `warnvirusrecip`, `warnbannedrecip`, `warnbadhrecip`, `newvirus_admin`, `virus_admin`, `banned_admin`, `bad_header_admin`, `spam_admin`, `spam_subject_tag`, `spam_subject_tag2`, `message_size_limit`, `banned_rulenames`) VALUES(6, 1, 0, 'riud', 'riud', 'r', 'Trigger happy', 'N', 'N', 'N', 'N', 'N', 'N', 'N', 'N', 'Y', NULL, NULL, NULL, NULL, NULL, NULL, 3, 5, 5, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL); -INSERT INTO `spamfilter_policy` (`id`, `sys_userid`, `sys_groupid`, `sys_perm_user`, `sys_perm_group`, `sys_perm_other`, `policy_name`, `virus_lover`, `spam_lover`, `banned_files_lover`, `bad_header_lover`, `bypass_virus_checks`, `bypass_spam_checks`, `bypass_banned_checks`, `bypass_header_checks`, `spam_modifies_subj`, `virus_quarantine_to`, `spam_quarantine_to`, `banned_quarantine_to`, `bad_header_quarantine_to`, `clean_quarantine_to`, `other_quarantine_to`, `spam_tag_level`, `spam_tag2_level`, `spam_kill_level`, `spam_dsn_cutoff_level`, `spam_quarantine_cutoff_level`, `addr_extension_virus`, `addr_extension_spam`, `addr_extension_banned`, `addr_extension_bad_header`, `warnvirusrecip`, `warnbannedrecip`, `warnbadhrecip`, `newvirus_admin`, `virus_admin`, `banned_admin`, `bad_header_admin`, `spam_admin`, `spam_subject_tag`, `spam_subject_tag2`, `message_size_limit`, `banned_rulenames`) VALUES(7, 1, 0, 'riud', 'riud', 'r', 'Permissive', 'N', 'N', 'N', 'Y', 'N', 'N', 'N', 'N', 'Y', NULL, NULL, NULL, NULL, NULL, NULL, 3, 10, 20, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL); - --- -------------------------------------------------------- - --- --- Dumping data for table `sys_group` --- - -INSERT INTO `sys_group` (`groupid`, `name`, `description`, `client_id`) VALUES (1, 'admin', 'Administrators group', 0); - --- -------------------------------------------------------- - --- --- Dumping data for table `sys_ini` --- - -INSERT INTO `sys_ini` (`sysini_id`, `config`, `default_logo`, `custom_logo`) VALUES (1, '', 'data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAMgAAABBCAYAAACU5+uOAAAItUlEQVR42u1dCWwVVRStUJZCK6HsFNAgWpaCJkKICZKApKUFhURQpEnZF4EEUJZYEEpBIamgkQpUQBZRW7YCBqQsggsQEAgKLbIGCYsSCNqyQ8D76h18Hd/MvJk/n/bXc5KT+TNz79vPzNv+/2FhAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAOAe++s0akTsRZxMnE6cGkKcxkwhPofaBPwWRzxxB/EO8UGI8xhxEGoV8EscY8qBKFRcgdoFAhXHC+VUHAbHo5aBQASyrZwL5DoxEjUNeBXI9XIuEMEE1DTgVSA3FA3qIDEtBLnTQiBDUNOAV4EUKhpURojmZQQEAjwKgSwK0bykWQgEU74ABAKBABAIBOIJffoNrkRsS0whDiMO5uNw4gBiSxvfGOJrbDtMOgr2JNa18HmZmETsopnGp4h9xdF0TcQRb8NEPkawTzv2qaWIoybnZYRUBoJD+difGAuBlCy0qsRM4mfERcTFfGygsBUF/xFxE/EQ8RixwIbi/j7il8R3iE8qwuxAXMJxuuFiTvNMYleb/E0gXiI+cOBaISTJrzLxcw2/+8Q5pjjfNNkM0RDILLadpbimw+bsc4DPkxRpuqkZ1orisoBAiguuhkUhPSvZRBA3u6gsK94g9jDFP9aHcAV3EKNNYX8i3RcNJ4M4nTiROJCYykIzbGZKvouk68vYbyS/cUbz+RrJZpzkO5Sv3eajaJhRDvUwg21nKK4VcF5WKPgFH6PZZw/7dJXC6S6lczunfbIQLpeDkZ+lJcoCAikuvChioaLBtfD4JHPiXSFKKexBPoa9Wwr3ael6skMZDGO7K3z+uOSb5OA7mu2KiOGmPH3ADVh8/sohnDS2S1NcG+uiO/kd+8RL146YRWzj359tb0Eg+gIpsHkjFNrQqiF3DZJABDtyuCP5/FuNRlHN8Ofz9nx+XLNR3jR1c4w8TSFGSmnr4FEgU7wKhI51jAeTpv+/ZQGBOAuEu1d/Ku6LV35t9rdigkUjHuMgkHPEecQsxdjjUx4zHbMI+10OdzqfZ2o0iiqSfzgPfMXnzZqN6iTbJ5jytMTU0E97FEhaAAJ5kc/PuJjQOCoIgegJpKbUl5b5vGaBT+A+vOgn5/JYIdFBIOs1wo1kIZl93+P70/h8oUZYFXkmKInPU9h3m2YeT8lvRilPyyWbi3xt4iMWSDc+P4lp3uAIRDxdryjui6dmuujXcr91IDcMmaJv31WISfTrLeJXCUT3yb1a4Ztmalyu61MaZG/XtD9tapRGnpZKNp2lNNZ3KZARAQgk3untBYEEPgbJ92FsIAax34v1AQ2B5Go2BlW60n0QyCC/BWISdJ5LgewWU8k86DdTzMyNh0BKVyAzfB5I93YQyBGeTlW9lQbwIle2Rdgzy7BAxJT6Hb6X6EIgTrznRSCiHli02cwcPor1pbkQiL5AKvOA+ZZPAtkfxFms3j4IZHAwBGJaRPxdjH00BSImJRqKOlEwjtjUo0Dm2pWla4HMzsyqQIxSMKI8C8RkL9YXuhDf5gqcw4NweaZJiGkh8UeLwi+Utkb4KZCrYszkVSDiQRDMN4hkf5DvZ2gKZJyLPJgFkmAjEDEF3EYSWzPeklO8Q8CLQGKJhQquK+eDdLFNZBJxFLEf8XUXFTbcYv2kRhAEIq+vGNO88zTTKVaRzxPrSSvPW11O8yZqCiROSnMsX0sP0ixWops1Hfbx/AaJIz5QcFc5n+ZVNcbxmoWtEsBNB4EU8Tgk32Gv1wneEybeWG1N8RoNbplmOo2neiyxE3/eoun7G9t31hGIqXuzl8/HB0kgxhvhD03/KoEIpIWFQPLK+UJhkWpgKLZP8IKhajNhJg8A7yt8/5K6QoFM8z5mc68Ph3VWM6wTbN+a+AR/vqThV13KYyMXAgmXps9FnK8GSSA17KaXFf7R3gUyd8H/TiBss9fngfQehzfMpkDLgxcS73J4k1y85WrxtTtOjZPuVZA2O55RhLfUId5XpI2UHwZDIHxtp7HtRrVL25SfhWy7z7VAMuYvipszd0FJcfxzHspdrMctGnGcZNPTZ4F0VszqyPSlPHm8JG9f2SDtgF3Nq/rnJZssyXeUdP0CN64c9l/FDfGyZNNNkaeVGmnMM+Vdtd19los8/2e7Ow/E70lxiG7pRmkn8AaeULlcoo4sBDLfKvL0nLUxablfX0hfmfuQ01avI65fUQYEkupRIJHcAMwbDWNNdmLgupV4zeMO3stcIZ1M4aYo4vZt0oO7Locd0ndGTEQofN+QxiZ22+y7W+RpgUb66vOU7232SZXupZqvaYT3Dfu8ZLrejtc47mvkJ9FoVEWKBmW7dyc7ZXD1Nb2TH3JVn5Tqa3r1repzY6/gwWeqhUCGO/XjWSTmjYYVLOzFoP0Z/qJTks033brxrtjmxCbGtK4ivEqKuH2fNuc0tDatIYgna4yGbz2eeTL8WhJbic2aDnmqqpm2KlLeK5vWn0pc0wirGvtUtBkzNdPKDzWe24oGdZX4CzGfWCD4U93GBQdqNSw4Uiny8K9h4buOhlU2scq+Q1G1i233k63hFwBPEfcS04l1FGJoynbH+fgz8ZKFQJLDAMDjk/psCPzw20XxE6mmdLd24d8KNQ14FciUEPl1xHvEhlK6W2j65aOWgUAEUpV4NEREstyDQNqjloFARVKL/xukrAvkGjGC09zGwfYKsQdqF/BTKMnEJcTtxC3EPAU3iic5cRkfjc/ZFvZuuZm4gXjOouG35LQ2Yfutkq/4pfpN/E9TDVCjQGkJqQExho+CjYlRPseRiQE3EIriaMZTw4K3mOJv23J8jme23RsEAMqqQJrb9PnnEbPEVpUAuJD4Mf/PoCqeONQCUJYFElGKf7ojpnqjUQtAWRdJaf1t2w8ofSAUBNKulATSEaUPhIpIRj9icbyFUgdCTSRTeR0i2HwfpQ0AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAQBnG392D9QU+JXhxAAAAAElFTkSuQmCC', ''); - --- -------------------------------------------------------- - --- --- Dumping data for table `sys_user` --- - -INSERT INTO `sys_theme` (`var_id`, `tpl_name`, `username`, `logo_url`) VALUES (NULL, 'default', 'global', 'themes/default/images/header_logo.png'); -INSERT INTO `sys_theme` (`var_id`, `tpl_name`, `username`, `logo_url`) VALUES (NULL, 'default-v2', 'global', 'themes/default-v2/images/header_logo.png'); - --- -------------------------------------------------------- - --- --- Dumping data for table `sys_user` --- - -INSERT INTO `sys_user` (`userid`, `sys_userid`, `sys_groupid`, `sys_perm_user`, `sys_perm_group`, `sys_perm_other`, `username`, `passwort`, `modules`, `startmodule`, `app_theme`, `typ`, `active`, `language`, `groups`, `default_group`, `client_id`) VALUES (1, 1, 0, 'riud', 'riud', '', 'admin', '21232f297a57a5a743894a0e4a801fc3', 'dashboard,admin,client,mail,monitor,sites,dns,vm,tools,help', 'dashboard', 'default', 'admin', 1, 'en', '1,2', 1, 0); - --- -------------------------------------------------------- - --- --- Dumping data for table `sys_config` --- - -INSERT INTO sys_config VALUES ('db','db_version','3.1dev'); -INSERT INTO sys_config VALUES ('interface','session_timeout','0'); - -SET FOREIGN_KEY_CHECKS = 1; diff --git a/install/sql/ispconfig3.sql.rej b/install/sql/ispconfig3.sql.rej deleted file mode 100644 index 6c8d2e4a9..000000000 --- a/install/sql/ispconfig3.sql.rej +++ /dev/null @@ -1,23 +0,0 @@ ---- install/sql/ispconfig3.sql -+++ install/sql/ispconfig3.sql -@@ -2522,13 +2527,13 @@ INSERT INTO `software_repo` (`software_repo_id`, `sys_userid`, `sys_groupid`, `s - -- Dumping data for table `spamfilter_policy` - -- - --INSERT INTO `spamfilter_policy` (`id`, `sys_userid`, `sys_groupid`, `sys_perm_user`, `sys_perm_group`, `sys_perm_other`, `policy_name`, `virus_lover`, `spam_lover`, `banned_files_lover`, `bad_header_lover`, `bypass_virus_checks`, `bypass_spam_checks`, `bypass_banned_checks`, `bypass_header_checks`, `spam_modifies_subj`, `virus_quarantine_to`, `spam_quarantine_to`, `banned_quarantine_to`, `bad_header_quarantine_to`, `clean_quarantine_to`, `other_quarantine_to`, `spam_tag_level`, `spam_tag2_level`, `spam_kill_level`, `spam_dsn_cutoff_level`, `spam_quarantine_cutoff_level`, `addr_extension_virus`, `addr_extension_spam`, `addr_extension_banned`, `addr_extension_bad_header`, `warnvirusrecip`, `warnbannedrecip`, `warnbadhrecip`, `newvirus_admin`, `virus_admin`, `banned_admin`, `bad_header_admin`, `spam_admin`, `spam_subject_tag`, `spam_subject_tag2`, `message_size_limit`, `banned_rulenames`) VALUES(1, 1, 0, 'riud', 'riud', 'r', 'Non-paying', 'N', 'N', 'N', 'N', 'Y', 'Y', 'Y', 'N', 'Y', '', '', '', '', '', '', 3, 7, 10, 0, 0, '', '', '', '', 'N', 'N', 'N', '', '', '', '', '', '', '', 0, ''); --INSERT INTO `spamfilter_policy` (`id`, `sys_userid`, `sys_groupid`, `sys_perm_user`, `sys_perm_group`, `sys_perm_other`, `policy_name`, `virus_lover`, `spam_lover`, `banned_files_lover`, `bad_header_lover`, `bypass_virus_checks`, `bypass_spam_checks`, `bypass_banned_checks`, `bypass_header_checks`, `spam_modifies_subj`, `virus_quarantine_to`, `spam_quarantine_to`, `banned_quarantine_to`, `bad_header_quarantine_to`, `clean_quarantine_to`, `other_quarantine_to`, `spam_tag_level`, `spam_tag2_level`, `spam_kill_level`, `spam_dsn_cutoff_level`, `spam_quarantine_cutoff_level`, `addr_extension_virus`, `addr_extension_spam`, `addr_extension_banned`, `addr_extension_bad_header`, `warnvirusrecip`, `warnbannedrecip`, `warnbadhrecip`, `newvirus_admin`, `virus_admin`, `banned_admin`, `bad_header_admin`, `spam_admin`, `spam_subject_tag`, `spam_subject_tag2`, `message_size_limit`, `banned_rulenames`) VALUES(2, 1, 0, 'riud', 'riud', 'r', 'Uncensored', 'Y', 'Y', 'Y', 'Y', 'N', 'N', 'N', 'N', 'N', NULL, NULL, NULL, NULL, NULL, NULL, 3, 999, 999, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL); --INSERT INTO `spamfilter_policy` (`id`, `sys_userid`, `sys_groupid`, `sys_perm_user`, `sys_perm_group`, `sys_perm_other`, `policy_name`, `virus_lover`, `spam_lover`, `banned_files_lover`, `bad_header_lover`, `bypass_virus_checks`, `bypass_spam_checks`, `bypass_banned_checks`, `bypass_header_checks`, `spam_modifies_subj`, `virus_quarantine_to`, `spam_quarantine_to`, `banned_quarantine_to`, `bad_header_quarantine_to`, `clean_quarantine_to`, `other_quarantine_to`, `spam_tag_level`, `spam_tag2_level`, `spam_kill_level`, `spam_dsn_cutoff_level`, `spam_quarantine_cutoff_level`, `addr_extension_virus`, `addr_extension_spam`, `addr_extension_banned`, `addr_extension_bad_header`, `warnvirusrecip`, `warnbannedrecip`, `warnbadhrecip`, `newvirus_admin`, `virus_admin`, `banned_admin`, `bad_header_admin`, `spam_admin`, `spam_subject_tag`, `spam_subject_tag2`, `message_size_limit`, `banned_rulenames`) VALUES(3, 1, 0, 'riud', 'riud', 'r', 'Wants all spam', 'N', 'Y', 'N', 'N', 'N', 'N', 'N', 'N', 'Y', NULL, NULL, NULL, NULL, NULL, NULL, 3, 999, 999, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL); --INSERT INTO `spamfilter_policy` (`id`, `sys_userid`, `sys_groupid`, `sys_perm_user`, `sys_perm_group`, `sys_perm_other`, `policy_name`, `virus_lover`, `spam_lover`, `banned_files_lover`, `bad_header_lover`, `bypass_virus_checks`, `bypass_spam_checks`, `bypass_banned_checks`, `bypass_header_checks`, `spam_modifies_subj`, `virus_quarantine_to`, `spam_quarantine_to`, `banned_quarantine_to`, `bad_header_quarantine_to`, `clean_quarantine_to`, `other_quarantine_to`, `spam_tag_level`, `spam_tag2_level`, `spam_kill_level`, `spam_dsn_cutoff_level`, `spam_quarantine_cutoff_level`, `addr_extension_virus`, `addr_extension_spam`, `addr_extension_banned`, `addr_extension_bad_header`, `warnvirusrecip`, `warnbannedrecip`, `warnbadhrecip`, `newvirus_admin`, `virus_admin`, `banned_admin`, `bad_header_admin`, `spam_admin`, `spam_subject_tag`, `spam_subject_tag2`, `message_size_limit`, `banned_rulenames`) VALUES(4, 1, 0, 'riud', 'riud', 'r', 'Wants viruses', 'Y', 'N', 'Y', 'Y', 'N', 'N', 'N', 'N', 'Y', NULL, NULL, NULL, NULL, NULL, NULL, 3, 6.9, 6.9, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL); --INSERT INTO `spamfilter_policy` (`id`, `sys_userid`, `sys_groupid`, `sys_perm_user`, `sys_perm_group`, `sys_perm_other`, `policy_name`, `virus_lover`, `spam_lover`, `banned_files_lover`, `bad_header_lover`, `bypass_virus_checks`, `bypass_spam_checks`, `bypass_banned_checks`, `bypass_header_checks`, `spam_modifies_subj`, `virus_quarantine_to`, `spam_quarantine_to`, `banned_quarantine_to`, `bad_header_quarantine_to`, `clean_quarantine_to`, `other_quarantine_to`, `spam_tag_level`, `spam_tag2_level`, `spam_kill_level`, `spam_dsn_cutoff_level`, `spam_quarantine_cutoff_level`, `addr_extension_virus`, `addr_extension_spam`, `addr_extension_banned`, `addr_extension_bad_header`, `warnvirusrecip`, `warnbannedrecip`, `warnbadhrecip`, `newvirus_admin`, `virus_admin`, `banned_admin`, `bad_header_admin`, `spam_admin`, `spam_subject_tag`, `spam_subject_tag2`, `message_size_limit`, `banned_rulenames`) VALUES(5, 1, 0, 'riud', 'riud', 'r', 'Normal', 'N', 'N', 'N', 'N', 'N', 'N', 'N', 'N', 'Y', '', '', '', '', '', '', 1, 4.5, 50, 0, 0, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, '', '***SPAM***', NULL, NULL); --INSERT INTO `spamfilter_policy` (`id`, `sys_userid`, `sys_groupid`, `sys_perm_user`, `sys_perm_group`, `sys_perm_other`, `policy_name`, `virus_lover`, `spam_lover`, `banned_files_lover`, `bad_header_lover`, `bypass_virus_checks`, `bypass_spam_checks`, `bypass_banned_checks`, `bypass_header_checks`, `spam_modifies_subj`, `virus_quarantine_to`, `spam_quarantine_to`, `banned_quarantine_to`, `bad_header_quarantine_to`, `clean_quarantine_to`, `other_quarantine_to`, `spam_tag_level`, `spam_tag2_level`, `spam_kill_level`, `spam_dsn_cutoff_level`, `spam_quarantine_cutoff_level`, `addr_extension_virus`, `addr_extension_spam`, `addr_extension_banned`, `addr_extension_bad_header`, `warnvirusrecip`, `warnbannedrecip`, `warnbadhrecip`, `newvirus_admin`, `virus_admin`, `banned_admin`, `bad_header_admin`, `spam_admin`, `spam_subject_tag`, `spam_subject_tag2`, `message_size_limit`, `banned_rulenames`) VALUES(6, 1, 0, 'riud', 'riud', 'r', 'Trigger happy', 'N', 'N', 'N', 'N', 'N', 'N', 'N', 'N', 'Y', NULL, NULL, NULL, NULL, NULL, NULL, 3, 5, 5, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL); --INSERT INTO `spamfilter_policy` (`id`, `sys_userid`, `sys_groupid`, `sys_perm_user`, `sys_perm_group`, `sys_perm_other`, `policy_name`, `virus_lover`, `spam_lover`, `banned_files_lover`, `bad_header_lover`, `bypass_virus_checks`, `bypass_spam_checks`, `bypass_banned_checks`, `bypass_header_checks`, `spam_modifies_subj`, `virus_quarantine_to`, `spam_quarantine_to`, `banned_quarantine_to`, `bad_header_quarantine_to`, `clean_quarantine_to`, `other_quarantine_to`, `spam_tag_level`, `spam_tag2_level`, `spam_kill_level`, `spam_dsn_cutoff_level`, `spam_quarantine_cutoff_level`, `addr_extension_virus`, `addr_extension_spam`, `addr_extension_banned`, `addr_extension_bad_header`, `warnvirusrecip`, `warnbannedrecip`, `warnbadhrecip`, `newvirus_admin`, `virus_admin`, `banned_admin`, `bad_header_admin`, `spam_admin`, `spam_subject_tag`, `spam_subject_tag2`, `message_size_limit`, `banned_rulenames`) VALUES(7, 1, 0, 'riud', 'riud', 'r', 'Permissive', 'N', 'N', 'N', 'Y', 'N', 'N', 'N', 'N', 'Y', NULL, NULL, NULL, NULL, NULL, NULL, 3, 10, 20, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL); -+INSERT INTO `spamfilter_policy` (`id`, `sys_userid`, `sys_groupid`, `sys_perm_user`, `sys_perm_group`, `sys_perm_other`, `policy_name`, `virus_lover`, `spam_lover`, `banned_files_lover`, `bad_header_lover`, `bypass_virus_checks`, `bypass_spam_checks`, `bypass_banned_checks`, `bypass_header_checks`, `spam_modifies_subj`, `virus_quarantine_to`, `spam_quarantine_to`, `banned_quarantine_to`, `bad_header_quarantine_to`, `clean_quarantine_to`, `other_quarantine_to`, `spam_tag_level`, `spam_tag2_level`, `spam_kill_level`, `spam_dsn_cutoff_level`, `spam_quarantine_cutoff_level`, `addr_extension_virus`, `addr_extension_spam`, `addr_extension_banned`, `addr_extension_bad_header`, `warnvirusrecip`, `warnbannedrecip`, `warnbadhrecip`, `newvirus_admin`, `virus_admin`, `banned_admin`, `bad_header_admin`, `spam_admin`, `spam_subject_tag`, `spam_subject_tag2`, `message_size_limit`, `banned_rulenames`, `rspamd_greylisting`, `rspamd_spam_greylisting_level`, `rspamd_spam_tag_level`, `rspamd_spam_tag_method`, `rspamd_spam_kill_level`) VALUES(1, 1, 0, 'riud', 'riud', 'r', 'Non-paying', 'N', 'N', 'N', 'N', 'Y', 'Y', 'Y', 'N', 'Y', '', '', '', '', '', '', 3, 7, 10, 0, 0, '', '', '', '', 'N', 'N', 'N', '', '', '', '', '', '', '', 0, '', 'n', 6.00, 8.00, 'rewrite_subject', 12.00); -+INSERT INTO `spamfilter_policy` (`id`, `sys_userid`, `sys_groupid`, `sys_perm_user`, `sys_perm_group`, `sys_perm_other`, `policy_name`, `virus_lover`, `spam_lover`, `banned_files_lover`, `bad_header_lover`, `bypass_virus_checks`, `bypass_spam_checks`, `bypass_banned_checks`, `bypass_header_checks`, `spam_modifies_subj`, `virus_quarantine_to`, `spam_quarantine_to`, `banned_quarantine_to`, `bad_header_quarantine_to`, `clean_quarantine_to`, `other_quarantine_to`, `spam_tag_level`, `spam_tag2_level`, `spam_kill_level`, `spam_dsn_cutoff_level`, `spam_quarantine_cutoff_level`, `addr_extension_virus`, `addr_extension_spam`, `addr_extension_banned`, `addr_extension_bad_header`, `warnvirusrecip`, `warnbannedrecip`, `warnbadhrecip`, `newvirus_admin`, `virus_admin`, `banned_admin`, `bad_header_admin`, `spam_admin`, `spam_subject_tag`, `spam_subject_tag2`, `message_size_limit`, `banned_rulenames`, `rspamd_greylisting`, `rspamd_spam_greylisting_level`, `rspamd_spam_tag_level`, `rspamd_spam_tag_method`, `rspamd_spam_kill_level`) VALUES(2, 1, 0, 'riud', 'riud', 'r', 'Uncensored', 'Y', 'Y', 'Y', 'Y', 'N', 'N', 'N', 'N', 'N', NULL, NULL, NULL, NULL, NULL, NULL, 3, 999, 999, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 'n', 999.00, 999.00, 'rewrite_subject', 999.00); -+INSERT INTO `spamfilter_policy` (`id`, `sys_userid`, `sys_groupid`, `sys_perm_user`, `sys_perm_group`, `sys_perm_other`, `policy_name`, `virus_lover`, `spam_lover`, `banned_files_lover`, `bad_header_lover`, `bypass_virus_checks`, `bypass_spam_checks`, `bypass_banned_checks`, `bypass_header_checks`, `spam_modifies_subj`, `virus_quarantine_to`, `spam_quarantine_to`, `banned_quarantine_to`, `bad_header_quarantine_to`, `clean_quarantine_to`, `other_quarantine_to`, `spam_tag_level`, `spam_tag2_level`, `spam_kill_level`, `spam_dsn_cutoff_level`, `spam_quarantine_cutoff_level`, `addr_extension_virus`, `addr_extension_spam`, `addr_extension_banned`, `addr_extension_bad_header`, `warnvirusrecip`, `warnbannedrecip`, `warnbadhrecip`, `newvirus_admin`, `virus_admin`, `banned_admin`, `bad_header_admin`, `spam_admin`, `spam_subject_tag`, `spam_subject_tag2`, `message_size_limit`, `banned_rulenames`, `rspamd_greylisting`, `rspamd_spam_greylisting_level`, `rspamd_spam_tag_level`, `rspamd_spam_tag_method`, `rspamd_spam_kill_level`) VALUES(3, 1, 0, 'riud', 'riud', 'r', 'Wants all spam', 'N', 'Y', 'N', 'N', 'N', 'N', 'N', 'N', 'Y', NULL, NULL, NULL, NULL, NULL, NULL, 3, 999, 999, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 'n', 999.00, 999.00, 'rewrite_subject', 999.00); -+INSERT INTO `spamfilter_policy` (`id`, `sys_userid`, `sys_groupid`, `sys_perm_user`, `sys_perm_group`, `sys_perm_other`, `policy_name`, `virus_lover`, `spam_lover`, `banned_files_lover`, `bad_header_lover`, `bypass_virus_checks`, `bypass_spam_checks`, `bypass_banned_checks`, `bypass_header_checks`, `spam_modifies_subj`, `virus_quarantine_to`, `spam_quarantine_to`, `banned_quarantine_to`, `bad_header_quarantine_to`, `clean_quarantine_to`, `other_quarantine_to`, `spam_tag_level`, `spam_tag2_level`, `spam_kill_level`, `spam_dsn_cutoff_level`, `spam_quarantine_cutoff_level`, `addr_extension_virus`, `addr_extension_spam`, `addr_extension_banned`, `addr_extension_bad_header`, `warnvirusrecip`, `warnbannedrecip`, `warnbadhrecip`, `newvirus_admin`, `virus_admin`, `banned_admin`, `bad_header_admin`, `spam_admin`, `spam_subject_tag`, `spam_subject_tag2`, `message_size_limit`, `banned_rulenames`, `rspamd_greylisting`, `rspamd_spam_greylisting_level`, `rspamd_spam_tag_level`, `rspamd_spam_tag_method`, `rspamd_spam_kill_level`) VALUES(4, 1, 0, 'riud', 'riud', 'r', 'Wants viruses', 'Y', 'N', 'Y', 'Y', 'N', 'N', 'N', 'N', 'Y', NULL, NULL, NULL, NULL, NULL, NULL, 3, 6.9, 6.9, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 'y', 4.00, 6.00, 'rewrite_subject', 10.00); -+INSERT INTO `spamfilter_policy` (`id`, `sys_userid`, `sys_groupid`, `sys_perm_user`, `sys_perm_group`, `sys_perm_other`, `policy_name`, `virus_lover`, `spam_lover`, `banned_files_lover`, `bad_header_lover`, `bypass_virus_checks`, `bypass_spam_checks`, `bypass_banned_checks`, `bypass_header_checks`, `spam_modifies_subj`, `virus_quarantine_to`, `spam_quarantine_to`, `banned_quarantine_to`, `bad_header_quarantine_to`, `clean_quarantine_to`, `other_quarantine_to`, `spam_tag_level`, `spam_tag2_level`, `spam_kill_level`, `spam_dsn_cutoff_level`, `spam_quarantine_cutoff_level`, `addr_extension_virus`, `addr_extension_spam`, `addr_extension_banned`, `addr_extension_bad_header`, `warnvirusrecip`, `warnbannedrecip`, `warnbadhrecip`, `newvirus_admin`, `virus_admin`, `banned_admin`, `bad_header_admin`, `spam_admin`, `spam_subject_tag`, `spam_subject_tag2`, `message_size_limit`, `banned_rulenames`, `rspamd_greylisting`, `rspamd_spam_greylisting_level`, `rspamd_spam_tag_level`, `rspamd_spam_tag_method`, `rspamd_spam_kill_level`) VALUES(5, 1, 0, 'riud', 'riud', 'r', 'Normal', 'N', 'N', 'N', 'N', 'N', 'N', 'N', 'N', 'Y', '', '', '', '', '', '', 1, 4.5, 50, 0, 0, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, '', '***SPAM***', NULL, NULL, 'y', 4.00, 6.00, 'rewrite_subject', 10.00); -+INSERT INTO `spamfilter_policy` (`id`, `sys_userid`, `sys_groupid`, `sys_perm_user`, `sys_perm_group`, `sys_perm_other`, `policy_name`, `virus_lover`, `spam_lover`, `banned_files_lover`, `bad_header_lover`, `bypass_virus_checks`, `bypass_spam_checks`, `bypass_banned_checks`, `bypass_header_checks`, `spam_modifies_subj`, `virus_quarantine_to`, `spam_quarantine_to`, `banned_quarantine_to`, `bad_header_quarantine_to`, `clean_quarantine_to`, `other_quarantine_to`, `spam_tag_level`, `spam_tag2_level`, `spam_kill_level`, `spam_dsn_cutoff_level`, `spam_quarantine_cutoff_level`, `addr_extension_virus`, `addr_extension_spam`, `addr_extension_banned`, `addr_extension_bad_header`, `warnvirusrecip`, `warnbannedrecip`, `warnbadhrecip`, `newvirus_admin`, `virus_admin`, `banned_admin`, `bad_header_admin`, `spam_admin`, `spam_subject_tag`, `spam_subject_tag2`, `message_size_limit`, `banned_rulenames`, `rspamd_greylisting`, `rspamd_spam_greylisting_level`, `rspamd_spam_tag_level`, `rspamd_spam_tag_method`, `rspamd_spam_kill_level`) VALUES(6, 1, 0, 'riud', 'riud', 'r', 'Trigger happy', 'N', 'N', 'N', 'N', 'N', 'N', 'N', 'N', 'Y', NULL, NULL, NULL, NULL, NULL, NULL, 3, 5, 5, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 'y', 2.00, 4.00, 'rewrite_subject', 8.00); -+INSERT INTO `spamfilter_policy` (`id`, `sys_userid`, `sys_groupid`, `sys_perm_user`, `sys_perm_group`, `sys_perm_other`, `policy_name`, `virus_lover`, `spam_lover`, `banned_files_lover`, `bad_header_lover`, `bypass_virus_checks`, `bypass_spam_checks`, `bypass_banned_checks`, `bypass_header_checks`, `spam_modifies_subj`, `virus_quarantine_to`, `spam_quarantine_to`, `banned_quarantine_to`, `bad_header_quarantine_to`, `clean_quarantine_to`, `other_quarantine_to`, `spam_tag_level`, `spam_tag2_level`, `spam_kill_level`, `spam_dsn_cutoff_level`, `spam_quarantine_cutoff_level`, `addr_extension_virus`, `addr_extension_spam`, `addr_extension_banned`, `addr_extension_bad_header`, `warnvirusrecip`, `warnbannedrecip`, `warnbadhrecip`, `newvirus_admin`, `virus_admin`, `banned_admin`, `bad_header_admin`, `spam_admin`, `spam_subject_tag`, `spam_subject_tag2`, `message_size_limit`, `banned_rulenames`, `rspamd_greylisting`, `rspamd_spam_greylisting_level`, `rspamd_spam_tag_level`, `rspamd_spam_tag_method`, `rspamd_spam_kill_level`) VALUES(7, 1, 0, 'riud', 'riud', 'r', 'Permissive', 'N', 'N', 'N', 'Y', 'N', 'N', 'N', 'N', 'Y', NULL, NULL, NULL, NULL, NULL, NULL, 3, 10, 20, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 'n', 7.00, 10.00, 'rewrite_subject', 20.00); - - -- -------------------------------------------------------- - diff --git a/interface/web/admin/form/server_config.tform.php.orig b/interface/web/admin/form/server_config.tform.php.orig deleted file mode 100644 index 1a6c8070c..000000000 --- a/interface/web/admin/form/server_config.tform.php.orig +++ /dev/null @@ -1,1956 +0,0 @@ - 0 id must match with id of current user -$form["auth_preset"]["groupid"] = 0; // 0 = default groupid of the user, > 0 id must match with groupid of current user -$form["auth_preset"]["perm_user"] = 'riud'; //r = read, i = insert, u = update, d = delete -$form["auth_preset"]["perm_group"] = 'riud'; //r = read, i = insert, u = update, d = delete -$form["auth_preset"]["perm_other"] = ''; //r = read, i = insert, u = update, d = delete - -$form["tabs"]['server'] = array( - 'title' => "Server", - 'width' => 70, - 'template' => "templates/server_config_server_edit.htm", - 'fields' => array( - //################################# - // Begin Datatable fields - //################################# - 'auto_network_configuration' => array( - 'datatype' => 'VARCHAR', - 'formtype' => 'CHECKBOX', - 'default' => 'n', - 'value' => array(0 => 'n', 1 => 'y') - ), - 'ip_address' => array( - 'datatype' => 'VARCHAR', - 'formtype' => 'TEXT', - 'default' => '192.168.0.105', - 'validators' => array(0 => array('type' => 'ISIPV4', - 'errmsg' => 'ip_address_error_wrong'), - ), - 'value' => '', - 'width' => '15', - 'maxlength' => '255' - ), - 'netmask' => array( - 'datatype' => 'VARCHAR', - 'formtype' => 'TEXT', - 'default' => '255.255.255.0', - 'validators' => array(0 => array('type' => 'ISIPV4', - 'errmsg' => 'netmask_error_wrong'), - ), - 'value' => '', - 'width' => '15', - 'maxlength' => '255' - ), - 'v6_prefix' => array( - 'datatype' => 'VARCHAR', - 'formtype' => 'TEXT', - 'validators' => array( 0 => array('type' => 'ISV6PREFIX', - 'errmsg' => 'v6_prefix_wrong'), - 1 => array('type' => 'V6PREFIXEND', - 'errmsg' => 'v6_prefix_end'), - 2 => array('type' => 'V6PREFIXLENGTH', - 'errmsg' => 'v6_prefix_length') - ), - 'default' => '' - ), - 'gateway' => array( - 'datatype' => 'VARCHAR', - 'formtype' => 'TEXT', - 'default' => '192.168.0.1', - 'validators' => array(0 => array('type' => 'ISIPV4', - 'errmsg' => 'gateway_error_wrong'), - ), - 'value' => '', - 'width' => '15', - 'maxlength' => '255' - ), - 'firewall' => array( - 'datatype' => 'VARCHAR', - 'formtype' => 'SELECT', - 'default' => 'bastille', - 'value' => array('bastille' => 'bastille', 'ufw' => 'ufw'), - 'width' => '40', - 'maxlength' => '255' - ), - 'hostname' => array( - 'datatype' => 'VARCHAR', - 'formtype' => 'TEXT', - 'default' => 'server1.domain.tld', - 'filters' => array( 0 => array( 'event' => 'SAVE', - 'type' => 'IDNTOASCII'), - 1 => array( 'event' => 'SHOW', - 'type' => 'IDNTOUTF8'), - 2 => array( 'event' => 'SAVE', - 'type' => 'TOLOWER') - ), - 'validators' => array( 0 => array('type' => 'NOTEMPTY', - 'errmsg' => 'hostname_error_empty'), - 1 => array ('type' => 'REGEX', - 'regex' => '/^[\w\.\-]{2,255}\.[a-zA-Z0-9\-]{2,30}$/', - 'errmsg'=> 'hostname_error_regex'), - ), - 'value' => '', - 'width' => '40', - 'maxlength' => '255' - ), - 'nameservers' => array( - 'datatype' => 'VARCHAR', - 'formtype' => 'TEXT', - 'default' => '192.168.0.1,192.168.0.2', - 'validators' => array(0 => array('type' => 'NOTEMPTY', - 'errmsg' => 'nameservers_error_empty'), - ), - 'filters' => array( - 0 => array( 'event' => 'SAVE', - 'type' => 'STRIPTAGS'), - 1 => array( 'event' => 'SAVE', - 'type' => 'STRIPNL') - ), - 'value' => '', - 'width' => '40', - 'maxlength' => '255' - ), - 'loglevel' => array( - 'datatype' => 'INTEGER', - 'formtype' => 'SELECT', - 'default' => '2', - 'value' => array('0' => 'Debug', '1' => 'Warnings', '2' => 'Errors'), - 'width' => '40', - 'maxlength' => '255' - ), - 'admin_notify_events' => array( - 'datatype' => 'INTEGER', - 'formtype' => 'SELECT', - 'default' => '1', - 'value' => array('3' => 'no_notifications_txt', '0' => 'Debug', '1' => 'Warnings', '2' => 'Errors'), - 'width' => '40', - 'maxlength' => '255' - ), - 'backup_dir' => array( - 'datatype' => 'VARCHAR', - 'formtype' => 'TEXT', - 'default' => '/var/backup', - 'validators' => array( 0 => array ( 'type' => 'REGEX', - 'regex' => "/(|^\\/{1,2}(?:[\\w-]+[.]?\\/?){5,128})$/", - 'errmsg'=> 'backup_dir_error_regex'), - ), - 'value' => '', - 'width' => '40', - 'maxlength' => '255' - ), - 'backup_tmp' => array( - 'datatype' => 'VARCHAR', - 'formtype' => 'TEXT', - 'default' => '/tmp/', - 'validators' => array( 0 => array('type' => 'NOTEMPTY', - 'errmsg' => 'tmpdir_path_error_empty'), - 1 => array ( 'type' => 'REGEX', - 'regex' => "/^\/[a-zA-Z0-9\.\-\_\/]{3,128}$/", - 'errmsg'=> 'tmpdir_path_error_regex'), - ), - 'value' => '', - 'width' => '40', - 'maxlength' => '255' - ), - 'backup_dir_is_mount' => array( - 'datatype' => 'VARCHAR', - 'formtype' => 'CHECKBOX', - 'default' => 'y', - 'value' => array(0 => 'n', 1 => 'y') - ), - 'backup_mode' => array( - 'datatype' => 'VARCHAR', - 'formtype' => 'SELECT', - 'default' => 'userzip', - 'value' => array('userzip' => 'backup_mode_userzip', 'rootgz' => 'backup_mode_rootgz'), - 'width' => '40', - 'maxlength' => '255' - ), - 'backup_time' => array( - 'datatype' => 'VARCHAR', - 'formtype' => 'SELECT', - 'default' => '0:00', - 'value' => array( '0:00' => '0:00h', - '0:15' => '0:15h', - '0:30' => '0:30h', - '0:45' => '0:45h', - '1:00' => '1:00h', - '1:15' => '1:15h', - '1:30' => '1:30h', - '1:45' => '1:45h', - '2:00' => '2:00h', - '2:15' => '2:15h', - '2:30' => '2:30h', - '2:45' => '2:45h', - '3:00' => '3:00h', - '3:15' => '3:15h', - '3:30' => '3:30h', - '3:45' => '3:45h', - '4:00' => '4:00h', - '4:15' => '4:15h', - '4:30' => '4:30h', - '4:45' => '4:45h', - '5:00' => '5:00h', - '5:15' => '5:15h', - '5:30' => '5:30h', - '5:45' => '5:45h', - '6:00' => '6:00h', - '6:15' => '6:15h', - '6:30' => '6:30h', - '6:45' => '6:45h', - '7:00' => '7:00h', - '7:15' => '7:15h', - '7:30' => '7:30h', - '7:45' => '7:45h', - '8:00' => '8:00h', - '8:15' => '8:15h', - '8:30' => '8:30h', - '8:45' => '8:45h', - '9:00' => '9:00h', - '9:15' => '9:15h', - '9:30' => '9:30h', - '9:45' => '9:45h', - '10:00' => '10:00h', - '10:15' => '10:15h', - '10:30' => '10:30h', - '10:45' => '10:45h', - '11:00' => '11:00h', - '11:15' => '11:15h', - '11:30' => '11:30h', - '11:45' => '11:45h', - '12:00' => '12:00h', - '12:15' => '12:15h', - '12:30' => '12:30h', - '12:45' => '12:45h', - '13:00' => '13:00h', - '13:15' => '13:15h', - '13:30' => '13:30h', - '13:45' => '13:45h', - '14:00' => '14:00h', - '14:15' => '14:15h', - '14:30' => '14:30h', - '14:45' => '14:45h', - '15:00' => '15:00h', - '15:15' => '15:15h', - '15:30' => '15:30h', - '15:45' => '15:45h', - '16:00' => '16:00h', - '16:15' => '16:15h', - '16:30' => '16:30h', - '16:45' => '16:45h', - '17:00' => '17:00h', - '17:15' => '17:15h', - '17:30' => '17:30h', - '17:45' => '17:45h', - '18:00' => '18:00h', - '18:15' => '18:15h', - '18:30' => '18:30h', - '18:45' => '18:45h', - '19:00' => '19:00h', - '19:15' => '19:15h', - '19:30' => '19:30h', - '19:45' => '19:45h', - '20:00' => '20:00h', - '20:15' => '20:15h', - '20:30' => '20:30h', - '20:45' => '20:45h', - '21:00' => '21:00h', - '21:15' => '21:15h', - '21:30' => '21:30h', - '21:45' => '21:45h', - '22:00' => '22:00h', - '22:15' => '22:15h', - '22:30' => '22:30h', - '22:45' => '22:45h', - '23:00' => '23:00h', - '23:15' => '23:15h', - '23:30' => '23:30h', - '23:45' => '23:45h', - ), - 'width' => '40', - 'maxlength' => '255' - ), - 'backup_delete' => array( - 'datatype' => 'VARCHAR', - 'formtype' => 'CHECKBOX', - 'default' => 'y', - 'value' => array(0 => 'n', 1 => 'y') - ), - 'monit_url' => array( - 'datatype' => 'VARCHAR', - 'formtype' => 'TEXT', - 'default' => '', - 'validators' => array ( 0 => array ( 'type' => 'REGEX', - 'regex' => '/^[0-9a-zA-Z\:\/\-\.\[\]]{0,255}$/', - 'errmsg'=> 'monit_url_error_regex'), - ), - 'value' => '', - 'width' => '40', - 'maxlength' => '255' - ), - 'monit_user' => array( - 'datatype' => 'VARCHAR', - 'formtype' => 'TEXT', - 'filters' => array( - 0 => array( 'event' => 'SAVE', - 'type' => 'STRIPTAGS'), - 1 => array( 'event' => 'SAVE', - 'type' => 'STRIPNL') - ), - 'default' => '', - 'value' => '', - 'width' => '40', - 'maxlength' => '255' - ), - 'monit_password' => array( - 'datatype' => 'VARCHAR', - 'formtype' => 'TEXT', - 'default' => '', - 'value' => '', - 'width' => '40', - 'maxlength' => '255' - ), - 'munin_url' => array( - 'datatype' => 'VARCHAR', - 'formtype' => 'TEXT', - 'default' => '', - 'validators' => array ( 0 => array ( 'type' => 'REGEX', - 'regex' => '/^[0-9a-zA-Z\:\/\-\.\[\]]{0,255}$/', - 'errmsg'=> 'munin_url_error_regex'), - ), - 'value' => '', - 'width' => '40', - 'maxlength' => '255' - ), - 'munin_user' => array( - 'datatype' => 'VARCHAR', - 'formtype' => 'TEXT', - 'filters' => array( - 0 => array( 'event' => 'SAVE', - 'type' => 'STRIPTAGS'), - 1 => array( 'event' => 'SAVE', - 'type' => 'STRIPNL') - ), - 'default' => '', - 'value' => '', - 'width' => '40', - 'maxlength' => '255' - ), - 'munin_password' => array( - 'datatype' => 'VARCHAR', - 'formtype' => 'TEXT', - 'default' => '', - 'value' => '', - 'width' => '40', - 'maxlength' => '255' - ), - 'monitor_system_updates' => array( - 'datatype' => 'VARCHAR', - 'formtype' => 'CHECKBOX', - 'default' => 'y', - 'value' => array(0 => 'n', 1 => 'y') - ), - 'log_retention' => array ( - 'datatype' => 'INTEGER', - 'formtype' => 'TEXT', - 'validators' => array ( 0 => array ( 'type' => 'ISPOSITIVE', - 'errmsg'=> 'log_retention_error_ispositive'), - ), - 'default' => '30', - 'value' => '', - 'width' => '4', - 'maxlength' => '4' - ), - 'migration_mode' => array( - 'datatype' => 'VARCHAR', - 'formtype' => 'CHECKBOX', - 'default' => 'n', - 'value' => array(0 => 'n', 1 => 'y') - ), - //################################# - // ENDE Datatable fields - //################################# - ) -); - -$form["tabs"]['mail'] = array( - 'title' => "Mail", - 'width' => 60, - 'template' => "templates/server_config_mail_edit.htm", - 'fields' => array( - //################################# - // Begin Datatable fields - //################################# - 'module' => array( - 'datatype' => 'VARCHAR', - 'formtype' => 'SELECT', - 'default' => '', - 'value' => array('postfix_mysql' => 'postfix_mysql') - ), - 'maildir_path' => array( - 'datatype' => 'VARCHAR', - 'formtype' => 'TEXT', - 'default' => '/home/vmail/[domain]/[localpart]/', - 'validators' => array( 0 => array('type' => 'NOTEMPTY', - 'errmsg' => 'maildir_path_error_empty'), - 1 => array ( 'type' => 'REGEX', - 'regex' => '/^\/[a-zA-Z0-9\.\-\_\/\[\]]{5,128}$/', - 'errmsg'=> 'maildir_path_error_regex'), - ), - 'value' => '', - 'width' => '40', - 'maxlength' => '255' - ), - 'maildir_format' => array( - 'datatype' => 'VARCHAR', - 'formtype' => 'SELECT', - 'default' => '20', - 'value' => array('maildir' => 'Maildir', 'mdbox' => 'mdbox') - ), - 'homedir_path' => array( - 'datatype' => 'VARCHAR', - 'formtype' => 'TEXT', - 'default' => '/home/vmail/', - 'validators' => array( 0 => array('type' => 'NOTEMPTY', - 'errmsg' => 'homedir_path_error_empty'), - 1 => array ( 'type' => 'REGEX', - 'regex' => '/^\/[a-zA-Z0-9\.\-\_\/]{5,128}$/', - 'errmsg'=> 'homedir_path_error_regex'), - ), - 'value' => '', - 'width' => '40', - 'maxlength' => '255' - ), - 'dkim_path' => array( - 'datatype' => 'VARCHAR', - 'formtype' => 'TEXT', - 'filters' => array( - 0 => array( 'event' => 'SAVE', - 'type' => 'STRIPTAGS'), - 1 => array( 'event' => 'SAVE', - 'type' => 'STRIPNL') - ), - 'default' => '/var/lib/amavis/dkim', - 'value' => '', - 'width' => '40', - 'maxlength' => '255' - ), - 'dkim_strength' => array( - 'datatype' => 'INTEGER', - 'formtype' => 'SELECT', - 'default' => '2048', - 'value' => array('1024' => 'weak (1024)', '2048' => 'normal (2048)', '4096' => 'strong (4096)') - ), - 'relayhost_password' => array( - 'datatype' => 'VARCHAR', - 'formtype' => 'TEXT', - 'default' => '', - 'value' => '', - 'width' => '40', - 'maxlength' => '255' - ), - - 'pop3_imap_daemon' => array( - 'datatype' => 'VARCHAR', - 'formtype' => 'SELECT', - 'default' => '20', - 'value' => array('courier' => 'Courier', 'dovecot' => 'Dovecot') - ), - 'mail_filter_syntax' => array( - 'datatype' => 'VARCHAR', - 'formtype' => 'SELECT', - 'default' => '20', - 'value' => array('maildrop' => 'Maildrop', 'sieve' => 'Sieve') - ), - 'mailuser_uid' => array( - 'datatype' => 'INTEGER', - 'formtype' => 'TEXT', - 'default' => '5000', - 'validators' => array( 0 => array('type' => 'NOTEMPTY', - 'errmsg' => 'mailuser_uid_error_empty'), - 1 => array('type' => 'RANGE', - 'range' => '1999:', - 'errmsg' => 'mailuser_uid_error_range'), - ), - 'value' => '', - 'width' => '10', - 'maxlength' => '255' - ), - 'mailuser_gid' => array( - 'datatype' => 'INTEGER', - 'formtype' => 'TEXT', - 'default' => '5000', - 'validators' => array( 0 => array('type' => 'NOTEMPTY', - 'errmsg' => 'mailuser_gid_error_empty'), - 1 => array('type' => 'RANGE', - 'range' => '1999:', - 'errmsg' => 'mailuser_gid_error_range'), - ), - 'value' => '', - 'width' => '10', - 'maxlength' => '255' - ), - 'mailuser_name' => array( - 'datatype' => 'VARCHAR', - 'formtype' => 'TEXT', - 'default' => 'vmail', - 'validators' => array( 0 => array('type' => 'NOTEMPTY', - 'errmsg' => 'mailuser_name_error_empty'), - 1 => array ( 'type' => 'REGEX', - 'regex' => '/^(?!ispconfig|root)([a-zA-Z0-9]{1,20})$/', - 'errmsg'=> 'mailuser_name_error_regex'), - ), - 'value' => '', - 'width' => '10', - 'maxlength' => '255' - ), - 'mailuser_group' => array( - 'datatype' => 'VARCHAR', - 'formtype' => 'TEXT', - 'default' => 'vmail', - 'validators' => array( 0 => array('type' => 'NOTEMPTY', - 'errmsg' => 'mailuser_group_error_empty'), - 1 => array ( 'type' => 'REGEX', - 'regex' => '/^(?!ispconfig|root)([a-zA-Z0-9]{1,20})$/', - 'errmsg'=> 'mailuser_group_name_error_regex'), - ), - 'value' => '', - 'width' => '10', - 'maxlength' => '255' - ), - 'mailbox_virtual_uidgid_maps' => array( - 'datatype' => 'VARCHAR', - 'formtype' => 'CHECKBOX', - 'validators' => array (0 => array ( 'type' => 'CUSTOM', - 'class' => 'validate_server_mail_config', - 'function' => 'mailbox_virtual_uidgid_maps'), - ), - 'default' => 'n', - 'value' => array(0 => 'n', 1 => 'y') - ), - 'relayhost' => array( - 'datatype' => 'VARCHAR', - 'formtype' => 'TEXT', - 'filters' => array( - 0 => array( 'event' => 'SAVE', - 'type' => 'STRIPTAGS'), - 1 => array( 'event' => 'SAVE', - 'type' => 'STRIPNL') - ), - 'default' => '', - 'value' => '', - 'width' => '40', - 'maxlength' => '255' - ), - 'relayhost_user' => array( - 'datatype' => 'VARCHAR', - 'formtype' => 'TEXT', - 'filters' => array( - 0 => array( 'event' => 'SAVE', - 'type' => 'STRIPTAGS'), - 1 => array( 'event' => 'SAVE', - 'type' => 'STRIPNL') - ), - 'default' => '', - 'value' => '', - 'width' => '40', - 'maxlength' => '255' - ), - 'relayhost_password' => array( - 'datatype' => 'VARCHAR', - 'formtype' => 'TEXT', - 'default' => '', - 'value' => '', - 'width' => '40', - 'maxlength' => '255' - ), - 'reject_sender_login_mismatch' => array ( - 'datatype' => 'VARCHAR', - 'formtype' => 'CHECKBOX', - 'default' => 'n', - 'value' => array(0 => 'n', 1 => 'y') - ), - 'mailbox_size_limit' => array( - 'datatype' => 'INTEGER', - 'formtype' => 'TEXT', - 'default' => '0', - 'value' => '', - 'width' => '10', - 'maxlength' => '15' - ), - 'message_size_limit' => array( - 'datatype' => 'INTEGER', - 'formtype' => 'TEXT', - 'default' => '0', - 'value' => '', - 'width' => '10', - 'maxlength' => '15' - ), - 'mailbox_quota_stats' => array ( - 'datatype' => 'VARCHAR', - 'formtype' => 'CHECKBOX', - 'default' => 'y', - 'value' => array(0 => 'n', 1 => 'y') - ), - 'realtime_blackhole_list' => array( - 'datatype' => 'VARCHAR', - 'formtype' => 'TEXT', - 'default' => '', - 'validators' => array ( 0 => array ( 'type' => 'REGEX', - 'regex' => '/^((([a-zA-Z0-9]|[a-zA-Z0-9][a-zA-Z0-9\-]*[a-zA-Z0-9])\.)+([A-Za-z0-9]|[A-Za-z0-9][A-Za-z0-9\-]*[A-Za-z0-9])(,\s*(([a-zA-Z0-9]|[a-zA-Z0-9][a-zA-Z0-9\-]*[a-zA-Z0-9])\.)+([A-Za-z0-9]|[A-Za-z0-9][A-Za-z0-9\-]*[A-Za-z0-9]))*)?$/', - 'errmsg'=> 'rbl_error_regex'), - ), - 'value' => '', - 'width' => '40', - 'maxlength' => '255' - ), - 'overquota_notify_admin' => array( - 'datatype' => 'VARCHAR', - 'formtype' => 'CHECKBOX', - 'default' => 'y', - 'value' => array(0 => 'n', 1 => 'y') - ), - 'overquota_notify_client' => array( - 'datatype' => 'VARCHAR', - 'formtype' => 'CHECKBOX', - 'default' => 'y', - 'value' => array(0 => 'n', 1 => 'y') - ), - 'overquota_notify_freq' => array( - 'datatype' => 'INTEGER', - 'formtype' => 'TEXT', - 'default' => '7', - 'value' => '', - 'width' => '20', - 'maxlength' => '255' - ), - 'overquota_notify_onok' => array( - 'datatype' => 'VARCHAR', - 'formtype' => 'CHECKBOX', - 'default' => 'n', - 'value' => array(0 => 'n', 1 => 'y') - ), - //################################# - // ENDE Datatable fields - //################################# - ) -); - -$form["tabs"]['getmail'] = array( - 'title' => "Getmail", - 'width' => 80, - 'template' => "templates/server_config_getmail_edit.htm", - 'fields' => array( - //################################# - // Begin Datatable fields - //################################# - 'getmail_config_dir' => array( - 'datatype' => 'VARCHAR', - 'formtype' => 'TEXT', - 'default' => '', - 'validators' => array( 0 => array('type' => 'NOTEMPTY', - 'errmsg' => 'getmail_config_dir_error_empty'), - 1 => array ( 'type' => 'REGEX', - 'regex' => '/^\/[a-zA-Z0-9\.\-\_\/]{5,128}$/', - 'errmsg'=> 'getmail_config_dir_error_regex'), - ), - 'value' => '', - 'width' => '40', - 'maxlength' => '255' - ), - //################################# - // ENDE Datatable fields - //################################# - ) -); - -$form["tabs"]['web'] = array( - 'title' => "Web", - 'width' => 60, - 'template' => "templates/server_config_web_edit.htm", - 'fields' => array( - //################################# - // Begin Datatable fields - //################################# - 'server_type' => array( - 'datatype' => 'VARCHAR', - 'formtype' => 'SELECT', - 'default' => 'apache', - 'value' => array('apache' => 'Apache', 'nginx' => 'Nginx') - ), - 'website_basedir' => array( - 'datatype' => 'VARCHAR', - 'formtype' => 'TEXT', - 'default' => '', - 'validators' => array( 0 => array('type' => 'NOTEMPTY', - 'errmsg' => 'website_basedir_error_empty'), - 1 => array ( 'type' => 'REGEX', - 'regex' => '/^\/[a-zA-Z0-9\.\-\_\/]{5,128}$/', - 'errmsg'=> 'website_basedir_error_regex'), - ), - 'value' => '', - 'width' => '40', - 'maxlength' => '255' - ), - 'website_path' => array( - 'datatype' => 'VARCHAR', - 'formtype' => 'TEXT', - 'default' => '', - 'validators' => array( 0 => array( 'type' => 'NOTEMPTY', - 'errmsg' => 'website_path_error_empty'), - 1 => array ( 'type' => 'REGEX', - 'regex' => '/^\/[a-zA-Z0-9\.\-\_\/\[\]]{5,128}$/', - 'errmsg'=> 'website_path_error_regex'), - ), - 'value' => '', - 'width' => '40', - 'maxlength' => '255' - ), - 'website_symlinks' => array( - 'datatype' => 'VARCHAR', - 'formtype' => 'TEXT', - 'default' => '', - 'validators' => array( 0 => array('type' => 'NOTEMPTY', - 'errmsg' => 'website_symlinks_error_empty'), - 1 => array ( 'type' => 'REGEX', - 'regex' => '/^\/[a-zA-Z0-9\.\-\_\/\[\]\:]{5,128}$/', - 'errmsg'=> 'website_symlinks_error_regex'), - ), - 'value' => '', - 'width' => '40', - 'maxlength' => '255' - ), - 'website_symlinks_rel' => array ( - 'datatype' => 'VARCHAR', - 'formtype' => 'CHECKBOX', - 'default' => 'n', - 'value' => array(0 => 'n', 1 => 'y') - ), - 'network_filesystem' => array ( - 'datatype' => 'VARCHAR', - 'formtype' => 'CHECKBOX', - 'default' => 'n', - 'value' => array(0 => 'n', 1 => 'y') - ), - 'website_autoalias' => array( - 'datatype' => 'VARCHAR', - 'formtype' => 'TEXT', - 'filters' => array( - 0 => array( 'event' => 'SAVE', - 'type' => 'STRIPTAGS'), - 1 => array( 'event' => 'SAVE', - 'type' => 'STRIPNL') - ), - 'default' => '', - 'value' => '', - 'width' => '40', - 'maxlength' => '255' - ), - 'vhost_rewrite_v6' => array ( - 'datatype' => 'VARCHAR', - 'formtype' => 'CHECKBOX', - 'default' => 'n', - 'value' => array(0 => 'n',1 => 'y') - ), - 'vhost_conf_dir' => array( - 'datatype' => 'VARCHAR', - 'formtype' => 'TEXT', - 'default' => '', - 'validators' => array( 0 => array('type' => 'NOTEMPTY', - 'errmsg' => 'vhost_conf_dir_error_empty'), - 1 => array ( 'type' => 'REGEX', - 'regex' => '/^\/[a-zA-Z0-9\.\-\_\/]{5,128}$/', - 'errmsg'=> 'vhost_conf_dir_error_regex'), - ), - 'value' => '', - 'width' => '40', - 'maxlength' => '255' - ), - 'vhost_conf_enabled_dir' => array( - 'datatype' => 'VARCHAR', - 'formtype' => 'TEXT', - 'default' => '', - 'validators' => array( 0 => array('type' => 'NOTEMPTY', - 'errmsg' => 'vhost_conf_enabled_dir_error_empty'), - 1 => array ( 'type' => 'REGEX', - 'regex' => '/^\/[a-zA-Z0-9\.\-\_\/]{5,128}$/', - 'errmsg'=> 'vhost_conf_enabled_dir_error_regex'), - ), - 'value' => '', - 'width' => '40', - 'maxlength' => '255' - ), - 'nginx_enable_pagespeed' => array ( - 'datatype' => 'VARCHAR', - 'formtype' => 'CHECKBOX', - 'default' => 'n', - 'value' => array(0 => 'n',1 => 'y') - ), - 'nginx_vhost_conf_dir' => array( - 'datatype' => 'VARCHAR', - 'formtype' => 'TEXT', - 'default' => '', - 'validators' => array( 0 => array('type' => 'NOTEMPTY', - 'errmsg' => 'nginx_vhost_conf_dir_error_empty'), - 1 => array ( 'type' => 'REGEX', - 'regex' => '/^\/[a-zA-Z0-9\.\-\_\/]{5,128}$/', - 'errmsg'=> 'nginx_vhost_conf_dir_error_regex'), - ), - 'value' => '', - 'width' => '40', - 'maxlength' => '255' - ), - 'nginx_vhost_conf_enabled_dir' => array( - 'datatype' => 'VARCHAR', - 'formtype' => 'TEXT', - 'default' => '', - 'validators' => array( 0 => array('type' => 'NOTEMPTY', - 'errmsg' => 'nginx_vhost_conf_enabled_dir_error_empty'), - 1 => array ( 'type' => 'REGEX', - 'regex' => '/^\/[a-zA-Z0-9\.\-\_\/]{5,128}$/', - 'errmsg'=> 'nginx_vhost_conf_enabled_dir_error_regex'), - ), - 'value' => '', - 'width' => '40', - 'maxlength' => '255' - ), - 'CA_path' => array( - 'datatype' => 'VARCHAR', - 'formtype' => 'TEXT', - 'validators' => array( 0 => array ( 'type' => 'REGEX', - 'regex' => '/^[a-zA-Z0-9\.\-\_\/]{0,128}$/', - 'errmsg'=> 'ca_path_error_regex'), - ), - 'default' => '', - 'value' => '', - 'width' => '40', - 'maxlength' => '255' - ), - 'CA_pass' => array( - 'datatype' => 'VARCHAR', - 'formtype' => 'TEXT', - 'default' => '', - 'value' => '', - 'width' => '40', - 'maxlength' => '255' - ), - 'security_level' => array( - 'datatype' => 'VARCHAR', - 'formtype' => 'SELECT', - 'default' => '20', - 'value' => array('10' => 'Medium', '20' => 'High') - ), - 'set_folder_permissions_on_update' => array( - 'datatype' => 'VARCHAR', - 'formtype' => 'CHECKBOX', - 'default' => 'n', - 'value' => array(0 => 'n', 1 => 'y') - ), - 'web_folder_protection' => array( - 'datatype' => 'VARCHAR', - 'formtype' => 'CHECKBOX', - 'default' => 'y', - 'value' => array(0 => 'n', 1 => 'y') - ), - 'add_web_users_to_sshusers_group' => array( - 'datatype' => 'VARCHAR', - 'formtype' => 'CHECKBOX', - 'default' => 'y', - 'value' => array(0 => 'n', 1 => 'y') - ), - 'check_apache_config' => array( - 'datatype' => 'VARCHAR', - 'formtype' => 'CHECKBOX', - 'default' => 'y', - 'value' => array(0 => 'n', 1 => 'y') - ), - 'enable_sni' => array( - 'datatype' => 'VARCHAR', - 'formtype' => 'CHECKBOX', - 'default' => 'y', - 'value' => array(0 => 'n', 1 => 'y') - ), - 'enable_ip_wildcard' => array( - 'datatype' => 'VARCHAR', - 'formtype' => 'CHECKBOX', - 'default' => 'y', - 'value' => array(0 => 'n', 1 => 'y') - ), - 'logging' => array( - 'datatype' => 'VARCHAR', - 'formtype' => 'SELECT', - 'default' => 'yes', - 'value' => array('yes' => 'Yes', 'anon' => 'Anonymize IP', 'no' => 'No') - ), - 'overtraffic_notify_admin' => array( - 'datatype' => 'VARCHAR', - 'formtype' => 'CHECKBOX', - 'default' => 'y', - 'value' => array(0 => 'n', 1 => 'y') - ), - 'overtraffic_notify_client' => array( - 'datatype' => 'VARCHAR', - 'formtype' => 'CHECKBOX', - 'default' => 'y', - 'value' => array(0 => 'n', 1 => 'y') - ), - 'overquota_notify_admin' => array( - 'datatype' => 'VARCHAR', - 'formtype' => 'CHECKBOX', - 'default' => 'y', - 'value' => array(0 => 'n', 1 => 'y') - ), - 'overquota_notify_client' => array( - 'datatype' => 'VARCHAR', - 'formtype' => 'CHECKBOX', - 'default' => 'y', - 'value' => array(0 => 'n', 1 => 'y') - ), - 'overquota_db_notify_admin' => array( - 'datatype' => 'VARCHAR', - 'formtype' => 'CHECKBOX', - 'default' => 'y', - 'value' => array(0 => 'n', 1 => 'y') - ), - 'overquota_db_notify_client' => array( - 'datatype' => 'VARCHAR', - 'formtype' => 'CHECKBOX', - 'default' => 'y', - 'value' => array(0 => 'n', 1 => 'y') - ), - 'overquota_notify_freq' => array( - 'datatype' => 'INTEGER', - 'formtype' => 'TEXT', - 'default' => '7', - 'value' => '', - 'width' => '20', - 'maxlength' => '255' - ), - 'overquota_notify_onok' => array( - 'datatype' => 'VARCHAR', - 'formtype' => 'CHECKBOX', - 'default' => 'n', - 'value' => array(0 => 'n', 1 => 'y') - ), - 'user' => array( - 'datatype' => 'VARCHAR', - 'formtype' => 'TEXT', - 'default' => '', - 'validators' => array(0 => array('type' => 'NOTEMPTY', - 'errmsg' => 'apache_user_error_empty'), - 1 => array( - 'type' => 'CUSTOM', - 'class' => 'validate_systemuser', - 'function' => 'check_sysuser', - 'check_names' => false, - 'errmsg' => 'invalid_apache_user_txt' - ), - ), - 'value' => '', - 'width' => '40', - 'maxlength' => '255' - ), - 'group' => array( - 'datatype' => 'VARCHAR', - 'formtype' => 'TEXT', - 'default' => '', - 'validators' => array(0 => array('type' => 'NOTEMPTY', - 'errmsg' => 'apache_group_error_empty'), - 1 => array( - 'type' => 'CUSTOM', - 'class' => 'validate_systemuser', - 'function' => 'check_sysgroup', - 'check_names' => false, - 'errmsg' => 'invalid_apache_group_txt' - ), - ), - 'value' => '', - 'width' => '40', - 'maxlength' => '255' - ), - 'connect_userid_to_webid' => array( - 'datatype' => 'VARCHAR', - 'formtype' => 'CHECKBOX', - 'default' => 'n', - 'value' => array(0 => 'n', 1 => 'y') - ), - 'connect_userid_to_webid_start' => array( - 'datatype' => 'VARCHAR', - 'formtype' => 'TEXT', - 'default' => '10000', - 'validators' => array(0 => array('type' => 'ISINT', - 'errmsg' => 'connect_userid_to_webid_startid_isint'), - ), - 'value' => '', - 'width' => '40', - 'maxlength' => '255' - ), - 'nginx_user' => array( - 'datatype' => 'VARCHAR', - 'formtype' => 'TEXT', - 'default' => '', - 'validators' => array( 0 => array('type' => 'NOTEMPTY', - 'errmsg' => 'nginx_user_error_empty'), - 1 => array( - 'type' => 'CUSTOM', - 'class' => 'validate_systemuser', - 'function' => 'check_sysuser', - 'check_names' => false, - 'errmsg' => 'invalid_nginx_user_txt' - ), - ), - 'value' => '', - 'width' => '40', - 'maxlength' => '255' - ), - 'nginx_group' => array( - 'datatype' => 'VARCHAR', - 'formtype' => 'TEXT', - 'default' => '', - 'validators' => array( 0 => array('type' => 'NOTEMPTY', - 'errmsg' => 'nginx_group_error_empty'), - 1 => array( - 'type' => 'CUSTOM', - 'class' => 'validate_systemuser', - 'function' => 'check_sysgroup', - 'check_names' => false, - 'errmsg' => 'invalid_nginx_group_txt' - ), - ), - 'value' => '', - 'width' => '40', - 'maxlength' => '255' - ), - 'php_ini_path_apache' => array( - 'datatype' => 'VARCHAR', - 'formtype' => 'TEXT', - 'default' => '', - 'validators' => array( 0 => array('type' => 'NOTEMPTY', - 'errmsg' => 'php_ini_path_apache_error_empty'), - 1 => array ( 'type' => 'REGEX', - 'regex' => '/^\/[a-zA-Z0-9\.\-\_\/]{5,128}$/', - 'errmsg'=> 'php_ini_path_apache_error_regex'), - ), - 'value' => '', - 'width' => '40', - 'maxlength' => '255' - ), - 'php_ini_path_cgi' => array( - 'datatype' => 'VARCHAR', - 'formtype' => 'TEXT', - 'default' => '', - 'validators' => array( 0 => array('type' => 'NOTEMPTY', - 'errmsg' => 'php_ini_path_cgi_error_empty'), - 1 => array ( 'type' => 'REGEX', - 'regex' => '/^\/[a-zA-Z0-9\.\-\_\/]{5,128}$/', - 'errmsg'=> 'php_ini_path_cgi_error_regex'), - ), - 'value' => '', - 'width' => '40', - 'maxlength' => '255' - ), - 'php_default_name' => array( - 'datatype' => 'VARCHAR', - 'formtype' => 'TEXT', - 'default' => 'Default', - 'validators' => array( 0 => array('type' => 'NOTEMPTY', - 'errmsg' => 'php_default_name_error_empty'), - ), - 'filters' => array( - 0 => array( 'event' => 'SAVE', - 'type' => 'TRIM'), - 1 => array( 'event' => 'SAVE', - 'type' => 'STRIPTAGS'), - 2 => array( 'event' => 'SAVE', - 'type' => 'STRIPNL') - ), - 'width' => '40', - 'maxlength' => '255' - ), - 'php_fpm_init_script' => array( - 'datatype' => 'VARCHAR', - 'formtype' => 'TEXT', - 'default' => '', - 'validators' => array( 0 => array('type' => 'NOTEMPTY', - 'errmsg' => 'php_fpm_init_script_error_empty'), - 1 => array ( 'type' => 'REGEX', - 'regex' => '/^[a-zA-Z0-9\.\-\_]{1,128}$/', - 'errmsg'=> 'php_fpm_init_script_error_regex'), - ), - 'value' => '', - 'width' => '40', - 'maxlength' => '255' - ), - 'php_fpm_ini_path' => array( - 'datatype' => 'VARCHAR', - 'formtype' => 'TEXT', - 'default' => '', - 'validators' => array( 0 => array('type' => 'NOTEMPTY', - 'errmsg' => 'php_fpm_ini_path_error_empty'), - 1 => array ( 'type' => 'REGEX', - 'regex' => '/^\/[a-zA-Z0-9\.\-\_\/]{5,128}$/', - 'errmsg'=> 'php_fpm_ini_path_error_regex'), - ), - 'value' => '', - 'width' => '40', - 'maxlength' => '255' - ), - 'php_fpm_pool_dir' => array( - 'datatype' => 'VARCHAR', - 'formtype' => 'TEXT', - 'default' => '', - 'validators' => array( 0 => array('type' => 'NOTEMPTY', - 'errmsg' => 'php_fpm_pool_dir_error_empty'), - 1 => array ( 'type' => 'REGEX', - 'regex' => '/^\/[a-zA-Z0-9\.\-\_\/]{5,128}$/', - 'errmsg'=> 'php_fpm_pool_dir_error_regex'), - ), - 'value' => '', - 'width' => '40', - 'maxlength' => '255' - ), - 'php_fpm_start_port' => array( - 'datatype' => 'VARCHAR', - 'formtype' => 'TEXT', - 'default' => '', - 'validators' => array(0 => array('type' => 'ISPOSITIVE', - 'errmsg' => 'php_fpm_start_port_error_empty'), - ), - 'value' => '', - 'width' => '40', - 'maxlength' => '255' - ), - 'php_fpm_socket_dir' => array( - 'datatype' => 'VARCHAR', - 'formtype' => 'TEXT', - 'default' => '', - 'validators' => array( 0 => array('type' => 'NOTEMPTY', - 'errmsg' => 'php_fpm_socket_dir_error_empty'), - 1 => array ( 'type' => 'REGEX', - 'regex' => '/^\/[a-zA-Z0-9\.\-\_\/]{5,128}$/', - 'errmsg'=> 'php_fpm_socket_dir_error_regex'), - ), - 'value' => '', - 'width' => '40', - 'maxlength' => '255' - ), - 'php_open_basedir' => array( - 'datatype' => 'VARCHAR', - 'formtype' => 'TEXT', - 'default' => '', - 'validators' => array( 0 => array('type' => 'NOTEMPTY', - 'errmsg' => 'php_open_basedir_error_empty'), - 1 => array ( 'type' => 'REGEX', - 'regex' => '/^[a-zA-Z0-9\.\-\_\/\]\[\:]{1,}$/', - 'errmsg'=> 'php_open_basedir_error_regex'), - ), - 'value' => '', - 'width' => '40', - 'maxlength' => '4000' - ), - 'php_ini_check_minutes' => array( - 'datatype' => 'INTEGER', - 'formtype' => 'TEXT', - 'default' => '1', - 'validators' => array(0 => array('type' => 'NOTEMPTY', - 'errmsg' => 'php_ini_check_minutes_error_empty'), - ), - 'value' => '', - 'width' => '10', - 'maxlength' => '255' - ), - 'php_handler' => array( - 'datatype' => 'VARCHAR', - 'formtype' => 'SELECT', - 'default' => 'fast-cgi', - 'value' => array('no' => 'disabled_txt', 'fast-cgi' => 'Fast-CGI', 'cgi' => 'CGI', 'mod' => 'Mod-PHP', 'suphp' => 'SuPHP', 'php-fpm' => 'PHP-FPM', 'hhvm' => 'HHVM'), - 'searchable' => 2 - ), - 'php_fpm_incron_reload' => array( - 'datatype' => 'VARCHAR', - 'formtype' => 'CHECKBOX', - 'default' => 'y', - 'value' => array(0 => 'n', 1 => 'y') - ), - 'nginx_cgi_socket' => array( - 'datatype' => 'VARCHAR', - 'formtype' => 'TEXT', - 'default' => '', - 'validators' => array( 0 => array('type' => 'NOTEMPTY', - 'errmsg' => 'nginx_cgi_socket_empty'), - 1 => array ( 'type' => 'REGEX', - 'regex' => '/^\/[a-zA-Z0-9\.\-\_\/]{1,128}$/', - 'errmsg'=> 'nginx_cgi_socket_error_regex'), - ), - 'value' => '', - 'width' => '40', - 'maxlength' => '255' - ), - 'htaccess_allow_override' => array( - 'datatype' => 'VARCHAR', - 'formtype' => 'TEXT', - 'default' => '', - 'validators' => array( 0 => array('type' => 'NOTEMPTY', - 'errmsg' => 'htaccess_allow_override_error_empty'), - ), - 'filters' => array( - 0 => array( 'event' => 'SAVE', - 'type' => 'STRIPTAGS'), - 1 => array( 'event' => 'SAVE', - 'type' => 'STRIPNL') - ), - 'value' => '', - 'width' => '40', - 'maxlength' => '255' - ), - 'enable_spdy' => array ( - 'datatype' => 'VARCHAR', - 'formtype' => 'CHECKBOX', - 'default' => 'y', - 'value' => array ( - 0 => 'n', - 1 => 'y' - ) - ), - 'apps_vhost_enabled' => array ( - 'datatype' => 'VARCHAR', - 'formtype' => 'CHECKBOX', - 'default' => 'y', - 'value' => array (0 => 'n', 1 => 'y') - ), - 'apps_vhost_port' => array( - 'datatype' => 'VARCHAR', - 'formtype' => 'TEXT', - 'default' => '8081', - 'validators' => array(0 => array('type' => 'NOTEMPTY', - 'errmsg' => 'apps_vhost_port_error_empty'), - ), - 'filters' => array( - 0 => array( 'event' => 'SAVE', - 'type' => 'STRIPTAGS'), - 1 => array( 'event' => 'SAVE', - 'type' => 'STRIPNL') - ), - 'value' => '', - 'width' => '40', - 'maxlength' => '255' - ), - 'apps_vhost_ip' => array( - 'datatype' => 'VARCHAR', - 'formtype' => 'TEXT', - 'default' => '_default_', - 'validators' => array(0 => array('type' => 'NOTEMPTY', - 'errmsg' => 'apps_vhost_ip_error_empty'), - ), - 'filters' => array( - 0 => array( 'event' => 'SAVE', - 'type' => 'STRIPTAGS'), - 1 => array( 'event' => 'SAVE', - 'type' => 'STRIPNL') - ), - 'value' => '', - 'width' => '40', - 'maxlength' => '255' - ), - 'apps_vhost_servername' => array( - 'datatype' => 'VARCHAR', - 'formtype' => 'TEXT', - 'filters' => array( - 0 => array( 'event' => 'SAVE', - 'type' => 'STRIPTAGS'), - 1 => array( 'event' => 'SAVE', - 'type' => 'STRIPNL') - ), - 'default' => '', - 'value' => '', - 'width' => '40', - 'maxlength' => '255' - ), - 'awstats_conf_dir' => array( - 'datatype' => 'VARCHAR', - 'formtype' => 'TEXT', - 'filters' => array( - 0 => array( 'event' => 'SAVE', - 'type' => 'STRIPTAGS'), - 1 => array( 'event' => 'SAVE', - 'type' => 'STRIPNL') - ), - 'default' => '', - 'value' => '', - 'width' => '40', - 'maxlength' => '255' - ), - 'awstats_data_dir' => array( - 'datatype' => 'VARCHAR', - 'formtype' => 'TEXT', - 'validators' => array( 0 => array('type' => 'NOTEMPTY', - 'errmsg' => 'awstats_data_dir_empty'), - 1 => array ( 'type' => 'REGEX', - 'regex' => '/^\/[a-zA-Z0-9\.\-\_\/]{1,128}$/', - 'errmsg'=> 'awstats_data_dir_error_regex'), - ), - 'default' => '', - 'value' => '', - 'width' => '40', - 'maxlength' => '255' - ), - 'awstats_pl' => array( - 'datatype' => 'VARCHAR', - 'formtype' => 'TEXT', - 'validators' => array( 0 => array('type' => 'NOTEMPTY', - 'errmsg' => 'awstats_pl_empty'), - 1 => array ( 'type' => 'REGEX', - 'regex' => '/^\/[a-zA-Z0-9\.\-\_\/]{1,128}$/', - 'errmsg'=> 'awstats_pl_error_regex'), - ), - 'default' => '', - 'value' => '', - 'width' => '40', - 'maxlength' => '255' - ), - 'awstats_buildstaticpages_pl' => array( - 'datatype' => 'VARCHAR', - 'formtype' => 'TEXT', - 'validators' => array( 0 => array('type' => 'NOTEMPTY', - 'errmsg' => 'awstats_buildstaticpages_pl_empty'), - 1 => array ( 'type' => 'REGEX', - 'regex' => '/^\/[a-zA-Z0-9\.\-\_\/]{1,128}$/', - 'errmsg'=> 'awstats_buildstaticpages_pl_error_regex'), - ), - 'default' => '', - 'value' => '', - 'width' => '40', - 'maxlength' => '255' - ), - 'skip_le_check' => array ( - 'datatype' => 'VARCHAR', - 'formtype' => 'CHECKBOX', - 'default' => 'n', - 'value' => array ( - 0 => 'n', - 1 => 'y' - ) - ), - 'php_fpm_reload_mode' => array( - 'datatype' => 'VARCHAR', - 'formtype' => 'SELECT', - 'default' => 'reload', - 'value' => array('reload' => 'Reload', 'restart' => 'Restart'), - 'width' => '40', - 'maxlength' => '255' - ), - //################################# - // ENDE Datatable fields - //################################# - ) -); - -$form["tabs"]['dns'] = array( - 'title' => "DNS", - 'width' => 60, - 'template' => "templates/server_config_dns_edit.htm", - 'fields' => array( - //################################# - // Begin Datatable fields - //################################# - 'bind_user' => array( - 'datatype' => 'VARCHAR', - 'formtype' => 'TEXT', - 'default' => '', - 'validators' => array( 0 => array('type' => 'NOTEMPTY', - 'errmsg' => 'bind_user_error_empty'), - 1 => array ( 'type' => 'REGEX', - 'regex' => '/^(?!ispconfig)([a-zA-Z0-9]{1,20})$/', - 'errmsg'=> 'invalid_bind_user_txt'), - ), - 'value' => '', - 'width' => '40', - 'maxlength' => '255' - ), - 'bind_group' => array( - 'datatype' => 'VARCHAR', - 'formtype' => 'TEXT', - 'default' => '', - 'validators' => array( 0 => array('type' => 'NOTEMPTY', - 'errmsg' => 'bind_group_error_empty'), - 1 => array ( 'type' => 'REGEX', - 'regex' => '/^(?!ispconfig)([a-zA-Z0-9]{1,20})$/', - 'errmsg'=> 'invalid_bind_group_txt'), - ), - 'value' => '', - 'width' => '40', - 'maxlength' => '255' - ), - 'bind_zonefiles_dir' => array( - 'datatype' => 'VARCHAR', - 'formtype' => 'TEXT', - 'default' => '', - 'validators' => array( 0 => array('type' => 'NOTEMPTY', - 'errmsg' => 'bind_zonefiles_dir_error_empty'), - 1 => array ( 'type' => 'REGEX', - 'regex' => '/^\/[a-zA-Z0-9\.\-\_\/]{1,128}$/', - 'errmsg'=> 'bind_zonefiles_dir_error_regex'), - ), - 'value' => '', - 'width' => '40', - 'maxlength' => '255' - ), - 'named_conf_path' => array( - 'datatype' => 'VARCHAR', - 'formtype' => 'TEXT', - 'default' => '', - 'validators' => array( 0 => array('type' => 'NOTEMPTY', - 'errmsg' => 'named_conf_path_error_empty'), - 1 => array ( 'type' => 'REGEX', - 'regex' => '/^\/[a-zA-Z0-9\.\-\_\/]{1,128}$/', - 'errmsg'=> 'named_conf_path_error_regex'), - ), - 'value' => '', - 'width' => '40', - 'maxlength' => '255' - ), - 'named_conf_local_path' => array( - 'datatype' => 'VARCHAR', - 'formtype' => 'TEXT', - 'default' => '', - 'validators' => array( 0 => array('type' => 'NOTEMPTY', - 'errmsg' => 'named_conf_local_path_error_empty'), - 1 => array ( 'type' => 'REGEX', - 'regex' => '/^\/[a-zA-Z0-9\.\-\_\/]{1,128}$/', - 'errmsg'=> 'named_conf_local_path_error_regex'), - ), - 'value' => '', - 'width' => '40', - 'maxlength' => '255' - ), - 'disable_bind_log' => array ( - 'datatype' => 'VARCHAR', - 'formtype' => 'CHECKBOX', - 'default' => 'n', - 'value' => array(0 => 'n', 1 => 'y') - ), - //################################# - // ENDE Datatable fields - //################################# - ) -); - -$form["tabs"]['fastcgi'] = array( - 'title' => "FastCGI", - 'width' => 80, - 'template' => "templates/server_config_fastcgi_edit.htm", - 'fields' => array( - //################################# - // Begin Datatable fields - //################################# - 'fastcgi_starter_path' => array( - 'datatype' => 'VARCHAR', - 'formtype' => 'TEXT', - 'default' => '', - 'validators' => array( 0 => array('type' => 'NOTEMPTY', - 'errmsg' => 'fastcgi_starter_path_error_empty'), - 1 => array ( 'type' => 'REGEX', - 'regex' => '/^\/[a-zA-Z0-9\.\-\_\/\[\]]{1,128}$/', - 'errmsg'=> 'fastcgi_starter_path_error_regex'), - ), - 'value' => '', - 'width' => '40', - 'maxlength' => '255' - ), - 'fastcgi_starter_script' => array( - 'datatype' => 'VARCHAR', - 'formtype' => 'TEXT', - 'default' => '', - 'validators' => array( 0 => array('type' => 'NOTEMPTY', - 'errmsg' => 'fastcgi_starter_script_error_empty'), - 1 => array ( 'type' => 'REGEX', - 'regex' => '/^[a-zA-Z0-9\.\-\_\/]{1,128}$/', - 'errmsg'=> 'fastcgi_starter_script_error_regex'), - ), - 'value' => '', - 'width' => '40', - 'maxlength' => '255' - ), - 'fastcgi_alias' => array( - 'datatype' => 'VARCHAR', - 'formtype' => 'TEXT', - 'default' => '', - 'validators' => array( 0 => array('type' => 'NOTEMPTY', - 'errmsg' => 'fastcgi_alias_error_empty'), - 1 => array ( 'type' => 'REGEX', - 'regex' => '/^[a-zA-Z0-9\.\-\_\/]{1,128}$/', - 'errmsg'=> 'fastcgi_alias_error_regex'), - ), - 'value' => '', - 'width' => '40', - 'maxlength' => '255' - ), - 'fastcgi_phpini_path' => array( - 'datatype' => 'VARCHAR', - 'formtype' => 'TEXT', - 'default' => '', - 'validators' => array( 0 => array('type' => 'NOTEMPTY', - 'errmsg' => 'fastcgi_phpini_path_error_empty'), - 1 => array ( 'type' => 'REGEX', - 'regex' => '/^\/[a-zA-Z0-9\.\-\_\/\[\]]{1,128}$/', - 'errmsg'=> 'fastcgi_phpini_path_error_regex'), - ), - 'value' => '', - 'width' => '40', - 'maxlength' => '255' - ), - 'fastcgi_children' => array( - 'datatype' => 'VARCHAR', - 'formtype' => 'TEXT', - 'default' => '', - 'validators' => array(0 => array('type' => 'ISPOSITIVE', - 'errmsg' => 'fastcgi_children_error_empty'), - ), - 'value' => '', - 'width' => '40', - 'maxlength' => '255' - ), - 'fastcgi_max_requests' => array( - 'datatype' => 'VARCHAR', - 'formtype' => 'TEXT', - 'default' => '', - 'validators' => array( 0 => array( 'type' => 'ISINT', - 'errmsg' => 'fastcgi_max_requests_error_empty'), - 1 => array( 'type' => 'RANGE', - 'range' => '0:', - 'errmsg' => 'fastcgi_max_requests_error_empty'), - ), - 'value' => '', - 'width' => '40', - 'maxlength' => '255' - ), - 'fastcgi_bin' => array( - 'datatype' => 'VARCHAR', - 'formtype' => 'TEXT', - 'default' => '', - 'validators' => array( 0 => array('type' => 'NOTEMPTY', - 'errmsg' => 'fastcgi_bin_error_empty'), - 1 => array ( 'type' => 'REGEX', - 'regex' => '/^\/[a-zA-Z0-9\.\-\_\/\[\]]{1,128}$/', - 'errmsg'=> 'fastcgi_bin_error_regex'), - ), - 'value' => '', - 'width' => '40', - 'maxlength' => '255' - ), - 'fastcgi_config_syntax' => array( - 'datatype' => 'INTEGER', - 'formtype' => 'SELECT', - 'default' => '2', - 'value' => array('1' => 'Old (apache 2.0)', '2' => 'New (apache 2.2)'), - 'width' => '40', - 'maxlength' => '255' - ), - //################################# - // ENDE Datatable fields - //################################# - ) -); - - -$form["tabs"]['xmpp'] = array( - 'title' => "XMPP", - 'width' => 80, - 'template' => "templates/server_config_xmpp_edit.htm", - 'fields' => array( - //################################# - // Begin Datatable fields - //################################# - 'xmpp_use_ipv6' => array( - 'datatype' => 'VARCHAR', - 'formtype' => 'CHECKBOX', - 'default' => 'n', - 'value' => array(0 => 'n', 1 => 'y') - ), - 'xmpp_bosh_max_inactivity' => array( - 'datatype' => 'VARCHAR', - 'formtype' => 'TEXT', - 'default' => '30', - 'validators' => array(0 => array('type' => 'ISINT', - 'errmsg' => 'ip_address_error_wrong'), - array('type'=>'RANGE', 'range'=>'15:360', 'errmsg' => 'xmpp_bosh_timeout_range_wrong') - ), - 'value' => '', - 'width' => '15' - ), - - 'xmpp_server_admins' => array( - 'datatype' => 'VARCHAR', - 'formtype' => 'TEXT', - 'filters' => array( - 0 => array( 'event' => 'SAVE', - 'type' => 'STRIPTAGS'), - 1 => array( 'event' => 'SAVE', - 'type' => 'STRIPNL') - ), - 'default' => 'admin@service.com, superuser@service.com', - 'value' => '', - 'width' => '15' - ), - - 'xmpp_modules_enabled' => array( - 'datatype' => 'TEXT', - 'formtype' => 'TEXT', - 'filters' => array( - 0 => array( 'event' => 'SAVE', - 'type' => 'STRIPTAGS'), - 1 => array( 'event' => 'SAVE', - 'type' => 'STRIPNL') - ), - 'default' => "saslauth, tls, dialback, disco, discoitems, version, uptime, time, ping, admin_adhoc, admin_telnet, bosh, posix, announce, offline, webpresence, mam, stream_management, message_carbons", - 'value' => '', - 'separator' => "," - ), - - 'xmpp_port_http' => array( - 'datatype' => 'VARCHAR', - 'formtype' => 'TEXT', - 'default' => '5290', - 'validators' => array(0 => array('type' => 'ISINT')), - 'value' => '5290', - 'width' => '15' - ), - 'xmpp_port_https' => array( - 'datatype' => 'VARCHAR', - 'formtype' => 'TEXT', - 'default' => '5291', - 'validators' => array(0 => array('type' => 'ISINT')), - 'value' => '5291', - 'width' => '15' - ), - 'xmpp_port_pastebin' => array( - 'datatype' => 'VARCHAR', - 'formtype' => 'TEXT', - 'default' => '5292', - 'validators' => array(0 => array('type' => 'ISINT')), - 'value' => '5292', - 'width' => '15' - ), - 'xmpp_port_bosh' => array( - 'datatype' => 'VARCHAR', - 'formtype' => 'TEXT', - 'default' => '5280', - 'validators' => array(0 => array('type' => 'ISINT')), - 'value' => '5280', - 'width' => '15' - ), - //################################# - // ENDE Datatable fields - //################################# - ) -); - -$form["tabs"]['jailkit'] = array( - 'title' => "Jailkit", - 'width' => 80, - 'template' => "templates/server_config_jailkit_edit.htm", - 'fields' => array( - //################################# - // Begin Datatable fields - //################################# - 'jailkit_chroot_home' => array( - 'datatype' => 'VARCHAR', - 'formtype' => 'TEXT', - 'default' => '', - 'validators' => array( 0 => array('type' => 'NOTEMPTY', - 'errmsg' => 'jailkit_chroot_home_error_empty'), - 1 => array ( 'type' => 'REGEX', - 'regex' => '/^\/[a-zA-Z0-9\.\-\_\/\[\]]{1,128}$/', - 'errmsg'=> 'jailkit_chroot_home_error_regex'), - ), - 'value' => '', - 'width' => '40', - 'maxlength' => '255' - ), - 'jailkit_chroot_app_sections' => array( - 'datatype' => 'VARCHAR', - 'formtype' => 'TEXT', - 'default' => '', - 'validators' => array( 0 => array('type' => 'NOTEMPTY', - 'errmsg' => 'jailkit_chroot_app_sections_error_empty'), - 1 => array ( 'type' => 'REGEX', - 'regex' => '/^[a-zA-Z0-9\-\_\ ]{1,128}$/', - 'errmsg'=> 'jailkit_chroot_app_sections_error_regex'), - ), - 'value' => '', - 'width' => '40', - 'maxlength' => '1000' - ), - 'jailkit_chroot_app_programs' => array( - 'datatype' => 'VARCHAR', - 'formtype' => 'TEXT', - 'default' => '', - 'validators' => array( 0 => array('type' => 'NOTEMPTY', - 'errmsg' => 'jailkit_chroot_app_programs_error_empty'), - 1 => array ( 'type' => 'REGEX', - 'regex' => '/^[a-zA-Z0-9\.\-\_\/\ ]{1,}$/', - 'errmsg'=> 'jailkit_chroot_app_programs_error_regex'), - ), - 'value' => '', - 'width' => '40', - 'maxlength' => '1000' - ), - 'jailkit_chroot_cron_programs' => array( - 'datatype' => 'VARCHAR', - 'formtype' => 'TEXT', - 'default' => '', - 'validators' => array( 0 => array('type' => 'NOTEMPTY', - 'errmsg' => 'jailkit_chroot_cron_programs_error_empty'), - 1 => array ( 'type' => 'REGEX', - 'regex' => '/^[a-zA-Z0-9\.\-\_\/\ ]{1,}$/', - 'errmsg'=> 'jailkit_chroot_cron_programs_error_regex'), - ), - 'value' => '', - 'width' => '40', - 'maxlength' => '1000' - ), - //################################# - // ENDE Datatable fields - //################################# - ) -); - -/* -$form["tabs"]['ufw_firewall'] = array ( - 'title' => "UFW Firewall", - 'width' => 80, - 'template' => "templates/server_config_ufw_edit.htm", - 'fields' => array ( - ################################## - # Begin Datatable fields - ################################## - 'ufw_enable' => array ( - 'datatype' => 'VARCHAR', - 'formtype' => 'CHECKBOX', - 'default' => 'no', - 'value' => array(0 => 'no',1 => 'yes') - ), - 'ufw_manage_builtins' => array ( - 'datatype' => 'VARCHAR', - 'formtype' => 'CHECKBOX', - 'default' => 'no', - 'value' => array(0 => 'no',1 => 'yes') - ), - 'ufw_ipv6' => array ( - 'datatype' => 'VARCHAR', - 'formtype' => 'CHECKBOX', - 'default' => 'no', - 'value' => array(0 => 'no',1 => 'yes') - ), - 'ufw_default_input_policy' => array ( - 'datatype' => 'VARCHAR', - 'formtype' => 'SELECT', - 'default' => 'ACCEPT', - 'value' => array('ACCEPT' => 'accept', 'DROP' => 'drop', 'REJECT' => 'reject') - ), - 'ufw_default_output_policy' => array ( - 'datatype' => 'VARCHAR', - 'formtype' => 'SELECT', - 'default' => 'ACCEPT', - 'value' => array('ACCEPT' => 'accept', 'DROP' => 'drop', 'REJECT' => 'reject') - ), - 'ufw_default_forward_policy' => array ( - 'datatype' => 'VARCHAR', - 'formtype' => 'SELECT', - 'default' => 'ACCEPT', - 'value' => array('ACCEPT' => 'accept', 'DROP' => 'drop', 'REJECT' => 'reject') - ), - 'ufw_default_application_policy' => array ( - 'datatype' => 'VARCHAR', - 'formtype' => 'SELECT', - 'default' => 'DROP', - 'value' => array('ACCEPT' => 'accept', 'DROP' => 'drop', 'REJECT' => 'reject') - ), - 'ufw_log_level' => array ( - 'datatype' => 'VARCHAR', - 'formtype' => 'SELECT', - 'default' => 'low', - 'value' => array('low' => 'low', 'medium' => 'medium', 'high' => 'high') - ) - ################################## - # ENDE Datatable fields - ################################## - ) -); -*/ - -$form["tabs"]['vlogger'] = array( - 'title' => "vlogger", - 'width' => 80, - 'template' => "templates/server_config_vlogger_edit.htm", - 'fields' => array( - //################################# - // Begin Datatable fields - //################################# - 'config_dir' => array( - 'datatype' => 'VARCHAR', - 'formtype' => 'TEXT', - 'default' => '', - 'validators' => array( 0 => array('type' => 'NOTEMPTY', - 'errmsg' => 'vlogger_config_dir_error_empty'), - 1 => array ( 'type' => 'REGEX', - 'regex' => '/^\/[a-zA-Z0-9\.\-\_\/]{1,128}$/', - 'errmsg'=> 'vlogger_config_dir_error_regex'), - ), - 'value' => '', - 'width' => '40', - 'maxlength' => '255' - ), - //################################# - // ENDE Datatable fields - //################################# - ) -); - - - -$form["tabs"]['cron'] = array( - 'title' => "Cron", - 'width' => 80, - 'template' => "templates/server_config_cron_edit.htm", - 'fields' => array( - //################################# - // Begin Datatable fields - //################################# - 'init_script' => array( - 'datatype' => 'VARCHAR', - 'formtype' => 'TEXT', - 'default' => '', - 'validators' => array( 0 => array('type' => 'NOTEMPTY', - 'errmsg' => 'cron_init_script_error_empty'), - 1 => array ( 'type' => 'REGEX', - 'regex' => '/^[a-zA-Z0-9\-\_]{1,30}$/', - 'errmsg'=> 'cron_init_script_error_regex'), - ), - 'value' => '', - 'width' => '40', - 'maxlength' => '255' - ), - 'crontab_dir' => array( - 'datatype' => 'VARCHAR', - 'formtype' => 'TEXT', - 'default' => '', - 'validators' => array( 0 => array('type' => 'NOTEMPTY', - 'errmsg' => 'crontab_dir_error_empty'), - 1 => array ( 'type' => 'REGEX', - 'regex' => '/^\/[a-zA-Z0-9\.\-\_\/]{1,128}$/', - 'errmsg'=> 'crontab_dir_error_regex'), - ), - 'value' => '', - 'width' => '40', - 'maxlength' => '255' - ), - 'wget' => array( - 'datatype' => 'VARCHAR', - 'formtype' => 'TEXT', - 'default' => '', - 'validators' => array( 0 => array('type' => 'NOTEMPTY', - 'errmsg' => 'cron_wget_error_empty'), - 1 => array ( 'type' => 'REGEX', - 'regex' => '/^\/[a-zA-Z0-9\.\-\_\/]{1,128}$/', - 'errmsg'=> 'cron_wget_error_regex'), - ), - 'value' => '', - 'width' => '40', - 'maxlength' => '255' - ), - //################################# - // ENDE Datatable fields - //################################# - ) -); - -$form["tabs"]['rescue'] = array( - 'title' => "Rescue", - 'width' => 80, - 'template' => "templates/server_config_rescue_edit.htm", - 'fields' => array( - //################################# - // Begin Datatable fields - //################################# - 'try_rescue' => array( - 'datatype' => 'VARCHAR', - 'formtype' => 'CHECKBOX', - 'default' => 'n', - 'value' => array(0 => 'n', 1 => 'y') - ), - 'do_not_try_rescue_httpd' => array( - 'datatype' => 'VARCHAR', - 'formtype' => 'CHECKBOX', - 'default' => 'n', - 'value' => array(0 => 'n', 1 => 'y') - ), - 'do_not_try_rescue_mongodb' => array( - 'datatype' => 'VARCHAR', - 'formtype' => 'CHECKBOX', - 'default' => 'n', - 'value' => array(0 => 'n', 1 => 'y') - ), - 'do_not_try_rescue_mysql' => array( - 'datatype' => 'VARCHAR', - 'formtype' => 'CHECKBOX', - 'default' => 'n', - 'value' => array(0 => 'n', 1 => 'y') - ), - 'do_not_try_rescue_mail' => array( - 'datatype' => 'VARCHAR', - 'formtype' => 'CHECKBOX', - 'default' => 'n', - 'value' => array(0 => 'n', 1 => 'y') - ), - //################################# - // ENDE Datatable fields - //################################# - ) -); -?> diff --git a/interface/web/admin/lib/lang/de_server_config.lng.orig b/interface/web/admin/lib/lang/de_server_config.lng.orig deleted file mode 100644 index 108bf96de..000000000 --- a/interface/web/admin/lib/lang/de_server_config.lng.orig +++ /dev/null @@ -1,299 +0,0 @@ -Information: Falls Sie MySQL stoppen möchten, wählen Sie die Funktion \'Deaktiviere MySQL Monitoring\' und warten Sie 2 bis 3 Minuten. Wenn Sie nicht 2 bis 3 Minuten warten wird ISPConfig versuchen MySQL wieder zu starten.'; -$wb['enable_sni_txt'] = 'Aktiviere SNI'; -$wb['set_folder_permissions_on_update_txt'] = 'Verzeichnisberechtigungen beim Update setzen'; -$wb['add_web_users_to_sshusers_group_txt'] = 'Webbenutzer zur -sshusers- hinzufügen'; -$wb['connect_userid_to_webid_txt'] = 'Linux Userid mit webid verknüpfen'; -$wb['connect_userid_to_webid_start_txt'] = 'Start ID für userid/webid Verknüpfung'; -$wb['realtime_blackhole_list_txt'] = 'Realtime Blackhole Liste'; -$wb['realtime_blackhole_list_note_txt'] = '(Mehrere Realtime Blackhole Listen mit Kommas trennen)'; -$wb['ssl_settings_txt'] = 'SSL Einstellungen'; -$wb['permissions_txt'] = 'Berechtigungen'; -$wb['php_settings_txt'] = 'PHP Einstellungen'; -$wb['apps_vhost_settings_txt'] = 'Apps vHost Einstellungen'; -$wb['awstats_settings_txt'] = 'AWStats Einstellungen'; -$wb['backup_mode_txt'] = 'Backupmodus'; -$wb['backup_mode_userzip'] = 'Backup Dateien gehören dem Web Benutzer (.zip Datei)'; -$wb['backup_mode_rootgz'] = 'Backup aller Dateien des Webverzeichnisses als Root Benutzer'; -$wb['backup_time_txt'] = 'Backupzeit'; -$wb['firewall_txt'] = 'Firewall'; -$wb['mailbox_quota_stats_txt'] = 'E-Mailkonto Beschränkung Statistiken'; -$wb['enable_ip_wildcard_txt'] = 'IP Adressen Wildcard (*) aktivieren'; -$wb['web_folder_protection_txt'] = 'Webverzeichnis unveränderlich machen (erweiterte Attribute)'; -$wb['overtraffic_notify_admin_txt'] = 'Überschreiten des Datentransfer Limits an den Administrator senden'; -$wb['overtraffic_notify_client_txt'] = 'Überschreiten des Datentransfer Limits an den Kunden senden'; -$wb['rbl_error_regex'] = 'Bitte geben Sie gültige RBL-Hostnamen an.'; -$wb['overquota_notify_admin_txt'] = 'Quota-Warnungen an den Administrator senden'; -$wb['overquota_notify_client_txt'] = 'Quota-Warnungen an den Kunden senden'; -$wb['overquota_notify_onok_txt'] = 'Meldung an den Kunden senden, wenn Belegung wieder ok'; -$wb['overquota_notify_freq_txt'] = 'Quota-Warnung alle X Tage versenden'; -$wb['overquota_notify_freq_note_txt'] = '0 = Meldung nur einmalig versenden, keine Wiederholung'; -$wb['admin_notify_events_txt'] = 'Sende E-Mail an Administrator ab folgendem Level'; -$wb['no_notifications_txt'] = 'Keine Benachrichtigungen'; -$wb['monit_url_txt'] = 'Monit-URL'; -$wb['monit_user_txt'] = 'Monit-Benutzer'; -$wb['monit_password_txt'] = 'Monit-Passwort'; -$wb['monit_url_error_regex'] = 'Ungültige Monit-URL'; -$wb['monit_url_note_txt'] = 'Platzhalter:'; -$wb['munin_url_txt'] = 'Munin-URL'; -$wb['munin_user_txt'] = 'Munin-Benutzer'; -$wb['munin_password_txt'] = 'Munin-Passwort'; -$wb['munin_url_error_regex'] = 'Ungültige Munin-URL'; -$wb['munin_url_note_txt'] = 'Platzhalter:'; -$wb['backup_dir_is_mount_txt'] = 'Backupverzeichnis ist ein eigener Mount?'; -$wb['backup_dir_mount_cmd_txt'] = 'Mount-Befehl, falls Backupverzeichnis nicht gemountet'; -$wb['backup_delete_txt'] = 'Backups loeschen wenn eine Domain / Webseite geloescht wird'; -$wb['v6_prefix_txt'] = 'IPv6 Prefix'; -$wb['vhost_rewrite_v6_txt'] = 'Rewrite IPv6 on Mirror'; -$wb['v6_prefix_length'] = 'Prefix zu lang fuer angegebene IPv6-Adresse '; -$wb['monitor_system_updates_txt'] = 'Suche nach Linux updates'; -$wb['dkim_strength_txt'] = 'DKIM Stärke'; -$wb['hostname_error_regex'] = 'Invalid Hostname.'; -$wb['invalid_apache_user_txt'] = 'Invalid apache user.'; -$wb['invalid_apache_group_txt'] = 'Invalid apache group.'; -$wb['backup_dir_error_regex'] = 'Invalid backup directory.'; -$wb['maildir_path_error_regex'] = 'Invalid maildir path.'; -$wb['homedir_path_error_regex'] = 'Invalid homedir path.'; -$wb['mailuser_name_error_regex'] = 'Invalid mailuser name.'; -$wb['mailuser_group_name_error_regex'] = 'Invalid mailuser group name.'; -$wb['mailuser_uid_error_range'] = 'Mailuser uid must be >= 2000'; -$wb['mailuser_gid_error_range'] = 'Mailuser gid must be >= 2000'; -$wb['getmail_config_dir_error_regex'] = 'Invalid getmail config directory.'; -$wb['website_basedir_error_regex'] = 'Invalid website basedir or path too short, min. length 5 chars.'; -$wb['website_symlinks_error_regex'] = 'Invalid website symlinks.'; -$wb['vhost_conf_dir_error_regex'] = 'Invalid vhost config directory.'; -$wb['vhost_conf_enabled_dir_error_regex'] = 'Invalid vhost conf enabled directory.'; -$wb['nginx_vhost_conf_dir_error_regex'] = 'Invalid nginx config directory.'; -$wb['nginx_vhost_conf_enabled_dir_error_regex'] = 'Invalid nginx conf enabled directory.'; -$wb['ca_path_error_regex'] = 'Invalid CA path.'; -$wb['invalid_nginx_user_txt'] = 'Invalid nginx user.'; -$wb['invalid_nginx_group_txt'] = 'Invalid nginx group.'; -$wb['php_ini_path_apache_error_regex'] = 'Invalid apache php.ini path.'; -$wb['php_ini_path_cgi_error_regex'] = 'Invalid cgi php.ini path.'; -$wb['php_fpm_init_script_error_regex'] = 'Invalid php-fpm init script.'; -$wb['php_fpm_ini_path_error_regex'] = 'Invalid php-fpm ini path.'; -$wb['php_fpm_pool_dir_error_regex'] = 'Invalid php-fpm pool directory.'; -$wb['php_fpm_socket_dir_error_regex'] = 'Invalid php-fpm socket directory.'; -$wb['php_open_basedir_error_regex'] = 'Invalid php open_basedir.'; -$wb['awstats_data_dir_empty'] = 'awstats data directory is empty'; -$wb['awstats_data_dir_error_regex'] = 'Invalid awstats data directory.'; -$wb['awstats_pl_empty'] = 'awstats.pl setting is empty.'; -$wb['awstats_pl_error_regex'] = 'Invalid awstats.pl path.'; -$wb['awstats_buildstaticpages_pl_empty'] = 'awstats_buildstaticpages.pl is empty'; -$wb['awstats_buildstaticpages_pl_error_regex'] = 'Invalid awstats_buildstaticpages.pl path.'; -$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['named_conf_path_error_regex'] = 'Invalid named.conf path.'; -$wb['named_conf_local_path_error_regex'] = 'Invalid named.conf.local path.'; -$wb['fastcgi_starter_path_error_regex'] = 'Invalid fastcgi starter path.'; -$wb['fastcgi_starter_script_error_regex'] = 'Invalid fastcgi starter script.'; -$wb['fastcgi_alias_error_regex'] = 'Invalid fastcgi alias.'; -$wb['fastcgi_phpini_path_error_regex'] = 'Invalid fastcgi path.'; -$wb['fastcgi_bin_error_regex'] = 'Invalid fastcgi bin.'; -$wb['jailkit_chroot_home_error_regex'] = 'Invalid jaikit chroot home.'; -$wb['jailkit_chroot_app_sections_error_regex'] = 'Invalid jaikit chroot sections.'; -$wb['jailkit_chroot_app_programs_error_regex'] = 'Invalid jaikit chroot app programs.'; -$wb['jailkit_chroot_cron_programs_error_regex'] = 'Invalid jaikit chroot cron programs.'; -$wb['vlogger_config_dir_error_regex'] = 'Invalid vlogger config dir.'; -$wb['cron_init_script_error_regex'] = 'Invalid cron init script.'; -$wb['crontab_dir_error_regex'] = 'Invalid crontab directory.'; -$wb['cron_wget_error_regex'] = 'Invalid cron wget path.'; -$wb['network_filesystem_txt'] = 'Netzwerk-Dateisystem'; -$wb['overquota_db_notify_admin_txt'] = 'Datenbank-Quota-Warnungen an den Administrator senden'; -$wb['overquota_db_notify_client_txt'] = 'Datenbank-Quota-Warnungen an den Kunden senden'; -$wb['php_ini_check_minutes_txt'] = 'Prüfe php.ini alle X Minuten auf Änderungen'; -$wb['php_ini_check_minutes_error_empty'] = 'Bitte geben Sie einen Wert an, wie oft die php.ini auf Änderungen geprüft werden soll.'; -$wb['php_ini_check_minutes_info_txt'] = '0 = keine Prüfung'; -$wb['php_handler_txt'] = 'Standard-PHP-Handler'; -$wb['php_fpm_incron_reload_txt'] = 'Install incron trigger file to reload PHP-FPM'; -$wb['enable_spdy_txt'] = 'Stellt SPDY/HTTP2 zur Verfügung'; -$wb['disable_bind_log_txt'] = 'Disable bind9 messages for Loglevel WARN'; -$wb['apps_vhost_enabled_txt'] = 'Apps-vhost enabled'; -$wb['disabled_txt'] = 'Disabled'; -$wb['web_settings_txt'] = 'Web Server'; -$wb['xmpp_server_txt'] = 'XMPP Server'; -$wb['xmpp_use_ipv6_txt'] = 'Use IPv6'; -$wb['xmpp_bosh_max_inactivity_txt'] = 'Max. BOSH inactivity time'; -$wb['xmpp_bosh_timeout_range_wrong'] = 'Please enter a bosh timeout range between 15 - 360'; -$wb['xmpp_module_saslauth'] = 'saslauth'; -$wb['xmpp_server_admins_txt'] = 'Server Admins (JIDs)'; -$wb['xmpp_modules_enabled_txt'] = 'Serverwide enabled plugins (one per line)'; -$wb['xmpp_ports_txt'] = 'Component ports'; -$wb['xmpp_port_http_txt'] = 'HTTP'; -$wb['xmpp_port_https_txt'] = 'HTTPS'; -$wb['xmpp_port_pastebin_txt'] = 'Pastebin'; -$wb['xmpp_port_bosh_txt'] = 'BOSH'; -$wb['skip_le_check_txt'] = 'Skip Lets Encrypt Check'; -$wb['migration_mode_txt'] = 'Server Migration Mode'; -$wb['nginx_enable_pagespeed_txt'] = 'Makes Pagespeed available'; -$wb['logging_txt'] = 'Store website access and error logs'; -$wb['logging_desc_txt'] = 'Use Tools > Resync to apply changes to existing sites. For Apache, access and error log can be anonymized. For nginx, only the access log is anonymized, the error log will contain IP addresses.'; -$wb['log_retention_txt'] = 'Log retention (days)'; -$wb['log_retention_error_ispositive'] = 'Log retention must be a number > 0'; -$wb['php_default_name_txt'] = 'Beschreibung Standard PHP'; -$wb['php_default_name_error_empty'] = 'Beschreibung Standard PHP ist leer.'; -$wb['error_mailbox_message_size_txt'] = 'Mailboxgröße muss gleich oder größer als max. Nachrichtengröße sein.'; -$wb['php_fpm_reload_mode_txt'] = 'PHP-FPM reload Modus'; -?> diff --git a/interface/web/admin/lib/lang/de_server_config.lng.rej b/interface/web/admin/lib/lang/de_server_config.lng.rej deleted file mode 100644 index eeed14711..000000000 --- a/interface/web/admin/lib/lang/de_server_config.lng.rej +++ /dev/null @@ -1,11 +0,0 @@ ---- interface/web/admin/lib/lang/de_server_config.lng -+++ interface/web/admin/lib/lang/de_server_config.lng -@@ -295,4 +295,7 @@ $wb['log_retention_error_ispositive'] = 'Log retention must be a number > 0'; - $wb['php_default_name_txt'] = 'Beschreibung Standard PHP'; - $wb['php_default_name_error_empty'] = 'Beschreibung Standard PHP ist leer.'; - $wb['error_mailbox_message_size_txt'] = 'Mailboxgröße muss gleich oder größer als max. Nachrichtengröße sein.'; --?> -+$wb['content_filter_txt'] = 'Content-Filter'; -+$wb['rspamd_url_txt'] = 'Rspamd-URL'; -+$wb['rspamd_user_txt'] = 'Rspamd-Benutzer'; -+$wb['rspamd_password_txt'] = 'Rspamd-Passwort'; \ No newline at end of file diff --git a/interface/web/admin/lib/lang/en_server_config.lng.orig b/interface/web/admin/lib/lang/en_server_config.lng.orig deleted file mode 100644 index ac0ee42b9..000000000 --- a/interface/web/admin/lib/lang/en_server_config.lng.orig +++ /dev/null @@ -1,300 +0,0 @@ -Information: If you want to shut down mysql you have to select the "Disable MySQL monitor" checkbox and then wait 2-3 minutes.
If you do not wait 2-3 minutes, rescue will try to restart mysql!'; -$wb["enable_sni_txt"] = 'Enable SNI'; -$wb["set_folder_permissions_on_update_txt"] = 'Set folder permissions on update'; -$wb["add_web_users_to_sshusers_group_txt"] = 'Add web users to -sshusers- group'; -$wb["connect_userid_to_webid_txt"] = 'Connect Linux userid to webid'; -$wb["connect_userid_to_webid_start_txt"] = 'Start ID for userid/webid connect'; -$wb["realtime_blackhole_list_txt"] = 'Real-time Blackhole List'; -$wb["realtime_blackhole_list_note_txt"] = '(Separate RBL\'s with commas)'; -$wb["ssl_settings_txt"] = 'SSL Settings'; -$wb["permissions_txt"] = 'Permissions'; -$wb["php_settings_txt"] = 'PHP Settings'; -$wb["apps_vhost_settings_txt"] = 'Apps Vhost Settings'; -$wb["awstats_settings_txt"] = 'AWStats Settings'; -$wb["firewall_txt"] = 'Firewall'; -$wb["mailbox_quota_stats_txt"] = 'Mailbox quota statistics'; -$wb["enable_ip_wildcard_txt"] = 'Enable IP wildcard (*)'; -$wb["web_folder_protection_txt"] = 'Make web folders immutable (extended attributes)'; -$wb["overtraffic_notify_admin_txt"] = 'Send overtraffic notification to admin'; -$wb["overtraffic_notify_client_txt"] = 'Send overtraffic notification to client'; -$wb["rbl_error_regex"] = 'Please specify valid RBL hostnames.'; -$wb["overquota_notify_admin_txt"] = 'Send quota warnings to admin'; -$wb["overquota_notify_client_txt"] = 'Send quota warnings to client'; -$wb["overquota_notify_onok_txt"] = 'Send quota ok message to client'; -$wb['overquota_notify_freq_txt'] = 'Send quota warning each X days'; -$wb['overquota_notify_freq_note_txt'] = '0 = send message just once, no repeated messages'; -$wb['admin_notify_events_txt'] = 'Send email to admin starting with the following level'; -$wb['no_notifications_txt'] = 'No Notifications'; -$wb['monit_url_txt'] = 'Monit URL'; -$wb['monit_user_txt'] = 'Monit User'; -$wb['monit_password_txt'] = 'Monit Password'; -$wb['monit_url_error_regex'] = 'Invalid Monit URL'; -$wb['monit_url_note_txt'] = 'Placeholder:'; -$wb['munin_url_txt'] = 'Munin URL'; -$wb['munin_user_txt'] = 'Munin User'; -$wb['munin_password_txt'] = 'Munin Password'; -$wb['munin_url_error_regex'] = 'Invalid Munin URL'; -$wb['munin_url_note_txt'] = 'Placeholder:'; -$wb["v6_prefix_txt"] = 'IPv6 Prefix'; -$wb["vhost_rewrite_v6_txt"] = 'Rewrite IPv6 on Mirror'; -$wb["v6_prefix_length"] = 'Prefix too long according to defined IPv6 '; -$wb['backup_dir_is_mount_txt'] = 'Backup directory is a mount?'; -$wb['backup_dir_mount_cmd_txt'] = 'Mount command, if backup directory not mounted'; -$wb['backup_delete_txt'] = 'Delete backups on domain/website delete'; -$wb["overquota_db_notify_admin_txt"] = 'Send DB quota warnings to admin'; -$wb["overquota_db_notify_client_txt"] = 'Send DB quota warnings to client'; -$wb['monitor_system_updates_txt'] = 'Check for Linux updates'; -$wb['php_handler_txt'] = "Default PHP Handler"; -$wb['php_fpm_incron_reload_txt'] = 'Install incron trigger file to reload PHP-FPM'; -$wb['disabled_txt'] = 'Disabled'; -$wb['dkim_strength_txt'] = 'DKIM strength'; -$wb['monitor_system_updates_txt'] = 'Check for Linux updates'; -$wb['invalid_apache_user_txt'] = 'Invalid apache user.'; -$wb['invalid_apache_group_txt'] = 'Invalid apache group.'; -$wb['backup_dir_error_regex'] = 'Invalid backup directory.'; -$wb['maildir_path_error_regex'] = 'Invalid maildir path.'; -$wb['homedir_path_error_regex'] = 'Invalid homedir path.'; -$wb['mailuser_name_error_regex'] = 'Invalid mailuser name.'; -$wb['mailuser_group_name_error_regex'] = 'Invalid mailuser group name.'; -$wb['mailuser_uid_error_range'] = 'Mailuser uid must be >= 2000'; -$wb['mailuser_gid_error_range'] = 'Mailuser gid must be >= 2000'; -$wb['getmail_config_dir_error_regex'] = 'Invalid getmail config directory.'; -$wb['website_basedir_error_regex'] = 'Invalid website basedir path, min. length 5 chars.'; -$wb['website_symlinks_error_regex'] = 'Invalid website symlinks.'; -$wb['vhost_conf_dir_error_regex'] = 'Invalid vhost config directory.'; -$wb['vhost_conf_enabled_dir_error_regex'] = 'Invalid vhost conf enabled directory.'; -$wb['nginx_vhost_conf_dir_error_regex'] = 'Invalid nginx config directory.'; -$wb['nginx_vhost_conf_enabled_dir_error_regex'] = 'Invalid nginx conf enabled directory.'; -$wb['ca_path_error_regex'] = 'Invalid CA path.'; -$wb['invalid_nginx_user_txt'] = 'Invalid nginx user.'; -$wb['invalid_nginx_group_txt'] = 'Invalid nginx group.'; -$wb['php_ini_path_apache_error_regex'] = 'Invalid apache php.ini path.'; -$wb['php_ini_path_cgi_error_regex'] = 'Invalid cgi php.ini path.'; -$wb['php_fpm_init_script_error_regex'] = 'Invalid php-fpm init script.'; -$wb['php_fpm_ini_path_error_regex'] = 'Invalid php-fpm ini path.'; -$wb['php_fpm_pool_dir_error_regex'] = 'Invalid php-fpm pool directory.'; -$wb['php_fpm_socket_dir_error_regex'] = 'Invalid php-fpm socket directory.'; -$wb['php_open_basedir_error_regex'] = 'Invalid php open_basedir.'; -$wb['awstats_data_dir_empty'] = 'awstats data directory is empty'; -$wb['awstats_data_dir_error_regex'] = 'Invalid awstats data directory.'; -$wb['awstats_pl_empty'] = 'awstats.pl setting is empty.'; -$wb['awstats_pl_error_regex'] = 'Invalid awstats.pl path.'; -$wb['awstats_buildstaticpages_pl_empty'] = 'awstats_buildstaticpages.pl is empty'; -$wb['awstats_buildstaticpages_pl_error_regex'] = 'Invalid awstats_buildstaticpages.pl path.'; -$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['named_conf_path_error_regex'] = 'Invalid named.conf path.'; -$wb['named_conf_local_path_error_regex'] = 'Invalid named.conf.local path.'; -$wb['fastcgi_starter_path_error_regex'] = 'Invalid fastcgi starter path.'; -$wb['fastcgi_starter_script_error_regex'] = 'Invalid fastcgi starter script.'; -$wb['fastcgi_alias_error_regex'] = 'Invalid fastcgi alias.'; -$wb['fastcgi_phpini_path_error_regex'] = 'Invalid fastcgi path.'; -$wb['fastcgi_bin_error_regex'] = 'Invalid fastcgi bin.'; -$wb['jailkit_chroot_home_error_regex'] = 'Invalid jaikit chroot home.'; -$wb['jailkit_chroot_app_sections_error_regex'] = 'Invalid jaikit chroot sections.'; -$wb['jailkit_chroot_app_programs_error_regex'] = 'Invalid jaikit chroot app programs.'; -$wb['jailkit_chroot_cron_programs_error_regex'] = 'Invalid jaikit chroot cron programs.'; -$wb['vlogger_config_dir_error_regex'] = 'Invalid vlogger config dir.'; -$wb['cron_init_script_error_regex'] = 'Invalid cron init script.'; -$wb['crontab_dir_error_regex'] = 'Invalid crontab directory.'; -$wb['cron_wget_error_regex'] = 'Invalid cron wget path.'; -$wb['network_filesystem_txt'] = 'Network Filesystem'; -$wb['php_ini_check_minutes_txt'] = 'Check php.ini every X minutes for changes'; -$wb['php_ini_check_minutes_error_empty'] = 'Please specify a value how often php.ini should be checked for changes.'; -$wb['php_ini_check_minutes_info_txt'] = '0 = no check'; -$wb['enable_spdy_txt'] = 'Makes SPDY/HTTP2 available'; -$wb['web_settings_txt'] = 'Web Server'; -$wb['xmpp_server_txt'] = 'XMPP Server'; -$wb['xmpp_use_ipv6_txt'] = 'Use IPv6'; -$wb['xmpp_bosh_max_inactivity_txt'] = 'Max. BOSH inactivity time'; -$wb['xmpp_bosh_timeout_range_wrong'] = 'Please enter a bosh timeout range between 15 - 360'; -$wb['xmpp_module_saslauth'] = 'saslauth'; -$wb['xmpp_server_admins_txt'] = 'Server Admins (JIDs)'; -$wb['xmpp_modules_enabled_txt'] = 'Serverwide enabled plugins (one per line)'; -$wb['xmpp_ports_txt'] = 'Component ports'; -$wb['xmpp_port_http_txt'] = 'HTTP'; -$wb['xmpp_port_https_txt'] = 'HTTPS'; -$wb['xmpp_port_pastebin_txt'] = 'Pastebin'; -$wb['xmpp_port_bosh_txt'] = 'BOSH'; -$wb["disable_bind_log_txt"] = "Disable bind9 messages for Loglevel WARN"; -$wb["apps_vhost_enabled_txt"] = "Apps-vhost enabled"; -$wb['skip_le_check_txt'] = 'Skip Lets Encrypt Check'; -$wb['migration_mode_txt'] = 'Server Migration Mode'; -$wb['nginx_enable_pagespeed_txt'] = 'Makes Pagespeed available'; -$wb['logging_txt'] = 'Store website access and error logs'; -$wb['logging_desc_txt'] = 'Use Tools > Resync to apply changes to existing sites. For Apache, access and error log can be anonymized. For nginx, only the access log is anonymized, the error log will contain IP addresses.'; -$wb['log_retention_txt'] = 'Log retention (days)'; -$wb['log_retention_error_ispositive'] = 'Log retention must be a number > 0'; -$wb['php_default_name_txt'] = 'Description Default PHP-Version'; -$wb['php_default_name_error_empty'] = 'Description Default PHP-Version must not be empty'; -$wb['error_mailbox_message_size_txt'] = 'Mailbox size must be larger or equal to message size'; -$wb['php_fpm_reload_mode_txt'] = 'PHP-FPM reload mode'; -?> diff --git a/interface/web/admin/lib/lang/en_server_config.lng.rej b/interface/web/admin/lib/lang/en_server_config.lng.rej deleted file mode 100644 index 146024976..000000000 --- a/interface/web/admin/lib/lang/en_server_config.lng.rej +++ /dev/null @@ -1,11 +0,0 @@ ---- interface/web/admin/lib/lang/en_server_config.lng -+++ interface/web/admin/lib/lang/en_server_config.lng -@@ -296,4 +296,7 @@ $wb['log_retention_error_ispositive'] = 'Log retention must be a number > 0'; - $wb['php_default_name_txt'] = 'Description Default PHP-Version'; - $wb['php_default_name_error_empty'] = 'Description Default PHP-Version must not be empty'; - $wb['error_mailbox_message_size_txt'] = 'Mailbox size must be larger or equal to message size'; --?> -+$wb['content_filter_txt'] = 'Content Filter'; -+$wb['rspamd_url_txt'] = 'Rspamd URL'; -+$wb['rspamd_user_txt'] = 'Rspamd User'; -+$wb['rspamd_password_txt'] = 'Rspamd Password'; \ No newline at end of file diff --git a/interface/web/mail/form/spamfilter_policy.tform.php.orig b/interface/web/mail/form/spamfilter_policy.tform.php.orig deleted file mode 100644 index 31e8b8092..000000000 --- a/interface/web/mail/form/spamfilter_policy.tform.php.orig +++ /dev/null @@ -1,496 +0,0 @@ - 0 id must match with id of current user -$form["auth_preset"]["groupid"] = 0; // 0 = default groupid of the user, > 0 id must match with groupid of current user -$form["auth_preset"]["perm_user"] = 'riud'; //r = read, i = insert, u = update, d = delete -$form["auth_preset"]["perm_group"] = 'riud'; //r = read, i = insert, u = update, d = delete -$form["auth_preset"]["perm_other"] = 'r'; //r = read, i = insert, u = update, d = delete - -$form["tabs"]['policy'] = array ( - 'title' => "Policy", - 'width' => 100, - 'template' => "templates/spamfilter_policy_edit.htm", - 'fields' => array ( - //################################# - // Begin Datatable fields - //################################# - 'policy_name' => array ( - 'datatype' => 'VARCHAR', - 'formtype' => 'TEXT', - 'default' => '', - 'validators' => array ( 0 => array ( 'type' => 'NOTEMPTY', - 'errmsg'=> 'policyname_error_notempty'), - ), - 'filters' => array( - 0 => array( 'event' => 'SAVE', - 'type' => 'STRIPTAGS'), - 1 => array( 'event' => 'SAVE', - 'type' => 'STRIPNL') - ), - 'value' => '', - 'width' => '30', - 'maxlength' => '255' - ), - 'virus_lover' => array ( - 'datatype' => 'VARCHAR', - 'formtype' => 'SELECT', - 'default' => 'N', - 'value' => array('N' => 'No', 'Y' => 'Yes') - ), - 'spam_lover' => array ( - 'datatype' => 'VARCHAR', - 'formtype' => 'SELECT', - 'default' => 'N', - 'value' => array('N' => 'No', 'Y' => 'Yes') - ), - 'banned_files_lover' => array ( - 'datatype' => 'VARCHAR', - 'formtype' => 'SELECT', - 'default' => 'N', - 'value' => array('N' => 'No', 'Y' => 'Yes') - ), - 'bad_header_lover' => array ( - 'datatype' => 'VARCHAR', - 'formtype' => 'SELECT', - 'default' => 'N', - 'value' => array('N' => 'No', 'Y' => 'Yes') - ), - 'bypass_virus_checks' => array ( - 'datatype' => 'VARCHAR', - 'formtype' => 'SELECT', - 'default' => 'N', - 'value' => array('N' => 'No', 'Y' => 'Yes') - ), - 'bypass_banned_checks' => array ( - 'datatype' => 'VARCHAR', - 'formtype' => 'SELECT', - 'default' => 'N', - 'value' => array('N' => 'No', 'Y' => 'Yes') - ), - 'bypass_header_checks' => array ( - 'datatype' => 'VARCHAR', - 'formtype' => 'SELECT', - 'default' => 'N', - 'value' => array('N' => 'No', 'Y' => 'Yes') - ), - //################################# - // ENDE Datatable fields - //################################# - ) -); - - -$form["tabs"]['quarantine'] = array ( - 'title' => "Quarantine", - 'width' => 100, - 'template' => "templates/spamfilter_quarantine_edit.htm", - 'fields' => array ( - //################################# - // Begin Datatable fields - //################################# - 'virus_quarantine_to' => array ( - 'datatype' => 'VARCHAR', - 'formtype' => 'TEXT', - 'filters' => array( - 0 => array( 'event' => 'SAVE', - 'type' => 'STRIPTAGS'), - 1 => array( 'event' => 'SAVE', - 'type' => 'STRIPNL') - ), - 'default' => '', - 'value' => '', - 'width' => '30', - 'maxlength' => '255' - ), - 'spam_quarantine_to' => array ( - 'datatype' => 'VARCHAR', - 'formtype' => 'TEXT', - 'filters' => array( - 0 => array( 'event' => 'SAVE', - 'type' => 'STRIPTAGS'), - 1 => array( 'event' => 'SAVE', - 'type' => 'STRIPNL') - ), - 'default' => '', - 'value' => '', - 'width' => '30', - 'maxlength' => '255' - ), - 'banned_quarantine_to' => array ( - 'datatype' => 'VARCHAR', - 'formtype' => 'TEXT', - 'filters' => array( - 0 => array( 'event' => 'SAVE', - 'type' => 'STRIPTAGS'), - 1 => array( 'event' => 'SAVE', - 'type' => 'STRIPNL') - ), - 'default' => '', - 'value' => '', - 'width' => '30', - 'maxlength' => '255' - ), - 'bad_header_quarantine_to' => array ( - 'datatype' => 'VARCHAR', - 'formtype' => 'TEXT', - 'filters' => array( - 0 => array( 'event' => 'SAVE', - 'type' => 'STRIPTAGS'), - 1 => array( 'event' => 'SAVE', - 'type' => 'STRIPNL') - ), - 'default' => '', - 'value' => '', - 'width' => '30', - 'maxlength' => '255' - ), - 'clean_quarantine_to' => array ( - 'datatype' => 'VARCHAR', - 'formtype' => 'TEXT', - 'filters' => array( - 0 => array( 'event' => 'SAVE', - 'type' => 'STRIPTAGS'), - 1 => array( 'event' => 'SAVE', - 'type' => 'STRIPNL') - ), - 'default' => '', - 'value' => '', - 'width' => '30', - 'maxlength' => '255' - ), - 'other_quarantine_to' => array ( - 'datatype' => 'VARCHAR', - 'formtype' => 'TEXT', - 'filters' => array( - 0 => array( 'event' => 'SAVE', - 'type' => 'STRIPTAGS'), - 1 => array( 'event' => 'SAVE', - 'type' => 'STRIPNL') - ), - 'default' => '', - 'value' => '', - 'width' => '30', - 'maxlength' => '255' - ), - //################################# - // ENDE Datatable fields - //################################# - ) -); - -$form["tabs"]['taglevel'] = array ( - 'title' => "Tag-Level", - 'width' => 100, - 'template' => "templates/spamfilter_taglevel_edit.htm", - 'fields' => array ( - //################################# - // Begin Datatable fields - //################################# - 'spam_tag_level' => array ( - 'datatype' => 'DOUBLE', - 'formtype' => 'TEXT', - 'default' => '0', - 'value' => '', - 'width' => '10', - 'maxlength' => '255' - ), - 'spam_tag2_level' => array ( - 'datatype' => 'DOUBLE', - 'formtype' => 'TEXT', - 'default' => '0', - 'value' => '', - 'width' => '10', - 'maxlength' => '255' - ), - 'spam_kill_level' => array ( - 'datatype' => 'DOUBLE', - 'formtype' => 'TEXT', - 'default' => '0', - 'value' => '', - 'width' => '10', - 'maxlength' => '255' - ), - 'spam_dsn_cutoff_level' => array ( - 'datatype' => 'DOUBLE', - 'formtype' => 'TEXT', - 'default' => '0', - 'value' => '', - 'width' => '10', - 'maxlength' => '255' - ), - 'spam_quarantine_cutoff_level' => array ( - 'datatype' => 'DOUBLE', - 'formtype' => 'TEXT', - 'default' => '0', - 'value' => '', - 'width' => '10', - 'maxlength' => '255' - ), - 'spam_modifies_subj' => array ( - 'datatype' => 'VARCHAR', - 'formtype' => 'SELECT', - 'default' => 'N', - 'value' => array('N' => 'No', 'Y' => 'Yes') - ), - 'spam_subject_tag' => array ( - 'datatype' => 'VARCHAR', - 'formtype' => 'TEXT', - 'filters' => array( - 0 => array( 'event' => 'SAVE', - 'type' => 'STRIPTAGS'), - 1 => array( 'event' => 'SAVE', - 'type' => 'STRIPNL') - ), - 'default' => '', - 'value' => '', - 'width' => '30', - 'maxlength' => '255' - ), - 'spam_subject_tag2' => array ( - 'datatype' => 'VARCHAR', - 'formtype' => 'TEXT', - 'filters' => array( - 0 => array( 'event' => 'SAVE', - 'type' => 'STRIPTAGS'), - 1 => array( 'event' => 'SAVE', - 'type' => 'STRIPNL') - ), - 'default' => '', - 'value' => '', - 'width' => '30', - 'maxlength' => '255' - ), - //################################# - // ENDE Datatable fields - //################################# - ) -); - - -$form["tabs"]['other'] = array ( - 'title' => "Other", - 'width' => 100, - 'template' => "templates/spamfilter_other_edit.htm", - 'fields' => array ( - //################################# - // Begin Datatable fields - //################################# - 'addr_extension_virus' => array ( - 'datatype' => 'VARCHAR', - 'formtype' => 'TEXT', - 'filters' => array( - 0 => array( 'event' => 'SAVE', - 'type' => 'STRIPTAGS'), - 1 => array( 'event' => 'SAVE', - 'type' => 'STRIPNL') - ), - 'default' => '', - 'value' => '', - 'width' => '30', - 'maxlength' => '255' - ), - 'addr_extension_spam' => array ( - 'datatype' => 'VARCHAR', - 'formtype' => 'TEXT', - 'filters' => array( - 0 => array( 'event' => 'SAVE', - 'type' => 'STRIPTAGS'), - 1 => array( 'event' => 'SAVE', - 'type' => 'STRIPNL') - ), - 'default' => '', - 'value' => '', - 'width' => '30', - 'maxlength' => '255' - ), - 'addr_extension_banned' => array ( - 'datatype' => 'VARCHAR', - 'formtype' => 'TEXT', - 'filters' => array( - 0 => array( 'event' => 'SAVE', - 'type' => 'STRIPTAGS'), - 1 => array( 'event' => 'SAVE', - 'type' => 'STRIPNL') - ), - 'default' => '', - 'value' => '', - 'width' => '30', - 'maxlength' => '255' - ), - 'addr_extension_bad_header' => array ( - 'datatype' => 'VARCHAR', - 'formtype' => 'TEXT', - 'filters' => array( - 0 => array( 'event' => 'SAVE', - 'type' => 'STRIPTAGS'), - 1 => array( 'event' => 'SAVE', - 'type' => 'STRIPNL') - ), - 'default' => '', - 'value' => '', - 'width' => '30', - 'maxlength' => '255' - ), - 'warnvirusrecip' => array ( - 'datatype' => 'VARCHAR', - 'formtype' => 'SELECT', - 'default' => 'N', - 'value' => array('N' => 'No', 'Y' => 'Yes') - ), - 'warnbannedrecip' => array ( - 'datatype' => 'VARCHAR', - 'formtype' => 'SELECT', - 'default' => 'N', - 'value' => array('N' => 'No', 'Y' => 'Yes') - ), - 'warnbadhrecip' => array ( - 'datatype' => 'VARCHAR', - 'formtype' => 'SELECT', - 'default' => 'N', - 'value' => array('N' => 'No', 'Y' => 'Yes') - ), - 'newvirus_admin' => array ( - 'datatype' => 'VARCHAR', - 'formtype' => 'TEXT', - 'filters' => array( - 0 => array( 'event' => 'SAVE', - 'type' => 'STRIPTAGS'), - 1 => array( 'event' => 'SAVE', - 'type' => 'STRIPNL') - ), - 'default' => '', - 'value' => '', - 'width' => '30', - 'maxlength' => '255' - ), - 'virus_admin' => array ( - 'datatype' => 'VARCHAR', - 'formtype' => 'TEXT', - 'filters' => array( - 0 => array( 'event' => 'SAVE', - 'type' => 'STRIPTAGS'), - 1 => array( 'event' => 'SAVE', - 'type' => 'STRIPNL') - ), - 'default' => '', - 'value' => '', - 'width' => '30', - 'maxlength' => '255' - ), - 'banned_admin' => array ( - 'datatype' => 'VARCHAR', - 'formtype' => 'TEXT', - 'filters' => array( - 0 => array( 'event' => 'SAVE', - 'type' => 'STRIPTAGS'), - 1 => array( 'event' => 'SAVE', - 'type' => 'STRIPNL') - ), - 'default' => '', - 'value' => '', - 'width' => '30', - 'maxlength' => '255' - ), - 'bad_header_admin' => array ( - 'datatype' => 'VARCHAR', - 'formtype' => 'TEXT', - 'filters' => array( - 0 => array( 'event' => 'SAVE', - 'type' => 'STRIPTAGS'), - 1 => array( 'event' => 'SAVE', - 'type' => 'STRIPNL') - ), - 'default' => '', - 'value' => '', - 'width' => '30', - 'maxlength' => '255' - ), - 'spam_admin' => array ( - 'datatype' => 'VARCHAR', - 'formtype' => 'TEXT', - 'filters' => array( - 0 => array( 'event' => 'SAVE', - 'type' => 'STRIPTAGS'), - 1 => array( 'event' => 'SAVE', - 'type' => 'STRIPNL') - ), - 'default' => '', - 'value' => '', - 'width' => '30', - 'maxlength' => '255' - ), - - 'message_size_limit' => array ( - 'datatype' => 'INTEGER', - 'formtype' => 'TEXT', - 'default' => '', - 'value' => '', - 'width' => '10', - 'maxlength' => '255' - ), - 'banned_rulenames' => array ( - 'datatype' => 'VARCHAR', - 'formtype' => 'TEXT', - 'filters' => array( - 0 => array( 'event' => 'SAVE', - 'type' => 'STRIPTAGS'), - 1 => array( 'event' => 'SAVE', - 'type' => 'STRIPNL') - ), - 'default' => '', - 'value' => '', - 'width' => '30', - 'maxlength' => '255' - ), - - //################################# - // ENDE Datatable fields - //################################# - ) -); - -?> -- GitLab From a23052c6cd5a63ddb87cee2d42f5117d69fd50ba Mon Sep 17 00:00:00 2001 From: Marius Burkard Date: Wed, 31 Jul 2019 15:14:20 +0200 Subject: [PATCH 119/215] - fixed argument replacement in exec_safe function --- interface/lib/classes/system.inc.php | 3 ++- server/lib/classes/system.inc.php | 1 + 2 files changed, 3 insertions(+), 1 deletion(-) diff --git a/interface/lib/classes/system.inc.php b/interface/lib/classes/system.inc.php index ede53034d..0be2b6b1e 100644 --- a/interface/lib/classes/system.inc.php +++ b/interface/lib/classes/system.inc.php @@ -71,7 +71,8 @@ class system { } if($arg_count > 1) { $args = func_get_args(); - + array_shift($args); + $pos = 0; $a = 0; foreach($args as $value) { diff --git a/server/lib/classes/system.inc.php b/server/lib/classes/system.inc.php index 88cf83eeb..288f9d73f 100644 --- a/server/lib/classes/system.inc.php +++ b/server/lib/classes/system.inc.php @@ -2077,6 +2077,7 @@ class system{ } if($arg_count > 1) { $args = func_get_args(); + array_shift($args); $pos = 0; $a = 0; -- GitLab From d6ab12b7da16a426b96fc086f828ae7f81b573ec Mon Sep 17 00:00:00 2001 From: Marius Burkard Date: Wed, 31 Jul 2019 15:46:25 +0200 Subject: [PATCH 120/215] - fixed PHP warning (undefined constant openvz_tools) --- server/lib/classes/cron.d/100-monitor_openvz.inc.php | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/server/lib/classes/cron.d/100-monitor_openvz.inc.php b/server/lib/classes/cron.d/100-monitor_openvz.inc.php index 30b51b4b5..adc092ec9 100644 --- a/server/lib/classes/cron.d/100-monitor_openvz.inc.php +++ b/server/lib/classes/cron.d/100-monitor_openvz.inc.php @@ -69,7 +69,7 @@ class cronjob_monitor_openvz extends cronjob { /* Fetch the data into a array */ - $app->load(openvz_tools); + $app->load('openvz_tools'); $openVzTools = new openvz_tools(); $data = $openVzTools->getOpenVzVeInfo(); @@ -98,7 +98,7 @@ class cronjob_monitor_openvz extends cronjob { /* Fetch the data into a array */ - $app->load(openvz_tools); + $app->load('openvz_tools'); $openVzTools = new openvz_tools(); $data = $openVzTools->getOpenVzVeBeanCounter(); -- GitLab From cbb258385a579f319ca6dde17f9b20158c5d4f6e Mon Sep 17 00:00:00 2001 From: Marius Burkard Date: Wed, 31 Jul 2019 15:47:32 +0200 Subject: [PATCH 121/215] - fixed PHP warning The each() function is deprecated in cron.inc.php --- server/lib/classes/cron.inc.php | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/server/lib/classes/cron.inc.php b/server/lib/classes/cron.inc.php index 48ca09373..c6c2ad02b 100644 --- a/server/lib/classes/cron.inc.php +++ b/server/lib/classes/cron.inc.php @@ -264,7 +264,7 @@ class cron { if(!array_key_exists($sField, $this->_aValidValues)) return false; reset($this->_aValidValues[$sField]); - while(($cur = each($this->_aValidValues[$sField])) !== false) { + foreach($this->_aValidValues[$sField] as $cur) { if($bIncludeCurrent == true && $cur['value'] >= $iValue) return $cur['value']; elseif($cur['value'] > $iValue) return $cur['value']; } -- GitLab From a0fed931cbf202c6d94672d3401e9286b6643843 Mon Sep 17 00:00:00 2001 From: Marius Burkard Date: Wed, 31 Jul 2019 15:53:06 +0200 Subject: [PATCH 122/215] - fixed problem with gid/uid problem on user creation (apache2 and nginx plugin) --- server/plugins-available/apache2_plugin.inc.php | 10 +++++----- server/plugins-available/nginx_plugin.inc.php | 10 +++++----- 2 files changed, 10 insertions(+), 10 deletions(-) diff --git a/server/plugins-available/apache2_plugin.inc.php b/server/plugins-available/apache2_plugin.inc.php index 2183e96eb..ad8de1ab4 100644 --- a/server/plugins-available/apache2_plugin.inc.php +++ b/server/plugins-available/apache2_plugin.inc.php @@ -606,7 +606,7 @@ class apache2_plugin { $groupname = $data['new']['system_group']; if($data['new']['system_group'] != '' && !$app->system->is_group($data['new']['system_group'])) { - $app->system->exec_safe('groupadd ? ?', $fixed_gid_param, $groupname); + $app->system->exec_safe('groupadd ' . $fixed_gid_param . ' ?', $groupname); if($apache_chrooted) $app->system->exec_safe('chroot ? groupadd ?', $web_config['website_basedir'], $groupname); $app->log('Adding the group: '.$groupname, LOGLEVEL_DEBUG); } @@ -614,11 +614,11 @@ class apache2_plugin { $username = $data['new']['system_user']; if($data['new']['system_user'] != '' && !$app->system->is_user($data['new']['system_user'])) { if($web_config['add_web_users_to_sshusers_group'] == 'y') { - $app->system->exec_safe('useradd -d ? -g ? ? -G sshusers ? -s /bin/false', $data['new']['document_root'], $groupname, $fixed_uid_param, $username); - if($apache_chrooted) $app->system->exec_safe('chroot ? useradd -d ? -g ? ? -G sshusers ? -s /bin/false', $web_config['website_basedir'], $data['new']['document_root'], $groupname, $fixed_uid_param, $username); + $app->system->exec_safe('useradd -d ? -g ? ' . $fixed_uid_param . ' -G sshusers ? -s /bin/false', $data['new']['document_root'], $groupname, $username); + if($apache_chrooted) $app->system->exec_safe('chroot ? useradd -d ? -g ? ' . $fixed_uid_param . ' -G sshusers ? -s /bin/false', $web_config['website_basedir'], $data['new']['document_root'], $groupname, $username); } else { - $app->system->exec_safe('useradd -d ? -g ? ? ? -s /bin/false', $data['new']['document_root'], $groupname, $fixed_uid_param, $username); - if($apache_chrooted) $app->system->exec_safe('chroot ? useradd -d ? -g ? ? ? -s /bin/false', $web_config['website_basedir'], $data['new']['document_root'], $groupname, $fixed_uid_param, $username); + $app->system->exec_safe('useradd -d ? -g ? ' . $fixed_uid_param . ' ? -s /bin/false', $data['new']['document_root'], $groupname, $username); + if($apache_chrooted) $app->system->exec_safe('chroot ? useradd -d ? -g ? ' . $fixed_uid_param . ' ? -s /bin/false', $web_config['website_basedir'], $data['new']['document_root'], $groupname, $username); } $app->log('Adding the user: '.$username, LOGLEVEL_DEBUG); } diff --git a/server/plugins-available/nginx_plugin.inc.php b/server/plugins-available/nginx_plugin.inc.php index 9913299aa..86d5aba14 100644 --- a/server/plugins-available/nginx_plugin.inc.php +++ b/server/plugins-available/nginx_plugin.inc.php @@ -451,7 +451,7 @@ class nginx_plugin { $groupname = $data['new']['system_group']; if($data['new']['system_group'] != '' && !$app->system->is_group($data['new']['system_group'])) { - $app->system->exec_safe('groupadd ? ?', $fixed_gid_param, $groupname); + $app->system->exec_safe('groupadd ' . $fixed_gid_param . ' ?', $groupname); if($nginx_chrooted) $app->system->exec_safe('chroot ? groupadd ?', $web_config['website_basedir'], $groupname); $app->log('Adding the group: '.$groupname, LOGLEVEL_DEBUG); } @@ -459,11 +459,11 @@ class nginx_plugin { $username = $data['new']['system_user']; if($data['new']['system_user'] != '' && !$app->system->is_user($data['new']['system_user'])) { if($web_config['add_web_users_to_sshusers_group'] == 'y') { - $app->system->exec_safe('useradd -d ? -g ? ? -G sshusers ? -s /bin/false', $data['new']['document_root'], $groupname, $fixed_uid_param, $username); - if($nginx_chrooted) $app->system->exec_safe('chroot ? useradd -d ? -g ? ? -G sshusers ? -s /bin/false', $web_config['website_basedir'], $data['new']['document_root'], $groupname, $fixed_uid_param, $username); + $app->system->exec_safe('useradd -d ? -g ? ' . $fixed_uid_param . ' -G sshusers ? -s /bin/false', $data['new']['document_root'], $groupname, $username); + if($nginx_chrooted) $app->system->exec_safe('chroot ? useradd -d ? -g ? ' . $fixed_uid_param . ' -G sshusers ? -s /bin/false', $web_config['website_basedir'], $data['new']['document_root'], $groupname, $username); } else { - $app->system->exec_safe('useradd -d ? -g ? ? ? -s /bin/false', $data['new']['document_root'], $groupname, $fixed_uid_param, $username); - if($nginx_chrooted) $app->system->exec_safe('chroot ? useradd -d ? -g ? ? ? -s /bin/false', $web_config['website_basedir'], $data['new']['document_root'], $groupname, $fixed_uid_param, $username); + $app->system->exec_safe('useradd -d ? -g ? ' . $fixed_uid_param . ' ? -s /bin/false', $data['new']['document_root'], $groupname, $username); + if($nginx_chrooted) $app->system->exec_safe('chroot ? useradd -d ? -g ? ' . $fixed_uid_param . ' ? -s /bin/false', $web_config['website_basedir'], $data['new']['document_root'], $groupname, $username); } $app->log('Adding the user: '.$username, LOGLEVEL_DEBUG); } -- GitLab From 112102507f29ea3b10313bac16e46978773f77db Mon Sep 17 00:00:00 2001 From: Marius Burkard Date: Wed, 31 Jul 2019 15:58:17 +0200 Subject: [PATCH 123/215] - fixed invalid argument count on exec_safe in shell_user plugin --- server/plugins-available/shelluser_base_plugin.inc.php | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/server/plugins-available/shelluser_base_plugin.inc.php b/server/plugins-available/shelluser_base_plugin.inc.php index 90e3293ad..1fa61f843 100755 --- a/server/plugins-available/shelluser_base_plugin.inc.php +++ b/server/plugins-available/shelluser_base_plugin.inc.php @@ -129,9 +129,9 @@ class shelluser_base_plugin { $app->system->chgrp($homedir,$data['new']['pgroup'],false); } $command = 'useradd -d ? -g ? -o ?'; // non unique - if($data['new']['password'] != '') $command .= ' -p ?'; + if($data['new']['password'] != '') $command .= ' -p ' . escapeshellarg($data['new']['password']); $command .= ' -s ? -u ? ?'; - $app->system->exec_safe($command, $homedir, $data['new']['pgroup'], $data['new']['password'], $data['new']['shell'], $uid, $data['new']['username']); + $app->system->exec_safe($command, $homedir, $data['new']['pgroup'], $data['new']['shell'], $uid, $data['new']['username']); $app->log("Executed command: ".$command, LOGLEVEL_DEBUG); $app->log("Added shelluser: ".$data['new']['username'], LOGLEVEL_DEBUG); -- GitLab From 6e4209499f267108c7ac25a1244177255b4b9820 Mon Sep 17 00:00:00 2001 From: Marius Burkard Date: Wed, 31 Jul 2019 16:00:16 +0200 Subject: [PATCH 124/215] - fixed parameter naming in app.inc.php (interface) --- interface/lib/app.inc.php | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/interface/lib/app.inc.php b/interface/lib/app.inc.php index 46f721324..11bd02439 100755 --- a/interface/lib/app.inc.php +++ b/interface/lib/app.inc.php @@ -78,7 +78,7 @@ class app { $this->uses($prop); if(property_exists($this, $prop)) return $this->{$prop}; - else trigger_error('Undefined property ' . $name . ' of class app', E_USER_WARNING); + else trigger_error('Undefined property ' . $prop . ' of class app', E_USER_WARNING); } public function __destruct() { -- GitLab From a68bd9a76c61e04665fb144762aba2d57dd8c88b Mon Sep 17 00:00:00 2001 From: Marius Burkard Date: Wed, 31 Jul 2019 16:09:03 +0200 Subject: [PATCH 125/215] - too many arguments for useradd in shell user plugin --- server/plugins-available/shelluser_base_plugin.inc.php | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/server/plugins-available/shelluser_base_plugin.inc.php b/server/plugins-available/shelluser_base_plugin.inc.php index 1fa61f843..b4e47b4e9 100755 --- a/server/plugins-available/shelluser_base_plugin.inc.php +++ b/server/plugins-available/shelluser_base_plugin.inc.php @@ -128,7 +128,7 @@ class shelluser_base_plugin { $app->system->chown($homedir,$data['new']['puser'],false); $app->system->chgrp($homedir,$data['new']['pgroup'],false); } - $command = 'useradd -d ? -g ? -o ?'; // non unique + $command = 'useradd -d ? -g ? -o'; // non unique if($data['new']['password'] != '') $command .= ' -p ' . escapeshellarg($data['new']['password']); $command .= ' -s ? -u ? ?'; $app->system->exec_safe($command, $homedir, $data['new']['pgroup'], $data['new']['shell'], $uid, $data['new']['username']); -- GitLab From 8f1357074fec6a5a74bd3531a38a581cad8550ab Mon Sep 17 00:00:00 2001 From: Marius Burkard Date: Thu, 1 Aug 2019 19:20:52 +0200 Subject: [PATCH 126/215] - set autofocus on username/email field for login page, implements #5358 --- interface/web/login/templates/index.htm | 2 +- interface/web/login/templates/password_reset.htm | 2 +- 2 files changed, 2 insertions(+), 2 deletions(-) diff --git a/interface/web/login/templates/index.htm b/interface/web/login/templates/index.htm index 9a75a66cb..e03e58f1f 100644 --- a/interface/web/login/templates/index.htm +++ b/interface/web/login/templates/index.htm @@ -4,7 +4,7 @@
- +
diff --git a/interface/web/login/templates/password_reset.htm b/interface/web/login/templates/password_reset.htm index 66faf490f..49fa52883 100644 --- a/interface/web/login/templates/password_reset.htm +++ b/interface/web/login/templates/password_reset.htm @@ -9,7 +9,7 @@
- +
-- GitLab From 793394b5084d1bf912e5e94955cbcdaee18c1545 Mon Sep 17 00:00:00 2001 From: Marius Burkard Date: Fri, 2 Aug 2019 13:44:58 +0200 Subject: [PATCH 127/215] - fixed invalid arguments for exec_safe on dkim --- interface/web/mail/ajax_get_json.php | 5 +++-- 1 file changed, 3 insertions(+), 2 deletions(-) diff --git a/interface/web/mail/ajax_get_json.php b/interface/web/mail/ajax_get_json.php index 69705ba6f..412958a31 100644 --- a/interface/web/mail/ajax_get_json.php +++ b/interface/web/mail/ajax_get_json.php @@ -54,8 +54,9 @@ if($type == 'create_dkim' && $domain_id != ''){ if ($dkim_strength=='') $dkim_strength = 2048; $rnd_val = $dkim_strength * 10; - $app->system->exec_safe('openssl rand -out ../../temp/random-data.bin '.$rnd_val.' 2> /dev/null', $output, $result); - $app->system->exec_safe('openssl genrsa -rand ../../temp/random-data.bin '.$dkim_strength.' 2> /dev/null', $privkey, $result); + $app->system->exec_safe('openssl rand -out ../../temp/random-data.bin '.$rnd_val.' 2> /dev/null'); + $app->system->exec_safe('openssl genrsa -rand ../../temp/random-data.bin '.$dkim_strength.' 2> /dev/null'); + $privkey = $app->system->last_exec_out(); unlink("../../temp/random-data.bin"); $dkim_private=''; foreach($privkey as $values) $dkim_private=$dkim_private.$values."\n"; -- GitLab From e39bc1d6b6db40f70d59340b4dd45957bf9e5499 Mon Sep 17 00:00:00 2001 From: Marius Burkard Date: Fri, 2 Aug 2019 14:16:02 +0200 Subject: [PATCH 128/215] - dkim_signing conf for rspamd not readable for daemon --- install/lib/installer_base.lib.php | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/install/lib/installer_base.lib.php b/install/lib/installer_base.lib.php index 4db0da1ec..6fd8024e8 100644 --- a/install/lib/installer_base.lib.php +++ b/install/lib/installer_base.lib.php @@ -1578,13 +1578,13 @@ class installer_base { exec('cp tpl/rspamd_neural_group.conf.master /etc/rspamd/local.d/neural_group.conf'); } - exec('chmod a+r /etc/rspamd/local.d/* /etc/rspamd/override.d/*'); - $tpl = new tpl(); $tpl->newTemplate('rspamd_dkim_signing.conf.master'); $tpl->setVar('dkim_path', $mail_config['dkim_path']); wf('/etc/rspamd/local.d/dkim_signing.conf', $tpl->grab()); + exec('chmod a+r /etc/rspamd/local.d/* /etc/rspamd/override.d/*'); + $command = 'usermod -a -G amavis _rspamd'; caselog($command.' &> /dev/null', __FILE__, __LINE__, "EXECUTED: $command", "Failed to execute the command $command"); -- GitLab From 6311f1edc90f5a5327ca496f2fe03e833d98f130 Mon Sep 17 00:00:00 2001 From: Patrick ZAJDA Date: Sat, 3 Aug 2019 16:44:50 +0200 Subject: [PATCH 129/215] Put http to https redirect before SEO in Nginx virtualhost. It makes better the compliance with HSTS, http to https redirect must be done before domain to www.domain. --- server/conf/nginx_vhost.conf.master | 14 +++++++------- 1 file changed, 7 insertions(+), 7 deletions(-) diff --git a/server/conf/nginx_vhost.conf.master b/server/conf/nginx_vhost.conf.master index e78a107c7..b1db61fe1 100644 --- a/server/conf/nginx_vhost.conf.master +++ b/server/conf/nginx_vhost.conf.master @@ -25,6 +25,13 @@ server { root ; + + + if ($scheme != "https") { + rewrite ^ https://$http_host$request_uri? permanent; + } + + if ($http_host "") { rewrite ^ $scheme://$request_uri? permanent; @@ -40,13 +47,6 @@ server { rewrite ^(.*)$ $2 ; } - - - if ($scheme != "https") { - rewrite ^ https://$http_host$request_uri? permanent; - } - - -- GitLab From af99f3ef9682e9a5e75d9b67698ee6e57436c6b9 Mon Sep 17 00:00:00 2001 From: Till Brehm Date: Tue, 6 Aug 2019 13:45:09 +0200 Subject: [PATCH 130/215] Fixes #5362 wrong pool dir used for php-fpm --- server/plugins-available/apache2_plugin.inc.php | 2 ++ 1 file changed, 2 insertions(+) diff --git a/server/plugins-available/apache2_plugin.inc.php b/server/plugins-available/apache2_plugin.inc.php index ad8de1ab4..59e97629c 100644 --- a/server/plugins-available/apache2_plugin.inc.php +++ b/server/plugins-available/apache2_plugin.inc.php @@ -1559,9 +1559,11 @@ class apache2_plugin { if($default_php_fpm){ $pool_dir = $web_config['php_fpm_pool_dir']; + } else { $pool_dir = $custom_php_fpm_pool_dir; } $pool_dir = trim($pool_dir); + if(substr($pool_dir, -1) != '/') $pool_dir .= '/'; $pool_name = 'web'.$data['new']['domain_id']; $socket_dir = $web_config['php_fpm_socket_dir']; -- GitLab From 8b2ecd98f9c43966475a736ee6105dde3f140593 Mon Sep 17 00:00:00 2001 From: Florian Schaal Date: Wed, 7 Aug 2019 12:42:49 +0200 Subject: [PATCH 131/215] fixed typo --- interface/web/dns/dns_dkim_edit.php | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/interface/web/dns/dns_dkim_edit.php b/interface/web/dns/dns_dkim_edit.php index 35bac0d0c..5c95b2033 100644 --- a/interface/web/dns/dns_dkim_edit.php +++ b/interface/web/dns/dns_dkim_edit.php @@ -128,7 +128,7 @@ class page_action extends tform_actions { // check for duplicate entry $check=$app->db->queryOneRecord("SELECT * FROM dns_rr WHERE zone = ? AND type = ? AND data = ? AND name = ?", $this->dataRecord["zone"], $this->dataRecord["type"], $this->dataRecord["data"], $this->dataRecord['name']); if ($check!='') $app->tform->errorMessage .= $app->tform->wordbook["record_exists_txt"]; - if (empty($this->dataRecord['data'])) $app->tform->errorMessage /= $app->tform->wordbook["dkim_disabled_txt"]; + if (empty($this->dataRecord['data'])) $app->tform->errorMessage .= $app->tform->wordbook["dkim_disabled_txt"]; // validate selector and public-key if (empty($this->dataRecord['selector'])) $app->tform->errorMessage .= '
'.$app->tform->wordbook["dkim_selector_empty_txt"].'
'; -- GitLab From c3e2fd1604eb485e08e4a6566b8b43e0048c3b19 Mon Sep 17 00:00:00 2001 From: Marius Burkard Date: Mon, 12 Aug 2019 14:13:22 +0200 Subject: [PATCH 132/215] - rspamd is not set even if it is installed --- install/lib/installer_base.lib.php | 2 ++ install/lib/update.lib.php | 3 +++ 2 files changed, 5 insertions(+) diff --git a/install/lib/installer_base.lib.php b/install/lib/installer_base.lib.php index 6fd8024e8..b60300e2b 100644 --- a/install/lib/installer_base.lib.php +++ b/install/lib/installer_base.lib.php @@ -326,6 +326,8 @@ class installer_base { $tpl_ini_array['web']['php_ini_path_cgi'] = $conf['apache']['php_ini_path_cgi']; $tpl_ini_array['mail']['pop3_imap_daemon'] = ($conf['dovecot']['installed'] == true)?'dovecot':'courier'; $tpl_ini_array['mail']['mail_filter_syntax'] = ($conf['dovecot']['installed'] == true)?'sieve':'maildrop'; + $tpl_ini_array['mail']['content_filter'] = @($conf['rspamd']['installed']) ? 'rspamd' : 'amavis'; + $tpl_ini_array['mail']['rspamd_available'] = @($conf['rspamd']['installed']) ? 'y' : 'n'; $tpl_ini_array['dns']['bind_user'] = $conf['bind']['bind_user']; $tpl_ini_array['dns']['bind_group'] = $conf['bind']['bind_group']; $tpl_ini_array['dns']['bind_zonefiles_dir'] = $conf['bind']['bind_zonefiles_dir']; diff --git a/install/lib/update.lib.php b/install/lib/update.lib.php index fd1a34b2c..9deb8ca10 100644 --- a/install/lib/update.lib.php +++ b/install/lib/update.lib.php @@ -335,6 +335,9 @@ function updateDbAndIni() { $tpl_ini_array['web']['php_ini_path_cgi'] = $conf['apache']['php_ini_path_cgi']; $tpl_ini_array['mail']['pop3_imap_daemon'] = ($conf['dovecot']['installed'] == true)?'dovecot':'courier'; $tpl_ini_array['mail']['mail_filter_syntax'] = ($conf['dovecot']['installed'] == true)?'sieve':'maildrop'; + // do not switch to rspamd automatically! + // $tpl_ini_array['mail']['content_filter'] = @($conf['rspamd']['installed']) ? 'rspamd' : 'amavis'; + $tpl_ini_array['mail']['rspamd_available'] = @($conf['rspamd']['installed']) ? 'y' : 'n'; $tpl_ini_array['dns']['bind_user'] = $conf['bind']['bind_user']; $tpl_ini_array['dns']['bind_group'] = $conf['bind']['bind_group']; $tpl_ini_array['dns']['bind_zonefiles_dir'] = $conf['bind']['bind_zonefiles_dir']; -- GitLab From befdfb2ae5e9d33c90a1584c3be0fd055bcd0687 Mon Sep 17 00:00:00 2001 From: Marius Burkard Date: Mon, 12 Aug 2019 15:01:31 +0200 Subject: [PATCH 133/215] - added missing rspamd lines in apps vhost template on install --- install/lib/installer_base.lib.php | 11 ++++++++++- install/tpl/apache_apps.vhost.master | 18 ++++++++++++++++++ install/tpl/nginx_apps.vhost.master | 24 ++++++++++++++++++++++++ 3 files changed, 52 insertions(+), 1 deletion(-) diff --git a/install/lib/installer_base.lib.php b/install/lib/installer_base.lib.php index b60300e2b..c7f955d94 100644 --- a/install/lib/installer_base.lib.php +++ b/install/lib/installer_base.lib.php @@ -2226,7 +2226,10 @@ class installer_base { $tpl->setVar('logging','yes'); } - + if($conf['rspamd']['installed'] == true) { + $tpl->setVar('use_rspamd', 'yes'); + } + // comment out the listen directive if port is 80 or 443 if($conf['web']['apps_vhost_ip'] == 80 or $conf['web']['apps_vhost_ip'] == 443) { $tpl->setVar('vhost_port_listen','#'); @@ -2294,6 +2297,12 @@ class installer_base { $apps_vhost_ip = $conf['web']['apps_vhost_ip'].':'; } + if($conf['rspamd']['installed'] == true) { + $content = str_replace('{use_rspamd}', '', $content); + } else { + $content = str_replace('{use_rspamd}', '# ', $content); + } + $socket_dir = escapeshellcmd($conf['nginx']['php_fpm_socket_dir']); if(substr($socket_dir, -1) != '/') $socket_dir .= '/'; if(!is_dir($socket_dir)) exec('mkdir -p '.$socket_dir); diff --git a/install/tpl/apache_apps.vhost.master b/install/tpl/apache_apps.vhost.master index ee1b69309..9cccf8d38 100644 --- a/install/tpl/apache_apps.vhost.master +++ b/install/tpl/apache_apps.vhost.master @@ -19,6 +19,12 @@ RequestHeader unset Proxy early + {tmpl_if name="enable_spdy" op="==" value="y"} + + SpdyEnabled on + + {/tmpl_if} + DocumentRoot {tmpl_var name='apps_vhost_dir'} AddType application/x-httpd-php .php @@ -68,6 +74,18 @@ +{tmpl_if name="use_rspamd"} + + Order allow,deny + Allow from all + + RewriteEngine On + RewriteRule ^/rspamd$ /rspamd/ [R,L] + RewriteRule ^/rspamd/(.*) http://127.0.0.1:11334/$1 [P] +{/tmpl_if} + + + diff --git a/install/tpl/nginx_apps.vhost.master b/install/tpl/nginx_apps.vhost.master index 3d00d1110..871dff8c5 100644 --- a/install/tpl/nginx_apps.vhost.master +++ b/install/tpl/nginx_apps.vhost.master @@ -208,4 +208,28 @@ server { alias /var/lib/mailman/archives/public; autoindex on; } + + {use_rspamd}location /rspamd/ { + {use_rspamd}proxy_pass http://127.0.0.1:11334/; + {use_rspamd}rewrite ^//(.*) /$1; + {use_rspamd}proxy_set_header X-Forwarded-Proto $scheme; + {use_rspamd}proxy_set_header Host $host; + {use_rspamd}proxy_set_header X-Real-IP $remote_addr; + {use_rspamd}proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for; + {use_rspamd}proxy_pass_header Authorization; + {use_rspamd}client_max_body_size 0; + {use_rspamd}client_body_buffer_size 1m; + {use_rspamd}proxy_intercept_errors on; + {use_rspamd}proxy_buffering on; + {use_rspamd}proxy_buffer_size 128k; + {use_rspamd}proxy_buffers 256 16k; + {use_rspamd}proxy_busy_buffers_size 256k; + {use_rspamd}proxy_temp_file_write_size 256k; + {use_rspamd}proxy_max_temp_file_size 0; + {use_rspamd}proxy_read_timeout 300; + {use_rspamd} + {use_rspamd}location ~* ^/rspamd/(.+\.(jpg|jpeg|gif|css|png|js|ico|html?|xml|txt))$ { + {use_rspamd}alias /usr/share/rspamd/www/$1; + {use_rspamd}} + {use_rspamd}} } -- GitLab From 7eb3be87690f6bb9aa6e399375c7254359cf0f83 Mon Sep 17 00:00:00 2001 From: Marius Burkard Date: Thu, 15 Aug 2019 10:42:41 +0200 Subject: [PATCH 134/215] - re-wrote policy editing to separate rspamd and amavis settings --- install/patches/upd_0088.php | 47 +++++ .../web/mail/form/spamfilter_policy.tform.php | 146 ++++++------- .../mail/lib/lang/en_spamfilter_policy.lng | 8 +- interface/web/mail/spamfilter_policy_edit.php | 80 ++----- .../mail/templates/spamfilter_amavis_edit.htm | 198 ++++++++++++++++++ .../mail/templates/spamfilter_other_edit.htm | 67 ------ .../mail/templates/spamfilter_policy_edit.htm | 36 +--- .../templates/spamfilter_quarantine_edit.htm | 35 ---- .../mail/templates/spamfilter_rspamd_edit.htm | 36 ++++ .../templates/spamfilter_taglevel_edit.htm | 69 ------ 10 files changed, 372 insertions(+), 350 deletions(-) create mode 100644 install/patches/upd_0088.php create mode 100644 interface/web/mail/templates/spamfilter_amavis_edit.htm delete mode 100644 interface/web/mail/templates/spamfilter_other_edit.htm delete mode 100644 interface/web/mail/templates/spamfilter_quarantine_edit.htm create mode 100644 interface/web/mail/templates/spamfilter_rspamd_edit.htm delete mode 100644 interface/web/mail/templates/spamfilter_taglevel_edit.htm diff --git a/install/patches/upd_0088.php b/install/patches/upd_0088.php new file mode 100644 index 000000000..47a10f608 --- /dev/null +++ b/install/patches/upd_0088.php @@ -0,0 +1,47 @@ +simple_query('Delete obsolete file ' . $file . '?', array('y', 'n', 'a', 'all', 'none'), 'y'); + if($answer == 'n') continue; + elseif($answer == 'a' || $answer == 'all') $del_all = true; + elseif($answer == 'none') break; + } + if(@is_file('/usr/local/ispconfig/' . $file) && !@is_file($curpath . '/' . $file)) { + // be sure this is not a file contained in installation! + @unlink('/usr/local/ispconfig/' . $file); + ilog('Deleted obsolete file /usr/local/ispconfig/' . $file); + $c++; + } + } + ilog($c . 'obsolete files deleted.'); + } +} + +?> diff --git a/interface/web/mail/form/spamfilter_policy.tform.php b/interface/web/mail/form/spamfilter_policy.tform.php index d6ecef9bb..2205dbb65 100644 --- a/interface/web/mail/form/spamfilter_policy.tform.php +++ b/interface/web/mail/form/spamfilter_policy.tform.php @@ -87,6 +87,21 @@ $form["tabs"]['policy'] = array ( 'default' => 'N', 'value' => array('N' => 'No', 'Y' => 'Yes') ), + //################################# + // ENDE Datatable fields + //################################# + ) +); + + +$form["tabs"]['amavis'] = array ( + 'title' => "Amavis", + 'width' => 100, + 'template' => "templates/spamfilter_amavis_edit.htm", + 'fields' => array ( + //################################# + // Begin Datatable fields + //################################# 'banned_files_lover' => array ( 'datatype' => 'VARCHAR', 'formtype' => 'SELECT', @@ -117,21 +132,6 @@ $form["tabs"]['policy'] = array ( 'default' => 'N', 'value' => array('N' => 'No', 'Y' => 'Yes') ), - //################################# - // ENDE Datatable fields - //################################# - ) -); - - -$form["tabs"]['quarantine'] = array ( - 'title' => "Quarantine", - 'width' => 100, - 'template' => "templates/spamfilter_quarantine_edit.htm", - 'fields' => array ( - //################################# - // Begin Datatable fields - //################################# 'virus_quarantine_to' => array ( 'datatype' => 'VARCHAR', 'formtype' => 'TEXT', @@ -216,20 +216,6 @@ $form["tabs"]['quarantine'] = array ( 'width' => '30', 'maxlength' => '255' ), - //################################# - // ENDE Datatable fields - //################################# - ) -); - -$form["tabs"]['taglevel'] = array ( - 'title' => "Tag-Level", - 'width' => 100, - 'template' => "templates/spamfilter_taglevel_edit.htm", - 'fields' => array ( - //################################# - // Begin Datatable fields - //################################# 'spam_tag_level' => array ( 'datatype' => 'DOUBLE', 'formtype' => 'TEXT', @@ -304,57 +290,6 @@ $form["tabs"]['taglevel'] = array ( 'width' => '30', 'maxlength' => '255' ), - 'rspamd_greylisting' => array ( - 'datatype' => 'VARCHAR', - 'formtype' => 'CHECKBOX', - 'default' => 'y', - 'value' => array(0 => 'n', 1 => 'y') - ), - 'rspamd_spam_greylisting_level' => array ( - 'datatype' => 'DOUBLE', - 'formtype' => 'TEXT', - 'default' => '0', - 'value' => '', - 'width' => '10', - 'maxlength' => '255' - ), - 'rspamd_spam_tag_level' => array ( - 'datatype' => 'DOUBLE', - 'formtype' => 'TEXT', - 'default' => '0', - 'value' => '', - 'width' => '10', - 'maxlength' => '255' - ), - 'rspamd_spam_tag_method' => array ( - 'datatype' => 'VARCHAR', - 'formtype' => 'SELECT', - 'default' => 'rewrite_subject', - 'value' => array('add_header' => $app->lng('add_header_txt'), 'rewrite_subject' => $app->lng('rewrite_subject_txt')) - ), - 'rspamd_spam_kill_level' => array ( - 'datatype' => 'DOUBLE', - 'formtype' => 'TEXT', - 'default' => '0', - 'value' => '', - 'width' => '10', - 'maxlength' => '255' - ), - //################################# - // ENDE Datatable fields - //################################# - ) -); - - -$form["tabs"]['other'] = array ( - 'title' => "Other", - 'width' => 100, - 'template' => "templates/spamfilter_other_edit.htm", - 'fields' => array ( - //################################# - // Begin Datatable fields - //################################# 'addr_extension_virus' => array ( 'datatype' => 'VARCHAR', 'formtype' => 'TEXT', @@ -522,11 +457,58 @@ $form["tabs"]['other'] = array ( 'width' => '30', 'maxlength' => '255' ), - //################################# // ENDE Datatable fields //################################# ) ); -?> +$form["tabs"]['rspamd'] = array ( + 'title' => "Rspamd", + 'width' => 100, + 'template' => "templates/spamfilter_rspamd_edit.htm", + 'fields' => array ( + //################################# + // Begin Datatable fields + //################################# + 'rspamd_greylisting' => array ( + 'datatype' => 'VARCHAR', + 'formtype' => 'CHECKBOX', + 'default' => 'y', + 'value' => array(0 => 'n', 1 => 'y') + ), + 'rspamd_spam_greylisting_level' => array ( + 'datatype' => 'DOUBLE', + 'formtype' => 'TEXT', + 'default' => '0', + 'value' => '', + 'width' => '10', + 'maxlength' => '255' + ), + 'rspamd_spam_tag_level' => array ( + 'datatype' => 'DOUBLE', + 'formtype' => 'TEXT', + 'default' => '0', + 'value' => '', + 'width' => '10', + 'maxlength' => '255' + ), + 'rspamd_spam_tag_method' => array ( + 'datatype' => 'VARCHAR', + 'formtype' => 'SELECT', + 'default' => 'rewrite_subject', + 'value' => array('add_header' => $app->lng('add_header_txt'), 'rewrite_subject' => $app->lng('rewrite_subject_txt')) + ), + 'rspamd_spam_kill_level' => array ( + 'datatype' => 'DOUBLE', + 'formtype' => 'TEXT', + 'default' => '0', + 'value' => '', + 'width' => '10', + 'maxlength' => '255' + ), + //################################# + // ENDE Datatable fields + //################################# + ) +); diff --git a/interface/web/mail/lib/lang/en_spamfilter_policy.lng b/interface/web/mail/lib/lang/en_spamfilter_policy.lng index f9e8a8e30..af1aac5d7 100644 --- a/interface/web/mail/lib/lang/en_spamfilter_policy.lng +++ b/interface/web/mail/lib/lang/en_spamfilter_policy.lng @@ -42,4 +42,10 @@ $wb['rspamd_spam_tag_method_txt'] = 'SPAM tag method'; $wb['rspamd_spam_kill_level_txt'] = 'SPAM reject level'; $wb['btn_save_txt'] = 'Save'; $wb['btn_cancel_txt'] = 'Cancel'; -?> \ No newline at end of file + +$wb['amavis_settings_txt'] = 'Settings'; +$wb['amavis_taglevel_txt'] = 'Tag-Level'; +$wb['amavis_quarantine_txt'] = 'Quarantine'; +$wb['amavis_other_txt'] = 'Other'; +$wb['add_header_txt'] = 'Add header'; +$wb['rewrite_subject_txt'] = 'Rewrite subject'; \ No newline at end of file diff --git a/interface/web/mail/spamfilter_policy_edit.php b/interface/web/mail/spamfilter_policy_edit.php index 55a42fe84..ffc0818ff 100644 --- a/interface/web/mail/spamfilter_policy_edit.php +++ b/interface/web/mail/spamfilter_policy_edit.php @@ -49,48 +49,9 @@ $app->uses('tpl,tform,tform_actions'); $app->load('tform_actions'); class page_action extends tform_actions { - - function onShow() { - global $app, $conf; - - // get the config - $app->uses('getconf'); - $mail_config = $app->getconf->get_server_config($conf['server_id'], 'mail'); - - $content_filter = 'amavisd'; - if($mail_config['content_filter'] == 'rspamd'){ - $content_filter = 'rspamd'; - unset($app->tform->formDef["tabs"]["policy"]['fields']['banned_files_lover']); - unset($app->tform->formDef["tabs"]["policy"]['fields']['bad_header_lover']); - unset($app->tform->formDef["tabs"]["policy"]['fields']['bypass_virus_checks']); - unset($app->tform->formDef["tabs"]["policy"]['fields']['bypass_banned_checks']); - unset($app->tform->formDef["tabs"]["policy"]['fields']['bypass_header_checks']); - - unset($app->tform->formDef["tabs"]["taglevel"]['fields']['spam_tag_level']); - unset($app->tform->formDef["tabs"]["taglevel"]['fields']['spam_tag2_level']); - unset($app->tform->formDef["tabs"]["taglevel"]['fields']['spam_kill_level']); - unset($app->tform->formDef["tabs"]["taglevel"]['fields']['spam_dsn_cutoff_level']); - unset($app->tform->formDef["tabs"]["taglevel"]['fields']['spam_quarantine_cutoff_level']); - unset($app->tform->formDef["tabs"]["taglevel"]['fields']['spam_modifies_subj']); - unset($app->tform->formDef["tabs"]["taglevel"]['fields']['spam_subject_tag']); - unset($app->tform->formDef["tabs"]["taglevel"]['fields']['spam_subject_tag2']); - - unset($app->tform->formDef["tabs"]["quarantine"]); - unset($app->tform->formDef["tabs"]["other"]); - } else { - unset($app->tform->formDef["tabs"]["taglevel"]['fields']['rspamd_greylisting']); - unset($app->tform->formDef["tabs"]["taglevel"]['fields']['rspamd_spam_greylisting_level']); - unset($app->tform->formDef["tabs"]["taglevel"]['fields']['rspamd_spam_tag_level']); - unset($app->tform->formDef["tabs"]["taglevel"]['fields']['rspamd_spam_tag_method']); - unset($app->tform->formDef["tabs"]["taglevel"]['fields']['rspamd_spam_kill_level']); - } - $app->tpl->setVar("content_filter", $content_filter); - - parent::onShow(); - } function onShowNew() { - global $app, $conf; + global $app; // we will check only users, not admins if($_SESSION["s"]["user"]["typ"] == 'user') { @@ -106,7 +67,7 @@ class page_action extends tform_actions { } function onSubmit() { - global $app, $conf; + global $app; // Check the client limits, if user is not the admin if($_SESSION["s"]["user"]["typ"] != 'admin') { // if user is not admin @@ -128,35 +89,30 @@ class page_action extends tform_actions { } function onAfterUpdate() { - global $app, $conf; - - $app->uses('getconf'); - $mail_config = $app->getconf->get_server_config($conf['server_id'], 'mail'); + global $app; - if($mail_config['content_filter'] == 'rspamd'){ - $record_has_changed = false; - if(isset($this->dataRecord['rspamd_spam_greylisting_level']) && !isset($this->dataRecord['rspamd_greylisting'])) $this->dataRecord['rspamd_greylisting'] = 'n'; - foreach($this->dataRecord as $key => $val) { - if(isset($this->oldDataRecord[$key]) && @$this->oldDataRecord[$key] != $val) { - // Record has changed - $record_has_changed = true; - } + $record_has_changed = false; + if(isset($this->dataRecord['rspamd_spam_greylisting_level']) && !isset($this->dataRecord['rspamd_greylisting'])) { + $this->dataRecord['rspamd_greylisting'] = 'n'; + } + foreach($this->dataRecord as $key => $val) { + if(isset($this->oldDataRecord[$key]) && @$this->oldDataRecord[$key] != $val) { + // Record has changed + $record_has_changed = true; } - - if($record_has_changed){ - $spamfilter_users = $app->db->queryAllRecords("SELECT * FROM spamfilter_users WHERE policy_id = ?", intval($this->id)); + } + + if($record_has_changed){ + $spamfilter_users = $app->db->queryAllRecords("SELECT * FROM spamfilter_users WHERE policy_id = ?", intval($this->id)); - if(is_array($spamfilter_users) && !empty($spamfilter_users)){ - foreach($spamfilter_users as $spamfilter_user){ - $app->db->datalogUpdate('spamfilter_users', $spamfilter_user, 'id', $spamfilter_user["id"], true); - } + if(is_array($spamfilter_users) && !empty($spamfilter_users)){ + foreach($spamfilter_users as $spamfilter_user){ + $app->db->datalogUpdate('spamfilter_users', $spamfilter_user, 'id', $spamfilter_user["id"], true); } } } } - } $app->tform_actions = new page_action; $app->tform_actions->onLoad(); -?> \ No newline at end of file diff --git a/interface/web/mail/templates/spamfilter_amavis_edit.htm b/interface/web/mail/templates/spamfilter_amavis_edit.htm new file mode 100644 index 000000000..41bf6b541 --- /dev/null +++ b/interface/web/mail/templates/spamfilter_amavis_edit.htm @@ -0,0 +1,198 @@ + +

+ +
+ +
+ +
+
+
+ +
+
+
+ +
+
+
+ +
+
+
+ +
+
+
+ +
+
+
+
+
+ + +
+ +
+
+ +
+ +
+
+ +
+
+ +
+
+ +
+
+ +
+
+ +
+
+
+ +
+
+ +
+
+
+
+ + +
+ +
+
+ + +
+ +
+
+ +
+
+ +
+
+ +
+
+
+
+ + +
+ +
+
+ +
+ +
+
+ +
+
+ +
+
+ +
+
+ +
+
+
+ +
+
+
+ +
+
+
+ +
+
+ +
+
+ +
+
+ +
+
+ +
+
+ +
Bytes
+
+
+ +
+
+
+
+ + + + +
+ + +
\ No newline at end of file diff --git a/interface/web/mail/templates/spamfilter_other_edit.htm b/interface/web/mail/templates/spamfilter_other_edit.htm deleted file mode 100644 index 83cd4a95c..000000000 --- a/interface/web/mail/templates/spamfilter_other_edit.htm +++ /dev/null @@ -1,67 +0,0 @@ - -

- - - -
- -
-
- -
-
- -
-
- -
-
- -
-
-
- -
-
-
- -
-
-
- -
-
- -
-
- -
-
- -
-
- -
-
- -
Bytes
-
-
- -
- - - - -
- - -
diff --git a/interface/web/mail/templates/spamfilter_policy_edit.htm b/interface/web/mail/templates/spamfilter_policy_edit.htm index 0496d3a85..506b4d5b8 100644 --- a/interface/web/mail/templates/spamfilter_policy_edit.htm +++ b/interface/web/mail/templates/spamfilter_policy_edit.htm @@ -3,8 +3,7 @@

- - +
@@ -20,38 +19,7 @@ {tmpl_var name='spam_lover'}
- -
- -
-
-
- -
-
-
- -
-
-
- -
-
-
- -
-
-
+ diff --git a/interface/web/mail/templates/spamfilter_quarantine_edit.htm b/interface/web/mail/templates/spamfilter_quarantine_edit.htm deleted file mode 100644 index 7f44b5802..000000000 --- a/interface/web/mail/templates/spamfilter_quarantine_edit.htm +++ /dev/null @@ -1,35 +0,0 @@ - -

- - - -
- -
-
- -
-
- -
-
- -
- - - - - -
- - -
\ No newline at end of file diff --git a/interface/web/mail/templates/spamfilter_rspamd_edit.htm b/interface/web/mail/templates/spamfilter_rspamd_edit.htm new file mode 100644 index 000000000..73472a876 --- /dev/null +++ b/interface/web/mail/templates/spamfilter_rspamd_edit.htm @@ -0,0 +1,36 @@ + +

+ +
+ +
+ {tmpl_var name='rspamd_greylisting'} +
+
+
+ +
+
+
+ +
+
+
+ +
+
+
+ +
+
+ + + +
+ + +
\ No newline at end of file diff --git a/interface/web/mail/templates/spamfilter_taglevel_edit.htm b/interface/web/mail/templates/spamfilter_taglevel_edit.htm deleted file mode 100644 index 1b3c3b482..000000000 --- a/interface/web/mail/templates/spamfilter_taglevel_edit.htm +++ /dev/null @@ -1,69 +0,0 @@ - -

- - - -
- -
-
- -
-
- -
-
- -
-
- -
-
- -
-
-
- -
-
- -
-
- -
- -
- {tmpl_var name='rspamd_greylisting'} -
-
-
- -
-
-
- -
-
-
- -
-
-
- -
-
-
- - - - -
- - -
-- GitLab From 63b9660ffad9e2a9a9de32b9f0dce8fd10b44dd7 Mon Sep 17 00:00:00 2001 From: Till Brehm Date: Fri, 16 Aug 2019 15:14:06 +0200 Subject: [PATCH 135/215] Fixes #5369 Internal ISPConfig cronjobs are not run in 3.1-dev version --- install/sql/incremental/upd_dev_collection.sql | 2 ++ server/lib/classes/cron.inc.php | 4 ++-- 2 files changed, 4 insertions(+), 2 deletions(-) diff --git a/install/sql/incremental/upd_dev_collection.sql b/install/sql/incremental/upd_dev_collection.sql index f86f6a93a..91cbc8162 100644 --- a/install/sql/incremental/upd_dev_collection.sql +++ b/install/sql/incremental/upd_dev_collection.sql @@ -35,3 +35,5 @@ ALTER TABLE `ftp_user` CHANGE COLUMN `password` `password` VARCHAR(200) DEFAULT ALTER TABLE `shell_user` CHANGE COLUMN `password` `password` VARCHAR(200) DEFAULT NULL; ALTER TABLE `sys_user` CHANGE COLUMN `passwort` `passwort` VARCHAR(200) DEFAULT NULL; ALTER TABLE `webdav_user` CHANGE COLUMN `password` `password` VARCHAR(200) DEFAULT NULL; + +DELETE FROM sys_cron WHERE `next_run` IS NOT NULL AND `next_run` >= DATE_ADD(`last_run`, INTERVAL 30 DAY) AND `next_run` BETWEEN '2020-01-01' AND '2020-01-02'; diff --git a/server/lib/classes/cron.inc.php b/server/lib/classes/cron.inc.php index c6c2ad02b..67be475fe 100644 --- a/server/lib/classes/cron.inc.php +++ b/server/lib/classes/cron.inc.php @@ -265,8 +265,8 @@ class cron { reset($this->_aValidValues[$sField]); foreach($this->_aValidValues[$sField] as $cur) { - if($bIncludeCurrent == true && $cur['value'] >= $iValue) return $cur['value']; - elseif($cur['value'] > $iValue) return $cur['value']; + if($bIncludeCurrent == true && $cur >= $iValue) return $cur; + elseif($cur > $iValue) return $cur; } return reset($this->_aValidValues[$sField]); } -- GitLab From 2b3eb82dd3fdcedd90f7473ded8ba6a3ad2c7c94 Mon Sep 17 00:00:00 2001 From: Till Brehm Date: Fri, 16 Aug 2019 15:15:10 +0200 Subject: [PATCH 136/215] Plugins module not loaded in cron debugger which prevents debugging of the Let's encrypt plugin. --- server/cron_debug.php | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/server/cron_debug.php b/server/cron_debug.php index 2ab9289d2..c92410f3e 100644 --- a/server/cron_debug.php +++ b/server/cron_debug.php @@ -39,7 +39,7 @@ ini_set('error_reporting', E_ALL & ~E_NOTICE); $conf['server_id'] = intval($conf['server_id']); // Load required base-classes -$app->uses('modules,ini_parser,file,services,getconf,system,cron,functions'); +$app->uses('modules,plugins,ini_parser,file,services,getconf,system,cron,functions'); $app->load('libdatetime,cronjob'); // Path settings -- GitLab From 2df03bce442fcdf691681ea0a7fa390d8a06dae7 Mon Sep 17 00:00:00 2001 From: Marius Burkard Date: Sat, 17 Aug 2019 11:01:28 +0200 Subject: [PATCH 137/215] - don't treat cron jobs as running when last run is older than 24h --- server/lib/classes/cronjob.inc.php | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/server/lib/classes/cronjob.inc.php b/server/lib/classes/cronjob.inc.php index 9fba5af3c..1e452b648 100644 --- a/server/lib/classes/cronjob.inc.php +++ b/server/lib/classes/cronjob.inc.php @@ -100,7 +100,7 @@ class cronjob { // check the run time and values for this job // get previous run data - $data = $app->db->queryOneRecord("SELECT `last_run`, `next_run`, `running` FROM `sys_cron` WHERE `name` = ?", get_class($this)); + $data = $app->db->queryOneRecord("SELECT `last_run`, `next_run`, IF(`last_run` IS NOT NULL AND `last_run` < DATE_SUB(NOW(), INTERVAL 24 HOUR), 0, `running`) as `running` FROM `sys_cron` WHERE `name` = ?", get_class($this)); if($data) { if($data['last_run']) $this->_last_run = $data['last_run']; if($data['next_run']) $this->_next_run = $data['next_run']; -- GitLab From 3305f4ee9282f69666441122fdf9a53aa3189164 Mon Sep 17 00:00:00 2001 From: Webslice Date: Wed, 21 Aug 2019 14:20:27 +0200 Subject: [PATCH 138/215] Force equal passwords in APS installer before form can be posted --- interface/web/sites/templates/aps_install_package.htm | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/interface/web/sites/templates/aps_install_package.htm b/interface/web/sites/templates/aps_install_package.htm index 2c4b48b9d..255a8685d 100644 --- a/interface/web/sites/templates/aps_install_package.htm +++ b/interface/web/sites/templates/aps_install_package.htm @@ -57,7 +57,7 @@
- +
-- GitLab From 0b1fac193e9cabc965b42645388ea45a5515cd9d Mon Sep 17 00:00:00 2001 From: Webslice Date: Wed, 21 Aug 2019 14:26:31 +0200 Subject: [PATCH 139/215] Don't try to load non-existing config in aps remote, fixes #4974 --- interface/lib/classes/remote.d/aps.inc.php | 3 +-- 1 file changed, 1 insertion(+), 2 deletions(-) diff --git a/interface/lib/classes/remote.d/aps.inc.php b/interface/lib/classes/remote.d/aps.inc.php index 50dda4825..78330fc8b 100644 --- a/interface/lib/classes/remote.d/aps.inc.php +++ b/interface/lib/classes/remote.d/aps.inc.php @@ -43,8 +43,7 @@ class remoting_aps extends remoting { throw new SoapFault('permission_denied', 'You do not have the permissions to access this function.'); return false; } - - require_once '../../../lib/config.inc.php'; + $app->load('aps_crawler'); $aps = new ApsCrawler($app, true); // true = Interface mode, false = Server mode -- GitLab From 2a3cadc8416c56f3c309df101249adffde3a0eaf Mon Sep 17 00:00:00 2001 From: Webslice Date: Wed, 21 Aug 2019 14:29:11 +0200 Subject: [PATCH 140/215] Minor language change for APS installer --- interface/web/sites/lib/lang/en_aps.lng | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/interface/web/sites/lib/lang/en_aps.lng b/interface/web/sites/lib/lang/en_aps.lng index b0300fe0c..04f6fb798 100644 --- a/interface/web/sites/lib/lang/en_aps.lng +++ b/interface/web/sites/lib/lang/en_aps.lng @@ -28,7 +28,7 @@ $wb['installation_txt'] = 'Installation'; $wb['install_location_txt'] = 'Install location'; $wb['btn_install_txt'] = 'Install'; $wb['btn_cancel_txt'] = 'Cancel'; -$wb['acceptance_txt'] = 'Acceptance'; +$wb['acceptance_txt'] = 'I accept the license'; $wb['acceptance_text_txt'] = 'Yes, i\'ve read the license and agree.'; $wb['install_language_txt'] = 'Interface language'; $wb['new_database_password_txt'] = 'New database password'; -- GitLab From 0bbef70c613b99664bc637ddb519697d3ce116cd Mon Sep 17 00:00:00 2001 From: Webslice Date: Wed, 21 Aug 2019 14:30:58 +0200 Subject: [PATCH 141/215] Load APS language file for APS instance list --- .../web/sites/list/aps_installedpackages.list.php | 14 ++++++++++---- 1 file changed, 10 insertions(+), 4 deletions(-) diff --git a/interface/web/sites/list/aps_installedpackages.list.php b/interface/web/sites/list/aps_installedpackages.list.php index d9a51d8be..1f855082d 100644 --- a/interface/web/sites/list/aps_installedpackages.list.php +++ b/interface/web/sites/list/aps_installedpackages.list.php @@ -28,6 +28,12 @@ NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. */ +// Load the APS language file +$lngfile = 'lib/lang/'.$app->functions->check_language($_SESSION['s']['language']).'_aps.lng'; +require_once $lngfile; +$app->tpl->setVar($wb); +$app->load_language_file('web/sites/'.$lngfile); + $liste['name'] = 'aps_instances'; // Name of the list $liste['table'] = 'aps_instances'; // Database table $liste['table_idx'] = 'id'; // Table index @@ -85,9 +91,9 @@ $liste["item"][] = array('field' => 'instance_status', 'prefix' => '', 'suffix' => '', 'width' => '', - 'value' => array(INSTANCE_INSTALL => $app->lng('Installation_task'), - INSTANCE_ERROR => $app->lng('Installation_error'), - INSTANCE_SUCCESS => $app->lng('Installation_success'), - INSTANCE_REMOVE => $app->lng('Installation_remove')), + 'value' => array(INSTANCE_INSTALL => $app->lng('installation_task_txt'), + INSTANCE_ERROR => $app->lng('installation_error_txt'), + INSTANCE_SUCCESS => $app->lng('installation_success_txt'), + INSTANCE_REMOVE => $app->lng('installation_remove_txt')), 'table' => 'aps_instances'); ?> -- GitLab From 1b273e48f9030743eaa046414079b055e894d209 Mon Sep 17 00:00:00 2001 From: Webslice Date: Wed, 21 Aug 2019 14:33:28 +0200 Subject: [PATCH 142/215] Fix APS package list table --- interface/web/sites/templates/aps_packages_list.htm | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/interface/web/sites/templates/aps_packages_list.htm b/interface/web/sites/templates/aps_packages_list.htm index d3f3f8c3b..501e7aeed 100644 --- a/interface/web/sites/templates/aps_packages_list.htm +++ b/interface/web/sites/templates/aps_packages_list.htm @@ -6,7 +6,7 @@ - + @@ -15,7 +15,7 @@ - + @@ -27,7 +27,7 @@ - + -- GitLab From 66ccf358c1d3463eddb4879f5b33bf9f5d851b2b Mon Sep 17 00:00:00 2001 From: Webslice Date: Wed, 21 Aug 2019 14:48:35 +0200 Subject: [PATCH 143/215] Add missing API doc for sites_aps_change_package_status --- remoting_client/API-docs/navigation.html | 7 +++-- .../sites_aps_change_package_status.html | 29 +++++++++++++++++++ 2 files changed, 33 insertions(+), 3 deletions(-) create mode 100644 remoting_client/API-docs/sites_aps_change_package_status.html diff --git a/remoting_client/API-docs/navigation.html b/remoting_client/API-docs/navigation.html index a9d32f759..5168122f2 100644 --- a/remoting_client/API-docs/navigation.html +++ b/remoting_client/API-docs/navigation.html @@ -2,11 +2,11 @@ ISCPConfig 3 API Functions - - + + - + + + +
+

sites_aps_change_package_status($session_id, $primary_id, $params);

+
+

Description:

+

Changes the status for specified APS package. Supply the APS package ID in $primary_id.


+

Input Variables:

+

$session_id, $primary_id, $params

+

Parameters (in $params):

+

package_status  (int) - can be 1 (= PACKAGE_LOCKED) or 2 (= PACKAGE_ENABLED)

+

Output:

+

Returns true package status was changed.

+ +
+ + -- GitLab From c7e3e7d94f84a9f2da2f91f78d7fa518051d4c2f Mon Sep 17 00:00:00 2001 From: Herman van Rink Date: Fri, 23 Aug 2019 09:12:17 +0200 Subject: [PATCH 144/215] On the Mailbox Quota, link rows to the mailbox page --- interface/web/dashboard/dashlets/templates/mailquota.htm | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/interface/web/dashboard/dashlets/templates/mailquota.htm b/interface/web/dashboard/dashlets/templates/mailquota.htm index 5ad01d686..3573ef1ab 100644 --- a/interface/web/dashboard/dashlets/templates/mailquota.htm +++ b/interface/web/dashboard/dashlets/templates/mailquota.htm @@ -12,7 +12,7 @@
- + -- GitLab From 72fbabda91187018134675c0d2876753b12c4da8 Mon Sep 17 00:00:00 2001 From: Marius Burkard Date: Fri, 23 Aug 2019 12:56:55 +0200 Subject: [PATCH 145/215] - added missing onComplete() to cron debug script (led to permanent running marker on jobs) --- server/cron_debug.php | 1 + 1 file changed, 1 insertion(+) diff --git a/server/cron_debug.php b/server/cron_debug.php index c92410f3e..6eda4fcdd 100644 --- a/server/cron_debug.php +++ b/server/cron_debug.php @@ -66,6 +66,7 @@ $cronjob->onPrepare(); $cronjob->onBeforeRun(); $cronjob->onRunJob(); $cronjob->onAfterRun(); +$cronjob->onCompleted(); die("finished.\n"); -- GitLab From 8f35cdb04e263fbcad5d3c7de77d7e48acb26946 Mon Sep 17 00:00:00 2001 From: Marius Burkard Date: Mon, 26 Aug 2019 14:03:35 +0200 Subject: [PATCH 146/215] - prevent running update when mysql cannot be used from command line with credentials from mysql_clientdb.conf --- install/update.php | 16 ++++++++++++++++ 1 file changed, 16 insertions(+) diff --git a/install/update.php b/install/update.php index 42ddd625f..11570aa66 100644 --- a/install/update.php +++ b/install/update.php @@ -293,6 +293,22 @@ if($conf['mysql']['master_slave_setup'] == 'y') { */ checkDbHealth(); + +/* + * Check command line mysql login + */ +if( !empty($conf["mysql"]["admin_password"]) ) { + $cmd = "mysql --default-character-set=".escapeshellarg($conf['mysql']['charset'])." --force -h ".escapeshellarg($conf['mysql']['host'])." -u ".escapeshellarg($conf['mysql']['admin_user'])." -p".escapeshellarg($conf['mysql']['admin_password'])." -P ".escapeshellarg($conf['mysql']['port'])." -D ".escapeshellarg($conf['mysql']['database'])." -e ". escapeshellarg('SHOW DATABASES'); +} else { + $cmd = "mysql --default-character-set=".escapeshellarg($conf['mysql']['charset'])." --force -h ".escapeshellarg($conf['mysql']['host'])." -u ".escapeshellarg($conf['mysql']['admin_user'])." -P ".escapeshellarg($conf['mysql']['port'])." -D ".escapeshellarg($conf['mysql']['database'])." -e ". escapeshellarg('SHOW DATABASES'); +} +$retval = 0; +$retout = array(); +exec($cmd, $retout, $retval); +if($retval != 0) { + die("Unable to call mysql command line with credentials from mysql_clientdb.conf\n"); +} + /* * dump the new Database and reconfigure the server.ini */ -- GitLab From 8ab148b3bae66b595c8b4d73d61cf66ab7d4e8bc Mon Sep 17 00:00:00 2001 From: Marius Burkard Date: Mon, 26 Aug 2019 21:59:35 +0200 Subject: [PATCH 147/215] - added debug log to exec_safe including returncode - moved jailkit functions from bash files to system library --- server/lib/classes/system.inc.php | 85 ++++++++++++++++++- .../cron_jailkit_plugin.inc.php | 34 ++------ .../shelluser_jailkit_plugin.inc.php | 17 ++-- 3 files changed, 97 insertions(+), 39 deletions(-) diff --git a/server/lib/classes/system.inc.php b/server/lib/classes/system.inc.php index 288f9d73f..4c76e9aaf 100644 --- a/server/lib/classes/system.inc.php +++ b/server/lib/classes/system.inc.php @@ -2070,6 +2070,8 @@ class system{ } public function exec_safe($cmd) { + global $app; + $arg_count = func_num_args(); if($arg_count != substr_count($cmd, '?') + 1) { trigger_error('Placeholder count not matching argument list.', E_USER_WARNING); @@ -2096,7 +2098,11 @@ class system{ $this->_last_exec_out = null; $this->_last_exec_retcode = null; - return exec($cmd, $this->_last_exec_out, $this->_last_exec_retcode); + $ret = exec($cmd, $this->_last_exec_out, $this->_last_exec_retcode); + + $this->app->log("safe_exec cmd: " . $cmd . " - return code: " . $this->_last_exec_retcode, LOGLEVEL_DEBUG); + + return $ret; } public function system_safe($cmd) { @@ -2104,4 +2110,81 @@ class system{ return implode("\n", $this->_last_exec_out); } + public function create_jailkit_user($username, $home_dir, $user_home_dir, $shell = '/bin/bash', $p_user = null, $p_user_home_dir = null) { + // Check if USERHOMEDIR already exists + if(!is_dir($home_dir . '/.' . $user_home_dir)) { + $this->mkdirpath($home_dir . '/.' . $user_home_dir, 0755, $username); + } + + // Reconfigure the chroot home directory for the user + $cmd = 'usermod --home=? ? 2>/dev/null'; + $this->exec_safe($cmd, $home_dir . '/.' . $user_home_dir, $username); + + // Add the chroot user + $cmd = 'jk_jailuser -n -s ? -j ? ?'; + $this->exec_safe($cmd, $shell, $home_dir, $username); + + // We have to reconfigure the chroot home directory for the parent user + if($p_user !== null) { + $cmd = 'usermod --home=? ? 2>/dev/null'; + $this->exec_safe($cmd, $home_dir . '/.' . $p_user_home_dir, $p_user); + } + + return true; + } + + public function create_jailkit_programs($home_dir, $programs = array()) { + if(empty($programs)) { + return true; + } + $program_args = ''; + foreach($programs as $prog) { + $program_args .= ' ' . escapeshellarg($prog); + } + + $cmd = 'jk_cp -k ?' . $program_args; + $this->exec_safe($cmd, $home_dir); + + return true; + } + + public function create_jailkit_chroot($home_dir, $app_sections = array()) { + if(empty($app_sections)) { + return true; + } + + // Change ownership of the chroot directory to root + $app->system->chown($home_dir, 'root'); + $app->system->chgrp($home_dir, 'root'); + + $app_args = ''; + foreach($app_sections as $app_section) { + $app_args .= ' ' . escapeshellarg($app_section); + } + + // Initialize the chroot into the specified directory with the specified applications + $cmd = 'jk_init -f -k -c /etc/jailkit/jk_init.ini -j ?' . $app_args; + $this->exec_safe($cmd, $home_dir); + + // Create the temp directory + if(!is_dir($home_dir . '/tmp')) { + $this->mkdirpath($home_dir . '/tmp', 0777); + } else { + $this->chmod($home_dir . '/tmp', 0777); + } + + // Fix permissions of the root firectory + $this->chmod($home_dir . '/bin', 0755); // was chmod g-w $CHROOT_HOMEDIR/bin + + // mysql needs the socket in the chrooted environment + $this->mkdirpath($home_dir . '/var/run/mysqld'); + + // ln /var/run/mysqld/mysqld.sock $CHROOT_HOMEDIR/var/run/mysqld/mysqld.sock + if(!file_exists("/var/run/mysqld/mysqld.sock")) { + $this->exec_safe('ln ? ?', '/var/run/mysqld/mysqld.sock', $home_dir . '/var/run/mysqld/mysqld.sock'); + } + + return true; + } + } diff --git a/server/plugins-available/cron_jailkit_plugin.inc.php b/server/plugins-available/cron_jailkit_plugin.inc.php index f8f664044..81d4b72e9 100644 --- a/server/plugins-available/cron_jailkit_plugin.inc.php +++ b/server/plugins-available/cron_jailkit_plugin.inc.php @@ -216,12 +216,9 @@ class cron_jailkit_plugin { //check if the chroot environment is created yet if not create it with a list of program sections from the config if (!is_dir($this->parent_domain['document_root'].'/etc/jailkit')) { - $command = '/usr/local/ispconfig/server/scripts/create_jailkit_chroot.sh'; - $command .= ' ?'; - $command .= ' ?'; - $app->system->exec_safe($command.' 2>/dev/null', $this->parent_domain['document_root'], $this->jailkit_config['jailkit_chroot_app_sections']); + $app->system->create_jailkit_chroot($this->parent_domain['document_root'], preg_split('/[\s,]+/', $this->jailkit_config['jailkit_chroot_app_sections'])); - $this->app->log("Added jailkit chroot with command: ".$command, LOGLEVEL_DEBUG); + $this->app->log("Added jailkit chroot", LOGLEVEL_DEBUG); $this->app->load('tpl'); @@ -259,19 +256,11 @@ class cron_jailkit_plugin { global $app; //copy over further programs and its libraries - $command = '/usr/local/ispconfig/server/scripts/create_jailkit_programs.sh'; - $command .= ' ?'; - $command .= ' ?'; - $app->system->exec_safe($command.' 2>/dev/null', $this->parent_domain['document_root'], $this->jailkit_config['jailkit_chroot_app_programs']); - - $this->app->log("Added programs to jailkit chroot with command: ".$command, LOGLEVEL_DEBUG); - - $command = '/usr/local/ispconfig/server/scripts/create_jailkit_programs.sh'; - $command .= ' ?'; - $command .= ' ?'; - $app->system->exec_safe($command.' 2>/dev/null', $this->parent_domain['document_root'], $this->jailkit_config['jailkit_chroot_cron_programs']); - - $this->app->log("Added cron programs to jailkit chroot with command: ".$command, LOGLEVEL_DEBUG); + $app->system->create_jailkit_programs($this->parent_domain['document_root'], preg_split('/[\s,]+/', $this->jailkit_config['jailkit_chroot_app_programs'])); + $this->app->log("Added app programs to jailkit chroot", LOGLEVEL_DEBUG); + + $app->system->create_jailkit_programs($this->parent_domain['document_root'], preg_split('/[\s,]+/', $this->jailkit_config['jailkit_chroot_cron_programs'])); + $this->app->log("Added cron programs to jailkit chroot", LOGLEVEL_DEBUG); } function _add_jailkit_user() @@ -288,14 +277,7 @@ class cron_jailkit_plugin { // ALWAYS create the user. Even if the user was created before // if we check if the user exists, then a update (no shell -> jailkit) will not work // and the user has FULL ACCESS to the root of the server! - $command = '/usr/local/ispconfig/server/scripts/create_jailkit_user.sh'; - $command .= ' ?'; - $command .= ' ?'; - $command .= ' ?'; - $command .= ' /bin/bash'; - $app->system->exec_safe($command.' 2>/dev/null', $this->parent_domain['system_user'], $this->parent_domain['document_root'], $jailkit_chroot_userhome); - - $this->app->log("Added jailkit user to chroot with command: ".$command, LOGLEVEL_DEBUG); + $app->system->create_jailkit_user($this->parent_domain['system_user'], $this->parent_domain['document_root'], $jailkit_chroot_userhome); $app->system->mkdir($this->parent_domain['document_root'].$jailkit_chroot_userhome, 0755, true); $app->system->chown($this->parent_domain['document_root'].$jailkit_chroot_userhome, $this->parent_domain['system_user']); diff --git a/server/plugins-available/shelluser_jailkit_plugin.inc.php b/server/plugins-available/shelluser_jailkit_plugin.inc.php index 1f3a08fac..eae2ea74f 100755 --- a/server/plugins-available/shelluser_jailkit_plugin.inc.php +++ b/server/plugins-available/shelluser_jailkit_plugin.inc.php @@ -273,10 +273,8 @@ class shelluser_jailkit_plugin { //check if the chroot environment is created yet if not create it with a list of program sections from the config if (!is_dir($this->data['new']['dir'].'/etc/jailkit')) { - $command = '/usr/local/ispconfig/server/scripts/create_jailkit_chroot.sh ? ?'; - $app->system->exec_safe($command.' 2>/dev/null', $this->data['new']['dir'], $this->jailkit_config['jailkit_chroot_app_sections']); - - $this->app->log("Added jailkit chroot with command: ".$command, LOGLEVEL_DEBUG); + $app->system->create_jailkit_chroot($this->data['new']['dir'], preg_split('/[\s,]+/', $this->jailkit_config['jailkit_chroot_app_sections'])); + $this->app->log("Added jailkit chroot", LOGLEVEL_DEBUG); $this->_add_jailkit_programs(); @@ -323,10 +321,8 @@ class shelluser_jailkit_plugin { $jailkit_chroot_app_program = trim($jailkit_chroot_app_program); if(is_file($jailkit_chroot_app_program) || is_dir($jailkit_chroot_app_program)){ //copy over further programs and its libraries - $command = '/usr/local/ispconfig/server/scripts/create_jailkit_programs.sh ? ?'; - $app->system->exec_safe($command.' 2>/dev/null', $this->data['new']['dir'], $jailkit_chroot_app_program); - - $this->app->log("Added programs to jailkit chroot with command: ".$command, LOGLEVEL_DEBUG); + $app->system->create_jailkit_programs($this->data['new']['dir'], $jailkit_chroot_app_program); + $this->app->log("Added programs to jailkit chroot", LOGLEVEL_DEBUG); } } } @@ -357,8 +353,7 @@ class shelluser_jailkit_plugin { // ALWAYS create the user. Even if the user was created before // if we check if the user exists, then a update (no shell -> jailkit) will not work // and the user has FULL ACCESS to the root of the server! - $command = '/usr/local/ispconfig/server/scripts/create_jailkit_user.sh ? ? ? ? ? ?'; - $app->system->exec_safe($command.' 2>/dev/null', $this->data['new']['username'], $this->data['new']['dir'], $jailkit_chroot_userhome, $this->data['new']['shell'], $this->data['new']['puser'], $jailkit_chroot_puserhome); + $app->system->create_jailkit_user($this->data['new']['username'], $this->data['new']['dir'], $jailkit_chroot_userhome, $this->data['new']['shell'], $this->data['new']['puser'], $jailkit_chroot_puserhome); $shell = '/usr/sbin/jk_chrootsh'; if($this->data['new']['active'] != 'y') $shell = '/bin/false'; @@ -366,8 +361,6 @@ class shelluser_jailkit_plugin { $app->system->usermod($this->data['new']['username'], 0, 0, $this->data['new']['dir'].'/.'.$jailkit_chroot_userhome, $shell); $app->system->usermod($this->data['new']['puser'], 0, 0, $this->data['new']['dir'].'/.'.$jailkit_chroot_puserhome, '/usr/sbin/jk_chrootsh'); - $this->app->log("Added jailkit user to chroot with command: ".$command, LOGLEVEL_DEBUG); - if(!is_dir($this->data['new']['dir'].$jailkit_chroot_userhome)) { if(is_dir($this->data['old']['dir'].$jailkit_chroot_userhome_old)) { $app->system->rename($this->data['old']['dir'].$jailkit_chroot_userhome_old,$this->data['new']['dir'].$jailkit_chroot_userhome); -- GitLab From 90afc99533450e73162e984497f9e606dcde73b4 Mon Sep 17 00:00:00 2001 From: Marius Burkard Date: Mon, 26 Aug 2019 22:01:40 +0200 Subject: [PATCH 148/215] - missed changing app->system to this. --- server/lib/classes/system.inc.php | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/server/lib/classes/system.inc.php b/server/lib/classes/system.inc.php index 4c76e9aaf..1698d73fe 100644 --- a/server/lib/classes/system.inc.php +++ b/server/lib/classes/system.inc.php @@ -2154,8 +2154,8 @@ class system{ } // Change ownership of the chroot directory to root - $app->system->chown($home_dir, 'root'); - $app->system->chgrp($home_dir, 'root'); + $this->chown($home_dir, 'root'); + $this->chgrp($home_dir, 'root'); $app_args = ''; foreach($app_sections as $app_section) { -- GitLab From 9387f0222c46ddcf64a7666f5dd3af4ad7a6d2d1 Mon Sep 17 00:00:00 2001 From: Marius Burkard Date: Mon, 26 Aug 2019 22:09:33 +0200 Subject: [PATCH 149/215] - typo in logging line --- server/lib/classes/system.inc.php | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/server/lib/classes/system.inc.php b/server/lib/classes/system.inc.php index 1698d73fe..5da642e8a 100644 --- a/server/lib/classes/system.inc.php +++ b/server/lib/classes/system.inc.php @@ -2100,7 +2100,7 @@ class system{ $this->_last_exec_retcode = null; $ret = exec($cmd, $this->_last_exec_out, $this->_last_exec_retcode); - $this->app->log("safe_exec cmd: " . $cmd . " - return code: " . $this->_last_exec_retcode, LOGLEVEL_DEBUG); + $app->log("safe_exec cmd: " . $cmd . " - return code: " . $this->_last_exec_retcode, LOGLEVEL_DEBUG); return $ret; } -- GitLab From 7bf3c540f444123d7236cc4632305419f2736e8c Mon Sep 17 00:00:00 2001 From: Marius Burkard Date: Mon, 26 Aug 2019 22:17:07 +0200 Subject: [PATCH 150/215] - moved splitting for programs and sections (jailkit) to lib - fixed warning in chmod --- server/lib/classes/system.inc.php | 8 ++++++-- server/plugins-available/cron_jailkit_plugin.inc.php | 6 +++--- server/plugins-available/shelluser_jailkit_plugin.inc.php | 2 +- 3 files changed, 10 insertions(+), 6 deletions(-) diff --git a/server/lib/classes/system.inc.php b/server/lib/classes/system.inc.php index 5da642e8a..c05d5ddf0 100644 --- a/server/lib/classes/system.inc.php +++ b/server/lib/classes/system.inc.php @@ -2136,6 +2136,8 @@ class system{ public function create_jailkit_programs($home_dir, $programs = array()) { if(empty($programs)) { return true; + } elseif(is_string($programs)) { + $programs = preg_split('/[\s,]+/', $programs); } $program_args = ''; foreach($programs as $prog) { @@ -2151,6 +2153,8 @@ class system{ public function create_jailkit_chroot($home_dir, $app_sections = array()) { if(empty($app_sections)) { return true; + } elseif(is_string($app_sections)) { + $app_sections = preg_split('/[\s,]+/', $app_sections); } // Change ownership of the chroot directory to root @@ -2170,11 +2174,11 @@ class system{ if(!is_dir($home_dir . '/tmp')) { $this->mkdirpath($home_dir . '/tmp', 0777); } else { - $this->chmod($home_dir . '/tmp', 0777); + $this->chmod($home_dir . '/tmp', 0777, true); } // Fix permissions of the root firectory - $this->chmod($home_dir . '/bin', 0755); // was chmod g-w $CHROOT_HOMEDIR/bin + $this->chmod($home_dir . '/bin', 0755, true); // was chmod g-w $CHROOT_HOMEDIR/bin // mysql needs the socket in the chrooted environment $this->mkdirpath($home_dir . '/var/run/mysqld'); diff --git a/server/plugins-available/cron_jailkit_plugin.inc.php b/server/plugins-available/cron_jailkit_plugin.inc.php index 81d4b72e9..0650ad87a 100644 --- a/server/plugins-available/cron_jailkit_plugin.inc.php +++ b/server/plugins-available/cron_jailkit_plugin.inc.php @@ -216,7 +216,7 @@ class cron_jailkit_plugin { //check if the chroot environment is created yet if not create it with a list of program sections from the config if (!is_dir($this->parent_domain['document_root'].'/etc/jailkit')) { - $app->system->create_jailkit_chroot($this->parent_domain['document_root'], preg_split('/[\s,]+/', $this->jailkit_config['jailkit_chroot_app_sections'])); + $app->system->create_jailkit_chroot($this->parent_domain['document_root'], $this->jailkit_config['jailkit_chroot_app_sections']); $this->app->log("Added jailkit chroot", LOGLEVEL_DEBUG); @@ -256,10 +256,10 @@ class cron_jailkit_plugin { global $app; //copy over further programs and its libraries - $app->system->create_jailkit_programs($this->parent_domain['document_root'], preg_split('/[\s,]+/', $this->jailkit_config['jailkit_chroot_app_programs'])); + $app->system->create_jailkit_programs($this->parent_domain['document_root'], $this->jailkit_config['jailkit_chroot_app_programs']); $this->app->log("Added app programs to jailkit chroot", LOGLEVEL_DEBUG); - $app->system->create_jailkit_programs($this->parent_domain['document_root'], preg_split('/[\s,]+/', $this->jailkit_config['jailkit_chroot_cron_programs'])); + $app->system->create_jailkit_programs($this->parent_domain['document_root'], $this->jailkit_config['jailkit_chroot_cron_programs']); $this->app->log("Added cron programs to jailkit chroot", LOGLEVEL_DEBUG); } diff --git a/server/plugins-available/shelluser_jailkit_plugin.inc.php b/server/plugins-available/shelluser_jailkit_plugin.inc.php index eae2ea74f..43d636500 100755 --- a/server/plugins-available/shelluser_jailkit_plugin.inc.php +++ b/server/plugins-available/shelluser_jailkit_plugin.inc.php @@ -273,7 +273,7 @@ class shelluser_jailkit_plugin { //check if the chroot environment is created yet if not create it with a list of program sections from the config if (!is_dir($this->data['new']['dir'].'/etc/jailkit')) { - $app->system->create_jailkit_chroot($this->data['new']['dir'], preg_split('/[\s,]+/', $this->jailkit_config['jailkit_chroot_app_sections'])); + $app->system->create_jailkit_chroot($this->data['new']['dir'], $this->jailkit_config['jailkit_chroot_app_sections']); $this->app->log("Added jailkit chroot", LOGLEVEL_DEBUG); $this->_add_jailkit_programs(); -- GitLab From a471ca233a99f4e6824ed0a16b65f069e3f148c2 Mon Sep 17 00:00:00 2001 From: Till Brehm Date: Thu, 29 Aug 2019 13:42:23 +0200 Subject: [PATCH 151/215] #5373 No file when dns zone delete. --- server/plugins-available/bind_plugin.inc.php | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/server/plugins-available/bind_plugin.inc.php b/server/plugins-available/bind_plugin.inc.php index 29d841ef8..e8b72b5db 100644 --- a/server/plugins-available/bind_plugin.inc.php +++ b/server/plugins-available/bind_plugin.inc.php @@ -391,7 +391,7 @@ class bind_plugin { $app->log("Deleting BIND domain file: ".$zone_file_name, LOGLEVEL_DEBUG); //* DNSSEC-Implementation - if($data['old']['dnssec_initialized'] == 'Y') { + if($data['old']['dnssec_initialized'] == 'Y' && file_exists('/usr/local/ispconfig/server/scripts/dnssec-delete.sh')) { //delete keys $app->system->exec_safe('/usr/local/ispconfig/server/scripts/dnssec-delete.sh ?', $data['old']['origin']); } -- GitLab From b951b645a7ac868ef9b2b6d9e80843a8366ab4e9 Mon Sep 17 00:00:00 2001 From: Till Brehm Date: Thu, 29 Aug 2019 13:45:43 +0200 Subject: [PATCH 152/215] Fixed wrong socket path in apps vhost when PHP 7.3 is used on the server. --- install/lib/installer_base.lib.php | 3 +++ 1 file changed, 3 insertions(+) diff --git a/install/lib/installer_base.lib.php b/install/lib/installer_base.lib.php index c7f955d94..148c6708b 100644 --- a/install/lib/installer_base.lib.php +++ b/install/lib/installer_base.lib.php @@ -2322,6 +2322,7 @@ class installer_base { || file_exists('/var/run/php/php7.1-fpm.sock') || file_exists('/var/run/php/php7.2-fpm.sock') || file_exists('/var/run/php/php7.3-fpm.sock') + || file_exists('/var/run/php/php7.4-fpm.sock') ){ $use_tcp = '#'; $use_socket = ''; @@ -2340,6 +2341,8 @@ class installer_base { if(file_exists('/var/run/php/php7.0-fpm.sock')) $content = str_replace('/var/run/php5-fpm.sock', '/var/run/php/php7.0-fpm.sock', $content); if(file_exists('/var/run/php/php7.1-fpm.sock')) $content = str_replace('/var/run/php5-fpm.sock', '/var/run/php/php7.1-fpm.sock', $content); if(file_exists('/var/run/php/php7.2-fpm.sock')) $content = str_replace('/var/run/php5-fpm.sock', '/var/run/php/php7.2-fpm.sock', $content); + if(file_exists('/var/run/php/php7.3-fpm.sock')) $content = str_replace('/var/run/php5-fpm.sock', '/var/run/php/php7.3-fpm.sock', $content); + if(file_exists('/var/run/php/php7.4-fpm.sock')) $content = str_replace('/var/run/php5-fpm.sock', '/var/run/php/php7.4-fpm.sock', $content); wf($vhost_conf_dir.'/apps.vhost', $content); -- GitLab From 3cabaa685abcff8d58c2296c7b52f85014bd5a37 Mon Sep 17 00:00:00 2001 From: Till Brehm Date: Thu, 29 Aug 2019 14:11:21 +0200 Subject: [PATCH 153/215] Fixed #5343 Buster/Dovecot stats-writer --- install/dist/lib/debian60.lib.php | 6 +++++ install/dist/lib/fedora.lib.php | 32 +++++++++++++++++++++++ install/lib/installer_base.lib.php | 32 +++++++++++++++++++++++ install/tpl/debian6_dovecot2.conf.master | 17 ++++++++++++ install/tpl/debian_dovecot2.conf.master | 15 +++++++++++ install/tpl/fedora_dovecot2.conf.master | 15 +++++++++++ install/tpl/opensuse_dovecot2.conf.master | 15 +++++++++++ 7 files changed, 132 insertions(+) diff --git a/install/dist/lib/debian60.lib.php b/install/dist/lib/debian60.lib.php index 487d35051..cc234f132 100644 --- a/install/dist/lib/debian60.lib.php +++ b/install/dist/lib/debian60.lib.php @@ -136,6 +136,12 @@ class installer extends installer_base { caselog($command.' &> /dev/null', __FILE__, __LINE__, "EXECUTED: $command", "Failed to execute the command $command"); } } + //remove #2.3+ comment + $content = file_get_contents($config_dir.'/'.$configfile); + $content = str_replace('#2.3+','',$content); + file_put_contents($config_dir.'/'.$configfile,$content); + unset($content); + } else { // remove settings which are not supported in Dovecot < 2.3 removeLine($config_dir.'/'.$configfile, 'ssl_min_protocol ='); diff --git a/install/dist/lib/fedora.lib.php b/install/dist/lib/fedora.lib.php index 5bb8fc0d2..3af874690 100644 --- a/install/dist/lib/fedora.lib.php +++ b/install/dist/lib/fedora.lib.php @@ -449,6 +449,38 @@ class installer_dist extends installer_base { file_put_contents($config_dir.'/'.$configfile,$content); unset($content); } + if(version_compare($dovecot_version,2.3) >= 0) { + // Remove deprecated setting(s) + removeLine($config_dir.'/'.$configfile, 'ssl_protocols ='); + + // Check if we have a dhparams file and if not, create it + if(!file_exists('/etc/dovecot/dh.pem')) { + swriteln('Creating new DHParams file, this takes several minutes. Do not interrupt the script.'); + if(file_exists('/var/lib/dovecot/ssl-parameters.dat')) { + // convert existing ssl parameters file + $command = 'dd if=/var/lib/dovecot/ssl-parameters.dat bs=1 skip=88 | openssl dhparam -inform der > /etc/dovecot/dh.pem'; + caselog($command.' &> /dev/null', __FILE__, __LINE__, "EXECUTED: $command", "Failed to execute the command $command"); + } else { + /* + Create a new dhparams file. We use 2048 bit only as it simply takes too long + on smaller systems to generate a 4096 bit dh file (> 30 minutes). If you need + a 4096 bit file, create it manually before you install ISPConfig + */ + $command = 'openssl dhparam -out /etc/dovecot/dh.pem 2048'; + caselog($command.' &> /dev/null', __FILE__, __LINE__, "EXECUTED: $command", "Failed to execute the command $command"); + } + } + //remove #2.3+ comment + $content = file_get_contents($config_dir.'/'.$configfile); + $content = str_replace('#2.3+','',$content); + file_put_contents($config_dir.'/'.$configfile,$content); + unset($content); + + } else { + // remove settings which are not supported in Dovecot < 2.3 + removeLine($config_dir.'/'.$configfile, 'ssl_min_protocol ='); + removeLine($config_dir.'/'.$configfile, 'ssl_dh ='); + } replaceLine($config_dir.'/'.$configfile, 'postmaster_address = postmaster@example.com', 'postmaster_address = postmaster@'.$conf['hostname'], 1, 0); replaceLine($config_dir.'/'.$configfile, 'postmaster_address = webmaster@localhost', 'postmaster_address = postmaster@'.$conf['hostname'], 1, 0); } else { diff --git a/install/lib/installer_base.lib.php b/install/lib/installer_base.lib.php index 148c6708b..dd4fe9c30 100644 --- a/install/lib/installer_base.lib.php +++ b/install/lib/installer_base.lib.php @@ -1304,6 +1304,38 @@ class installer_base { file_put_contents($config_dir.'/'.$configfile,$content); unset($content); } + if(version_compare($dovecot_version,2.3) >= 0) { + // Remove deprecated setting(s) + removeLine($config_dir.'/'.$configfile, 'ssl_protocols ='); + + // Check if we have a dhparams file and if not, create it + if(!file_exists('/etc/dovecot/dh.pem')) { + swriteln('Creating new DHParams file, this takes several minutes. Do not interrupt the script.'); + if(file_exists('/var/lib/dovecot/ssl-parameters.dat')) { + // convert existing ssl parameters file + $command = 'dd if=/var/lib/dovecot/ssl-parameters.dat bs=1 skip=88 | openssl dhparam -inform der > /etc/dovecot/dh.pem'; + caselog($command.' &> /dev/null', __FILE__, __LINE__, "EXECUTED: $command", "Failed to execute the command $command"); + } else { + /* + Create a new dhparams file. We use 2048 bit only as it simply takes too long + on smaller systems to generate a 4096 bit dh file (> 30 minutes). If you need + a 4096 bit file, create it manually before you install ISPConfig + */ + $command = 'openssl dhparam -out /etc/dovecot/dh.pem 2048'; + caselog($command.' &> /dev/null', __FILE__, __LINE__, "EXECUTED: $command", "Failed to execute the command $command"); + } + } + //remove #2.3+ comment + $content = file_get_contents($config_dir.'/'.$configfile); + $content = str_replace('#2.3+','',$content); + file_put_contents($config_dir.'/'.$configfile,$content); + unset($content); + + } else { + // remove settings which are not supported in Dovecot < 2.3 + removeLine($config_dir.'/'.$configfile, 'ssl_min_protocol ='); + removeLine($config_dir.'/'.$configfile, 'ssl_dh ='); + } } //* dovecot-lmtpd diff --git a/install/tpl/debian6_dovecot2.conf.master b/install/tpl/debian6_dovecot2.conf.master index f13bbd53d..74f680024 100644 --- a/install/tpl/debian6_dovecot2.conf.master +++ b/install/tpl/debian6_dovecot2.conf.master @@ -68,3 +68,20 @@ protocol lmtp { postmaster_address = webmaster@localhost mail_plugins = quota sieve } + +mail_plugins = $mail_plugins quota + +#2.3+ service stats { +#2.3+ unix_listener stats-reader { +#2.3+ user = vmail +#2.3+ group = vmail +#2.3+ mode = 0660 +#2.3+ } +#2.3+ +#2.3+ unix_listener stats-writer { +#2.3+ user = vmail +#2.3+ group = vmail +#2.3+ mode = 0660 +#2.3+ } +#2.3+ } + diff --git a/install/tpl/debian_dovecot2.conf.master b/install/tpl/debian_dovecot2.conf.master index 8fdaf44ee..cfe3bd018 100644 --- a/install/tpl/debian_dovecot2.conf.master +++ b/install/tpl/debian_dovecot2.conf.master @@ -64,4 +64,19 @@ protocol lmtp { postmaster_address = webmaster@localhost mail_plugins = quota sieve } + mail_plugins = $mail_plugins quota + +#2.3+ service stats { +#2.3+ unix_listener stats-reader { +#2.3+ user = vmail +#2.3+ group = vmail +#2.3+ mode = 0660 +#2.3+ } +#2.3+ +#2.3+ unix_listener stats-writer { +#2.3+ user = vmail +#2.3+ group = vmail +#2.3+ mode = 0660 +#2.3+ } +#2.3+ } diff --git a/install/tpl/fedora_dovecot2.conf.master b/install/tpl/fedora_dovecot2.conf.master index c14af1d44..1ba39a30d 100644 --- a/install/tpl/fedora_dovecot2.conf.master +++ b/install/tpl/fedora_dovecot2.conf.master @@ -61,4 +61,19 @@ protocol lmtp { postmaster_address = webmaster@localhost mail_plugins = quota sieve } + mail_plugins = $mail_plugins quota + +#2.3+ service stats { +#2.3+ unix_listener stats-reader { +#2.3+ user = vmail +#2.3+ group = vmail +#2.3+ mode = 0660 +#2.3+ } +#2.3+ +#2.3+ unix_listener stats-writer { +#2.3+ user = vmail +#2.3+ group = vmail +#2.3+ mode = 0660 +#2.3+ } +#2.3+ } diff --git a/install/tpl/opensuse_dovecot2.conf.master b/install/tpl/opensuse_dovecot2.conf.master index f28c1095d..f615cf335 100644 --- a/install/tpl/opensuse_dovecot2.conf.master +++ b/install/tpl/opensuse_dovecot2.conf.master @@ -60,4 +60,19 @@ protocol lmtp { postmaster_address = webmaster@localhost mail_plugins = quota sieve } + mail_plugins = $mail_plugins quota + +#2.3+ service stats { +#2.3+ unix_listener stats-reader { +#2.3+ user = vmail +#2.3+ group = vmail +#2.3+ mode = 0660 +#2.3+ } +#2.3+ +#2.3+ unix_listener stats-writer { +#2.3+ user = vmail +#2.3+ group = vmail +#2.3+ mode = 0660 +#2.3+ } +#2.3+ } -- GitLab From ea111e9228a6be7acedfd5d0644825e5eb4aca54 Mon Sep 17 00:00:00 2001 From: Till Brehm Date: Thu, 29 Aug 2019 14:14:26 +0200 Subject: [PATCH 154/215] Removed global quota line from dovecot.conf file again. --- install/tpl/debian6_dovecot2.conf.master | 2 -- 1 file changed, 2 deletions(-) diff --git a/install/tpl/debian6_dovecot2.conf.master b/install/tpl/debian6_dovecot2.conf.master index 74f680024..777280f04 100644 --- a/install/tpl/debian6_dovecot2.conf.master +++ b/install/tpl/debian6_dovecot2.conf.master @@ -69,8 +69,6 @@ protocol lmtp { mail_plugins = quota sieve } -mail_plugins = $mail_plugins quota - #2.3+ service stats { #2.3+ unix_listener stats-reader { #2.3+ user = vmail -- GitLab From 20b7abe33d2b9d2cf549d5896c9763bc620e8a1b Mon Sep 17 00:00:00 2001 From: Marius Burkard Date: Fri, 30 Aug 2019 14:51:17 +0200 Subject: [PATCH 155/215] - enable greylisting setting for catchall mail addresses - change the way greylisting setting is evaluated (prio is now 1. mail user, 2. mail forward/alias, 3. catchall), fixes #5378 --- install/tpl/mysql-virtual_policy_greylist.cf.master | 3 ++- interface/web/mail/form/mail_domain_catchall.tform.php | 6 ++++++ interface/web/mail/lib/lang/de_mail_domain_catchall.lng | 1 + interface/web/mail/lib/lang/en_mail_domain_catchall.lng | 1 + interface/web/mail/templates/mail_domain_catchall_edit.htm | 6 ++++++ 5 files changed, 16 insertions(+), 1 deletion(-) diff --git a/install/tpl/mysql-virtual_policy_greylist.cf.master b/install/tpl/mysql-virtual_policy_greylist.cf.master index fd6fded81..7967ee4a9 100644 --- a/install/tpl/mysql-virtual_policy_greylist.cf.master +++ b/install/tpl/mysql-virtual_policy_greylist.cf.master @@ -1,5 +1,6 @@ user = {mysql_server_ispconfig_user} password = {mysql_server_ispconfig_password} dbname = {mysql_server_database} -query = SELECT 'greylisting' FROM (SELECT greylisting, source AS email FROM mail_forwarding WHERE server_id = {server_id} UNION SELECT greylisting, email FROM mail_user WHERE server_id = {server_id}) addresses WHERE addresses.email='%s' AND addresses.greylisting='y' UNION SELECT 'greylisting' FROM `mail_forwarding` f CROSS JOIN `mail_user` u ON u.email = f.destination WHERE f.type = 'catchall' AND u.greylisting = 'y' AND u.server_id = {server_id} AND f.source = '@%s' +query = SELECT 'greylisting' FROM (SELECT `greylisting`, 1 as `prio` FROM `mail_user` WHERE `server_id` = {server_id} AND `email` = '%s' UNION SELECT `greylisting`, 2 as `prio` FROM `mail_forwarding` WHERE `server_id` = {server_id} AND `source` = '%s' UNION SELECT `greylisting`, 3 as `prio` FROM `mail_forwarding` WHERE `server_id` = {server_id} AND `source` = '@%s' ORDER BY `prio` ASC LIMIT 1) as rules WHERE rules.greylisting = 'y' + hosts = {mysql_server_ip} \ No newline at end of file diff --git a/interface/web/mail/form/mail_domain_catchall.tform.php b/interface/web/mail/form/mail_domain_catchall.tform.php index 8d0c0296b..81ce24c7b 100644 --- a/interface/web/mail/form/mail_domain_catchall.tform.php +++ b/interface/web/mail/form/mail_domain_catchall.tform.php @@ -131,6 +131,12 @@ $form["tabs"]['catchall'] = array ( 'default' => 'y', 'value' => array(0 => 'n', 1 => 'y') ), + 'greylisting' => array ( + 'datatype' => 'VARCHAR', + 'formtype' => 'CHECKBOX', + 'default' => 'n', + 'value' => array(1 => 'y', 0 => 'n') + ), //################################# // ENDE Datatable fields //################################# diff --git a/interface/web/mail/lib/lang/de_mail_domain_catchall.lng b/interface/web/mail/lib/lang/de_mail_domain_catchall.lng index 9f37e5669..bef241e0e 100644 --- a/interface/web/mail/lib/lang/de_mail_domain_catchall.lng +++ b/interface/web/mail/lib/lang/de_mail_domain_catchall.lng @@ -8,4 +8,5 @@ $wb['domain_error_regex'] = 'Ungültiger Domainname oder ungültige Zeichen im D $wb['limit_mailcatchall_txt'] = 'Die maximale Anzahl an Catchall Einträgen für Ihr Konto wurde erreicht.'; $wb['source_txt'] = 'Quelle'; $wb['destination_error_isemail'] = 'Das Ziel ist keine gültige E-Mail Adresse.'; +$wb['greylisting_txt'] = 'Aktiviere Greylisting'; ?> diff --git a/interface/web/mail/lib/lang/en_mail_domain_catchall.lng b/interface/web/mail/lib/lang/en_mail_domain_catchall.lng index 1f1726e54..a49722802 100644 --- a/interface/web/mail/lib/lang/en_mail_domain_catchall.lng +++ b/interface/web/mail/lib/lang/en_mail_domain_catchall.lng @@ -9,4 +9,5 @@ $wb["limit_mailcatchall_txt"] = 'The max. number of email catchall accounts for $wb['domain_txt'] = 'Domain'; $wb["source_txt"] = 'Source'; $wb['destination_error_isemail'] = 'Destination is no valid email address.'; +$wb['greylisting_txt'] = 'Enable greylisting'; ?> diff --git a/interface/web/mail/templates/mail_domain_catchall_edit.htm b/interface/web/mail/templates/mail_domain_catchall_edit.htm index 63c4405de..5991f2aec 100644 --- a/interface/web/mail/templates/mail_domain_catchall_edit.htm +++ b/interface/web/mail/templates/mail_domain_catchall_edit.htm @@ -14,6 +14,12 @@
+
+ +
+ {tmpl_var name='greylisting'} +
+
-- GitLab From 4666bfeb7456c34c847525a0f44a419f10457ace Mon Sep 17 00:00:00 2001 From: Marius Burkard Date: Fri, 30 Aug 2019 15:11:59 +0200 Subject: [PATCH 156/215] - fix for previous commit --- install/tpl/mysql-virtual_policy_greylist.cf.master | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/install/tpl/mysql-virtual_policy_greylist.cf.master b/install/tpl/mysql-virtual_policy_greylist.cf.master index 7967ee4a9..00f504e08 100644 --- a/install/tpl/mysql-virtual_policy_greylist.cf.master +++ b/install/tpl/mysql-virtual_policy_greylist.cf.master @@ -1,6 +1,6 @@ user = {mysql_server_ispconfig_user} password = {mysql_server_ispconfig_password} dbname = {mysql_server_database} -query = SELECT 'greylisting' FROM (SELECT `greylisting`, 1 as `prio` FROM `mail_user` WHERE `server_id` = {server_id} AND `email` = '%s' UNION SELECT `greylisting`, 2 as `prio` FROM `mail_forwarding` WHERE `server_id` = {server_id} AND `source` = '%s' UNION SELECT `greylisting`, 3 as `prio` FROM `mail_forwarding` WHERE `server_id` = {server_id} AND `source` = '@%s' ORDER BY `prio` ASC LIMIT 1) as rules WHERE rules.greylisting = 'y' +query = SELECT 'greylisting' FROM (SELECT `greylisting`, 1 as `prio` FROM `mail_user` WHERE `server_id` = {server_id} AND `email` = '%s' UNION SELECT `greylisting`, 2 as `prio` FROM `mail_forwarding` WHERE `server_id` = {server_id} AND `source` = '%s' UNION SELECT `greylisting`, 3 as `prio` FROM `mail_forwarding` WHERE `server_id` = {server_id} AND `source` = '@%d' ORDER BY `prio` ASC LIMIT 1) as rules WHERE rules.greylisting = 'y' hosts = {mysql_server_ip} \ No newline at end of file -- GitLab From 24b60e9c77a440812e61b2a65200c6b8501a0f8c Mon Sep 17 00:00:00 2001 From: Marius Burkard Date: Mon, 2 Sep 2019 10:15:41 +0200 Subject: [PATCH 157/215] - fixed problem when running cron_debug.php - fixed php warning on awstats cron --- server/lib/classes/cron.d/150-awstats.inc.php | 4 +++- server/lib/classes/cronjob.inc.php | 2 +- 2 files changed, 4 insertions(+), 2 deletions(-) diff --git a/server/lib/classes/cron.d/150-awstats.inc.php b/server/lib/classes/cron.d/150-awstats.inc.php index 0b1cbd5a4..4ba286ea1 100644 --- a/server/lib/classes/cron.d/150-awstats.inc.php +++ b/server/lib/classes/cron.d/150-awstats.inc.php @@ -148,7 +148,9 @@ class cronjob_awstats extends cronjob { } $statsdirold = $statsdir."/".$awyear."-".$awmonth."/"; - mkdir($statsdirold); + if(!is_dir($statsdirold)) { + mkdir($statsdirold); + } $files = scandir($statsdir); foreach ($files as $file) { if (substr($file, 0, 1) != "." && !is_dir("$statsdir"."/"."$file") && substr($file, 0, 1) != "w" && substr($file, 0, 1) != "i") copy("$statsdir"."/"."$file", "$statsdirold"."$file"); diff --git a/server/lib/classes/cronjob.inc.php b/server/lib/classes/cronjob.inc.php index 1e452b648..1407add02 100644 --- a/server/lib/classes/cronjob.inc.php +++ b/server/lib/classes/cronjob.inc.php @@ -174,7 +174,7 @@ class cronjob { } // child classes may NOT override this! - private function onCompleted() { + protected function onCompleted() { global $app, $conf; if($conf['log_priority'] <= LOGLEVEL_DEBUG) print "Called onCompleted() for class " . get_class($this) . "\n"; -- GitLab From 2e3887d07d0baeed95208df87ab5b53816ada8ff Mon Sep 17 00:00:00 2001 From: Marius Burkard Date: Mon, 2 Sep 2019 11:13:54 +0200 Subject: [PATCH 158/215] - changed the way cron_debug.php calls cron job classes --- server/cron_debug.php | 7 +------ server/lib/classes/cronjob.inc.php | 4 ++-- 2 files changed, 3 insertions(+), 8 deletions(-) diff --git a/server/cron_debug.php b/server/cron_debug.php index 6eda4fcdd..74065f02c 100644 --- a/server/cron_debug.php +++ b/server/cron_debug.php @@ -61,12 +61,7 @@ if(preg_match('/^\d+\-(.*)$/', $name, $match)) $name = $match[1]; // strip numer include $path . '/' . $cronjob_file; $class_name = 'cronjob_' . $name; $cronjob = new $class_name(); - -$cronjob->onPrepare(); -$cronjob->onBeforeRun(); -$cronjob->onRunJob(); -$cronjob->onAfterRun(); -$cronjob->onCompleted(); +$cronjob->run(true); die("finished.\n"); diff --git a/server/lib/classes/cronjob.inc.php b/server/lib/classes/cronjob.inc.php index 1407add02..27bc7038c 100644 --- a/server/lib/classes/cronjob.inc.php +++ b/server/lib/classes/cronjob.inc.php @@ -76,14 +76,14 @@ class cronjob { /** run through cronjob sequence **/ - public function run() { + public function run($debug_mode = false) { global $conf; if($conf['log_priority'] <= LOGLEVEL_DEBUG) print "Called run() for class " . get_class($this) . "\n"; if($conf['log_priority'] <= LOGLEVEL_DEBUG) print "Job has schedule: " . $this->getSchedule() . "\n"; $this->onPrepare(); $run_it = $this->onBeforeRun(); - if($run_it == true) { + if($run_it == true || $debug_mode === true) { $this->onRunJob(); $this->onAfterRun(); $this->onCompleted(); -- GitLab From 20fd2cce482389d5c80a78a9f247c10562177a48 Mon Sep 17 00:00:00 2001 From: Till Brehm Date: Mon, 2 Sep 2019 14:15:54 +0200 Subject: [PATCH 159/215] Implemented #5375 Add WebDAV functions to remoting API --- interface/lib/classes/remote.d/sites.inc.php | 50 ++++++++++++++++++++ interface/web/sites/lib/remote.conf.php | 1 + 2 files changed, 51 insertions(+) diff --git a/interface/lib/classes/remote.d/sites.inc.php b/interface/lib/classes/remote.d/sites.inc.php index a2f15d6f9..59c2e371f 100644 --- a/interface/lib/classes/remote.d/sites.inc.php +++ b/interface/lib/classes/remote.d/sites.inc.php @@ -1017,6 +1017,56 @@ class remoting_sites extends remoting { return $app->quota_lib->get_databasequota_data($client_id, false); } + // ---------------------------------------------------------------------------------------------------------- + + //* Get record details + public function sites_webdav_user_get($session_id, $primary_id) + { + global $app; + + if(!$this->checkPerm($session_id, 'sites_webdav_user_get')) { + throw new SoapFault('permission_denied', 'You do not have the permissions to access this function.'); + return false; + } + $app->uses('remoting_lib'); + $app->remoting_lib->loadFormDef('../sites/form/webdav_user.tform.php'); + return $app->remoting_lib->getDataRecord($primary_id); + } + + //* Add a record + public function sites_webdav_user_add($session_id, $client_id, $params) + { + if(!$this->checkPerm($session_id, 'sites_webdav_user_add')) { + throw new SoapFault('permission_denied', 'You do not have the permissions to access this function.'); + return false; + } + return $this->insertQuery('../sites/form/webdav_user.tform.php', $client_id, $params); + } + + //* Update a record + public function sites_webdav_user_update($session_id, $client_id, $primary_id, $params) + { + if(!$this->checkPerm($session_id, 'sites_webdav_user_update')) { + throw new SoapFault('permission_denied', 'You do not have the permissions to access this function.'); + return false; + } + $affected_rows = $this->updateQuery('../sites/form/webdav_user.tform.php', $client_id, $primary_id, $params); + return $affected_rows; + } + + //* Delete a record + public function sites_webdav_user_delete($session_id, $primary_id) + { + global $app; + if(!$this->checkPerm($session_id, 'sites_webdav_user_delete')) { + throw new SoapFault('permission_denied', 'You do not have the permissions to access this function.'); + return false; + } + + $affected_rows = $this->deleteQuery('../sites/form/webdav_user.tform.php', $primary_id); + return $affected_rows; + } + } diff --git a/interface/web/sites/lib/remote.conf.php b/interface/web/sites/lib/remote.conf.php index a9ef3236b..19a48e3ca 100644 --- a/interface/web/sites/lib/remote.conf.php +++ b/interface/web/sites/lib/remote.conf.php @@ -9,4 +9,5 @@ $function_list['sites_web_domain_backup'] = 'Sites Backup functions'; $function_list['sites_web_aliasdomain_get,sites_web_aliasdomain_add,sites_web_aliasdomain_update,sites_web_aliasdomain_delete'] = 'Sites Aliasdomain functions'; $function_list['sites_web_subdomain_get,sites_web_subdomain_add,sites_web_subdomain_update,sites_web_subdomain_delete'] = 'Sites Subdomain functions'; $function_list['sites_aps_update_package_list,sites_aps_available_packages_list,sites_aps_change_package_status,sites_aps_install_package,sites_aps_get_package_details,sites_aps_get_package_file,sites_aps_get_package_settings,sites_aps_instance_get,sites_aps_instance_delete'] = 'Sites APS functions'; +$function_list['sites_webdav_user_get,sites_webdav_user_add,sites_webdav_user_update,sites_webdav_user_delete'] = 'Sites WebDAV-User functions'; ?> -- GitLab From 80e4c48f17672b3791d744ce38a17c43ea61f7a1 Mon Sep 17 00:00:00 2001 From: Till Brehm Date: Mon, 2 Sep 2019 14:25:15 +0200 Subject: [PATCH 160/215] #5383 Updated Czech translation --- interface/lib/lang/cz.lng | 2 +- .../web/admin/lib/lang/cz_server_php.lng | 2 +- .../web/admin/lib/lang/cz_server_php_list.lng | 2 +- .../web/admin/lib/lang/cz_system_config.lng | 16 +++---- .../web/client/lib/lang/cz_clients_list.lng | 6 +-- .../lib/lang/cz_dashlet_invoices.lng | 2 +- .../dashboard/lib/lang/cz_dashlet_limits.lng | 8 ++-- interface/web/dns/lib/lang/cz_dns_caa.lng | 32 +++++++------- interface/web/dns/lib/lang/cz_dns_dmarc.lng | 4 +- interface/web/dns/lib/lang/cz_dns_ds.lng | 4 +- interface/web/dns/lib/lang/cz_dns_import.lng | 2 +- interface/web/dns/lib/lang/cz_dns_loc.lng | 4 +- interface/web/dns/lib/lang/cz_dns_soa.lng | 2 +- interface/web/dns/lib/lang/cz_dns_spf.lng | 4 +- interface/web/dns/lib/lang/cz_dns_tlsa.lng | 4 +- interface/web/dns/lib/lang/cz_dns_wizard.lng | 2 +- .../web/mail/lib/lang/cz_mail_backup_list.lng | 12 ++--- interface/web/monitor/lib/lang/cz.lng | 2 +- .../lib/lang/cz_dataloghistory_list.lng | 12 ++--- .../lib/lang/cz_dataloghistory_undo.lng | 4 +- .../lib/lang/cz_dataloghistory_view.lng | 44 +++++++++---------- .../sites/lib/lang/cz_aps_instances_list.lng | 2 +- .../web/sites/lib/lang/cz_web_aliasdomain.lng | 2 +- .../web/sites/lib/lang/cz_web_backup_list.lng | 4 +- .../web/sites/lib/lang/cz_web_childdomain.lng | 2 +- .../sites/lib/lang/cz_web_vhost_domain.lng | 10 ++--- .../sites/lib/lang/cz_web_vhost_subdomain.lng | 2 +- 27 files changed, 96 insertions(+), 96 deletions(-) diff --git a/interface/lib/lang/cz.lng b/interface/lib/lang/cz.lng index 6d95c1249..fdf9053da 100644 --- a/interface/lib/lang/cz.lng +++ b/interface/lib/lang/cz.lng @@ -33,7 +33,7 @@ $wb['top_menu_monitor'] = 'Monitor'; $wb['top_menu_sites'] = 'Stránky'; $wb['top_menu_dns'] = 'DNS'; $wb['top_menu_tools'] = 'Nástroje'; -$wb['top_menu_help'] = 'Pomoc'; +$wb['top_menu_help'] = 'Podpora'; $wb['toolsarea_head_txt'] = 'Nástroje'; $wb['top_menu_billing'] = 'Fakturace'; $wb['top_menu_domain'] = 'Doména'; diff --git a/interface/web/admin/lib/lang/cz_server_php.lng b/interface/web/admin/lib/lang/cz_server_php.lng index 615431c35..e32687034 100644 --- a/interface/web/admin/lib/lang/cz_server_php.lng +++ b/interface/web/admin/lib/lang/cz_server_php.lng @@ -13,5 +13,5 @@ $wb['php_fastcgi_ini_dir_txt'] = 'Cesta k php.ini adresáři'; $wb['php_fpm_init_script_txt'] = 'Cesta k PHP-FPM init script'; $wb['php_fpm_ini_dir_txt'] = 'Cesta k php.ini adresáři'; $wb['php_fpm_pool_dir_txt'] = 'Cesta k PHP-FPM pool adresáři'; -$wb['active_txt'] = 'Active'; +$wb['active_txt'] = 'Aktivní'; ?> diff --git a/interface/web/admin/lib/lang/cz_server_php_list.lng b/interface/web/admin/lib/lang/cz_server_php_list.lng index f79d48219..abe4f750f 100644 --- a/interface/web/admin/lib/lang/cz_server_php_list.lng +++ b/interface/web/admin/lib/lang/cz_server_php_list.lng @@ -4,5 +4,5 @@ $wb['server_id_txt'] = 'Server'; $wb['add_new_record_txt'] = 'Přidat verzi PHP'; $wb['client_id_txt'] = 'Klient'; $wb['name_txt'] = 'Verze PHP'; -$wb['active_txt'] = 'Active'; +$wb['active_txt'] = 'Aktivní'; ?> diff --git a/interface/web/admin/lib/lang/cz_system_config.lng b/interface/web/admin/lib/lang/cz_system_config.lng index a0abf2641..3660e1b68 100644 --- a/interface/web/admin/lib/lang/cz_system_config.lng +++ b/interface/web/admin/lib/lang/cz_system_config.lng @@ -77,17 +77,17 @@ $wb['default_dnsserver_txt'] = 'Výchozí DNS server'; $wb['default_slave_dnsserver_txt'] = 'Výchozí sekundární DNS server'; $wb['default_dbserver_txt'] = 'Výchozí databázový server'; $wb['company_name_txt'] = 'Název společnosti v panelu (listu) webového prohlížeče'; -$wb['reseller_can_use_options_txt'] = 'Reseller can use the option-tab for websites'; +$wb['reseller_can_use_options_txt'] = 'Distributor (prodejce) může použít kartu možností pro weby.'; $wb['custom_login_text_txt'] = 'Vlastní text na přihlašovací stránce'; $wb['custom_login_link_txt'] = 'Vlastní odkaz (URL) na přihlašovací stránce (vlastní text)'; $wb['login_link_error_regex'] = 'Neplatný formát URL pro vlastní odkaz na přihlašovací stránce'; -$wb['ca_name_txt'] = 'Name'; -$wb['ca_issue_txt'] = 'Issue'; -$wb['ca_wildcard_txt'] = 'Use Wildcard'; -$wb['ca_critical_txt'] = 'Strict Check'; +$wb['ca_name_txt'] = 'Název vydavatele'; +$wb['ca_issue_txt'] = 'Doména vydavatele'; +$wb['ca_wildcard_txt'] = 'Použít Wildcard (*)'; +$wb['ca_critical_txt'] = 'Přísná kontrola'; $wb['ca_iodef_txt'] = 'iodef'; -$wb['active_txt'] = 'Aktive'; -$wb['btn_save_txt'] = 'Save'; -$wb['btn_cancel_txt'] = 'Cancel'; +$wb['active_txt'] = 'Aktivní'; +$wb['btn_save_txt'] = 'Uložit'; +$wb['btn_cancel_txt'] = 'Zrušit'; $wb['web_php_options_txt'] = 'PHP Handler (Apache only)'; ?> diff --git a/interface/web/client/lib/lang/cz_clients_list.lng b/interface/web/client/lib/lang/cz_clients_list.lng index 8cdabf269..270da3674 100644 --- a/interface/web/client/lib/lang/cz_clients_list.lng +++ b/interface/web/client/lib/lang/cz_clients_list.lng @@ -8,7 +8,7 @@ $wb['country_txt'] = 'Stát'; $wb['add_new_record_txt'] = 'Vytvořit klienta'; $wb['username_txt'] = 'Uživatelské jméno'; $wb['customer_no_txt'] = 'Zákaznické číslo'; -$wb['locked_txt'] = 'Locked'; -$wb['yes_txt'] = 'Yes'; -$wb['no_txt'] = 'No'; +$wb['locked_txt'] = 'Zamčené'; +$wb['yes_txt'] = 'Ano'; +$wb['no_txt'] = 'Ne'; ?> diff --git a/interface/web/dashboard/lib/lang/cz_dashlet_invoices.lng b/interface/web/dashboard/lib/lang/cz_dashlet_invoices.lng index 9666ed2b0..ab093825c 100644 --- a/interface/web/dashboard/lib/lang/cz_dashlet_invoices.lng +++ b/interface/web/dashboard/lib/lang/cz_dashlet_invoices.lng @@ -3,7 +3,7 @@ $wb['invoices_txt'] = 'Invoices'; $wb['invoice_no_txt'] = 'Invoice No.'; $wb['amount_txt'] = 'Amount'; $wb['date_txt'] = 'Datum'; -$wb['invoice_status_txt'] = 'Status'; +$wb['invoice_status_txt'] = 'Stav'; $wb['no_invoices_txt'] = 'No Invoices available.'; $wb['paid_txt'] = 'Paid'; $wb['unpaid_txt'] = 'Unpaid'; diff --git a/interface/web/dashboard/lib/lang/cz_dashlet_limits.lng b/interface/web/dashboard/lib/lang/cz_dashlet_limits.lng index d322823e6..a7aecc4a5 100644 --- a/interface/web/dashboard/lib/lang/cz_dashlet_limits.lng +++ b/interface/web/dashboard/lib/lang/cz_dashlet_limits.lng @@ -1,5 +1,5 @@ diff --git a/interface/web/dns/lib/lang/cz_dns_caa.lng b/interface/web/dns/lib/lang/cz_dns_caa.lng index 973a97ceb..f4ba690c5 100644 --- a/interface/web/dns/lib/lang/cz_dns_caa.lng +++ b/interface/web/dns/lib/lang/cz_dns_caa.lng @@ -1,19 +1,19 @@ diff --git a/interface/web/dns/lib/lang/cz_dns_dmarc.lng b/interface/web/dns/lib/lang/cz_dns_dmarc.lng index c5952552a..c4c3bb4f2 100644 --- a/interface/web/dns/lib/lang/cz_dns_dmarc.lng +++ b/interface/web/dns/lib/lang/cz_dns_dmarc.lng @@ -44,7 +44,7 @@ $wb['dmarc_more_spf_txt'] = 'More than one active SPF Record'; $wb['dmarc_invalid_email_txt'] = 'Neplatný e-mail'; $wb['dmarc_empty_txt'] = 'DMARC Record empty - specify at least one option'; $wb['record_exists_txt'] = 'DNS záznam již existuje'; -$wb['limit_dns_record_txt'] = 'The max. number of DNS records for your account is reached.'; -$wb['no_zone_perm'] = 'You do not have the permission to add a record to this DNS zone.'; +$wb['limit_dns_record_txt'] = 'Byl dosažen max. počet DNS záznamů pro váš účet.'; +$wb['no_zone_perm'] = 'Nemáte oprávnění přidat záznam do této zóny DNS.'; $wb['ttl_range_error'] = 'Min. TTL doba je 60 sekund.'; ?> diff --git a/interface/web/dns/lib/lang/cz_dns_ds.lng b/interface/web/dns/lib/lang/cz_dns_ds.lng index 3d25095d3..f7dd779ef 100644 --- a/interface/web/dns/lib/lang/cz_dns_ds.lng +++ b/interface/web/dns/lib/lang/cz_dns_ds.lng @@ -6,8 +6,8 @@ $wb['type_txt'] = 'Typ'; $wb['data_txt'] = 'Data'; $wb['ttl_txt'] = 'TTL'; $wb['active_txt'] = 'Aktivní'; -$wb['limit_dns_record_txt'] = 'The max. number of DNS records for your account is reached.'; -$wb['no_zone_perm'] = 'You do not have the permission to add a record to this DNS zone.'; +$wb['limit_dns_record_txt'] = 'Byl dosažen max. počet DNS záznamů pro váš účet.'; +$wb['no_zone_perm'] = 'Nemáte oprávnění přidat záznam do této zóny DNS.'; $wb['name_error_empty'] = 'Název hostitele je prázdný.'; $wb['name_error_regex'] = 'Název hostitele má chybný formát.'; $wb['data_error_empty'] = 'Text empty'; diff --git a/interface/web/dns/lib/lang/cz_dns_import.lng b/interface/web/dns/lib/lang/cz_dns_import.lng index 3b41baa1b..fc90d3cf3 100644 --- a/interface/web/dns/lib/lang/cz_dns_import.lng +++ b/interface/web/dns/lib/lang/cz_dns_import.lng @@ -12,5 +12,5 @@ $wb['title'] = 'Importovat soubory zón'; $wb['no_file_uploaded_error'] = 'Nelze odeslat DNS zonový soubor'; $wb['zone_file_import_txt'] = 'Importovat DNS zonový soubor'; $wb['error_no_server_id'] = 'No server provided.'; -$wb['error_not_allowed_server_id'] = 'The selected server is not allowed for this account.'; +$wb['error_not_allowed_server_id'] = 'Vybraný server není pro tento účet povolen.'; ?> diff --git a/interface/web/dns/lib/lang/cz_dns_loc.lng b/interface/web/dns/lib/lang/cz_dns_loc.lng index 90ddd3533..4ed901815 100644 --- a/interface/web/dns/lib/lang/cz_dns_loc.lng +++ b/interface/web/dns/lib/lang/cz_dns_loc.lng @@ -6,8 +6,8 @@ $wb['type_txt'] = 'Typ'; $wb['data_txt'] = 'Data'; $wb['ttl_txt'] = 'TTL'; $wb['active_txt'] = 'Aktivní'; -$wb['limit_dns_record_txt'] = 'The max. number of DNS records for your account is reached.'; -$wb['no_zone_perm'] = 'You do not have the permission to add a record to this DNS zone.'; +$wb['limit_dns_record_txt'] = 'Byl dosažen max. počet DNS záznamů pro váš účet.'; +$wb['no_zone_perm'] = 'Nemáte oprávnění přidat záznam do této zóny DNS.'; $wb['name_error_empty'] = 'Název hostitele je prázdný.'; $wb['name_error_regex'] = 'Název hostitele má chybný formát.'; $wb['data_error_empty'] = 'Text empty'; diff --git a/interface/web/dns/lib/lang/cz_dns_soa.lng b/interface/web/dns/lib/lang/cz_dns_soa.lng index 7dfbb0e91..5e4a0c2bb 100644 --- a/interface/web/dns/lib/lang/cz_dns_soa.lng +++ b/interface/web/dns/lib/lang/cz_dns_soa.lng @@ -38,7 +38,7 @@ $wb['xfer_error_regex'] = 'Také oznámí: Prosím, použijte IP adresu.'; $wb['dnssec_info_txt'] = 'DNSSEC DS-Data for registry'; $wb['dnssec_wanted_txt'] = 'Podepsat zónu (DNSSEC)'; $wb['dnssec_wanted_info'] = 'Když deaktivujete DNSSEC klíče nebudou odstraněny, ale DNS záznamy (zóna) již nebudou propagovány v podepsaném formátu. Pokud používáte PowerDNS, budou klíče WILL vymazány!'; -$wb['error_not_allowed_server_id'] = 'The selected server is not allowed for this account.'; +$wb['error_not_allowed_server_id'] = 'Vybraný server není pro tento účet povolen.'; $wb['soa_cannot_be_changed_txt'] = 'Die Zone (SOA) kann nicht verändert werden. Bitte kontaktieren Sie ihren Administrator, um die Zone zu ändern.'; $wb['configuration_error_txt'] = 'CONFIGURATION ERROR'; ?> diff --git a/interface/web/dns/lib/lang/cz_dns_spf.lng b/interface/web/dns/lib/lang/cz_dns_spf.lng index 755e01f11..3086454c3 100644 --- a/interface/web/dns/lib/lang/cz_dns_spf.lng +++ b/interface/web/dns/lib/lang/cz_dns_spf.lng @@ -19,7 +19,7 @@ $wb['spf_invalid_domain_txt'] = 'Neplatné doménové jméno'; $wb['ttl_txt'] = 'TTL'; $wb['active_txt'] = 'Aktivní'; $wb['record_exists_txt'] = 'DNS záznam již existuje'; -$wb['limit_dns_record_txt'] = 'The max. number of DNS records for your account is reached.'; -$wb['no_zone_perm'] = 'You do not have the permission to add a record to this DNS zone.'; +$wb['limit_dns_record_txt'] = 'Byl dosažen max. počet DNS záznamů pro váš účet.'; +$wb['no_zone_perm'] = 'Nemáte oprávnění přidat záznam do této zóny DNS.'; $wb['ttl_range_error'] = 'Min. TTL doba je 60 sekund.'; ?> diff --git a/interface/web/dns/lib/lang/cz_dns_tlsa.lng b/interface/web/dns/lib/lang/cz_dns_tlsa.lng index b92da1d45..3891ad37c 100644 --- a/interface/web/dns/lib/lang/cz_dns_tlsa.lng +++ b/interface/web/dns/lib/lang/cz_dns_tlsa.lng @@ -6,8 +6,8 @@ $wb['type_txt'] = 'Typ'; $wb['data_txt'] = 'TLSA-Data'; $wb['ttl_txt'] = 'TTL'; $wb['active_txt'] = 'Aktivní'; -$wb['limit_dns_record_txt'] = 'The max. number of DNS records for your account is reached.'; -$wb['no_zone_perm'] = 'You do not have the permission to add a record to this DNS zone.'; +$wb['limit_dns_record_txt'] = 'Byl dosažen max. počet DNS záznamů pro váš účet.'; +$wb['no_zone_perm'] = 'Nemáte oprávnění přidat záznam do této zóny DNS.'; $wb['name_error_empty'] = 'Název hostitele je prázdný.'; $wb['name_error_regex'] = 'The hostname has the wrong format. Correct: _<port>._(tcp|udp).<hostname>'; $wb['data_error_empty'] = 'TLSA-Data empty'; diff --git a/interface/web/dns/lib/lang/cz_dns_wizard.lng b/interface/web/dns/lib/lang/cz_dns_wizard.lng index 548b90d70..a4a1ddf53 100644 --- a/interface/web/dns/lib/lang/cz_dns_wizard.lng +++ b/interface/web/dns/lib/lang/cz_dns_wizard.lng @@ -39,7 +39,7 @@ $wb['list_head_txt'] = 'Průvodce vytvořením DNS zóny'; $wb['list_desc_txt'] = 'Vytvoření DNS zóny pomocí průvodce'; $wb['dkim_txt'] = 'DKIM povolen'; $wb['error_no_server_id'] = 'No server provided.'; -$wb['error_not_allowed_server_id'] = 'The selected server is not allowed for this account.'; +$wb['error_not_allowed_server_id'] = 'Vybraný server není pro tento účet povolen.'; $wb['dnssec_txt'] = 'Podepsat zónu (DNSSEC)'; $wb['limit_dns_zone_txt'] = 'The max. number of DNS zones for your account is reached.'; ?> diff --git a/interface/web/mail/lib/lang/cz_mail_backup_list.lng b/interface/web/mail/lib/lang/cz_mail_backup_list.lng index 91ea1ad49..d4f941a4c 100644 --- a/interface/web/mail/lib/lang/cz_mail_backup_list.lng +++ b/interface/web/mail/lib/lang/cz_mail_backup_list.lng @@ -1,16 +1,16 @@ diff --git a/interface/web/monitor/lib/lang/cz.lng b/interface/web/monitor/lib/lang/cz.lng index 9e054aacf..be2d9eadb 100644 --- a/interface/web/monitor/lib/lang/cz.lng +++ b/interface/web/monitor/lib/lang/cz.lng @@ -161,5 +161,5 @@ $wb['monitor_database_client_txt'] = 'Klient'; $wb['monitor_database_domain_txt'] = 'Doména'; $wb['monitor_services_mongodb_txt'] = 'MongoDB-Server:'; $wb['monitor_title_mongodb_txt'] = 'MongoDB Log'; -$wb['Show Data Log History'] = 'Show Data Log History'; +$wb['Show Data Log History'] = 'Zobrazit historii datového logu'; ?> diff --git a/interface/web/monitor/lib/lang/cz_dataloghistory_list.lng b/interface/web/monitor/lib/lang/cz_dataloghistory_list.lng index 9f9afd634..ce89af1a8 100644 --- a/interface/web/monitor/lib/lang/cz_dataloghistory_list.lng +++ b/interface/web/monitor/lib/lang/cz_dataloghistory_list.lng @@ -1,8 +1,8 @@ diff --git a/interface/web/monitor/lib/lang/cz_dataloghistory_undo.lng b/interface/web/monitor/lib/lang/cz_dataloghistory_undo.lng index 0e040a3e7..0d25364ec 100644 --- a/interface/web/monitor/lib/lang/cz_dataloghistory_undo.lng +++ b/interface/web/monitor/lib/lang/cz_dataloghistory_undo.lng @@ -1,7 +1,7 @@ diff --git a/interface/web/monitor/lib/lang/cz_dataloghistory_view.lng b/interface/web/monitor/lib/lang/cz_dataloghistory_view.lng index df9ddd286..1f20cf12d 100644 --- a/interface/web/monitor/lib/lang/cz_dataloghistory_view.lng +++ b/interface/web/monitor/lib/lang/cz_dataloghistory_view.lng @@ -1,26 +1,26 @@ diff --git a/interface/web/sites/lib/lang/cz_aps_instances_list.lng b/interface/web/sites/lib/lang/cz_aps_instances_list.lng index 8d712878d..db4494af0 100644 --- a/interface/web/sites/lib/lang/cz_aps_instances_list.lng +++ b/interface/web/sites/lib/lang/cz_aps_instances_list.lng @@ -3,7 +3,7 @@ $wb['list_head_txt'] = 'Nainstalované balíčky'; $wb['name_txt'] = 'Jméno'; $wb['version_txt'] = 'Verze'; $wb['customer_txt'] = 'Klient'; -$wb['status_txt'] = 'Status'; +$wb['status_txt'] = 'Stav'; $wb['install_location_txt'] = 'Umístění instalace'; $wb['pkg_delete_confirmation'] = 'Opravdu chcete smazat tuto instalaci ?'; $wb['filter_txt'] = 'Hledat'; diff --git a/interface/web/sites/lib/lang/cz_web_aliasdomain.lng b/interface/web/sites/lib/lang/cz_web_aliasdomain.lng index 57b920156..0f8d3e5de 100644 --- a/interface/web/sites/lib/lang/cz_web_aliasdomain.lng +++ b/interface/web/sites/lib/lang/cz_web_aliasdomain.lng @@ -95,7 +95,7 @@ $wb['pm_min_spare_servers_error_regex'] = 'PHP-FPM pm.min_spare_servers must be $wb['pm_max_spare_servers_error_regex'] = 'PHP-FPM pm.max_spare_servers must be a positive integer value.'; $wb['hd_quota_error_regex'] = 'Harddisk quota is invalid.'; $wb['traffic_quota_error_regex'] = 'Traffic quota is invalid.'; -$wb['fastcgi_php_version_txt'] = 'PHP Version'; +$wb['fastcgi_php_version_txt'] = 'PHP Verze'; $wb['pm_txt'] = 'PHP-FPM Process Manager'; $wb['pm_process_idle_timeout_txt'] = 'PHP-FPM pm.process_idle_timeout'; $wb['pm_max_requests_txt'] = 'PHP-FPM pm.max_requests'; diff --git a/interface/web/sites/lib/lang/cz_web_backup_list.lng b/interface/web/sites/lib/lang/cz_web_backup_list.lng index 9674e6197..d30e41d96 100644 --- a/interface/web/sites/lib/lang/cz_web_backup_list.lng +++ b/interface/web/sites/lib/lang/cz_web_backup_list.lng @@ -1,5 +1,5 @@ diff --git a/interface/web/sites/lib/lang/cz_web_childdomain.lng b/interface/web/sites/lib/lang/cz_web_childdomain.lng index e39dfc12e..5a5091c89 100644 --- a/interface/web/sites/lib/lang/cz_web_childdomain.lng +++ b/interface/web/sites/lib/lang/cz_web_childdomain.lng @@ -100,7 +100,7 @@ $wb['pm_min_spare_servers_error_regex'] = 'PHP-FPM pm.min_spare_servers must be $wb['pm_max_spare_servers_error_regex'] = 'PHP-FPM pm.max_spare_servers must be a positive integer value.'; $wb['hd_quota_error_regex'] = 'Harddisk quota is invalid.'; $wb['traffic_quota_error_regex'] = 'Traffic quota is invalid.'; -$wb['fastcgi_php_version_txt'] = 'PHP Version'; +$wb['fastcgi_php_version_txt'] = 'PHP Verze'; $wb['pm_txt'] = 'PHP-FPM Process Manager'; $wb['pm_process_idle_timeout_txt'] = 'PHP-FPM pm.process_idle_timeout'; $wb['pm_max_requests_txt'] = 'PHP-FPM pm.max_requests'; diff --git a/interface/web/sites/lib/lang/cz_web_vhost_domain.lng b/interface/web/sites/lib/lang/cz_web_vhost_domain.lng index 269b6b586..deaa3269c 100644 --- a/interface/web/sites/lib/lang/cz_web_vhost_domain.lng +++ b/interface/web/sites/lib/lang/cz_web_vhost_domain.lng @@ -130,13 +130,13 @@ $wb['variables_txt'] = 'Proměnné'; $wb['added_by_txt'] = 'Kdo vytvořil účet'; $wb['added_date_txt'] = 'Datum vytvoření účtu'; $wb['backup_excludes_txt'] = 'Vyloučené adresáře'; -$wb['backup_excludes_note_txt'] = '(Separate multiple directories with commas. Example: web/cache/*,web/backup)'; -$wb['backup_excludes_error_regex'] = 'The excluded directories contain invalid characters.'; -$wb['server_chosen_not_ok'] = 'The selected server is not allowed for this account.'; -$wb['subdomain_error_empty'] = 'The subdommain field is empty or contains invalid characters.'; +$wb['backup_excludes_note_txt'] = '(Oddělte více adresářů čárkami. Příklad: web/cache/*,web/backup)'; +$wb['backup_excludes_error_regex'] = 'Vyloučené adresáře obsahují neplatné znaky.'; +$wb['server_chosen_not_ok'] = 'Vybraný server není pro tento účet povolen.'; +$wb['subdomain_error_empty'] = 'Pole subdomény je prázdné nebo obsahuje neplatné znaky.'; $wb['btn_save_txt'] = 'Uložit'; $wb['btn_cancel_txt'] = 'Zrušit'; -$wb['enable_spdy_txt'] = 'Enable SPDY/HTTP2'; +$wb['enable_spdy_txt'] = 'Povolit SPDY / HTTP2'; $wb['load_client_data_txt'] = 'Nahrát údaje z podrobností registrovaného klienta'; $wb['load_my_data_txt'] = 'Load my contact details'; $wb['reset_client_data_txt'] = 'Obnovit údaje (resetovat)'; diff --git a/interface/web/sites/lib/lang/cz_web_vhost_subdomain.lng b/interface/web/sites/lib/lang/cz_web_vhost_subdomain.lng index 2b6f3c77d..268368c13 100644 --- a/interface/web/sites/lib/lang/cz_web_vhost_subdomain.lng +++ b/interface/web/sites/lib/lang/cz_web_vhost_subdomain.lng @@ -123,7 +123,7 @@ $wb['variables_txt'] = 'Proměnné'; $wb['backup_excludes_txt'] = 'Vyloučené adresáře'; $wb['backup_excludes_note_txt'] = '(Oddělte více adresářů čárkami. Vzor: web/cache/*,web/backup)'; $wb['backup_excludes_error_regex'] = 'Vyloučené adresáře obsahují neplatné znaky.'; -$wb['subdomain_error_empty'] = 'The subdommain field is empty or contains invalid characters.'; +$wb['subdomain_error_empty'] = 'Pole subdomény je prázdné nebo obsahuje neplatné znaky.'; $wb['http_port_txt'] = 'HTTP Port'; $wb['https_port_txt'] = 'HTTPS Port'; $wb['http_port_error_regex'] = 'HTTP Port invalid.'; -- GitLab From 90f3c771c5b42c904d9b15f15f7dbcce34fe5430 Mon Sep 17 00:00:00 2001 From: Marius Burkard Date: Mon, 2 Sep 2019 14:53:34 +0200 Subject: [PATCH 161/215] - fixed rspamd handling of user settings files - removed separate rspamd greylisting setting for policy and respect mail user/alias/forward/catchall setting for greylisting, fixes #5379 --- interface/web/admin/server_config_edit.php | 14 +- .../web/mail/form/spamfilter_policy.tform.php | 6 - interface/web/mail/spamfilter_policy_edit.php | 3 - .../mail/templates/spamfilter_rspamd_edit.htm | 6 - server/conf/rspamd_users.inc.conf.master | 56 +++-- .../plugins-available/rspamd_plugin.inc.php | 237 ++++++++++++------ 6 files changed, 208 insertions(+), 114 deletions(-) diff --git a/interface/web/admin/server_config_edit.php b/interface/web/admin/server_config_edit.php index 8a7cd770a..f311f6b1a 100644 --- a/interface/web/admin/server_config_edit.php +++ b/interface/web/admin/server_config_edit.php @@ -174,7 +174,7 @@ class page_action extends tform_actions { } } - $mail_users = $app->db->queryAllRecords("SELECT * FROM mail_user WHERE server_id = ? AND (autoresponder = 'y' OR move_junk = 'y')", intval($this->id)); + $mail_users = $app->db->queryAllRecords("SELECT * FROM mail_user WHERE server_id = ?", intval($this->id)); if(is_array($mail_users) && !empty($mail_users)){ foreach($mail_users as $mail_user){ if($mail_user['autoresponder'] == 'y'){ @@ -182,13 +182,21 @@ class page_action extends tform_actions { $app->db->datalogUpdate('mail_user', $mail_user, 'mailuser_id', $mail_user["mailuser_id"], true); $mail_user['autoresponder'] = 'y'; $app->db->datalogUpdate('mail_user', $mail_user, 'mailuser_id', $mail_user["mailuser_id"], true); - } else { + } elseif($mail_user['move_junk'] == 'y') { $mail_user['move_junk'] = 'n'; $app->db->datalogUpdate('mail_user', $mail_user, 'mailuser_id', $mail_user["mailuser_id"], true); $mail_user['move_junk'] = 'y'; $app->db->datalogUpdate('mail_user', $mail_user, 'mailuser_id', $mail_user["mailuser_id"], true); + } else { + $app->db->datalogUpdate('mail_user', $mail_user, 'mailuser_id', $mail_user["mailuser_id"], true); } - + } + } + + $mail_forwards = $app->db->queryAllRecords("SELECT * FROM mail_forwarding WHERE server_id = ?", intval($this->id)); + if(is_array($mail_forwards) && !empty($mail_forwards)){ + foreach($mail_forwards as $mail_forward){ + $app->db->datalogUpdate('mail_forwarding', $mail_forward, 'forwarding_id', $mail_forward["forwarding_id"], true); } } } diff --git a/interface/web/mail/form/spamfilter_policy.tform.php b/interface/web/mail/form/spamfilter_policy.tform.php index 2205dbb65..57aa4f2bf 100644 --- a/interface/web/mail/form/spamfilter_policy.tform.php +++ b/interface/web/mail/form/spamfilter_policy.tform.php @@ -471,12 +471,6 @@ $form["tabs"]['rspamd'] = array ( //################################# // Begin Datatable fields //################################# - 'rspamd_greylisting' => array ( - 'datatype' => 'VARCHAR', - 'formtype' => 'CHECKBOX', - 'default' => 'y', - 'value' => array(0 => 'n', 1 => 'y') - ), 'rspamd_spam_greylisting_level' => array ( 'datatype' => 'DOUBLE', 'formtype' => 'TEXT', diff --git a/interface/web/mail/spamfilter_policy_edit.php b/interface/web/mail/spamfilter_policy_edit.php index ffc0818ff..8226ae604 100644 --- a/interface/web/mail/spamfilter_policy_edit.php +++ b/interface/web/mail/spamfilter_policy_edit.php @@ -92,9 +92,6 @@ class page_action extends tform_actions { global $app; $record_has_changed = false; - if(isset($this->dataRecord['rspamd_spam_greylisting_level']) && !isset($this->dataRecord['rspamd_greylisting'])) { - $this->dataRecord['rspamd_greylisting'] = 'n'; - } foreach($this->dataRecord as $key => $val) { if(isset($this->oldDataRecord[$key]) && @$this->oldDataRecord[$key] != $val) { // Record has changed diff --git a/interface/web/mail/templates/spamfilter_rspamd_edit.htm b/interface/web/mail/templates/spamfilter_rspamd_edit.htm index 73472a876..2f8ea0f45 100644 --- a/interface/web/mail/templates/spamfilter_rspamd_edit.htm +++ b/interface/web/mail/templates/spamfilter_rspamd_edit.htm @@ -3,12 +3,6 @@

-
- -
- {tmpl_var name='rspamd_greylisting'} -
-
diff --git a/server/conf/rspamd_users.inc.conf.master b/server/conf/rspamd_users.inc.conf.master index 43890e813..96ba9f083 100644 --- a/server/conf/rspamd_users.inc.conf.master +++ b/server/conf/rspamd_users.inc.conf.master @@ -1,39 +1,55 @@ -spamfilter_users- { + { priority = ; - rcptfrom = ""; - - want_spam = yes; + + from = ""; + + + rcpt = ""; - + + + + want_spam = yes; + apply { CLAM_VIRUS = 1999.0; JUST_EICAR = 1999.0; actions { reject = null; + + + greylist = ; + + greylist = null; + + } } - - + + apply { + CLAM_VIRUS = -999.0; JUST_EICAR = -999.0; - actions { - greylist = ; - "rewrite subject" = ; - "add header" = ; - reject = ; - } - } - - - apply { + CLAM_VIRUS = ; JUST_EICAR = ; + actions { - greylist = ; - "rewrite subject" = ; - "add header" = ; + + "rewrite subject" = ; + + + "add header" = ; + reject = ; + + + greylist = ; + + greylist = null; + + } } diff --git a/server/plugins-available/rspamd_plugin.inc.php b/server/plugins-available/rspamd_plugin.inc.php index 7fd3ebf77..70885056d 100644 --- a/server/plugins-available/rspamd_plugin.inc.php +++ b/server/plugins-available/rspamd_plugin.inc.php @@ -33,7 +33,7 @@ class rspamd_plugin { var $plugin_name = 'rspamd_plugin'; var $class_name = 'rspamd_plugin'; var $users_config_dir = '/etc/rspamd/local.d/users/'; - + //* This function is called during ispconfig installation to determine // if a symlink shall be created for this plugin. function onInstall() { @@ -57,109 +57,195 @@ class rspamd_plugin { Register for the events */ - //* spamfilter_users - $app->plugins->registerEvent('spamfilter_users_insert', $this->plugin_name, 'spamfilter_users_insert'); - $app->plugins->registerEvent('spamfilter_users_update', $this->plugin_name, 'spamfilter_users_update'); - $app->plugins->registerEvent('spamfilter_users_delete', $this->plugin_name, 'spamfilter_users_delete'); - //* spamfilter_wblist $app->plugins->registerEvent('spamfilter_wblist_insert', $this->plugin_name, 'spamfilter_wblist_insert'); $app->plugins->registerEvent('spamfilter_wblist_update', $this->plugin_name, 'spamfilter_wblist_update'); $app->plugins->registerEvent('spamfilter_wblist_delete', $this->plugin_name, 'spamfilter_wblist_delete'); + //* global mail access filters + $app->plugins->registerEvent('mail_access_insert', $this->plugin_name, 'spamfilter_wblist_insert'); + $app->plugins->registerEvent('mail_access_update', $this->plugin_name, 'spamfilter_wblist_update'); + $app->plugins->registerEvent('mail_access_delete', $this->plugin_name, 'spamfilter_wblist_delete'); + //* server ip $app->plugins->registerEvent('server_ip_insert', $this->plugin_name, 'server_ip'); $app->plugins->registerEvent('server_ip_update', $this->plugin_name, 'server_ip'); $app->plugins->registerEvent('server_ip_delete', $this->plugin_name, 'server_ip'); - //* global mail access filters - $app->plugins->registerEvent('mail_access_insert', $this->plugin_name, 'spamfilter_wblist_insert'); - $app->plugins->registerEvent('mail_access_update', $this->plugin_name, 'spamfilter_wblist_update'); - $app->plugins->registerEvent('mail_access_delete', $this->plugin_name, 'spamfilter_wblist_delete'); - } + //* spamfilter_users + $app->plugins->registerEvent('spamfilter_users_insert', $this->plugin_name, 'user_settings_update'); + $app->plugins->registerEvent('spamfilter_users_update', $this->plugin_name, 'user_settings_update'); + $app->plugins->registerEvent('spamfilter_users_delete', $this->plugin_name, 'user_settings_update'); - function spamfilter_users_insert($event_name, $data) { - $this->action = 'insert'; - // just run the spamfilter_users_update function - $this->spamfilter_users_update($event_name, $data); + //* mail user / fwd / catchall changed (greylisting) + $app->plugins->registerEvent('mail_user_insert', $this->plugin_name, 'user_settings_update'); + $app->plugins->registerEvent('mail_user_update', $this->plugin_name, 'user_settings_update'); + $app->plugins->registerEvent('mail_user_delete', $this->plugin_name, 'user_settings_update'); + $app->plugins->registerEvent('mail_forwarding_insert', $this->plugin_name, 'user_settings_update'); + $app->plugins->registerEvent('mail_forwarding_update', $this->plugin_name, 'user_settings_update'); + $app->plugins->registerEvent('mail_forwarding_delete', $this->plugin_name, 'user_settings_update'); } - function spamfilter_users_update($event_name, $data) { + function user_settings_update($event_name, $data) { global $app, $conf; + + if(!is_dir('/etc/rspamd')) { + return; + } + + $use_data = 'new'; + if(substr($event_name, -7) === 'delete') { + $mode = 'delete'; + $use_data = 'old'; + } elseif(substr($event_name, -7) === 'insert') { + $mode = 'insert'; + } else { + $mode = 'update'; + } // get the config $app->uses('getconf,system,functions'); $mail_config = $app->getconf->get_server_config($conf['server_id'], 'mail'); - - if(is_dir('/etc/rspamd')) { - $policy = $app->db->queryOneRecord("SELECT * FROM spamfilter_policy WHERE id = ?", intval($data['new']['policy_id'])); - - //* Create the config file - $user_file = $this->users_config_dir.'spamfilter_user_'.intval($data['new']['id']).'.conf'; - if(is_array($policy) && !empty($policy)){ - if(!is_dir($this->users_config_dir)){ - $app->system->mkdirpath($this->users_config_dir); - } + $type = false; + $identifier = false; + $entry_id = false; + if(substr($event_name, 0, 17) === 'spamfilter_users_') { + $identifier = 'email'; + $type = 'spamfilter_user'; + $entry_id = $data[$use_data]['id']; + } elseif(substr($event_name, 0, 16) === 'mail_forwarding_') { + $identifier = 'source'; + $type = 'mail_forwarding'; + $entry_id = $data[$use_data]['forwarding_id']; + } elseif(substr($event_name, 0, 10) === 'mail_user_') { + $identifier = 'email'; + $type = 'mail_user'; + $entry_id = $data[$use_data]['mailuser_id']; + } else { + // invalid event + $app->log('Invalid event name for rspamd_plugin: ' . $event_name, LOGLEVEL_WARN); + return; + } - $app->load('tpl'); - - $tpl = new tpl(); - $tpl->newTemplate('rspamd_users.inc.conf.master'); - $tpl->setVar('record_id', intval($data['new']['id'])); - $tpl->setVar('priority', intval($data['new']['priority'])); - $tpl->setVar('email', $app->functions->idn_encode($data['new']['email'])); - $tpl->setVar('local', $data['new']['local']); - - $tpl->setVar('rspamd_greylisting', $policy['rspamd_greylisting']); - $tpl->setVar('rspamd_spam_greylisting_level', floatval($policy['rspamd_spam_greylisting_level'])); - - $tpl->setVar('rspamd_spam_tag_level', floatval($policy['rspamd_spam_tag_level'])); - $tpl->setVar('rspamd_spam_tag_method', $policy['rspamd_spam_tag_method']); - - $tpl->setVar('rspamd_spam_kill_level', floatval($policy['rspamd_spam_kill_level'])); - $tpl->setVar('rspamd_virus_kill_level', floatval($policy['rspamd_spam_kill_level']) + 1000); + $is_domain = false; + $email_address = $data[$use_data][$identifier]; + $settings_name = $email_address; + if(!$email_address) { + // problem reading identifier + $app->log('Empty email address in rspamd_plugin from identifier: ' . $use_data . '/' . $identifier, LOGLEVEL_WARN); + return; + } elseif(substr($email_address, 0, 1) === '@') { + $settings_name = substr($email_address, 1); + $is_domain = true; + } elseif(strpos($email_address, '@') === false) { + $email_address = '@' . $email_address; + $is_domain = true; + } + + if($settings_name == '') { + // missing settings file name + $app->log('Empty email address in rspamd_plugin from identifier: ' . $use_data . '/' . $identifier, LOGLEVEL_WARN); + return; + } + + $settings_file = $this->users_config_dir . str_replace('@', '_', $settings_name) . '.conf'; + $app->log('Settings file for rspamd is ' . $settings_file, LOGLEVEL_WARN); + if($mode === 'delete') { + if(is_file($settings_file)) { + unlink($settings_file); + } + } else { + $settings_priority = 20; + if(isset($data[$use_data]['priority'])) { + $settings_priority = intval($data[$use_data]['priority']); + } elseif($is_domain === true) { + $settings_priority = 18; + } + + // get policy for entry + if($type === 'spamfilter_user') { + $policy = $app->db->queryOneRecord("SELECT * FROM spamfilter_policy WHERE id = ?", intval($data['new']['policy_id'])); - $spam_lover_virus_lover = ''; - if($policy['spam_lover'] == 'Y' && $policy['virus_lover'] == 'Y') $spam_lover_virus_lover = 'spam_lover_AND_virus_lover'; - if($policy['spam_lover'] == 'Y' && $policy['virus_lover'] != 'Y') $spam_lover_virus_lover = 'spam_lover_AND_NOTvirus_lover'; - if($policy['spam_lover'] != 'Y' && $policy['virus_lover'] == 'Y') $spam_lover_virus_lover = 'NOTspam_lover_AND_virus_lover'; - if($policy['spam_lover'] != 'Y' && $policy['virus_lover'] != 'Y') $spam_lover_virus_lover = 'NOTspam_lover_AND_NOTvirus_lover'; + $check = $app->db->queryOneRecord('SELECT `greylisting` FROM `mail_user` WHERE `server_id` = ? AND `email` = ? UNION SELECT `greylisting` FROM `mail_forwarding` WHERE `server_id` = ? AND `source` = ? ORDER BY (`greylisting` = ?) DESC', $conf['server_id'], $email_address, $conf['server_id'], $email_address, 'y'); + if($check) { + $greylisting = $check['greylisting']; + } else { + $greylisting = 'n'; + } + } else { + $search_for_policy[] = $email_address; + $search_for_policy[] = substr($email_address, strpos($email_address, '@')); - $tpl->setVar('spam_lover_virus_lover', $spam_lover_virus_lover); + $policy = $app->db->queryOneRecord("SELECT p.* FROM spamfilter_users as u INNER JOIN spamfilter_policy as p ON (p.id = u.policy_id) WHERE u.server_id = AND u.email IN ? ORDER BY u.priority DESC", $conf['server_id'], $search_for_policy); - //$groups_disabled = array(); - //if($policy['virus_lover'] == 'Y') $groups_disabled[] = ''; - - $app->system->file_put_contents($user_file, $tpl->grab()); - } else { - if(is_file($user_file)) { - unlink($user_file); + $greylisting = $data[$use_data]['greylisting']; + } + + if(!is_dir($this->users_config_dir)){ + $app->system->mkdirpath($this->users_config_dir); + } + + $app->load('tpl'); + + $tpl = new tpl(); + $tpl->newTemplate('rspamd_users.inc.conf.master'); + + $tpl->setVar('record_identifier', 'ispc_' . $type . '_' . $entry_id); + $tpl->setVar('priority', $settings_priority); + + if($type === 'spamfilter_user') { + if($data[$use_data]['local'] === 'Y') { + $tpl->setVar('to_email', $app->functions->idn_encode($email_address)); + } else { + $tpl->setVar('from_email', $app->functions->idn_encode($email_address)); } + $spamfilter = $data[$use_data]; + } else { + $tpl->setVar('to_email', $app->functions->idn_encode($email_address)); + + // need to get matching spamfilter user if any + $spamfilter = $app->db->queryOneRecord('SELECT * FROM spamfilter_users WHERE `email` = ?', $email_address); } - if($mail_config['content_filter'] == 'rspamd'){ - if(is_file('/etc/init.d/rspamd')) $app->services->restartServiceDelayed('rspamd', 'reload'); + if(!isset($policy['rspamd_spam_tag_level'])) { + $policy['rspamd_spam_tag_level'] = 6.0; } - } - } - - function spamfilter_users_delete($event_name, $data) { - global $app, $conf; + if(!isset($policy['rspamd_spam_tag_method'])) { + $policy['rspamd_spam_tag_method'] = 'add_header'; + } + if(!isset($policy['rspamd_spam_kill_level'])) { + $policy['rspamd_spam_kill_level'] = 15.0; + } + if(!isset($policy['rspamd_virus_kill_level'])) { + $policy['rspamd_virus_kill_level'] = floatval($policy['rspamd_spam_kill_level']) + 1000; + } + + $tpl->setVar('rspamd_spam_tag_level', floatval($policy['rspamd_spam_tag_level'])); + $tpl->setVar('rspamd_spam_tag_method', floatval($policy['rspamd_spam_tag_method'])); + $tpl->setVar('rspamd_spam_kill_level', floatval($policy['rspamd_spam_kill_level'])); + $tpl->setVar('rspamd_virus_kill_level', floatval($policy['rspamd_spam_kill_level']) + 1000); + + if(isset($policy['spam_lover']) && $policy['spam_lover'] == 'Y') { + $tpl->setVar('spam_lover', true); + } + if(isset($policy['virus_lover']) && $policy['virus_lover'] == 'Y') { + $tpl->setVar('virus_lover', true); + } + + $tpl->setVar('greylisting', $greylisting); - // get the config - $app->uses('getconf'); - $mail_config = $app->getconf->get_server_config($conf['server_id'], 'mail'); + if(isset($policy['rspamd_spam_greylisting_level'])) { + $tpl->setVar('greylisting_level', floatval($policy['rspamd_spam_greylisting_level'])); + } else { + $tpl->setVar('greylisting_level', 0.1); + } - if(is_dir('/etc/rspamd')) { - //* delete the config file - $user_file = $this->users_config_dir.'spamfilter_user_'.intval($data['old']['id']).'.conf'; - if(is_file($user_file)) unlink($user_file); - + $app->system->file_put_contents($settings_file, $tpl->grab()); } - - if($mail_config['content_filter'] == 'rspamd') { - if(is_file('/etc/init.d/rspamd')) $app->services->restartServiceDelayed('rspamd', 'reload'); + + if($mail_config['content_filter'] == 'rspamd'){ + $app->services->restartServiceDelayed('rspamd', 'reload'); } } @@ -234,7 +320,7 @@ class rspamd_plugin { $tpl->setVar('list_scope', ($global_filter ? 'global' : 'spamfilter')); $tpl->setVar('record_id', $record_id); // we need to add 10 to priority to avoid mailbox/domain spamfilter settings overriding white/blacklists - $tpl->setVar('priority', intval($data['new']['priority']) + ($global_filter ? 20 : 10)); + $tpl->setVar('priority', intval($data['new']['priority']) + ($global_filter ? 10 : 20)); $tpl->setVar('from', $filter_from); $tpl->setVar('recipient', $filter_rcpt); $tpl->setVar('hostname', $filter['hostname']); @@ -315,5 +401,4 @@ class rspamd_plugin { return false; } } - } // end class -- GitLab From fbbedfa302b51e1e475197be586a16d37c52a474 Mon Sep 17 00:00:00 2001 From: Marius Burkard Date: Mon, 2 Sep 2019 14:59:21 +0200 Subject: [PATCH 162/215] - added german text for rspamd policy change --- interface/web/mail/lib/lang/de_spamfilter_policy.lng | 7 +++++++ 1 file changed, 7 insertions(+) diff --git a/interface/web/mail/lib/lang/de_spamfilter_policy.lng b/interface/web/mail/lib/lang/de_spamfilter_policy.lng index 04b827447..1efbcb6af 100644 --- a/interface/web/mail/lib/lang/de_spamfilter_policy.lng +++ b/interface/web/mail/lib/lang/de_spamfilter_policy.lng @@ -42,3 +42,10 @@ $wb['rspamd_spam_tag_method_txt'] = 'SPAM-Markierungsmethode'; $wb['rspamd_spam_kill_level_txt'] = 'SPAM-Reject-Level'; $wb['btn_save_txt'] = 'Speichern'; $wb['btn_cancel_txt'] = 'Abbrechen'; + +$wb['amavis_settings_txt'] = 'Einstellungen'; +$wb['amavis_taglevel_txt'] = 'Tag-Level'; +$wb['amavis_quarantine_txt'] = 'Quarantäne'; +$wb['amavis_other_txt'] = 'Sonstiges'; +$wb['add_header_txt'] = 'Header hinzufügen'; +$wb['rewrite_subject_txt'] = 'Betreff ändern'; \ No newline at end of file -- GitLab From e470fde84a904409aa7912bedcf424d6467d9e0f Mon Sep 17 00:00:00 2001 From: Marius Burkard Date: Mon, 2 Sep 2019 15:06:44 +0200 Subject: [PATCH 163/215] Remote API: monitor_jobqueue_count returning wrong count in multiserver setup, fixes #5382 --- interface/lib/classes/remote.d/monitor.inc.php | 5 ++--- 1 file changed, 2 insertions(+), 3 deletions(-) diff --git a/interface/lib/classes/remote.d/monitor.inc.php b/interface/lib/classes/remote.d/monitor.inc.php index d3689b94c..3df681f9b 100644 --- a/interface/lib/classes/remote.d/monitor.inc.php +++ b/interface/lib/classes/remote.d/monitor.inc.php @@ -39,7 +39,6 @@ class remoting_monitor extends remoting { if(!$this->checkPerm($session_id, 'monitor_jobqueue_count')) { throw new SoapFault('permission_denied', 'You do not have the permissions to access this function.'); - return false; } $server_id = intval($server_id); @@ -48,7 +47,7 @@ class remoting_monitor extends remoting { $servers = $app->db->queryAllRecords("SELECT server_id, updated FROM server"); $sql = 'SELECT count(datalog_id) as jobqueue_count FROM sys_datalog WHERE '; foreach($servers as $sv) { - $sql .= " (datalog_id > ".$sv['updated']." AND server_id = ".$sv['server_id'].") OR "; + $sql .= " (datalog_id > ".$sv['updated']." AND server_id IN (0,".$sv['server_id'].")) OR "; } $sql = substr($sql, 0, -4); $tmp = $app->db->queryOneRecord($sql); @@ -56,7 +55,7 @@ class remoting_monitor extends remoting { } else { $server = $app->db->queryOneRecord("SELECT updated FROM server WHERE server_id = ?",$server_id); - $tmp = $app->db->queryOneRecord('SELECT count(datalog_id) as jobqueue_count FROM sys_datalog WHERE datalog_id > ?',$server['updated']); + $tmp = $app->db->queryOneRecord('SELECT count(datalog_id) as jobqueue_count FROM sys_datalog WHERE datalog_id > ? AND server_id IN ?',$server['updated'], array(0, $server_id)); return $tmp['jobqueue_count']; } } -- GitLab From 0fce8c16f197599d3ec33f54494b00d085f8e4ae Mon Sep 17 00:00:00 2001 From: Till Brehm Date: Mon, 2 Sep 2019 15:25:21 +0200 Subject: [PATCH 164/215] Fixed #5351 Remote API function dns_templatezone_add issue Added test script for dns_templatezone_add remote API function --- interface/lib/classes/remote.d/aps.inc.php | 3 ++ interface/lib/classes/remote.d/dns.inc.php | 4 +- .../examples/dns_templatezone_add.php | 50 +++++++++++++++++++ 3 files changed, 56 insertions(+), 1 deletion(-) create mode 100644 remoting_client/examples/dns_templatezone_add.php diff --git a/interface/lib/classes/remote.d/aps.inc.php b/interface/lib/classes/remote.d/aps.inc.php index 50dda4825..4cca7fb8b 100644 --- a/interface/lib/classes/remote.d/aps.inc.php +++ b/interface/lib/classes/remote.d/aps.inc.php @@ -238,6 +238,9 @@ class remoting_aps extends remoting { throw new SoapFault('permission_denied', 'You do not have the permissions to access this function.'); return false; } + + $app->uses('remoting_lib'); + $app->remoting_lib->loadUserProfile(0); $app->load('aps_guicontroller'); $gui = new ApsGUIController($app); diff --git a/interface/lib/classes/remote.d/dns.inc.php b/interface/lib/classes/remote.d/dns.inc.php index 7e0b230d7..434af6a98 100644 --- a/interface/lib/classes/remote.d/dns.inc.php +++ b/interface/lib/classes/remote.d/dns.inc.php @@ -56,7 +56,9 @@ class remoting_dns extends remoting { $tform_def_file = "../../web/dns/form/dns_soa.tform.php"; $app->uses('tform'); $app->tform->loadFormDef($tform_def_file); - $app->uses('tpl,validate_dns'); + $app->uses('tpl,validate_dns,remoting_lib'); + + $app->remoting_lib->loadUserProfile($client_id); //* replace template placeholders $tpl_content = $template_record['template']; diff --git a/remoting_client/examples/dns_templatezone_add.php b/remoting_client/examples/dns_templatezone_add.php new file mode 100644 index 000000000..aedfc61f5 --- /dev/null +++ b/remoting_client/examples/dns_templatezone_add.php @@ -0,0 +1,50 @@ + [ + // set some SSL/TLS specific options + 'verify_peer' => false, + 'verify_peer_name' => false, + 'allow_self_signed' => true + ] +]); + +$client = new SoapClient(null, array('location' => $soap_location, + 'uri' => $soap_uri, + 'trace' => 1, + 'exceptions' => 1, + 'stream_context' => $context)); + + +try { + if($session_id = $client->login($username, $password)) { + echo 'Logged successfull. Session ID:'.$session_id.'
'; + } + + //* Set the function parameters. + $client_id = 1; + $template_id = 1; + $domain = 'test.tld'; + $ip = '192.168.0.100'; + $ns1 = 'ns1.testhoster.tld'; + $ns2 = 'ns2.testhoster.tld'; + $email = 'email.test.tld'; + + $id = $client->dns_templatezone_add($session_id, $client_id, $template_id, $domain, $ip, $ns1, $ns2, $email); + + echo "ID: ".$id."
"; + + if($client->logout($session_id)) { + echo 'Logged out.
'; + } + + +} catch (SoapFault $e) { + echo $client->__getLastResponse(); + die('SOAP Error: '.$e->getMessage()); +} + +?> \ No newline at end of file -- GitLab From 724b7e4f7f0a8c9377b2ff250ae46c86b3a892d6 Mon Sep 17 00:00:00 2001 From: Till Brehm Date: Mon, 2 Sep 2019 15:44:43 +0200 Subject: [PATCH 165/215] Fixed #5348 Virtual server config panel showing without active VServer --- interface/web/dashboard/dashlets/modules.php | 5 +++++ 1 file changed, 5 insertions(+) diff --git a/interface/web/dashboard/dashlets/modules.php b/interface/web/dashboard/dashlets/modules.php index 5c1f15149..f5f96a82a 100644 --- a/interface/web/dashboard/dashlets/modules.php +++ b/interface/web/dashboard/dashlets/modules.php @@ -40,6 +40,11 @@ class dashlet_modules { $web_servers = $app->db->queryOneRecord("SELECT COUNT(*) as cnt FROM server WHERE web_server = 1 AND active = 1"); if($web_servers['cnt'] == 0) continue; } + + if($mt == 'vm'){ + $vserver_servers = $app->db->queryOneRecord("SELECT COUNT(*) as cnt FROM server WHERE vserver_server = 1 AND active = 1"); + if($vserver_servers['cnt'] == 0) continue; + } $module_title = $app->lng($module['title']); if(function_exists('mb_strlen')) { -- GitLab From efda2243d899e9a4c4f9e383d3e2df13efa29271 Mon Sep 17 00:00:00 2001 From: Till Brehm Date: Mon, 2 Sep 2019 16:01:58 +0200 Subject: [PATCH 166/215] Fixed ISPConfig server log warning: Unable to add a delayed restart for 'postfix'. Service not registered. --- server/mods-available/mail_module.inc.php | 17 +++++++++++++++++ 1 file changed, 17 insertions(+) diff --git a/server/mods-available/mail_module.inc.php b/server/mods-available/mail_module.inc.php index 14cbbb24e..e13839d34 100644 --- a/server/mods-available/mail_module.inc.php +++ b/server/mods-available/mail_module.inc.php @@ -113,6 +113,7 @@ class mail_module { $app->modules->registerTableHook('spamfilter_wblist', 'mail_module', 'process'); $app->services->registerService('rspamd', 'mail_module', 'restartRspamd'); + $app->services->registerService('postfix', 'mail_module', 'restartPostfix'); } /* @@ -192,6 +193,22 @@ class mail_module { } return $retval; } + + function restartPostfix($action = 'reload') { + global $app; + + $app->uses('system'); + + $daemon = 'postfix'; + + $retval = array('output' => '', 'retval' => 0); + if($action == 'restart') { + exec($app->system->getinitcommand($daemon, 'restart').' 2>&1', $retval['output'], $retval['retval']); + } else { + exec($app->system->getinitcommand($daemon, 'reload').' 2>&1', $retval['output'], $retval['retval']); + } + return $retval; + } } // end class ?> -- GitLab From 65be9518b8f704479010e1cd65c8d5552f98ed4c Mon Sep 17 00:00:00 2001 From: Till Brehm Date: Mon, 2 Sep 2019 16:10:43 +0200 Subject: [PATCH 167/215] Fixed PHP Warning: Undefined property wb of class app in /usr/local/ispconfig/interface/lib/app.inc.php on line 81 --- interface/lib/app.inc.php | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/interface/lib/app.inc.php b/interface/lib/app.inc.php index 11bd02439..e341a5794 100755 --- a/interface/lib/app.inc.php +++ b/interface/lib/app.inc.php @@ -248,7 +248,7 @@ class app { } $this->_language_inc = 1; } - if(isset($this->_wb[$text]) && $this->wb[$text] !== '') { + if(isset($this->_wb[$text]) && $this->_wb[$text] !== '') { $text = $this->_wb[$text]; } else { if($this->_conf['debug_language']) { -- GitLab From 7d72427c9d61e0b78d2869da75c8aa469a36c57a Mon Sep 17 00:00:00 2001 From: Till Brehm Date: Mon, 2 Sep 2019 16:28:03 +0200 Subject: [PATCH 168/215] Fixed html glitch behind active checkbox in dmarc edit form. --- interface/web/dns/templates/dns_dmarc_edit.htm | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/interface/web/dns/templates/dns_dmarc_edit.htm b/interface/web/dns/templates/dns_dmarc_edit.htm index 630c18559..4b7646a39 100644 --- a/interface/web/dns/templates/dns_dmarc_edit.htm +++ b/interface/web/dns/templates/dns_dmarc_edit.htm @@ -147,7 +147,7 @@
- + {tmpl_var name='active'}
-- GitLab From 2eede67205b7b51988f1540c3b7c999b42ee02e6 Mon Sep 17 00:00:00 2001 From: Marius Burkard Date: Tue, 3 Sep 2019 10:32:05 +0200 Subject: [PATCH 169/215] - fixed invalid sql query on rspamd plugin --- server/plugins-available/rspamd_plugin.inc.php | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/server/plugins-available/rspamd_plugin.inc.php b/server/plugins-available/rspamd_plugin.inc.php index 70885056d..17a14ce42 100644 --- a/server/plugins-available/rspamd_plugin.inc.php +++ b/server/plugins-available/rspamd_plugin.inc.php @@ -177,7 +177,7 @@ class rspamd_plugin { $search_for_policy[] = $email_address; $search_for_policy[] = substr($email_address, strpos($email_address, '@')); - $policy = $app->db->queryOneRecord("SELECT p.* FROM spamfilter_users as u INNER JOIN spamfilter_policy as p ON (p.id = u.policy_id) WHERE u.server_id = AND u.email IN ? ORDER BY u.priority DESC", $conf['server_id'], $search_for_policy); + $policy = $app->db->queryOneRecord("SELECT p.* FROM spamfilter_users as u INNER JOIN spamfilter_policy as p ON (p.id = u.policy_id) WHERE u.server_id = ? AND u.email IN ? ORDER BY u.priority DESC", $conf['server_id'], $search_for_policy); $greylisting = $data[$use_data]['greylisting']; } -- GitLab From 44b6fa2337b35149a9b5cd80ff4790c311c5e471 Mon Sep 17 00:00:00 2001 From: Marius Burkard Date: Tue, 3 Sep 2019 10:39:35 +0200 Subject: [PATCH 170/215] - removed debug message from rspamd plugin --- server/plugins-available/rspamd_plugin.inc.php | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/server/plugins-available/rspamd_plugin.inc.php b/server/plugins-available/rspamd_plugin.inc.php index 17a14ce42..49eb87165 100644 --- a/server/plugins-available/rspamd_plugin.inc.php +++ b/server/plugins-available/rspamd_plugin.inc.php @@ -150,7 +150,7 @@ class rspamd_plugin { } $settings_file = $this->users_config_dir . str_replace('@', '_', $settings_name) . '.conf'; - $app->log('Settings file for rspamd is ' . $settings_file, LOGLEVEL_WARN); + //$app->log('Settings file for rspamd is ' . $settings_file, LOGLEVEL_WARN); if($mode === 'delete') { if(is_file($settings_file)) { unlink($settings_file); -- GitLab From b9f6e3fa6e33cd596f56044827b422e17f844477 Mon Sep 17 00:00:00 2001 From: Marius Burkard Date: Tue, 3 Sep 2019 15:54:08 +0200 Subject: [PATCH 171/215] - allow @ in webdav username --- interface/web/sites/form/webdav_user.tform.php | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/interface/web/sites/form/webdav_user.tform.php b/interface/web/sites/form/webdav_user.tform.php index 8d5c0c561..b7db85854 100644 --- a/interface/web/sites/form/webdav_user.tform.php +++ b/interface/web/sites/form/webdav_user.tform.php @@ -85,7 +85,7 @@ $form["tabs"]['webdav'] = array ( 'validators' => array ( 0 => array ( 'type' => 'UNIQUE', 'errmsg'=> 'username_error_unique'), 1 => array ( 'type' => 'REGEX', - 'regex' => '/^[\w\.\-]{0,64}$/', + 'regex' => '/^[\w\.\-@]{0,64}$/', 'errmsg'=> 'username_error_regex'), ), 'default' => '', -- GitLab From af562b205e3013b5c2ccd2622608f51133779f6d Mon Sep 17 00:00:00 2001 From: Till Brehm Date: Wed, 4 Sep 2019 11:37:08 +0200 Subject: [PATCH 172/215] Moved sql dev collection to upd_0088.sql file. --- install/sql/incremental/upd_0088.sql | 39 +++++++++++++++++++ .../sql/incremental/upd_dev_collection.sql | 39 ------------------- 2 files changed, 39 insertions(+), 39 deletions(-) create mode 100644 install/sql/incremental/upd_0088.sql diff --git a/install/sql/incremental/upd_0088.sql b/install/sql/incremental/upd_0088.sql new file mode 100644 index 000000000..5c062603f --- /dev/null +++ b/install/sql/incremental/upd_0088.sql @@ -0,0 +1,39 @@ +-- rspamd +ALTER TABLE `spamfilter_policy` ADD `rspamd_greylisting` ENUM('n','y') CHARACTER SET utf8 COLLATE utf8_general_ci NOT NULL DEFAULT 'n' AFTER `policyd_greylist`; +ALTER TABLE `spamfilter_policy` ADD `rspamd_spam_greylisting_level` DECIMAL(5,2) NULL DEFAULT NULL AFTER `rspamd_greylisting`; +ALTER TABLE `spamfilter_policy` ADD `rspamd_spam_tag_level` DECIMAL(5,2) NULL DEFAULT NULL AFTER `rspamd_spam_greylisting_level`; +ALTER TABLE `spamfilter_policy` ADD `rspamd_spam_tag_method` ENUM('add_header','rewrite_subject') CHARACTER SET utf8 COLLATE utf8_general_ci NOT NULL DEFAULT 'rewrite_subject' AFTER `rspamd_spam_tag_level`; +ALTER TABLE `spamfilter_policy` ADD `rspamd_spam_kill_level` DECIMAL(5,2) NULL DEFAULT NULL AFTER `rspamd_spam_tag_method`; + +UPDATE `spamfilter_policy` SET `rspamd_greylisting` = 'y' WHERE id = 4; +UPDATE `spamfilter_policy` SET `rspamd_greylisting` = 'y' WHERE id = 5; +UPDATE `spamfilter_policy` SET `rspamd_greylisting` = 'y' WHERE id = 6; + +UPDATE `spamfilter_policy` SET `rspamd_spam_greylisting_level` = '4.00'; +UPDATE `spamfilter_policy` SET `rspamd_spam_greylisting_level` = '6.00' WHERE id = 1; +UPDATE `spamfilter_policy` SET `rspamd_spam_greylisting_level` = '999.00' WHERE id = 2; +UPDATE `spamfilter_policy` SET `rspamd_spam_greylisting_level` = '999.00' WHERE id = 3; +UPDATE `spamfilter_policy` SET `rspamd_spam_greylisting_level` = '2.00' WHERE id = 6; +UPDATE `spamfilter_policy` SET `rspamd_spam_greylisting_level` = '7.00' WHERE id = 7; + +UPDATE `spamfilter_policy` SET `rspamd_spam_tag_level` = '6.00'; +UPDATE `spamfilter_policy` SET `rspamd_spam_tag_level` = '8.00' WHERE id = 1; +UPDATE `spamfilter_policy` SET `rspamd_spam_tag_level` = '999.00' WHERE id = 2; +UPDATE `spamfilter_policy` SET `rspamd_spam_tag_level` = '999.00' WHERE id = 3; +UPDATE `spamfilter_policy` SET `rspamd_spam_tag_level` = '4.00' WHERE id = 6; +UPDATE `spamfilter_policy` SET `rspamd_spam_tag_level` = '10.00' WHERE id = 7; + +UPDATE `spamfilter_policy` SET `rspamd_spam_kill_level` = '10.00'; +UPDATE `spamfilter_policy` SET `rspamd_spam_kill_level` = '12.00' WHERE id = 1; +UPDATE `spamfilter_policy` SET `rspamd_spam_kill_level` = '999.00' WHERE id = 2; +UPDATE `spamfilter_policy` SET `rspamd_spam_kill_level` = '999.00' WHERE id = 3; +UPDATE `spamfilter_policy` SET `rspamd_spam_kill_level` = '8.00' WHERE id = 6; +UPDATE `spamfilter_policy` SET `rspamd_spam_kill_level` = '20.00' WHERE id = 7; +-- end of rspamd +ALTER TABLE `client` CHANGE COLUMN `password` `password` VARCHAR(200) DEFAULT NULL; +ALTER TABLE `ftp_user` CHANGE COLUMN `password` `password` VARCHAR(200) DEFAULT NULL; +ALTER TABLE `shell_user` CHANGE COLUMN `password` `password` VARCHAR(200) DEFAULT NULL; +ALTER TABLE `sys_user` CHANGE COLUMN `passwort` `passwort` VARCHAR(200) DEFAULT NULL; +ALTER TABLE `webdav_user` CHANGE COLUMN `password` `password` VARCHAR(200) DEFAULT NULL; + +DELETE FROM sys_cron WHERE `next_run` IS NOT NULL AND `next_run` >= DATE_ADD(`last_run`, INTERVAL 30 DAY) AND `next_run` BETWEEN '2020-01-01' AND '2020-01-02'; \ No newline at end of file diff --git a/install/sql/incremental/upd_dev_collection.sql b/install/sql/incremental/upd_dev_collection.sql index 91cbc8162..e69de29bb 100644 --- a/install/sql/incremental/upd_dev_collection.sql +++ b/install/sql/incremental/upd_dev_collection.sql @@ -1,39 +0,0 @@ --- rspamd -ALTER TABLE `spamfilter_policy` ADD `rspamd_greylisting` ENUM('n','y') CHARACTER SET utf8 COLLATE utf8_general_ci NOT NULL DEFAULT 'n' AFTER `policyd_greylist`; -ALTER TABLE `spamfilter_policy` ADD `rspamd_spam_greylisting_level` DECIMAL(5,2) NULL DEFAULT NULL AFTER `rspamd_greylisting`; -ALTER TABLE `spamfilter_policy` ADD `rspamd_spam_tag_level` DECIMAL(5,2) NULL DEFAULT NULL AFTER `rspamd_spam_greylisting_level`; -ALTER TABLE `spamfilter_policy` ADD `rspamd_spam_tag_method` ENUM('add_header','rewrite_subject') CHARACTER SET utf8 COLLATE utf8_general_ci NOT NULL DEFAULT 'rewrite_subject' AFTER `rspamd_spam_tag_level`; -ALTER TABLE `spamfilter_policy` ADD `rspamd_spam_kill_level` DECIMAL(5,2) NULL DEFAULT NULL AFTER `rspamd_spam_tag_method`; - -UPDATE `spamfilter_policy` SET `rspamd_greylisting` = 'y' WHERE id = 4; -UPDATE `spamfilter_policy` SET `rspamd_greylisting` = 'y' WHERE id = 5; -UPDATE `spamfilter_policy` SET `rspamd_greylisting` = 'y' WHERE id = 6; - -UPDATE `spamfilter_policy` SET `rspamd_spam_greylisting_level` = '4.00'; -UPDATE `spamfilter_policy` SET `rspamd_spam_greylisting_level` = '6.00' WHERE id = 1; -UPDATE `spamfilter_policy` SET `rspamd_spam_greylisting_level` = '999.00' WHERE id = 2; -UPDATE `spamfilter_policy` SET `rspamd_spam_greylisting_level` = '999.00' WHERE id = 3; -UPDATE `spamfilter_policy` SET `rspamd_spam_greylisting_level` = '2.00' WHERE id = 6; -UPDATE `spamfilter_policy` SET `rspamd_spam_greylisting_level` = '7.00' WHERE id = 7; - -UPDATE `spamfilter_policy` SET `rspamd_spam_tag_level` = '6.00'; -UPDATE `spamfilter_policy` SET `rspamd_spam_tag_level` = '8.00' WHERE id = 1; -UPDATE `spamfilter_policy` SET `rspamd_spam_tag_level` = '999.00' WHERE id = 2; -UPDATE `spamfilter_policy` SET `rspamd_spam_tag_level` = '999.00' WHERE id = 3; -UPDATE `spamfilter_policy` SET `rspamd_spam_tag_level` = '4.00' WHERE id = 6; -UPDATE `spamfilter_policy` SET `rspamd_spam_tag_level` = '10.00' WHERE id = 7; - -UPDATE `spamfilter_policy` SET `rspamd_spam_kill_level` = '10.00'; -UPDATE `spamfilter_policy` SET `rspamd_spam_kill_level` = '12.00' WHERE id = 1; -UPDATE `spamfilter_policy` SET `rspamd_spam_kill_level` = '999.00' WHERE id = 2; -UPDATE `spamfilter_policy` SET `rspamd_spam_kill_level` = '999.00' WHERE id = 3; -UPDATE `spamfilter_policy` SET `rspamd_spam_kill_level` = '8.00' WHERE id = 6; -UPDATE `spamfilter_policy` SET `rspamd_spam_kill_level` = '20.00' WHERE id = 7; --- end of rspamd -ALTER TABLE `client` CHANGE COLUMN `password` `password` VARCHAR(200) DEFAULT NULL; -ALTER TABLE `ftp_user` CHANGE COLUMN `password` `password` VARCHAR(200) DEFAULT NULL; -ALTER TABLE `shell_user` CHANGE COLUMN `password` `password` VARCHAR(200) DEFAULT NULL; -ALTER TABLE `sys_user` CHANGE COLUMN `passwort` `passwort` VARCHAR(200) DEFAULT NULL; -ALTER TABLE `webdav_user` CHANGE COLUMN `password` `password` VARCHAR(200) DEFAULT NULL; - -DELETE FROM sys_cron WHERE `next_run` IS NOT NULL AND `next_run` >= DATE_ADD(`last_run`, INTERVAL 30 DAY) AND `next_run` BETWEEN '2020-01-01' AND '2020-01-02'; -- GitLab From 65d142ea6719c72b3e4612a06b245ad3b3495c33 Mon Sep 17 00:00:00 2001 From: Till Brehm Date: Wed, 4 Sep 2019 11:41:56 +0200 Subject: [PATCH 173/215] Merged language files. --- interface/lib/lang/ar.lng | 2 +- interface/lib/lang/bg.lng | 2 +- interface/lib/lang/ca.lng | 2 +- interface/lib/lang/cz.lng | 2 +- interface/lib/lang/de.lng | 5 ++--- interface/lib/lang/dk.lng | 2 +- interface/lib/lang/el.lng | 2 +- interface/lib/lang/es.lng | 2 +- interface/lib/lang/fi.lng | 2 +- interface/lib/lang/hr.lng | 2 +- interface/lib/lang/hu.lng | 2 +- interface/lib/lang/id.lng | 2 +- interface/lib/lang/it.lng | 2 +- interface/lib/lang/ja.lng | 2 +- interface/lib/lang/nl.lng | 2 +- interface/lib/lang/pl.lng | 2 +- interface/lib/lang/pt.lng | 2 +- interface/lib/lang/ro.lng | 2 +- interface/lib/lang/ru.lng | 2 +- interface/lib/lang/se.lng | 2 +- interface/lib/lang/sk.lng | 2 +- interface/lib/lang/tr.lng | 2 +- .../web/admin/lib/lang/ar_server_config.lng | 4 ++++ .../web/admin/lib/lang/ar_system_config.lng | 2 +- interface/web/admin/lib/lang/ar_users.lng | 2 +- .../web/admin/lib/lang/bg_server_config.lng | 4 ++++ .../web/admin/lib/lang/bg_system_config.lng | 2 +- interface/web/admin/lib/lang/bg_users.lng | 2 +- .../web/admin/lib/lang/br_server_config.lng | 4 ++++ .../web/admin/lib/lang/br_system_config.lng | 2 +- interface/web/admin/lib/lang/ca_firewall.lng | 4 ++-- .../web/admin/lib/lang/ca_server_config.lng | 6 +++++- .../web/admin/lib/lang/ca_system_config.lng | 2 +- interface/web/admin/lib/lang/ca_users.lng | 2 +- .../web/admin/lib/lang/cz_remote_action.lng | 4 ++-- .../web/admin/lib/lang/cz_server_config.lng | 6 +++++- .../web/admin/lib/lang/de_server_config.lng | 3 ++- interface/web/admin/lib/lang/dk_firewall.lng | 4 ++-- .../web/admin/lib/lang/dk_server_config.lng | 6 +++++- .../web/admin/lib/lang/dk_system_config.lng | 2 +- interface/web/admin/lib/lang/dk_users.lng | 2 +- .../web/admin/lib/lang/el_server_config.lng | 4 ++++ .../web/admin/lib/lang/el_system_config.lng | 2 +- interface/web/admin/lib/lang/el_users.lng | 2 +- interface/web/admin/lib/lang/es_firewall.lng | 4 ++-- .../web/admin/lib/lang/es_server_config.lng | 6 +++++- .../web/admin/lib/lang/es_system_config.lng | 4 ++-- .../web/admin/lib/lang/fi_server_config.lng | 4 ++++ .../web/admin/lib/lang/fi_system_config.lng | 2 +- interface/web/admin/lib/lang/fi_users.lng | 2 +- .../web/admin/lib/lang/fr_remote_action.lng | 2 +- .../web/admin/lib/lang/fr_server_config.lng | 4 ++++ .../web/admin/lib/lang/fr_system_config.lng | 2 +- .../web/admin/lib/lang/hr_server_config.lng | 4 ++++ .../web/admin/lib/lang/hr_system_config.lng | 2 +- interface/web/admin/lib/lang/hr_users.lng | 2 +- interface/web/admin/lib/lang/hr_users_list.lng | 2 +- .../web/admin/lib/lang/hu_server_config.lng | 4 ++++ .../web/admin/lib/lang/hu_system_config.lng | 2 +- interface/web/admin/lib/lang/hu_users.lng | 2 +- .../web/admin/lib/lang/id_server_config.lng | 4 ++++ .../web/admin/lib/lang/id_system_config.lng | 2 +- interface/web/admin/lib/lang/id_users.lng | 2 +- .../web/admin/lib/lang/it_server_config.lng | 4 ++++ .../web/admin/lib/lang/it_system_config.lng | 2 +- interface/web/admin/lib/lang/it_users.lng | 2 +- .../web/admin/lib/lang/ja_server_config.lng | 4 ++++ .../web/admin/lib/lang/ja_system_config.lng | 2 +- interface/web/admin/lib/lang/ja_users.lng | 2 +- .../web/admin/lib/lang/nl_server_config.lng | 4 ++++ .../web/admin/lib/lang/nl_system_config.lng | 2 +- interface/web/admin/lib/lang/nl_users.lng | 2 +- .../web/admin/lib/lang/pl_server_config.lng | 4 ++++ .../web/admin/lib/lang/pl_system_config.lng | 2 +- .../web/admin/lib/lang/pt_server_config.lng | 4 ++++ .../web/admin/lib/lang/pt_system_config.lng | 2 +- interface/web/admin/lib/lang/pt_users.lng | 2 +- .../web/admin/lib/lang/ro_server_config.lng | 4 ++++ .../web/admin/lib/lang/ro_system_config.lng | 2 +- interface/web/admin/lib/lang/ro_users.lng | 2 +- interface/web/admin/lib/lang/ru_firewall.lng | 4 ++-- .../web/admin/lib/lang/ru_server_config.lng | 6 +++++- .../web/admin/lib/lang/ru_system_config.lng | 4 ++-- interface/web/admin/lib/lang/ru_users.lng | 2 +- .../web/admin/lib/lang/se_server_config.lng | 4 ++++ .../web/admin/lib/lang/se_system_config.lng | 2 +- .../web/admin/lib/lang/sk_server_config.lng | 4 ++++ .../web/admin/lib/lang/sk_system_config.lng | 2 +- interface/web/admin/lib/lang/sk_users.lng | 2 +- interface/web/admin/lib/lang/tr_firewall.lng | 4 ++-- .../web/admin/lib/lang/tr_remote_action.lng | 4 ++-- .../web/admin/lib/lang/tr_server_config.lng | 6 +++++- .../web/admin/lib/lang/tr_system_config.lng | 2 +- interface/web/admin/lib/lang/tr_users.lng | 2 +- interface/web/client/lib/lang/ar_client.lng | 2 +- interface/web/client/lib/lang/ar_reseller.lng | 2 +- interface/web/client/lib/lang/bg_client.lng | 2 +- interface/web/client/lib/lang/bg_reseller.lng | 2 +- interface/web/client/lib/lang/br_client.lng | 2 +- .../web/client/lib/lang/br_client_template.lng | 2 +- interface/web/client/lib/lang/br_reseller.lng | 2 +- interface/web/client/lib/lang/ca_client.lng | 2 +- interface/web/client/lib/lang/ca_reseller.lng | 2 +- interface/web/client/lib/lang/cz_client.lng | 2 +- interface/web/client/lib/lang/cz_reseller.lng | 2 +- interface/web/client/lib/lang/de_reseller.lng | 2 +- interface/web/client/lib/lang/dk_client.lng | 2 +- interface/web/client/lib/lang/dk_reseller.lng | 2 +- interface/web/client/lib/lang/el_client.lng | 2 +- interface/web/client/lib/lang/el_reseller.lng | 2 +- interface/web/client/lib/lang/es_client.lng | 4 ++-- .../web/client/lib/lang/es_client_template.lng | 4 ++-- interface/web/client/lib/lang/es_reseller.lng | 4 ++-- interface/web/client/lib/lang/fi_client.lng | 2 +- interface/web/client/lib/lang/fi_reseller.lng | 2 +- interface/web/client/lib/lang/fr_client.lng | 2 +- interface/web/client/lib/lang/fr_reseller.lng | 2 +- interface/web/client/lib/lang/hr_client.lng | 2 +- interface/web/client/lib/lang/hr_reseller.lng | 2 +- interface/web/client/lib/lang/hu_client.lng | 2 +- interface/web/client/lib/lang/hu_reseller.lng | 2 +- interface/web/client/lib/lang/id_client.lng | 2 +- interface/web/client/lib/lang/id_reseller.lng | 2 +- interface/web/client/lib/lang/it_client.lng | 2 +- interface/web/client/lib/lang/it_reseller.lng | 2 +- interface/web/client/lib/lang/ja_client.lng | 2 +- interface/web/client/lib/lang/ja_reseller.lng | 2 +- interface/web/client/lib/lang/nl_client.lng | 2 +- interface/web/client/lib/lang/nl_reseller.lng | 2 +- interface/web/client/lib/lang/pl_reseller.lng | 2 +- interface/web/client/lib/lang/pt_client.lng | 2 +- interface/web/client/lib/lang/pt_reseller.lng | 2 +- interface/web/client/lib/lang/ro_client.lng | 2 +- interface/web/client/lib/lang/ro_reseller.lng | 2 +- interface/web/client/lib/lang/ru_client.lng | 4 ++-- interface/web/client/lib/lang/ru_reseller.lng | 4 ++-- interface/web/client/lib/lang/se_client.lng | 2 +- interface/web/client/lib/lang/se_reseller.lng | 2 +- interface/web/client/lib/lang/sk_client.lng | 2 +- interface/web/client/lib/lang/sk_reseller.lng | 2 +- interface/web/client/lib/lang/tr_client.lng | 2 +- interface/web/client/lib/lang/tr_reseller.lng | 2 +- .../web/dashboard/lib/lang/es_dashlet_limits.lng | 2 +- interface/web/dns/lib/lang/br_dns_dmarc.lng | 10 +++++----- interface/web/dns/lib/lang/br_dns_tlsa.lng | 4 ++-- interface/web/dns/lib/lang/ru_dns_hinfo.lng | 2 +- .../web/help/lib/lang/br_support_message.lng | 2 +- interface/web/login/lib/lang/ar_login_as.lng | 6 +++--- interface/web/login/lib/lang/bg_login_as.lng | 6 +++--- interface/web/login/lib/lang/br_login_as.lng | 2 +- interface/web/login/lib/lang/ca_login_as.lng | 6 +++--- interface/web/login/lib/lang/dk_login_as.lng | 6 +++--- interface/web/login/lib/lang/el_login_as.lng | 6 +++--- interface/web/login/lib/lang/es_login_as.lng | 6 +++--- interface/web/login/lib/lang/fi_login_as.lng | 6 +++--- interface/web/login/lib/lang/hr_login_as.lng | 6 +++--- interface/web/login/lib/lang/hu_login_as.lng | 6 +++--- interface/web/login/lib/lang/id_login_as.lng | 6 +++--- interface/web/login/lib/lang/it_login_as.lng | 6 +++--- interface/web/login/lib/lang/ja_login_as.lng | 6 +++--- interface/web/login/lib/lang/nl_login_as.lng | 4 ++-- interface/web/login/lib/lang/pt_login_as.lng | 6 +++--- interface/web/login/lib/lang/ro_login_as.lng | 6 +++--- interface/web/login/lib/lang/ru_login_as.lng | 6 +++--- interface/web/login/lib/lang/se_login_as.lng | 6 +++--- interface/web/login/lib/lang/sk_login_as.lng | 6 +++--- interface/web/login/lib/lang/tr_login_as.lng | 6 +++--- interface/web/mail/lib/lang/ar.lng | 2 ++ .../mail/lib/lang/ar_mail_domain_catchall.lng | 1 + interface/web/mail/lib/lang/ar_mail_get.lng | 2 +- .../web/mail/lib/lang/ar_spamfilter_policy.lng | 13 +++++++++++++ interface/web/mail/lib/lang/bg.lng | 2 ++ .../mail/lib/lang/bg_mail_domain_catchall.lng | 1 + interface/web/mail/lib/lang/bg_mail_get.lng | 2 +- .../web/mail/lib/lang/bg_spamfilter_policy.lng | 13 +++++++++++++ interface/web/mail/lib/lang/br.lng | 2 ++ .../mail/lib/lang/br_mail_domain_catchall.lng | 1 + interface/web/mail/lib/lang/br_mail_user.lng | 4 ++-- .../web/mail/lib/lang/br_spamfilter_policy.lng | 13 +++++++++++++ interface/web/mail/lib/lang/ca.lng | 2 ++ .../mail/lib/lang/ca_mail_domain_catchall.lng | 1 + interface/web/mail/lib/lang/ca_mail_get.lng | 2 +- .../web/mail/lib/lang/ca_spamfilter_policy.lng | 13 +++++++++++++ interface/web/mail/lib/lang/cz.lng | 2 ++ .../mail/lib/lang/cz_mail_domain_catchall.lng | 1 + interface/web/mail/lib/lang/cz_mail_get.lng | 2 +- .../web/mail/lib/lang/cz_mail_mailinglist.lng | 2 +- .../web/mail/lib/lang/cz_spamfilter_policy.lng | 13 +++++++++++++ interface/web/mail/lib/lang/de.lng | 2 ++ .../web/mail/lib/lang/de_spamfilter_policy.lng | 4 ++-- interface/web/mail/lib/lang/dk.lng | 2 ++ .../mail/lib/lang/dk_mail_domain_catchall.lng | 1 + interface/web/mail/lib/lang/dk_mail_get.lng | 2 +- .../web/mail/lib/lang/dk_spamfilter_policy.lng | 13 +++++++++++++ interface/web/mail/lib/lang/el.lng | 2 ++ .../mail/lib/lang/el_mail_domain_catchall.lng | 1 + interface/web/mail/lib/lang/el_mail_get.lng | 2 +- .../web/mail/lib/lang/el_spamfilter_policy.lng | 13 +++++++++++++ interface/web/mail/lib/lang/es.lng | 4 +++- .../mail/lib/lang/es_mail_domain_catchall.lng | 5 +++-- .../lib/lang/es_mail_domain_catchall_list.lng | 4 ++-- interface/web/mail/lib/lang/es_mail_get.lng | 2 +- .../web/mail/lib/lang/es_spamfilter_policy.lng | 13 +++++++++++++ interface/web/mail/lib/lang/fi.lng | 2 ++ .../mail/lib/lang/fi_mail_domain_catchall.lng | 1 + interface/web/mail/lib/lang/fi_mail_get.lng | 2 +- .../web/mail/lib/lang/fi_spamfilter_policy.lng | 13 +++++++++++++ interface/web/mail/lib/lang/fr.lng | 2 ++ .../mail/lib/lang/fr_mail_domain_catchall.lng | 1 + interface/web/mail/lib/lang/fr_mail_get.lng | 2 +- .../web/mail/lib/lang/fr_spamfilter_policy.lng | 13 +++++++++++++ interface/web/mail/lib/lang/hr.lng | 2 ++ .../mail/lib/lang/hr_mail_domain_catchall.lng | 1 + interface/web/mail/lib/lang/hr_mail_get.lng | 2 +- .../web/mail/lib/lang/hr_spamfilter_policy.lng | 13 +++++++++++++ interface/web/mail/lib/lang/hu.lng | 2 ++ .../mail/lib/lang/hu_mail_domain_catchall.lng | 1 + interface/web/mail/lib/lang/hu_mail_get.lng | 2 +- .../web/mail/lib/lang/hu_spamfilter_policy.lng | 13 +++++++++++++ interface/web/mail/lib/lang/id.lng | 2 ++ .../mail/lib/lang/id_mail_domain_catchall.lng | 1 + interface/web/mail/lib/lang/id_mail_get.lng | 2 +- .../web/mail/lib/lang/id_spamfilter_policy.lng | 13 +++++++++++++ interface/web/mail/lib/lang/it.lng | 2 ++ .../mail/lib/lang/it_mail_domain_catchall.lng | 1 + interface/web/mail/lib/lang/it_mail_get.lng | 2 +- .../web/mail/lib/lang/it_spamfilter_policy.lng | 13 +++++++++++++ interface/web/mail/lib/lang/ja.lng | 2 ++ .../mail/lib/lang/ja_mail_domain_catchall.lng | 1 + interface/web/mail/lib/lang/ja_mail_get.lng | 2 +- .../web/mail/lib/lang/ja_spamfilter_policy.lng | 13 +++++++++++++ interface/web/mail/lib/lang/nl.lng | 2 ++ .../mail/lib/lang/nl_mail_domain_catchall.lng | 1 + interface/web/mail/lib/lang/nl_mail_get.lng | 2 +- interface/web/mail/lib/lang/nl_mail_user.lng | 4 ++-- .../web/mail/lib/lang/nl_spamfilter_policy.lng | 13 +++++++++++++ interface/web/mail/lib/lang/pl.lng | 2 ++ .../mail/lib/lang/pl_mail_domain_catchall.lng | 1 + .../web/mail/lib/lang/pl_spamfilter_policy.lng | 13 +++++++++++++ interface/web/mail/lib/lang/pt.lng | 2 ++ .../mail/lib/lang/pt_mail_domain_catchall.lng | 1 + interface/web/mail/lib/lang/pt_mail_get.lng | 2 +- .../web/mail/lib/lang/pt_spamfilter_policy.lng | 13 +++++++++++++ interface/web/mail/lib/lang/ro.lng | 2 ++ .../mail/lib/lang/ro_mail_domain_catchall.lng | 1 + interface/web/mail/lib/lang/ro_mail_get.lng | 2 +- .../web/mail/lib/lang/ro_spamfilter_policy.lng | 13 +++++++++++++ interface/web/mail/lib/lang/ru.lng | 2 ++ .../mail/lib/lang/ru_mail_domain_catchall.lng | 1 + interface/web/mail/lib/lang/ru_mail_get.lng | 2 +- .../web/mail/lib/lang/ru_mail_user_filter.lng | 2 +- .../web/mail/lib/lang/ru_spamfilter_policy.lng | 13 +++++++++++++ interface/web/mail/lib/lang/se.lng | 2 ++ .../mail/lib/lang/se_mail_domain_catchall.lng | 1 + interface/web/mail/lib/lang/se_mail_get.lng | 2 +- .../web/mail/lib/lang/se_spamfilter_policy.lng | 13 +++++++++++++ interface/web/mail/lib/lang/sk.lng | 2 ++ .../mail/lib/lang/sk_mail_domain_catchall.lng | 1 + interface/web/mail/lib/lang/sk_mail_get.lng | 2 +- .../web/mail/lib/lang/sk_spamfilter_policy.lng | 13 +++++++++++++ interface/web/mail/lib/lang/tr.lng | 2 ++ .../mail/lib/lang/tr_mail_domain_catchall.lng | 1 + interface/web/mail/lib/lang/tr_mail_get.lng | 2 +- .../web/mail/lib/lang/tr_spamfilter_policy.lng | 13 +++++++++++++ .../mailuser/lib/lang/ru_mail_user_filter.lng | 2 +- .../monitor/lib/lang/ar_dataloghistory_list.lng | 12 ++++++------ .../monitor/lib/lang/bg_dataloghistory_list.lng | 12 ++++++------ .../monitor/lib/lang/br_dataloghistory_list.lng | 12 ++++++------ .../monitor/lib/lang/ca_dataloghistory_list.lng | 12 ++++++------ .../monitor/lib/lang/dk_dataloghistory_list.lng | 12 ++++++------ .../monitor/lib/lang/el_dataloghistory_list.lng | 12 ++++++------ interface/web/monitor/lib/lang/es.lng | 2 +- .../monitor/lib/lang/es_dataloghistory_list.lng | 12 ++++++------ .../monitor/lib/lang/fi_dataloghistory_list.lng | 12 ++++++------ .../monitor/lib/lang/fr_dataloghistory_list.lng | 12 ++++++------ .../monitor/lib/lang/hr_dataloghistory_list.lng | 12 ++++++------ .../monitor/lib/lang/hu_dataloghistory_list.lng | 12 ++++++------ .../monitor/lib/lang/id_dataloghistory_list.lng | 12 ++++++------ .../monitor/lib/lang/it_dataloghistory_list.lng | 12 ++++++------ .../monitor/lib/lang/ja_dataloghistory_list.lng | 12 ++++++------ .../monitor/lib/lang/nl_dataloghistory_list.lng | 12 ++++++------ .../monitor/lib/lang/pl_dataloghistory_list.lng | 12 ++++++------ .../monitor/lib/lang/pt_dataloghistory_list.lng | 12 ++++++------ .../monitor/lib/lang/ro_dataloghistory_list.lng | 12 ++++++------ .../monitor/lib/lang/ru_dataloghistory_list.lng | 12 ++++++------ .../monitor/lib/lang/se_dataloghistory_list.lng | 12 ++++++------ .../monitor/lib/lang/sk_dataloghistory_list.lng | 12 ++++++------ .../monitor/lib/lang/tr_dataloghistory_list.lng | 12 ++++++------ interface/web/sites/lib/lang/ar.lng | 2 +- interface/web/sites/lib/lang/ar_aps.lng | 16 ++++++++-------- .../web/sites/lib/lang/ar_web_childdomain.lng | 2 +- .../web/sites/lib/lang/ar_web_subdomain.lng | 2 +- interface/web/sites/lib/lang/bg.lng | 2 +- interface/web/sites/lib/lang/bg_aps.lng | 16 ++++++++-------- .../web/sites/lib/lang/bg_web_childdomain.lng | 2 +- .../web/sites/lib/lang/bg_web_subdomain.lng | 2 +- interface/web/sites/lib/lang/br.lng | 2 +- interface/web/sites/lib/lang/br_cron.lng | 4 ++-- interface/web/sites/lib/lang/br_database.lng | 2 +- .../web/sites/lib/lang/br_database_user.lng | 2 +- interface/web/sites/lib/lang/br_ftp_user.lng | 4 ++-- interface/web/sites/lib/lang/br_shell_user.lng | 4 ++-- .../web/sites/lib/lang/br_web_aliasdomain.lng | 4 ++-- .../web/sites/lib/lang/br_web_childdomain.lng | 6 +++--- interface/web/sites/lib/lang/br_web_domain.lng | 6 +++--- .../web/sites/lib/lang/br_web_subdomain.lng | 2 +- .../web/sites/lib/lang/br_web_vhost_domain.lng | 4 ++-- .../sites/lib/lang/br_web_vhost_subdomain.lng | 10 +++++----- interface/web/sites/lib/lang/br_webdav_user.lng | 4 ++-- interface/web/sites/lib/lang/ca.lng | 2 +- interface/web/sites/lib/lang/ca_aps.lng | 16 ++++++++-------- .../web/sites/lib/lang/ca_web_childdomain.lng | 2 +- .../web/sites/lib/lang/ca_web_subdomain.lng | 2 +- interface/web/sites/lib/lang/cz.lng | 2 +- interface/web/sites/lib/lang/cz_aps.lng | 16 ++++++++-------- .../web/sites/lib/lang/cz_web_childdomain.lng | 2 +- .../web/sites/lib/lang/cz_web_subdomain.lng | 2 +- .../web/sites/lib/lang/de_web_childdomain.lng | 2 +- .../web/sites/lib/lang/de_web_subdomain.lng | 2 +- interface/web/sites/lib/lang/dk.lng | 2 +- interface/web/sites/lib/lang/dk_aps.lng | 16 ++++++++-------- .../web/sites/lib/lang/dk_web_childdomain.lng | 2 +- .../web/sites/lib/lang/dk_web_subdomain.lng | 2 +- interface/web/sites/lib/lang/el.lng | 2 +- interface/web/sites/lib/lang/el_aps.lng | 16 ++++++++-------- .../web/sites/lib/lang/el_web_childdomain.lng | 2 +- .../web/sites/lib/lang/el_web_subdomain.lng | 2 +- interface/web/sites/lib/lang/es.lng | 2 +- interface/web/sites/lib/lang/es_aps.lng | 16 ++++++++-------- .../web/sites/lib/lang/es_web_childdomain.lng | 4 ++-- .../web/sites/lib/lang/es_web_subdomain.lng | 2 +- .../web/sites/lib/lang/es_web_vhost_domain.lng | 2 +- interface/web/sites/lib/lang/fi.lng | 2 +- interface/web/sites/lib/lang/fi_aps.lng | 16 ++++++++-------- .../web/sites/lib/lang/fi_web_childdomain.lng | 2 +- .../web/sites/lib/lang/fi_web_subdomain.lng | 2 +- interface/web/sites/lib/lang/fr.lng | 2 +- interface/web/sites/lib/lang/fr_aps.lng | 16 ++++++++-------- .../web/sites/lib/lang/fr_web_childdomain.lng | 2 +- .../web/sites/lib/lang/fr_web_subdomain.lng | 2 +- interface/web/sites/lib/lang/hr.lng | 2 +- interface/web/sites/lib/lang/hr_aps.lng | 16 ++++++++-------- .../web/sites/lib/lang/hr_web_childdomain.lng | 2 +- .../web/sites/lib/lang/hr_web_subdomain.lng | 2 +- interface/web/sites/lib/lang/hu.lng | 2 +- interface/web/sites/lib/lang/hu_aps.lng | 16 ++++++++-------- .../web/sites/lib/lang/hu_web_childdomain.lng | 2 +- .../web/sites/lib/lang/hu_web_subdomain.lng | 2 +- interface/web/sites/lib/lang/id.lng | 2 +- interface/web/sites/lib/lang/id_aps.lng | 16 ++++++++-------- .../web/sites/lib/lang/id_web_childdomain.lng | 2 +- .../web/sites/lib/lang/id_web_subdomain.lng | 2 +- interface/web/sites/lib/lang/it.lng | 2 +- interface/web/sites/lib/lang/it_aps.lng | 16 ++++++++-------- .../web/sites/lib/lang/it_web_childdomain.lng | 2 +- .../web/sites/lib/lang/it_web_subdomain.lng | 2 +- interface/web/sites/lib/lang/ja.lng | 2 +- interface/web/sites/lib/lang/ja_aps.lng | 16 ++++++++-------- .../web/sites/lib/lang/ja_web_childdomain.lng | 2 +- .../web/sites/lib/lang/ja_web_subdomain.lng | 2 +- interface/web/sites/lib/lang/nl.lng | 2 +- interface/web/sites/lib/lang/nl_aps.lng | 16 ++++++++-------- .../web/sites/lib/lang/nl_web_childdomain.lng | 2 +- .../web/sites/lib/lang/nl_web_subdomain.lng | 2 +- interface/web/sites/lib/lang/pl_aps.lng | 16 ++++++++-------- interface/web/sites/lib/lang/pt.lng | 2 +- interface/web/sites/lib/lang/pt_aps.lng | 16 ++++++++-------- .../web/sites/lib/lang/pt_web_childdomain.lng | 2 +- .../web/sites/lib/lang/pt_web_subdomain.lng | 2 +- interface/web/sites/lib/lang/ro.lng | 2 +- interface/web/sites/lib/lang/ro_aps.lng | 16 ++++++++-------- .../web/sites/lib/lang/ro_web_childdomain.lng | 2 +- .../web/sites/lib/lang/ro_web_subdomain.lng | 2 +- interface/web/sites/lib/lang/ru.lng | 2 +- interface/web/sites/lib/lang/ru_aps.lng | 16 ++++++++-------- interface/web/sites/lib/lang/ru_database.lng | 2 +- .../web/sites/lib/lang/ru_database_user.lng | 2 +- .../web/sites/lib/lang/ru_web_childdomain.lng | 2 +- .../web/sites/lib/lang/ru_web_subdomain.lng | 2 +- interface/web/sites/lib/lang/se.lng | 2 +- interface/web/sites/lib/lang/se_aps.lng | 16 ++++++++-------- .../web/sites/lib/lang/se_web_childdomain.lng | 2 +- .../web/sites/lib/lang/se_web_subdomain.lng | 2 +- interface/web/sites/lib/lang/sk.lng | 2 +- interface/web/sites/lib/lang/sk_aps.lng | 16 ++++++++-------- .../web/sites/lib/lang/sk_web_childdomain.lng | 2 +- .../web/sites/lib/lang/sk_web_subdomain.lng | 2 +- interface/web/sites/lib/lang/tr.lng | 2 +- interface/web/sites/lib/lang/tr_aps.lng | 16 ++++++++-------- .../web/sites/lib/lang/tr_web_childdomain.lng | 2 +- .../web/sites/lib/lang/tr_web_subdomain.lng | 2 +- interface/web/vm/lib/lang/dk_openvz_template.lng | 2 +- interface/web/vm/lib/lang/es_openvz_template.lng | 2 +- interface/web/vm/lib/lang/tr_openvz_template.lng | 2 +- 394 files changed, 1113 insertions(+), 651 deletions(-) diff --git a/interface/lib/lang/ar.lng b/interface/lib/lang/ar.lng index c8ee365e4..25dd92083 100644 --- a/interface/lib/lang/ar.lng +++ b/interface/lib/lang/ar.lng @@ -145,7 +145,7 @@ $wb['strength_2'] = 'Fair'; $wb['strength_3'] = 'Good'; $wb['strength_4'] = 'Strong'; $wb['strength_5'] = 'Very Strong'; -$wb['weak_password_txt'] = 'The chosen password does not match the security guidelines. It has to be at least {chars} chars in length and have a strength of \"{strength}\".'; +$wb['weak_password_txt'] = 'The chosen password does not match the security guidelines. It has to be at least {chars} chars in length and have a strength of \\"{strength}\\".'; $wb['weak_password_length_txt'] = 'The chosen password does not match the security guidelines. It has to be at least {chars} chars in length.'; $wb['security_check1_txt'] = 'Check for security permission:'; $wb['security_check2_txt'] = 'failed.'; diff --git a/interface/lib/lang/bg.lng b/interface/lib/lang/bg.lng index eafc8334d..ff1e39fe3 100644 --- a/interface/lib/lang/bg.lng +++ b/interface/lib/lang/bg.lng @@ -145,7 +145,7 @@ $wb['strength_2'] = 'Fair'; $wb['strength_3'] = 'Good'; $wb['strength_4'] = 'Strong'; $wb['strength_5'] = 'Very Strong'; -$wb['weak_password_txt'] = 'The chosen password does not match the security guidelines. It has to be at least {chars} chars in length and have a strength of \"{strength}\".'; +$wb['weak_password_txt'] = 'The chosen password does not match the security guidelines. It has to be at least {chars} chars in length and have a strength of \\"{strength}\\".'; $wb['weak_password_length_txt'] = 'The chosen password does not match the security guidelines. It has to be at least {chars} chars in length.'; $wb['security_check1_txt'] = 'Check for security permission:'; $wb['security_check2_txt'] = 'failed.'; diff --git a/interface/lib/lang/ca.lng b/interface/lib/lang/ca.lng index 03b9e65a0..c39cd0db2 100644 --- a/interface/lib/lang/ca.lng +++ b/interface/lib/lang/ca.lng @@ -145,7 +145,7 @@ $wb['strength_2'] = 'Moyen'; $wb['strength_3'] = 'Bon'; $wb['strength_4'] = 'Fort'; $wb['strength_5'] = 'Très fort'; -$wb['weak_password_txt'] = 'Le mot de passe choisi ne rencontre pas les minimas requis : {chars} caractères minimums et une force de \"{strength}\".'; +$wb['weak_password_txt'] = 'Le mot de passe choisi ne rencontre pas les minimas requis : {chars} caractères minimums et une force de \\"{strength}\\".'; $wb['weak_password_length_txt'] = 'Le mot de passe choisi ne rencontre pas les minimas requis : {chars} caractères minimums.'; $wb['security_check1_txt'] = 'Vérifier les permissions de sécurité:'; $wb['security_check2_txt'] = 'Echec'; diff --git a/interface/lib/lang/cz.lng b/interface/lib/lang/cz.lng index fdf9053da..eeb081929 100644 --- a/interface/lib/lang/cz.lng +++ b/interface/lib/lang/cz.lng @@ -145,7 +145,7 @@ $wb['strength_2'] = 'Podprůměrná'; $wb['strength_3'] = 'Dobrá'; $wb['strength_4'] = 'Silná'; $wb['strength_5'] = 'Velmi silná'; -$wb['weak_password_txt'] = 'Zvolené heslo neodpovídá požadavkům zásad pro tvorbu hesel. Heslo musí být alespoň {chars} znaků dlouhé a mající sílu \"{strength}\".'; +$wb['weak_password_txt'] = 'Zvolené heslo neodpovídá požadavkům zásad pro tvorbu hesel. Heslo musí být alespoň {chars} znaků dlouhé a mající sílu \\"{strength}\\".'; $wb['weak_password_length_txt'] = 'Zvolené heslo neodpovídá požadavkům zásad pro tvorbu hesel. Heslo musí být alespoň {chars} znaků dlouhé.'; $wb['security_check1_txt'] = 'Check for security permission:'; $wb['security_check2_txt'] = 'failed.'; diff --git a/interface/lib/lang/de.lng b/interface/lib/lang/de.lng index bc217c30b..61551ceea 100644 --- a/interface/lib/lang/de.lng +++ b/interface/lib/lang/de.lng @@ -152,11 +152,10 @@ $wb['strength_2'] = 'Mittel'; $wb['strength_3'] = 'Gut'; $wb['strength_4'] = 'Stark'; $wb['strength_5'] = 'Sehr stark'; -$wb['weak_password_txt'] = 'Das gewählte Passwort erfüllt die Sicherheitsanforderungen nicht. Es muss mindestens {chars} Zeichen lang sein und die Stärke \"{strength}\" besitzen.'; +$wb['weak_password_txt'] = 'Das gewählte Passwort erfüllt die Sicherheitsanforderungen nicht. Es muss mindestens {chars} Zeichen lang sein und die Stärke \\"{strength}\\" besitzen.'; $wb['weak_password_length_txt'] = 'Das gewählte Passwort erfüllt die Sicherheitsanforderungen nicht. Es muss mindestens {chars} Zeichen lang sein.'; $wb['security_check1_txt'] = 'Sicherheitsüberprüfung für:'; $wb['security_check2_txt'] = 'fehlgeschlagen.'; $wb['select_directive_snippet_txt'] = 'Direktiven Schnipsel'; $wb['select_master_directive_snippet_txt'] = 'Master Direktiven Schnipsel'; -$wb['add_header_txt'] = 'Header (fügt "X-Spam: Yes" hinzu)'; -$wb['rewrite_subject_txt'] = 'Betreff (fügt "***SPAM***" am Anfang hinzu)'; +?> diff --git a/interface/lib/lang/dk.lng b/interface/lib/lang/dk.lng index 2f7aeb279..798d2ccd4 100644 --- a/interface/lib/lang/dk.lng +++ b/interface/lib/lang/dk.lng @@ -146,7 +146,7 @@ $wb['strength_2'] = 'Nogenlunde'; $wb['strength_3'] = 'God'; $wb['strength_4'] = 'Stærk'; $wb['strength_5'] = 'Meget Stærk'; -$wb['weak_password_txt'] = 'Den valgte adgangskode matcher ikke retningslinjerne for sikkerhedsindstillingerne. Det skal være mindst {chars} tegn i længden og have en styrke på \"{strength}\".'; +$wb['weak_password_txt'] = 'Den valgte adgangskode matcher ikke retningslinjerne for sikkerhedsindstillingerne. Det skal være mindst {chars} tegn i længden og have en styrke på \\"{strength}\\".'; $wb['weak_password_length_txt'] = 'Den valgte adgangskode matcher ikke retningslinjerne for sikkerhedsindstillingerne. Det skal være mindst {chars} tegn i længden.'; $wb['security_check1_txt'] = 'Check for sikkerheds tilladelse:'; $wb['security_check2_txt'] = 'mislykkedes.'; diff --git a/interface/lib/lang/el.lng b/interface/lib/lang/el.lng index 53cd56f17..382bf4a75 100644 --- a/interface/lib/lang/el.lng +++ b/interface/lib/lang/el.lng @@ -145,7 +145,7 @@ $wb['strength_2'] = 'Fair'; $wb['strength_3'] = 'Good'; $wb['strength_4'] = 'Strong'; $wb['strength_5'] = 'Very Strong'; -$wb['weak_password_txt'] = 'The chosen password does not match the security guidelines. It has to be at least {chars} chars in length and have a strength of \"{strength}\".'; +$wb['weak_password_txt'] = 'The chosen password does not match the security guidelines. It has to be at least {chars} chars in length and have a strength of \\"{strength}\\".'; $wb['weak_password_length_txt'] = 'The chosen password does not match the security guidelines. It has to be at least {chars} chars in length.'; $wb['security_check1_txt'] = 'Check for security permission:'; $wb['security_check2_txt'] = 'failed.'; diff --git a/interface/lib/lang/es.lng b/interface/lib/lang/es.lng index 8b9bc94ef..3b1bae0b4 100644 --- a/interface/lib/lang/es.lng +++ b/interface/lib/lang/es.lng @@ -146,7 +146,7 @@ $wb['strength_2'] = 'Aceptable'; $wb['strength_3'] = 'Buena'; $wb['strength_4'] = 'Fuerte'; $wb['strength_5'] = 'Muy fuerte'; -$wb['weak_password_txt'] = 'La contraseña elegida no coincide con las directrices de seguridad. Debe contener al menos {chars} caracteres y tener una fortaleza \"{strength}\".'; +$wb['weak_password_txt'] = 'La contraseña elegida no coincide con las directrices de seguridad. Debe contener al menos {chars} caracteres y tener una fortaleza \\"{strength}\\".'; $wb['weak_password_length_txt'] = 'La contraseña elegida no coincide con las directrices de seguridad. Debe contener al menos {chars} caracteres.'; $wb['security_check1_txt'] = 'Verificar permisos de seguridad:'; $wb['security_check2_txt'] = 'ha fallado.'; diff --git a/interface/lib/lang/fi.lng b/interface/lib/lang/fi.lng index 0439142c5..d4c23ca77 100755 --- a/interface/lib/lang/fi.lng +++ b/interface/lib/lang/fi.lng @@ -145,7 +145,7 @@ $wb['strength_2'] = 'Fair'; $wb['strength_3'] = 'Good'; $wb['strength_4'] = 'Strong'; $wb['strength_5'] = 'Very Strong'; -$wb['weak_password_txt'] = 'The chosen password does not match the security guidelines. It has to be at least {chars} chars in length and have a strength of \"{strength}\".'; +$wb['weak_password_txt'] = 'The chosen password does not match the security guidelines. It has to be at least {chars} chars in length and have a strength of \\"{strength}\\".'; $wb['weak_password_length_txt'] = 'The chosen password does not match the security guidelines. It has to be at least {chars} chars in length.'; $wb['security_check1_txt'] = 'Check for security permission:'; $wb['security_check2_txt'] = 'failed.'; diff --git a/interface/lib/lang/hr.lng b/interface/lib/lang/hr.lng index c6a1b74d8..310371be4 100644 --- a/interface/lib/lang/hr.lng +++ b/interface/lib/lang/hr.lng @@ -145,7 +145,7 @@ $wb['strength_2'] = 'Dobro'; $wb['strength_3'] = 'Bolje'; $wb['strength_4'] = 'Jako'; $wb['strength_5'] = 'Odlično'; -$wb['weak_password_txt'] = 'Unešena šifra nije dobra. Mora biti dugačka barem {chars} znakova i jačine \"{strength}\".'; +$wb['weak_password_txt'] = 'Unešena šifra nije dobra. Mora biti dugačka barem {chars} znakova i jačine \\"{strength}\\".'; $wb['weak_password_length_txt'] = 'Unešena šifra nije dobra. Mora biti dugačka barem {chars} znakova.'; $wb['security_check1_txt'] = 'Provjerite sigurnosne dozvole:'; $wb['security_check2_txt'] = 'greška.'; diff --git a/interface/lib/lang/hu.lng b/interface/lib/lang/hu.lng index 1ef741d6a..dd4cce79b 100644 --- a/interface/lib/lang/hu.lng +++ b/interface/lib/lang/hu.lng @@ -145,7 +145,7 @@ $wb['strength_2'] = 'Fair'; $wb['strength_3'] = 'Good'; $wb['strength_4'] = 'Strong'; $wb['strength_5'] = 'Very Strong'; -$wb['weak_password_txt'] = 'The chosen password does not match the security guidelines. It has to be at least {chars} chars in length and have a strength of \"{strength}\".'; +$wb['weak_password_txt'] = 'The chosen password does not match the security guidelines. It has to be at least {chars} chars in length and have a strength of \\"{strength}\\".'; $wb['weak_password_length_txt'] = 'The chosen password does not match the security guidelines. It has to be at least {chars} chars in length.'; $wb['security_check1_txt'] = 'Check for security permission:'; $wb['security_check2_txt'] = 'failed.'; diff --git a/interface/lib/lang/id.lng b/interface/lib/lang/id.lng index 6483418b3..bd90fd5a1 100644 --- a/interface/lib/lang/id.lng +++ b/interface/lib/lang/id.lng @@ -145,7 +145,7 @@ $wb['strength_2'] = 'Fair'; $wb['strength_3'] = 'Good'; $wb['strength_4'] = 'Strong'; $wb['strength_5'] = 'Very Strong'; -$wb['weak_password_txt'] = 'The chosen password does not match the security guidelines. It has to be at least {chars} chars in length and have a strength of \"{strength}\".'; +$wb['weak_password_txt'] = 'The chosen password does not match the security guidelines. It has to be at least {chars} chars in length and have a strength of \\"{strength}\\".'; $wb['weak_password_length_txt'] = 'The chosen password does not match the security guidelines. It has to be at least {chars} chars in length.'; $wb['security_check1_txt'] = 'Check for security permission:'; $wb['security_check2_txt'] = 'failed.'; diff --git a/interface/lib/lang/it.lng b/interface/lib/lang/it.lng index 332cd1ab9..33d16c3d5 100644 --- a/interface/lib/lang/it.lng +++ b/interface/lib/lang/it.lng @@ -138,7 +138,7 @@ $wb['strength_2'] = 'Mediocre'; $wb['strength_3'] = 'Buono'; $wb['strength_4'] = 'Forte'; $wb['strength_5'] = 'Molto forte'; -$wb['weak_password_txt'] = 'La password indicata non segue le impostazioni di sicurezza. Deve essere lunga almeno {chars} caratteri ed avere un livello di sicurezza pari a \"{strength}\".'; +$wb['weak_password_txt'] = 'La password indicata non segue le impostazioni di sicurezza. Deve essere lunga almeno {chars} caratteri ed avere un livello di sicurezza pari a \\"{strength}\\".'; $wb['weak_password_length_txt'] = 'La password indicata non segue le impostazioni di sicurezza. Deve essere lunga almeno {chars} caratteri.'; $wb['security_check1_txt'] = 'Verifica permessi di sicurezza:'; $wb['security_check2_txt'] = 'fallito.'; diff --git a/interface/lib/lang/ja.lng b/interface/lib/lang/ja.lng index 5f8b20add..2a56e7739 100644 --- a/interface/lib/lang/ja.lng +++ b/interface/lib/lang/ja.lng @@ -145,7 +145,7 @@ $wb['strength_2'] = 'Fair'; $wb['strength_3'] = 'Good'; $wb['strength_4'] = 'Strong'; $wb['strength_5'] = 'Very Strong'; -$wb['weak_password_txt'] = 'The chosen password does not match the security guidelines. It has to be at least {chars} chars in length and have a strength of \"{strength}\".'; +$wb['weak_password_txt'] = 'The chosen password does not match the security guidelines. It has to be at least {chars} chars in length and have a strength of \\"{strength}\\".'; $wb['weak_password_length_txt'] = 'The chosen password does not match the security guidelines. It has to be at least {chars} chars in length.'; $wb['security_check1_txt'] = 'Check for security permission:'; $wb['security_check2_txt'] = 'failed.'; diff --git a/interface/lib/lang/nl.lng b/interface/lib/lang/nl.lng index 561e4cdb7..888f9c020 100644 --- a/interface/lib/lang/nl.lng +++ b/interface/lib/lang/nl.lng @@ -145,7 +145,7 @@ $wb['strength_2'] = 'Fair'; $wb['strength_3'] = 'Good'; $wb['strength_4'] = 'Strong'; $wb['strength_5'] = 'Very Strong'; -$wb['weak_password_txt'] = 'The chosen password does not match the security guidelines. It has to be at least {chars} chars in length and have a strength of \"{strength}\".'; +$wb['weak_password_txt'] = 'The chosen password does not match the security guidelines. It has to be at least {chars} chars in length and have a strength of \\"{strength}\\".'; $wb['weak_password_length_txt'] = 'The chosen password does not match the security guidelines. It has to be at least {chars} chars in length.'; $wb['security_check1_txt'] = 'Check for security permission:'; $wb['security_check2_txt'] = 'failed.'; diff --git a/interface/lib/lang/pl.lng b/interface/lib/lang/pl.lng index abbb98ee1..b5b62c816 100644 --- a/interface/lib/lang/pl.lng +++ b/interface/lib/lang/pl.lng @@ -145,7 +145,7 @@ $wb['strength_2'] = 'Fair'; $wb['strength_3'] = 'Good'; $wb['strength_4'] = 'Strong'; $wb['strength_5'] = 'Very Strong'; -$wb['weak_password_txt'] = 'The chosen password does not match the security guidelines. It has to be at least {chars} chars in length and have a strength of \"{strength}\".'; +$wb['weak_password_txt'] = 'The chosen password does not match the security guidelines. It has to be at least {chars} chars in length and have a strength of \\"{strength}\\".'; $wb['weak_password_length_txt'] = 'The chosen password does not match the security guidelines. It has to be at least {chars} chars in length.'; $wb['security_check1_txt'] = 'Check for security permission:'; $wb['security_check2_txt'] = 'failed.'; diff --git a/interface/lib/lang/pt.lng b/interface/lib/lang/pt.lng index 026aff80a..7845520a5 100644 --- a/interface/lib/lang/pt.lng +++ b/interface/lib/lang/pt.lng @@ -145,7 +145,7 @@ $wb['strength_2'] = 'Fair'; $wb['strength_3'] = 'Good'; $wb['strength_4'] = 'Strong'; $wb['strength_5'] = 'Very Strong'; -$wb['weak_password_txt'] = 'The chosen password does not match the security guidelines. It has to be at least {chars} chars in length and have a strength of \"{strength}\".'; +$wb['weak_password_txt'] = 'The chosen password does not match the security guidelines. It has to be at least {chars} chars in length and have a strength of \\"{strength}\\".'; $wb['weak_password_length_txt'] = 'The chosen password does not match the security guidelines. It has to be at least {chars} chars in length.'; $wb['security_check1_txt'] = 'Check for security permission:'; $wb['security_check2_txt'] = 'failed.'; diff --git a/interface/lib/lang/ro.lng b/interface/lib/lang/ro.lng index bfbd725da..613f2377a 100644 --- a/interface/lib/lang/ro.lng +++ b/interface/lib/lang/ro.lng @@ -145,7 +145,7 @@ $wb['strength_2'] = 'Fair'; $wb['strength_3'] = 'Good'; $wb['strength_4'] = 'Strong'; $wb['strength_5'] = 'Very Strong'; -$wb['weak_password_txt'] = 'The chosen password does not match the security guidelines. It has to be at least {chars} chars in length and have a strength of \"{strength}\".'; +$wb['weak_password_txt'] = 'The chosen password does not match the security guidelines. It has to be at least {chars} chars in length and have a strength of \\"{strength}\\".'; $wb['weak_password_length_txt'] = 'The chosen password does not match the security guidelines. It has to be at least {chars} chars in length.'; $wb['security_check1_txt'] = 'Check for security permission:'; $wb['security_check2_txt'] = 'failed.'; diff --git a/interface/lib/lang/ru.lng b/interface/lib/lang/ru.lng index 823ef44c7..e5e8ce627 100644 --- a/interface/lib/lang/ru.lng +++ b/interface/lib/lang/ru.lng @@ -145,7 +145,7 @@ $wb['strength_2'] = 'Средний'; $wb['strength_3'] = 'Хороший'; $wb['strength_4'] = 'Стойкий'; $wb['strength_5'] = 'Очень стойкий'; -$wb['weak_password_txt'] = 'Выбранный пароль не соответствует требованиям безопасности. Он должен быть как минимум {chars} символов в длину и стойкость \"{strength}\".'; +$wb['weak_password_txt'] = 'Выбранный пароль не соответствует требованиям безопасности. Он должен быть как минимум {chars} символов в длину и стойкость \\"{strength}\\".'; $wb['weak_password_length_txt'] = 'Выбранный пароль не соответствует требованиям безопасности. Он должен быть как минимум {chars} символов в длину.'; $wb['security_check1_txt'] = 'Проверка разрешений безопасности:'; $wb['security_check2_txt'] = 'не удалось.'; diff --git a/interface/lib/lang/se.lng b/interface/lib/lang/se.lng index 4f67c2802..b6767144d 100644 --- a/interface/lib/lang/se.lng +++ b/interface/lib/lang/se.lng @@ -145,7 +145,7 @@ $wb['strength_2'] = 'Sådär'; $wb['strength_3'] = 'Bra'; $wb['strength_4'] = 'Starkt'; $wb['strength_5'] = 'Väldigt starkt'; -$wb['weak_password_txt'] = 'The chosen password does not match the security guidelines. It has to be at least {chars} chars in length and have a strength of \"{strength}\".'; +$wb['weak_password_txt'] = 'The chosen password does not match the security guidelines. It has to be at least {chars} chars in length and have a strength of \\"{strength}\\".'; $wb['weak_password_length_txt'] = 'The chosen password does not match the security guidelines. It has to be at least {chars} chars in length.'; $wb['security_check1_txt'] = 'Check for security permission:'; $wb['security_check2_txt'] = 'failed.'; diff --git a/interface/lib/lang/sk.lng b/interface/lib/lang/sk.lng index b647226e3..6b4ef7676 100644 --- a/interface/lib/lang/sk.lng +++ b/interface/lib/lang/sk.lng @@ -145,7 +145,7 @@ $wb['strength_2'] = 'Fair'; $wb['strength_3'] = 'Good'; $wb['strength_4'] = 'Strong'; $wb['strength_5'] = 'Very Strong'; -$wb['weak_password_txt'] = 'The chosen password does not match the security guidelines. It has to be at least {chars} chars in length and have a strength of \"{strength}\".'; +$wb['weak_password_txt'] = 'The chosen password does not match the security guidelines. It has to be at least {chars} chars in length and have a strength of \\"{strength}\\".'; $wb['weak_password_length_txt'] = 'The chosen password does not match the security guidelines. It has to be at least {chars} chars in length.'; $wb['security_check1_txt'] = 'Check for security permission:'; $wb['security_check2_txt'] = 'failed.'; diff --git a/interface/lib/lang/tr.lng b/interface/lib/lang/tr.lng index 551fae8d8..115bc890b 100644 --- a/interface/lib/lang/tr.lng +++ b/interface/lib/lang/tr.lng @@ -146,7 +146,7 @@ $wb['strength_2'] = 'Yeterli'; $wb['strength_3'] = 'İyi'; $wb['strength_4'] = 'Güçlü'; $wb['strength_5'] = 'Çok Güçlü'; -$wb['weak_password_txt'] = 'Yazdığınız parola güvenlik ilkesine uygun değil. Parola en az {chars} karakter uzunluğunda ve \"{strength}\" güçlüğünde olmalı.'; +$wb['weak_password_txt'] = 'Yazdığınız parola güvenlik ilkesine uygun değil. Parola en az {chars} karakter uzunluğunda ve \\"{strength}\\" güçlüğünde olmalı.'; $wb['weak_password_length_txt'] = 'Yazdığınız parola güvenlik ilkesine uygun değil. Parola en az {chars} karakter uzunluğunda olmalı.'; $wb['security_check1_txt'] = 'Güvenlik iznini denetle:'; $wb['security_check2_txt'] = 'başarısız.'; diff --git a/interface/web/admin/lib/lang/ar_server_config.lng b/interface/web/admin/lib/lang/ar_server_config.lng index 55d3f8949..bccdcc42c 100644 --- a/interface/web/admin/lib/lang/ar_server_config.lng +++ b/interface/web/admin/lib/lang/ar_server_config.lng @@ -296,4 +296,8 @@ $wb['php_default_name_txt'] = 'Description Default PHP-Version'; $wb['php_default_name_error_empty'] = 'Description Default PHP-Version must not be empty'; $wb['error_mailbox_message_size_txt'] = 'Mailbox size must be larger or equal to message size'; $wb['php_fpm_reload_mode_txt'] = 'PHP-FPM reload mode'; +$wb['content_filter_txt'] = 'Content Filter'; +$wb['rspamd_url_txt'] = 'Rspamd URL'; +$wb['rspamd_user_txt'] = 'Rspamd User'; +$wb['rspamd_password_txt'] = 'Rspamd Password'; ?> diff --git a/interface/web/admin/lib/lang/ar_system_config.lng b/interface/web/admin/lib/lang/ar_system_config.lng index b65092906..0a830014d 100644 --- a/interface/web/admin/lib/lang/ar_system_config.lng +++ b/interface/web/admin/lib/lang/ar_system_config.lng @@ -67,7 +67,7 @@ $wb['customer_no_template_error_regex_txt'] = 'The customer No. template contain $wb['customer_no_start_txt'] = 'Customer No. start value'; $wb['customer_no_counter_txt'] = 'Customer No. counter'; $wb['session_timeout_txt'] = 'Session timeout (minutes)'; -$wb['session_allow_endless_txt'] = 'Enable \"stay logged in\"'; +$wb['session_allow_endless_txt'] = 'Enable \\"stay logged in\\"'; $wb['No'] = 'No'; $wb['min_password_length_txt'] = 'Minimum password length'; $wb['min_password_strength_txt'] = 'Minimum password strength'; diff --git a/interface/web/admin/lib/lang/ar_users.lng b/interface/web/admin/lib/lang/ar_users.lng index 9d9923b63..dcbc4f472 100644 --- a/interface/web/admin/lib/lang/ar_users.lng +++ b/interface/web/admin/lib/lang/ar_users.lng @@ -29,7 +29,7 @@ $wb['generate_password_txt'] = 'Generate Password'; $wb['repeat_password_txt'] = 'Repeat Password'; $wb['password_mismatch_txt'] = 'The passwords do not match.'; $wb['password_match_txt'] = 'The passwords do match.'; -$wb['username_error_collision'] = 'The username may not be web or web plus a number.\"'; +$wb['username_error_collision'] = 'The username may not be web or web plus a number.\\"'; $wb['client_not_admin_err'] = 'A user that belongs to a client can not be set to type: admin'; $wb['lost_password_function_txt'] = 'Forgot password function is available'; $wb['no_user_insert'] = 'CP-Users of type -user- get added and updated automatically when you add a client or reseller.'; diff --git a/interface/web/admin/lib/lang/bg_server_config.lng b/interface/web/admin/lib/lang/bg_server_config.lng index 6b6377045..39531461c 100644 --- a/interface/web/admin/lib/lang/bg_server_config.lng +++ b/interface/web/admin/lib/lang/bg_server_config.lng @@ -296,4 +296,8 @@ $wb['php_default_name_txt'] = 'Description Default PHP-Version'; $wb['php_default_name_error_empty'] = 'Description Default PHP-Version must not be empty'; $wb['error_mailbox_message_size_txt'] = 'Mailbox size must be larger or equal to message size'; $wb['php_fpm_reload_mode_txt'] = 'PHP-FPM reload mode'; +$wb['content_filter_txt'] = 'Content Filter'; +$wb['rspamd_url_txt'] = 'Rspamd URL'; +$wb['rspamd_user_txt'] = 'Rspamd User'; +$wb['rspamd_password_txt'] = 'Rspamd Password'; ?> diff --git a/interface/web/admin/lib/lang/bg_system_config.lng b/interface/web/admin/lib/lang/bg_system_config.lng index 15d533870..130cb596a 100644 --- a/interface/web/admin/lib/lang/bg_system_config.lng +++ b/interface/web/admin/lib/lang/bg_system_config.lng @@ -67,7 +67,7 @@ $wb['customer_no_template_error_regex_txt'] = 'The customer No. template contain $wb['customer_no_start_txt'] = 'Customer No. start value'; $wb['customer_no_counter_txt'] = 'Customer No. counter'; $wb['session_timeout_txt'] = 'Session timeout (minutes)'; -$wb['session_allow_endless_txt'] = 'Enable \"stay logged in\"'; +$wb['session_allow_endless_txt'] = 'Enable \\"stay logged in\\"'; $wb['No'] = 'No'; $wb['min_password_length_txt'] = 'Minimum password length'; $wb['min_password_strength_txt'] = 'Minimum password strength'; diff --git a/interface/web/admin/lib/lang/bg_users.lng b/interface/web/admin/lib/lang/bg_users.lng index e36d2d9d3..e8dc631a5 100644 --- a/interface/web/admin/lib/lang/bg_users.lng +++ b/interface/web/admin/lib/lang/bg_users.lng @@ -29,7 +29,7 @@ $wb['generate_password_txt'] = 'Generate Password'; $wb['repeat_password_txt'] = 'Repeat Password'; $wb['password_mismatch_txt'] = 'The passwords do not match.'; $wb['password_match_txt'] = 'The passwords do match.'; -$wb['username_error_collision'] = 'The username may not be web or web plus a number.\"'; +$wb['username_error_collision'] = 'The username may not be web or web plus a number.\\"'; $wb['client_not_admin_err'] = 'A user that belongs to a client can not be set to type: admin'; $wb['lost_password_function_txt'] = 'Forgot password function is available'; $wb['no_user_insert'] = 'CP-Users of type -user- get added and updated automatically when you add a client or reseller.'; diff --git a/interface/web/admin/lib/lang/br_server_config.lng b/interface/web/admin/lib/lang/br_server_config.lng index 088dac70b..25ffb0699 100644 --- a/interface/web/admin/lib/lang/br_server_config.lng +++ b/interface/web/admin/lib/lang/br_server_config.lng @@ -296,4 +296,8 @@ $wb['php_default_name_txt'] = 'Description Default PHP-Version'; $wb['error_mailbox_message_size_txt'] = 'Mailbox size must be larger or equal to message size'; $wb['php_default_name_error_empty'] = 'Description Default PHP-Version must not be empty'; $wb['php_fpm_reload_mode_txt'] = 'PHP-FPM reload mode'; +$wb['content_filter_txt'] = 'Content Filter'; +$wb['rspamd_url_txt'] = 'Rspamd URL'; +$wb['rspamd_user_txt'] = 'Rspamd User'; +$wb['rspamd_password_txt'] = 'Rspamd Password'; ?> diff --git a/interface/web/admin/lib/lang/br_system_config.lng b/interface/web/admin/lib/lang/br_system_config.lng index 3d8ea38e1..8688ca53a 100644 --- a/interface/web/admin/lib/lang/br_system_config.lng +++ b/interface/web/admin/lib/lang/br_system_config.lng @@ -67,7 +67,7 @@ $wb['customer_no_template_error_regex_txt'] = 'O número do gabarito do cliente $wb['customer_no_start_txt'] = 'Valor inicial do código do cliente'; $wb['customer_no_counter_txt'] = 'Contador de código do cliente'; $wb['session_timeout_txt'] = 'Duração da sessão (minutos)'; -$wb['session_allow_endless_txt'] = 'Habilitar \"Manter-me conectado\"'; +$wb['session_allow_endless_txt'] = 'Habilitar \\"Manter-me conectado\\"'; $wb['min_password_length_txt'] = 'Comprimento mínimo da senha'; $wb['min_password_strength_txt'] = 'Dificuldade mínima da senha'; $wb['company_name_txt'] = 'Nome da empresa no título da página'; diff --git a/interface/web/admin/lib/lang/ca_firewall.lng b/interface/web/admin/lib/lang/ca_firewall.lng index 0e08215f7..06a51c80c 100644 --- a/interface/web/admin/lib/lang/ca_firewall.lng +++ b/interface/web/admin/lib/lang/ca_firewall.lng @@ -6,6 +6,6 @@ $wb['tcp_port_help_txt'] = 'Separated by comma'; $wb['udp_port_help_txt'] = 'Separated by comma'; $wb['active_txt'] = 'Active'; $wb['firewall_error_unique'] = 'There is already a firewall record for this server.'; -$wb['tcp_ports_error_regex'] = 'Character not allowed in tcp port definition. Allowed characters are numbers, \":\" and \",\".'; -$wb['udp_ports_error_regex'] = 'Character not allowed in udp port definition. Allowed characters are numbers, \":\" and \",\".'; +$wb['tcp_ports_error_regex'] = 'Character not allowed in tcp port definition. Allowed characters are numbers, \\":\\" and \\",\\".'; +$wb['udp_ports_error_regex'] = 'Character not allowed in udp port definition. Allowed characters are numbers, \\":\\" and \\",\\".'; ?> diff --git a/interface/web/admin/lib/lang/ca_server_config.lng b/interface/web/admin/lib/lang/ca_server_config.lng index 42fb15c24..14f0b91d3 100644 --- a/interface/web/admin/lib/lang/ca_server_config.lng +++ b/interface/web/admin/lib/lang/ca_server_config.lng @@ -161,7 +161,7 @@ $wb['do_not_try_rescue_httpd_txt'] = 'Disable HTTPD monitoring'; $wb['do_not_try_rescue_mongodb_txt'] = 'Disable MongoDB monitoring'; $wb['do_not_try_rescue_mysql_txt'] = 'Disable MySQL monitoring'; $wb['do_not_try_rescue_mail_txt'] = 'Disable Email monitoring'; -$wb['rescue_description_txt'] = 'Information: If you want to shut down mysql you have to select the \"Disable MySQL monitor\" checkbox and then wait 2-3 minutes.
If you do not wait 2-3 minutes, rescue will try to restart mysql!'; +$wb['rescue_description_txt'] = 'Information: If you want to shut down mysql you have to select the \\"Disable MySQL monitor\\" checkbox and then wait 2-3 minutes.
If you do not wait 2-3 minutes, rescue will try to restart mysql!'; $wb['enable_sni_txt'] = 'Enable SNI'; $wb['set_folder_permissions_on_update_txt'] = 'Set folder permissions on update'; $wb['add_web_users_to_sshusers_group_txt'] = 'Add web users to -sshusers- group'; @@ -296,4 +296,8 @@ $wb['php_default_name_txt'] = 'Description Default PHP-Version'; $wb['php_default_name_error_empty'] = 'Description Default PHP-Version must not be empty'; $wb['error_mailbox_message_size_txt'] = 'Mailbox size must be larger or equal to message size'; $wb['php_fpm_reload_mode_txt'] = 'PHP-FPM reload mode'; +$wb['content_filter_txt'] = 'Content Filter'; +$wb['rspamd_url_txt'] = 'Rspamd URL'; +$wb['rspamd_user_txt'] = 'Rspamd User'; +$wb['rspamd_password_txt'] = 'Rspamd Password'; ?> diff --git a/interface/web/admin/lib/lang/ca_system_config.lng b/interface/web/admin/lib/lang/ca_system_config.lng index 326b3b275..cc3c11c6c 100644 --- a/interface/web/admin/lib/lang/ca_system_config.lng +++ b/interface/web/admin/lib/lang/ca_system_config.lng @@ -67,7 +67,7 @@ $wb['customer_no_template_error_regex_txt'] = 'The customer No. template contain $wb['customer_no_start_txt'] = 'Customer No. start value'; $wb['customer_no_counter_txt'] = 'Customer No. counter'; $wb['session_timeout_txt'] = 'Session timeout (minutes)'; -$wb['session_allow_endless_txt'] = 'Enable \"stay logged in\"'; +$wb['session_allow_endless_txt'] = 'Enable \\"stay logged in\\"'; $wb['No'] = 'No'; $wb['min_password_length_txt'] = 'Minimum password length'; $wb['min_password_strength_txt'] = 'Minimum password strength'; diff --git a/interface/web/admin/lib/lang/ca_users.lng b/interface/web/admin/lib/lang/ca_users.lng index 9d9923b63..dcbc4f472 100644 --- a/interface/web/admin/lib/lang/ca_users.lng +++ b/interface/web/admin/lib/lang/ca_users.lng @@ -29,7 +29,7 @@ $wb['generate_password_txt'] = 'Generate Password'; $wb['repeat_password_txt'] = 'Repeat Password'; $wb['password_mismatch_txt'] = 'The passwords do not match.'; $wb['password_match_txt'] = 'The passwords do match.'; -$wb['username_error_collision'] = 'The username may not be web or web plus a number.\"'; +$wb['username_error_collision'] = 'The username may not be web or web plus a number.\\"'; $wb['client_not_admin_err'] = 'A user that belongs to a client can not be set to type: admin'; $wb['lost_password_function_txt'] = 'Forgot password function is available'; $wb['no_user_insert'] = 'CP-Users of type -user- get added and updated automatically when you add a client or reseller.'; diff --git a/interface/web/admin/lib/lang/cz_remote_action.lng b/interface/web/admin/lib/lang/cz_remote_action.lng index 68da1c065..e1908e2d0 100644 --- a/interface/web/admin/lib/lang/cz_remote_action.lng +++ b/interface/web/admin/lib/lang/cz_remote_action.lng @@ -2,9 +2,9 @@ $wb['select_server_txt'] = 'Zvolit server'; $wb['btn_do_txt'] = 'Provést akci'; $wb['do_osupdate_caption'] = 'Aktualizace operačního systému na vzdáleném serveru.'; -$wb['do_osupdate_desc'] = 'Tato akce provede \"aptitude -y\" aktualizaci na vybraném serveru.

POUŽITÍ TÉTO AKCE NA VLASTNÍ NEBEZPEČÍ !'; +$wb['do_osupdate_desc'] = 'Tato akce provede \\"aptitude -y\\" aktualizaci na vybraném serveru.

POUŽITÍ TÉTO AKCE NA VLASTNÍ NEBEZPEČÍ !'; $wb['do_ispcupdate_caption'] = 'Provedení ISPConfig 3 - aktualizace na vzdáleném serveru'; -$wb['do_ispcupdate_desc'] = 'Tato akce provede \"ISPConfig 3\" aktualizaci na vašem vybraném serveru.

POUŽITÍ TÉTO AKCE NA VLASTNÍ NEBEZPEČÍ !'; +$wb['do_ispcupdate_desc'] = 'Tato akce provede \\"ISPConfig 3\\" aktualizaci na vašem vybraném serveru.

POUŽITÍ TÉTO AKCE NA VLASTNÍ NEBEZPEČÍ !'; $wb['action_scheduled'] = 'Akce je naplánována na provedení'; $wb['select_all_server'] = 'Všechny servery'; $wb['ispconfig_update_title'] = 'ISPConfig pokyny k aktualizaci'; diff --git a/interface/web/admin/lib/lang/cz_server_config.lng b/interface/web/admin/lib/lang/cz_server_config.lng index 40af41289..a97d78b8e 100644 --- a/interface/web/admin/lib/lang/cz_server_config.lng +++ b/interface/web/admin/lib/lang/cz_server_config.lng @@ -143,7 +143,7 @@ $wb['php_fpm_socket_dir_error_empty'] = 'PHP-FPM adresář pro socket je prázdn $wb['try_rescue_txt'] = 'Povolit monitorování služeb a restartovat při selhání'; $wb['do_not_try_rescue_mysql_txt'] = 'Zakázat MySQL monitorování'; $wb['do_not_try_rescue_mail_txt'] = 'Zakázat E-mail monitorování'; -$wb['rescue_description_txt'] = 'Informace: Pokud chcete např. vypnout MySQL službu zatrhněte políčko \"Zakázat MySQL monitorování\" změna se provede do 2-3 minut.
Pokud nepočkáte 2-3 minuty, monitorování nastartuje službu MySQL automaticky znovu !'; +$wb['rescue_description_txt'] = 'Informace: Pokud chcete např. vypnout MySQL službu zatrhněte políčko \\"Zakázat MySQL monitorování\\" změna se provede do 2-3 minut.
Pokud nepočkáte 2-3 minuty, monitorování nastartuje službu MySQL automaticky znovu !'; $wb['enable_sni_txt'] = 'Aktivovat SNI (Server Name Indication)'; $wb['do_not_try_rescue_httpd_txt'] = 'Zakázat HTTPD monitorování'; $wb['set_folder_permissions_on_update_txt'] = 'Nastavení oprávnění složky při aktualizaci'; @@ -296,4 +296,8 @@ $wb['php_default_name_txt'] = 'Description Default PHP-Version'; $wb['php_default_name_error_empty'] = 'Description Default PHP-Version must not be empty'; $wb['error_mailbox_message_size_txt'] = 'Mailbox size must be larger or equal to message size'; $wb['php_fpm_reload_mode_txt'] = 'PHP-FPM reload mode'; +$wb['content_filter_txt'] = 'Content Filter'; +$wb['rspamd_url_txt'] = 'Rspamd URL'; +$wb['rspamd_user_txt'] = 'Rspamd User'; +$wb['rspamd_password_txt'] = 'Rspamd Password'; ?> diff --git a/interface/web/admin/lib/lang/de_server_config.lng b/interface/web/admin/lib/lang/de_server_config.lng index 50b351456..960381e7c 100644 --- a/interface/web/admin/lib/lang/de_server_config.lng +++ b/interface/web/admin/lib/lang/de_server_config.lng @@ -299,4 +299,5 @@ $wb['php_fpm_reload_mode_txt'] = 'PHP-FPM reload Modus'; $wb['content_filter_txt'] = 'Content-Filter'; $wb['rspamd_url_txt'] = 'Rspamd-URL'; $wb['rspamd_user_txt'] = 'Rspamd-Benutzer'; -$wb['rspamd_password_txt'] = 'Rspamd-Passwort'; \ No newline at end of file +$wb['rspamd_password_txt'] = 'Rspamd-Passwort'; +?> diff --git a/interface/web/admin/lib/lang/dk_firewall.lng b/interface/web/admin/lib/lang/dk_firewall.lng index 9a2069838..96608b283 100644 --- a/interface/web/admin/lib/lang/dk_firewall.lng +++ b/interface/web/admin/lib/lang/dk_firewall.lng @@ -6,6 +6,6 @@ $wb['tcp_port_help_txt'] = 'Adskilt af komma'; $wb['udp_port_help_txt'] = 'Adskilt af komma'; $wb['active_txt'] = 'Aktiv'; $wb['firewall_error_unique'] = 'Der er allerede en firewall post for denne server.'; -$wb['tcp_ports_error_regex'] = 'Tegn ikke tilladt i tcp port definition. Tilladt tegn er tal, \":\" og \",\".'; -$wb['udp_ports_error_regex'] = 'Tegn ikke tilladt i udp port definition. Tilladt tegn er tal, \":\" og \",\".'; +$wb['tcp_ports_error_regex'] = 'Tegn ikke tilladt i tcp port definition. Tilladt tegn er tal, \\":\\" og \\",\\".'; +$wb['udp_ports_error_regex'] = 'Tegn ikke tilladt i udp port definition. Tilladt tegn er tal, \\":\\" og \\",\\".'; ?> diff --git a/interface/web/admin/lib/lang/dk_server_config.lng b/interface/web/admin/lib/lang/dk_server_config.lng index a4e0a12d9..73e7ef1bf 100644 --- a/interface/web/admin/lib/lang/dk_server_config.lng +++ b/interface/web/admin/lib/lang/dk_server_config.lng @@ -152,7 +152,7 @@ $wb['try_rescue_txt'] = 'Aktiver overvågnings service og genstarte ved fejl'; $wb['do_not_try_rescue_httpd_txt'] = 'Deaktiver HTTPD monitoring'; $wb['do_not_try_rescue_mysql_txt'] = 'Deaktiver MySQL monitoring'; $wb['do_not_try_rescue_mail_txt'] = 'Deaktiver E-mail monitoring'; -$wb['rescue_description_txt'] = 'Information: Hvis du ønsker nedlukning af mysql skal du vælge \"Deaktiver MySQL monitor\" afkrydsningsfeltet og derefter vente 2-3 minutter.
Hvis du ikke vente 2-3 minutter, vil redning forsøge at genstarte mysql!'; +$wb['rescue_description_txt'] = 'Information: Hvis du ønsker nedlukning af mysql skal du vælge \\"Deaktiver MySQL monitor\\" afkrydsningsfeltet og derefter vente 2-3 minutter.
Hvis du ikke vente 2-3 minutter, vil redning forsøge at genstarte mysql!'; $wb['enable_sni_txt'] = 'Enable SNI'; $wb['set_folder_permissions_on_update_txt'] = 'Indstil mappe tilladelser ved opdatering'; $wb['add_web_users_to_sshusers_group_txt'] = 'Tilføj web-brugere til -sshusers- gruppe'; @@ -296,4 +296,8 @@ $wb['php_default_name_txt'] = 'Description Default PHP-Version'; $wb['php_default_name_error_empty'] = 'Description Default PHP-Version must not be empty'; $wb['error_mailbox_message_size_txt'] = 'Mailbox size must be larger or equal to message size'; $wb['php_fpm_reload_mode_txt'] = 'PHP-FPM reload mode'; +$wb['content_filter_txt'] = 'Content Filter'; +$wb['rspamd_url_txt'] = 'Rspamd URL'; +$wb['rspamd_user_txt'] = 'Rspamd User'; +$wb['rspamd_password_txt'] = 'Rspamd Password'; ?> diff --git a/interface/web/admin/lib/lang/dk_system_config.lng b/interface/web/admin/lib/lang/dk_system_config.lng index 75e55f1eb..26b0fe7e7 100644 --- a/interface/web/admin/lib/lang/dk_system_config.lng +++ b/interface/web/admin/lib/lang/dk_system_config.lng @@ -64,7 +64,7 @@ $wb['customer_no_template_error_regex_txt'] = 'Kunde Nr. skabelon indeholder ugy $wb['customer_no_start_txt'] = 'Kunde Nr. start værdi'; $wb['customer_no_counter_txt'] = 'Kunde Nr. tæller'; $wb['session_timeout_txt'] = 'Session timeout (minutter)'; -$wb['session_allow_endless_txt'] = 'Aktiver \"forbliv logget ind\"'; +$wb['session_allow_endless_txt'] = 'Aktiver \\"forbliv logget ind\\"'; $wb['No'] = 'No'; $wb['min_password_length_txt'] = 'Minimum adgangskode længde'; $wb['min_password_strength_txt'] = 'Minimum adgangskode styrke'; diff --git a/interface/web/admin/lib/lang/dk_users.lng b/interface/web/admin/lib/lang/dk_users.lng index a70cc1dbf..2e86ab4ca 100644 --- a/interface/web/admin/lib/lang/dk_users.lng +++ b/interface/web/admin/lib/lang/dk_users.lng @@ -29,7 +29,7 @@ $wb['generate_password_txt'] = 'Generer Adgangskode'; $wb['repeat_password_txt'] = 'Gentage Adgangskode'; $wb['password_mismatch_txt'] = 'Adgangskoderne stemmer ikke overens.'; $wb['password_match_txt'] = 'Adgangskoderne stemmer overens.'; -$wb['username_error_collision'] = 'Brugernavn må ikke være web eller web plus et tal.\"'; +$wb['username_error_collision'] = 'Brugernavn må ikke være web eller web plus et tal.\\"'; $wb['client_not_admin_err'] = 'En bruger der hører til en klient kan ikke indstilles til typen: admin'; $wb['lost_password_function_txt'] = 'Forgot password function is available'; $wb['no_user_insert'] = 'CP-Users of type -user- get added and updated automatically when you add a client or reseller.'; diff --git a/interface/web/admin/lib/lang/el_server_config.lng b/interface/web/admin/lib/lang/el_server_config.lng index ae0efc9e3..84992261b 100644 --- a/interface/web/admin/lib/lang/el_server_config.lng +++ b/interface/web/admin/lib/lang/el_server_config.lng @@ -296,4 +296,8 @@ $wb['php_default_name_txt'] = 'Description Default PHP-Version'; $wb['php_default_name_error_empty'] = 'Description Default PHP-Version must not be empty'; $wb['error_mailbox_message_size_txt'] = 'Mailbox size must be larger or equal to message size'; $wb['php_fpm_reload_mode_txt'] = 'PHP-FPM reload mode'; +$wb['content_filter_txt'] = 'Content Filter'; +$wb['rspamd_url_txt'] = 'Rspamd URL'; +$wb['rspamd_user_txt'] = 'Rspamd User'; +$wb['rspamd_password_txt'] = 'Rspamd Password'; ?> diff --git a/interface/web/admin/lib/lang/el_system_config.lng b/interface/web/admin/lib/lang/el_system_config.lng index 80ddaca14..640d6f00a 100644 --- a/interface/web/admin/lib/lang/el_system_config.lng +++ b/interface/web/admin/lib/lang/el_system_config.lng @@ -67,7 +67,7 @@ $wb['customer_no_template_error_regex_txt'] = 'The customer No. template contain $wb['customer_no_start_txt'] = 'Customer No. start value'; $wb['customer_no_counter_txt'] = 'Customer No. counter'; $wb['session_timeout_txt'] = 'Session timeout (minutes)'; -$wb['session_allow_endless_txt'] = 'Enable \"stay logged in\"'; +$wb['session_allow_endless_txt'] = 'Enable \\"stay logged in\\"'; $wb['No'] = 'No'; $wb['min_password_length_txt'] = 'Minimum password length'; $wb['min_password_strength_txt'] = 'Minimum password strength'; diff --git a/interface/web/admin/lib/lang/el_users.lng b/interface/web/admin/lib/lang/el_users.lng index e5ce7a879..f0307b95e 100644 --- a/interface/web/admin/lib/lang/el_users.lng +++ b/interface/web/admin/lib/lang/el_users.lng @@ -29,7 +29,7 @@ $wb['generate_password_txt'] = 'Generate Password'; $wb['repeat_password_txt'] = 'Repeat Password'; $wb['password_mismatch_txt'] = 'The passwords do not match.'; $wb['password_match_txt'] = 'The passwords do match.'; -$wb['username_error_collision'] = 'The username may not be web or web plus a number.\"'; +$wb['username_error_collision'] = 'The username may not be web or web plus a number.\\"'; $wb['client_not_admin_err'] = 'A user that belongs to a client can not be set to type: admin'; $wb['lost_password_function_txt'] = 'Forgot password function is available'; $wb['no_user_insert'] = 'CP-Users of type -user- get added and updated automatically when you add a client or reseller.'; diff --git a/interface/web/admin/lib/lang/es_firewall.lng b/interface/web/admin/lib/lang/es_firewall.lng index db09b5784..81cad3c0a 100755 --- a/interface/web/admin/lib/lang/es_firewall.lng +++ b/interface/web/admin/lib/lang/es_firewall.lng @@ -4,8 +4,8 @@ $wb['firewall_error_unique'] = 'Ya existe un registro de cortafuegos para este s $wb['server_id_txt'] = 'Servidor'; $wb['tcp_port_help_txt'] = 'Separados por coma'; $wb['tcp_port_txt'] = 'Puertos TCP abiertos'; -$wb['tcp_ports_error_regex'] = 'Caracteres no permitidos en la definición de puertos tcp. Los caracteres permitidos son: números, \":\" y \",\".'; +$wb['tcp_ports_error_regex'] = 'Caracteres no permitidos en la definición de puertos tcp. Los caracteres permitidos son: números, \\":\\" y \\",\\".'; $wb['udp_port_help_txt'] = 'Separados por coma'; $wb['udp_port_txt'] = 'Puertos UDP abiertos'; -$wb['udp_ports_error_regex'] = 'Caracteres no permitidos en la definición de puertos udp. Los caracteres permitidos son: números, \":\" y \",\".'; +$wb['udp_ports_error_regex'] = 'Caracteres no permitidos en la definición de puertos udp. Los caracteres permitidos son: números, \\":\\" y \\",\\".'; ?> diff --git a/interface/web/admin/lib/lang/es_server_config.lng b/interface/web/admin/lib/lang/es_server_config.lng index 01c9978ae..01350367a 100755 --- a/interface/web/admin/lib/lang/es_server_config.lng +++ b/interface/web/admin/lib/lang/es_server_config.lng @@ -228,7 +228,7 @@ $wb['reject_sender_login_mismatch_txt'] = 'Rechazar remitente e inicio de sesió $wb['relayhost_password_txt'] = 'Contraseña del servidor de retransmisión'; $wb['relayhost_txt'] = 'Servidor de retransmisión'; $wb['relayhost_user_txt'] = 'Usuario del servidor de retransmisión'; -$wb['rescue_description_txt'] = 'Información: Si desea detener el servicio de MySQL debe seleccionar la casilla \"Deshabilitar monitorización de MySQL\" y luego esperar 2-3 minutos.
Si no espera 2-3 minutos, el rescatador intentará reiniciar el servicio'; +$wb['rescue_description_txt'] = 'Información: Si desea detener el servicio de MySQL debe seleccionar la casilla \\"Deshabilitar monitorización de MySQL\\" y luego esperar 2-3 minutos.
Si no espera 2-3 minutos, el rescatador intentará reiniciar el servicio'; $wb['security_level_txt'] = 'Nivel de seguridad'; $wb['server_type_txt'] = 'Tipo de servidor'; $wb['set_folder_permissions_on_update_txt'] = 'Establecer permisos de carpetas al actualizar'; @@ -296,4 +296,8 @@ $wb['php_default_name_txt'] = 'Description Default PHP-Version'; $wb['php_default_name_error_empty'] = 'Description Default PHP-Version must not be empty'; $wb['error_mailbox_message_size_txt'] = 'Mailbox size must be larger or equal to message size'; $wb['php_fpm_reload_mode_txt'] = 'PHP-FPM reload mode'; +$wb['content_filter_txt'] = 'Content Filter'; +$wb['rspamd_url_txt'] = 'Rspamd URL'; +$wb['rspamd_user_txt'] = 'Rspamd User'; +$wb['rspamd_password_txt'] = 'Rspamd Password'; ?> diff --git a/interface/web/admin/lib/lang/es_system_config.lng b/interface/web/admin/lib/lang/es_system_config.lng index b927ab043..043c52cfd 100755 --- a/interface/web/admin/lib/lang/es_system_config.lng +++ b/interface/web/admin/lib/lang/es_system_config.lng @@ -7,7 +7,7 @@ $wb['available_dashlets_note_txt'] = 'Componentes disponibles:'; $wb['backups_include_into_web_quota_txt'] = 'Incluir archivos de copia de seguridad en la cuota web.'; $wb['client_dashlets_left_txt'] = 'Componentes del cliente a la izquierda'; $wb['client_dashlets_right_txt'] = 'Componentes del cliente a la derecha'; -$wb['client_username_web_check_disabled_txt'] = 'Desactivar la comprobación de la palabra \"web\" en los nombres de clientes.'; +$wb['client_username_web_check_disabled_txt'] = 'Desactivar la comprobación de la palabra \\"web\\" en los nombres de clientes.'; $wb['company_name_txt'] = 'Nombre de la compañía para el título de la página'; $wb['custom_login_link_txt'] = 'Enlace personalizado para la página de Inicio de Sesión'; $wb['custom_login_text_txt'] = 'Texto personalizado para la página de Inicio de Sesión'; @@ -51,7 +51,7 @@ $wb['phpmyadmin_url_txt'] = 'Enlace a phpMyAdmin'; $wb['reseller_can_use_options_txt'] = 'El revendedor puede utilizar la pestaña opciones para los sitios webs'; $wb['reseller_dashlets_left_txt'] = 'Componentes de revendedores a la izquierda'; $wb['reseller_dashlets_right_txt'] = 'Componentes de revendedores a la derecha'; -$wb['session_allow_endless_txt'] = 'Habilitar \"mantenerme conectado\"'; +$wb['session_allow_endless_txt'] = 'Habilitar \\"mantenerme conectado\\"'; $wb['session_timeout_txt'] = 'Tiempo límite de sesión (minutos)'; $wb['shelluser_prefix_error_regex'] = 'Carácter no permitido en el prefijo de usuario del shell.'; $wb['shelluser_prefix_txt'] = 'Prefijo del usuario del Shell'; diff --git a/interface/web/admin/lib/lang/fi_server_config.lng b/interface/web/admin/lib/lang/fi_server_config.lng index c1e43b276..6caf643ab 100755 --- a/interface/web/admin/lib/lang/fi_server_config.lng +++ b/interface/web/admin/lib/lang/fi_server_config.lng @@ -296,4 +296,8 @@ $wb['php_default_name_txt'] = 'Description Default PHP-Version'; $wb['php_default_name_error_empty'] = 'Description Default PHP-Version must not be empty'; $wb['error_mailbox_message_size_txt'] = 'Mailbox size must be larger or equal to message size'; $wb['php_fpm_reload_mode_txt'] = 'PHP-FPM reload mode'; +$wb['content_filter_txt'] = 'Content Filter'; +$wb['rspamd_url_txt'] = 'Rspamd URL'; +$wb['rspamd_user_txt'] = 'Rspamd User'; +$wb['rspamd_password_txt'] = 'Rspamd Password'; ?> diff --git a/interface/web/admin/lib/lang/fi_system_config.lng b/interface/web/admin/lib/lang/fi_system_config.lng index 72e7aaa2e..c0972c49d 100644 --- a/interface/web/admin/lib/lang/fi_system_config.lng +++ b/interface/web/admin/lib/lang/fi_system_config.lng @@ -67,7 +67,7 @@ $wb['customer_no_template_error_regex_txt'] = 'The customer No. template contain $wb['customer_no_start_txt'] = 'Customer No. start value'; $wb['customer_no_counter_txt'] = 'Customer No. counter'; $wb['session_timeout_txt'] = 'Session timeout (minutes)'; -$wb['session_allow_endless_txt'] = 'Enable \"stay logged in\"'; +$wb['session_allow_endless_txt'] = 'Enable \\"stay logged in\\"'; $wb['No'] = 'No'; $wb['min_password_length_txt'] = 'Minimum password length'; $wb['min_password_strength_txt'] = 'Minimum password strength'; diff --git a/interface/web/admin/lib/lang/fi_users.lng b/interface/web/admin/lib/lang/fi_users.lng index 4fde01b87..199601f52 100755 --- a/interface/web/admin/lib/lang/fi_users.lng +++ b/interface/web/admin/lib/lang/fi_users.lng @@ -29,7 +29,7 @@ $wb['generate_password_txt'] = 'Generate Password'; $wb['repeat_password_txt'] = 'Repeat Password'; $wb['password_mismatch_txt'] = 'The passwords do not match.'; $wb['password_match_txt'] = 'The passwords do match.'; -$wb['username_error_collision'] = 'The username may not be web or web plus a number.\"'; +$wb['username_error_collision'] = 'The username may not be web or web plus a number.\\"'; $wb['client_not_admin_err'] = 'A user that belongs to a client can not be set to type: admin'; $wb['lost_password_function_txt'] = 'Forgot password function is available'; $wb['no_user_insert'] = 'CP-Users of type -user- get added and updated automatically when you add a client or reseller.'; diff --git a/interface/web/admin/lib/lang/fr_remote_action.lng b/interface/web/admin/lib/lang/fr_remote_action.lng index 0072271d6..bb3443b40 100644 --- a/interface/web/admin/lib/lang/fr_remote_action.lng +++ b/interface/web/admin/lib/lang/fr_remote_action.lng @@ -8,5 +8,5 @@ $wb['do_ispcupdate_desc'] = 'Cette action met à jour ISPConfig3 sur le serveur $wb['action_scheduled'] = 'L’action est marquée pour exécution'; $wb['select_all_server'] = 'Tout serveur'; $wb['ispconfig_update_title'] = 'ISPConfig update instructions'; -$wb['ispconfig_update_text'] = 'Login as root user on the shell of your server and execute the command

ispconfig_update.sh

to start the ISPConfig update.

Click here for detailed update instructions'; +$wb['ispconfig_update_text'] = 'Login as root user on the shell of your server and execute the command

ispconfig_update.sh

to start the ISPConfig update.

Click here for detailed update instructions'; ?> diff --git a/interface/web/admin/lib/lang/fr_server_config.lng b/interface/web/admin/lib/lang/fr_server_config.lng index 418f63367..25f737568 100644 --- a/interface/web/admin/lib/lang/fr_server_config.lng +++ b/interface/web/admin/lib/lang/fr_server_config.lng @@ -296,4 +296,8 @@ $wb['php_default_name_txt'] = 'Description Default PHP-Version'; $wb['php_default_name_error_empty'] = 'Description Default PHP-Version must not be empty'; $wb['error_mailbox_message_size_txt'] = 'Mailbox size must be larger or equal to message size'; $wb['php_fpm_reload_mode_txt'] = 'PHP-FPM reload mode'; +$wb['content_filter_txt'] = 'Content Filter'; +$wb['rspamd_url_txt'] = 'Rspamd URL'; +$wb['rspamd_user_txt'] = 'Rspamd User'; +$wb['rspamd_password_txt'] = 'Rspamd Password'; ?> diff --git a/interface/web/admin/lib/lang/fr_system_config.lng b/interface/web/admin/lib/lang/fr_system_config.lng index df90e0301..18f0dbbed 100644 --- a/interface/web/admin/lib/lang/fr_system_config.lng +++ b/interface/web/admin/lib/lang/fr_system_config.lng @@ -64,7 +64,7 @@ $wb['customer_no_template_error_regex_txt'] = 'The customer No. template contain $wb['customer_no_start_txt'] = 'Customer No. start value'; $wb['customer_no_counter_txt'] = 'Customer No. counter'; $wb['session_timeout_txt'] = 'Session timeout (minutes)'; -$wb['session_allow_endless_txt'] = 'Enable \"stay logged in\"'; +$wb['session_allow_endless_txt'] = 'Enable \\"stay logged in\\"'; $wb['No'] = 'No'; $wb['min_password_length_txt'] = 'Minimum password length'; $wb['min_password_strength_txt'] = 'Minimum password strength'; diff --git a/interface/web/admin/lib/lang/hr_server_config.lng b/interface/web/admin/lib/lang/hr_server_config.lng index 78d9a57a5..faf08f420 100644 --- a/interface/web/admin/lib/lang/hr_server_config.lng +++ b/interface/web/admin/lib/lang/hr_server_config.lng @@ -296,4 +296,8 @@ $wb['php_default_name_txt'] = 'Description Default PHP-Version'; $wb['php_default_name_error_empty'] = 'Description Default PHP-Version must not be empty'; $wb['error_mailbox_message_size_txt'] = 'Mailbox size must be larger or equal to message size'; $wb['php_fpm_reload_mode_txt'] = 'PHP-FPM reload mode'; +$wb['content_filter_txt'] = 'Content Filter'; +$wb['rspamd_url_txt'] = 'Rspamd URL'; +$wb['rspamd_user_txt'] = 'Rspamd User'; +$wb['rspamd_password_txt'] = 'Rspamd Password'; ?> diff --git a/interface/web/admin/lib/lang/hr_system_config.lng b/interface/web/admin/lib/lang/hr_system_config.lng index a8b44528c..a7735647b 100644 --- a/interface/web/admin/lib/lang/hr_system_config.lng +++ b/interface/web/admin/lib/lang/hr_system_config.lng @@ -67,7 +67,7 @@ $wb['customer_no_template_error_regex_txt'] = 'The customer No. template contain $wb['customer_no_start_txt'] = 'Customer No. start value'; $wb['customer_no_counter_txt'] = 'Customer No. counter'; $wb['session_timeout_txt'] = 'Session timeout (minutes)'; -$wb['session_allow_endless_txt'] = 'Enable \"stay logged in\"'; +$wb['session_allow_endless_txt'] = 'Enable \\"stay logged in\\"'; $wb['No'] = 'No'; $wb['min_password_length_txt'] = 'Minimum password length'; $wb['min_password_strength_txt'] = 'Minimum password strength'; diff --git a/interface/web/admin/lib/lang/hr_users.lng b/interface/web/admin/lib/lang/hr_users.lng index 52f0bdff3..7be3f968f 100644 --- a/interface/web/admin/lib/lang/hr_users.lng +++ b/interface/web/admin/lib/lang/hr_users.lng @@ -29,7 +29,7 @@ $wb['generate_password_txt'] = 'Generiraj šifru'; $wb['repeat_password_txt'] = 'Ponovi šifru'; $wb['password_mismatch_txt'] = 'Šifre nisu identične.'; $wb['password_match_txt'] = 'Šifre su identične.'; -$wb['username_error_collision'] = 'Korisničko ime ne može biti web ili web sa brojem.\"'; +$wb['username_error_collision'] = 'Korisničko ime ne može biti web ili web sa brojem.\\"'; $wb['client_not_admin_err'] = 'Korisnik koji je u grupi klijenti ne može biti admin'; $wb['lost_password_function_txt'] = 'Forgot password function is available'; $wb['no_user_insert'] = 'CP-Users of type -user- get added and updated automatically when you add a client or reseller.'; diff --git a/interface/web/admin/lib/lang/hr_users_list.lng b/interface/web/admin/lib/lang/hr_users_list.lng index 7725ce2b9..c102e5f7f 100644 --- a/interface/web/admin/lib/lang/hr_users_list.lng +++ b/interface/web/admin/lib/lang/hr_users_list.lng @@ -4,6 +4,6 @@ $wb['username_txt'] = 'Korisničko ime'; $wb['client_id_txt'] = 'Client ID'; $wb['active_txt'] = 'Active'; $wb['add_new_record_txt'] = 'Dodaj klijenta'; -$wb['warning_txt'] = 'UPOZORENJE: Ovdje nemojte mijenjati podatke klijenta. Koristite \"Klijent\" i \"Preprodavač\" postavke u Klijent modulu. Mijenjanjem postavki klijenata ili grupa može doći do gubitka podataka!'; +$wb['warning_txt'] = 'UPOZORENJE: Ovdje nemojte mijenjati podatke klijenta. Koristite \\"Klijent\\" i \\"Preprodavač\\" postavke u Klijent modulu. Mijenjanjem postavki klijenata ili grupa može doći do gubitka podataka!'; $wb['groups_txt'] = 'Groups'; ?> diff --git a/interface/web/admin/lib/lang/hu_server_config.lng b/interface/web/admin/lib/lang/hu_server_config.lng index c2adb3efb..6347afb7d 100644 --- a/interface/web/admin/lib/lang/hu_server_config.lng +++ b/interface/web/admin/lib/lang/hu_server_config.lng @@ -296,4 +296,8 @@ $wb['php_default_name_txt'] = 'Description Default PHP-Version'; $wb['php_default_name_error_empty'] = 'Description Default PHP-Version must not be empty'; $wb['error_mailbox_message_size_txt'] = 'Mailbox size must be larger or equal to message size'; $wb['php_fpm_reload_mode_txt'] = 'PHP-FPM reload mode'; +$wb['content_filter_txt'] = 'Content Filter'; +$wb['rspamd_url_txt'] = 'Rspamd URL'; +$wb['rspamd_user_txt'] = 'Rspamd User'; +$wb['rspamd_password_txt'] = 'Rspamd Password'; ?> diff --git a/interface/web/admin/lib/lang/hu_system_config.lng b/interface/web/admin/lib/lang/hu_system_config.lng index e983379e3..cee497fe1 100644 --- a/interface/web/admin/lib/lang/hu_system_config.lng +++ b/interface/web/admin/lib/lang/hu_system_config.lng @@ -67,7 +67,7 @@ $wb['customer_no_template_error_regex_txt'] = 'The customer No. template contain $wb['customer_no_start_txt'] = 'Customer No. start value'; $wb['customer_no_counter_txt'] = 'Customer No. counter'; $wb['session_timeout_txt'] = 'Session timeout (minutes)'; -$wb['session_allow_endless_txt'] = 'Enable \"stay logged in\"'; +$wb['session_allow_endless_txt'] = 'Enable \\"stay logged in\\"'; $wb['No'] = 'No'; $wb['min_password_length_txt'] = 'Minimum password length'; $wb['min_password_strength_txt'] = 'Minimum password strength'; diff --git a/interface/web/admin/lib/lang/hu_users.lng b/interface/web/admin/lib/lang/hu_users.lng index 05f3554df..e2cf25fb7 100644 --- a/interface/web/admin/lib/lang/hu_users.lng +++ b/interface/web/admin/lib/lang/hu_users.lng @@ -29,7 +29,7 @@ $wb['generate_password_txt'] = 'Generate Password'; $wb['repeat_password_txt'] = 'Repeat Password'; $wb['password_mismatch_txt'] = 'The passwords do not match.'; $wb['password_match_txt'] = 'The passwords do match.'; -$wb['username_error_collision'] = 'The username may not be web or web plus a number.\"'; +$wb['username_error_collision'] = 'The username may not be web or web plus a number.\\"'; $wb['client_not_admin_err'] = 'A user that belongs to a client can not be set to type: admin'; $wb['lost_password_function_txt'] = 'Forgot password function is available'; $wb['no_user_insert'] = 'CP-Users of type -user- get added and updated automatically when you add a client or reseller.'; diff --git a/interface/web/admin/lib/lang/id_server_config.lng b/interface/web/admin/lib/lang/id_server_config.lng index 36f3cd853..9a28dff30 100644 --- a/interface/web/admin/lib/lang/id_server_config.lng +++ b/interface/web/admin/lib/lang/id_server_config.lng @@ -296,4 +296,8 @@ $wb['php_default_name_txt'] = 'Description Default PHP-Version'; $wb['php_default_name_error_empty'] = 'Description Default PHP-Version must not be empty'; $wb['error_mailbox_message_size_txt'] = 'Mailbox size must be larger or equal to message size'; $wb['php_fpm_reload_mode_txt'] = 'PHP-FPM reload mode'; +$wb['content_filter_txt'] = 'Content Filter'; +$wb['rspamd_url_txt'] = 'Rspamd URL'; +$wb['rspamd_user_txt'] = 'Rspamd User'; +$wb['rspamd_password_txt'] = 'Rspamd Password'; ?> diff --git a/interface/web/admin/lib/lang/id_system_config.lng b/interface/web/admin/lib/lang/id_system_config.lng index 41dd67fba..344185b84 100644 --- a/interface/web/admin/lib/lang/id_system_config.lng +++ b/interface/web/admin/lib/lang/id_system_config.lng @@ -67,7 +67,7 @@ $wb['customer_no_template_error_regex_txt'] = 'The customer No. template contain $wb['customer_no_start_txt'] = 'Customer No. start value'; $wb['customer_no_counter_txt'] = 'Customer No. counter'; $wb['session_timeout_txt'] = 'Session timeout (minutes)'; -$wb['session_allow_endless_txt'] = 'Enable \"stay logged in\"'; +$wb['session_allow_endless_txt'] = 'Enable \\"stay logged in\\"'; $wb['No'] = 'No'; $wb['min_password_length_txt'] = 'Minimum password length'; $wb['min_password_strength_txt'] = 'Minimum password strength'; diff --git a/interface/web/admin/lib/lang/id_users.lng b/interface/web/admin/lib/lang/id_users.lng index f5ae7efea..f9e961192 100644 --- a/interface/web/admin/lib/lang/id_users.lng +++ b/interface/web/admin/lib/lang/id_users.lng @@ -29,7 +29,7 @@ $wb['generate_password_txt'] = 'Generate Password'; $wb['repeat_password_txt'] = 'Repeat Password'; $wb['password_mismatch_txt'] = 'The passwords do not match.'; $wb['password_match_txt'] = 'The passwords do match.'; -$wb['username_error_collision'] = 'The username may not be web or web plus a number.\"'; +$wb['username_error_collision'] = 'The username may not be web or web plus a number.\\"'; $wb['client_not_admin_err'] = 'A user that belongs to a client can not be set to type: admin'; $wb['lost_password_function_txt'] = 'Forgot password function is available'; $wb['no_user_insert'] = 'CP-Users of type -user- get added and updated automatically when you add a client or reseller.'; diff --git a/interface/web/admin/lib/lang/it_server_config.lng b/interface/web/admin/lib/lang/it_server_config.lng index 766b7fb1a..3dc37a3c1 100644 --- a/interface/web/admin/lib/lang/it_server_config.lng +++ b/interface/web/admin/lib/lang/it_server_config.lng @@ -296,4 +296,8 @@ $wb['php_default_name_txt'] = 'Description Default PHP-Version'; $wb['php_default_name_error_empty'] = 'Description Default PHP-Version must not be empty'; $wb['error_mailbox_message_size_txt'] = 'Mailbox size must be larger or equal to message size'; $wb['php_fpm_reload_mode_txt'] = 'PHP-FPM reload mode'; +$wb['content_filter_txt'] = 'Content Filter'; +$wb['rspamd_url_txt'] = 'Rspamd URL'; +$wb['rspamd_user_txt'] = 'Rspamd User'; +$wb['rspamd_password_txt'] = 'Rspamd Password'; ?> diff --git a/interface/web/admin/lib/lang/it_system_config.lng b/interface/web/admin/lib/lang/it_system_config.lng index 35e625bd2..311b7c957 100644 --- a/interface/web/admin/lib/lang/it_system_config.lng +++ b/interface/web/admin/lib/lang/it_system_config.lng @@ -64,7 +64,7 @@ $wb['customer_no_template_error_regex_txt'] = 'The customer No. template contain $wb['customer_no_start_txt'] = 'Customer No. start value'; $wb['customer_no_counter_txt'] = 'Customer No. counter'; $wb['session_timeout_txt'] = 'Session timeout (minutes)'; -$wb['session_allow_endless_txt'] = 'Enable \"stay logged in\"'; +$wb['session_allow_endless_txt'] = 'Enable \\"stay logged in\\"'; $wb['No'] = 'No'; $wb['min_password_length_txt'] = 'Minimum password length'; $wb['min_password_strength_txt'] = 'Minimum password strength'; diff --git a/interface/web/admin/lib/lang/it_users.lng b/interface/web/admin/lib/lang/it_users.lng index be1294cdb..1bde73a67 100644 --- a/interface/web/admin/lib/lang/it_users.lng +++ b/interface/web/admin/lib/lang/it_users.lng @@ -29,7 +29,7 @@ $wb['generate_password_txt'] = 'Genera Password'; $wb['repeat_password_txt'] = 'Ripeti Password'; $wb['password_mismatch_txt'] = 'Le password non coincidono.'; $wb['password_match_txt'] = 'Le password coincidono.'; -$wb['username_error_collision'] = 'The username may not be web or web plus a number.\"'; +$wb['username_error_collision'] = 'The username may not be web or web plus a number.\\"'; $wb['client_not_admin_err'] = 'A user that belongs to a client can not be set to type: admin'; $wb['lost_password_function_txt'] = 'Forgot password function is available'; $wb['no_user_insert'] = 'CP-Users of type -user- get added and updated automatically when you add a client or reseller.'; diff --git a/interface/web/admin/lib/lang/ja_server_config.lng b/interface/web/admin/lib/lang/ja_server_config.lng index ccabb127e..72bef72c4 100644 --- a/interface/web/admin/lib/lang/ja_server_config.lng +++ b/interface/web/admin/lib/lang/ja_server_config.lng @@ -296,4 +296,8 @@ $wb['php_default_name_txt'] = 'Description Default PHP-Version'; $wb['php_default_name_error_empty'] = 'Description Default PHP-Version must not be empty'; $wb['error_mailbox_message_size_txt'] = 'Mailbox size must be larger or equal to message size'; $wb['php_fpm_reload_mode_txt'] = 'PHP-FPM reload mode'; +$wb['content_filter_txt'] = 'Content Filter'; +$wb['rspamd_url_txt'] = 'Rspamd URL'; +$wb['rspamd_user_txt'] = 'Rspamd User'; +$wb['rspamd_password_txt'] = 'Rspamd Password'; ?> diff --git a/interface/web/admin/lib/lang/ja_system_config.lng b/interface/web/admin/lib/lang/ja_system_config.lng index 494f90dd3..aa5cc6a7a 100644 --- a/interface/web/admin/lib/lang/ja_system_config.lng +++ b/interface/web/admin/lib/lang/ja_system_config.lng @@ -67,7 +67,7 @@ $wb['customer_no_template_error_regex_txt'] = 'The customer No. template contain $wb['customer_no_start_txt'] = 'Customer No. start value'; $wb['customer_no_counter_txt'] = 'Customer No. counter'; $wb['session_timeout_txt'] = 'Session timeout (minutes)'; -$wb['session_allow_endless_txt'] = 'Enable \"stay logged in\"'; +$wb['session_allow_endless_txt'] = 'Enable \\"stay logged in\\"'; $wb['No'] = 'No'; $wb['min_password_length_txt'] = 'Minimum password length'; $wb['min_password_strength_txt'] = 'Minimum password strength'; diff --git a/interface/web/admin/lib/lang/ja_users.lng b/interface/web/admin/lib/lang/ja_users.lng index 2e6ad9fb7..64f8339ff 100644 --- a/interface/web/admin/lib/lang/ja_users.lng +++ b/interface/web/admin/lib/lang/ja_users.lng @@ -29,7 +29,7 @@ $wb['generate_password_txt'] = 'Generate Password'; $wb['repeat_password_txt'] = 'Repeat Password'; $wb['password_mismatch_txt'] = 'The passwords do not match.'; $wb['password_match_txt'] = 'The passwords do match.'; -$wb['username_error_collision'] = 'The username may not be web or web plus a number.\"'; +$wb['username_error_collision'] = 'The username may not be web or web plus a number.\\"'; $wb['client_not_admin_err'] = 'A user that belongs to a client can not be set to type: admin'; $wb['lost_password_function_txt'] = 'Forgot password function is available'; $wb['no_user_insert'] = 'CP-Users of type -user- get added and updated automatically when you add a client or reseller.'; diff --git a/interface/web/admin/lib/lang/nl_server_config.lng b/interface/web/admin/lib/lang/nl_server_config.lng index 187ea86ec..2884f304e 100644 --- a/interface/web/admin/lib/lang/nl_server_config.lng +++ b/interface/web/admin/lib/lang/nl_server_config.lng @@ -296,4 +296,8 @@ $wb['php_default_name_txt'] = 'Description Default PHP-Version'; $wb['php_default_name_error_empty'] = 'Description Default PHP-Version must not be empty'; $wb['error_mailbox_message_size_txt'] = 'Mailbox size must be larger or equal to message size'; $wb['php_fpm_reload_mode_txt'] = 'PHP-FPM reload mode'; +$wb['content_filter_txt'] = 'Content Filter'; +$wb['rspamd_url_txt'] = 'Rspamd URL'; +$wb['rspamd_user_txt'] = 'Rspamd User'; +$wb['rspamd_password_txt'] = 'Rspamd Password'; ?> diff --git a/interface/web/admin/lib/lang/nl_system_config.lng b/interface/web/admin/lib/lang/nl_system_config.lng index 89e3ff8e4..44a58b764 100644 --- a/interface/web/admin/lib/lang/nl_system_config.lng +++ b/interface/web/admin/lib/lang/nl_system_config.lng @@ -67,7 +67,7 @@ $wb['customer_no_template_error_regex_txt'] = 'The customer No. template contain $wb['customer_no_start_txt'] = 'Customer No. start value'; $wb['customer_no_counter_txt'] = 'Customer No. counter'; $wb['session_timeout_txt'] = 'Session timeout (minutes)'; -$wb['session_allow_endless_txt'] = 'Enable \"stay logged in\"'; +$wb['session_allow_endless_txt'] = 'Enable \\"stay logged in\\"'; $wb['No'] = 'No'; $wb['min_password_length_txt'] = 'Minimum password length'; $wb['min_password_strength_txt'] = 'Minimum password strength'; diff --git a/interface/web/admin/lib/lang/nl_users.lng b/interface/web/admin/lib/lang/nl_users.lng index 782bfc5f9..1e6d4ef58 100644 --- a/interface/web/admin/lib/lang/nl_users.lng +++ b/interface/web/admin/lib/lang/nl_users.lng @@ -29,7 +29,7 @@ $wb['generate_password_txt'] = 'Generate Password'; $wb['repeat_password_txt'] = 'Repeat Password'; $wb['password_mismatch_txt'] = 'The passwords do not match.'; $wb['password_match_txt'] = 'The passwords do match.'; -$wb['username_error_collision'] = 'The username may not be web or web plus a number.\"'; +$wb['username_error_collision'] = 'The username may not be web or web plus a number.\\"'; $wb['client_not_admin_err'] = 'A user that belongs to a client can not be set to type: admin'; $wb['lost_password_function_txt'] = 'Forgot password function is available'; $wb['no_user_insert'] = 'CP-Users of type -user- get added and updated automatically when you add a client or reseller.'; diff --git a/interface/web/admin/lib/lang/pl_server_config.lng b/interface/web/admin/lib/lang/pl_server_config.lng index a50e27b33..29cb94e96 100644 --- a/interface/web/admin/lib/lang/pl_server_config.lng +++ b/interface/web/admin/lib/lang/pl_server_config.lng @@ -296,4 +296,8 @@ $wb['php_default_name_txt'] = 'Description Default PHP-Version'; $wb['php_default_name_error_empty'] = 'Description Default PHP-Version must not be empty'; $wb['error_mailbox_message_size_txt'] = 'Mailbox size must be larger or equal to message size'; $wb['php_fpm_reload_mode_txt'] = 'PHP-FPM reload mode'; +$wb['content_filter_txt'] = 'Content Filter'; +$wb['rspamd_url_txt'] = 'Rspamd URL'; +$wb['rspamd_user_txt'] = 'Rspamd User'; +$wb['rspamd_password_txt'] = 'Rspamd Password'; ?> diff --git a/interface/web/admin/lib/lang/pl_system_config.lng b/interface/web/admin/lib/lang/pl_system_config.lng index bbbbf95ec..a809251ec 100644 --- a/interface/web/admin/lib/lang/pl_system_config.lng +++ b/interface/web/admin/lib/lang/pl_system_config.lng @@ -67,7 +67,7 @@ $wb['customer_no_template_error_regex_txt'] = 'The customer No. template contain $wb['customer_no_start_txt'] = 'Customer No. start value'; $wb['customer_no_counter_txt'] = 'Customer No. counter'; $wb['session_timeout_txt'] = 'Session timeout (minutes)'; -$wb['session_allow_endless_txt'] = 'Enable \"stay logged in\"'; +$wb['session_allow_endless_txt'] = 'Enable \\"stay logged in\\"'; $wb['No'] = 'No'; $wb['min_password_length_txt'] = 'Minimum password length'; $wb['min_password_strength_txt'] = 'Minimum password strength'; diff --git a/interface/web/admin/lib/lang/pt_server_config.lng b/interface/web/admin/lib/lang/pt_server_config.lng index 96c16d3a2..3703c759e 100644 --- a/interface/web/admin/lib/lang/pt_server_config.lng +++ b/interface/web/admin/lib/lang/pt_server_config.lng @@ -296,4 +296,8 @@ $wb['php_default_name_txt'] = 'Description Default PHP-Version'; $wb['php_default_name_error_empty'] = 'Description Default PHP-Version must not be empty'; $wb['error_mailbox_message_size_txt'] = 'Mailbox size must be larger or equal to message size'; $wb['php_fpm_reload_mode_txt'] = 'PHP-FPM reload mode'; +$wb['content_filter_txt'] = 'Content Filter'; +$wb['rspamd_url_txt'] = 'Rspamd URL'; +$wb['rspamd_user_txt'] = 'Rspamd User'; +$wb['rspamd_password_txt'] = 'Rspamd Password'; ?> diff --git a/interface/web/admin/lib/lang/pt_system_config.lng b/interface/web/admin/lib/lang/pt_system_config.lng index a72ca0e95..6fc26344c 100644 --- a/interface/web/admin/lib/lang/pt_system_config.lng +++ b/interface/web/admin/lib/lang/pt_system_config.lng @@ -67,7 +67,7 @@ $wb['customer_no_template_error_regex_txt'] = 'The customer No. template contain $wb['customer_no_start_txt'] = 'Customer No. start value'; $wb['customer_no_counter_txt'] = 'Customer No. counter'; $wb['session_timeout_txt'] = 'Session timeout (minutes)'; -$wb['session_allow_endless_txt'] = 'Enable \"stay logged in\"'; +$wb['session_allow_endless_txt'] = 'Enable \\"stay logged in\\"'; $wb['No'] = 'No'; $wb['min_password_length_txt'] = 'Minimum password length'; $wb['min_password_strength_txt'] = 'Minimum password strength'; diff --git a/interface/web/admin/lib/lang/pt_users.lng b/interface/web/admin/lib/lang/pt_users.lng index b53790e6f..67cfe4f57 100644 --- a/interface/web/admin/lib/lang/pt_users.lng +++ b/interface/web/admin/lib/lang/pt_users.lng @@ -29,7 +29,7 @@ $wb['generate_password_txt'] = 'Generate Password'; $wb['repeat_password_txt'] = 'Repeat Password'; $wb['password_mismatch_txt'] = 'The passwords do not match.'; $wb['password_match_txt'] = 'The passwords do match.'; -$wb['username_error_collision'] = 'The username may not be web or web plus a number.\"'; +$wb['username_error_collision'] = 'The username may not be web or web plus a number.\\"'; $wb['client_not_admin_err'] = 'A user that belongs to a client can not be set to type: admin'; $wb['lost_password_function_txt'] = 'Forgot password function is available'; $wb['no_user_insert'] = 'CP-Users of type -user- get added and updated automatically when you add a client or reseller.'; diff --git a/interface/web/admin/lib/lang/ro_server_config.lng b/interface/web/admin/lib/lang/ro_server_config.lng index 239a87dc7..325147612 100644 --- a/interface/web/admin/lib/lang/ro_server_config.lng +++ b/interface/web/admin/lib/lang/ro_server_config.lng @@ -296,4 +296,8 @@ $wb['php_default_name_txt'] = 'Description Default PHP-Version'; $wb['php_default_name_error_empty'] = 'Description Default PHP-Version must not be empty'; $wb['error_mailbox_message_size_txt'] = 'Mailbox size must be larger or equal to message size'; $wb['php_fpm_reload_mode_txt'] = 'PHP-FPM reload mode'; +$wb['content_filter_txt'] = 'Content Filter'; +$wb['rspamd_url_txt'] = 'Rspamd URL'; +$wb['rspamd_user_txt'] = 'Rspamd User'; +$wb['rspamd_password_txt'] = 'Rspamd Password'; ?> diff --git a/interface/web/admin/lib/lang/ro_system_config.lng b/interface/web/admin/lib/lang/ro_system_config.lng index 93ccf3947..2a39a454e 100644 --- a/interface/web/admin/lib/lang/ro_system_config.lng +++ b/interface/web/admin/lib/lang/ro_system_config.lng @@ -67,7 +67,7 @@ $wb['customer_no_template_error_regex_txt'] = 'The customer No. template contain $wb['customer_no_start_txt'] = 'Customer No. start value'; $wb['customer_no_counter_txt'] = 'Customer No. counter'; $wb['session_timeout_txt'] = 'Session timeout (minutes)'; -$wb['session_allow_endless_txt'] = 'Enable \"stay logged in\"'; +$wb['session_allow_endless_txt'] = 'Enable \\"stay logged in\\"'; $wb['No'] = 'No'; $wb['min_password_length_txt'] = 'Minimum password length'; $wb['min_password_strength_txt'] = 'Minimum password strength'; diff --git a/interface/web/admin/lib/lang/ro_users.lng b/interface/web/admin/lib/lang/ro_users.lng index 9d9923b63..dcbc4f472 100644 --- a/interface/web/admin/lib/lang/ro_users.lng +++ b/interface/web/admin/lib/lang/ro_users.lng @@ -29,7 +29,7 @@ $wb['generate_password_txt'] = 'Generate Password'; $wb['repeat_password_txt'] = 'Repeat Password'; $wb['password_mismatch_txt'] = 'The passwords do not match.'; $wb['password_match_txt'] = 'The passwords do match.'; -$wb['username_error_collision'] = 'The username may not be web or web plus a number.\"'; +$wb['username_error_collision'] = 'The username may not be web or web plus a number.\\"'; $wb['client_not_admin_err'] = 'A user that belongs to a client can not be set to type: admin'; $wb['lost_password_function_txt'] = 'Forgot password function is available'; $wb['no_user_insert'] = 'CP-Users of type -user- get added and updated automatically when you add a client or reseller.'; diff --git a/interface/web/admin/lib/lang/ru_firewall.lng b/interface/web/admin/lib/lang/ru_firewall.lng index c30f26f2e..70beb3043 100644 --- a/interface/web/admin/lib/lang/ru_firewall.lng +++ b/interface/web/admin/lib/lang/ru_firewall.lng @@ -6,6 +6,6 @@ $wb['tcp_port_help_txt'] = 'Перечислить порты TCP через з $wb['udp_port_help_txt'] = 'Перечислить порты UDP через запятую'; $wb['active_txt'] = 'Активно'; $wb['firewall_error_unique'] = 'Уже есть такая запись брандмауэра для этого сервера.'; -$wb['tcp_ports_error_regex'] = 'Недопустимый символ в указании tcp порта. Корректные сиволы - цифры, \":\" и \",\"'; -$wb['udp_ports_error_regex'] = 'Некорректный символ в указании UDP порта. Допустимые сиволы - цифры, \":\" и \",\"'; +$wb['tcp_ports_error_regex'] = 'Недопустимый символ в указании tcp порта. Корректные сиволы - цифры, \\":\\" и \\",\\"'; +$wb['udp_ports_error_regex'] = 'Некорректный символ в указании UDP порта. Допустимые сиволы - цифры, \\":\\" и \\",\\"'; ?> diff --git a/interface/web/admin/lib/lang/ru_server_config.lng b/interface/web/admin/lib/lang/ru_server_config.lng index ca66b325b..b2f0b407d 100644 --- a/interface/web/admin/lib/lang/ru_server_config.lng +++ b/interface/web/admin/lib/lang/ru_server_config.lng @@ -152,7 +152,7 @@ $wb['php_fpm_socket_dir_error_empty'] = 'Каталог PHP-FPM сокета п $wb['try_rescue_txt'] = 'Включить мониторинг службы и перезапуск при сбое'; $wb['do_not_try_rescue_mysql_txt'] = 'Отключить мониторинг MySQL'; $wb['do_not_try_rescue_mail_txt'] = 'Отключить мониторинг Email'; -$wb['rescue_description_txt'] = 'Информация: Если вы хотите выключить MySQL, вы должны установить флажок \"Отключить мониторинг MySQL\" и подождать 2-3 минуты.
Если вы не подождёте 2-3 минуты, мониторинг будет пытаться перезапустить MySQL!'; +$wb['rescue_description_txt'] = 'Информация: Если вы хотите выключить MySQL, вы должны установить флажок \\"Отключить мониторинг MySQL\\" и подождать 2-3 минуты.
Если вы не подождёте 2-3 минуты, мониторинг будет пытаться перезапустить MySQL!'; $wb['enable_sni_txt'] = 'Включить SNI'; $wb['do_not_try_rescue_httpd_txt'] = 'Отключить мониторинг HTTPD'; $wb['set_folder_permissions_on_update_txt'] = 'Установить разрешения для папки на обновления'; @@ -296,4 +296,8 @@ $wb['php_default_name_txt'] = 'Description Default PHP-Version'; $wb['php_default_name_error_empty'] = 'Description Default PHP-Version must not be empty'; $wb['error_mailbox_message_size_txt'] = 'Mailbox size must be larger or equal to message size'; $wb['php_fpm_reload_mode_txt'] = 'PHP-FPM reload mode'; +$wb['content_filter_txt'] = 'Content Filter'; +$wb['rspamd_url_txt'] = 'Rspamd URL'; +$wb['rspamd_user_txt'] = 'Rspamd User'; +$wb['rspamd_password_txt'] = 'Rspamd Password'; ?> diff --git a/interface/web/admin/lib/lang/ru_system_config.lng b/interface/web/admin/lib/lang/ru_system_config.lng index 52324f3c7..baed497b0 100644 --- a/interface/web/admin/lib/lang/ru_system_config.lng +++ b/interface/web/admin/lib/lang/ru_system_config.lng @@ -14,7 +14,7 @@ $wb['mailboxlist_webmail_link_txt'] = 'Ссылка на веб-почту в с $wb['webmail_url_txt'] = 'URL веб-почты'; $wb['phpmyadmin_url_txt'] = 'URL PHPMyAdmin'; $wb['use_domain_module_txt'] = 'Использовать модуль домена, чтобы добавить новые домены'; -$wb['use_domain_module_hint'] = 'При использовании этого модуля, Ваши клиенты смогут выбрать только один из доменов, созданных для них администратором. Они не могут свободно редактировать поле \"домен\". Чтобы сделать эти изменения видимыми, Вы должны выйти и повторно войти в панель после изменения этого значения.'; +$wb['use_domain_module_hint'] = 'При использовании этого модуля, Ваши клиенты смогут выбрать только один из доменов, созданных для них администратором. Они не могут свободно редактировать поле \\"домен\\". Чтобы сделать эти изменения видимыми, Вы должны выйти и повторно войти в панель после изменения этого значения.'; $wb['new_domain_txt'] = 'HTML текст, чтобы создать новый домен'; $wb['webdavuser_prefix_txt'] = 'Префикс пользователя WebDAV'; $wb['webdavuser_prefix_error_regex'] = 'Некорректный символ в префиксе пользователя WebDAV.'; @@ -67,7 +67,7 @@ $wb['customer_no_template_error_regex_txt'] = 'Шаблон номера Кли $wb['customer_no_start_txt'] = 'Начальное значение номера Клиента'; $wb['customer_no_counter_txt'] = 'Счётчик номера Клиента'; $wb['session_timeout_txt'] = 'Тайм-аут сессии (в минутах)'; -$wb['session_allow_endless_txt'] = 'Включить \"оставаться в системе\"'; +$wb['session_allow_endless_txt'] = 'Включить \\"оставаться в системе\\"'; $wb['No'] = 'Нет'; $wb['min_password_length_txt'] = 'Минимальная длина пароля'; $wb['min_password_strength_txt'] = 'Минимальная стойкость пароля'; diff --git a/interface/web/admin/lib/lang/ru_users.lng b/interface/web/admin/lib/lang/ru_users.lng index bd1b8034f..63f081f91 100644 --- a/interface/web/admin/lib/lang/ru_users.lng +++ b/interface/web/admin/lib/lang/ru_users.lng @@ -29,7 +29,7 @@ $wb['generate_password_txt'] = 'Создать пароль'; $wb['repeat_password_txt'] = 'Повторить пароль'; $wb['password_mismatch_txt'] = 'Пароли не совпадают.'; $wb['password_match_txt'] = 'Эти пароли совпадают.'; -$wb['username_error_collision'] = 'Имя пользователя не может начинаться со слова \"web\" или \"web\" плюс число.'; +$wb['username_error_collision'] = 'Имя пользователя не может начинаться со слова \\"web\\" или \\"web\\" плюс число.'; $wb['client_not_admin_err'] = 'Пользователь, который принадлежит к клиенту не может быть установлен тип: admin'; $wb['lost_password_function_txt'] = 'Функция восстановления пароля доступна'; $wb['no_user_insert'] = 'CP-Users of type -user- get added and updated automatically when you add a client or reseller.'; diff --git a/interface/web/admin/lib/lang/se_server_config.lng b/interface/web/admin/lib/lang/se_server_config.lng index c949c052b..1103baa4d 100644 --- a/interface/web/admin/lib/lang/se_server_config.lng +++ b/interface/web/admin/lib/lang/se_server_config.lng @@ -296,4 +296,8 @@ $wb['php_default_name_txt'] = 'Description Default PHP-Version'; $wb['php_default_name_error_empty'] = 'Description Default PHP-Version must not be empty'; $wb['error_mailbox_message_size_txt'] = 'Mailbox size must be larger or equal to message size'; $wb['php_fpm_reload_mode_txt'] = 'PHP-FPM reload mode'; +$wb['content_filter_txt'] = 'Content Filter'; +$wb['rspamd_url_txt'] = 'Rspamd URL'; +$wb['rspamd_user_txt'] = 'Rspamd User'; +$wb['rspamd_password_txt'] = 'Rspamd Password'; ?> diff --git a/interface/web/admin/lib/lang/se_system_config.lng b/interface/web/admin/lib/lang/se_system_config.lng index 0c5643bf4..74ae16734 100644 --- a/interface/web/admin/lib/lang/se_system_config.lng +++ b/interface/web/admin/lib/lang/se_system_config.lng @@ -67,7 +67,7 @@ $wb['customer_no_template_error_regex_txt'] = 'Kundnummermallen innehåller otil $wb['customer_no_start_txt'] = 'Kundnummer startvärde'; $wb['customer_no_counter_txt'] = 'Kundnummer räknare'; $wb['session_timeout_txt'] = 'Session timeout (minuter)'; -$wb['session_allow_endless_txt'] = 'Aktivera \"håll mig inloggad\"'; +$wb['session_allow_endless_txt'] = 'Aktivera \\"håll mig inloggad\\"'; $wb['No'] = 'Nej'; $wb['min_password_length_txt'] = 'Minsta lösenordslängd'; $wb['min_password_strength_txt'] = 'Minsta lösenordsstyrka'; diff --git a/interface/web/admin/lib/lang/sk_server_config.lng b/interface/web/admin/lib/lang/sk_server_config.lng index 709f7b928..125e0b1ea 100644 --- a/interface/web/admin/lib/lang/sk_server_config.lng +++ b/interface/web/admin/lib/lang/sk_server_config.lng @@ -296,4 +296,8 @@ $wb['php_default_name_txt'] = 'Description Default PHP-Version'; $wb['php_default_name_error_empty'] = 'Description Default PHP-Version must not be empty'; $wb['error_mailbox_message_size_txt'] = 'Mailbox size must be larger or equal to message size'; $wb['php_fpm_reload_mode_txt'] = 'PHP-FPM reload mode'; +$wb['content_filter_txt'] = 'Content Filter'; +$wb['rspamd_url_txt'] = 'Rspamd URL'; +$wb['rspamd_user_txt'] = 'Rspamd User'; +$wb['rspamd_password_txt'] = 'Rspamd Password'; ?> diff --git a/interface/web/admin/lib/lang/sk_system_config.lng b/interface/web/admin/lib/lang/sk_system_config.lng index 390458886..90418e87d 100644 --- a/interface/web/admin/lib/lang/sk_system_config.lng +++ b/interface/web/admin/lib/lang/sk_system_config.lng @@ -67,7 +67,7 @@ $wb['customer_no_template_error_regex_txt'] = 'The customer No. template contain $wb['customer_no_start_txt'] = 'Customer No. start value'; $wb['customer_no_counter_txt'] = 'Customer No. counter'; $wb['session_timeout_txt'] = 'Session timeout (minutes)'; -$wb['session_allow_endless_txt'] = 'Enable \"stay logged in\"'; +$wb['session_allow_endless_txt'] = 'Enable \\"stay logged in\\"'; $wb['No'] = 'No'; $wb['min_password_length_txt'] = 'Minimum password length'; $wb['min_password_strength_txt'] = 'Minimum password strength'; diff --git a/interface/web/admin/lib/lang/sk_users.lng b/interface/web/admin/lib/lang/sk_users.lng index 60a0aa99e..d71952fa3 100644 --- a/interface/web/admin/lib/lang/sk_users.lng +++ b/interface/web/admin/lib/lang/sk_users.lng @@ -29,7 +29,7 @@ $wb['generate_password_txt'] = 'Generate Password'; $wb['repeat_password_txt'] = 'Repeat Password'; $wb['password_mismatch_txt'] = 'The passwords do not match.'; $wb['password_match_txt'] = 'The passwords do match.'; -$wb['username_error_collision'] = 'The username may not be web or web plus a number.\"'; +$wb['username_error_collision'] = 'The username may not be web or web plus a number.\\"'; $wb['client_not_admin_err'] = 'A user that belongs to a client can not be set to type: admin'; $wb['lost_password_function_txt'] = 'Forgot password function is available'; $wb['no_user_insert'] = 'CP-Users of type -user- get added and updated automatically when you add a client or reseller.'; diff --git a/interface/web/admin/lib/lang/tr_firewall.lng b/interface/web/admin/lib/lang/tr_firewall.lng index 8db312ff0..a45998d4e 100644 --- a/interface/web/admin/lib/lang/tr_firewall.lng +++ b/interface/web/admin/lib/lang/tr_firewall.lng @@ -6,6 +6,6 @@ $wb['tcp_port_help_txt'] = 'Virgül ile ayırarak yazın'; $wb['udp_port_help_txt'] = 'Virgül ile ayırarak yazın'; $wb['active_txt'] = 'Etkin'; $wb['firewall_error_unique'] = 'Bu sunucu için bir güvenlik duvarı kaydı zaten var.'; -$wb['tcp_ports_error_regex'] = 'TCP kapı açıklamasında karakter kullanılamaz. Yalnız rakam, \":\" ve \",\" karakterleri kullanılabilir.'; -$wb['udp_ports_error_regex'] = 'UDP kapı açıklamasında karakter kullanılamaz. Yalnız rakam, \":\" ve \",\" karakterleri kullanılabilir.'; +$wb['tcp_ports_error_regex'] = 'TCP kapı açıklamasında karakter kullanılamaz. Yalnız rakam, \\":\\" ve \\",\\" karakterleri kullanılabilir.'; +$wb['udp_ports_error_regex'] = 'UDP kapı açıklamasında karakter kullanılamaz. Yalnız rakam, \\":\\" ve \\",\\" karakterleri kullanılabilir.'; ?> diff --git a/interface/web/admin/lib/lang/tr_remote_action.lng b/interface/web/admin/lib/lang/tr_remote_action.lng index 2f124714e..c067f67e8 100644 --- a/interface/web/admin/lib/lang/tr_remote_action.lng +++ b/interface/web/admin/lib/lang/tr_remote_action.lng @@ -2,11 +2,11 @@ $wb['select_server_txt'] = 'Sunucu Seçin'; $wb['btn_do_txt'] = 'İşlemi Başlatın'; $wb['do_osupdate_caption'] = 'Uzak sunucudaki işletim sistemini güncelleyin'; -$wb['do_osupdate_desc'] = 'Bu işlem seçilmiş sunucuda \"aptitude -y upgrade\" komutunu yürütür.

OLUŞABİLECEK RİSKLER SİZE AİTTİR!'; +$wb['do_osupdate_desc'] = 'Bu işlem seçilmiş sunucuda \\"aptitude -y upgrade\\" komutunu yürütür.

OLUŞABİLECEK RİSKLER SİZE AİTTİR!'; $wb['do_ispcupdate_caption'] = 'Uzak sunucudaki ISPConfig 3 - sürümünü güncelleyin'; $wb['do_ispcupdate_desc'] = 'Bu işlem seçilmiş sunucuda ISPConfig3 güncellemesini yürütür.

OLUŞABİLECEK RİSKLER SÜZE AİTTİR!'; $wb['action_scheduled'] = 'İşlem yürütülmek üzere zamanlandı'; $wb['select_all_server'] = 'Tüm Sunucularda'; $wb['ispconfig_update_title'] = 'ISPConfig güncelleme yönergeleri'; -$wb['ispconfig_update_text'] = 'Sunucunuzda root kullanıcısı ile bir kabuk oturumu açın ve ISPConfig güncellemesini başlatmak için

ispconfig_update.sh

komutunu yürütün.

Ayrıntılı güncelleme bilgilerine bakmak için buraya tıklayın'; +$wb['ispconfig_update_text'] = 'Sunucunuzda root kullanıcısı ile bir kabuk oturumu açın ve ISPConfig güncellemesini başlatmak için

ispconfig_update.sh

komutunu yürütün.

Ayrıntılı güncelleme bilgilerine bakmak için buraya tıklayın'; ?> diff --git a/interface/web/admin/lib/lang/tr_server_config.lng b/interface/web/admin/lib/lang/tr_server_config.lng index 4abfd909b..efe24bf3a 100644 --- a/interface/web/admin/lib/lang/tr_server_config.lng +++ b/interface/web/admin/lib/lang/tr_server_config.lng @@ -152,7 +152,7 @@ $wb['try_rescue_txt'] = 'Hizmetler izlensin ve sorun çıktığında yeniden ba $wb['do_not_try_rescue_httpd_txt'] = 'HTTPD izlenmesin'; $wb['do_not_try_rescue_mysql_txt'] = 'MySQL izlenmesin'; $wb['do_not_try_rescue_mail_txt'] = 'E-posta izlenmesin'; -$wb['rescue_description_txt'] = 'Uyarı: mysql sunucusunu kapatmak istiyorsanız \"MySQL izlenmesin\" seçeneğini işaretleyip 2-3 dakika bekleyin.
2-3 dakika beklemezseniz, kurtarma işlemi mysql sunucusunu yeniden başlatmaya çalışır!'; +$wb['rescue_description_txt'] = 'Uyarı: mysql sunucusunu kapatmak istiyorsanız \\"MySQL izlenmesin\\" seçeneğini işaretleyip 2-3 dakika bekleyin.
2-3 dakika beklemezseniz, kurtarma işlemi mysql sunucusunu yeniden başlatmaya çalışır!'; $wb['enable_sni_txt'] = 'SNI Kullanılsın'; $wb['set_folder_permissions_on_update_txt'] = 'Güncellenirken klasör izinleri ayarlansın'; $wb['add_web_users_to_sshusers_group_txt'] = 'Web kullanıcıları -sshusers- grubuna eklensin'; @@ -296,4 +296,8 @@ $wb['php_default_name_txt'] = 'Description Default PHP-Version'; $wb['php_default_name_error_empty'] = 'Description Default PHP-Version must not be empty'; $wb['error_mailbox_message_size_txt'] = 'Mailbox size must be larger or equal to message size'; $wb['php_fpm_reload_mode_txt'] = 'PHP-FPM reload mode'; +$wb['content_filter_txt'] = 'Content Filter'; +$wb['rspamd_url_txt'] = 'Rspamd URL'; +$wb['rspamd_user_txt'] = 'Rspamd User'; +$wb['rspamd_password_txt'] = 'Rspamd Password'; ?> diff --git a/interface/web/admin/lib/lang/tr_system_config.lng b/interface/web/admin/lib/lang/tr_system_config.lng index b4b213697..c52893f6b 100644 --- a/interface/web/admin/lib/lang/tr_system_config.lng +++ b/interface/web/admin/lib/lang/tr_system_config.lng @@ -64,7 +64,7 @@ $wb['customer_no_template_error_regex_txt'] = 'Müşteri no kalıbında geçersi $wb['customer_no_start_txt'] = 'Müşteri No Başlangıç Değeri'; $wb['customer_no_counter_txt'] = 'Müşteri No Sayacı'; $wb['session_timeout_txt'] = 'Oturum Zaman Aşımı (dakika)'; -$wb['session_allow_endless_txt'] = '\"Oturum açık kalsın\" kullanılabilsin'; +$wb['session_allow_endless_txt'] = '\\"Oturum açık kalsın\\" kullanılabilsin'; $wb['No'] = 'No'; $wb['min_password_length_txt'] = 'En Az Parola Uzunluğu'; $wb['min_password_strength_txt'] = 'En Az Parola Güçlüğü'; diff --git a/interface/web/admin/lib/lang/tr_users.lng b/interface/web/admin/lib/lang/tr_users.lng index b639bf9a1..002921477 100644 --- a/interface/web/admin/lib/lang/tr_users.lng +++ b/interface/web/admin/lib/lang/tr_users.lng @@ -29,7 +29,7 @@ $wb['generate_password_txt'] = 'Parola Oluştur'; $wb['repeat_password_txt'] = 'Parola Onayı'; $wb['password_mismatch_txt'] = 'Parola ile onayı aynı değil.'; $wb['password_match_txt'] = 'Parola ile onayı aynı.'; -$wb['username_error_collision'] = 'Kullanıcı adı -web- ya da -web- sözcüğünü izleyen bir sayı ile başlayamaz.\"'; +$wb['username_error_collision'] = 'Kullanıcı adı -web- ya da -web- sözcüğünü izleyen bir sayı ile başlayamaz.\\"'; $wb['client_not_admin_err'] = 'Bir müşteriye ait bir kullanıcının tipi admin olarak atanamaz'; $wb['lost_password_function_txt'] = 'Forgot password function is available'; $wb['no_user_insert'] = 'CP-Users of type -user- get added and updated automatically when you add a client or reseller.'; diff --git a/interface/web/client/lib/lang/ar_client.lng b/interface/web/client/lib/lang/ar_client.lng index 4d2bcccef..71bc0fc1f 100644 --- a/interface/web/client/lib/lang/ar_client.lng +++ b/interface/web/client/lib/lang/ar_client.lng @@ -141,7 +141,7 @@ $wb['email_error_isemail'] = 'Please enter a valid email address.'; $wb['customer_no_error_unique'] = 'The customer no. must be unique (or empty).'; $wb['paypal_email_error_isemail'] = 'Please enter a valid PayPal email address.'; $wb['paypal_email_txt'] = 'PayPal Email'; -$wb['err_msg_master_tpl_set'] = 'All custom limit settings are ignored if any master template other than \"custom\" is selected.'; +$wb['err_msg_master_tpl_set'] = 'All custom limit settings are ignored if any master template other than \\"custom\\" is selected.'; $wb['aps_limits_txt'] = 'APS Installer Limits'; $wb['limit_aps_txt'] = 'Max. number of APS instances'; $wb['limit_aps_error_notint'] = 'The APS instances limit must be a number.'; diff --git a/interface/web/client/lib/lang/ar_reseller.lng b/interface/web/client/lib/lang/ar_reseller.lng index 553abe0ae..68e8a950f 100644 --- a/interface/web/client/lib/lang/ar_reseller.lng +++ b/interface/web/client/lib/lang/ar_reseller.lng @@ -159,7 +159,7 @@ $wb['added_date_txt'] = 'Added date'; $wb['limit_domainmodule_error_notint'] = 'Domainmodule limit must be a number.'; $wb['limit_domainmodule_txt'] = 'Domainmodule Limit'; $wb['client_limits_txt'] = 'Client Limits'; -$wb['err_msg_master_tpl_set'] = 'All custom limit settings are ignored if any master template other than \"custom\" is selected.'; +$wb['err_msg_master_tpl_set'] = 'All custom limit settings are ignored if any master template other than \\"custom\\" is selected.'; $wb['btn_save_txt'] = 'Save'; $wb['btn_cancel_txt'] = 'Cancel'; $wb['email_error_empty'] = 'Email is empty'; diff --git a/interface/web/client/lib/lang/bg_client.lng b/interface/web/client/lib/lang/bg_client.lng index 163f67704..36da0a042 100644 --- a/interface/web/client/lib/lang/bg_client.lng +++ b/interface/web/client/lib/lang/bg_client.lng @@ -141,7 +141,7 @@ $wb['email_error_isemail'] = 'Please enter a valid email address.'; $wb['customer_no_error_unique'] = 'The customer no. must be unique (or empty).'; $wb['paypal_email_error_isemail'] = 'Please enter a valid PayPal email address.'; $wb['paypal_email_txt'] = 'PayPal Email'; -$wb['err_msg_master_tpl_set'] = 'All custom limit settings are ignored if any master template other than \"custom\" is selected.'; +$wb['err_msg_master_tpl_set'] = 'All custom limit settings are ignored if any master template other than \\"custom\\" is selected.'; $wb['aps_limits_txt'] = 'APS Installer Limits'; $wb['limit_aps_txt'] = 'Max. number of APS instances'; $wb['limit_aps_error_notint'] = 'The APS instances limit must be a number.'; diff --git a/interface/web/client/lib/lang/bg_reseller.lng b/interface/web/client/lib/lang/bg_reseller.lng index 7daa4cff2..211b6daf9 100644 --- a/interface/web/client/lib/lang/bg_reseller.lng +++ b/interface/web/client/lib/lang/bg_reseller.lng @@ -159,7 +159,7 @@ $wb['added_date_txt'] = 'Added date'; $wb['limit_domainmodule_error_notint'] = 'Domainmodule limit must be a number.'; $wb['limit_domainmodule_txt'] = 'Domainmodule Limit'; $wb['client_limits_txt'] = 'Client Limits'; -$wb['err_msg_master_tpl_set'] = 'All custom limit settings are ignored if any master template other than \"custom\" is selected.'; +$wb['err_msg_master_tpl_set'] = 'All custom limit settings are ignored if any master template other than \\"custom\\" is selected.'; $wb['btn_save_txt'] = 'Save'; $wb['btn_cancel_txt'] = 'Cancel'; $wb['email_error_empty'] = 'Email is empty'; diff --git a/interface/web/client/lib/lang/br_client.lng b/interface/web/client/lib/lang/br_client.lng index ad9282aa4..992c1ea2c 100644 --- a/interface/web/client/lib/lang/br_client.lng +++ b/interface/web/client/lib/lang/br_client.lng @@ -141,7 +141,7 @@ $wb['email_error_isemail'] = 'Por favor, insira um e-mail válido.'; $wb['customer_no_error_unique'] = 'O código do cliente deve ser exclusivo (ou em branco).'; $wb['paypal_email_error_isemail'] = 'Por favor, insira um e-mail do PayPal válido.'; $wb['paypal_email_txt'] = 'e-mail do PayPal'; -$wb['err_msg_master_tpl_set'] = 'Todos as configurações de limites personalizadas são ignoradas se qualquer gabarito mestre ou algum gabarito \"personalizado\" for selecionado.'; +$wb['err_msg_master_tpl_set'] = 'Todos as configurações de limites personalizadas são ignoradas se qualquer gabarito mestre ou algum gabarito \\"personalizado\\" for selecionado.'; $wb['aps_limits_txt'] = 'Limites de apps instalados'; $wb['limit_aps_txt'] = 'Limite de instâncias de apps'; $wb['limit_aps_error_notint'] = 'Limite de instâncias de apps deve ser um número.'; diff --git a/interface/web/client/lib/lang/br_client_template.lng b/interface/web/client/lib/lang/br_client_template.lng index bc7124b16..4b2ce6555 100644 --- a/interface/web/client/lib/lang/br_client_template.lng +++ b/interface/web/client/lib/lang/br_client_template.lng @@ -76,7 +76,7 @@ $wb['limit_perl_txt'] = 'Perl disponível'; $wb['limit_ruby_txt'] = 'Ruby disponível'; $wb['limit_python_txt'] = 'Python disponível'; $wb['force_suexec_txt'] = 'Forçar SuEXEC'; -$wb['limit_hterror_txt'] = 'Diretório \"Custom error docs\" disponível'; +$wb['limit_hterror_txt'] = 'Diretório \\"Custom error docs\\" disponível'; $wb['limit_wildcard_txt'] = 'Curingas de subdomínios disponíveis'; $wb['limit_ssl_txt'] = 'SSL disponível'; $wb['web_limits_txt'] = 'Limites web'; diff --git a/interface/web/client/lib/lang/br_reseller.lng b/interface/web/client/lib/lang/br_reseller.lng index 524f875f7..d90d3b15a 100644 --- a/interface/web/client/lib/lang/br_reseller.lng +++ b/interface/web/client/lib/lang/br_reseller.lng @@ -159,7 +159,7 @@ $wb['added_date_txt'] = 'Data do cadastro'; $wb['limit_domainmodule_error_notint'] = 'Limite de módulos de domínio deve ser um número.'; $wb['limit_domainmodule_txt'] = 'Limites de módulos de domínio'; $wb['client_limits_txt'] = 'Limite de clientes'; -$wb['err_msg_master_tpl_set'] = 'Todas as configurações personalizadas de limites serão ignoradas se um gabarito mestre ou \"personalizado\" for selecionado.'; +$wb['err_msg_master_tpl_set'] = 'Todas as configurações personalizadas de limites serão ignoradas se um gabarito mestre ou \\"personalizado\\" for selecionado.'; $wb['btn_save_txt'] = 'Salvar'; $wb['btn_cancel_txt'] = 'Cancelar'; $wb['email_error_empty'] = 'e-mail está em branco.'; diff --git a/interface/web/client/lib/lang/ca_client.lng b/interface/web/client/lib/lang/ca_client.lng index 7f460522f..bfa38a340 100644 --- a/interface/web/client/lib/lang/ca_client.lng +++ b/interface/web/client/lib/lang/ca_client.lng @@ -139,7 +139,7 @@ $wb['email_error_isemail'] = 'Saisissez une adresse courriel valide.'; $wb['customer_no_error_unique'] = 'Le numéro client doit être unique (ou vide).'; $wb['paypal_email_error_isemail'] = 'Saisissez un compte Paypal valide.'; $wb['paypal_email_txt'] = 'Compte Paypal'; -$wb['err_msg_master_tpl_set'] = 'Les paramètres de limites personnalisés seront ignorés si un modèle maître autre que \"custom\" est sélectionné.'; +$wb['err_msg_master_tpl_set'] = 'Les paramètres de limites personnalisés seront ignorés si un modèle maître autre que \\"custom\\" est sélectionné.'; $wb['aps_limits_txt'] = 'Nombre max d\'Installeur APS'; $wb['limit_aps_txt'] = 'Nombre max d\'instances APS'; $wb['limit_aps_error_notint'] = 'La limite d\'instances APS doit être un nombre'; diff --git a/interface/web/client/lib/lang/ca_reseller.lng b/interface/web/client/lib/lang/ca_reseller.lng index 7125b01a7..f83d3aaff 100644 --- a/interface/web/client/lib/lang/ca_reseller.lng +++ b/interface/web/client/lib/lang/ca_reseller.lng @@ -156,7 +156,7 @@ $wb['added_date_txt'] = 'Ajouté le'; $wb['limit_domainmodule_error_notint'] = 'Domainmodule limit must be a number.'; $wb['limit_domainmodule_txt'] = 'Domainmodule Limit'; $wb['client_limits_txt'] = 'Client Limits'; -$wb['err_msg_master_tpl_set'] = 'All custom limit settings are ignored if any master template other than \"custom\" is selected.'; +$wb['err_msg_master_tpl_set'] = 'All custom limit settings are ignored if any master template other than \\"custom\\" is selected.'; $wb['contact_firstname_txt'] = 'Contact firstname'; $wb['limit_backup_txt'] = 'Backupfunction available'; $wb['limit_client_error_positive_or_unlimited'] = 'The number of clients must be > 0 or -1 (unlimited)'; diff --git a/interface/web/client/lib/lang/cz_client.lng b/interface/web/client/lib/lang/cz_client.lng index edd366830..3351ac58e 100644 --- a/interface/web/client/lib/lang/cz_client.lng +++ b/interface/web/client/lib/lang/cz_client.lng @@ -139,7 +139,7 @@ $wb['email_error_isemail'] = 'Zadejte prosím platnou e-mailovou adresu.'; $wb['customer_no_error_unique'] = 'Zákaznické číslo musí být jedinečné (nebo prázdné).'; $wb['paypal_email_error_isemail'] = 'Zadejte prosím platnou PayPal e-mail addresu.'; $wb['paypal_email_txt'] = 'PayPal e-mail'; -$wb['err_msg_master_tpl_set'] = 'Nelze nastavit vlastní limity, pokud chtete nastavit vlatní limity musí být \"hlavní šablona\" nastavena na volbu \"Custom\".'; +$wb['err_msg_master_tpl_set'] = 'Nelze nastavit vlastní limity, pokud chtete nastavit vlatní limity musí být \\"hlavní šablona\\" nastavena na volbu \\"Custom\\".'; $wb['aps_limits_txt'] = 'APS limity instalátoru'; $wb['limit_aps_txt'] = 'Max. počet APS instalací'; $wb['limit_aps_error_notint'] = 'Limit pro APS instalace musí být číslo.'; diff --git a/interface/web/client/lib/lang/cz_reseller.lng b/interface/web/client/lib/lang/cz_reseller.lng index 011b98531..adfea62ac 100644 --- a/interface/web/client/lib/lang/cz_reseller.lng +++ b/interface/web/client/lib/lang/cz_reseller.lng @@ -156,7 +156,7 @@ $wb['added_date_txt'] = 'Datum vytvoření účtu'; $wb['limit_domainmodule_error_notint'] = 'Domainmodule limit must be a number.'; $wb['limit_domainmodule_txt'] = 'Domainmodule Limit'; $wb['client_limits_txt'] = 'Klientské limity'; -$wb['err_msg_master_tpl_set'] = 'Nelze nastavit vlastní limity, pokud chtete nastavit vlatní limity musí být \"hlavní šablona\" nastavena na volbu \"Custom\".'; +$wb['err_msg_master_tpl_set'] = 'Nelze nastavit vlastní limity, pokud chtete nastavit vlatní limity musí být \\"hlavní šablona\\" nastavena na volbu \\"Custom\\".'; $wb['contact_firstname_txt'] = 'Kontakt křestní jméno'; $wb['limit_backup_txt'] = 'Funkce zálohování (volitelné)'; $wb['limit_client_error_positive_or_unlimited'] = 'The number of clients must be > 0 or -1 (unlimited)'; diff --git a/interface/web/client/lib/lang/de_reseller.lng b/interface/web/client/lib/lang/de_reseller.lng index 48460658c..e37ca395a 100644 --- a/interface/web/client/lib/lang/de_reseller.lng +++ b/interface/web/client/lib/lang/de_reseller.lng @@ -160,7 +160,7 @@ $wb['added_date_txt'] = 'Added date'; $wb['limit_domainmodule_error_notint'] = 'Domainmodule limit must be a number.'; $wb['limit_domainmodule_txt'] = 'Domainmodule Limit'; $wb['client_limits_txt'] = 'Client Limits'; -$wb['err_msg_master_tpl_set'] = 'All custom limit settings are ignored if any master template other than \"custom\" is selected.'; +$wb['err_msg_master_tpl_set'] = 'All custom limit settings are ignored if any master template other than \\"custom\\" is selected.'; $wb['invalid_vat_id'] = 'Die USt.-ID ist ungültig.'; $wb['btn_save_txt'] = 'Speichern'; $wb['btn_cancel_txt'] = 'Abbrechen'; diff --git a/interface/web/client/lib/lang/dk_client.lng b/interface/web/client/lib/lang/dk_client.lng index f0a8d1a7c..b944e0317 100644 --- a/interface/web/client/lib/lang/dk_client.lng +++ b/interface/web/client/lib/lang/dk_client.lng @@ -139,7 +139,7 @@ $wb['email_error_isemail'] = 'Indtast en gyldig e-mail adresse.'; $wb['customer_no_error_unique'] = 'Kunde nr. skal være unikke (eller tomt).'; $wb['paypal_email_error_isemail'] = 'Indtast en gyldig PayPal e-mail adresse.'; $wb['paypal_email_txt'] = 'PayPal E-mail'; -$wb['err_msg_master_tpl_set'] = 'Alle brugerdefinerede grænse indstillinger ignoreres, hvis nogen anden master skabelonen end \"custom\" er valgt.'; +$wb['err_msg_master_tpl_set'] = 'Alle brugerdefinerede grænse indstillinger ignoreres, hvis nogen anden master skabelonen end \\"custom\\" er valgt.'; $wb['aps_limits_txt'] = 'APS Installer Begrænsninger'; $wb['limit_aps_txt'] = 'Max. antal af APS forekomster'; $wb['limit_aps_error_notint'] = 'APS forekomster grænse skal være et tal.'; diff --git a/interface/web/client/lib/lang/dk_reseller.lng b/interface/web/client/lib/lang/dk_reseller.lng index 93cd7c403..b06301ccd 100644 --- a/interface/web/client/lib/lang/dk_reseller.lng +++ b/interface/web/client/lib/lang/dk_reseller.lng @@ -156,7 +156,7 @@ $wb['added_date_txt'] = 'Tilføjet d.'; $wb['limit_domainmodule_error_notint'] = 'Domænemodul grænse skal være et tal.'; $wb['limit_domainmodule_txt'] = 'Domænemodul Begrænsning'; $wb['client_limits_txt'] = 'Kunde Begrænsninger'; -$wb['err_msg_master_tpl_set'] = 'Alle brugerdefinerede grænse indstillinger ignoreres, hvis nogen anden master skabelonen end \"custom\" er valgt.'; +$wb['err_msg_master_tpl_set'] = 'Alle brugerdefinerede grænse indstillinger ignoreres, hvis nogen anden master skabelonen end \\"custom\\" er valgt.'; $wb['contact_firstname_txt'] = 'Contact firstname'; $wb['password_click_to_set_txt'] = 'Click to set'; $wb['limit_database_user_txt'] = 'Max. Database users'; diff --git a/interface/web/client/lib/lang/el_client.lng b/interface/web/client/lib/lang/el_client.lng index 8c2d7d738..b85f653d4 100644 --- a/interface/web/client/lib/lang/el_client.lng +++ b/interface/web/client/lib/lang/el_client.lng @@ -141,7 +141,7 @@ $wb['email_error_isemail'] = 'Please enter a valid email address.'; $wb['customer_no_error_unique'] = 'The customer no. must be unique (or empty).'; $wb['paypal_email_error_isemail'] = 'Please enter a valid PayPal email address.'; $wb['paypal_email_txt'] = 'PayPal Email'; -$wb['err_msg_master_tpl_set'] = 'All custom limit settings are ignored if any master template other than \"custom\" is selected.'; +$wb['err_msg_master_tpl_set'] = 'All custom limit settings are ignored if any master template other than \\"custom\\" is selected.'; $wb['aps_limits_txt'] = 'APS Installer Limits'; $wb['limit_aps_txt'] = 'Max. number of APS instances'; $wb['limit_aps_error_notint'] = 'The APS instances limit must be a number.'; diff --git a/interface/web/client/lib/lang/el_reseller.lng b/interface/web/client/lib/lang/el_reseller.lng index 13a38caf9..b409c169e 100644 --- a/interface/web/client/lib/lang/el_reseller.lng +++ b/interface/web/client/lib/lang/el_reseller.lng @@ -159,7 +159,7 @@ $wb['added_date_txt'] = 'Added date'; $wb['limit_domainmodule_error_notint'] = 'Domainmodule limit must be a number.'; $wb['limit_domainmodule_txt'] = 'Domainmodule Limit'; $wb['client_limits_txt'] = 'Client Limits'; -$wb['err_msg_master_tpl_set'] = 'All custom limit settings are ignored if any master template other than \"custom\" is selected.'; +$wb['err_msg_master_tpl_set'] = 'All custom limit settings are ignored if any master template other than \\"custom\\" is selected.'; $wb['btn_save_txt'] = 'Save'; $wb['btn_cancel_txt'] = 'Cancel'; $wb['email_error_empty'] = 'Email is empty'; diff --git a/interface/web/client/lib/lang/es_client.lng b/interface/web/client/lib/lang/es_client.lng index 1935b168a..75125024f 100755 --- a/interface/web/client/lib/lang/es_client.lng +++ b/interface/web/client/lib/lang/es_client.lng @@ -42,7 +42,7 @@ $wb['email_error_empty'] = 'El correo electrónico está vacío'; $wb['email_error_isemail'] = 'Por favor ingrese una dirección de correo válida.'; $wb['email_limits_txt'] = 'Límites de correo'; $wb['email_txt'] = 'Correo'; -$wb['err_msg_master_tpl_set'] = 'Todas las opciones personalizadas de límites serán ignoradas si se utiliza otra plantilla maestra diferente a \"personalizada\".'; +$wb['err_msg_master_tpl_set'] = 'Todas las opciones personalizadas de límites serán ignoradas si se utiliza otra plantilla maestra diferente a \\"personalizada\\".'; $wb['fax_txt'] = 'Fax'; $wb['firstname_error_empty'] = 'El nombre está vacío.'; $wb['firstname_txt'] = 'Nombre'; @@ -90,7 +90,7 @@ $wb['limit_mailaliasdomain_error_notint'] = 'El límite de alias de dominio de c $wb['limit_mailaliasdomain_txt'] = 'Cantidad máx. de alias de dominio'; $wb['limit_mailbox_error_notint'] = 'El límite de buzones debe ser un número.'; $wb['limit_mailbox_txt'] = 'Cantidad máx. de buzones'; -$wb['limit_mailcatchall_error_notint'] = 'El límite de correos \"recoge-todo\" debe ser un número.'; +$wb['limit_mailcatchall_error_notint'] = 'El límite de correos \\"recoge-todo\\" debe ser un número.'; $wb['limit_mailcatchall_txt'] = 'Cantidad máx. de receptores de correos huérfanos'; $wb['limit_maildomain_error_notint'] = 'El límite de dominio de correo debe ser un número.'; $wb['limit_maildomain_txt'] = 'Cantidad máx. de dominios para correo'; diff --git a/interface/web/client/lib/lang/es_client_template.lng b/interface/web/client/lib/lang/es_client_template.lng index 6a5145960..4fd6f650f 100755 --- a/interface/web/client/lib/lang/es_client_template.lng +++ b/interface/web/client/lib/lang/es_client_template.lng @@ -46,8 +46,8 @@ $wb['limit_mailaliasdomain_error_notint'] = 'El límite de alias de dominio de c $wb['limit_mailaliasdomain_txt'] = 'Cantidad máx. de alias de dominio'; $wb['limit_mailbox_error_notint'] = 'El límite de buzones debe ser un número.'; $wb['limit_mailbox_txt'] = 'Cantidad máx. de buzones'; -$wb['limit_mailcatchall_error_notint'] = 'El límite de receptores de correo \"recoge-todo\" debe ser un número.'; -$wb['limit_mailcatchall_txt'] = 'Cantidad máx. de receptores de correo \"recoge-todo\" '; +$wb['limit_mailcatchall_error_notint'] = 'El límite de receptores de correo \\"recoge-todo\\" debe ser un número.'; +$wb['limit_mailcatchall_txt'] = 'Cantidad máx. de receptores de correo \\"recoge-todo\\" '; $wb['limit_maildomain_error_notint'] = 'El límite de dominio de correo debe ser un número.'; $wb['limit_maildomain_txt'] = 'Cantidad máx. de dominios para correo'; $wb['limit_mailfetchmail_error_notint'] = 'El límite de recuperadores de correo debe ser un número.'; diff --git a/interface/web/client/lib/lang/es_reseller.lng b/interface/web/client/lib/lang/es_reseller.lng index a1de1fb7b..5a94b9e80 100755 --- a/interface/web/client/lib/lang/es_reseller.lng +++ b/interface/web/client/lib/lang/es_reseller.lng @@ -46,7 +46,7 @@ $wb['email_error_empty'] = 'El correo electrónico está vacío'; $wb['email_error_isemail'] = 'Por favor ingrese una dirección de correo válida.'; $wb['email_limits_txt'] = 'Límites de correo'; $wb['email_txt'] = 'Correo'; -$wb['err_msg_master_tpl_set'] = 'Todas las opciones personalizadas de límites serán ignoradas si se utiliza otra plantilla maestra diferente a \"personalizada\".'; +$wb['err_msg_master_tpl_set'] = 'Todas las opciones personalizadas de límites serán ignoradas si se utiliza otra plantilla maestra diferente a \\"personalizada\\".'; $wb['fax_txt'] = 'Fax'; $wb['firstname_error_empty'] = 'El nombre está vacío.'; $wb['firstname_txt'] = 'Nombre'; @@ -97,7 +97,7 @@ $wb['limit_mailalias_txt'] = 'Cantidad máx. de alias de correo'; $wb['limit_mailaliasdomain_txt'] = 'Cantidad máx. de alias de dominio'; $wb['limit_mailbox_error_notint'] = 'El límite de buzones debe ser un número.'; $wb['limit_mailbox_txt'] = 'Cantidad máx. de buzones'; -$wb['limit_mailcatchall_error_notint'] = 'El límite de correos \"recoge-todo\" debe ser un número.'; +$wb['limit_mailcatchall_error_notint'] = 'El límite de correos \\"recoge-todo\\" debe ser un número.'; $wb['limit_mailcatchall_txt'] = 'Cantidad máx. de receptores de correos huérfanos'; $wb['limit_maildomain_error_notint'] = 'El límite de dominio de correo debe ser un número.'; $wb['limit_maildomain_txt'] = 'Cantidad máx. de dominios para correo'; diff --git a/interface/web/client/lib/lang/fi_client.lng b/interface/web/client/lib/lang/fi_client.lng index a90a3d7c2..6df30e775 100755 --- a/interface/web/client/lib/lang/fi_client.lng +++ b/interface/web/client/lib/lang/fi_client.lng @@ -141,7 +141,7 @@ $wb['email_error_isemail'] = 'Please enter a valid email address.'; $wb['customer_no_error_unique'] = 'The customer no. must be unique (or empty).'; $wb['paypal_email_error_isemail'] = 'Please enter a valid PayPal email address.'; $wb['paypal_email_txt'] = 'PayPal Email'; -$wb['err_msg_master_tpl_set'] = 'All custom limit settings are ignored if any master template other than \"custom\" is selected.'; +$wb['err_msg_master_tpl_set'] = 'All custom limit settings are ignored if any master template other than \\"custom\\" is selected.'; $wb['aps_limits_txt'] = 'APS Installer Limits'; $wb['limit_aps_txt'] = 'Max. number of APS instances'; $wb['limit_aps_error_notint'] = 'The APS instances limit must be a number.'; diff --git a/interface/web/client/lib/lang/fi_reseller.lng b/interface/web/client/lib/lang/fi_reseller.lng index 6aecc836e..58af2fdf0 100644 --- a/interface/web/client/lib/lang/fi_reseller.lng +++ b/interface/web/client/lib/lang/fi_reseller.lng @@ -159,7 +159,7 @@ $wb['added_date_txt'] = 'Added date'; $wb['limit_domainmodule_error_notint'] = 'Domainmodule limit must be a number.'; $wb['limit_domainmodule_txt'] = 'Domainmodule Limit'; $wb['client_limits_txt'] = 'Client Limits'; -$wb['err_msg_master_tpl_set'] = 'All custom limit settings are ignored if any master template other than \"custom\" is selected.'; +$wb['err_msg_master_tpl_set'] = 'All custom limit settings are ignored if any master template other than \\"custom\\" is selected.'; $wb['btn_save_txt'] = 'Save'; $wb['btn_cancel_txt'] = 'Cancel'; $wb['email_error_empty'] = 'Email is empty'; diff --git a/interface/web/client/lib/lang/fr_client.lng b/interface/web/client/lib/lang/fr_client.lng index f13f0d467..61612ccbe 100644 --- a/interface/web/client/lib/lang/fr_client.lng +++ b/interface/web/client/lib/lang/fr_client.lng @@ -139,7 +139,7 @@ $wb['email_error_isemail'] = 'Saisissez une adresse e-mail valide.'; $wb['customer_no_error_unique'] = 'Le numéro client doit être unique (ou vide).'; $wb['paypal_email_error_isemail'] = 'Saisissez un compte Paypal valide.'; $wb['paypal_email_txt'] = 'Compte Paypal'; -$wb['err_msg_master_tpl_set'] = 'Les paramètres de limites personnalisés seront ignorés si un modèle maître autre que \"custom\" est sélectionné.'; +$wb['err_msg_master_tpl_set'] = 'Les paramètres de limites personnalisés seront ignorés si un modèle maître autre que \\"custom\\" est sélectionné.'; $wb['aps_limits_txt'] = 'Nombre max d’Installeur APS'; $wb['limit_aps_txt'] = 'Nombre max d’instances APS'; $wb['limit_aps_error_notint'] = 'La limite d’instances APS doit être un nombre'; diff --git a/interface/web/client/lib/lang/fr_reseller.lng b/interface/web/client/lib/lang/fr_reseller.lng index 591e12ac3..f30fcd48c 100644 --- a/interface/web/client/lib/lang/fr_reseller.lng +++ b/interface/web/client/lib/lang/fr_reseller.lng @@ -156,7 +156,7 @@ $wb['added_date_txt'] = 'Added date'; $wb['limit_domainmodule_error_notint'] = 'Domainmodule limit must be a number.'; $wb['limit_domainmodule_txt'] = 'Domainmodule Limit'; $wb['client_limits_txt'] = 'Client Limits'; -$wb['err_msg_master_tpl_set'] = 'All custom limit settings are ignored if any master template other than \"custom\" is selected.'; +$wb['err_msg_master_tpl_set'] = 'All custom limit settings are ignored if any master template other than \\"custom\\" is selected.'; $wb['contact_firstname_txt'] = 'Contact firstname'; $wb['limit_backup_txt'] = 'Backupfunction available'; $wb['limit_client_error_positive_or_unlimited'] = 'The number of clients must be > 0 or -1 (unlimited)'; diff --git a/interface/web/client/lib/lang/hr_client.lng b/interface/web/client/lib/lang/hr_client.lng index 351ad4b8b..ec5b73d94 100644 --- a/interface/web/client/lib/lang/hr_client.lng +++ b/interface/web/client/lib/lang/hr_client.lng @@ -141,7 +141,7 @@ $wb['email_error_isemail'] = 'Unesi ispravnu email adresu.'; $wb['customer_no_error_unique'] = 'The customer no. must be unique (or empty).'; $wb['paypal_email_error_isemail'] = 'Please enter a valid PayPal email address.'; $wb['paypal_email_txt'] = 'PayPal Email'; -$wb['err_msg_master_tpl_set'] = 'All custom limit settings are ignored if any master template other than \"custom\" is selected.'; +$wb['err_msg_master_tpl_set'] = 'All custom limit settings are ignored if any master template other than \\"custom\\" is selected.'; $wb['aps_limits_txt'] = 'APS Installer Limits'; $wb['limit_aps_txt'] = 'Max. number of APS instances'; $wb['limit_aps_error_notint'] = 'The APS instances limit must be a number.'; diff --git a/interface/web/client/lib/lang/hr_reseller.lng b/interface/web/client/lib/lang/hr_reseller.lng index 37e1e3835..9188b6861 100644 --- a/interface/web/client/lib/lang/hr_reseller.lng +++ b/interface/web/client/lib/lang/hr_reseller.lng @@ -159,7 +159,7 @@ $wb['added_date_txt'] = 'Datum dodavanja'; $wb['limit_domainmodule_error_notint'] = 'Domainmodule limit must be a number.'; $wb['limit_domainmodule_txt'] = 'Domain module Limit'; $wb['client_limits_txt'] = 'Limiti klijenata'; -$wb['err_msg_master_tpl_set'] = 'All custom limit settings are ignored if any master template other than \"custom\" is selected.'; +$wb['err_msg_master_tpl_set'] = 'All custom limit settings are ignored if any master template other than \\"custom\\" is selected.'; $wb['btn_save_txt'] = 'Save'; $wb['btn_cancel_txt'] = 'Cancel'; $wb['email_error_empty'] = 'Email is empty'; diff --git a/interface/web/client/lib/lang/hu_client.lng b/interface/web/client/lib/lang/hu_client.lng index 8b9cc1608..10993601c 100644 --- a/interface/web/client/lib/lang/hu_client.lng +++ b/interface/web/client/lib/lang/hu_client.lng @@ -141,7 +141,7 @@ $wb['email_error_isemail'] = 'Please enter a valid email address.'; $wb['customer_no_error_unique'] = 'The customer no. must be unique (or empty).'; $wb['paypal_email_error_isemail'] = 'Please enter a valid PayPal email address.'; $wb['paypal_email_txt'] = 'PayPal Email'; -$wb['err_msg_master_tpl_set'] = 'All custom limit settings are ignored if any master template other than \"custom\" is selected.'; +$wb['err_msg_master_tpl_set'] = 'All custom limit settings are ignored if any master template other than \\"custom\\" is selected.'; $wb['aps_limits_txt'] = 'APS Installer Limits'; $wb['limit_aps_txt'] = 'Max. number of APS instances'; $wb['limit_aps_error_notint'] = 'The APS instances limit must be a number.'; diff --git a/interface/web/client/lib/lang/hu_reseller.lng b/interface/web/client/lib/lang/hu_reseller.lng index 2b0c15e8f..dd9290885 100644 --- a/interface/web/client/lib/lang/hu_reseller.lng +++ b/interface/web/client/lib/lang/hu_reseller.lng @@ -159,7 +159,7 @@ $wb['added_date_txt'] = 'Added date'; $wb['limit_domainmodule_error_notint'] = 'Domainmodule limit must be a number.'; $wb['limit_domainmodule_txt'] = 'Domainmodule Limit'; $wb['client_limits_txt'] = 'Client Limits'; -$wb['err_msg_master_tpl_set'] = 'All custom limit settings are ignored if any master template other than \"custom\" is selected.'; +$wb['err_msg_master_tpl_set'] = 'All custom limit settings are ignored if any master template other than \\"custom\\" is selected.'; $wb['btn_save_txt'] = 'Save'; $wb['btn_cancel_txt'] = 'Cancel'; $wb['email_error_empty'] = 'Email is empty'; diff --git a/interface/web/client/lib/lang/id_client.lng b/interface/web/client/lib/lang/id_client.lng index d25230ea3..c84e6251f 100644 --- a/interface/web/client/lib/lang/id_client.lng +++ b/interface/web/client/lib/lang/id_client.lng @@ -141,7 +141,7 @@ $wb['email_error_isemail'] = 'Please enter a valid email address.'; $wb['customer_no_error_unique'] = 'The customer no. must be unique (or empty).'; $wb['paypal_email_error_isemail'] = 'Please enter a valid PayPal email address.'; $wb['paypal_email_txt'] = 'PayPal Email'; -$wb['err_msg_master_tpl_set'] = 'All custom limit settings are ignored if any master template other than \"custom\" is selected.'; +$wb['err_msg_master_tpl_set'] = 'All custom limit settings are ignored if any master template other than \\"custom\\" is selected.'; $wb['aps_limits_txt'] = 'APS Installer Limits'; $wb['limit_aps_txt'] = 'Max. number of APS instances'; $wb['limit_aps_error_notint'] = 'The APS instances limit must be a number.'; diff --git a/interface/web/client/lib/lang/id_reseller.lng b/interface/web/client/lib/lang/id_reseller.lng index af91d1bb4..821a35e3c 100644 --- a/interface/web/client/lib/lang/id_reseller.lng +++ b/interface/web/client/lib/lang/id_reseller.lng @@ -159,7 +159,7 @@ $wb['added_date_txt'] = 'Added date'; $wb['limit_domainmodule_error_notint'] = 'Domainmodule limit must be a number.'; $wb['limit_domainmodule_txt'] = 'Domainmodule Limit'; $wb['client_limits_txt'] = 'Client Limits'; -$wb['err_msg_master_tpl_set'] = 'All custom limit settings are ignored if any master template other than \"custom\" is selected.'; +$wb['err_msg_master_tpl_set'] = 'All custom limit settings are ignored if any master template other than \\"custom\\" is selected.'; $wb['btn_save_txt'] = 'Save'; $wb['btn_cancel_txt'] = 'Cancel'; $wb['email_error_empty'] = 'Email is empty'; diff --git a/interface/web/client/lib/lang/it_client.lng b/interface/web/client/lib/lang/it_client.lng index a361d0a88..0f75d849d 100644 --- a/interface/web/client/lib/lang/it_client.lng +++ b/interface/web/client/lib/lang/it_client.lng @@ -139,7 +139,7 @@ $wb['email_error_isemail'] = 'Please enter a valid email address.'; $wb['customer_no_error_unique'] = 'The customer no. must be unique (or empty).'; $wb['paypal_email_error_isemail'] = 'Please enter a valid PayPal email address.'; $wb['paypal_email_txt'] = 'PayPal Email'; -$wb['err_msg_master_tpl_set'] = 'All custom limit settings are ignored if any master template other than \"custom\" is selected.'; +$wb['err_msg_master_tpl_set'] = 'All custom limit settings are ignored if any master template other than \\"custom\\" is selected.'; $wb['aps_limits_txt'] = 'APS Installer Limits'; $wb['limit_aps_txt'] = 'Max. number of APS instances'; $wb['limit_aps_error_notint'] = 'The APS instances limit must be a number.'; diff --git a/interface/web/client/lib/lang/it_reseller.lng b/interface/web/client/lib/lang/it_reseller.lng index 8fc49568a..2cef29326 100644 --- a/interface/web/client/lib/lang/it_reseller.lng +++ b/interface/web/client/lib/lang/it_reseller.lng @@ -156,7 +156,7 @@ $wb['added_date_txt'] = 'Added date'; $wb['limit_domainmodule_error_notint'] = 'Domainmodule limit must be a number.'; $wb['limit_domainmodule_txt'] = 'Domainmodule Limit'; $wb['client_limits_txt'] = 'Client Limits'; -$wb['err_msg_master_tpl_set'] = 'All custom limit settings are ignored if any master template other than \"custom\" is selected.'; +$wb['err_msg_master_tpl_set'] = 'All custom limit settings are ignored if any master template other than \\"custom\\" is selected.'; $wb['contact_firstname_txt'] = 'Contact firstname'; $wb['limit_backup_txt'] = 'Backupfunction available'; $wb['limit_client_error_positive_or_unlimited'] = 'The number of clients must be > 0 or -1 (unlimited)'; diff --git a/interface/web/client/lib/lang/ja_client.lng b/interface/web/client/lib/lang/ja_client.lng index 2526c0279..33aa6ab4e 100644 --- a/interface/web/client/lib/lang/ja_client.lng +++ b/interface/web/client/lib/lang/ja_client.lng @@ -141,7 +141,7 @@ $wb['email_error_isemail'] = 'Please enter a valid email address.'; $wb['customer_no_error_unique'] = 'The customer no. must be unique (or empty).'; $wb['paypal_email_error_isemail'] = 'Please enter a valid PayPal email address.'; $wb['paypal_email_txt'] = 'PayPal Email'; -$wb['err_msg_master_tpl_set'] = 'All custom limit settings are ignored if any master template other than \"custom\" is selected.'; +$wb['err_msg_master_tpl_set'] = 'All custom limit settings are ignored if any master template other than \\"custom\\" is selected.'; $wb['aps_limits_txt'] = 'APS Installer Limits'; $wb['limit_aps_txt'] = 'Max. number of APS instances'; $wb['limit_aps_error_notint'] = 'The APS instances limit must be a number.'; diff --git a/interface/web/client/lib/lang/ja_reseller.lng b/interface/web/client/lib/lang/ja_reseller.lng index 66200eccb..7edf836f3 100644 --- a/interface/web/client/lib/lang/ja_reseller.lng +++ b/interface/web/client/lib/lang/ja_reseller.lng @@ -159,7 +159,7 @@ $wb['added_date_txt'] = 'Added date'; $wb['limit_domainmodule_error_notint'] = 'Domainmodule limit must be a number.'; $wb['limit_domainmodule_txt'] = 'Domainmodule Limit'; $wb['client_limits_txt'] = 'Client Limits'; -$wb['err_msg_master_tpl_set'] = 'All custom limit settings are ignored if any master template other than \"custom\" is selected.'; +$wb['err_msg_master_tpl_set'] = 'All custom limit settings are ignored if any master template other than \\"custom\\" is selected.'; $wb['btn_save_txt'] = 'Save'; $wb['btn_cancel_txt'] = 'Cancel'; $wb['email_error_empty'] = 'Email is empty'; diff --git a/interface/web/client/lib/lang/nl_client.lng b/interface/web/client/lib/lang/nl_client.lng index 8e0092f25..188a37f4f 100644 --- a/interface/web/client/lib/lang/nl_client.lng +++ b/interface/web/client/lib/lang/nl_client.lng @@ -142,7 +142,7 @@ $wb['email_error_isemail'] = 'Please enter a valid email address.'; $wb['customer_no_error_unique'] = 'The customer no. must be unique (or empty).'; $wb['paypal_email_error_isemail'] = 'Please enter a valid PayPal email address.'; $wb['paypal_email_txt'] = 'PayPal Email'; -$wb['err_msg_master_tpl_set'] = 'All custom limit settings are ignored if any master template other than \"custom\" is selected.'; +$wb['err_msg_master_tpl_set'] = 'All custom limit settings are ignored if any master template other than \\"custom\\" is selected.'; $wb['aps_limits_txt'] = 'APS Installer Limits'; $wb['limit_aps_txt'] = 'Max. number of APS instances'; $wb['limit_aps_error_notint'] = 'The APS instances limit must be a number.'; diff --git a/interface/web/client/lib/lang/nl_reseller.lng b/interface/web/client/lib/lang/nl_reseller.lng index 9cdb1856f..9953880be 100644 --- a/interface/web/client/lib/lang/nl_reseller.lng +++ b/interface/web/client/lib/lang/nl_reseller.lng @@ -160,7 +160,7 @@ $wb['added_date_txt'] = 'Added date'; $wb['limit_domainmodule_error_notint'] = 'Domainmodule limit must be a number.'; $wb['limit_domainmodule_txt'] = 'Domainmodule Limit'; $wb['client_limits_txt'] = 'Client Limits'; -$wb['err_msg_master_tpl_set'] = 'All custom limit settings are ignored if any master template other than \"custom\" is selected.'; +$wb['err_msg_master_tpl_set'] = 'All custom limit settings are ignored if any master template other than \\"custom\\" is selected.'; $wb['btn_save_txt'] = 'Save'; $wb['btn_cancel_txt'] = 'Cancel'; $wb['email_error_empty'] = 'Email is empty'; diff --git a/interface/web/client/lib/lang/pl_reseller.lng b/interface/web/client/lib/lang/pl_reseller.lng index 69b30fe2a..9b2cf58f7 100644 --- a/interface/web/client/lib/lang/pl_reseller.lng +++ b/interface/web/client/lib/lang/pl_reseller.lng @@ -159,7 +159,7 @@ $wb['added_date_txt'] = 'Added date'; $wb['limit_domainmodule_error_notint'] = 'Domainmodule limit must be a number.'; $wb['limit_domainmodule_txt'] = 'Domainmodule Limit'; $wb['client_limits_txt'] = 'Client Limits'; -$wb['err_msg_master_tpl_set'] = 'All custom limit settings are ignored if any master template other than \"custom\" is selected.'; +$wb['err_msg_master_tpl_set'] = 'All custom limit settings are ignored if any master template other than \\"custom\\" is selected.'; $wb['btn_save_txt'] = 'Save'; $wb['btn_cancel_txt'] = 'Cancel'; $wb['email_error_empty'] = 'Email is empty'; diff --git a/interface/web/client/lib/lang/pt_client.lng b/interface/web/client/lib/lang/pt_client.lng index b05e14dfe..ae3e45b24 100644 --- a/interface/web/client/lib/lang/pt_client.lng +++ b/interface/web/client/lib/lang/pt_client.lng @@ -141,7 +141,7 @@ $wb['email_error_isemail'] = 'Please enter a valid email address.'; $wb['customer_no_error_unique'] = 'The customer no. must be unique (or empty).'; $wb['paypal_email_error_isemail'] = 'Please enter a valid PayPal email address.'; $wb['paypal_email_txt'] = 'PayPal Email'; -$wb['err_msg_master_tpl_set'] = 'All custom limit settings are ignored if any master template other than \"custom\" is selected.'; +$wb['err_msg_master_tpl_set'] = 'All custom limit settings are ignored if any master template other than \\"custom\\" is selected.'; $wb['aps_limits_txt'] = 'APS Installer Limits'; $wb['limit_aps_txt'] = 'Max. number of APS instances'; $wb['limit_aps_error_notint'] = 'The APS instances limit must be a number.'; diff --git a/interface/web/client/lib/lang/pt_reseller.lng b/interface/web/client/lib/lang/pt_reseller.lng index ae3eddd8b..e021cd251 100644 --- a/interface/web/client/lib/lang/pt_reseller.lng +++ b/interface/web/client/lib/lang/pt_reseller.lng @@ -159,7 +159,7 @@ $wb['added_date_txt'] = 'Added date'; $wb['limit_domainmodule_error_notint'] = 'Domainmodule limit must be a number.'; $wb['limit_domainmodule_txt'] = 'Domainmodule Limit'; $wb['client_limits_txt'] = 'Client Limits'; -$wb['err_msg_master_tpl_set'] = 'All custom limit settings are ignored if any master template other than \"custom\" is selected.'; +$wb['err_msg_master_tpl_set'] = 'All custom limit settings are ignored if any master template other than \\"custom\\" is selected.'; $wb['btn_save_txt'] = 'Save'; $wb['btn_cancel_txt'] = 'Cancel'; $wb['email_error_empty'] = 'Email is empty'; diff --git a/interface/web/client/lib/lang/ro_client.lng b/interface/web/client/lib/lang/ro_client.lng index bc0ad4316..034c4d0e4 100644 --- a/interface/web/client/lib/lang/ro_client.lng +++ b/interface/web/client/lib/lang/ro_client.lng @@ -141,7 +141,7 @@ $wb['email_error_isemail'] = 'Please enter a valid email address.'; $wb['customer_no_error_unique'] = 'The customer no. must be unique (or empty).'; $wb['paypal_email_error_isemail'] = 'Please enter a valid PayPal email address.'; $wb['paypal_email_txt'] = 'PayPal Email'; -$wb['err_msg_master_tpl_set'] = 'All custom limit settings are ignored if any master template other than \"custom\" is selected.'; +$wb['err_msg_master_tpl_set'] = 'All custom limit settings are ignored if any master template other than \\"custom\\" is selected.'; $wb['aps_limits_txt'] = 'APS Installer Limits'; $wb['limit_aps_txt'] = 'Max. number of APS instances'; $wb['limit_aps_error_notint'] = 'The APS instances limit must be a number.'; diff --git a/interface/web/client/lib/lang/ro_reseller.lng b/interface/web/client/lib/lang/ro_reseller.lng index 553abe0ae..68e8a950f 100644 --- a/interface/web/client/lib/lang/ro_reseller.lng +++ b/interface/web/client/lib/lang/ro_reseller.lng @@ -159,7 +159,7 @@ $wb['added_date_txt'] = 'Added date'; $wb['limit_domainmodule_error_notint'] = 'Domainmodule limit must be a number.'; $wb['limit_domainmodule_txt'] = 'Domainmodule Limit'; $wb['client_limits_txt'] = 'Client Limits'; -$wb['err_msg_master_tpl_set'] = 'All custom limit settings are ignored if any master template other than \"custom\" is selected.'; +$wb['err_msg_master_tpl_set'] = 'All custom limit settings are ignored if any master template other than \\"custom\\" is selected.'; $wb['btn_save_txt'] = 'Save'; $wb['btn_cancel_txt'] = 'Cancel'; $wb['email_error_empty'] = 'Email is empty'; diff --git a/interface/web/client/lib/lang/ru_client.lng b/interface/web/client/lib/lang/ru_client.lng index a37d4673a..befd6b15b 100644 --- a/interface/web/client/lib/lang/ru_client.lng +++ b/interface/web/client/lib/lang/ru_client.lng @@ -108,7 +108,7 @@ $wb['limit_openvz_vm_template_id_txt'] = 'Принудительный шабл $wb['limit_openvz_vm_error_notint'] = 'Лимит виртуальных серверов должен быть числом.'; $wb['web_php_options_notempty'] = 'Нет выбранных параметров PHP. Выберите по крайней мере один параметр PHP.'; $wb['ssh_chroot_notempty'] = 'Не выбран параметр SSH-Chroot. Выберите по крайней мере один параметр SSH-Chroot.'; -$wb['username_error_collision'] = 'Имя пользователя не может начинаться со слова \"web\" или \"web\" плюс число.'; +$wb['username_error_collision'] = 'Имя пользователя не может начинаться со слова \\"web\\" или \\"web\\" плюс число.'; $wb['add_additional_template_txt'] = 'Добавить дополнительный шаблон'; $wb['delete_additional_template_txt'] = 'Удалить дополнительный шаблон'; $wb['limit_cgi_txt'] = 'CGI доступен'; @@ -141,7 +141,7 @@ $wb['email_error_isemail'] = 'Некорректный почтовый адре $wb['customer_no_error_unique'] = 'Счётчик номера Клиента должен быть уникален (или отсутствует).'; $wb['paypal_email_error_isemail'] = 'Пожалуйста, введите действующий адрес электронной почты PayPal.'; $wb['paypal_email_txt'] = 'Адрес электронной почты PayPal'; -$wb['err_msg_master_tpl_set'] = 'Значения, установленные здесь игнорируются, если не выбран в качестве главного шаблона \"Custom\"!'; +$wb['err_msg_master_tpl_set'] = 'Значения, установленные здесь игнорируются, если не выбран в качестве главного шаблона \\"Custom\\"!'; $wb['aps_limits_txt'] = 'Лимиты Установщика APS'; $wb['limit_aps_txt'] = 'Макс. количество экземпляров APS'; $wb['limit_aps_error_notint'] = 'Лимит экземпляров APS должен быть числом.'; diff --git a/interface/web/client/lib/lang/ru_reseller.lng b/interface/web/client/lib/lang/ru_reseller.lng index 4a177cccc..998a88699 100644 --- a/interface/web/client/lib/lang/ru_reseller.lng +++ b/interface/web/client/lib/lang/ru_reseller.lng @@ -108,7 +108,7 @@ $wb['limit_openvz_vm_template_id_txt'] = 'Принудительный шабл $wb['limit_openvz_vm_error_notint'] = 'Лимит виртуальных серверов должен быть числом.'; $wb['web_php_options_notempty'] = 'Нет выбранных параметров PHP. Выберите по крайней мере один параметр PHP.'; $wb['ssh_chroot_notempty'] = 'Не выбран параметр SSH-Chroot. Выберите по крайней мере один параметр SSH-Chroot.'; -$wb['username_error_collision'] = 'Имя пользователя не может начинаться со слова \"web\" или \"web\" плюс число.'; +$wb['username_error_collision'] = 'Имя пользователя не может начинаться со слова \\"web\\" или \\"web\\" плюс число.'; $wb['add_additional_template_txt'] = 'Добавить дополнительный шаблон'; $wb['delete_additional_template_txt'] = 'Удалить дополнительный шаблон'; $wb['limit_cgi_txt'] = 'CGI доступен'; @@ -159,7 +159,7 @@ $wb['added_date_txt'] = 'Дата добавления'; $wb['limit_domainmodule_error_notint'] = 'Лимит модулей домена должен быть числом.'; $wb['limit_domainmodule_txt'] = 'Лимит модулей домена'; $wb['client_limits_txt'] = 'Лимиты Клиента'; -$wb['err_msg_master_tpl_set'] = 'Значения, установленные здесь игнорируются, если не выбран в качестве главного шаблона \"Custom\"!'; +$wb['err_msg_master_tpl_set'] = 'Значения, установленные здесь игнорируются, если не выбран в качестве главного шаблона \\"Custom\\"!'; $wb['btn_save_txt'] = 'Сохранить'; $wb['btn_cancel_txt'] = 'Отменить'; $wb['email_error_empty'] = 'Адрес эл. почты пустой'; diff --git a/interface/web/client/lib/lang/se_client.lng b/interface/web/client/lib/lang/se_client.lng index 5232e95f5..2884302c1 100644 --- a/interface/web/client/lib/lang/se_client.lng +++ b/interface/web/client/lib/lang/se_client.lng @@ -141,7 +141,7 @@ $wb['email_error_isemail'] = 'Vänligen ange en giltig epostadress'; $wb['customer_no_error_unique'] = 'The customer no. must be unique (or empty).'; $wb['paypal_email_error_isemail'] = 'Please enter a valid PayPal email address.'; $wb['paypal_email_txt'] = 'PayPal epostadress'; -$wb['err_msg_master_tpl_set'] = 'All custom limit settings are ignored if any master template other than \"custom\" is selected.'; +$wb['err_msg_master_tpl_set'] = 'All custom limit settings are ignored if any master template other than \\"custom\\" is selected.'; $wb['aps_limits_txt'] = 'APS Installer Limits'; $wb['limit_aps_txt'] = 'Max. number of APS instances'; $wb['limit_aps_error_notint'] = 'The APS instances limit must be a number.'; diff --git a/interface/web/client/lib/lang/se_reseller.lng b/interface/web/client/lib/lang/se_reseller.lng index 553abe0ae..68e8a950f 100644 --- a/interface/web/client/lib/lang/se_reseller.lng +++ b/interface/web/client/lib/lang/se_reseller.lng @@ -159,7 +159,7 @@ $wb['added_date_txt'] = 'Added date'; $wb['limit_domainmodule_error_notint'] = 'Domainmodule limit must be a number.'; $wb['limit_domainmodule_txt'] = 'Domainmodule Limit'; $wb['client_limits_txt'] = 'Client Limits'; -$wb['err_msg_master_tpl_set'] = 'All custom limit settings are ignored if any master template other than \"custom\" is selected.'; +$wb['err_msg_master_tpl_set'] = 'All custom limit settings are ignored if any master template other than \\"custom\\" is selected.'; $wb['btn_save_txt'] = 'Save'; $wb['btn_cancel_txt'] = 'Cancel'; $wb['email_error_empty'] = 'Email is empty'; diff --git a/interface/web/client/lib/lang/sk_client.lng b/interface/web/client/lib/lang/sk_client.lng index 6fff6bf3f..3edec417c 100644 --- a/interface/web/client/lib/lang/sk_client.lng +++ b/interface/web/client/lib/lang/sk_client.lng @@ -141,7 +141,7 @@ $wb['email_error_isemail'] = 'Please enter a valid email address.'; $wb['customer_no_error_unique'] = 'The customer no. must be unique (or empty).'; $wb['paypal_email_error_isemail'] = 'Please enter a valid PayPal email address.'; $wb['paypal_email_txt'] = 'PayPal Email'; -$wb['err_msg_master_tpl_set'] = 'All custom limit settings are ignored if any master template other than \"custom\" is selected.'; +$wb['err_msg_master_tpl_set'] = 'All custom limit settings are ignored if any master template other than \\"custom\\" is selected.'; $wb['aps_limits_txt'] = 'APS Installer Limits'; $wb['limit_aps_txt'] = 'Max. number of APS instances'; $wb['limit_aps_error_notint'] = 'The APS instances limit must be a number.'; diff --git a/interface/web/client/lib/lang/sk_reseller.lng b/interface/web/client/lib/lang/sk_reseller.lng index 34643c55b..4ae3ef5b9 100644 --- a/interface/web/client/lib/lang/sk_reseller.lng +++ b/interface/web/client/lib/lang/sk_reseller.lng @@ -159,7 +159,7 @@ $wb['added_date_txt'] = 'Added date'; $wb['limit_domainmodule_error_notint'] = 'Domainmodule limit must be a number.'; $wb['limit_domainmodule_txt'] = 'Domainmodule Limit'; $wb['client_limits_txt'] = 'Client Limits'; -$wb['err_msg_master_tpl_set'] = 'All custom limit settings are ignored if any master template other than \"custom\" is selected.'; +$wb['err_msg_master_tpl_set'] = 'All custom limit settings are ignored if any master template other than \\"custom\\" is selected.'; $wb['btn_save_txt'] = 'Save'; $wb['btn_cancel_txt'] = 'Cancel'; $wb['email_error_empty'] = 'Email is empty'; diff --git a/interface/web/client/lib/lang/tr_client.lng b/interface/web/client/lib/lang/tr_client.lng index 359095534..765d9f198 100644 --- a/interface/web/client/lib/lang/tr_client.lng +++ b/interface/web/client/lib/lang/tr_client.lng @@ -139,7 +139,7 @@ $wb['email_error_isemail'] = 'Lütfen geçerli bir e-posta adresi yazın.'; $wb['customer_no_error_unique'] = 'Müşteri numarası eşsiz (ya da boş) olmalıdır.'; $wb['paypal_email_error_isemail'] = 'Lütfen geçerli bir PayPal e-posta adresi yazın.'; $wb['paypal_email_txt'] = 'PayPal E-posta Adresi'; -$wb['err_msg_master_tpl_set'] = '\"Özel\" kalıptan başka bir ana kalıp seçilirse, tüm özel sınırlama ayarları yoksayılır.'; +$wb['err_msg_master_tpl_set'] = '\\"Özel\\" kalıptan başka bir ana kalıp seçilirse, tüm özel sınırlama ayarları yoksayılır.'; $wb['aps_limits_txt'] = 'APS Yükleyici Sınırları'; $wb['limit_aps_txt'] = 'En Fazla APS Kopyası Sayısı'; $wb['limit_aps_error_notint'] = 'APS kopya sayısı sınırı bir sayı olmalıdır.'; diff --git a/interface/web/client/lib/lang/tr_reseller.lng b/interface/web/client/lib/lang/tr_reseller.lng index 5e2a37e26..4906a894c 100644 --- a/interface/web/client/lib/lang/tr_reseller.lng +++ b/interface/web/client/lib/lang/tr_reseller.lng @@ -156,7 +156,7 @@ $wb['added_date_txt'] = 'Eklendiği Tarih'; $wb['limit_domainmodule_error_notint'] = 'Alan adı modülü sınırı bir sayı olmalıdır.'; $wb['limit_domainmodule_txt'] = 'Alan Adı Modülü Sınırı'; $wb['client_limits_txt'] = 'Müşteri Sınırları'; -$wb['err_msg_master_tpl_set'] = '\"Özel\" kalıptan başka bir ana kalıp seçilirse, tüm özel sınırlama ayarları yoksayılır.'; +$wb['err_msg_master_tpl_set'] = '\\"Özel\\" kalıptan başka bir ana kalıp seçilirse, tüm özel sınırlama ayarları yoksayılır.'; $wb['contact_firstname_txt'] = 'Contact firstname'; $wb['password_click_to_set_txt'] = 'Click to set'; $wb['limit_database_user_txt'] = 'Max. Database users'; diff --git a/interface/web/dashboard/lib/lang/es_dashlet_limits.lng b/interface/web/dashboard/lib/lang/es_dashlet_limits.lng index 0f819f2a9..da6cd6b51 100755 --- a/interface/web/dashboard/lib/lang/es_dashlet_limits.lng +++ b/interface/web/dashboard/lib/lang/es_dashlet_limits.lng @@ -11,7 +11,7 @@ $wb['limit_ftp_user_txt'] = 'Cantidad de usuarios FTP'; $wb['limit_mailalias_txt'] = 'Cantidad de alias de correos'; $wb['limit_mailaliasdomain_txt'] = 'Cantidad de alias de dominios'; $wb['limit_mailbox_txt'] = 'Cantidad de buzones'; -$wb['limit_mailcatchall_txt'] = 'Cantidad de cuentas de correo \"recoge-todo\"'; +$wb['limit_mailcatchall_txt'] = 'Cantidad de cuentas de correo \\"recoge-todo\\"'; $wb['limit_maildomain_txt'] = 'Cantidad de dominios para correo'; $wb['limit_mailfilter_txt'] = 'Cantidad de filtros de correo'; $wb['limit_mailforward_txt'] = 'Cantidad de reenviadores de correos'; diff --git a/interface/web/dns/lib/lang/br_dns_dmarc.lng b/interface/web/dns/lib/lang/br_dns_dmarc.lng index 5b7201075..8bb35318f 100644 --- a/interface/web/dns/lib/lang/br_dns_dmarc.lng +++ b/interface/web/dns/lib/lang/br_dns_dmarc.lng @@ -2,7 +2,7 @@ $wb['data_txt'] = 'Registro DMARC'; $wb['domain_txt'] = 'Domínio'; $wb['dmarc_policy_txt'] = 'Política de recepção de e-mails'; -$wb['dmarc_policy_note_txt'] = 'Como os \"ISPs\" devem tratar as mensagens SPF ou DKIM com falha (DMARC).'; +$wb['dmarc_policy_note_txt'] = 'Como os \\"ISPs\\" devem tratar as mensagens SPF ou DKIM com falha (DMARC).'; $wb['dmarc_policy_none_txt'] = 'não fazer nada'; $wb['dmarc_policy_quarantine_txt'] = 'quarentena'; $wb['dmarc_policy_reject_txt'] = 'rejeitar'; @@ -11,16 +11,16 @@ $wb['dmarc_rua_note_txt'] = 'Endereços de e-mail para receber relatórios do si $wb['dmarc_ruf_txt'] = 'Relatório forense de dados por endereço'; $wb['dmarc_ruf_note_txt'] = 'Endereços de e-mail para receber amostras de mensagens com falha e controles DMARC do domínio (separados por espaço em branco)'; $wb['dmarc_fo_txt'] = 'Opções de relatório forense'; -$wb['dmarc_fo0_txt'] = 'Gerar relatórios se todos os mecanismos de autenticação subjacentes deixarem de produzir um resultado DMARC \"pass\".'; +$wb['dmarc_fo0_txt'] = 'Gerar relatórios se todos os mecanismos de autenticação subjacentes deixarem de produzir um resultado DMARC \\"pass\\".'; $wb['dmarc_fo1_txt'] = 'Gerar relatório se algum mecanismo falhar.'; $wb['dmarc_fod_txt'] = 'Gerar relatório se assinatura DKIM falhar na verificação.'; $wb['dmarc_fos_txt'] = 'Gerar relatório se o SPF falhar.'; $wb['dmarc_adkim_txt'] = 'Parametrização do identificador DKIM'; -$wb['dmarc_adkim_note_txt'] = 'Modo \"strict\" exige combinação exata entre o DKIM do domínio e e-mails'; +$wb['dmarc_adkim_note_txt'] = 'Modo \\"strict\\" exige combinação exata entre o DKIM do domínio e e-mails'; $wb['dmarc_adkim_r_txt'] = 'relaxed'; $wb['dmarc_adkim_s_txt'] = 'strict'; $wb['dmarc_aspf_txt'] = 'Parametrização do identificador SPF'; -$wb['dmarc_aspf_note_txt'] = 'Modo \"strict\" exige combinação exata entre o SPF do domínio e e-mails'; +$wb['dmarc_aspf_note_txt'] = 'Modo \\"strict\\" exige combinação exata entre o SPF do domínio e e-mails'; $wb['dmarc_aspf_r_txt'] = 'relaxed'; $wb['dmarc_aspf_s_txt'] = 'strict'; $wb['dmarc_rf_txt'] = 'Formatação do relatório'; @@ -37,7 +37,7 @@ $wb['dmarc_sp_quarantine_txt'] = 'quarentena'; $wb['dmarc_sp_reject_txt'] = 'rejeitar'; $wb['ttl_txt'] = 'TTL'; $wb['active_txt'] = 'Ativo'; -$wb['dmarc_policy_error_txt'] = 'Somente a política \"nenhum\" é permitida para e-mails sem assinatura DKIM.'; +$wb['dmarc_policy_error_txt'] = 'Somente a política \\"nenhum\\" é permitida para e-mails sem assinatura DKIM.'; $wb['dmarc_no_dkim_txt'] = 'Nenhum registro DKIM ativo.'; $wb['dmarc_no_spf_txt'] = 'Nenhum registro SPF ativo.'; $wb['dmarc_more_spf_txt'] = 'Mais de um registro SPF ativo.'; diff --git a/interface/web/dns/lib/lang/br_dns_tlsa.lng b/interface/web/dns/lib/lang/br_dns_tlsa.lng index c78c6fd19..5e1bf2256 100644 --- a/interface/web/dns/lib/lang/br_dns_tlsa.lng +++ b/interface/web/dns/lib/lang/br_dns_tlsa.lng @@ -9,8 +9,8 @@ $wb['active_txt'] = 'Ativo'; $wb['limit_dns_record_txt'] = 'O limite de registros dns para esta conta foi alcançado.'; $wb['no_zone_perm'] = 'Você não tem permissão para adicionar registros a esta zona dns.'; $wb['name_error_empty'] = 'Descritor de serviço está em branco.'; -$wb['name_error_regex'] = 'Descritor de serviço é inválido. Formato correto: \"_<port>._(tcp|udp).<hostname>\".'; +$wb['name_error_regex'] = 'Descritor de serviço é inválido. Formato correto: \\"_<port>._(tcp|udp).<hostname>\\".'; $wb['data_error_empty'] = 'Dados TLSA está em branco.'; -$wb['data_error_regex'] = 'Dados TLSA são inválidos. Formato correto: \"n n n HASH\".'; +$wb['data_error_regex'] = 'Dados TLSA são inválidos. Formato correto: \\"n n n HASH\\".'; $wb['ttl_range_error'] = 'O ttl mínimo são 60 segundos.'; ?> diff --git a/interface/web/dns/lib/lang/ru_dns_hinfo.lng b/interface/web/dns/lib/lang/ru_dns_hinfo.lng index 830576fdf..363ed0eef 100644 --- a/interface/web/dns/lib/lang/ru_dns_hinfo.lng +++ b/interface/web/dns/lib/lang/ru_dns_hinfo.lng @@ -11,6 +11,6 @@ $wb['no_zone_perm'] = 'У Вас нет прав добавлять эту за $wb['name_error_empty'] = 'Имя пустое.'; $wb['name_error_regex'] = 'Имя узла имеет неправильный формат.'; $wb['data_error_empty'] = 'Информация об узле отсутсвует'; -$wb['data_error_regex'] = 'Поле \"Информация о хосте\" имеет неправильный формат'; +$wb['data_error_regex'] = 'Поле \\"Информация о хосте\\" имеет неправильный формат'; $wb['ttl_range_error'] = 'Мин. время TTL 60 секунд.'; ?> diff --git a/interface/web/help/lib/lang/br_support_message.lng b/interface/web/help/lib/lang/br_support_message.lng index 83097915b..19ae309a1 100644 --- a/interface/web/help/lib/lang/br_support_message.lng +++ b/interface/web/help/lib/lang/br_support_message.lng @@ -12,5 +12,5 @@ $wb['answer_to_support_request_txt'] = 'Você tem uma nova resposta para requisi $wb['answer_to_support_request_sent_txt'] = 'Sua resposta para requisição de suporte foi enviada. Por favor, não responda esse e-mail.'; $wb['support_request_sent_txt'] = 'Sua requisição de suporte foi enviada. Por favor não responda este e-mail.'; $wb['recipient_or_sender_email_address_not_valid_txt'] = 'A mensagem não foi enviada porque o e-mail do destinatário e/ou remetente não é válido.'; -$wb['subject_is_empty'] = 'Não é permitido o campo \"Assunto\" em branco.'; +$wb['subject_is_empty'] = 'Não é permitido o campo \\"Assunto\\" em branco.'; ?> diff --git a/interface/web/login/lib/lang/ar_login_as.lng b/interface/web/login/lib/lang/ar_login_as.lng index 68cb3318e..cf75b54b4 100644 --- a/interface/web/login/lib/lang/ar_login_as.lng +++ b/interface/web/login/lib/lang/ar_login_as.lng @@ -1,12 +1,12 @@ diff --git a/interface/web/login/lib/lang/bg_login_as.lng b/interface/web/login/lib/lang/bg_login_as.lng index 68cb3318e..cf75b54b4 100644 --- a/interface/web/login/lib/lang/bg_login_as.lng +++ b/interface/web/login/lib/lang/bg_login_as.lng @@ -1,12 +1,12 @@ diff --git a/interface/web/login/lib/lang/br_login_as.lng b/interface/web/login/lib/lang/br_login_as.lng index 4c02c963c..5d9fb269b 100644 --- a/interface/web/login/lib/lang/br_login_as.lng +++ b/interface/web/login/lib/lang/br_login_as.lng @@ -1,6 +1,6 @@ diff --git a/interface/web/login/lib/lang/dk_login_as.lng b/interface/web/login/lib/lang/dk_login_as.lng index a75ea7262..bebcf165a 100644 --- a/interface/web/login/lib/lang/dk_login_as.lng +++ b/interface/web/login/lib/lang/dk_login_as.lng @@ -1,12 +1,12 @@ diff --git a/interface/web/login/lib/lang/el_login_as.lng b/interface/web/login/lib/lang/el_login_as.lng index a6c298801..435d3e9a6 100644 --- a/interface/web/login/lib/lang/el_login_as.lng +++ b/interface/web/login/lib/lang/el_login_as.lng @@ -1,12 +1,12 @@ diff --git a/interface/web/login/lib/lang/es_login_as.lng b/interface/web/login/lib/lang/es_login_as.lng index 10a8554bc..b7f3e21f9 100755 --- a/interface/web/login/lib/lang/es_login_as.lng +++ b/interface/web/login/lib/lang/es_login_as.lng @@ -4,9 +4,9 @@ $wb['btn_back_txt'] = 'No, volver a la lista'; $wb['btn_yes_txt'] = 'Sí, iniciar sesión como cliente'; $wb['firewall_error_unique'] = 'Ya existe un registro de cortafuegos para este servidor.'; $wb['login_1_txt'] = 'Desea iniciar sesión como usuario'; -$wb['login_2_txt'] = 'Si lo hace, puede \"volver\" haciendo clic en salir.'; -$wb['tcp_ports_error_regex'] = 'Caracteres no permitidos en la definición de puertos tcp. Los caracteres permitidos son: números, \":\" y \",\".'; +$wb['login_2_txt'] = 'Si lo hace, puede \\"volver\\" haciendo clic en salir.'; +$wb['tcp_ports_error_regex'] = 'Caracteres no permitidos en la definición de puertos tcp. Los caracteres permitidos son: números, \\":\\" y \\",\\".'; $wb['udp_port_help_txt'] = 'Separado por comas'; -$wb['udp_ports_error_regex'] = 'Caracteres no permitidos en la definición de puertos udp. Los caracteres permitidos son: números, \":\" y \",\".'; +$wb['udp_ports_error_regex'] = 'Caracteres no permitidos en la definición de puertos udp. Los caracteres permitidos son: números, \\":\\" y \\",\\".'; $wb['login_as_or_logout_txt'] = 'Do you want to re-login as {UTYPE} or logout?'; ?> diff --git a/interface/web/login/lib/lang/fi_login_as.lng b/interface/web/login/lib/lang/fi_login_as.lng index 68cb3318e..cf75b54b4 100644 --- a/interface/web/login/lib/lang/fi_login_as.lng +++ b/interface/web/login/lib/lang/fi_login_as.lng @@ -1,12 +1,12 @@ diff --git a/interface/web/login/lib/lang/hr_login_as.lng b/interface/web/login/lib/lang/hr_login_as.lng index a94f65970..bcd13040d 100644 --- a/interface/web/login/lib/lang/hr_login_as.lng +++ b/interface/web/login/lib/lang/hr_login_as.lng @@ -1,12 +1,12 @@ diff --git a/interface/web/login/lib/lang/hu_login_as.lng b/interface/web/login/lib/lang/hu_login_as.lng index 68cb3318e..cf75b54b4 100644 --- a/interface/web/login/lib/lang/hu_login_as.lng +++ b/interface/web/login/lib/lang/hu_login_as.lng @@ -1,12 +1,12 @@ diff --git a/interface/web/login/lib/lang/id_login_as.lng b/interface/web/login/lib/lang/id_login_as.lng index 68cb3318e..cf75b54b4 100644 --- a/interface/web/login/lib/lang/id_login_as.lng +++ b/interface/web/login/lib/lang/id_login_as.lng @@ -1,12 +1,12 @@ diff --git a/interface/web/login/lib/lang/it_login_as.lng b/interface/web/login/lib/lang/it_login_as.lng index fab2f1b08..3fa23da27 100644 --- a/interface/web/login/lib/lang/it_login_as.lng +++ b/interface/web/login/lib/lang/it_login_as.lng @@ -1,12 +1,12 @@ diff --git a/interface/web/login/lib/lang/ja_login_as.lng b/interface/web/login/lib/lang/ja_login_as.lng index 68cb3318e..cf75b54b4 100644 --- a/interface/web/login/lib/lang/ja_login_as.lng +++ b/interface/web/login/lib/lang/ja_login_as.lng @@ -1,12 +1,12 @@ diff --git a/interface/web/login/lib/lang/nl_login_as.lng b/interface/web/login/lib/lang/nl_login_as.lng index 306178270..d4d2715e7 100644 --- a/interface/web/login/lib/lang/nl_login_as.lng +++ b/interface/web/login/lib/lang/nl_login_as.lng @@ -6,7 +6,7 @@ $wb['btn_back_txt'] = 'Nee, terug naar het overzicht'; $wb['udp_port_help_txt'] = 'Gescheiden door komma'; $wb['active_txt'] = 'Active'; $wb['firewall_error_unique'] = 'There is already a firewall record for this server.'; -$wb['tcp_ports_error_regex'] = 'Character not allowed in tcp port definition. Allowed characters are numbers, \":\" and \",\".'; -$wb['udp_ports_error_regex'] = 'Character not allowed in udp port definition. Allowed characters are numbers, \":\" and \",\".'; +$wb['tcp_ports_error_regex'] = 'Character not allowed in tcp port definition. Allowed characters are numbers, \\":\\" and \\",\\".'; +$wb['udp_ports_error_regex'] = 'Character not allowed in udp port definition. Allowed characters are numbers, \\":\\" and \\",\\".'; $wb['login_as_or_logout_txt'] = 'Do you want to re-login as {UTYPE} or logout?'; ?> diff --git a/interface/web/login/lib/lang/pt_login_as.lng b/interface/web/login/lib/lang/pt_login_as.lng index 68cb3318e..cf75b54b4 100644 --- a/interface/web/login/lib/lang/pt_login_as.lng +++ b/interface/web/login/lib/lang/pt_login_as.lng @@ -1,12 +1,12 @@ diff --git a/interface/web/login/lib/lang/ro_login_as.lng b/interface/web/login/lib/lang/ro_login_as.lng index 68cb3318e..cf75b54b4 100644 --- a/interface/web/login/lib/lang/ro_login_as.lng +++ b/interface/web/login/lib/lang/ro_login_as.lng @@ -1,12 +1,12 @@ diff --git a/interface/web/login/lib/lang/ru_login_as.lng b/interface/web/login/lib/lang/ru_login_as.lng index 46a3eab28..63031d4d0 100644 --- a/interface/web/login/lib/lang/ru_login_as.lng +++ b/interface/web/login/lib/lang/ru_login_as.lng @@ -1,12 +1,12 @@ diff --git a/interface/web/login/lib/lang/se_login_as.lng b/interface/web/login/lib/lang/se_login_as.lng index 203832c7b..17a82080d 100644 --- a/interface/web/login/lib/lang/se_login_as.lng +++ b/interface/web/login/lib/lang/se_login_as.lng @@ -1,12 +1,12 @@ diff --git a/interface/web/login/lib/lang/sk_login_as.lng b/interface/web/login/lib/lang/sk_login_as.lng index 68cb3318e..cf75b54b4 100644 --- a/interface/web/login/lib/lang/sk_login_as.lng +++ b/interface/web/login/lib/lang/sk_login_as.lng @@ -1,12 +1,12 @@ diff --git a/interface/web/login/lib/lang/tr_login_as.lng b/interface/web/login/lib/lang/tr_login_as.lng index a000d4434..f7f12feef 100644 --- a/interface/web/login/lib/lang/tr_login_as.lng +++ b/interface/web/login/lib/lang/tr_login_as.lng @@ -1,12 +1,12 @@ diff --git a/interface/web/mail/lib/lang/ar.lng b/interface/web/mail/lib/lang/ar.lng index e12b05e27..3d15a518a 100644 --- a/interface/web/mail/lib/lang/ar.lng +++ b/interface/web/mail/lib/lang/ar.lng @@ -45,4 +45,6 @@ $wb['Global Filters'] = 'Global Filters'; $wb['Domain Alias'] = 'Domain Alias'; $wb['Relay Recipients'] = 'Relay Recipients'; $wb['Mailbox quota'] = 'Mailbox quota'; +$wb['add_header_txt'] = 'Header (adds \"X-Spam: Yes\")'; +$wb['rewrite_subject_txt'] = 'Subject (adds \"***SPAM***\" at the beginning)'; ?> diff --git a/interface/web/mail/lib/lang/ar_mail_domain_catchall.lng b/interface/web/mail/lib/lang/ar_mail_domain_catchall.lng index af8e42f24..d1b54151d 100644 --- a/interface/web/mail/lib/lang/ar_mail_domain_catchall.lng +++ b/interface/web/mail/lib/lang/ar_mail_domain_catchall.lng @@ -8,4 +8,5 @@ $wb['domain_error_regex'] = 'Invalid domain name od domain contains invalid char $wb['limit_mailcatchall_txt'] = 'The max. number of email catchall accounts for your account is reached.'; $wb['source_txt'] = 'Source'; $wb['destination_error_isemail'] = 'Destination is no valid email address.'; +$wb['greylisting_txt'] = 'Enable greylisting'; ?> diff --git a/interface/web/mail/lib/lang/ar_mail_get.lng b/interface/web/mail/lib/lang/ar_mail_get.lng index 5d6a72fbf..8ae771215 100644 --- a/interface/web/mail/lib/lang/ar_mail_get.lng +++ b/interface/web/mail/lib/lang/ar_mail_get.lng @@ -14,6 +14,6 @@ $wb['source_password_error_isempty'] = 'Password is empty.'; $wb['destination_error_isemail'] = 'No destination selected.'; $wb['source_server_error_regex'] = 'Pop3/Imap Server is not a valid domain name.'; $wb['source_read_all_txt'] = 'Retrieve all emails (incl. read mails)'; -$wb['error_delete_read_all_combination'] = 'Illegal combination of options. You can not use \"Delete emails after retrieval\" = no together with \"Retrieve all emails\" = yes'; +$wb['error_delete_read_all_combination'] = 'Illegal combination of options. You can not use \\"Delete emails after retrieval\\" = no together with \\"Retrieve all emails\\" = yes'; $wb['source_delete_note_txt'] = 'Please check first if email retrieval works, before you activate this option.'; ?> diff --git a/interface/web/mail/lib/lang/ar_spamfilter_policy.lng b/interface/web/mail/lib/lang/ar_spamfilter_policy.lng index e876330a6..683b378c2 100644 --- a/interface/web/mail/lib/lang/ar_spamfilter_policy.lng +++ b/interface/web/mail/lib/lang/ar_spamfilter_policy.lng @@ -35,4 +35,17 @@ $wb['bad_header_admin_txt'] = 'Bad header admin'; $wb['spam_admin_txt'] = 'SPAM admin'; $wb['message_size_limit_txt'] = 'Message size limit'; $wb['banned_rulenames_txt'] = 'Banned rulenames'; +$wb['rspamd_greylisting_txt'] = 'Use greylisting'; +$wb['rspamd_spam_greylisting_level_txt'] = 'Greylisting level'; +$wb['rspamd_spam_tag_level_txt'] = 'SPAM tag level'; +$wb['rspamd_spam_tag_method_txt'] = 'SPAM tag method'; +$wb['rspamd_spam_kill_level_txt'] = 'SPAM reject level'; +$wb['btn_save_txt'] = 'Save'; +$wb['btn_cancel_txt'] = 'Cancel'; +$wb['amavis_settings_txt'] = 'Settings'; +$wb['amavis_taglevel_txt'] = 'Tag-Level'; +$wb['amavis_quarantine_txt'] = 'Quarantine'; +$wb['amavis_other_txt'] = 'Other'; +$wb['add_header_txt'] = 'Add header'; +$wb['rewrite_subject_txt'] = 'Rewrite subject'; ?> diff --git a/interface/web/mail/lib/lang/bg.lng b/interface/web/mail/lib/lang/bg.lng index a1299f447..c117c863a 100644 --- a/interface/web/mail/lib/lang/bg.lng +++ b/interface/web/mail/lib/lang/bg.lng @@ -45,4 +45,6 @@ $wb['Global Filters'] = 'Глобални филтри'; $wb['Domain Alias'] = 'Domain Alias'; $wb['Relay Recipients'] = 'Relay Recipients'; $wb['Mailbox quota'] = 'Mailbox quota'; +$wb['add_header_txt'] = 'Header (adds \"X-Spam: Yes\")'; +$wb['rewrite_subject_txt'] = 'Subject (adds \"***SPAM***\" at the beginning)'; ?> diff --git a/interface/web/mail/lib/lang/bg_mail_domain_catchall.lng b/interface/web/mail/lib/lang/bg_mail_domain_catchall.lng index 5db26b11a..06f1f01e1 100644 --- a/interface/web/mail/lib/lang/bg_mail_domain_catchall.lng +++ b/interface/web/mail/lib/lang/bg_mail_domain_catchall.lng @@ -8,4 +8,5 @@ $wb['domain_error_regex'] = 'Грешен домейн или непозволе $wb['limit_mailcatchall_txt'] = 'Максималният брой записи за catchall в твоят акоунт е достигнат.'; $wb['source_txt'] = 'Source'; $wb['destination_error_isemail'] = 'Destination is no valid email address.'; +$wb['greylisting_txt'] = 'Enable greylisting'; ?> diff --git a/interface/web/mail/lib/lang/bg_mail_get.lng b/interface/web/mail/lib/lang/bg_mail_get.lng index 305256d5c..e1b1935d3 100644 --- a/interface/web/mail/lib/lang/bg_mail_get.lng +++ b/interface/web/mail/lib/lang/bg_mail_get.lng @@ -14,6 +14,6 @@ $wb['source_password_error_isempty'] = 'Password is empty.'; $wb['destination_error_isemail'] = 'No destination selected.'; $wb['source_server_error_regex'] = 'Pop3/Imap Server is not a valid domain name.'; $wb['source_read_all_txt'] = 'Retrieve all emails (incl. read mails)'; -$wb['error_delete_read_all_combination'] = 'Illegal combination of options. You can not use \"Delete emails after retrieval\" = no together with \"Retrieve all emails\" = yes'; +$wb['error_delete_read_all_combination'] = 'Illegal combination of options. You can not use \\"Delete emails after retrieval\\" = no together with \\"Retrieve all emails\\" = yes'; $wb['source_delete_note_txt'] = 'Please check first if email retrieval works, before you activate this option.'; ?> diff --git a/interface/web/mail/lib/lang/bg_spamfilter_policy.lng b/interface/web/mail/lib/lang/bg_spamfilter_policy.lng index e876330a6..683b378c2 100644 --- a/interface/web/mail/lib/lang/bg_spamfilter_policy.lng +++ b/interface/web/mail/lib/lang/bg_spamfilter_policy.lng @@ -35,4 +35,17 @@ $wb['bad_header_admin_txt'] = 'Bad header admin'; $wb['spam_admin_txt'] = 'SPAM admin'; $wb['message_size_limit_txt'] = 'Message size limit'; $wb['banned_rulenames_txt'] = 'Banned rulenames'; +$wb['rspamd_greylisting_txt'] = 'Use greylisting'; +$wb['rspamd_spam_greylisting_level_txt'] = 'Greylisting level'; +$wb['rspamd_spam_tag_level_txt'] = 'SPAM tag level'; +$wb['rspamd_spam_tag_method_txt'] = 'SPAM tag method'; +$wb['rspamd_spam_kill_level_txt'] = 'SPAM reject level'; +$wb['btn_save_txt'] = 'Save'; +$wb['btn_cancel_txt'] = 'Cancel'; +$wb['amavis_settings_txt'] = 'Settings'; +$wb['amavis_taglevel_txt'] = 'Tag-Level'; +$wb['amavis_quarantine_txt'] = 'Quarantine'; +$wb['amavis_other_txt'] = 'Other'; +$wb['add_header_txt'] = 'Add header'; +$wb['rewrite_subject_txt'] = 'Rewrite subject'; ?> diff --git a/interface/web/mail/lib/lang/br.lng b/interface/web/mail/lib/lang/br.lng index 3ae45b5db..972e134bc 100644 --- a/interface/web/mail/lib/lang/br.lng +++ b/interface/web/mail/lib/lang/br.lng @@ -45,4 +45,6 @@ $wb['Domain Alias'] = 'Apelidos de domínio'; $wb['Relay Recipients'] = 'Destinatários de retransmissão'; $wb['Mailbox quota'] = 'Cota para contas de e-mails'; $wb['Server'] = 'Servidor'; +$wb['add_header_txt'] = 'Header (adds \"X-Spam: Yes\")'; +$wb['rewrite_subject_txt'] = 'Subject (adds \"***SPAM***\" at the beginning)'; ?> diff --git a/interface/web/mail/lib/lang/br_mail_domain_catchall.lng b/interface/web/mail/lib/lang/br_mail_domain_catchall.lng index df5fd39b9..3c4c6a262 100644 --- a/interface/web/mail/lib/lang/br_mail_domain_catchall.lng +++ b/interface/web/mail/lib/lang/br_mail_domain_catchall.lng @@ -8,4 +8,5 @@ $wb['domain_error_regex'] = 'O domínio contém caracteres inválidos'; $wb['limit_mailcatchall_txt'] = 'O limite de contas cata tudo para este domínio foi alcançado.'; $wb['source_txt'] = 'Origem'; $wb['destination_error_isemail'] = 'Destino não é um e-mail válido.'; +$wb['greylisting_txt'] = 'Enable greylisting'; ?> diff --git a/interface/web/mail/lib/lang/br_mail_user.lng b/interface/web/mail/lib/lang/br_mail_user.lng index a78656627..f91d40f62 100644 --- a/interface/web/mail/lib/lang/br_mail_user.lng +++ b/interface/web/mail/lib/lang/br_mail_user.lng @@ -35,7 +35,7 @@ $wb['name_txt'] = 'Nome real'; $wb['name_optional_txt'] = '(Opcional)'; $wb['autoresponder_active'] = 'Ativar autoresposta'; $wb['cc_txt'] = 'Enviar cópia para'; -$wb['cc_error_isemail'] = 'O campo \"Enviar cópia para\" deve conter um endereço de e-mail válido'; +$wb['cc_error_isemail'] = 'O campo \\"Enviar cópia para\\" deve conter um endereço de e-mail válido'; $wb['domain_txt'] = 'Domínio'; $wb['now_txt'] = 'Agora'; $wb['login_error_unique'] = 'O acesso já está em uso.'; @@ -48,7 +48,7 @@ $wb['generate_password_txt'] = 'Gerar senha'; $wb['repeat_password_txt'] = 'Repetir senha'; $wb['password_mismatch_txt'] = 'A senhas não coincidem.'; $wb['password_match_txt'] = 'A senhas coincidem.'; -$wb['email_error_isascii'] = 'Por favor não use caracteres \"unicode\" para a senha. Esta ação poderá causar problemas com seu cliente de e-mail (mua).'; +$wb['email_error_isascii'] = 'Por favor não use caracteres \\"unicode\\" para a senha. Esta ação poderá causar problemas com seu cliente de e-mail (mua).'; $wb['cc_note_txt'] = '(Múltiplos e-mails separados por vírgulas)'; $wb['disablesmtp_txt'] = 'Desabilitar smtp (envio)'; $wb['autoresponder_start_date_is_required'] = 'Data de início deve ser configurada quando \'autoresposta\' é habilitada.'; diff --git a/interface/web/mail/lib/lang/br_spamfilter_policy.lng b/interface/web/mail/lib/lang/br_spamfilter_policy.lng index 998f36d8f..b5bb69db4 100644 --- a/interface/web/mail/lib/lang/br_spamfilter_policy.lng +++ b/interface/web/mail/lib/lang/br_spamfilter_policy.lng @@ -35,4 +35,17 @@ $wb['bad_header_admin_txt'] = 'Administrador para cabeçalhos inválidos'; $wb['spam_admin_txt'] = 'Administrador para spam'; $wb['message_size_limit_txt'] = 'Tamanho máximo da mensagem'; $wb['banned_rulenames_txt'] = 'Regras de banimento'; +$wb['rspamd_greylisting_txt'] = 'Use greylisting'; +$wb['rspamd_spam_greylisting_level_txt'] = 'Greylisting level'; +$wb['rspamd_spam_tag_level_txt'] = 'SPAM tag level'; +$wb['rspamd_spam_tag_method_txt'] = 'SPAM tag method'; +$wb['rspamd_spam_kill_level_txt'] = 'SPAM reject level'; +$wb['btn_save_txt'] = 'Save'; +$wb['btn_cancel_txt'] = 'Cancel'; +$wb['amavis_settings_txt'] = 'Settings'; +$wb['amavis_taglevel_txt'] = 'Tag-Level'; +$wb['amavis_quarantine_txt'] = 'Quarantine'; +$wb['amavis_other_txt'] = 'Other'; +$wb['add_header_txt'] = 'Add header'; +$wb['rewrite_subject_txt'] = 'Rewrite subject'; ?> diff --git a/interface/web/mail/lib/lang/ca.lng b/interface/web/mail/lib/lang/ca.lng index 1665346a8..0531f19bd 100644 --- a/interface/web/mail/lib/lang/ca.lng +++ b/interface/web/mail/lib/lang/ca.lng @@ -45,4 +45,6 @@ $wb['Mailbox traffic'] = 'Trafic de la boite courriels'; $wb['Domain Alias'] = 'Alias de domaine'; $wb['Relay Recipients'] = 'Destinataires de relais'; $wb['Mailbox quota'] = 'Quota courriel'; +$wb['add_header_txt'] = 'Header (adds \"X-Spam: Yes\")'; +$wb['rewrite_subject_txt'] = 'Subject (adds \"***SPAM***\" at the beginning)'; ?> diff --git a/interface/web/mail/lib/lang/ca_mail_domain_catchall.lng b/interface/web/mail/lib/lang/ca_mail_domain_catchall.lng index 7e82c34ca..feafd436f 100644 --- a/interface/web/mail/lib/lang/ca_mail_domain_catchall.lng +++ b/interface/web/mail/lib/lang/ca_mail_domain_catchall.lng @@ -8,4 +8,5 @@ $wb['domain_error_regex'] = 'Nom de domaine invalide, ou contient des caractère $wb['limit_mailcatchall_txt'] = 'Le nombre maximal de comptes collecteurs pour votre compte a été atteint.'; $wb['source_txt'] = 'Source'; $wb['destination_error_isemail'] = 'La destination n\'est pas valide.'; +$wb['greylisting_txt'] = 'Enable greylisting'; ?> diff --git a/interface/web/mail/lib/lang/ca_mail_get.lng b/interface/web/mail/lib/lang/ca_mail_get.lng index 9300a2904..a13a1b03f 100644 --- a/interface/web/mail/lib/lang/ca_mail_get.lng +++ b/interface/web/mail/lib/lang/ca_mail_get.lng @@ -14,6 +14,6 @@ $wb['source_password_error_isempty'] = 'Le mot de passe est vide.'; $wb['destination_error_isemail'] = 'Pas de destination sélectionnée.'; $wb['source_server_error_regex'] = 'Le serveur POP3 / IMAP n\'est pas un nom de domaine valide.'; $wb['source_read_all_txt'] = 'Récupérer tous les courriels (incl. les courriels lus)'; -$wb['error_delete_read_all_combination'] = 'Combinaison d\'options non autorisée. Vous ne pouvez pas utiliser \"Supprimer les courriels après récupération\" = non avec \"Récupérer tous les courriels\" = oui'; +$wb['error_delete_read_all_combination'] = 'Combinaison d\'options non autorisée. Vous ne pouvez pas utiliser \\"Supprimer les courriels après récupération\\" = non avec \\"Récupérer tous les courriels\\" = oui'; $wb['source_delete_note_txt'] = 'Please check first if courriel retrieval works, before you activate this option.'; ?> diff --git a/interface/web/mail/lib/lang/ca_spamfilter_policy.lng b/interface/web/mail/lib/lang/ca_spamfilter_policy.lng index d07b382dd..7b593f0a1 100644 --- a/interface/web/mail/lib/lang/ca_spamfilter_policy.lng +++ b/interface/web/mail/lib/lang/ca_spamfilter_policy.lng @@ -35,4 +35,17 @@ $wb['bad_header_admin_txt'] = 'Admin mauvais entête'; $wb['spam_admin_txt'] = 'Admin SPAM'; $wb['message_size_limit_txt'] = 'Limite de taille de message'; $wb['banned_rulenames_txt'] = 'Noms des règles bannir'; +$wb['rspamd_greylisting_txt'] = 'Use greylisting'; +$wb['rspamd_spam_greylisting_level_txt'] = 'Greylisting level'; +$wb['rspamd_spam_tag_level_txt'] = 'SPAM tag level'; +$wb['rspamd_spam_tag_method_txt'] = 'SPAM tag method'; +$wb['rspamd_spam_kill_level_txt'] = 'SPAM reject level'; +$wb['btn_save_txt'] = 'Save'; +$wb['btn_cancel_txt'] = 'Cancel'; +$wb['amavis_settings_txt'] = 'Settings'; +$wb['amavis_taglevel_txt'] = 'Tag-Level'; +$wb['amavis_quarantine_txt'] = 'Quarantine'; +$wb['amavis_other_txt'] = 'Other'; +$wb['add_header_txt'] = 'Add header'; +$wb['rewrite_subject_txt'] = 'Rewrite subject'; ?> diff --git a/interface/web/mail/lib/lang/cz.lng b/interface/web/mail/lib/lang/cz.lng index d0f6157cb..040a6d0de 100644 --- a/interface/web/mail/lib/lang/cz.lng +++ b/interface/web/mail/lib/lang/cz.lng @@ -45,4 +45,6 @@ $wb['Domain Alias'] = 'Přezdívky e-mailových domén'; $wb['Relay Recipients'] = 'Relay adresáti'; $wb['Statistics'] = 'Statistiky'; $wb['Mailbox quota'] = 'Kvóty pro e-mailové schránky'; +$wb['add_header_txt'] = 'Header (adds \"X-Spam: Yes\")'; +$wb['rewrite_subject_txt'] = 'Subject (adds \"***SPAM***\" at the beginning)'; ?> diff --git a/interface/web/mail/lib/lang/cz_mail_domain_catchall.lng b/interface/web/mail/lib/lang/cz_mail_domain_catchall.lng index ab4006df0..d0ae7c7e4 100644 --- a/interface/web/mail/lib/lang/cz_mail_domain_catchall.lng +++ b/interface/web/mail/lib/lang/cz_mail_domain_catchall.lng @@ -8,4 +8,5 @@ $wb['domain_error_regex'] = 'Chybné doménové jméno nebo doména obsahuje chy $wb['limit_mailcatchall_txt'] = 'Byl dosažen maximální počet košů účtů pro Váš účet.'; $wb['source_txt'] = 'Zdroj'; $wb['destination_error_isemail'] = 'Cílová e-mailová adresa není platná.'; +$wb['greylisting_txt'] = 'Enable greylisting'; ?> diff --git a/interface/web/mail/lib/lang/cz_mail_get.lng b/interface/web/mail/lib/lang/cz_mail_get.lng index 3dfee1a5e..cdb39b09a 100644 --- a/interface/web/mail/lib/lang/cz_mail_get.lng +++ b/interface/web/mail/lib/lang/cz_mail_get.lng @@ -14,6 +14,6 @@ $wb['source_password_error_isempty'] = 'Heslo je prázdné.'; $wb['destination_error_isemail'] = 'Nevybrán žádný cíl.'; $wb['source_server_error_regex'] = 'POP3/IMAP server není validní doménový název.'; $wb['source_read_all_txt'] = 'Načíst všechny e-maily (včetně již přečtené pošty)'; -$wb['error_delete_read_all_combination'] = 'Illegal combination of options. You can not use \"Delete emails after retrieval\" = no together with \"Retrieve all emails\" = yes'; +$wb['error_delete_read_all_combination'] = 'Illegal combination of options. You can not use \\"Delete emails after retrieval\\" = no together with \\"Retrieve all emails\\" = yes'; $wb['source_delete_note_txt'] = 'Prosím, zkontrolujte nejprve, zda příjímání e-mailů funguje, než aktivujete tuto možnost.'; ?> diff --git a/interface/web/mail/lib/lang/cz_mail_mailinglist.lng b/interface/web/mail/lib/lang/cz_mail_mailinglist.lng index f534d6c8e..e1f7dfbfa 100644 --- a/interface/web/mail/lib/lang/cz_mail_mailinglist.lng +++ b/interface/web/mail/lib/lang/cz_mail_mailinglist.lng @@ -16,7 +16,7 @@ $wb['generate_password_txt'] = 'Generovat heslo'; $wb['repeat_password_txt'] = 'Opakujte heslo'; $wb['password_mismatch_txt'] = 'Hesla se neshodují.'; $wb['password_match_txt'] = 'Hesla se shodují.'; -$wb['listname_error_unique'] = 'Na serveru je již shodný \"název seznamu\". Prosím, vyberte si jiný \"název seznamu\".'; +$wb['listname_error_unique'] = 'Na serveru je již shodný \\"název seznamu\\". Prosím, vyberte si jiný \\"název seznamu\\".'; $wb['email_error_isemail'] = 'E-mailová adresa je neplatná.'; $wb['mailinglist_txt'] = 'E-mailové konference'; ?> diff --git a/interface/web/mail/lib/lang/cz_spamfilter_policy.lng b/interface/web/mail/lib/lang/cz_spamfilter_policy.lng index c5765e807..b8b8a2e78 100644 --- a/interface/web/mail/lib/lang/cz_spamfilter_policy.lng +++ b/interface/web/mail/lib/lang/cz_spamfilter_policy.lng @@ -35,4 +35,17 @@ $wb['bad_header_admin_txt'] = 'Špatná hlavička admin'; $wb['spam_admin_txt'] = 'SPAM admin'; $wb['message_size_limit_txt'] = 'Limit velikosti zprávy'; $wb['banned_rulenames_txt'] = 'Název pravidel zabanované'; +$wb['rspamd_greylisting_txt'] = 'Use greylisting'; +$wb['rspamd_spam_greylisting_level_txt'] = 'Greylisting level'; +$wb['rspamd_spam_tag_level_txt'] = 'SPAM tag level'; +$wb['rspamd_spam_tag_method_txt'] = 'SPAM tag method'; +$wb['rspamd_spam_kill_level_txt'] = 'SPAM reject level'; +$wb['btn_save_txt'] = 'Save'; +$wb['btn_cancel_txt'] = 'Cancel'; +$wb['amavis_settings_txt'] = 'Settings'; +$wb['amavis_taglevel_txt'] = 'Tag-Level'; +$wb['amavis_quarantine_txt'] = 'Quarantine'; +$wb['amavis_other_txt'] = 'Other'; +$wb['add_header_txt'] = 'Add header'; +$wb['rewrite_subject_txt'] = 'Rewrite subject'; ?> diff --git a/interface/web/mail/lib/lang/de.lng b/interface/web/mail/lib/lang/de.lng index 91418972d..e0f1e7cd3 100644 --- a/interface/web/mail/lib/lang/de.lng +++ b/interface/web/mail/lib/lang/de.lng @@ -45,4 +45,6 @@ $wb['Global Filters'] = 'Globale Filter'; $wb['Domain Alias'] = 'E-Mail Domain Alias'; $wb['Relay Recipients'] = 'Relay Empfänger'; $wb['Mailbox quota'] = 'E-Mail Konto Speichernutzung'; +$wb['add_header_txt'] = 'Header (adds \"X-Spam: Yes\")'; +$wb['rewrite_subject_txt'] = 'Subject (adds \"***SPAM***\" at the beginning)'; ?> diff --git a/interface/web/mail/lib/lang/de_spamfilter_policy.lng b/interface/web/mail/lib/lang/de_spamfilter_policy.lng index 1efbcb6af..1036fbf91 100644 --- a/interface/web/mail/lib/lang/de_spamfilter_policy.lng +++ b/interface/web/mail/lib/lang/de_spamfilter_policy.lng @@ -42,10 +42,10 @@ $wb['rspamd_spam_tag_method_txt'] = 'SPAM-Markierungsmethode'; $wb['rspamd_spam_kill_level_txt'] = 'SPAM-Reject-Level'; $wb['btn_save_txt'] = 'Speichern'; $wb['btn_cancel_txt'] = 'Abbrechen'; - $wb['amavis_settings_txt'] = 'Einstellungen'; $wb['amavis_taglevel_txt'] = 'Tag-Level'; $wb['amavis_quarantine_txt'] = 'Quarantäne'; $wb['amavis_other_txt'] = 'Sonstiges'; $wb['add_header_txt'] = 'Header hinzufügen'; -$wb['rewrite_subject_txt'] = 'Betreff ändern'; \ No newline at end of file +$wb['rewrite_subject_txt'] = 'Betreff ändern'; +?> diff --git a/interface/web/mail/lib/lang/dk.lng b/interface/web/mail/lib/lang/dk.lng index 7330253c2..3fe8d568a 100644 --- a/interface/web/mail/lib/lang/dk.lng +++ b/interface/web/mail/lib/lang/dk.lng @@ -45,4 +45,6 @@ $wb['Global Filters'] = 'Global Filtere'; $wb['Domain Alias'] = 'Domæne Alias'; $wb['Relay Recipients'] = 'Relay Modtagere'; $wb['Mailbox quota'] = 'Postboks kvota'; +$wb['add_header_txt'] = 'Header (adds \"X-Spam: Yes\")'; +$wb['rewrite_subject_txt'] = 'Subject (adds \"***SPAM***\" at the beginning)'; ?> diff --git a/interface/web/mail/lib/lang/dk_mail_domain_catchall.lng b/interface/web/mail/lib/lang/dk_mail_domain_catchall.lng index 0cdcad209..8c0be4977 100644 --- a/interface/web/mail/lib/lang/dk_mail_domain_catchall.lng +++ b/interface/web/mail/lib/lang/dk_mail_domain_catchall.lng @@ -8,4 +8,5 @@ $wb['domain_error_regex'] = 'Ugyldigt domæne navn eller domæne, indeholder ugy $wb['limit_mailcatchall_txt'] = 'Max. antal af e-mail catchall konti for din konto er nået.'; $wb['source_txt'] = 'Kilde'; $wb['destination_error_isemail'] = 'Destinationen er ikke en gyldig e-mail adresse.'; +$wb['greylisting_txt'] = 'Enable greylisting'; ?> diff --git a/interface/web/mail/lib/lang/dk_mail_get.lng b/interface/web/mail/lib/lang/dk_mail_get.lng index dc0b7455a..1fa44cb6a 100644 --- a/interface/web/mail/lib/lang/dk_mail_get.lng +++ b/interface/web/mail/lib/lang/dk_mail_get.lng @@ -15,5 +15,5 @@ $wb['source_username_error_isempty'] = 'Brugernavn er tom.'; $wb['source_password_error_isempty'] = 'Adgangskode er tom.'; $wb['destination_error_isemail'] = 'Ingen destination er valgt.'; $wb['source_server_error_regex'] = 'Pop3/Imap Server er ikke et gyldigt domænenavn.'; -$wb['error_delete_read_all_combination'] = 'Ulovlig kombination af muligheder. Du kan ikke bruge \"Slet e-mails efter hentning\" = nej sammen med \"Hent alle e-mails\" = ja'; +$wb['error_delete_read_all_combination'] = 'Ulovlig kombination af muligheder. Du kan ikke bruge \\"Slet e-mails efter hentning\\" = nej sammen med \\"Hent alle e-mails\\" = ja'; ?> diff --git a/interface/web/mail/lib/lang/dk_spamfilter_policy.lng b/interface/web/mail/lib/lang/dk_spamfilter_policy.lng index b225eb48a..97b02923d 100644 --- a/interface/web/mail/lib/lang/dk_spamfilter_policy.lng +++ b/interface/web/mail/lib/lang/dk_spamfilter_policy.lng @@ -35,4 +35,17 @@ $wb['bad_header_admin_txt'] = 'Bad header admin'; $wb['spam_admin_txt'] = 'SPAM admin'; $wb['message_size_limit_txt'] = 'Meddelelses størrelse grænse'; $wb['banned_rulenames_txt'] = 'Bandlyste reglnavne'; +$wb['rspamd_greylisting_txt'] = 'Use greylisting'; +$wb['rspamd_spam_greylisting_level_txt'] = 'Greylisting level'; +$wb['rspamd_spam_tag_level_txt'] = 'SPAM tag level'; +$wb['rspamd_spam_tag_method_txt'] = 'SPAM tag method'; +$wb['rspamd_spam_kill_level_txt'] = 'SPAM reject level'; +$wb['btn_save_txt'] = 'Save'; +$wb['btn_cancel_txt'] = 'Cancel'; +$wb['amavis_settings_txt'] = 'Settings'; +$wb['amavis_taglevel_txt'] = 'Tag-Level'; +$wb['amavis_quarantine_txt'] = 'Quarantine'; +$wb['amavis_other_txt'] = 'Other'; +$wb['add_header_txt'] = 'Add header'; +$wb['rewrite_subject_txt'] = 'Rewrite subject'; ?> diff --git a/interface/web/mail/lib/lang/el.lng b/interface/web/mail/lib/lang/el.lng index f8cadc62f..cb873eac2 100644 --- a/interface/web/mail/lib/lang/el.lng +++ b/interface/web/mail/lib/lang/el.lng @@ -45,4 +45,6 @@ $wb['Global Filters'] = 'Καθολικά Φίλτρα'; $wb['Domain Alias'] = 'Ψευδώνυμο Domain'; $wb['Relay Recipients'] = 'Παραλήπτες Relay'; $wb['Mailbox quota'] = 'Mailbox quota'; +$wb['add_header_txt'] = 'Header (adds \"X-Spam: Yes\")'; +$wb['rewrite_subject_txt'] = 'Subject (adds \"***SPAM***\" at the beginning)'; ?> diff --git a/interface/web/mail/lib/lang/el_mail_domain_catchall.lng b/interface/web/mail/lib/lang/el_mail_domain_catchall.lng index 43c0bdf56..b04b43cfc 100644 --- a/interface/web/mail/lib/lang/el_mail_domain_catchall.lng +++ b/interface/web/mail/lib/lang/el_mail_domain_catchall.lng @@ -8,4 +8,5 @@ $wb['domain_error_regex'] = 'Μη έγκρυρο όνομα domain ή το όν $wb['limit_mailcatchall_txt'] = 'Το μέγιστο πλήθος των email catchall για τον λογαριασμό σας, έχει εξαντληθεί.'; $wb['source_txt'] = 'Source'; $wb['destination_error_isemail'] = 'Destination is no valid email address.'; +$wb['greylisting_txt'] = 'Enable greylisting'; ?> diff --git a/interface/web/mail/lib/lang/el_mail_get.lng b/interface/web/mail/lib/lang/el_mail_get.lng index cc2c261a5..0ec9645c8 100644 --- a/interface/web/mail/lib/lang/el_mail_get.lng +++ b/interface/web/mail/lib/lang/el_mail_get.lng @@ -14,6 +14,6 @@ $wb['source_password_error_isempty'] = 'Το Συνθηματικό δεν έχ $wb['destination_error_isemail'] = 'Δεν επιλέχθηκε προορισμός.'; $wb['source_server_error_regex'] = 'Το όνομα του Pop3/Imap Server δεν είναι έγκυρο.'; $wb['source_read_all_txt'] = 'Ανάκτηση όλων των emails (συμπερ. αναγνωσμένων mails)'; -$wb['error_delete_read_all_combination'] = 'Illegal combination of options. You can not use \"Delete emails after retrieval\" = no together with \"Retrieve all emails\" = yes'; +$wb['error_delete_read_all_combination'] = 'Illegal combination of options. You can not use \\"Delete emails after retrieval\\" = no together with \\"Retrieve all emails\\" = yes'; $wb['source_delete_note_txt'] = 'Please check first if email retrieval works, before you activate this option.'; ?> diff --git a/interface/web/mail/lib/lang/el_spamfilter_policy.lng b/interface/web/mail/lib/lang/el_spamfilter_policy.lng index 4ab729169..0eed35023 100644 --- a/interface/web/mail/lib/lang/el_spamfilter_policy.lng +++ b/interface/web/mail/lib/lang/el_spamfilter_policy.lng @@ -35,4 +35,17 @@ $wb['bad_header_admin_txt'] = 'Bad header admin'; $wb['spam_admin_txt'] = 'SPAM admin'; $wb['message_size_limit_txt'] = 'Όριο μεγέθους μηνύματος'; $wb['banned_rulenames_txt'] = 'Banned rulenames'; +$wb['rspamd_greylisting_txt'] = 'Use greylisting'; +$wb['rspamd_spam_greylisting_level_txt'] = 'Greylisting level'; +$wb['rspamd_spam_tag_level_txt'] = 'SPAM tag level'; +$wb['rspamd_spam_tag_method_txt'] = 'SPAM tag method'; +$wb['rspamd_spam_kill_level_txt'] = 'SPAM reject level'; +$wb['btn_save_txt'] = 'Save'; +$wb['btn_cancel_txt'] = 'Cancel'; +$wb['amavis_settings_txt'] = 'Settings'; +$wb['amavis_taglevel_txt'] = 'Tag-Level'; +$wb['amavis_quarantine_txt'] = 'Quarantine'; +$wb['amavis_other_txt'] = 'Other'; +$wb['add_header_txt'] = 'Add header'; +$wb['rewrite_subject_txt'] = 'Rewrite subject'; ?> diff --git a/interface/web/mail/lib/lang/es.lng b/interface/web/mail/lib/lang/es.lng index 787007a7f..fdf4e5b00 100755 --- a/interface/web/mail/lib/lang/es.lng +++ b/interface/web/mail/lib/lang/es.lng @@ -8,7 +8,7 @@ $wb['Domain'] = 'Dominio'; $wb['Email Accounts'] = 'Cuentas de correo'; $wb['Email Alias'] = 'Alias de correo'; $wb['Email Blacklist'] = 'Lista negra de correo'; -$wb['Email Catchall'] = 'Correo \"recoge-todo\"'; +$wb['Email Catchall'] = 'Correo \\"recoge-todo\\"'; $wb['Email filter'] = 'Filtro de correo'; $wb['Email Forward'] = 'Reenvío de correo'; $wb['Email Mailbox'] = 'Buzón de correo'; @@ -45,4 +45,6 @@ $wb['Tag-Level'] = 'Nivel de etiqueta'; $wb['User / Domain'] = 'Usuario / Dominio'; $wb['Users'] = 'Usuarios'; $wb['Whitelist'] = 'Lista blanca'; +$wb['add_header_txt'] = 'Header (adds \"X-Spam: Yes\")'; +$wb['rewrite_subject_txt'] = 'Subject (adds \"***SPAM***\" at the beginning)'; ?> diff --git a/interface/web/mail/lib/lang/es_mail_domain_catchall.lng b/interface/web/mail/lib/lang/es_mail_domain_catchall.lng index ed6c9b5db..68e03c8c3 100755 --- a/interface/web/mail/lib/lang/es_mail_domain_catchall.lng +++ b/interface/web/mail/lib/lang/es_mail_domain_catchall.lng @@ -3,9 +3,10 @@ $wb['active_txt'] = 'Habilitado'; $wb['destination_error_isemail'] = 'El destinatario no es una dirección de correo válida.'; $wb['destination_txt'] = 'Correo de destino'; $wb['domain_error_regex'] = 'El nombre de dominio es inválido o contiene caracteres no permitidos.'; -$wb['domain_error_unique'] = 'Este dominio ya tiene un correo \"recoge-todo\".'; +$wb['domain_error_unique'] = 'Este dominio ya tiene un correo \\"recoge-todo\\".'; $wb['domain_txt'] = 'Dominio'; -$wb['limit_mailcatchall_txt'] = 'Ha alcanzado el número máx. de correo \"recoge-todo\" para correo permitidos para su cuenta.'; +$wb['limit_mailcatchall_txt'] = 'Ha alcanzado el número máx. de correo \\"recoge-todo\\" para correo permitidos para su cuenta.'; $wb['no_domain_perm'] = 'No tiene permisos para usar este dominio.'; $wb['source_txt'] = 'Origen'; +$wb['greylisting_txt'] = 'Enable greylisting'; ?> diff --git a/interface/web/mail/lib/lang/es_mail_domain_catchall_list.lng b/interface/web/mail/lib/lang/es_mail_domain_catchall_list.lng index fc3fde195..8288430a1 100755 --- a/interface/web/mail/lib/lang/es_mail_domain_catchall_list.lng +++ b/interface/web/mail/lib/lang/es_mail_domain_catchall_list.lng @@ -1,9 +1,9 @@ diff --git a/interface/web/mail/lib/lang/es_mail_get.lng b/interface/web/mail/lib/lang/es_mail_get.lng index 47529e27c..81de60b03 100755 --- a/interface/web/mail/lib/lang/es_mail_get.lng +++ b/interface/web/mail/lib/lang/es_mail_get.lng @@ -2,7 +2,7 @@ $wb['active_txt'] = 'Habilitado'; $wb['destination_error_isemail'] = 'No ha seleccionado un destinatario.'; $wb['destination_txt'] = 'Destino'; -$wb['error_delete_read_all_combination'] = 'Combinación incorrecta de opciones. No puede usar \"Borrar correos después de recuperarlos\" = NO al mismo tiempo que \"Recuperar todos los correos\" = SI'; +$wb['error_delete_read_all_combination'] = 'Combinación incorrecta de opciones. No puede usar \\"Borrar correos después de recuperarlos\\" = NO al mismo tiempo que \\"Recuperar todos los correos\\" = SI'; $wb['limit_fetchmail_txt'] = 'Ha alcanzado el número máx. de registros de recuperación de correo permitidos para su cuenta.'; $wb['server_id_txt'] = 'Servidor'; $wb['source_delete_note_txt'] = 'Por favor, verifique que funcione la recuperación de correos antes de activar esta opción.'; diff --git a/interface/web/mail/lib/lang/es_spamfilter_policy.lng b/interface/web/mail/lib/lang/es_spamfilter_policy.lng index 1cb1d4363..b7a168c98 100755 --- a/interface/web/mail/lib/lang/es_spamfilter_policy.lng +++ b/interface/web/mail/lib/lang/es_spamfilter_policy.lng @@ -35,4 +35,17 @@ $wb['virus_quarantine_to_txt'] = 'Reenviar virus al correo'; $wb['warnbadhrecip_txt'] = 'Avisar al receptor de la cabecera incorrecta.'; $wb['warnbannedrecip_txt'] = 'Avisar al receptor del bloqueo.'; $wb['warnvirusrecip_txt'] = 'Avisar al receptor del virus.'; +$wb['rspamd_greylisting_txt'] = 'Use greylisting'; +$wb['rspamd_spam_greylisting_level_txt'] = 'Greylisting level'; +$wb['rspamd_spam_tag_level_txt'] = 'SPAM tag level'; +$wb['rspamd_spam_tag_method_txt'] = 'SPAM tag method'; +$wb['rspamd_spam_kill_level_txt'] = 'SPAM reject level'; +$wb['btn_save_txt'] = 'Save'; +$wb['btn_cancel_txt'] = 'Cancel'; +$wb['amavis_settings_txt'] = 'Settings'; +$wb['amavis_taglevel_txt'] = 'Tag-Level'; +$wb['amavis_quarantine_txt'] = 'Quarantine'; +$wb['amavis_other_txt'] = 'Other'; +$wb['add_header_txt'] = 'Add header'; +$wb['rewrite_subject_txt'] = 'Rewrite subject'; ?> diff --git a/interface/web/mail/lib/lang/fi.lng b/interface/web/mail/lib/lang/fi.lng index 3738c7fd6..78a432833 100755 --- a/interface/web/mail/lib/lang/fi.lng +++ b/interface/web/mail/lib/lang/fi.lng @@ -45,4 +45,6 @@ $wb['Server'] = 'Palvelin'; $wb['Domain Alias'] = 'Aliasverkkotunnus'; $wb['Relay Recipients'] = 'Välityksen vastaanottajat'; $wb['Mailbox quota'] = 'Mailbox quota'; +$wb['add_header_txt'] = 'Header (adds \"X-Spam: Yes\")'; +$wb['rewrite_subject_txt'] = 'Subject (adds \"***SPAM***\" at the beginning)'; ?> diff --git a/interface/web/mail/lib/lang/fi_mail_domain_catchall.lng b/interface/web/mail/lib/lang/fi_mail_domain_catchall.lng index f835f5667..085a116c2 100755 --- a/interface/web/mail/lib/lang/fi_mail_domain_catchall.lng +++ b/interface/web/mail/lib/lang/fi_mail_domain_catchall.lng @@ -8,4 +8,5 @@ $wb['domain_error_regex'] = 'Vääränlainen verkkotunnus tai se sisältää kie $wb['limit_mailcatchall_txt'] = 'Käyttäjätunnuksella on jo sallittu määrä CatchAll-tunnuksia.'; $wb['source_txt'] = 'Source'; $wb['destination_error_isemail'] = 'Destination is no valid email address.'; +$wb['greylisting_txt'] = 'Enable greylisting'; ?> diff --git a/interface/web/mail/lib/lang/fi_mail_get.lng b/interface/web/mail/lib/lang/fi_mail_get.lng index 9eca1d849..063a37bf0 100755 --- a/interface/web/mail/lib/lang/fi_mail_get.lng +++ b/interface/web/mail/lib/lang/fi_mail_get.lng @@ -14,6 +14,6 @@ $wb['source_password_error_isempty'] = 'Salasana-kenttä on tyhjä.'; $wb['destination_error_isemail'] = 'Ei kohdetta valittuna.'; $wb['source_server_error_regex'] = 'Pop3/Imap-palvelin ei ole kelvollinen osoite.'; $wb['source_read_all_txt'] = 'Retrieve all emails (incl. read mails)'; -$wb['error_delete_read_all_combination'] = 'Illegal combination of options. You can not use \"Delete emails after retrieval\" = no together with \"Retrieve all emails\" = yes'; +$wb['error_delete_read_all_combination'] = 'Illegal combination of options. You can not use \\"Delete emails after retrieval\\" = no together with \\"Retrieve all emails\\" = yes'; $wb['source_delete_note_txt'] = 'Please check first if email retrieval works, before you activate this option.'; ?> diff --git a/interface/web/mail/lib/lang/fi_spamfilter_policy.lng b/interface/web/mail/lib/lang/fi_spamfilter_policy.lng index 8f61ba411..4f7202107 100755 --- a/interface/web/mail/lib/lang/fi_spamfilter_policy.lng +++ b/interface/web/mail/lib/lang/fi_spamfilter_policy.lng @@ -35,4 +35,17 @@ $wb['bad_header_admin_txt'] = 'Otsikkovirhetunnisteiden ylläpitäjä'; $wb['spam_admin_txt'] = 'Roskapostitunnisteiden ylläpitäjä'; $wb['message_size_limit_txt'] = 'Viestin kokoraja'; $wb['banned_rulenames_txt'] = 'Estojen sääntönimet'; +$wb['rspamd_greylisting_txt'] = 'Use greylisting'; +$wb['rspamd_spam_greylisting_level_txt'] = 'Greylisting level'; +$wb['rspamd_spam_tag_level_txt'] = 'SPAM tag level'; +$wb['rspamd_spam_tag_method_txt'] = 'SPAM tag method'; +$wb['rspamd_spam_kill_level_txt'] = 'SPAM reject level'; +$wb['btn_save_txt'] = 'Save'; +$wb['btn_cancel_txt'] = 'Cancel'; +$wb['amavis_settings_txt'] = 'Settings'; +$wb['amavis_taglevel_txt'] = 'Tag-Level'; +$wb['amavis_quarantine_txt'] = 'Quarantine'; +$wb['amavis_other_txt'] = 'Other'; +$wb['add_header_txt'] = 'Add header'; +$wb['rewrite_subject_txt'] = 'Rewrite subject'; ?> diff --git a/interface/web/mail/lib/lang/fr.lng b/interface/web/mail/lib/lang/fr.lng index 3437d3710..a70f08029 100644 --- a/interface/web/mail/lib/lang/fr.lng +++ b/interface/web/mail/lib/lang/fr.lng @@ -45,4 +45,6 @@ $wb['Domain Alias'] = 'Alias de domaine'; $wb['Relay Recipients'] = 'Destinataires de relais'; $wb['Mailbox quota'] = 'Mailbox quota'; $wb['Email'] = 'Email'; +$wb['add_header_txt'] = 'Header (adds \"X-Spam: Yes\")'; +$wb['rewrite_subject_txt'] = 'Subject (adds \"***SPAM***\" at the beginning)'; ?> diff --git a/interface/web/mail/lib/lang/fr_mail_domain_catchall.lng b/interface/web/mail/lib/lang/fr_mail_domain_catchall.lng index b7c4b6076..199cd4722 100644 --- a/interface/web/mail/lib/lang/fr_mail_domain_catchall.lng +++ b/interface/web/mail/lib/lang/fr_mail_domain_catchall.lng @@ -8,4 +8,5 @@ $wb['domain_error_regex'] = 'Nom de domaine invalide, ou contient des caractère $wb['limit_mailcatchall_txt'] = 'Le nombre maximal de comptes collecteurs pour votre compte a été atteint.'; $wb['source_txt'] = 'Source'; $wb['destination_error_isemail'] = 'Destination is no valid e-mail address.'; +$wb['greylisting_txt'] = 'Enable greylisting'; ?> diff --git a/interface/web/mail/lib/lang/fr_mail_get.lng b/interface/web/mail/lib/lang/fr_mail_get.lng index 118ab5ed3..00f72f0c8 100644 --- a/interface/web/mail/lib/lang/fr_mail_get.lng +++ b/interface/web/mail/lib/lang/fr_mail_get.lng @@ -14,6 +14,6 @@ $wb['source_password_error_isempty'] = 'Le mot de passe est vide.'; $wb['destination_error_isemail'] = 'Pas de destination sélectionnée.'; $wb['source_server_error_regex'] = 'Le serveur POP3 / IMAP n’est pas un nom de domaine valide.'; $wb['source_read_all_txt'] = 'Récupérer tous les emails (incl. les emails lus)'; -$wb['error_delete_read_all_combination'] = 'Combinaison d’options non autorisée. Vous ne pouvez pas utiliser \"Supprimer les emails après récupération\" = non avec \"Récupérer tous les emails\" = oui'; +$wb['error_delete_read_all_combination'] = 'Combinaison d’options non autorisée. Vous ne pouvez pas utiliser \\"Supprimer les emails après récupération\\" = non avec \\"Récupérer tous les emails\\" = oui'; $wb['source_delete_note_txt'] = 'Please check first if e-mail retrieval works, before you activate this option.'; ?> diff --git a/interface/web/mail/lib/lang/fr_spamfilter_policy.lng b/interface/web/mail/lib/lang/fr_spamfilter_policy.lng index d07b382dd..7b593f0a1 100644 --- a/interface/web/mail/lib/lang/fr_spamfilter_policy.lng +++ b/interface/web/mail/lib/lang/fr_spamfilter_policy.lng @@ -35,4 +35,17 @@ $wb['bad_header_admin_txt'] = 'Admin mauvais entête'; $wb['spam_admin_txt'] = 'Admin SPAM'; $wb['message_size_limit_txt'] = 'Limite de taille de message'; $wb['banned_rulenames_txt'] = 'Noms des règles bannir'; +$wb['rspamd_greylisting_txt'] = 'Use greylisting'; +$wb['rspamd_spam_greylisting_level_txt'] = 'Greylisting level'; +$wb['rspamd_spam_tag_level_txt'] = 'SPAM tag level'; +$wb['rspamd_spam_tag_method_txt'] = 'SPAM tag method'; +$wb['rspamd_spam_kill_level_txt'] = 'SPAM reject level'; +$wb['btn_save_txt'] = 'Save'; +$wb['btn_cancel_txt'] = 'Cancel'; +$wb['amavis_settings_txt'] = 'Settings'; +$wb['amavis_taglevel_txt'] = 'Tag-Level'; +$wb['amavis_quarantine_txt'] = 'Quarantine'; +$wb['amavis_other_txt'] = 'Other'; +$wb['add_header_txt'] = 'Add header'; +$wb['rewrite_subject_txt'] = 'Rewrite subject'; ?> diff --git a/interface/web/mail/lib/lang/hr.lng b/interface/web/mail/lib/lang/hr.lng index 882f6d2b7..877f8827f 100644 --- a/interface/web/mail/lib/lang/hr.lng +++ b/interface/web/mail/lib/lang/hr.lng @@ -45,4 +45,6 @@ $wb['Domain Alias'] = 'Alias domena'; $wb['Relay Recipients'] = 'Relay primatelji'; $wb['Mailbox quota'] = 'Mailbox quota'; $wb['Domain'] = 'Domain'; +$wb['add_header_txt'] = 'Header (adds \"X-Spam: Yes\")'; +$wb['rewrite_subject_txt'] = 'Subject (adds \"***SPAM***\" at the beginning)'; ?> diff --git a/interface/web/mail/lib/lang/hr_mail_domain_catchall.lng b/interface/web/mail/lib/lang/hr_mail_domain_catchall.lng index 2c8d23e21..1c8da72ab 100644 --- a/interface/web/mail/lib/lang/hr_mail_domain_catchall.lng +++ b/interface/web/mail/lib/lang/hr_mail_domain_catchall.lng @@ -8,4 +8,5 @@ $wb['domain_error_regex'] = 'Neispravan naziv domene ili naziv sadrži nedozvolj $wb['limit_mailcatchall_txt'] = 'Iskorišten ja maksimalan broj email catchall računa.'; $wb['source_txt'] = 'Source'; $wb['destination_error_isemail'] = 'Destination is no valid email address.'; +$wb['greylisting_txt'] = 'Enable greylisting'; ?> diff --git a/interface/web/mail/lib/lang/hr_mail_get.lng b/interface/web/mail/lib/lang/hr_mail_get.lng index 025bb136b..18c53a4d5 100644 --- a/interface/web/mail/lib/lang/hr_mail_get.lng +++ b/interface/web/mail/lib/lang/hr_mail_get.lng @@ -14,6 +14,6 @@ $wb['source_password_error_isempty'] = 'Password is empty.'; $wb['destination_error_isemail'] = 'No destination selected.'; $wb['source_server_error_regex'] = 'Pop3/Imap Server is not a valid domain name.'; $wb['source_read_all_txt'] = 'Retrieve all emails (incl. read mails)'; -$wb['error_delete_read_all_combination'] = 'Illegal combination of options. You can not use \"Delete emails after retrieval\" = no together with \"Retrieve all emails\" = yes'; +$wb['error_delete_read_all_combination'] = 'Illegal combination of options. You can not use \\"Delete emails after retrieval\\" = no together with \\"Retrieve all emails\\" = yes'; $wb['source_delete_note_txt'] = 'Please check first if email retrieval works, before you activate this option.'; ?> diff --git a/interface/web/mail/lib/lang/hr_spamfilter_policy.lng b/interface/web/mail/lib/lang/hr_spamfilter_policy.lng index e876330a6..683b378c2 100644 --- a/interface/web/mail/lib/lang/hr_spamfilter_policy.lng +++ b/interface/web/mail/lib/lang/hr_spamfilter_policy.lng @@ -35,4 +35,17 @@ $wb['bad_header_admin_txt'] = 'Bad header admin'; $wb['spam_admin_txt'] = 'SPAM admin'; $wb['message_size_limit_txt'] = 'Message size limit'; $wb['banned_rulenames_txt'] = 'Banned rulenames'; +$wb['rspamd_greylisting_txt'] = 'Use greylisting'; +$wb['rspamd_spam_greylisting_level_txt'] = 'Greylisting level'; +$wb['rspamd_spam_tag_level_txt'] = 'SPAM tag level'; +$wb['rspamd_spam_tag_method_txt'] = 'SPAM tag method'; +$wb['rspamd_spam_kill_level_txt'] = 'SPAM reject level'; +$wb['btn_save_txt'] = 'Save'; +$wb['btn_cancel_txt'] = 'Cancel'; +$wb['amavis_settings_txt'] = 'Settings'; +$wb['amavis_taglevel_txt'] = 'Tag-Level'; +$wb['amavis_quarantine_txt'] = 'Quarantine'; +$wb['amavis_other_txt'] = 'Other'; +$wb['add_header_txt'] = 'Add header'; +$wb['rewrite_subject_txt'] = 'Rewrite subject'; ?> diff --git a/interface/web/mail/lib/lang/hu.lng b/interface/web/mail/lib/lang/hu.lng index 752f4003a..f3ffa4aef 100644 --- a/interface/web/mail/lib/lang/hu.lng +++ b/interface/web/mail/lib/lang/hu.lng @@ -45,4 +45,6 @@ $wb['Domain Alias'] = 'Domain Alias'; $wb['Relay Recipients'] = 'Relay Recipients'; $wb['Server'] = 'Server'; $wb['Mailbox quota'] = 'Mailbox quota'; +$wb['add_header_txt'] = 'Header (adds \"X-Spam: Yes\")'; +$wb['rewrite_subject_txt'] = 'Subject (adds \"***SPAM***\" at the beginning)'; ?> diff --git a/interface/web/mail/lib/lang/hu_mail_domain_catchall.lng b/interface/web/mail/lib/lang/hu_mail_domain_catchall.lng index 8331f2210..e26795953 100644 --- a/interface/web/mail/lib/lang/hu_mail_domain_catchall.lng +++ b/interface/web/mail/lib/lang/hu_mail_domain_catchall.lng @@ -8,4 +8,5 @@ $wb['domain_error_regex'] = 'Érvénytelen domain vagy a domain érvénytelen ka $wb['limit_mailcatchall_txt'] = 'Nincs több catchall lehetőség.'; $wb['source_txt'] = 'Source'; $wb['destination_error_isemail'] = 'Destination is no valid email address.'; +$wb['greylisting_txt'] = 'Enable greylisting'; ?> diff --git a/interface/web/mail/lib/lang/hu_mail_get.lng b/interface/web/mail/lib/lang/hu_mail_get.lng index a02a1fe11..59cb26dd6 100644 --- a/interface/web/mail/lib/lang/hu_mail_get.lng +++ b/interface/web/mail/lib/lang/hu_mail_get.lng @@ -14,6 +14,6 @@ $wb['source_password_error_isempty'] = 'Jelszó üres.'; $wb['destination_error_isemail'] = 'Nem választott címzettet.'; $wb['source_server_error_regex'] = 'Pop3/Imap Server is not a valid domain name.'; $wb['source_read_all_txt'] = 'Retrieve all emails (incl. read mails)'; -$wb['error_delete_read_all_combination'] = 'Illegal combination of options. You can not use \"Delete emails after retrieval\" = no together with \"Retrieve all emails\" = yes'; +$wb['error_delete_read_all_combination'] = 'Illegal combination of options. You can not use \\"Delete emails after retrieval\\" = no together with \\"Retrieve all emails\\" = yes'; $wb['source_delete_note_txt'] = 'Please check first if email retrieval works, before you activate this option.'; ?> diff --git a/interface/web/mail/lib/lang/hu_spamfilter_policy.lng b/interface/web/mail/lib/lang/hu_spamfilter_policy.lng index 391d4ab43..c2b6b9244 100644 --- a/interface/web/mail/lib/lang/hu_spamfilter_policy.lng +++ b/interface/web/mail/lib/lang/hu_spamfilter_policy.lng @@ -35,4 +35,17 @@ $wb['bad_header_admin_txt'] = 'Hibás fejléc admin'; $wb['spam_admin_txt'] = 'SPAM admin'; $wb['message_size_limit_txt'] = 'Levél méret limit'; $wb['banned_rulenames_txt'] = 'Tiltószabály nevek'; +$wb['rspamd_greylisting_txt'] = 'Use greylisting'; +$wb['rspamd_spam_greylisting_level_txt'] = 'Greylisting level'; +$wb['rspamd_spam_tag_level_txt'] = 'SPAM tag level'; +$wb['rspamd_spam_tag_method_txt'] = 'SPAM tag method'; +$wb['rspamd_spam_kill_level_txt'] = 'SPAM reject level'; +$wb['btn_save_txt'] = 'Save'; +$wb['btn_cancel_txt'] = 'Cancel'; +$wb['amavis_settings_txt'] = 'Settings'; +$wb['amavis_taglevel_txt'] = 'Tag-Level'; +$wb['amavis_quarantine_txt'] = 'Quarantine'; +$wb['amavis_other_txt'] = 'Other'; +$wb['add_header_txt'] = 'Add header'; +$wb['rewrite_subject_txt'] = 'Rewrite subject'; ?> diff --git a/interface/web/mail/lib/lang/id.lng b/interface/web/mail/lib/lang/id.lng index c9acaf27f..3a2b5dfe4 100644 --- a/interface/web/mail/lib/lang/id.lng +++ b/interface/web/mail/lib/lang/id.lng @@ -45,4 +45,6 @@ $wb['Global Filters'] = 'Penyaringan Global'; $wb['Domain Alias'] = 'Alias Domain'; $wb['Relay Recipients'] = 'Penerima Relay'; $wb['Mailbox quota'] = 'Mailbox quota'; +$wb['add_header_txt'] = 'Header (adds \"X-Spam: Yes\")'; +$wb['rewrite_subject_txt'] = 'Subject (adds \"***SPAM***\" at the beginning)'; ?> diff --git a/interface/web/mail/lib/lang/id_mail_domain_catchall.lng b/interface/web/mail/lib/lang/id_mail_domain_catchall.lng index 435856c10..c380957fd 100644 --- a/interface/web/mail/lib/lang/id_mail_domain_catchall.lng +++ b/interface/web/mail/lib/lang/id_mail_domain_catchall.lng @@ -8,4 +8,5 @@ $wb['domain_error_regex'] = 'Nama domain tidak valid atau domain mengandung kara $wb['limit_mailcatchall_txt'] = 'Jumlah maks akun catchall email untuk akun Anda sudah tercapai.'; $wb['source_txt'] = 'Source'; $wb['destination_error_isemail'] = 'Destination is no valid email address.'; +$wb['greylisting_txt'] = 'Enable greylisting'; ?> diff --git a/interface/web/mail/lib/lang/id_mail_get.lng b/interface/web/mail/lib/lang/id_mail_get.lng index 7617cbc7d..cec2466f2 100644 --- a/interface/web/mail/lib/lang/id_mail_get.lng +++ b/interface/web/mail/lib/lang/id_mail_get.lng @@ -14,6 +14,6 @@ $wb['source_password_error_isempty'] = 'Kata Sandi kosong.'; $wb['destination_error_isemail'] = 'Tidak ada tujuan yang dipilih.'; $wb['source_server_error_regex'] = 'Server Pop3/Imap bukan merupakan nama domain yang valid.'; $wb['source_read_all_txt'] = 'Retrieve all emails (incl. read mails)'; -$wb['error_delete_read_all_combination'] = 'Illegal combination of options. You can not use \"Delete emails after retrieval\" = no together with \"Retrieve all emails\" = yes'; +$wb['error_delete_read_all_combination'] = 'Illegal combination of options. You can not use \\"Delete emails after retrieval\\" = no together with \\"Retrieve all emails\\" = yes'; $wb['source_delete_note_txt'] = 'Please check first if email retrieval works, before you activate this option.'; ?> diff --git a/interface/web/mail/lib/lang/id_spamfilter_policy.lng b/interface/web/mail/lib/lang/id_spamfilter_policy.lng index afa0ba1a0..9813dec47 100644 --- a/interface/web/mail/lib/lang/id_spamfilter_policy.lng +++ b/interface/web/mail/lib/lang/id_spamfilter_policy.lng @@ -35,4 +35,17 @@ $wb['bad_header_admin_txt'] = 'Admin Bad header'; $wb['spam_admin_txt'] = 'Admin SPAM'; $wb['message_size_limit_txt'] = 'Batasan ukuran pesan'; $wb['banned_rulenames_txt'] = 'Nama aturan Banned'; +$wb['rspamd_greylisting_txt'] = 'Use greylisting'; +$wb['rspamd_spam_greylisting_level_txt'] = 'Greylisting level'; +$wb['rspamd_spam_tag_level_txt'] = 'SPAM tag level'; +$wb['rspamd_spam_tag_method_txt'] = 'SPAM tag method'; +$wb['rspamd_spam_kill_level_txt'] = 'SPAM reject level'; +$wb['btn_save_txt'] = 'Save'; +$wb['btn_cancel_txt'] = 'Cancel'; +$wb['amavis_settings_txt'] = 'Settings'; +$wb['amavis_taglevel_txt'] = 'Tag-Level'; +$wb['amavis_quarantine_txt'] = 'Quarantine'; +$wb['amavis_other_txt'] = 'Other'; +$wb['add_header_txt'] = 'Add header'; +$wb['rewrite_subject_txt'] = 'Rewrite subject'; ?> diff --git a/interface/web/mail/lib/lang/it.lng b/interface/web/mail/lib/lang/it.lng index 715e2efb8..15bc87ea3 100644 --- a/interface/web/mail/lib/lang/it.lng +++ b/interface/web/mail/lib/lang/it.lng @@ -45,4 +45,6 @@ $wb['Global Filters'] = 'Filtri globali'; $wb['Domain Alias'] = 'Alias dominio'; $wb['Relay Recipients'] = 'Destinatari inoltro'; $wb['Mailbox quota'] = 'Quota Casella di Posta'; +$wb['add_header_txt'] = 'Header (adds \"X-Spam: Yes\")'; +$wb['rewrite_subject_txt'] = 'Subject (adds \"***SPAM***\" at the beginning)'; ?> diff --git a/interface/web/mail/lib/lang/it_mail_domain_catchall.lng b/interface/web/mail/lib/lang/it_mail_domain_catchall.lng index 6ff4cbdf1..3345bed9c 100644 --- a/interface/web/mail/lib/lang/it_mail_domain_catchall.lng +++ b/interface/web/mail/lib/lang/it_mail_domain_catchall.lng @@ -8,4 +8,5 @@ $wb['domain_error_regex'] = 'Invalid domain name od domain contiene caratteri no $wb['limit_mailcatchall_txt'] = 'The max. number of email catchall accounts raggiunto per il tuo account.'; $wb['source_txt'] = 'Source'; $wb['destination_error_isemail'] = 'Destination is no valid email address.'; +$wb['greylisting_txt'] = 'Enable greylisting'; ?> diff --git a/interface/web/mail/lib/lang/it_mail_get.lng b/interface/web/mail/lib/lang/it_mail_get.lng index 3b443a726..70770c22d 100644 --- a/interface/web/mail/lib/lang/it_mail_get.lng +++ b/interface/web/mail/lib/lang/it_mail_get.lng @@ -14,6 +14,6 @@ $wb['source_password_error_isempty'] = 'Valore Password vuoto.'; $wb['destination_error_isemail'] = 'Nessuna destinazione selezionata.'; $wb['source_server_error_regex'] = 'Pop3/Imap Server non è un nome dominio valido.'; $wb['source_read_all_txt'] = 'Recupera tutte le email (incluso mail lette)'; -$wb['error_delete_read_all_combination'] = 'Combinazione di opzioni non conforme. Non puoi utilizzare \"Elimina mail dopo averle scaricate \" = NO assieme a \"Recupera tutte le email\" = SI'; +$wb['error_delete_read_all_combination'] = 'Combinazione di opzioni non conforme. Non puoi utilizzare \\"Elimina mail dopo averle scaricate \\" = NO assieme a \\"Recupera tutte le email\\" = SI'; $wb['source_delete_note_txt'] = 'Please check first if email retrieval works, before you activate this option.'; ?> diff --git a/interface/web/mail/lib/lang/it_spamfilter_policy.lng b/interface/web/mail/lib/lang/it_spamfilter_policy.lng index e876330a6..683b378c2 100644 --- a/interface/web/mail/lib/lang/it_spamfilter_policy.lng +++ b/interface/web/mail/lib/lang/it_spamfilter_policy.lng @@ -35,4 +35,17 @@ $wb['bad_header_admin_txt'] = 'Bad header admin'; $wb['spam_admin_txt'] = 'SPAM admin'; $wb['message_size_limit_txt'] = 'Message size limit'; $wb['banned_rulenames_txt'] = 'Banned rulenames'; +$wb['rspamd_greylisting_txt'] = 'Use greylisting'; +$wb['rspamd_spam_greylisting_level_txt'] = 'Greylisting level'; +$wb['rspamd_spam_tag_level_txt'] = 'SPAM tag level'; +$wb['rspamd_spam_tag_method_txt'] = 'SPAM tag method'; +$wb['rspamd_spam_kill_level_txt'] = 'SPAM reject level'; +$wb['btn_save_txt'] = 'Save'; +$wb['btn_cancel_txt'] = 'Cancel'; +$wb['amavis_settings_txt'] = 'Settings'; +$wb['amavis_taglevel_txt'] = 'Tag-Level'; +$wb['amavis_quarantine_txt'] = 'Quarantine'; +$wb['amavis_other_txt'] = 'Other'; +$wb['add_header_txt'] = 'Add header'; +$wb['rewrite_subject_txt'] = 'Rewrite subject'; ?> diff --git a/interface/web/mail/lib/lang/ja.lng b/interface/web/mail/lib/lang/ja.lng index f8289d490..818a3ed12 100644 --- a/interface/web/mail/lib/lang/ja.lng +++ b/interface/web/mail/lib/lang/ja.lng @@ -45,4 +45,6 @@ $wb['Global Filters'] = 'グローバルフィルター'; $wb['Domain Alias'] = 'Domain Alias'; $wb['Relay Recipients'] = 'Relay Recipients'; $wb['Mailbox quota'] = 'Mailbox quota'; +$wb['add_header_txt'] = 'Header (adds \"X-Spam: Yes\")'; +$wb['rewrite_subject_txt'] = 'Subject (adds \"***SPAM***\" at the beginning)'; ?> diff --git a/interface/web/mail/lib/lang/ja_mail_domain_catchall.lng b/interface/web/mail/lib/lang/ja_mail_domain_catchall.lng index cb430fefe..6da7d05c5 100644 --- a/interface/web/mail/lib/lang/ja_mail_domain_catchall.lng +++ b/interface/web/mail/lib/lang/ja_mail_domain_catchall.lng @@ -8,4 +8,5 @@ $wb['domain_error_regex'] = 'ドメイン名が不正です。無効な文字を $wb['limit_mailcatchall_txt'] = 'キャッチオールアカウントが最大数に達したため、これ以上追加できません。'; $wb['source_txt'] = 'Source'; $wb['destination_error_isemail'] = 'Destination is no valid email address.'; +$wb['greylisting_txt'] = 'Enable greylisting'; ?> diff --git a/interface/web/mail/lib/lang/ja_mail_get.lng b/interface/web/mail/lib/lang/ja_mail_get.lng index f1c45256b..3c5c9ec09 100644 --- a/interface/web/mail/lib/lang/ja_mail_get.lng +++ b/interface/web/mail/lib/lang/ja_mail_get.lng @@ -14,6 +14,6 @@ $wb['source_password_error_isempty'] = 'パスワードを指定してくださ $wb['destination_error_isemail'] = '宛先を選択してください。'; $wb['source_server_error_regex'] = 'Pop3/Imap Server is not a valid domain name.'; $wb['source_read_all_txt'] = 'Retrieve all emails (incl. read mails)'; -$wb['error_delete_read_all_combination'] = 'Illegal combination of options. You can not use \"Delete emails after retrieval\" = no together with \"Retrieve all emails\" = yes'; +$wb['error_delete_read_all_combination'] = 'Illegal combination of options. You can not use \\"Delete emails after retrieval\\" = no together with \\"Retrieve all emails\\" = yes'; $wb['source_delete_note_txt'] = 'Please check first if email retrieval works, before you activate this option.'; ?> diff --git a/interface/web/mail/lib/lang/ja_spamfilter_policy.lng b/interface/web/mail/lib/lang/ja_spamfilter_policy.lng index 89d377a38..a23f28a76 100644 --- a/interface/web/mail/lib/lang/ja_spamfilter_policy.lng +++ b/interface/web/mail/lib/lang/ja_spamfilter_policy.lng @@ -35,4 +35,17 @@ $wb['bad_header_admin_txt'] = 'Bad header admin'; $wb['spam_admin_txt'] = 'SPAM admin'; $wb['message_size_limit_txt'] = 'Message size limit'; $wb['banned_rulenames_txt'] = 'Banned rulenames'; +$wb['rspamd_greylisting_txt'] = 'Use greylisting'; +$wb['rspamd_spam_greylisting_level_txt'] = 'Greylisting level'; +$wb['rspamd_spam_tag_level_txt'] = 'SPAM tag level'; +$wb['rspamd_spam_tag_method_txt'] = 'SPAM tag method'; +$wb['rspamd_spam_kill_level_txt'] = 'SPAM reject level'; +$wb['btn_save_txt'] = 'Save'; +$wb['btn_cancel_txt'] = 'Cancel'; +$wb['amavis_settings_txt'] = 'Settings'; +$wb['amavis_taglevel_txt'] = 'Tag-Level'; +$wb['amavis_quarantine_txt'] = 'Quarantine'; +$wb['amavis_other_txt'] = 'Other'; +$wb['add_header_txt'] = 'Add header'; +$wb['rewrite_subject_txt'] = 'Rewrite subject'; ?> diff --git a/interface/web/mail/lib/lang/nl.lng b/interface/web/mail/lib/lang/nl.lng index e47cc6581..91d63a7ab 100644 --- a/interface/web/mail/lib/lang/nl.lng +++ b/interface/web/mail/lib/lang/nl.lng @@ -45,4 +45,6 @@ $wb['Global Filters'] = 'Globale filters'; $wb['Domain Alias'] = 'Domein alias'; $wb['Relay Recipients'] = 'Relay ontvangers'; $wb['Mailbox quota'] = 'Mailbox quota'; +$wb['add_header_txt'] = 'Header (adds \"X-Spam: Yes\")'; +$wb['rewrite_subject_txt'] = 'Subject (adds \"***SPAM***\" at the beginning)'; ?> diff --git a/interface/web/mail/lib/lang/nl_mail_domain_catchall.lng b/interface/web/mail/lib/lang/nl_mail_domain_catchall.lng index 06ad66c9b..ee9c1f767 100644 --- a/interface/web/mail/lib/lang/nl_mail_domain_catchall.lng +++ b/interface/web/mail/lib/lang/nl_mail_domain_catchall.lng @@ -8,4 +8,5 @@ $wb['domain_error_regex'] = 'Ongeldige domeinnaam of domein bevat ongeldige kara $wb['limit_mailcatchall_txt'] = 'Het max. aantal e-mail catchall accounts voor uw account is bereikt.'; $wb['source_txt'] = 'Source'; $wb['destination_error_isemail'] = 'Destination is no valid email address.'; +$wb['greylisting_txt'] = 'Enable greylisting'; ?> diff --git a/interface/web/mail/lib/lang/nl_mail_get.lng b/interface/web/mail/lib/lang/nl_mail_get.lng index 6752b42cd..5cbeab14e 100644 --- a/interface/web/mail/lib/lang/nl_mail_get.lng +++ b/interface/web/mail/lib/lang/nl_mail_get.lng @@ -14,6 +14,6 @@ $wb['source_password_error_isempty'] = 'Wachtwoord is niet ingvuld.'; $wb['destination_error_isemail'] = 'Geen bestemming geselecteerd.'; $wb['source_server_error_regex'] = 'Pop3/Imap server is geen geldige domeinnaam.'; $wb['source_read_all_txt'] = 'Retrieve all emails (incl. read mails)'; -$wb['error_delete_read_all_combination'] = 'Illegal combination of options. You can not use \"Delete emails after retrieval\" = no together with \"Retrieve all emails\" = yes'; +$wb['error_delete_read_all_combination'] = 'Illegal combination of options. You can not use \\"Delete emails after retrieval\\" = no together with \\"Retrieve all emails\\" = yes'; $wb['source_delete_note_txt'] = 'Please check first if email retrieval works, before you activate this option.'; ?> diff --git a/interface/web/mail/lib/lang/nl_mail_user.lng b/interface/web/mail/lib/lang/nl_mail_user.lng index acc2da94e..94dd01833 100644 --- a/interface/web/mail/lib/lang/nl_mail_user.lng +++ b/interface/web/mail/lib/lang/nl_mail_user.lng @@ -36,7 +36,7 @@ $wb['name_txt'] = 'Echte naam'; $wb['name_optional_txt'] = '(Optioneel)'; $wb['autoresponder_active'] = 'Inschakelen autoresponder'; $wb['cc_txt'] = 'Stuur kopie naar'; -$wb['cc_error_isemail'] = 'Het \"Stuur kopie naar\" veld bevat geen geldig e-mail adres'; +$wb['cc_error_isemail'] = 'Het \\"Stuur kopie naar\\" veld bevat geen geldig e-mail adres'; $wb['domain_txt'] = 'Domain'; $wb['now_txt'] = 'Now'; $wb['login_error_unique'] = 'Login is already taken.'; @@ -60,6 +60,6 @@ $wb['cc_note_txt'] = '(Meerdere e-mail adressen scheiden met een komma)'; $wb['disablesmtp_txt'] = 'Uitschakelen SMTP (versturen)'; $wb['autoresponder_start_date_is_required'] = 'Start date must be set when Autoresponder is enabled.'; $wb['sender_cc_txt'] = 'Stuur uitgaande kopie aan'; -$wb['sender_cc_error_isemail'] = 'Het \"Stuur uitgaande kopie aan\" veld bevat geen geldig e-mail adres'; +$wb['sender_cc_error_isemail'] = 'Het \\"Stuur uitgaande kopie aan\\" veld bevat geen geldig e-mail adres'; $wb['sender_cc_note_txt'] = '(Meerdere e-mail adressen scheiden met een komma)'; ?> diff --git a/interface/web/mail/lib/lang/nl_spamfilter_policy.lng b/interface/web/mail/lib/lang/nl_spamfilter_policy.lng index 84d5242da..4a7ab9615 100644 --- a/interface/web/mail/lib/lang/nl_spamfilter_policy.lng +++ b/interface/web/mail/lib/lang/nl_spamfilter_policy.lng @@ -35,4 +35,17 @@ $wb['bad_header_admin_txt'] = 'Bad header admin'; $wb['spam_admin_txt'] = 'SPAM admin'; $wb['message_size_limit_txt'] = 'Bericht grootte limiet'; $wb['banned_rulenames_txt'] = 'Verbannen rulenames'; +$wb['rspamd_greylisting_txt'] = 'Use greylisting'; +$wb['rspamd_spam_greylisting_level_txt'] = 'Greylisting level'; +$wb['rspamd_spam_tag_level_txt'] = 'SPAM tag level'; +$wb['rspamd_spam_tag_method_txt'] = 'SPAM tag method'; +$wb['rspamd_spam_kill_level_txt'] = 'SPAM reject level'; +$wb['btn_save_txt'] = 'Save'; +$wb['btn_cancel_txt'] = 'Cancel'; +$wb['amavis_settings_txt'] = 'Settings'; +$wb['amavis_taglevel_txt'] = 'Tag-Level'; +$wb['amavis_quarantine_txt'] = 'Quarantine'; +$wb['amavis_other_txt'] = 'Other'; +$wb['add_header_txt'] = 'Add header'; +$wb['rewrite_subject_txt'] = 'Rewrite subject'; ?> diff --git a/interface/web/mail/lib/lang/pl.lng b/interface/web/mail/lib/lang/pl.lng index 93861b784..17b770199 100644 --- a/interface/web/mail/lib/lang/pl.lng +++ b/interface/web/mail/lib/lang/pl.lng @@ -45,4 +45,6 @@ $wb['Global Filters'] = 'Globalne filtry'; $wb['Domain Alias'] = 'Alias domeny'; $wb['Relay Recipients'] = 'Odbiorcy przekierowania'; $wb['Mailbox quota'] = 'Użycie skrzynek email'; +$wb['add_header_txt'] = 'Header (adds \"X-Spam: Yes\")'; +$wb['rewrite_subject_txt'] = 'Subject (adds \"***SPAM***\" at the beginning)'; ?> diff --git a/interface/web/mail/lib/lang/pl_mail_domain_catchall.lng b/interface/web/mail/lib/lang/pl_mail_domain_catchall.lng index 3630b954b..fad83875c 100644 --- a/interface/web/mail/lib/lang/pl_mail_domain_catchall.lng +++ b/interface/web/mail/lib/lang/pl_mail_domain_catchall.lng @@ -8,4 +8,5 @@ $wb['domain_error_regex'] = 'Nieprawidłowa nazwa domeny. Domena zawiera niedozo $wb['limit_mailcatchall_txt'] = 'Maksymalna ilość kont e-mail catchall dla Twojej domeny została przekroczona.'; $wb['source_txt'] = 'Źródło'; $wb['destination_error_isemail'] = 'Cel nie jest poprawnym adresem email.'; +$wb['greylisting_txt'] = 'Enable greylisting'; ?> diff --git a/interface/web/mail/lib/lang/pl_spamfilter_policy.lng b/interface/web/mail/lib/lang/pl_spamfilter_policy.lng index 8a825b559..829110230 100644 --- a/interface/web/mail/lib/lang/pl_spamfilter_policy.lng +++ b/interface/web/mail/lib/lang/pl_spamfilter_policy.lng @@ -35,4 +35,17 @@ $wb['bad_header_admin_txt'] = 'Admin obsługi złych nagłowków'; $wb['spam_admin_txt'] = 'Admin obsługi spamu'; $wb['message_size_limit_txt'] = 'Limit wielkości wiadomości'; $wb['banned_rulenames_txt'] = 'Zabronione nazwy zasad'; +$wb['rspamd_greylisting_txt'] = 'Use greylisting'; +$wb['rspamd_spam_greylisting_level_txt'] = 'Greylisting level'; +$wb['rspamd_spam_tag_level_txt'] = 'SPAM tag level'; +$wb['rspamd_spam_tag_method_txt'] = 'SPAM tag method'; +$wb['rspamd_spam_kill_level_txt'] = 'SPAM reject level'; +$wb['btn_save_txt'] = 'Save'; +$wb['btn_cancel_txt'] = 'Cancel'; +$wb['amavis_settings_txt'] = 'Settings'; +$wb['amavis_taglevel_txt'] = 'Tag-Level'; +$wb['amavis_quarantine_txt'] = 'Quarantine'; +$wb['amavis_other_txt'] = 'Other'; +$wb['add_header_txt'] = 'Add header'; +$wb['rewrite_subject_txt'] = 'Rewrite subject'; ?> diff --git a/interface/web/mail/lib/lang/pt.lng b/interface/web/mail/lib/lang/pt.lng index 7a9a69cf8..d47eb6183 100644 --- a/interface/web/mail/lib/lang/pt.lng +++ b/interface/web/mail/lib/lang/pt.lng @@ -45,4 +45,6 @@ $wb['Global Filters'] = 'Filtros Globais'; $wb['Domain Alias'] = 'Domínios Alias'; $wb['Relay Recipients'] = 'Recipientes de Relay'; $wb['Mailbox quota'] = 'Mailbox quota'; +$wb['add_header_txt'] = 'Header (adds \"X-Spam: Yes\")'; +$wb['rewrite_subject_txt'] = 'Subject (adds \"***SPAM***\" at the beginning)'; ?> diff --git a/interface/web/mail/lib/lang/pt_mail_domain_catchall.lng b/interface/web/mail/lib/lang/pt_mail_domain_catchall.lng index 1fde21c02..e81afd74b 100644 --- a/interface/web/mail/lib/lang/pt_mail_domain_catchall.lng +++ b/interface/web/mail/lib/lang/pt_mail_domain_catchall.lng @@ -8,4 +8,5 @@ $wb['domain_error_regex'] = 'O nome do domínio contém caracteres inválidos'; $wb['limit_mailcatchall_txt'] = 'O número máximo de catchall para este domínio foi atingido.'; $wb['source_txt'] = 'Source'; $wb['destination_error_isemail'] = 'Destination is no valid email address.'; +$wb['greylisting_txt'] = 'Enable greylisting'; ?> diff --git a/interface/web/mail/lib/lang/pt_mail_get.lng b/interface/web/mail/lib/lang/pt_mail_get.lng index f3ea6227f..883279a2d 100644 --- a/interface/web/mail/lib/lang/pt_mail_get.lng +++ b/interface/web/mail/lib/lang/pt_mail_get.lng @@ -14,6 +14,6 @@ $wb['source_password_error_isempty'] = 'Senha em branco.'; $wb['destination_error_isemail'] = 'Destino não seleccionado.'; $wb['source_server_error_regex'] = 'Servidor Pop3/Imap não é um nome de domínio válido.'; $wb['source_read_all_txt'] = 'Retrieve all emails (incl. read mails)'; -$wb['error_delete_read_all_combination'] = 'Illegal combination of options. You can not use \"Delete emails after retrieval\" = no together with \"Retrieve all emails\" = yes'; +$wb['error_delete_read_all_combination'] = 'Illegal combination of options. You can not use \\"Delete emails after retrieval\\" = no together with \\"Retrieve all emails\\" = yes'; $wb['source_delete_note_txt'] = 'Please check first if email retrieval works, before you activate this option.'; ?> diff --git a/interface/web/mail/lib/lang/pt_spamfilter_policy.lng b/interface/web/mail/lib/lang/pt_spamfilter_policy.lng index 1610aebdc..af960c99f 100644 --- a/interface/web/mail/lib/lang/pt_spamfilter_policy.lng +++ b/interface/web/mail/lib/lang/pt_spamfilter_policy.lng @@ -35,4 +35,17 @@ $wb['bad_header_admin_txt'] = 'Administrador de Bad header'; $wb['spam_admin_txt'] = 'Administrador SPAM'; $wb['message_size_limit_txt'] = 'Tamanho limite da mensagem'; $wb['banned_rulenames_txt'] = 'Regras de Banimento'; +$wb['rspamd_greylisting_txt'] = 'Use greylisting'; +$wb['rspamd_spam_greylisting_level_txt'] = 'Greylisting level'; +$wb['rspamd_spam_tag_level_txt'] = 'SPAM tag level'; +$wb['rspamd_spam_tag_method_txt'] = 'SPAM tag method'; +$wb['rspamd_spam_kill_level_txt'] = 'SPAM reject level'; +$wb['btn_save_txt'] = 'Save'; +$wb['btn_cancel_txt'] = 'Cancel'; +$wb['amavis_settings_txt'] = 'Settings'; +$wb['amavis_taglevel_txt'] = 'Tag-Level'; +$wb['amavis_quarantine_txt'] = 'Quarantine'; +$wb['amavis_other_txt'] = 'Other'; +$wb['add_header_txt'] = 'Add header'; +$wb['rewrite_subject_txt'] = 'Rewrite subject'; ?> diff --git a/interface/web/mail/lib/lang/ro.lng b/interface/web/mail/lib/lang/ro.lng index dbfa06bcc..0c0e85995 100644 --- a/interface/web/mail/lib/lang/ro.lng +++ b/interface/web/mail/lib/lang/ro.lng @@ -45,4 +45,6 @@ $wb['Global Filters'] = 'Filtre Global'; $wb['Domain Alias'] = 'Domain Alias'; $wb['Relay Recipients'] = 'Relay Recipients'; $wb['Mailbox quota'] = 'Mailbox quota'; +$wb['add_header_txt'] = 'Header (adds \"X-Spam: Yes\")'; +$wb['rewrite_subject_txt'] = 'Subject (adds \"***SPAM***\" at the beginning)'; ?> diff --git a/interface/web/mail/lib/lang/ro_mail_domain_catchall.lng b/interface/web/mail/lib/lang/ro_mail_domain_catchall.lng index 97add765a..c0689ca04 100644 --- a/interface/web/mail/lib/lang/ro_mail_domain_catchall.lng +++ b/interface/web/mail/lib/lang/ro_mail_domain_catchall.lng @@ -8,4 +8,5 @@ $wb['domain_error_regex'] = 'nume de domeniu invalid sau caractere nepermise'; $wb['limit_mailcatchall_txt'] = 'numarul maxim de CATCHALL pe contul dumneavoatra a fost atins'; $wb['source_txt'] = 'Source'; $wb['destination_error_isemail'] = 'Destination is no valid email address.'; +$wb['greylisting_txt'] = 'Enable greylisting'; ?> diff --git a/interface/web/mail/lib/lang/ro_mail_get.lng b/interface/web/mail/lib/lang/ro_mail_get.lng index 16a0b6aeb..5e0a590f7 100644 --- a/interface/web/mail/lib/lang/ro_mail_get.lng +++ b/interface/web/mail/lib/lang/ro_mail_get.lng @@ -14,6 +14,6 @@ $wb['source_password_error_isempty'] = 'Password este necompletat'; $wb['destination_error_isemail'] = 'Nici o destinatie nu e selectata'; $wb['source_server_error_regex'] = 'Pop3/Imap Server is not a valid domain name.'; $wb['source_read_all_txt'] = 'Retrieve all emails (incl. read mails)'; -$wb['error_delete_read_all_combination'] = 'Illegal combination of options. You can not use \"Delete emails after retrieval\" = no together with \"Retrieve all emails\" = yes'; +$wb['error_delete_read_all_combination'] = 'Illegal combination of options. You can not use \\"Delete emails after retrieval\\" = no together with \\"Retrieve all emails\\" = yes'; $wb['source_delete_note_txt'] = 'Please check first if email retrieval works, before you activate this option.'; ?> diff --git a/interface/web/mail/lib/lang/ro_spamfilter_policy.lng b/interface/web/mail/lib/lang/ro_spamfilter_policy.lng index 3645b3e1d..f77d0f3e5 100644 --- a/interface/web/mail/lib/lang/ro_spamfilter_policy.lng +++ b/interface/web/mail/lib/lang/ro_spamfilter_policy.lng @@ -35,4 +35,17 @@ $wb['bad_header_admin_txt'] = ' header defect admin'; $wb['spam_admin_txt'] = 'SPAM admin'; $wb['message_size_limit_txt'] = 'Message size limit'; $wb['banned_rulenames_txt'] = 'Banned nume reguli'; +$wb['rspamd_greylisting_txt'] = 'Use greylisting'; +$wb['rspamd_spam_greylisting_level_txt'] = 'Greylisting level'; +$wb['rspamd_spam_tag_level_txt'] = 'SPAM tag level'; +$wb['rspamd_spam_tag_method_txt'] = 'SPAM tag method'; +$wb['rspamd_spam_kill_level_txt'] = 'SPAM reject level'; +$wb['btn_save_txt'] = 'Save'; +$wb['btn_cancel_txt'] = 'Cancel'; +$wb['amavis_settings_txt'] = 'Settings'; +$wb['amavis_taglevel_txt'] = 'Tag-Level'; +$wb['amavis_quarantine_txt'] = 'Quarantine'; +$wb['amavis_other_txt'] = 'Other'; +$wb['add_header_txt'] = 'Add header'; +$wb['rewrite_subject_txt'] = 'Rewrite subject'; ?> diff --git a/interface/web/mail/lib/lang/ru.lng b/interface/web/mail/lib/lang/ru.lng index 124441ffa..1b7995e02 100644 --- a/interface/web/mail/lib/lang/ru.lng +++ b/interface/web/mail/lib/lang/ru.lng @@ -45,4 +45,6 @@ $wb['Global Filters'] = 'Глобальные фильтры'; $wb['Domain Alias'] = 'Алиасы доменов'; $wb['Relay Recipients'] = 'Relay получатели'; $wb['Mailbox quota'] = 'Квота почтового ящика'; +$wb['add_header_txt'] = 'Header (adds \"X-Spam: Yes\")'; +$wb['rewrite_subject_txt'] = 'Subject (adds \"***SPAM***\" at the beginning)'; ?> diff --git a/interface/web/mail/lib/lang/ru_mail_domain_catchall.lng b/interface/web/mail/lib/lang/ru_mail_domain_catchall.lng index 60d3ebd32..25349ca49 100644 --- a/interface/web/mail/lib/lang/ru_mail_domain_catchall.lng +++ b/interface/web/mail/lib/lang/ru_mail_domain_catchall.lng @@ -8,4 +8,5 @@ $wb['domain_error_regex'] = 'Некорректное имя домена.'; $wb['limit_mailcatchall_txt'] = 'Максимальное число Макс. количество учётных записей сводных почтовых ящиков достигнуто.'; $wb['source_txt'] = 'Источник'; $wb['destination_error_isemail'] = 'Не выбран получатель или запись некорректна.'; +$wb['greylisting_txt'] = 'Enable greylisting'; ?> diff --git a/interface/web/mail/lib/lang/ru_mail_get.lng b/interface/web/mail/lib/lang/ru_mail_get.lng index 0ce613cd0..b3f2f0b6b 100644 --- a/interface/web/mail/lib/lang/ru_mail_get.lng +++ b/interface/web/mail/lib/lang/ru_mail_get.lng @@ -14,6 +14,6 @@ $wb['source_password_error_isempty'] = 'Пустой пароль.'; $wb['destination_error_isemail'] = 'Не выбран получатель или запись некорректна.'; $wb['source_server_error_regex'] = 'Некорректное доменное имя для сервера POP3/IMAP.'; $wb['source_read_all_txt'] = 'Получать все сообщения электронной почты (включая прочитанные письма)'; -$wb['error_delete_read_all_combination'] = 'Недопустимая комбинация параметров. Вы не можете использовать \"Удалить письма после получения\" = НЕТ вместе с \"Получить все письма\" = ДА'; +$wb['error_delete_read_all_combination'] = 'Недопустимая комбинация параметров. Вы не можете использовать \\"Удалить письма после получения\\" = НЕТ вместе с \\"Получить все письма\\" = ДА'; $wb['source_delete_note_txt'] = 'Пожалуйста, прежде чем активировать этот параметр, убедитесь в том, что сборщик почты работает.'; ?> diff --git a/interface/web/mail/lib/lang/ru_mail_user_filter.lng b/interface/web/mail/lib/lang/ru_mail_user_filter.lng index ecc2d25b9..c8306f983 100644 --- a/interface/web/mail/lib/lang/ru_mail_user_filter.lng +++ b/interface/web/mail/lib/lang/ru_mail_user_filter.lng @@ -6,7 +6,7 @@ $wb['active_txt'] = 'Активно'; $wb['rulename_error_empty'] = 'Имя пустое.'; $wb['searchterm_is_empty'] = 'Поле поиска пустое.'; $wb['source_txt'] = 'Источник'; -$wb['target_error_regex'] = 'Назначение может содержать только следующие символы: \"a-z\", \"0-9\", \"-\", \".\", \"_\" и {пробел}'; +$wb['target_error_regex'] = 'Назначение может содержать только следующие символы: \\"a-z\\", \\"0-9\\", \\"-\\", \\".\\", \\"_\\" и {пробел}'; $wb['limit_mailfilter_txt'] = 'Максимальное число почтовых фильтров достигнуто.'; $wb['subject_txt'] = 'Тема'; $wb['from_txt'] = 'От'; diff --git a/interface/web/mail/lib/lang/ru_spamfilter_policy.lng b/interface/web/mail/lib/lang/ru_spamfilter_policy.lng index 7bae8a0fd..bab0a9ba0 100644 --- a/interface/web/mail/lib/lang/ru_spamfilter_policy.lng +++ b/interface/web/mail/lib/lang/ru_spamfilter_policy.lng @@ -35,4 +35,17 @@ $wb['bad_header_admin_txt'] = 'Админ: кривые заголовки'; $wb['spam_admin_txt'] = 'Админ: СПАМ'; $wb['message_size_limit_txt'] = 'Превышен размер сообщения'; $wb['banned_rulenames_txt'] = 'Правила банов'; +$wb['rspamd_greylisting_txt'] = 'Use greylisting'; +$wb['rspamd_spam_greylisting_level_txt'] = 'Greylisting level'; +$wb['rspamd_spam_tag_level_txt'] = 'SPAM tag level'; +$wb['rspamd_spam_tag_method_txt'] = 'SPAM tag method'; +$wb['rspamd_spam_kill_level_txt'] = 'SPAM reject level'; +$wb['btn_save_txt'] = 'Save'; +$wb['btn_cancel_txt'] = 'Cancel'; +$wb['amavis_settings_txt'] = 'Settings'; +$wb['amavis_taglevel_txt'] = 'Tag-Level'; +$wb['amavis_quarantine_txt'] = 'Quarantine'; +$wb['amavis_other_txt'] = 'Other'; +$wb['add_header_txt'] = 'Add header'; +$wb['rewrite_subject_txt'] = 'Rewrite subject'; ?> diff --git a/interface/web/mail/lib/lang/se.lng b/interface/web/mail/lib/lang/se.lng index 3edc2034d..7a415aa90 100644 --- a/interface/web/mail/lib/lang/se.lng +++ b/interface/web/mail/lib/lang/se.lng @@ -45,4 +45,6 @@ $wb['Global Filters'] = 'Global Filters'; $wb['Domain Alias'] = 'Domain Alias'; $wb['Relay Recipients'] = 'Relay Recipients'; $wb['Mailbox quota'] = 'Mailbox quota'; +$wb['add_header_txt'] = 'Header (adds \"X-Spam: Yes\")'; +$wb['rewrite_subject_txt'] = 'Subject (adds \"***SPAM***\" at the beginning)'; ?> diff --git a/interface/web/mail/lib/lang/se_mail_domain_catchall.lng b/interface/web/mail/lib/lang/se_mail_domain_catchall.lng index 7ef111639..39c6e6c55 100644 --- a/interface/web/mail/lib/lang/se_mail_domain_catchall.lng +++ b/interface/web/mail/lib/lang/se_mail_domain_catchall.lng @@ -8,4 +8,5 @@ $wb['domain_error_regex'] = 'Ogiltig domän eller domänen innehåller ogiltiga $wb['limit_mailcatchall_txt'] = 'Det maximala antalet catchall-adresser för ditt konto är uppnått.'; $wb['source_txt'] = 'Källa'; $wb['destination_error_isemail'] = 'Destinationen när inte en giltig epostadress.'; +$wb['greylisting_txt'] = 'Enable greylisting'; ?> diff --git a/interface/web/mail/lib/lang/se_mail_get.lng b/interface/web/mail/lib/lang/se_mail_get.lng index db4440210..9ed971005 100644 --- a/interface/web/mail/lib/lang/se_mail_get.lng +++ b/interface/web/mail/lib/lang/se_mail_get.lng @@ -14,6 +14,6 @@ $wb['source_password_error_isempty'] = 'Lösenord är tomt.'; $wb['destination_error_isemail'] = 'Ingen destination vald.'; $wb['source_server_error_regex'] = 'POP3-/Imapserver är inte ett giltigt domännamn.'; $wb['source_read_all_txt'] = 'Hämta all epost (även läst epost)'; -$wb['error_delete_read_all_combination'] = 'Illegal combination of options. You can not use \"Delete emails after retrieval\" = no together with \"Retrieve all emails\" = yes'; +$wb['error_delete_read_all_combination'] = 'Illegal combination of options. You can not use \\"Delete emails after retrieval\\" = no together with \\"Retrieve all emails\\" = yes'; $wb['source_delete_note_txt'] = 'Vänligen kontrollera först om eposthämtning fungerar innan du aktiverar detta val..'; ?> diff --git a/interface/web/mail/lib/lang/se_spamfilter_policy.lng b/interface/web/mail/lib/lang/se_spamfilter_policy.lng index e876330a6..683b378c2 100644 --- a/interface/web/mail/lib/lang/se_spamfilter_policy.lng +++ b/interface/web/mail/lib/lang/se_spamfilter_policy.lng @@ -35,4 +35,17 @@ $wb['bad_header_admin_txt'] = 'Bad header admin'; $wb['spam_admin_txt'] = 'SPAM admin'; $wb['message_size_limit_txt'] = 'Message size limit'; $wb['banned_rulenames_txt'] = 'Banned rulenames'; +$wb['rspamd_greylisting_txt'] = 'Use greylisting'; +$wb['rspamd_spam_greylisting_level_txt'] = 'Greylisting level'; +$wb['rspamd_spam_tag_level_txt'] = 'SPAM tag level'; +$wb['rspamd_spam_tag_method_txt'] = 'SPAM tag method'; +$wb['rspamd_spam_kill_level_txt'] = 'SPAM reject level'; +$wb['btn_save_txt'] = 'Save'; +$wb['btn_cancel_txt'] = 'Cancel'; +$wb['amavis_settings_txt'] = 'Settings'; +$wb['amavis_taglevel_txt'] = 'Tag-Level'; +$wb['amavis_quarantine_txt'] = 'Quarantine'; +$wb['amavis_other_txt'] = 'Other'; +$wb['add_header_txt'] = 'Add header'; +$wb['rewrite_subject_txt'] = 'Rewrite subject'; ?> diff --git a/interface/web/mail/lib/lang/sk.lng b/interface/web/mail/lib/lang/sk.lng index 22773a574..7b00f9d52 100644 --- a/interface/web/mail/lib/lang/sk.lng +++ b/interface/web/mail/lib/lang/sk.lng @@ -45,4 +45,6 @@ $wb['Global Filters'] = 'Globálne Filtere'; $wb['Domain Alias'] = 'Domain Alias'; $wb['Relay Recipients'] = 'Relay Recipients'; $wb['Mailbox quota'] = 'Mailbox quota'; +$wb['add_header_txt'] = 'Header (adds \"X-Spam: Yes\")'; +$wb['rewrite_subject_txt'] = 'Subject (adds \"***SPAM***\" at the beginning)'; ?> diff --git a/interface/web/mail/lib/lang/sk_mail_domain_catchall.lng b/interface/web/mail/lib/lang/sk_mail_domain_catchall.lng index 38c37544e..03c701c6d 100644 --- a/interface/web/mail/lib/lang/sk_mail_domain_catchall.lng +++ b/interface/web/mail/lib/lang/sk_mail_domain_catchall.lng @@ -8,4 +8,5 @@ $wb['domain_error_regex'] = 'Neplatný názov domény alebo doména obsahuje nep $wb['limit_mailcatchall_txt'] = 'Max. počet e-mailových doménových košov pre Váš účet je dosiahnutý.'; $wb['source_txt'] = 'Source'; $wb['destination_error_isemail'] = 'Destination is no valid email address.'; +$wb['greylisting_txt'] = 'Enable greylisting'; ?> diff --git a/interface/web/mail/lib/lang/sk_mail_get.lng b/interface/web/mail/lib/lang/sk_mail_get.lng index 8e180ca7a..e43899965 100644 --- a/interface/web/mail/lib/lang/sk_mail_get.lng +++ b/interface/web/mail/lib/lang/sk_mail_get.lng @@ -14,6 +14,6 @@ $wb['source_password_error_isempty'] = 'Heslo je prázdne.'; $wb['destination_error_isemail'] = 'Žiadny Cieľ nebol vybraný.'; $wb['source_server_error_regex'] = 'Pop3/Imap Server nie je valídne doménové meno.'; $wb['source_read_all_txt'] = 'Retrieve all emails (incl. read mails)'; -$wb['error_delete_read_all_combination'] = 'Illegal combination of options. You can not use \"Delete emails after retrieval\" = no together with \"Retrieve all emails\" = yes'; +$wb['error_delete_read_all_combination'] = 'Illegal combination of options. You can not use \\"Delete emails after retrieval\\" = no together with \\"Retrieve all emails\\" = yes'; $wb['source_delete_note_txt'] = 'Please check first if email retrieval works, before you activate this option.'; ?> diff --git a/interface/web/mail/lib/lang/sk_spamfilter_policy.lng b/interface/web/mail/lib/lang/sk_spamfilter_policy.lng index b58988d60..6a4d63625 100644 --- a/interface/web/mail/lib/lang/sk_spamfilter_policy.lng +++ b/interface/web/mail/lib/lang/sk_spamfilter_policy.lng @@ -35,4 +35,17 @@ $wb['bad_header_admin_txt'] = 'Zlé hlavičky admin'; $wb['spam_admin_txt'] = 'SPAM admin'; $wb['message_size_limit_txt'] = 'Limit veľkosti správy'; $wb['banned_rulenames_txt'] = 'Banned rulenames'; +$wb['rspamd_greylisting_txt'] = 'Use greylisting'; +$wb['rspamd_spam_greylisting_level_txt'] = 'Greylisting level'; +$wb['rspamd_spam_tag_level_txt'] = 'SPAM tag level'; +$wb['rspamd_spam_tag_method_txt'] = 'SPAM tag method'; +$wb['rspamd_spam_kill_level_txt'] = 'SPAM reject level'; +$wb['btn_save_txt'] = 'Save'; +$wb['btn_cancel_txt'] = 'Cancel'; +$wb['amavis_settings_txt'] = 'Settings'; +$wb['amavis_taglevel_txt'] = 'Tag-Level'; +$wb['amavis_quarantine_txt'] = 'Quarantine'; +$wb['amavis_other_txt'] = 'Other'; +$wb['add_header_txt'] = 'Add header'; +$wb['rewrite_subject_txt'] = 'Rewrite subject'; ?> diff --git a/interface/web/mail/lib/lang/tr.lng b/interface/web/mail/lib/lang/tr.lng index e2deaca00..4f6f77a38 100644 --- a/interface/web/mail/lib/lang/tr.lng +++ b/interface/web/mail/lib/lang/tr.lng @@ -45,4 +45,6 @@ $wb['Global Filters'] = 'Genel Süzgeçler'; $wb['Domain Alias'] = 'Takma Alan Adı'; $wb['Relay Recipients'] = 'Aktarılan Alıcılar'; $wb['Mailbox quota'] = 'Posta Kutusu Kotası'; +$wb['add_header_txt'] = 'Header (adds \"X-Spam: Yes\")'; +$wb['rewrite_subject_txt'] = 'Subject (adds \"***SPAM***\" at the beginning)'; ?> diff --git a/interface/web/mail/lib/lang/tr_mail_domain_catchall.lng b/interface/web/mail/lib/lang/tr_mail_domain_catchall.lng index 037d2ad16..c5f8725a7 100644 --- a/interface/web/mail/lib/lang/tr_mail_domain_catchall.lng +++ b/interface/web/mail/lib/lang/tr_mail_domain_catchall.lng @@ -8,4 +8,5 @@ $wb['domain_error_regex'] = 'Alan adı geçersiz ya da geçersiz karakterler iç $wb['limit_mailcatchall_txt'] = 'Hesabınıza ekleyebileceğiniz en fazla tümünü al hesabı sayısına ulaştınız.'; $wb['source_txt'] = 'Kaynak'; $wb['destination_error_isemail'] = 'Hedef e-posta adresi geçersiz.'; +$wb['greylisting_txt'] = 'Enable greylisting'; ?> diff --git a/interface/web/mail/lib/lang/tr_mail_get.lng b/interface/web/mail/lib/lang/tr_mail_get.lng index 3e29c26a7..b82b6c8c9 100644 --- a/interface/web/mail/lib/lang/tr_mail_get.lng +++ b/interface/web/mail/lib/lang/tr_mail_get.lng @@ -15,5 +15,5 @@ $wb['source_username_error_isempty'] = 'Kullanıcı adı boş olamaz.'; $wb['source_password_error_isempty'] = 'Parola boş olamaz.'; $wb['destination_error_isemail'] = 'Hedef seçilmemiş.'; $wb['source_server_error_regex'] = 'POP3/IMAP Sunucu alan adı geçersiz.'; -$wb['error_delete_read_all_combination'] = 'Seçenek kombinasyonu geçersiz. You can not use \"E-postalar alındıktan sonra silinsin\" = Hayır iken \"Tüm e-postalar alınsın\" = Evet olamaz'; +$wb['error_delete_read_all_combination'] = 'Seçenek kombinasyonu geçersiz. You can not use \\"E-postalar alındıktan sonra silinsin\\" = Hayır iken \\"Tüm e-postalar alınsın\\" = Evet olamaz'; ?> diff --git a/interface/web/mail/lib/lang/tr_spamfilter_policy.lng b/interface/web/mail/lib/lang/tr_spamfilter_policy.lng index 721b0490f..d7b76496a 100644 --- a/interface/web/mail/lib/lang/tr_spamfilter_policy.lng +++ b/interface/web/mail/lib/lang/tr_spamfilter_policy.lng @@ -35,4 +35,17 @@ $wb['bad_header_admin_txt'] = 'Kötü üstbilgi yönetici'; $wb['spam_admin_txt'] = 'Önemsiz posta yönetici'; $wb['message_size_limit_txt'] = 'İleti boyutu sınırı'; $wb['banned_rulenames_txt'] = 'Yasak kural adları'; +$wb['rspamd_greylisting_txt'] = 'Use greylisting'; +$wb['rspamd_spam_greylisting_level_txt'] = 'Greylisting level'; +$wb['rspamd_spam_tag_level_txt'] = 'SPAM tag level'; +$wb['rspamd_spam_tag_method_txt'] = 'SPAM tag method'; +$wb['rspamd_spam_kill_level_txt'] = 'SPAM reject level'; +$wb['btn_save_txt'] = 'Save'; +$wb['btn_cancel_txt'] = 'Cancel'; +$wb['amavis_settings_txt'] = 'Settings'; +$wb['amavis_taglevel_txt'] = 'Tag-Level'; +$wb['amavis_quarantine_txt'] = 'Quarantine'; +$wb['amavis_other_txt'] = 'Other'; +$wb['add_header_txt'] = 'Add header'; +$wb['rewrite_subject_txt'] = 'Rewrite subject'; ?> diff --git a/interface/web/mailuser/lib/lang/ru_mail_user_filter.lng b/interface/web/mailuser/lib/lang/ru_mail_user_filter.lng index f10dd4ddb..d834e4057 100644 --- a/interface/web/mailuser/lib/lang/ru_mail_user_filter.lng +++ b/interface/web/mailuser/lib/lang/ru_mail_user_filter.lng @@ -6,7 +6,7 @@ $wb['active_txt'] = 'Активно'; $wb['rulename_error_empty'] = 'Имя пустое.'; $wb['searchterm_is_empty'] = 'Поле поиска пустое.'; $wb['source_txt'] = 'Источник'; -$wb['target_error_regex'] = 'Назначение может содержать только следующие символы: \"a-z\", \"0-9\", \"-\", \".\", \"_\" и {пробел}'; +$wb['target_error_regex'] = 'Назначение может содержать только следующие символы: \\"a-z\\", \\"0-9\\", \\"-\\", \\".\\", \\"_\\" и {пробел}'; $wb['limit_mailfilter_txt'] = 'Максимальное число почтовых фильтров достигнуто.'; $wb['subject_txt'] = 'Тема'; $wb['from_txt'] = 'От'; diff --git a/interface/web/monitor/lib/lang/ar_dataloghistory_list.lng b/interface/web/monitor/lib/lang/ar_dataloghistory_list.lng index 9f9afd634..f1ba8c67b 100644 --- a/interface/web/monitor/lib/lang/ar_dataloghistory_list.lng +++ b/interface/web/monitor/lib/lang/ar_dataloghistory_list.lng @@ -1,8 +1,8 @@ diff --git a/interface/web/monitor/lib/lang/bg_dataloghistory_list.lng b/interface/web/monitor/lib/lang/bg_dataloghistory_list.lng index 9f9afd634..f1ba8c67b 100644 --- a/interface/web/monitor/lib/lang/bg_dataloghistory_list.lng +++ b/interface/web/monitor/lib/lang/bg_dataloghistory_list.lng @@ -1,8 +1,8 @@ diff --git a/interface/web/monitor/lib/lang/br_dataloghistory_list.lng b/interface/web/monitor/lib/lang/br_dataloghistory_list.lng index 9f9afd634..f1ba8c67b 100644 --- a/interface/web/monitor/lib/lang/br_dataloghistory_list.lng +++ b/interface/web/monitor/lib/lang/br_dataloghistory_list.lng @@ -1,8 +1,8 @@ diff --git a/interface/web/monitor/lib/lang/ca_dataloghistory_list.lng b/interface/web/monitor/lib/lang/ca_dataloghistory_list.lng index 9f9afd634..f1ba8c67b 100644 --- a/interface/web/monitor/lib/lang/ca_dataloghistory_list.lng +++ b/interface/web/monitor/lib/lang/ca_dataloghistory_list.lng @@ -1,8 +1,8 @@ diff --git a/interface/web/monitor/lib/lang/dk_dataloghistory_list.lng b/interface/web/monitor/lib/lang/dk_dataloghistory_list.lng index 9f9afd634..f1ba8c67b 100644 --- a/interface/web/monitor/lib/lang/dk_dataloghistory_list.lng +++ b/interface/web/monitor/lib/lang/dk_dataloghistory_list.lng @@ -1,8 +1,8 @@ diff --git a/interface/web/monitor/lib/lang/el_dataloghistory_list.lng b/interface/web/monitor/lib/lang/el_dataloghistory_list.lng index 9f9afd634..f1ba8c67b 100644 --- a/interface/web/monitor/lib/lang/el_dataloghistory_list.lng +++ b/interface/web/monitor/lib/lang/el_dataloghistory_list.lng @@ -1,8 +1,8 @@ diff --git a/interface/web/monitor/lib/lang/es.lng b/interface/web/monitor/lib/lang/es.lng index 3a95c6e9c..f4acb3c45 100755 --- a/interface/web/monitor/lib/lang/es.lng +++ b/interface/web/monitor/lib/lang/es.lng @@ -27,7 +27,7 @@ $wb['monitor_logs_mailerr_txt'] = 'Registros de errores de correo'; $wb['monitor_logs_mailwarn_txt'] = 'Registros de advertencias de correo'; $wb['monitor_logs_messages_txt'] = 'Registros de mensajes del sistema'; $wb['monitor_norkhunter_txt'] = 'RKHunter no está instalado, por lo que no hay registros a mostrar'; -$wb['monitor_nosupportedraid1_txt'] = 'Por el momento, soportamos \"mdadm\" o \"mpt-status\" para supervisar el RAID.
No hemos podido encontrarlo en su servidor.
Por lo tanto no podemos monitorizar su RAID todavía.'; +$wb['monitor_nosupportedraid1_txt'] = 'Por el momento, soportamos \\"mdadm\\" o \\"mpt-status\\" para supervisar el RAID.
No hemos podido encontrarlo en su servidor.
Por lo tanto no podemos monitorizar su RAID todavía.'; $wb['monitor_serverstate_beancountercritical_txt'] = 'Existen muchos errores en el Beancounter'; $wb['monitor_serverstate_beancountererror_txt'] = 'Existen muchísimos errores en el Beancounter'; $wb['monitor_serverstate_beancounterinfo_txt'] = 'Existen algún error en el Beancounter'; diff --git a/interface/web/monitor/lib/lang/es_dataloghistory_list.lng b/interface/web/monitor/lib/lang/es_dataloghistory_list.lng index 9f9afd634..f1ba8c67b 100644 --- a/interface/web/monitor/lib/lang/es_dataloghistory_list.lng +++ b/interface/web/monitor/lib/lang/es_dataloghistory_list.lng @@ -1,8 +1,8 @@ diff --git a/interface/web/monitor/lib/lang/fi_dataloghistory_list.lng b/interface/web/monitor/lib/lang/fi_dataloghistory_list.lng index 9f9afd634..f1ba8c67b 100644 --- a/interface/web/monitor/lib/lang/fi_dataloghistory_list.lng +++ b/interface/web/monitor/lib/lang/fi_dataloghistory_list.lng @@ -1,8 +1,8 @@ diff --git a/interface/web/monitor/lib/lang/fr_dataloghistory_list.lng b/interface/web/monitor/lib/lang/fr_dataloghistory_list.lng index 9f9afd634..f1ba8c67b 100644 --- a/interface/web/monitor/lib/lang/fr_dataloghistory_list.lng +++ b/interface/web/monitor/lib/lang/fr_dataloghistory_list.lng @@ -1,8 +1,8 @@ diff --git a/interface/web/monitor/lib/lang/hr_dataloghistory_list.lng b/interface/web/monitor/lib/lang/hr_dataloghistory_list.lng index 9f9afd634..f1ba8c67b 100644 --- a/interface/web/monitor/lib/lang/hr_dataloghistory_list.lng +++ b/interface/web/monitor/lib/lang/hr_dataloghistory_list.lng @@ -1,8 +1,8 @@ diff --git a/interface/web/monitor/lib/lang/hu_dataloghistory_list.lng b/interface/web/monitor/lib/lang/hu_dataloghistory_list.lng index 9f9afd634..f1ba8c67b 100644 --- a/interface/web/monitor/lib/lang/hu_dataloghistory_list.lng +++ b/interface/web/monitor/lib/lang/hu_dataloghistory_list.lng @@ -1,8 +1,8 @@ diff --git a/interface/web/monitor/lib/lang/id_dataloghistory_list.lng b/interface/web/monitor/lib/lang/id_dataloghistory_list.lng index 9f9afd634..f1ba8c67b 100644 --- a/interface/web/monitor/lib/lang/id_dataloghistory_list.lng +++ b/interface/web/monitor/lib/lang/id_dataloghistory_list.lng @@ -1,8 +1,8 @@ diff --git a/interface/web/monitor/lib/lang/it_dataloghistory_list.lng b/interface/web/monitor/lib/lang/it_dataloghistory_list.lng index 9f9afd634..f1ba8c67b 100644 --- a/interface/web/monitor/lib/lang/it_dataloghistory_list.lng +++ b/interface/web/monitor/lib/lang/it_dataloghistory_list.lng @@ -1,8 +1,8 @@ diff --git a/interface/web/monitor/lib/lang/ja_dataloghistory_list.lng b/interface/web/monitor/lib/lang/ja_dataloghistory_list.lng index 9f9afd634..f1ba8c67b 100644 --- a/interface/web/monitor/lib/lang/ja_dataloghistory_list.lng +++ b/interface/web/monitor/lib/lang/ja_dataloghistory_list.lng @@ -1,8 +1,8 @@ diff --git a/interface/web/monitor/lib/lang/nl_dataloghistory_list.lng b/interface/web/monitor/lib/lang/nl_dataloghistory_list.lng index 9f9afd634..f1ba8c67b 100644 --- a/interface/web/monitor/lib/lang/nl_dataloghistory_list.lng +++ b/interface/web/monitor/lib/lang/nl_dataloghistory_list.lng @@ -1,8 +1,8 @@ diff --git a/interface/web/monitor/lib/lang/pl_dataloghistory_list.lng b/interface/web/monitor/lib/lang/pl_dataloghistory_list.lng index 9f9afd634..f1ba8c67b 100644 --- a/interface/web/monitor/lib/lang/pl_dataloghistory_list.lng +++ b/interface/web/monitor/lib/lang/pl_dataloghistory_list.lng @@ -1,8 +1,8 @@ diff --git a/interface/web/monitor/lib/lang/pt_dataloghistory_list.lng b/interface/web/monitor/lib/lang/pt_dataloghistory_list.lng index 9f9afd634..f1ba8c67b 100644 --- a/interface/web/monitor/lib/lang/pt_dataloghistory_list.lng +++ b/interface/web/monitor/lib/lang/pt_dataloghistory_list.lng @@ -1,8 +1,8 @@ diff --git a/interface/web/monitor/lib/lang/ro_dataloghistory_list.lng b/interface/web/monitor/lib/lang/ro_dataloghistory_list.lng index 9f9afd634..f1ba8c67b 100644 --- a/interface/web/monitor/lib/lang/ro_dataloghistory_list.lng +++ b/interface/web/monitor/lib/lang/ro_dataloghistory_list.lng @@ -1,8 +1,8 @@ diff --git a/interface/web/monitor/lib/lang/ru_dataloghistory_list.lng b/interface/web/monitor/lib/lang/ru_dataloghistory_list.lng index 9f9afd634..f1ba8c67b 100644 --- a/interface/web/monitor/lib/lang/ru_dataloghistory_list.lng +++ b/interface/web/monitor/lib/lang/ru_dataloghistory_list.lng @@ -1,8 +1,8 @@ diff --git a/interface/web/monitor/lib/lang/se_dataloghistory_list.lng b/interface/web/monitor/lib/lang/se_dataloghistory_list.lng index 9f9afd634..f1ba8c67b 100644 --- a/interface/web/monitor/lib/lang/se_dataloghistory_list.lng +++ b/interface/web/monitor/lib/lang/se_dataloghistory_list.lng @@ -1,8 +1,8 @@ diff --git a/interface/web/monitor/lib/lang/sk_dataloghistory_list.lng b/interface/web/monitor/lib/lang/sk_dataloghistory_list.lng index 9f9afd634..f1ba8c67b 100644 --- a/interface/web/monitor/lib/lang/sk_dataloghistory_list.lng +++ b/interface/web/monitor/lib/lang/sk_dataloghistory_list.lng @@ -1,8 +1,8 @@ diff --git a/interface/web/monitor/lib/lang/tr_dataloghistory_list.lng b/interface/web/monitor/lib/lang/tr_dataloghistory_list.lng index 9f9afd634..f1ba8c67b 100644 --- a/interface/web/monitor/lib/lang/tr_dataloghistory_list.lng +++ b/interface/web/monitor/lib/lang/tr_dataloghistory_list.lng @@ -1,8 +1,8 @@ diff --git a/interface/web/sites/lib/lang/ar.lng b/interface/web/sites/lib/lang/ar.lng index bfd833292..6ca61afae 100644 --- a/interface/web/sites/lib/lang/ar.lng +++ b/interface/web/sites/lib/lang/ar.lng @@ -31,5 +31,5 @@ $wb['Available packages'] = 'Available packages'; $wb['Installed packages'] = 'Installed packages'; $wb['Update Packagelist'] = 'Update Packagelist'; $wb['Subdomain (Vhost)'] = 'Subdomain (Vhost)'; -$wb['error_proxy_requires_url'] = 'Redirect Type \"proxy\" requires a URL as the redirect path.'; +$wb['error_proxy_requires_url'] = 'Redirect Type \\"proxy\\" requires a URL as the redirect path.'; ?> diff --git a/interface/web/sites/lib/lang/ar_aps.lng b/interface/web/sites/lib/lang/ar_aps.lng index 3ff130f57..881c146a4 100644 --- a/interface/web/sites/lib/lang/ar_aps.lng +++ b/interface/web/sites/lib/lang/ar_aps.lng @@ -38,14 +38,14 @@ $wb['error_inv_main_location'] = 'The given install location folder is invalid.' $wb['error_license_agreement'] = 'In order to continue you have to accept the license agreement.'; $wb['error_no_database_pw'] = 'You have provided no valid database password.'; $wb['error_short_database_pw'] = 'Please choose a longer database password.'; -$wb['error_no_value_for'] = 'The field \"%s\" must not be empty.'; -$wb['error_short_value_for'] = 'The field \"%s\" requires a longer input value.'; -$wb['error_long_value_for'] = 'The field \"%s\" requires a shorter input value.'; -$wb['error_inv_value_for'] = 'You have entered an invalid value for the field \"%s\".'; -$wb['error_inv_email_for'] = 'You have entered an invalid mail address for the field \"%s\".'; -$wb['error_inv_domain_for'] = 'You have entered an invalid domain for the field \"%s\".'; -$wb['error_inv_integer_for'] = 'You have entered an invalid number for the field \"%s\".'; -$wb['error_inv_float_for'] = 'You have entered an invalid floating point number for the field \"%s\".'; +$wb['error_no_value_for'] = 'The field \\"%s\\" must not be empty.'; +$wb['error_short_value_for'] = 'The field \\"%s\\" requires a longer input value.'; +$wb['error_long_value_for'] = 'The field \\"%s\\" requires a shorter input value.'; +$wb['error_inv_value_for'] = 'You have entered an invalid value for the field \\"%s\\".'; +$wb['error_inv_email_for'] = 'You have entered an invalid mail address for the field \\"%s\\".'; +$wb['error_inv_domain_for'] = 'You have entered an invalid domain for the field \\"%s\\".'; +$wb['error_inv_integer_for'] = 'You have entered an invalid number for the field \\"%s\\".'; +$wb['error_inv_float_for'] = 'You have entered an invalid floating point number for the field \\"%s\\".'; $wb['error_used_location'] = 'The installation path already contains a package installation.'; $wb['installation_task_txt'] = 'Install planned'; $wb['installation_error_txt'] = 'Install error'; diff --git a/interface/web/sites/lib/lang/ar_web_childdomain.lng b/interface/web/sites/lib/lang/ar_web_childdomain.lng index 604a81b68..636505f24 100644 --- a/interface/web/sites/lib/lang/ar_web_childdomain.lng +++ b/interface/web/sites/lib/lang/ar_web_childdomain.lng @@ -43,7 +43,7 @@ $wb['no_flag_txt'] = 'No flag'; $wb['domain_error_wildcard'] = 'Wildcard subdomains are not allowed.'; $wb['proxy_directives_txt'] = 'Proxy Directives'; $wb['available_proxy_directive_snippets_txt'] = 'Available Proxy Directive Snippets:'; -$wb['error_proxy_requires_url'] = 'Redirect Type \"proxy\" requires a URL as the redirect path.'; +$wb['error_proxy_requires_url'] = 'Redirect Type \\"proxy\\" requires a URL as the redirect path.'; $wb['backup_interval_txt'] = 'Backup interval'; $wb['backup_copies_txt'] = 'Number of backup copies'; $wb['ssl_key_txt'] = 'SSL Key'; diff --git a/interface/web/sites/lib/lang/ar_web_subdomain.lng b/interface/web/sites/lib/lang/ar_web_subdomain.lng index 1295f3669..c5fa1711b 100644 --- a/interface/web/sites/lib/lang/ar_web_subdomain.lng +++ b/interface/web/sites/lib/lang/ar_web_subdomain.lng @@ -42,7 +42,7 @@ $wb['no_flag_txt'] = 'No flag'; $wb['domain_error_wildcard'] = 'Wildcard subdomains are not allowed.'; $wb['proxy_directives_txt'] = 'Proxy Directives'; $wb['available_proxy_directive_snippets_txt'] = 'Available Proxy Directive Snippets:'; -$wb['error_proxy_requires_url'] = 'Redirect Type \"proxy\" requires a URL as the redirect path.'; +$wb['error_proxy_requires_url'] = 'Redirect Type \\"proxy\\" requires a URL as the redirect path.'; $wb['http_port_txt'] = 'HTTP Port'; $wb['https_port_txt'] = 'HTTPS Port'; $wb['http_port_error_regex'] = 'HTTP Port invalid.'; diff --git a/interface/web/sites/lib/lang/bg.lng b/interface/web/sites/lib/lang/bg.lng index 842b70ae0..0d28df299 100644 --- a/interface/web/sites/lib/lang/bg.lng +++ b/interface/web/sites/lib/lang/bg.lng @@ -31,5 +31,5 @@ $wb['Available packages'] = 'Available packages'; $wb['Installed packages'] = 'Installed packages'; $wb['Update Packagelist'] = 'Update Packagelist'; $wb['Subdomain (Vhost)'] = 'Subdomain (Vhost)'; -$wb['error_proxy_requires_url'] = 'Redirect Type \"proxy\" requires a URL as the redirect path.'; +$wb['error_proxy_requires_url'] = 'Redirect Type \\"proxy\\" requires a URL as the redirect path.'; ?> diff --git a/interface/web/sites/lib/lang/bg_aps.lng b/interface/web/sites/lib/lang/bg_aps.lng index 612adcd42..6a5f98194 100644 --- a/interface/web/sites/lib/lang/bg_aps.lng +++ b/interface/web/sites/lib/lang/bg_aps.lng @@ -38,14 +38,14 @@ $wb['error_inv_main_location'] = 'The given install location folder is invalid.' $wb['error_license_agreement'] = 'In order to continue you have to accept the license agreement.'; $wb['error_no_database_pw'] = 'You have provided no valid database password.'; $wb['error_short_database_pw'] = 'Please choose a longer database password.'; -$wb['error_no_value_for'] = 'The field \"%s\" must not be empty.'; -$wb['error_short_value_for'] = 'The field \"%s\" requires a longer input value.'; -$wb['error_long_value_for'] = 'The field \"%s\" requires a shorter input value.'; -$wb['error_inv_value_for'] = 'You have entered an invalid value for the field \"%s\".'; -$wb['error_inv_email_for'] = 'You have entered an invalid mail address for the field \"%s\".'; -$wb['error_inv_domain_for'] = 'You have entered an invalid domain for the field \"%s\".'; -$wb['error_inv_integer_for'] = 'You have entered an invalid number for the field \"%s\".'; -$wb['error_inv_float_for'] = 'You have entered an invalid floating point number for the field \"%s\".'; +$wb['error_no_value_for'] = 'The field \\"%s\\" must not be empty.'; +$wb['error_short_value_for'] = 'The field \\"%s\\" requires a longer input value.'; +$wb['error_long_value_for'] = 'The field \\"%s\\" requires a shorter input value.'; +$wb['error_inv_value_for'] = 'You have entered an invalid value for the field \\"%s\\".'; +$wb['error_inv_email_for'] = 'You have entered an invalid mail address for the field \\"%s\\".'; +$wb['error_inv_domain_for'] = 'You have entered an invalid domain for the field \\"%s\\".'; +$wb['error_inv_integer_for'] = 'You have entered an invalid number for the field \\"%s\\".'; +$wb['error_inv_float_for'] = 'You have entered an invalid floating point number for the field \\"%s\\".'; $wb['error_used_location'] = 'The installation path already contains a package installation.'; $wb['installation_task_txt'] = 'Install planned'; $wb['installation_error_txt'] = 'Install error'; diff --git a/interface/web/sites/lib/lang/bg_web_childdomain.lng b/interface/web/sites/lib/lang/bg_web_childdomain.lng index 7106438c3..c7549b76f 100644 --- a/interface/web/sites/lib/lang/bg_web_childdomain.lng +++ b/interface/web/sites/lib/lang/bg_web_childdomain.lng @@ -42,7 +42,7 @@ $wb['no_flag_txt'] = 'No flag'; $wb['domain_error_wildcard'] = 'Wildcard subdomains are not allowed.'; $wb['proxy_directives_txt'] = 'Proxy Directives'; $wb['available_proxy_directive_snippets_txt'] = 'Available Proxy Directive Snippets:'; -$wb['error_proxy_requires_url'] = 'Redirect Type \"proxy\" requires a URL as the redirect path.'; +$wb['error_proxy_requires_url'] = 'Redirect Type \\"proxy\\" requires a URL as the redirect path.'; $wb['backup_interval_txt'] = 'Backup interval'; $wb['backup_copies_txt'] = 'Number of backup copies'; $wb['ssl_key_txt'] = 'SSL Key'; diff --git a/interface/web/sites/lib/lang/bg_web_subdomain.lng b/interface/web/sites/lib/lang/bg_web_subdomain.lng index f4218278d..0df1e5059 100644 --- a/interface/web/sites/lib/lang/bg_web_subdomain.lng +++ b/interface/web/sites/lib/lang/bg_web_subdomain.lng @@ -42,7 +42,7 @@ $wb['no_flag_txt'] = 'No flag'; $wb['domain_error_wildcard'] = 'Wildcard subdomains are not allowed.'; $wb['proxy_directives_txt'] = 'Proxy Directives'; $wb['available_proxy_directive_snippets_txt'] = 'Available Proxy Directive Snippets:'; -$wb['error_proxy_requires_url'] = 'Redirect Type \"proxy\" requires a URL as the redirect path.'; +$wb['error_proxy_requires_url'] = 'Redirect Type \\"proxy\\" requires a URL as the redirect path.'; $wb['http_port_txt'] = 'HTTP Port'; $wb['https_port_txt'] = 'HTTPS Port'; $wb['http_port_error_regex'] = 'HTTP Port invalid.'; diff --git a/interface/web/sites/lib/lang/br.lng b/interface/web/sites/lib/lang/br.lng index 3fdd93585..685ce6ed2 100644 --- a/interface/web/sites/lib/lang/br.lng +++ b/interface/web/sites/lib/lang/br.lng @@ -30,6 +30,6 @@ $wb['Available packages'] = 'Pacotes disponíveis'; $wb['Installed packages'] = 'Pacotes instalados'; $wb['Update Packagelist'] = 'Atualizar lista de pacotes'; $wb['Subdomain (Vhost)'] = 'Subdomínio (vhost)'; -$wb['error_proxy_requires_url'] = 'Tipo de redirecionamento \"proxy\" exige uma url como caminho do redirecionamento.'; +$wb['error_proxy_requires_url'] = 'Tipo de redirecionamento \\"proxy\\" exige uma url como caminho do redirecionamento.'; $wb['Domain'] = 'Domínio'; ?> diff --git a/interface/web/sites/lib/lang/br_cron.lng b/interface/web/sites/lib/lang/br_cron.lng index eab5b9f68..2bbadf6d1 100644 --- a/interface/web/sites/lib/lang/br_cron.lng +++ b/interface/web/sites/lib/lang/br_cron.lng @@ -19,8 +19,8 @@ $wb['run_wday_error_format'] = 'Formato dos dias da semana é inválido.'; $wb['command_error_format'] = 'Formato de comando é inválido. Somente endereços url http/https são permitidos.'; $wb['unknown_fieldtype_error'] = 'Um tipo desconhecido de campo foi usado.'; $wb['server_id_error_empty'] = 'O ID do servidor está em branco.'; -$wb['limit_cron_url_txt'] = 'Somente url do cron. Por favor, insira uma url iniciando com \"http://\" e um comando do cron.'; +$wb['limit_cron_url_txt'] = 'Somente url do cron. Por favor, insira uma url iniciando com \\"http://\\" e um comando do cron.'; $wb['command_error_empty'] = 'Comando está em branco.'; -$wb['command_hint_txt'] = 'Você poderá usar, por exemplo: \"/var/www/clients/clientX/webY/meu_script.sh\" ou \"http://www.dominio.com.br/path/script.php\" e também a palavra reservada \"[web_root]\" substituído por \"/var/www/clients/clientX/webY/web\".'; +$wb['command_hint_txt'] = 'Você poderá usar, por exemplo: \\"/var/www/clients/clientX/webY/meu_script.sh\\" ou \\"http://www.dominio.com.br/path/script.php\\" e também a palavra reservada \\"[web_root]\\" substituído por \\"/var/www/clients/clientX/webY/web\\".'; $wb['log_output_txt'] = 'Saída do Log'; ?> diff --git a/interface/web/sites/lib/lang/br_database.lng b/interface/web/sites/lib/lang/br_database.lng index 57b97693e..ac916feef 100644 --- a/interface/web/sites/lib/lang/br_database.lng +++ b/interface/web/sites/lib/lang/br_database.lng @@ -23,7 +23,7 @@ $wb['database_remote_error_ips'] = 'Pelo menos um dos endereços IP informados n $wb['database_name_error_len'] = 'Nome do banco de dados - {db} - é muito longo. 64 caracteres, incluindo o prefixo, é o limite permitido.'; $wb['database_user_error_len'] = 'Nome do usuário do banco de dados \'{user}\' é muito longo. 16 caracteres, incluindo o prefixo, é o limite permitido.'; $wb['parent_domain_id_txt'] = 'Site'; -$wb['database_site_error_empty'] = 'Selecione o \"site\" ao qual o banco de dados pertence.'; +$wb['database_site_error_empty'] = 'Selecione o \\"site\\" ao qual o banco de dados pertence.'; $wb['select_site_txt'] = '- Selecionar site -'; $wb['btn_save_txt'] = 'Salvar'; $wb['btn_cancel_txt'] = 'Cancelar'; diff --git a/interface/web/sites/lib/lang/br_database_user.lng b/interface/web/sites/lib/lang/br_database_user.lng index 518f0296e..59b9fce62 100644 --- a/interface/web/sites/lib/lang/br_database_user.lng +++ b/interface/web/sites/lib/lang/br_database_user.lng @@ -6,7 +6,7 @@ $wb['client_txt'] = 'Cliente'; $wb['active_txt'] = 'Ativo'; $wb['database_user_error_empty'] = 'Usuário do banco de dados está em branco.'; $wb['database_user_error_unique'] = 'Já existe um usuário do banco de dados com este nome no servidor. Para configurar um nome exclusivo, use como prefixo o domínio para o nome do usuário.'; -$wb['database_user_error_regex'] = 'Usuário do banco de dados inválido! O nome do usuário pode conter os seguintes caracteres: \'\"a-z\', \'A-Z\', \'0-9\' e o \'underscore\'. Tamanho: 2 - 64 caracteres.'; +$wb['database_user_error_regex'] = 'Usuário do banco de dados inválido! O nome do usuário pode conter os seguintes caracteres: \'\\"a-z\', \'A-Z\', \'0-9\' e o \'underscore\'. Tamanho: 2 - 64 caracteres.'; $wb['database_user_error_len'] = 'O usuário do banco de dados - {user} - é muito longo. O limite do nome do usuário, incluindo o prefixo, são 16 caracteres.'; $wb['btn_save_txt'] = 'Salvar'; $wb['btn_cancel_txt'] = 'Cancelar'; diff --git a/interface/web/sites/lib/lang/br_ftp_user.lng b/interface/web/sites/lib/lang/br_ftp_user.lng index bb8d99ceb..3df741ed9 100644 --- a/interface/web/sites/lib/lang/br_ftp_user.lng +++ b/interface/web/sites/lib/lang/br_ftp_user.lng @@ -25,8 +25,8 @@ $wb['directory_error_empty'] = 'Diretório está em branco.'; $wb['directory_error_notinweb'] = 'O diretório não está dentro do diretório web principal.'; $wb['parent_domain_id_error_empty'] = 'Nenhum site selecionado.'; $wb['quota_size_error_regex'] = 'Cota: insira -1 para ilimitado ou um número > 0'; -$wb['dir_dot_error'] = 'Não é permitido \"..\" no caminho.'; -$wb['dir_slashdot_error'] = 'Não é permitido \"./\" no caminho.'; +$wb['dir_dot_error'] = 'Não é permitido \\"..\\" no caminho.'; +$wb['dir_slashdot_error'] = 'Não é permitido \\"./\\" no caminho.'; $wb['generate_password_txt'] = 'Gerar senha'; $wb['repeat_password_txt'] = 'Repetir senha'; $wb['password_mismatch_txt'] = 'A senhas não coincidem.'; diff --git a/interface/web/sites/lib/lang/br_shell_user.lng b/interface/web/sites/lib/lang/br_shell_user.lng index c92bf5baa..3cbc911ab 100644 --- a/interface/web/sites/lib/lang/br_shell_user.lng +++ b/interface/web/sites/lib/lang/br_shell_user.lng @@ -20,8 +20,8 @@ $wb['parent_domain_id_error_empty'] = 'Nenhum site selecionado.'; $wb['puser_txt'] = 'Usuário web'; $wb['pgroup_txt'] = 'Grupo web'; $wb['ssh_rsa_txt'] = 'Chave pública SSH-RSA (para acessos baseados em chave)'; -$wb['dir_dot_error'] = 'Não é permitido \"..\" no caminho.'; -$wb['dir_slashdot_error'] = 'Não é permitido \"./\" no caminho.'; +$wb['dir_dot_error'] = 'Não é permitido \\"..\\" no caminho.'; +$wb['dir_slashdot_error'] = 'Não é permitido \\"./\\" no caminho.'; $wb['generate_password_txt'] = 'Gerar senha'; $wb['repeat_password_txt'] = 'Repetir senha'; $wb['password_mismatch_txt'] = 'A senhas não coincidem.'; diff --git a/interface/web/sites/lib/lang/br_web_aliasdomain.lng b/interface/web/sites/lib/lang/br_web_aliasdomain.lng index 9d4f1951d..4acadb2c5 100644 --- a/interface/web/sites/lib/lang/br_web_aliasdomain.lng +++ b/interface/web/sites/lib/lang/br_web_aliasdomain.lng @@ -14,7 +14,7 @@ $wb['ssl_bundle_txt'] = 'Pacote'; $wb['ssl_action_txt'] = 'Ação'; $wb['ssl_domain_txt'] = 'Domínio'; $wb['server_id_txt'] = 'Servidor'; -$wb['web_folder_error_regex'] = 'Pasta inválida inserida. Por favor, não use barra \"/\".'; +$wb['web_folder_error_regex'] = 'Pasta inválida inserida. Por favor, não use barra \\"/\\".'; $wb['type_txt'] = 'Tipo'; $wb['parent_domain_id_txt'] = 'Site pai'; $wb['redirect_type_txt'] = 'Tipo de redirecionamento'; @@ -62,7 +62,7 @@ $wb['ssl_organisation_error_regex'] = 'Campo \'Empresa\' é inválido. São cara $wb['ssl_organistaion_unit_error_regex'] = 'Campo \'Departamento\' é inválido. São caracteres válidos: \'a-z\', \'0-9\' e \'.,-_\'.'; $wb['ssl_country_error_regex'] = 'Campo \'País\' é inválido. São caracteres válidos: \'A-Z\'.'; $wb['limit_traffic_quota_free_txt'] = 'Cota máxima de tráfego disponível'; -$wb['redirect_error_regex'] = 'Caminho de redirecionamento é inválido. Exemplos de caminhos válidos: \"/teste/\" ou \"http://www.dominio.com.br/teste/\".'; +$wb['redirect_error_regex'] = 'Caminho de redirecionamento é inválido. Exemplos de caminhos válidos: \\"/teste/\\" ou \\"http://www.dominio.com.br/teste/\\".'; $wb['php_open_basedir_txt'] = 'Diretório open_basedir do PHP'; $wb['traffic_quota_exceeded_txt'] = 'Cota de tráfego excedida'; $wb['ruby_txt'] = 'Ruby'; diff --git a/interface/web/sites/lib/lang/br_web_childdomain.lng b/interface/web/sites/lib/lang/br_web_childdomain.lng index 1c53d1658..ecff0c2ae 100644 --- a/interface/web/sites/lib/lang/br_web_childdomain.lng +++ b/interface/web/sites/lib/lang/br_web_childdomain.lng @@ -36,18 +36,18 @@ $wb['domain_error_empty'] = 'Domínio está em branco.'; $wb['domain_error_unique'] = 'Já existe apelido de domínio ou subdomínio com este nome.'; $wb['domain_error_regex'] = 'Nome de domínio é inválido.'; $wb['host_txt'] = 'Nome do servidor'; -$wb['redirect_error_regex'] = 'Caminho de redirecionamento é inválido. Exemplo de caminho válido: \"/teste/\" ou \"http://www.dominio.com.br/teste/\".'; +$wb['redirect_error_regex'] = 'Caminho de redirecionamento é inválido. Exemplo de caminho válido: \\"/teste/\\" ou \\"http://www.dominio.com.br/teste/\\".'; $wb['no_redirect_txt'] = 'Sem redirecionamento'; $wb['no_flag_txt'] = 'Sem marcas'; $wb['domain_error_wildcard'] = 'Curingas para subdomínios não são permitidos.'; $wb['proxy_directives_txt'] = 'Diretivas do proxy'; $wb['available_proxy_directive_snippets_txt'] = 'Diretivas de trechos de código do proxy disponíveis:'; -$wb['error_proxy_requires_url'] = 'O tipo de redirecionamento \"proxy\" exige uma url no caminho de redirecionamento.'; +$wb['error_proxy_requires_url'] = 'O tipo de redirecionamento \\"proxy\\" exige uma url no caminho de redirecionamento.'; $wb['backup_interval_txt'] = 'Intervalo de backup'; $wb['backup_copies_txt'] = 'Limite de cópias do backup'; $wb['ssl_key_txt'] = 'Chave'; $wb['ssl_domain_txt'] = 'Domínio do SSL'; -$wb['web_folder_error_regex'] = 'Pasta inválida informada. Por favor não use uma barra - \"/\".'; +$wb['web_folder_error_regex'] = 'Pasta inválida informada. Por favor não use uma barra - \\"/\\".'; $wb['ipv6_address_txt'] = 'Endereço IPv6'; $wb['errordocs_txt'] = 'Pasta personalizada Error-Documents'; $wb['subdomain_txt'] = 'Subdomínio automático'; diff --git a/interface/web/sites/lib/lang/br_web_domain.lng b/interface/web/sites/lib/lang/br_web_domain.lng index 4b2e77b65..662fdb407 100644 --- a/interface/web/sites/lib/lang/br_web_domain.lng +++ b/interface/web/sites/lib/lang/br_web_domain.lng @@ -52,10 +52,10 @@ $wb['limit_web_quota_free_txt'] = 'Cota máxima de disco disponível'; $wb['ssl_state_error_regex'] = 'Campo \'Estado\' é inválido. São caracteres válidos: \'a-z\', \'0-9\' e \'.,-_\'.'; $wb['ssl_locality_error_regex'] = 'Campo \'Cidade\' é inválido. São caracteres válidos: \'a-z\', \'0-9\' e \'.,-_\'.'; $wb['ssl_organisation_error_regex'] = 'Campo \'Empresa\' é inválido. São caracteres válidos: \'a-z\', \'0-9\' e \'.,-_\'.'; -$wb['ssl_organistaion_unit_error_regex'] = 'Campo \'Departamento\' é inválido. São caracteres válidos: \"a-z\", \'0-9\' e \'.,-_\'.'; +$wb['ssl_organistaion_unit_error_regex'] = 'Campo \'Departamento\' é inválido. São caracteres válidos: \\"a-z\\", \'0-9\' e \'.,-_\'.'; $wb['ssl_country_error_regex'] = 'Campo \'País\' é inválido. São caracteres válidos: \'A-Z\'.'; $wb['limit_traffic_quota_free_txt'] = 'Cota máxima de tráfego disponível'; -$wb['redirect_error_regex'] = 'Caminho de redirecionamento é inválido. Exemplos de caminhos válidos: \"/teste/\" ou \"http://www.dominio.com.br/teste/\".'; +$wb['redirect_error_regex'] = 'Caminho de redirecionamento é inválido. Exemplos de caminhos válidos: \\"/teste/\\" ou \\"http://www.dominio.com.br/teste/\\".'; $wb['php_open_basedir_txt'] = 'Diretório open_basedir do php'; $wb['traffic_quota_exceeded_txt'] = 'Cota de tráfego excedida'; $wb['backup_interval_txt'] = 'Intervalo de backup'; @@ -104,7 +104,7 @@ $wb['generate_password_txt'] = 'Gerar senha'; $wb['repeat_password_txt'] = 'Repetir senha'; $wb['password_mismatch_txt'] = 'A senhas não coincidem.'; $wb['password_match_txt'] = 'A senhas coincidem.'; -$wb['web_folder_error_regex'] = 'Pasta informada é inválida! Por favor não insira barra \"/\".'; +$wb['web_folder_error_regex'] = 'Pasta informada é inválida! Por favor não insira barra \\"/\\".'; $wb['domain_error_autosub'] = 'Já existe um subdomínio com estas configurações.'; $wb['available_php_directive_snippets_txt'] = 'Diretivas de trechos de código do php:'; $wb['available_apache_directive_snippets_txt'] = 'Diretivas de trechos de código do apache:'; diff --git a/interface/web/sites/lib/lang/br_web_subdomain.lng b/interface/web/sites/lib/lang/br_web_subdomain.lng index 8abb05043..0ccc57480 100644 --- a/interface/web/sites/lib/lang/br_web_subdomain.lng +++ b/interface/web/sites/lib/lang/br_web_subdomain.lng @@ -36,7 +36,7 @@ $wb['domain_error_empty'] = 'Domínio está em branco.'; $wb['domain_error_unique'] = 'Já existe apelido de domínio ou subdomínio com este nome.'; $wb['domain_error_regex'] = 'Nome do domínio é inválido.'; $wb['host_txt'] = 'Host'; -$wb['redirect_error_regex'] = 'Caminho de redirecionamento é inválido. Exemplo de caminho válido: \"/teste/\" ou \"http://www.dominio.com.br/teste/\".'; +$wb['redirect_error_regex'] = 'Caminho de redirecionamento é inválido. Exemplo de caminho válido: \\"/teste/\\" ou \\"http://www.dominio.com.br/teste/\\".'; $wb['no_redirect_txt'] = 'Sem redirecionamento'; $wb['no_flag_txt'] = 'Sem marcas'; $wb['domain_error_wildcard'] = 'Curingas de subdomínios não são permitidos.'; diff --git a/interface/web/sites/lib/lang/br_web_vhost_domain.lng b/interface/web/sites/lib/lang/br_web_vhost_domain.lng index d30db9f18..4c72b1fd8 100644 --- a/interface/web/sites/lib/lang/br_web_vhost_domain.lng +++ b/interface/web/sites/lib/lang/br_web_vhost_domain.lng @@ -56,7 +56,7 @@ $wb['ssl_organisation_error_regex'] = 'Campo \'Empresa\' é inválido. São cara $wb['ssl_organistaion_unit_error_regex'] = 'Campo \'Departamento\' é inválido. São caracteres válidos: \'a-z\', \'0-9\' e \'.,-_\'.'; $wb['ssl_country_error_regex'] = 'Campo \'País\' é inválido. São caracteres válidos: \'A-Z\'.'; $wb['limit_traffic_quota_free_txt'] = 'Limite da cota de tráfego'; -$wb['redirect_error_regex'] = 'Caminho de redirecionamento é inválido. Exemplos de caminhos válidos: \"/teste\" ou \"http://www.dominio.com.br/teste/\".'; +$wb['redirect_error_regex'] = 'Caminho de redirecionamento é inválido. Exemplos de caminhos válidos: \\"/teste\\" ou \\"http://www.dominio.com.br/teste/\\".'; $wb['php_open_basedir_txt'] = 'Diretório open_basedir do php'; $wb['traffic_quota_exceeded_txt'] = 'Cota de tráfego excedida'; $wb['backup_interval_txt'] = 'Intervalo de backup'; @@ -106,7 +106,7 @@ $wb['generate_password_txt'] = 'Gerar senha'; $wb['repeat_password_txt'] = 'Repetir senha'; $wb['password_mismatch_txt'] = 'A senhas não coincidem.'; $wb['password_match_txt'] = 'A senhas coincidem.'; -$wb['web_folder_error_regex'] = 'Pasta inválida informada. Por favor não insira barra - \"\".'; +$wb['web_folder_error_regex'] = 'Pasta inválida informada. Por favor não insira barra - \\"\\".'; $wb['domain_error_autosub'] = 'Já existe um subdomínio com essas configurações.'; $wb['available_php_directive_snippets_txt'] = 'Diretivas de trechos de código do php disponíveis:'; $wb['available_apache_directive_snippets_txt'] = 'Diretivas de trechos de código do apache disponíveis:'; diff --git a/interface/web/sites/lib/lang/br_web_vhost_subdomain.lng b/interface/web/sites/lib/lang/br_web_vhost_subdomain.lng index 8a0c3e6a1..fa6ddad48 100644 --- a/interface/web/sites/lib/lang/br_web_vhost_subdomain.lng +++ b/interface/web/sites/lib/lang/br_web_vhost_subdomain.lng @@ -19,7 +19,7 @@ $wb['ssl_domain_txt'] = 'Domínio'; $wb['server_id_txt'] = 'Servidor'; $wb['domain_txt'] = 'Domínio'; $wb['host_txt'] = 'Hostname'; -$wb['web_folder_error_regex'] = 'Pasta informada é inválida. Por favor, não insira barra - \"/\".'; +$wb['web_folder_error_regex'] = 'Pasta informada é inválida. Por favor, não insira barra - \\"/\\".'; $wb['type_txt'] = 'Tipo'; $wb['redirect_type_txt'] = 'Tipo de redirecionamento'; $wb['redirect_path_txt'] = 'Caminho para redirecionamento'; @@ -60,13 +60,13 @@ $wb['client_group_id_txt'] = 'Cliente'; $wb['stats_password_txt'] = 'Senha para estatísticas web'; $wb['allow_override_txt'] = 'Diretiva Apache AllowOverride'; $wb['limit_web_quota_free_txt'] = 'Cota de disco'; -$wb['ssl_state_error_regex'] = 'Campo \'Estado\' é inválido. Caracteres válidos são: \'0-9\' e \".,-_\".'; +$wb['ssl_state_error_regex'] = 'Campo \'Estado\' é inválido. Caracteres válidos são: \'0-9\' e \\".,-_\\".'; $wb['ssl_locality_error_regex'] = 'Campo \'Cidade\' é inválido. Caracteres válidos são: \'a-z\', \'0-9\' e \'.,-_\'.'; $wb['ssl_organisation_error_regex'] = 'Campo \'Empresa\' é inválido. Caracteres válidos são: \'a-z\', \'0-9\' e \'.,-_\'.'; $wb['ssl_organistaion_unit_error_regex'] = 'Campo \'Departamento\' é inválido. Caracteres válidos são: \'a-z\', \'0-9\' e \'.,-_\'.'; $wb['ssl_country_error_regex'] = 'Campo \'País\' é inválido. Caracteres válidos são: \'A-Z\'.'; $wb['limit_traffic_quota_free_txt'] = 'Cota de tráfego'; -$wb['redirect_error_regex'] = 'Caminho de redirecionamento é inválido. Exemplo de caminho válido: \"/teste/\" ou \"http://www.dominio.com.br/teste/\".'; +$wb['redirect_error_regex'] = 'Caminho de redirecionamento é inválido. Exemplo de caminho válido: \\"/teste/\\" ou \\"http://www.dominio.com.br/teste/\\".'; $wb['php_open_basedir_txt'] = 'Diretório open_basedir do PHP'; $wb['traffic_quota_exceeded_txt'] = 'Cota de tráfego excedida'; $wb['ruby_txt'] = 'Ruby'; @@ -121,9 +121,9 @@ $wb['allowed_rewrite_rule_directives_txt'] = 'Diretivas Permitidas:'; $wb['configuration_error_txt'] = 'ERRO DE CONFIGURAÇÃO'; $wb['variables_txt'] = 'Variáveis'; $wb['backup_excludes_txt'] = 'Diretórios Excluídos'; -$wb['backup_excludes_note_txt'] = '(Separar múltiplos diretórios por vírgulas. Exemplo: \"web/cache/*,web/backup\".)'; +$wb['backup_excludes_note_txt'] = '(Separar múltiplos diretórios por vírgulas. Exemplo: \\"web/cache/*,web/backup\\".)'; $wb['backup_excludes_error_regex'] = 'Os diretórios excluídos contém caracteres inválidos.'; -$wb['subdomain_error_empty'] = 'O campo \"Subdomínio\" está em branco ou contém caracteres inválidos.'; +$wb['subdomain_error_empty'] = 'O campo \\"Subdomínio\\" está em branco ou contém caracteres inválidos.'; $wb['http_port_txt'] = 'Porta HTTP'; $wb['https_port_txt'] = 'Porta HTTPS'; $wb['http_port_error_regex'] = 'Porta HTTP inválida.'; diff --git a/interface/web/sites/lib/lang/br_webdav_user.lng b/interface/web/sites/lib/lang/br_webdav_user.lng index b135d5e0f..4347f8ae3 100644 --- a/interface/web/sites/lib/lang/br_webdav_user.lng +++ b/interface/web/sites/lib/lang/br_webdav_user.lng @@ -12,8 +12,8 @@ $wb['username_error_unique'] = 'O nome do usuário deve ser exclusivo.'; $wb['username_error_regex'] = 'O nome do usuário contém caracteres não permitidos.'; $wb['directory_error_empty'] = 'Diretório está em branco.'; $wb['parent_domain_id_error_empty'] = 'Nenhum site selecionado.'; -$wb['dir_dot_error'] = 'Não é permitido \"..\" no caminho.'; -$wb['dir_slashdot_error'] = 'Não é permitido \"./\" no caminho.'; +$wb['dir_dot_error'] = 'Não é permitido \\"..\\" no caminho.'; +$wb['dir_slashdot_error'] = 'Não é permitido \\"./\\" no caminho.'; $wb['generate_password_txt'] = 'Gerar senha'; $wb['repeat_password_txt'] = 'Repetir senha'; $wb['password_mismatch_txt'] = 'A senhas não coincidem.'; diff --git a/interface/web/sites/lib/lang/ca.lng b/interface/web/sites/lib/lang/ca.lng index c914ef002..9acee9d06 100644 --- a/interface/web/sites/lib/lang/ca.lng +++ b/interface/web/sites/lib/lang/ca.lng @@ -31,5 +31,5 @@ $wb['Available packages'] = 'Packages disponibles'; $wb['Installed packages'] = 'Packages installés'; $wb['Update Packagelist'] = 'Mise à jour de la liste des packages'; $wb['Subdomain (Vhost)'] = 'Sous-domaine (Vhost)'; -$wb['error_proxy_requires_url'] = 'Type de redirection \"proxy\" nécessite une URL comme chemin de redirection.'; +$wb['error_proxy_requires_url'] = 'Type de redirection \\"proxy\\" nécessite une URL comme chemin de redirection.'; ?> diff --git a/interface/web/sites/lib/lang/ca_aps.lng b/interface/web/sites/lib/lang/ca_aps.lng index 7233c1f0d..062d6ea58 100644 --- a/interface/web/sites/lib/lang/ca_aps.lng +++ b/interface/web/sites/lib/lang/ca_aps.lng @@ -38,14 +38,14 @@ $wb['error_inv_main_location'] = 'Le dossier d\'installation choisi est invalide $wb['error_license_agreement'] = 'Avant de continuer, vous devez accepter les conditions d\'utilisation (licence).'; $wb['error_no_database_pw'] = 'Vous n\'avez pas renseigné de mot de passe BDD valide.'; $wb['error_short_database_pw'] = 'Veuillez saisir un mot de passe BDD plus long.'; -$wb['error_no_value_for'] = 'Le champ \"%s\" ne peut pas être vide.'; -$wb['error_short_value_for'] = 'Le champ \"%s\" nécessite une valeur plus longue.'; -$wb['error_long_value_for'] = 'Le champ \"%s\" nécessite une valeur plus courte.'; -$wb['error_inv_value_for'] = 'Vous avez saisi une valeur invalide pour le champ \"%s\".'; -$wb['error_inv_email_for'] = 'L\'adresse courriel saisie pour le champ \"%s\" est invalide.'; -$wb['error_inv_domain_for'] = 'Le domaine saisi pour le champ \"%s\" est invalide.'; -$wb['error_inv_integer_for'] = 'Le nombre saisi pour le champ \"%s\" est invalide.'; -$wb['error_inv_float_for'] = 'La décimale saisie pour le champ \"%s\" est invalide.'; +$wb['error_no_value_for'] = 'Le champ \\"%s\\" ne peut pas être vide.'; +$wb['error_short_value_for'] = 'Le champ \\"%s\\" nécessite une valeur plus longue.'; +$wb['error_long_value_for'] = 'Le champ \\"%s\\" nécessite une valeur plus courte.'; +$wb['error_inv_value_for'] = 'Vous avez saisi une valeur invalide pour le champ \\"%s\\".'; +$wb['error_inv_email_for'] = 'L\'adresse courriel saisie pour le champ \\"%s\\" est invalide.'; +$wb['error_inv_domain_for'] = 'Le domaine saisi pour le champ \\"%s\\" est invalide.'; +$wb['error_inv_integer_for'] = 'Le nombre saisi pour le champ \\"%s\\" est invalide.'; +$wb['error_inv_float_for'] = 'La décimale saisie pour le champ \\"%s\\" est invalide.'; $wb['error_used_location'] = 'Le chemin de destination contient déjà un package d\'installation.'; $wb['installation_task_txt'] = 'Installation prévue'; $wb['installation_error_txt'] = 'Erreur d\'installation'; diff --git a/interface/web/sites/lib/lang/ca_web_childdomain.lng b/interface/web/sites/lib/lang/ca_web_childdomain.lng index 1d838990e..762acfe24 100644 --- a/interface/web/sites/lib/lang/ca_web_childdomain.lng +++ b/interface/web/sites/lib/lang/ca_web_childdomain.lng @@ -43,7 +43,7 @@ $wb['no_redirect_txt'] = 'No redirect'; $wb['no_flag_txt'] = 'No flag'; $wb['proxy_directives_txt'] = 'Proxy Directives'; $wb['available_proxy_directive_snippets_txt'] = 'Available Proxy Directive Snippets:'; -$wb['error_proxy_requires_url'] = 'Redirect Type \"proxy\" requires a URL as the redirect path.'; +$wb['error_proxy_requires_url'] = 'Redirect Type \\"proxy\\" requires a URL as the redirect path.'; $wb['backup_interval_txt'] = 'Backup interval'; $wb['backup_copies_txt'] = 'Number of backup copies'; $wb['ssl_key_txt'] = 'SSL Key'; diff --git a/interface/web/sites/lib/lang/ca_web_subdomain.lng b/interface/web/sites/lib/lang/ca_web_subdomain.lng index ec5980a91..13fd0d66e 100644 --- a/interface/web/sites/lib/lang/ca_web_subdomain.lng +++ b/interface/web/sites/lib/lang/ca_web_subdomain.lng @@ -42,7 +42,7 @@ $wb['no_flag_txt'] = 'Aucun flag'; $wb['domain_error_wildcard'] = 'Les sous-domaines joker ne sont pas autorisés.'; $wb['proxy_directives_txt'] = 'Directives pour les Proxy'; $wb['available_proxy_directive_snippets_txt'] = 'Directives pour les Proxy Snippets disponibles :'; -$wb['error_proxy_requires_url'] = 'Les redirections de type \"proxy\" nécessitent une URL comme chemin de redirection.'; +$wb['error_proxy_requires_url'] = 'Les redirections de type \\"proxy\\" nécessitent une URL comme chemin de redirection.'; $wb['http_port_txt'] = 'HTTP Port'; $wb['https_port_txt'] = 'HTTPS Port'; $wb['http_port_error_regex'] = 'HTTP Port invalid.'; diff --git a/interface/web/sites/lib/lang/cz.lng b/interface/web/sites/lib/lang/cz.lng index 2e4276c81..4c16438e3 100644 --- a/interface/web/sites/lib/lang/cz.lng +++ b/interface/web/sites/lib/lang/cz.lng @@ -31,5 +31,5 @@ $wb['Available packages'] = 'Dostupné balíčky'; $wb['Installed packages'] = 'Nainstalované balíčky'; $wb['Update Packagelist'] = 'Aktualizace seznamu balíčků'; $wb['Subdomain (Vhost)'] = 'Subdoména (Vhost)'; -$wb['error_proxy_requires_url'] = 'Redirect Type \"proxy\" requires a URL as the redirect path.'; +$wb['error_proxy_requires_url'] = 'Redirect Type \\"proxy\\" requires a URL as the redirect path.'; ?> diff --git a/interface/web/sites/lib/lang/cz_aps.lng b/interface/web/sites/lib/lang/cz_aps.lng index bb8015951..adf6ccf58 100644 --- a/interface/web/sites/lib/lang/cz_aps.lng +++ b/interface/web/sites/lib/lang/cz_aps.lng @@ -38,14 +38,14 @@ $wb['error_inv_main_location'] = 'The given install location folder is invalid.' $wb['error_license_agreement'] = 'In order to continue you have to accept the license agreement.'; $wb['error_no_database_pw'] = 'You have provided no valid database password.'; $wb['error_short_database_pw'] = 'Please choose a longer database password.'; -$wb['error_no_value_for'] = 'The field \"%s\" must not be empty.'; -$wb['error_short_value_for'] = 'The field \"%s\" requires a longer input value.'; -$wb['error_long_value_for'] = 'The field \"%s\" requires a shorter input value.'; -$wb['error_inv_value_for'] = 'You have entered an invalid value for the field \"%s\".'; -$wb['error_inv_email_for'] = 'You have entered an invalid mail address for the field \"%s\".'; -$wb['error_inv_domain_for'] = 'You have entered an invalid domain for the field \"%s\".'; -$wb['error_inv_integer_for'] = 'You have entered an invalid number for the field \"%s\".'; -$wb['error_inv_float_for'] = 'You have entered an invalid floating point number for the field \"%s\".'; +$wb['error_no_value_for'] = 'The field \\"%s\\" must not be empty.'; +$wb['error_short_value_for'] = 'The field \\"%s\\" requires a longer input value.'; +$wb['error_long_value_for'] = 'The field \\"%s\\" requires a shorter input value.'; +$wb['error_inv_value_for'] = 'You have entered an invalid value for the field \\"%s\\".'; +$wb['error_inv_email_for'] = 'You have entered an invalid mail address for the field \\"%s\\".'; +$wb['error_inv_domain_for'] = 'You have entered an invalid domain for the field \\"%s\\".'; +$wb['error_inv_integer_for'] = 'You have entered an invalid number for the field \\"%s\\".'; +$wb['error_inv_float_for'] = 'You have entered an invalid floating point number for the field \\"%s\\".'; $wb['error_used_location'] = 'The installation path already contains a package installation.'; $wb['installation_task_txt'] = 'Instalace plánované'; $wb['installation_error_txt'] = 'Chyba instalace'; diff --git a/interface/web/sites/lib/lang/cz_web_childdomain.lng b/interface/web/sites/lib/lang/cz_web_childdomain.lng index 5a5091c89..b159976b2 100644 --- a/interface/web/sites/lib/lang/cz_web_childdomain.lng +++ b/interface/web/sites/lib/lang/cz_web_childdomain.lng @@ -49,7 +49,7 @@ $wb['no_flag_txt'] = 'Žádný příznak'; $wb['domain_error_wildcard'] = 'Wildcard subdomains are not allowed.'; $wb['proxy_directives_txt'] = 'Proxy Directives'; $wb['available_proxy_directive_snippets_txt'] = 'Available Proxy Directive Snippets:'; -$wb['error_proxy_requires_url'] = 'Redirect Type \"proxy\" requires a URL as the redirect path.'; +$wb['error_proxy_requires_url'] = 'Redirect Type \\"proxy\\" requires a URL as the redirect path.'; $wb['ipv6_address_txt'] = 'IPv6 adresa'; $wb['domain_error_autosub'] = 'There is already a subdomain with these settings.'; $wb['hd_quota_error_empty'] = 'Harddisk quota is 0 or empty.'; diff --git a/interface/web/sites/lib/lang/cz_web_subdomain.lng b/interface/web/sites/lib/lang/cz_web_subdomain.lng index 986f76acc..cd301db14 100644 --- a/interface/web/sites/lib/lang/cz_web_subdomain.lng +++ b/interface/web/sites/lib/lang/cz_web_subdomain.lng @@ -42,7 +42,7 @@ $wb['no_flag_txt'] = 'Žádný příznak'; $wb['domain_error_wildcard'] = 'Wildcard subdomains are not allowed.'; $wb['proxy_directives_txt'] = 'Proxy Directives'; $wb['available_proxy_directive_snippets_txt'] = 'Available Proxy Directive Snippets:'; -$wb['error_proxy_requires_url'] = 'Redirect Type \"proxy\" requires a URL as the redirect path.'; +$wb['error_proxy_requires_url'] = 'Redirect Type \\"proxy\\" requires a URL as the redirect path.'; $wb['http_port_txt'] = 'HTTP Port'; $wb['https_port_txt'] = 'HTTPS Port'; $wb['http_port_error_regex'] = 'HTTP Port invalid.'; diff --git a/interface/web/sites/lib/lang/de_web_childdomain.lng b/interface/web/sites/lib/lang/de_web_childdomain.lng index 561e8de96..05b1f1d51 100644 --- a/interface/web/sites/lib/lang/de_web_childdomain.lng +++ b/interface/web/sites/lib/lang/de_web_childdomain.lng @@ -42,7 +42,7 @@ $wb['no_redirect_txt'] = 'Kein Redirect'; $wb['no_flag_txt'] = 'Kein Flag'; $wb['proxy_directives_txt'] = 'Proxy-Direktiven'; $wb['available_proxy_directive_snippets_txt'] = 'Verfügbare Proxy Direktiven Schnipsel:'; -$wb['error_proxy_requires_url'] = 'Weiterleitungstyp \"proxy\" erfordert eine URL als Weiterleitungspfad.'; +$wb['error_proxy_requires_url'] = 'Weiterleitungstyp \\"proxy\\" erfordert eine URL als Weiterleitungspfad.'; $wb['backup_interval_txt'] = 'Backup-Intervall'; $wb['backup_copies_txt'] = 'Anzahl der Backups'; $wb['ssl_key_txt'] = 'SSL-Schlüssel'; diff --git a/interface/web/sites/lib/lang/de_web_subdomain.lng b/interface/web/sites/lib/lang/de_web_subdomain.lng index a88918b09..586c90adc 100644 --- a/interface/web/sites/lib/lang/de_web_subdomain.lng +++ b/interface/web/sites/lib/lang/de_web_subdomain.lng @@ -42,7 +42,7 @@ $wb['no_redirect_txt'] = 'Kein Redirect'; $wb['no_flag_txt'] = 'Kein Flag'; $wb['proxy_directives_txt'] = 'Proxy-Direktiven'; $wb['available_proxy_directive_snippets_txt'] = 'Verfügbare Proxy Direktiven Schnipsel:'; -$wb['error_proxy_requires_url'] = 'Weiterleitungstyp \"proxy\" erfordert eine URL als Weiterleitungspfad.'; +$wb['error_proxy_requires_url'] = 'Weiterleitungstyp \\"proxy\\" erfordert eine URL als Weiterleitungspfad.'; $wb['http_port_txt'] = 'HTTP Port'; $wb['https_port_txt'] = 'HTTPS Port'; $wb['http_port_error_regex'] = 'HTTP Port invalid.'; diff --git a/interface/web/sites/lib/lang/dk.lng b/interface/web/sites/lib/lang/dk.lng index a99760a66..39974fef5 100644 --- a/interface/web/sites/lib/lang/dk.lng +++ b/interface/web/sites/lib/lang/dk.lng @@ -31,5 +31,5 @@ $wb['Available packages'] = 'Tilgængelig pakker'; $wb['Installed packages'] = 'Installeret pakker'; $wb['Update Packagelist'] = 'Opdater Pakkeliste'; $wb['Subdomain (Vhost)'] = 'Sub-domæne (Vhost)'; -$wb['error_proxy_requires_url'] = 'Omdiriger Type \"proxy\" requires a URL as the redirect path.'; +$wb['error_proxy_requires_url'] = 'Omdiriger Type \\"proxy\\" requires a URL as the redirect path.'; ?> diff --git a/interface/web/sites/lib/lang/dk_aps.lng b/interface/web/sites/lib/lang/dk_aps.lng index c3f2983cf..ca006e2eb 100644 --- a/interface/web/sites/lib/lang/dk_aps.lng +++ b/interface/web/sites/lib/lang/dk_aps.lng @@ -40,14 +40,14 @@ $wb['error_inv_main_location'] = 'Den oplyste installations mappe er ugyldig.'; $wb['error_license_agreement'] = 'For at fortsætte skal du acceptere licensaftalen.'; $wb['error_no_database_pw'] = 'Du har ikke oplyst en database adgangskode.'; $wb['error_short_database_pw'] = 'Vælg en længer database adgangskode.'; -$wb['error_no_value_for'] = 'Feltet \"%s\" må ikke være tomt.'; -$wb['error_short_value_for'] = 'Feltet \"%s\" kræver en længere indtastnings værdi.'; -$wb['error_long_value_for'] = 'Feltet \"%s\" kræver en kortere indtastnings værdi.'; -$wb['error_inv_value_for'] = 'Du har indtastet en ugyldig værdi for feltet \"%s\".'; -$wb['error_inv_email_for'] = 'Du har indtastet en ugyldig mail adresse for feltet \"%s\".'; -$wb['error_inv_domain_for'] = 'Du har indtastet et ugyldigt domæne for feltet \"%s\".'; -$wb['error_inv_integer_for'] = 'Du har indtastet et ugyldigt tal for feltet \"%s\".'; -$wb['error_inv_float_for'] = 'Du har indtastet et ugyldigt floating point tal for feltet \"%s\".'; +$wb['error_no_value_for'] = 'Feltet \\"%s\\" må ikke være tomt.'; +$wb['error_short_value_for'] = 'Feltet \\"%s\\" kræver en længere indtastnings værdi.'; +$wb['error_long_value_for'] = 'Feltet \\"%s\\" kræver en kortere indtastnings værdi.'; +$wb['error_inv_value_for'] = 'Du har indtastet en ugyldig værdi for feltet \\"%s\\".'; +$wb['error_inv_email_for'] = 'Du har indtastet en ugyldig mail adresse for feltet \\"%s\\".'; +$wb['error_inv_domain_for'] = 'Du har indtastet et ugyldigt domæne for feltet \\"%s\\".'; +$wb['error_inv_integer_for'] = 'Du har indtastet et ugyldigt tal for feltet \\"%s\\".'; +$wb['error_inv_float_for'] = 'Du har indtastet et ugyldigt floating point tal for feltet \\"%s\\".'; $wb['error_used_location'] = 'Installations stien indeholder allerede en pakke installation.'; $wb['installation_task_txt'] = 'Installation planlagt'; $wb['installation_error_txt'] = 'Installations fejl'; diff --git a/interface/web/sites/lib/lang/dk_web_childdomain.lng b/interface/web/sites/lib/lang/dk_web_childdomain.lng index 1d838990e..762acfe24 100644 --- a/interface/web/sites/lib/lang/dk_web_childdomain.lng +++ b/interface/web/sites/lib/lang/dk_web_childdomain.lng @@ -43,7 +43,7 @@ $wb['no_redirect_txt'] = 'No redirect'; $wb['no_flag_txt'] = 'No flag'; $wb['proxy_directives_txt'] = 'Proxy Directives'; $wb['available_proxy_directive_snippets_txt'] = 'Available Proxy Directive Snippets:'; -$wb['error_proxy_requires_url'] = 'Redirect Type \"proxy\" requires a URL as the redirect path.'; +$wb['error_proxy_requires_url'] = 'Redirect Type \\"proxy\\" requires a URL as the redirect path.'; $wb['backup_interval_txt'] = 'Backup interval'; $wb['backup_copies_txt'] = 'Number of backup copies'; $wb['ssl_key_txt'] = 'SSL Key'; diff --git a/interface/web/sites/lib/lang/dk_web_subdomain.lng b/interface/web/sites/lib/lang/dk_web_subdomain.lng index 4fffd5936..c14a34726 100644 --- a/interface/web/sites/lib/lang/dk_web_subdomain.lng +++ b/interface/web/sites/lib/lang/dk_web_subdomain.lng @@ -42,7 +42,7 @@ $wb['no_redirect_txt'] = 'Ingen redirect'; $wb['no_flag_txt'] = 'Ingen flag'; $wb['proxy_directives_txt'] = 'Proxy Directives'; $wb['available_proxy_directive_snippets_txt'] = 'Tilgængelig Proxy Direktiv Kodestykker:'; -$wb['error_proxy_requires_url'] = 'Omdiriger Type \"proxy\" requires a URL as the redirect path.'; +$wb['error_proxy_requires_url'] = 'Omdiriger Type \\"proxy\\" requires a URL as the redirect path.'; $wb['http_port_txt'] = 'HTTP Port'; $wb['https_port_txt'] = 'HTTPS Port'; $wb['http_port_error_regex'] = 'HTTP Port invalid.'; diff --git a/interface/web/sites/lib/lang/el.lng b/interface/web/sites/lib/lang/el.lng index 19bfc2734..2d726140f 100644 --- a/interface/web/sites/lib/lang/el.lng +++ b/interface/web/sites/lib/lang/el.lng @@ -31,5 +31,5 @@ $wb['Available packages'] = 'Available packages'; $wb['Installed packages'] = 'Installed packages'; $wb['Update Packagelist'] = 'Update Packagelist'; $wb['Subdomain (Vhost)'] = 'Subdomain (Vhost)'; -$wb['error_proxy_requires_url'] = 'Redirect Type \"proxy\" requires a URL as the redirect path.'; +$wb['error_proxy_requires_url'] = 'Redirect Type \\"proxy\\" requires a URL as the redirect path.'; ?> diff --git a/interface/web/sites/lib/lang/el_aps.lng b/interface/web/sites/lib/lang/el_aps.lng index 73cb49f10..0209737f6 100644 --- a/interface/web/sites/lib/lang/el_aps.lng +++ b/interface/web/sites/lib/lang/el_aps.lng @@ -38,14 +38,14 @@ $wb['error_inv_main_location'] = 'The given install location folder is invalid.' $wb['error_license_agreement'] = 'In order to continue you have to accept the license agreement.'; $wb['error_no_database_pw'] = 'You have provided no valid database password.'; $wb['error_short_database_pw'] = 'Please choose a longer database password.'; -$wb['error_no_value_for'] = 'The field \"%s\" must not be empty.'; -$wb['error_short_value_for'] = 'The field \"%s\" requires a longer input value.'; -$wb['error_long_value_for'] = 'The field \"%s\" requires a shorter input value.'; -$wb['error_inv_value_for'] = 'You have entered an invalid value for the field \"%s\".'; -$wb['error_inv_email_for'] = 'You have entered an invalid mail address for the field \"%s\".'; -$wb['error_inv_domain_for'] = 'You have entered an invalid domain for the field \"%s\".'; -$wb['error_inv_integer_for'] = 'You have entered an invalid number for the field \"%s\".'; -$wb['error_inv_float_for'] = 'You have entered an invalid floating point number for the field \"%s\".'; +$wb['error_no_value_for'] = 'The field \\"%s\\" must not be empty.'; +$wb['error_short_value_for'] = 'The field \\"%s\\" requires a longer input value.'; +$wb['error_long_value_for'] = 'The field \\"%s\\" requires a shorter input value.'; +$wb['error_inv_value_for'] = 'You have entered an invalid value for the field \\"%s\\".'; +$wb['error_inv_email_for'] = 'You have entered an invalid mail address for the field \\"%s\\".'; +$wb['error_inv_domain_for'] = 'You have entered an invalid domain for the field \\"%s\\".'; +$wb['error_inv_integer_for'] = 'You have entered an invalid number for the field \\"%s\\".'; +$wb['error_inv_float_for'] = 'You have entered an invalid floating point number for the field \\"%s\\".'; $wb['error_used_location'] = 'The installation path already contains a package installation.'; $wb['installation_task_txt'] = 'Install planned'; $wb['installation_error_txt'] = 'Install error'; diff --git a/interface/web/sites/lib/lang/el_web_childdomain.lng b/interface/web/sites/lib/lang/el_web_childdomain.lng index a1cead28e..3c5cb7a93 100644 --- a/interface/web/sites/lib/lang/el_web_childdomain.lng +++ b/interface/web/sites/lib/lang/el_web_childdomain.lng @@ -45,7 +45,7 @@ $wb['no_flag_txt'] = 'Χωρίς Σημαία'; $wb['domain_error_wildcard'] = 'Wildcard subdomains δεν επιτρέπονται.'; $wb['proxy_directives_txt'] = 'Proxy Directives'; $wb['available_proxy_directive_snippets_txt'] = 'Διαθέσιμα Proxy Directive Snippets:'; -$wb['error_proxy_requires_url'] = 'Ο τύπος ανακατεύθυνσης \"proxy\" απαιτεί ένα URL ως μονοπάτι ανακατεύθυνσης.'; +$wb['error_proxy_requires_url'] = 'Ο τύπος ανακατεύθυνσης \\"proxy\\" απαιτεί ένα URL ως μονοπάτι ανακατεύθυνσης.'; $wb['ssl_domain_txt'] = 'SSL Domain'; $wb['web_folder_error_regex'] = 'Εισάγατε μη έγκυρο φάκελο. Μην εισάγετε την κάθετο.'; $wb['ipv6_address_txt'] = 'Διεύθυνση IPv6'; diff --git a/interface/web/sites/lib/lang/el_web_subdomain.lng b/interface/web/sites/lib/lang/el_web_subdomain.lng index b3f8e1312..606137bc8 100644 --- a/interface/web/sites/lib/lang/el_web_subdomain.lng +++ b/interface/web/sites/lib/lang/el_web_subdomain.lng @@ -42,7 +42,7 @@ $wb['no_flag_txt'] = 'Χωρίς Σημαία'; $wb['domain_error_wildcard'] = 'Wildcard subdomains are not allowed.'; $wb['proxy_directives_txt'] = 'Proxy Directives'; $wb['available_proxy_directive_snippets_txt'] = 'Available Proxy Directive Snippets:'; -$wb['error_proxy_requires_url'] = 'Redirect Type \"proxy\" requires a URL as the redirect path.'; +$wb['error_proxy_requires_url'] = 'Redirect Type \\"proxy\\" requires a URL as the redirect path.'; $wb['http_port_txt'] = 'HTTP Port'; $wb['https_port_txt'] = 'HTTPS Port'; $wb['http_port_error_regex'] = 'HTTP Port invalid.'; diff --git a/interface/web/sites/lib/lang/es.lng b/interface/web/sites/lib/lang/es.lng index 78cfa3a60..7d128081f 100755 --- a/interface/web/sites/lib/lang/es.lng +++ b/interface/web/sites/lib/lang/es.lng @@ -8,7 +8,7 @@ $wb['Cron'] = 'Trabajos programados'; $wb['Database User'] = 'Usuarios de bases de datos'; $wb['Database'] = 'Bases de datos'; $wb['Domain'] = 'Dominio'; -$wb['error_proxy_requires_url'] = 'La redirección del tipo \"proxy\" requiere de una URL como ruta de redirección.'; +$wb['error_proxy_requires_url'] = 'La redirección del tipo \\"proxy\\" requiere de una URL como ruta de redirección.'; $wb['Folder users'] = 'Usuarios de carpetas protegidas'; $wb['Folder'] = 'Carpetas protegidas'; $wb['FTP'] = 'FTP'; diff --git a/interface/web/sites/lib/lang/es_aps.lng b/interface/web/sites/lib/lang/es_aps.lng index afecc225f..3780b32ed 100755 --- a/interface/web/sites/lib/lang/es_aps.lng +++ b/interface/web/sites/lib/lang/es_aps.lng @@ -12,20 +12,20 @@ $wb['config_script_txt'] = 'Archivo de configuración'; $wb['database_txt'] = 'Base de datos'; $wb['description_txt'] = 'Descripción'; $wb['details_txt'] = 'Detalles'; -$wb['error_inv_domain_for'] = 'Ha ingresado un dominio inválido en el campo \"%s\".'; -$wb['error_inv_email_for'] = 'Ha ingresado una dirección de correo inválida en el campo \"%s\".'; -$wb['error_inv_float_for'] = 'Ha introducido un número de punto flotante no válido para el campo \"%s\".'; -$wb['error_inv_integer_for'] = 'Ha ingresado un número inválido en el campo \"%s\".'; +$wb['error_inv_domain_for'] = 'Ha ingresado un dominio inválido en el campo \\"%s\\".'; +$wb['error_inv_email_for'] = 'Ha ingresado una dirección de correo inválida en el campo \\"%s\\".'; +$wb['error_inv_float_for'] = 'Ha introducido un número de punto flotante no válido para el campo \\"%s\\".'; +$wb['error_inv_integer_for'] = 'Ha ingresado un número inválido en el campo \\"%s\\".'; $wb['error_inv_main_location'] = 'La ubicación de la carpeta de instalación proporcionada es inválida.'; -$wb['error_inv_value_for'] = 'Ha ingresado un valor inválido en el campo \"%s\".'; +$wb['error_inv_value_for'] = 'Ha ingresado un valor inválido en el campo \\"%s\\".'; $wb['error_license_agreement'] = 'Para poder continuar debe aceptar el acuerdo de licencia.'; -$wb['error_long_value_for'] = 'El campo \"%s\" requiere una entrada más corta.'; +$wb['error_long_value_for'] = 'El campo \\"%s\\" requiere una entrada más corta.'; $wb['error_main_domain'] = 'El dominio de la ruta de la instalación es inválido.'; $wb['error_no_database_pw'] = 'No ha proporcionado una contraseña válida para la base de datos.'; $wb['error_no_main_location'] = 'Ha proporcionado una ruta de instalación inválida.'; -$wb['error_no_value_for'] = 'El campo \"%s\" no puede estar vacío.'; +$wb['error_no_value_for'] = 'El campo \\"%s\\" no puede estar vacío.'; $wb['error_short_database_pw'] = 'Por favor seleccione un contraseña más larga para la base de datos.'; -$wb['error_short_value_for'] = 'El campo \"%s\" requiere una entrada más larga.'; +$wb['error_short_value_for'] = 'El campo \\"%s\\" requiere una entrada más larga.'; $wb['error_used_location'] = 'La ruta de instalación ya contiene un paquete instalado.'; $wb['homepage_txt'] = 'Página de inicio'; $wb['install_language_txt'] = 'Idioma de la interfaz'; diff --git a/interface/web/sites/lib/lang/es_web_childdomain.lng b/interface/web/sites/lib/lang/es_web_childdomain.lng index 839110669..25843a0e2 100644 --- a/interface/web/sites/lib/lang/es_web_childdomain.lng +++ b/interface/web/sites/lib/lang/es_web_childdomain.lng @@ -42,7 +42,7 @@ $wb['no_flag_txt'] = 'Sin flag'; $wb['domain_error_wildcard'] = 'No se permiten subdominios comodín.'; $wb['proxy_directives_txt'] = 'Directivas de Proxy'; $wb['available_proxy_directive_snippets_txt'] = 'Fragmentos de directivas de proxy disponibles:'; -$wb['error_proxy_requires_url'] = 'Tipo de redirección \"proxy\" necesita una URL como ruta de redirección.'; +$wb['error_proxy_requires_url'] = 'Tipo de redirección \\"proxy\\" necesita una URL como ruta de redirección.'; $wb['backup_interval_txt'] = 'Intervalo de copia de seguridad'; $wb['backup_copies_txt'] = 'Número de copias de seguridad'; $wb['ssl_key_txt'] = 'Clave SSL'; @@ -104,7 +104,7 @@ $wb['pm_process_idle_timeout_txt'] = 'PHP-FPM pm.process_idle_timeout'; $wb['pm_max_requests_txt'] = 'PHP-FPM pm.max_requests'; $wb['pm_process_idle_timeout_error_regex'] = 'PHP-FPM pm.process_idle_timeout debe ser un valor entero positivo.'; $wb['pm_max_requests_error_regex'] = 'PHP-FPM pm.max_requests debe ser un valor entero >= 0.'; -$wb['pm_ondemand_hint_txt'] = 'Por favor ten en cuenta que debes tener una versión de PHP >= 5.3.9 para poder usar el gestor de procesos \"ondemand\". Si seleccionas \"ondemand\" para una versión de PHP anterior, ¡PHP dejará de funcionar!'; +$wb['pm_ondemand_hint_txt'] = 'Por favor ten en cuenta que debes tener una versión de PHP >= 5.3.9 para poder usar el gestor de procesos \\"ondemand\\". Si seleccionas \\"ondemand\\" para una versión de PHP anterior, ¡PHP dejará de funcionar!'; $wb['generate_password_txt'] = 'Generar contraseña'; $wb['repeat_password_txt'] = 'Repetir contraseña'; $wb['password_mismatch_txt'] = 'Las contraseñas no coinciden.'; diff --git a/interface/web/sites/lib/lang/es_web_subdomain.lng b/interface/web/sites/lib/lang/es_web_subdomain.lng index 8bae76742..2221a749c 100644 --- a/interface/web/sites/lib/lang/es_web_subdomain.lng +++ b/interface/web/sites/lib/lang/es_web_subdomain.lng @@ -42,7 +42,7 @@ $wb['no_flag_txt'] = 'No flag'; $wb['domain_error_wildcard'] = 'Wildcard subdomains are not allowed.'; $wb['proxy_directives_txt'] = 'Proxy Directives'; $wb['available_proxy_directive_snippets_txt'] = 'Available Proxy Directive Snippets:'; -$wb['error_proxy_requires_url'] = 'Redirect Type \"proxy\" requires a URL as the redirect path.'; +$wb['error_proxy_requires_url'] = 'Redirect Type \\"proxy\\" requires a URL as the redirect path.'; $wb['http_port_txt'] = 'HTTP Port'; $wb['https_port_txt'] = 'HTTPS Port'; $wb['http_port_error_regex'] = 'HTTP Port invalid.'; diff --git a/interface/web/sites/lib/lang/es_web_vhost_domain.lng b/interface/web/sites/lib/lang/es_web_vhost_domain.lng index 4a2b17cab..f98c02db1 100644 --- a/interface/web/sites/lib/lang/es_web_vhost_domain.lng +++ b/interface/web/sites/lib/lang/es_web_vhost_domain.lng @@ -102,7 +102,7 @@ $wb['pm_process_idle_timeout_txt'] = 'PHP-FPM pm.process_idle_timeout'; $wb['pm_max_requests_txt'] = 'PHP-FPM pm.max_requests'; $wb['pm_process_idle_timeout_error_regex'] = 'PHP-FPM pm.process_idle_timeout debe ser un valor entero positivo.'; $wb['pm_max_requests_error_regex'] = 'PHP-FPM pm.max_requests debe ser un valor entero >= 0.'; -$wb['pm_ondemand_hint_txt'] = 'Por favor ten en cuenta que debes tener una versión de PHP >= 5.3.9 para poder usar el gestor de procesos \"ondemand\". Si seleccionas \"ondemand\" para una versión de PHP anterior, ¡PHP dejará de funcionar!'; +$wb['pm_ondemand_hint_txt'] = 'Por favor ten en cuenta que debes tener una versión de PHP >= 5.3.9 para poder usar el gestor de procesos \\"ondemand\\". Si seleccionas \\"ondemand\\" para una versión de PHP anterior, ¡PHP dejará de funcionar!'; $wb['generate_password_txt'] = 'Generar contraseña'; $wb['repeat_password_txt'] = 'Repetir contraseña'; $wb['password_mismatch_txt'] = 'Las contraseñas no coinciden.'; diff --git a/interface/web/sites/lib/lang/fi.lng b/interface/web/sites/lib/lang/fi.lng index 5adab5777..ebf94bc19 100755 --- a/interface/web/sites/lib/lang/fi.lng +++ b/interface/web/sites/lib/lang/fi.lng @@ -31,5 +31,5 @@ $wb['Available packages'] = 'Available packages'; $wb['Installed packages'] = 'Installed packages'; $wb['Update Packagelist'] = 'Update Packagelist'; $wb['Subdomain (Vhost)'] = 'Subdomain (Vhost)'; -$wb['error_proxy_requires_url'] = 'Redirect Type \"proxy\" requires a URL as the redirect path.'; +$wb['error_proxy_requires_url'] = 'Redirect Type \\"proxy\\" requires a URL as the redirect path.'; ?> diff --git a/interface/web/sites/lib/lang/fi_aps.lng b/interface/web/sites/lib/lang/fi_aps.lng index cc8dc8358..d78701f27 100644 --- a/interface/web/sites/lib/lang/fi_aps.lng +++ b/interface/web/sites/lib/lang/fi_aps.lng @@ -38,14 +38,14 @@ $wb['error_inv_main_location'] = 'The given install location folder is invalid.' $wb['error_license_agreement'] = 'In order to continue you have to accept the license agreement.'; $wb['error_no_database_pw'] = 'You have provided no valid database password.'; $wb['error_short_database_pw'] = 'Please choose a longer database password.'; -$wb['error_no_value_for'] = 'The field \"%s\" must not be empty.'; -$wb['error_short_value_for'] = 'The field \"%s\" requires a longer input value.'; -$wb['error_long_value_for'] = 'The field \"%s\" requires a shorter input value.'; -$wb['error_inv_value_for'] = 'You have entered an invalid value for the field \"%s\".'; -$wb['error_inv_email_for'] = 'You have entered an invalid mail address for the field \"%s\".'; -$wb['error_inv_domain_for'] = 'You have entered an invalid domain for the field \"%s\".'; -$wb['error_inv_integer_for'] = 'You have entered an invalid number for the field \"%s\".'; -$wb['error_inv_float_for'] = 'You have entered an invalid floating point number for the field \"%s\".'; +$wb['error_no_value_for'] = 'The field \\"%s\\" must not be empty.'; +$wb['error_short_value_for'] = 'The field \\"%s\\" requires a longer input value.'; +$wb['error_long_value_for'] = 'The field \\"%s\\" requires a shorter input value.'; +$wb['error_inv_value_for'] = 'You have entered an invalid value for the field \\"%s\\".'; +$wb['error_inv_email_for'] = 'You have entered an invalid mail address for the field \\"%s\\".'; +$wb['error_inv_domain_for'] = 'You have entered an invalid domain for the field \\"%s\\".'; +$wb['error_inv_integer_for'] = 'You have entered an invalid number for the field \\"%s\\".'; +$wb['error_inv_float_for'] = 'You have entered an invalid floating point number for the field \\"%s\\".'; $wb['error_used_location'] = 'The installation path already contains a package installation.'; $wb['installation_task_txt'] = 'Install planned'; $wb['installation_error_txt'] = 'Install error'; diff --git a/interface/web/sites/lib/lang/fi_web_childdomain.lng b/interface/web/sites/lib/lang/fi_web_childdomain.lng index 98c41088a..5105ba3f2 100755 --- a/interface/web/sites/lib/lang/fi_web_childdomain.lng +++ b/interface/web/sites/lib/lang/fi_web_childdomain.lng @@ -42,7 +42,7 @@ $wb['no_flag_txt'] = 'No flag'; $wb['domain_error_wildcard'] = 'Wildcard subdomains are not allowed.'; $wb['proxy_directives_txt'] = 'Proxy Directives'; $wb['available_proxy_directive_snippets_txt'] = 'Available Proxy Directive Snippets:'; -$wb['error_proxy_requires_url'] = 'Redirect Type \"proxy\" requires a URL as the redirect path.'; +$wb['error_proxy_requires_url'] = 'Redirect Type \\"proxy\\" requires a URL as the redirect path.'; $wb['backup_interval_txt'] = 'Backup interval'; $wb['backup_copies_txt'] = 'Number of backup copies'; $wb['ssl_key_txt'] = 'SSL Key'; diff --git a/interface/web/sites/lib/lang/fi_web_subdomain.lng b/interface/web/sites/lib/lang/fi_web_subdomain.lng index 7500fb7a6..7fe710390 100644 --- a/interface/web/sites/lib/lang/fi_web_subdomain.lng +++ b/interface/web/sites/lib/lang/fi_web_subdomain.lng @@ -42,7 +42,7 @@ $wb['no_flag_txt'] = 'No flag'; $wb['domain_error_wildcard'] = 'Wildcard subdomains are not allowed.'; $wb['proxy_directives_txt'] = 'Proxy Directives'; $wb['available_proxy_directive_snippets_txt'] = 'Available Proxy Directive Snippets:'; -$wb['error_proxy_requires_url'] = 'Redirect Type \"proxy\" requires a URL as the redirect path.'; +$wb['error_proxy_requires_url'] = 'Redirect Type \\"proxy\\" requires a URL as the redirect path.'; $wb['http_port_txt'] = 'HTTP Port'; $wb['https_port_txt'] = 'HTTPS Port'; $wb['http_port_error_regex'] = 'HTTP Port invalid.'; diff --git a/interface/web/sites/lib/lang/fr.lng b/interface/web/sites/lib/lang/fr.lng index c914ef002..9acee9d06 100644 --- a/interface/web/sites/lib/lang/fr.lng +++ b/interface/web/sites/lib/lang/fr.lng @@ -31,5 +31,5 @@ $wb['Available packages'] = 'Packages disponibles'; $wb['Installed packages'] = 'Packages installés'; $wb['Update Packagelist'] = 'Mise à jour de la liste des packages'; $wb['Subdomain (Vhost)'] = 'Sous-domaine (Vhost)'; -$wb['error_proxy_requires_url'] = 'Type de redirection \"proxy\" nécessite une URL comme chemin de redirection.'; +$wb['error_proxy_requires_url'] = 'Type de redirection \\"proxy\\" nécessite une URL comme chemin de redirection.'; ?> diff --git a/interface/web/sites/lib/lang/fr_aps.lng b/interface/web/sites/lib/lang/fr_aps.lng index 0f067e78b..6beef9939 100644 --- a/interface/web/sites/lib/lang/fr_aps.lng +++ b/interface/web/sites/lib/lang/fr_aps.lng @@ -38,14 +38,14 @@ $wb['error_inv_main_location'] = 'Le dossier d’installation choisi est invalid $wb['error_license_agreement'] = 'Avant de continuer, vous devez accepter les conditions d’utilisation (licence).'; $wb['error_no_database_pw'] = 'Vous n’avez pas renseigné de mot de passe BDD valide.'; $wb['error_short_database_pw'] = 'Veuillez saisir un mot de passe BDD plus long.'; -$wb['error_no_value_for'] = 'Le champ \"%s\" ne peut pas être vide.'; -$wb['error_short_value_for'] = 'Le champ \"%s\" nécessite une valeur plus longue.'; -$wb['error_long_value_for'] = 'Le champ \"%s\" nécessite une valeur plus courte.'; -$wb['error_inv_value_for'] = 'Vous avez saisi une valeur invalide pour le champ \"%s\".'; -$wb['error_inv_email_for'] = 'L’adresse e-mail saisie pour le champ \"%s\" est invalide.'; -$wb['error_inv_domain_for'] = 'Le domaine saisi pour le champ \"%s\" est invalide.'; -$wb['error_inv_integer_for'] = 'Le nombre saisi pour le champ \"%s\" est invalide.'; -$wb['error_inv_float_for'] = 'La décimale saisie pour le champ \"%s\" est invalide.'; +$wb['error_no_value_for'] = 'Le champ \\"%s\\" ne peut pas être vide.'; +$wb['error_short_value_for'] = 'Le champ \\"%s\\" nécessite une valeur plus longue.'; +$wb['error_long_value_for'] = 'Le champ \\"%s\\" nécessite une valeur plus courte.'; +$wb['error_inv_value_for'] = 'Vous avez saisi une valeur invalide pour le champ \\"%s\\".'; +$wb['error_inv_email_for'] = 'L’adresse e-mail saisie pour le champ \\"%s\\" est invalide.'; +$wb['error_inv_domain_for'] = 'Le domaine saisi pour le champ \\"%s\\" est invalide.'; +$wb['error_inv_integer_for'] = 'Le nombre saisi pour le champ \\"%s\\" est invalide.'; +$wb['error_inv_float_for'] = 'La décimale saisie pour le champ \\"%s\\" est invalide.'; $wb['error_used_location'] = 'Le chemin de destination contient déjà un package d’installation.'; $wb['installation_task_txt'] = 'Installation prévue'; $wb['installation_error_txt'] = 'Erreur d’installation'; diff --git a/interface/web/sites/lib/lang/fr_web_childdomain.lng b/interface/web/sites/lib/lang/fr_web_childdomain.lng index f33ca58f0..1be206e12 100644 --- a/interface/web/sites/lib/lang/fr_web_childdomain.lng +++ b/interface/web/sites/lib/lang/fr_web_childdomain.lng @@ -42,7 +42,7 @@ $wb['no_flag_txt'] = 'Aucun flag'; $wb['domain_error_wildcard'] = 'Wildcard subdomains are not allowed.'; $wb['proxy_directives_txt'] = 'Proxy Directives'; $wb['available_proxy_directive_snippets_txt'] = 'Available Proxy Directive Snippets:'; -$wb['error_proxy_requires_url'] = 'Redirect Type \"proxy\" requires a URL as the redirect path.'; +$wb['error_proxy_requires_url'] = 'Redirect Type \\"proxy\\" requires a URL as the redirect path.'; $wb['backup_interval_txt'] = 'Backup interval'; $wb['backup_copies_txt'] = 'Number of backup copies'; $wb['ssl_key_txt'] = 'SSL Key'; diff --git a/interface/web/sites/lib/lang/fr_web_subdomain.lng b/interface/web/sites/lib/lang/fr_web_subdomain.lng index 6dfc914a0..957dfbfed 100644 --- a/interface/web/sites/lib/lang/fr_web_subdomain.lng +++ b/interface/web/sites/lib/lang/fr_web_subdomain.lng @@ -42,7 +42,7 @@ $wb['no_flag_txt'] = 'Aucun flag'; $wb['domain_error_wildcard'] = 'Les sous-domaines joker ne sont pas autorisés.'; $wb['proxy_directives_txt'] = 'Directives pour les Proxy'; $wb['available_proxy_directive_snippets_txt'] = 'Directives pour les Proxy Snippets disponibles :'; -$wb['error_proxy_requires_url'] = 'Les redirections de type \"proxy\" nécessitent une URL comme chemin de redirection.'; +$wb['error_proxy_requires_url'] = 'Les redirections de type \\"proxy\\" nécessitent une URL comme chemin de redirection.'; $wb['http_port_txt'] = 'HTTP Port'; $wb['https_port_txt'] = 'HTTPS Port'; $wb['http_port_error_regex'] = 'HTTP Port invalid.'; diff --git a/interface/web/sites/lib/lang/hr.lng b/interface/web/sites/lib/lang/hr.lng index 4c53c8984..b6af1225a 100644 --- a/interface/web/sites/lib/lang/hr.lng +++ b/interface/web/sites/lib/lang/hr.lng @@ -30,6 +30,6 @@ $wb['Available packages'] = 'Dostupni paketi'; $wb['Installed packages'] = 'Instalirani paketi'; $wb['Update Packagelist'] = 'Osvježi listu paketa'; $wb['Subdomain (Vhost)'] = 'Poddomena (Vhost)'; -$wb['error_proxy_requires_url'] = '\"proxy\" redirekcija zahtijeva URL za redirekcijsku putanju.'; +$wb['error_proxy_requires_url'] = '\\"proxy\\" redirekcija zahtijeva URL za redirekcijsku putanju.'; $wb['Domain'] = 'Domain'; ?> diff --git a/interface/web/sites/lib/lang/hr_aps.lng b/interface/web/sites/lib/lang/hr_aps.lng index 6169342e7..79d31cf7f 100644 --- a/interface/web/sites/lib/lang/hr_aps.lng +++ b/interface/web/sites/lib/lang/hr_aps.lng @@ -38,14 +38,14 @@ $wb['error_inv_main_location'] = 'The given install location folder is invalid.' $wb['error_license_agreement'] = 'In order to continue you have to accept the license agreement.'; $wb['error_no_database_pw'] = 'You have provided no valid database password.'; $wb['error_short_database_pw'] = 'Please choose a longer database password.'; -$wb['error_no_value_for'] = 'The field \"%s\" must not be empty.'; -$wb['error_short_value_for'] = 'The field \"%s\" requires a longer input value.'; -$wb['error_long_value_for'] = 'The field \"%s\" requires a shorter input value.'; -$wb['error_inv_value_for'] = 'You have entered an invalid value for the field \"%s\".'; -$wb['error_inv_email_for'] = 'You have entered an invalid mail address for the field \"%s\".'; -$wb['error_inv_domain_for'] = 'You have entered an invalid domain for the field \"%s\".'; -$wb['error_inv_integer_for'] = 'You have entered an invalid number for the field \"%s\".'; -$wb['error_inv_float_for'] = 'You have entered an invalid floating point number for the field \"%s\".'; +$wb['error_no_value_for'] = 'The field \\"%s\\" must not be empty.'; +$wb['error_short_value_for'] = 'The field \\"%s\\" requires a longer input value.'; +$wb['error_long_value_for'] = 'The field \\"%s\\" requires a shorter input value.'; +$wb['error_inv_value_for'] = 'You have entered an invalid value for the field \\"%s\\".'; +$wb['error_inv_email_for'] = 'You have entered an invalid mail address for the field \\"%s\\".'; +$wb['error_inv_domain_for'] = 'You have entered an invalid domain for the field \\"%s\\".'; +$wb['error_inv_integer_for'] = 'You have entered an invalid number for the field \\"%s\\".'; +$wb['error_inv_float_for'] = 'You have entered an invalid floating point number for the field \\"%s\\".'; $wb['error_used_location'] = 'The installation path already contains a package installation.'; $wb['installation_task_txt'] = 'Instalacija u postupku'; $wb['installation_error_txt'] = 'Instalacijska greška'; diff --git a/interface/web/sites/lib/lang/hr_web_childdomain.lng b/interface/web/sites/lib/lang/hr_web_childdomain.lng index f0e69f24f..99df0d2fd 100644 --- a/interface/web/sites/lib/lang/hr_web_childdomain.lng +++ b/interface/web/sites/lib/lang/hr_web_childdomain.lng @@ -42,7 +42,7 @@ $wb['no_flag_txt'] = 'Bez markiranja'; $wb['domain_error_wildcard'] = 'Wildcard subdomains are not allowed.'; $wb['proxy_directives_txt'] = 'Proxy Directives'; $wb['available_proxy_directive_snippets_txt'] = 'Available Proxy Directive Snippets:'; -$wb['error_proxy_requires_url'] = 'Redirect Type \"proxy\" requires a URL as the redirect path.'; +$wb['error_proxy_requires_url'] = 'Redirect Type \\"proxy\\" requires a URL as the redirect path.'; $wb['backup_interval_txt'] = 'Backup interval'; $wb['backup_copies_txt'] = 'Number of backup copies'; $wb['ssl_key_txt'] = 'SSL Key'; diff --git a/interface/web/sites/lib/lang/hr_web_subdomain.lng b/interface/web/sites/lib/lang/hr_web_subdomain.lng index 18fe4630a..76d7f3957 100644 --- a/interface/web/sites/lib/lang/hr_web_subdomain.lng +++ b/interface/web/sites/lib/lang/hr_web_subdomain.lng @@ -42,7 +42,7 @@ $wb['no_flag_txt'] = 'Bez markiranja'; $wb['domain_error_wildcard'] = 'Wildcard poddomene nisu dozvoljene.'; $wb['proxy_directives_txt'] = 'Proxy direktive'; $wb['available_proxy_directive_snippets_txt'] = 'Dostupne proxy direktive:'; -$wb['error_proxy_requires_url'] = 'Vrsta redirekcije \"proxy\" zahtjeva URL kao redirekcijsku putanju.'; +$wb['error_proxy_requires_url'] = 'Vrsta redirekcije \\"proxy\\" zahtjeva URL kao redirekcijsku putanju.'; $wb['http_port_txt'] = 'HTTP Port'; $wb['https_port_txt'] = 'HTTPS Port'; $wb['http_port_error_regex'] = 'HTTP Port invalid.'; diff --git a/interface/web/sites/lib/lang/hu.lng b/interface/web/sites/lib/lang/hu.lng index 1a3e31d3f..2c156a477 100644 --- a/interface/web/sites/lib/lang/hu.lng +++ b/interface/web/sites/lib/lang/hu.lng @@ -31,5 +31,5 @@ $wb['Available packages'] = 'Available packages'; $wb['Installed packages'] = 'Installed packages'; $wb['Update Packagelist'] = 'Update Packagelist'; $wb['Subdomain (Vhost)'] = 'Subdomain (Vhost)'; -$wb['error_proxy_requires_url'] = 'Redirect Type \"proxy\" requires a URL as the redirect path.'; +$wb['error_proxy_requires_url'] = 'Redirect Type \\"proxy\\" requires a URL as the redirect path.'; ?> diff --git a/interface/web/sites/lib/lang/hu_aps.lng b/interface/web/sites/lib/lang/hu_aps.lng index 9330a1fb4..88708732d 100644 --- a/interface/web/sites/lib/lang/hu_aps.lng +++ b/interface/web/sites/lib/lang/hu_aps.lng @@ -38,14 +38,14 @@ $wb['error_inv_main_location'] = 'The given install location folder is invalid.' $wb['error_license_agreement'] = 'In order to continue you have to accept the license agreement.'; $wb['error_no_database_pw'] = 'You have provided no valid database password.'; $wb['error_short_database_pw'] = 'Please choose a longer database password.'; -$wb['error_no_value_for'] = 'The field \"%s\" must not be empty.'; -$wb['error_short_value_for'] = 'The field \"%s\" requires a longer input value.'; -$wb['error_long_value_for'] = 'The field \"%s\" requires a shorter input value.'; -$wb['error_inv_value_for'] = 'You have entered an invalid value for the field \"%s\".'; -$wb['error_inv_email_for'] = 'You have entered an invalid mail address for the field \"%s\".'; -$wb['error_inv_domain_for'] = 'You have entered an invalid domain for the field \"%s\".'; -$wb['error_inv_integer_for'] = 'You have entered an invalid number for the field \"%s\".'; -$wb['error_inv_float_for'] = 'You have entered an invalid floating point number for the field \"%s\".'; +$wb['error_no_value_for'] = 'The field \\"%s\\" must not be empty.'; +$wb['error_short_value_for'] = 'The field \\"%s\\" requires a longer input value.'; +$wb['error_long_value_for'] = 'The field \\"%s\\" requires a shorter input value.'; +$wb['error_inv_value_for'] = 'You have entered an invalid value for the field \\"%s\\".'; +$wb['error_inv_email_for'] = 'You have entered an invalid mail address for the field \\"%s\\".'; +$wb['error_inv_domain_for'] = 'You have entered an invalid domain for the field \\"%s\\".'; +$wb['error_inv_integer_for'] = 'You have entered an invalid number for the field \\"%s\\".'; +$wb['error_inv_float_for'] = 'You have entered an invalid floating point number for the field \\"%s\\".'; $wb['error_used_location'] = 'The installation path already contains a package installation.'; $wb['installation_task_txt'] = 'Install planned'; $wb['installation_error_txt'] = 'Install error'; diff --git a/interface/web/sites/lib/lang/hu_web_childdomain.lng b/interface/web/sites/lib/lang/hu_web_childdomain.lng index aa554d4bc..5ac19c3bb 100644 --- a/interface/web/sites/lib/lang/hu_web_childdomain.lng +++ b/interface/web/sites/lib/lang/hu_web_childdomain.lng @@ -42,7 +42,7 @@ $wb['redirect_error_regex'] = 'Invalid redirect path. Valid redirects are for ex $wb['domain_error_wildcard'] = 'Wildcard subdomains are not allowed.'; $wb['proxy_directives_txt'] = 'Proxy Directives'; $wb['available_proxy_directive_snippets_txt'] = 'Available Proxy Directive Snippets:'; -$wb['error_proxy_requires_url'] = 'Redirect Type \"proxy\" requires a URL as the redirect path.'; +$wb['error_proxy_requires_url'] = 'Redirect Type \\"proxy\\" requires a URL as the redirect path.'; $wb['backup_interval_txt'] = 'Backup interval'; $wb['backup_copies_txt'] = 'Number of backup copies'; $wb['ssl_key_txt'] = 'SSL Key'; diff --git a/interface/web/sites/lib/lang/hu_web_subdomain.lng b/interface/web/sites/lib/lang/hu_web_subdomain.lng index 79c9ecc70..84874b22c 100644 --- a/interface/web/sites/lib/lang/hu_web_subdomain.lng +++ b/interface/web/sites/lib/lang/hu_web_subdomain.lng @@ -42,7 +42,7 @@ $wb['redirect_error_regex'] = 'Invalid redirect path. Valid redirects are for ex $wb['domain_error_wildcard'] = 'Wildcard subdomains are not allowed.'; $wb['proxy_directives_txt'] = 'Proxy Directives'; $wb['available_proxy_directive_snippets_txt'] = 'Available Proxy Directive Snippets:'; -$wb['error_proxy_requires_url'] = 'Redirect Type \"proxy\" requires a URL as the redirect path.'; +$wb['error_proxy_requires_url'] = 'Redirect Type \\"proxy\\" requires a URL as the redirect path.'; $wb['http_port_txt'] = 'HTTP Port'; $wb['https_port_txt'] = 'HTTPS Port'; $wb['http_port_error_regex'] = 'HTTP Port invalid.'; diff --git a/interface/web/sites/lib/lang/id.lng b/interface/web/sites/lib/lang/id.lng index 4fdae1813..c8510df6c 100644 --- a/interface/web/sites/lib/lang/id.lng +++ b/interface/web/sites/lib/lang/id.lng @@ -31,5 +31,5 @@ $wb['Available packages'] = 'Available packages'; $wb['Installed packages'] = 'Installed packages'; $wb['Update Packagelist'] = 'Update Packagelist'; $wb['Subdomain (Vhost)'] = 'Subdomain (Vhost)'; -$wb['error_proxy_requires_url'] = 'Redirect Type \"proxy\" requires a URL as the redirect path.'; +$wb['error_proxy_requires_url'] = 'Redirect Type \\"proxy\\" requires a URL as the redirect path.'; ?> diff --git a/interface/web/sites/lib/lang/id_aps.lng b/interface/web/sites/lib/lang/id_aps.lng index 6f6d0bced..b8c9af215 100644 --- a/interface/web/sites/lib/lang/id_aps.lng +++ b/interface/web/sites/lib/lang/id_aps.lng @@ -38,14 +38,14 @@ $wb['error_inv_main_location'] = 'The given install location folder is invalid.' $wb['error_license_agreement'] = 'In order to continue you have to accept the license agreement.'; $wb['error_no_database_pw'] = 'You have provided no valid database password.'; $wb['error_short_database_pw'] = 'Please choose a longer database password.'; -$wb['error_no_value_for'] = 'The field \"%s\" must not be empty.'; -$wb['error_short_value_for'] = 'The field \"%s\" requires a longer input value.'; -$wb['error_long_value_for'] = 'The field \"%s\" requires a shorter input value.'; -$wb['error_inv_value_for'] = 'You have entered an invalid value for the field \"%s\".'; -$wb['error_inv_email_for'] = 'You have entered an invalid mail address for the field \"%s\".'; -$wb['error_inv_domain_for'] = 'You have entered an invalid domain for the field \"%s\".'; -$wb['error_inv_integer_for'] = 'You have entered an invalid number for the field \"%s\".'; -$wb['error_inv_float_for'] = 'You have entered an invalid floating point number for the field \"%s\".'; +$wb['error_no_value_for'] = 'The field \\"%s\\" must not be empty.'; +$wb['error_short_value_for'] = 'The field \\"%s\\" requires a longer input value.'; +$wb['error_long_value_for'] = 'The field \\"%s\\" requires a shorter input value.'; +$wb['error_inv_value_for'] = 'You have entered an invalid value for the field \\"%s\\".'; +$wb['error_inv_email_for'] = 'You have entered an invalid mail address for the field \\"%s\\".'; +$wb['error_inv_domain_for'] = 'You have entered an invalid domain for the field \\"%s\\".'; +$wb['error_inv_integer_for'] = 'You have entered an invalid number for the field \\"%s\\".'; +$wb['error_inv_float_for'] = 'You have entered an invalid floating point number for the field \\"%s\\".'; $wb['error_used_location'] = 'The installation path already contains a package installation.'; $wb['installation_task_txt'] = 'Install planned'; $wb['installation_error_txt'] = 'Install error'; diff --git a/interface/web/sites/lib/lang/id_web_childdomain.lng b/interface/web/sites/lib/lang/id_web_childdomain.lng index 2b97dc223..d5fd9711a 100644 --- a/interface/web/sites/lib/lang/id_web_childdomain.lng +++ b/interface/web/sites/lib/lang/id_web_childdomain.lng @@ -42,7 +42,7 @@ $wb['no_flag_txt'] = 'No flag'; $wb['domain_error_wildcard'] = 'Wildcard subdomains are not allowed.'; $wb['proxy_directives_txt'] = 'Proxy Directives'; $wb['available_proxy_directive_snippets_txt'] = 'Available Proxy Directive Snippets:'; -$wb['error_proxy_requires_url'] = 'Redirect Type \"proxy\" requires a URL as the redirect path.'; +$wb['error_proxy_requires_url'] = 'Redirect Type \\"proxy\\" requires a URL as the redirect path.'; $wb['backup_interval_txt'] = 'Backup interval'; $wb['backup_copies_txt'] = 'Number of backup copies'; $wb['ssl_key_txt'] = 'SSL Key'; diff --git a/interface/web/sites/lib/lang/id_web_subdomain.lng b/interface/web/sites/lib/lang/id_web_subdomain.lng index 7f51be8e4..c2d007e69 100644 --- a/interface/web/sites/lib/lang/id_web_subdomain.lng +++ b/interface/web/sites/lib/lang/id_web_subdomain.lng @@ -42,7 +42,7 @@ $wb['no_flag_txt'] = 'No flag'; $wb['domain_error_wildcard'] = 'Wildcard subdomains are not allowed.'; $wb['proxy_directives_txt'] = 'Proxy Directives'; $wb['available_proxy_directive_snippets_txt'] = 'Available Proxy Directive Snippets:'; -$wb['error_proxy_requires_url'] = 'Redirect Type \"proxy\" requires a URL as the redirect path.'; +$wb['error_proxy_requires_url'] = 'Redirect Type \\"proxy\\" requires a URL as the redirect path.'; $wb['http_port_txt'] = 'HTTP Port'; $wb['https_port_txt'] = 'HTTPS Port'; $wb['http_port_error_regex'] = 'HTTP Port invalid.'; diff --git a/interface/web/sites/lib/lang/it.lng b/interface/web/sites/lib/lang/it.lng index 2237545be..77473bd0f 100644 --- a/interface/web/sites/lib/lang/it.lng +++ b/interface/web/sites/lib/lang/it.lng @@ -31,5 +31,5 @@ $wb['Available packages'] = 'Pacchetti disponibili'; $wb['Installed packages'] = 'Pacchetti Installati'; $wb['Update Packagelist'] = 'Aggiorna Elenco Pacchetti'; $wb['Subdomain (Vhost)'] = 'Sottodominio (Vhost)'; -$wb['error_proxy_requires_url'] = 'Tipo reinderizzamento \"proxy\" richiede una URL come percorso del reinderizzamento.'; +$wb['error_proxy_requires_url'] = 'Tipo reinderizzamento \\"proxy\\" richiede una URL come percorso del reinderizzamento.'; ?> diff --git a/interface/web/sites/lib/lang/it_aps.lng b/interface/web/sites/lib/lang/it_aps.lng index ade780861..0a6365f98 100644 --- a/interface/web/sites/lib/lang/it_aps.lng +++ b/interface/web/sites/lib/lang/it_aps.lng @@ -38,14 +38,14 @@ $wb['error_inv_main_location'] = 'La cartella di installazione fornita non è va $wb['error_license_agreement'] = 'Per poter proseguire è necessario che prendi visione ed accetti l accordi di licenza.'; $wb['error_no_database_pw'] = 'La password fornita non è valida.'; $wb['error_short_database_pw'] = 'Per favore scegli una password di database più lunga.'; -$wb['error_no_value_for'] = 'Il campo \"%s\" non può essere vuoto.'; -$wb['error_short_value_for'] = 'Il campo \"%s\" richiede un valore immesso più lungo.'; -$wb['error_long_value_for'] = 'Il campo \"%s\" richiede un valore immesso più corto.'; -$wb['error_inv_value_for'] = 'Hai inserito un valore non valido per il campo \"%s\".'; -$wb['error_inv_email_for'] = 'Hai inserito un indirizzo email non valido per il campo \"%s\".'; -$wb['error_inv_domain_for'] = 'Hai inserito un dominio non valido per il campo \"%s\".'; -$wb['error_inv_integer_for'] = 'Hai inserito un numero non valido per il campo \"%s\".'; -$wb['error_inv_float_for'] = 'Hai inserito un numero di floating point non valido per il campo \"%s\".'; +$wb['error_no_value_for'] = 'Il campo \\"%s\\" non può essere vuoto.'; +$wb['error_short_value_for'] = 'Il campo \\"%s\\" richiede un valore immesso più lungo.'; +$wb['error_long_value_for'] = 'Il campo \\"%s\\" richiede un valore immesso più corto.'; +$wb['error_inv_value_for'] = 'Hai inserito un valore non valido per il campo \\"%s\\".'; +$wb['error_inv_email_for'] = 'Hai inserito un indirizzo email non valido per il campo \\"%s\\".'; +$wb['error_inv_domain_for'] = 'Hai inserito un dominio non valido per il campo \\"%s\\".'; +$wb['error_inv_integer_for'] = 'Hai inserito un numero non valido per il campo \\"%s\\".'; +$wb['error_inv_float_for'] = 'Hai inserito un numero di floating point non valido per il campo \\"%s\\".'; $wb['error_used_location'] = 'L installazione della patch contiene già un pacchetto di installazione.'; $wb['installation_task_txt'] = 'Installazione pianificata'; $wb['installation_error_txt'] = 'Errore di installazione'; diff --git a/interface/web/sites/lib/lang/it_web_childdomain.lng b/interface/web/sites/lib/lang/it_web_childdomain.lng index edd32aa6d..3a214e298 100644 --- a/interface/web/sites/lib/lang/it_web_childdomain.lng +++ b/interface/web/sites/lib/lang/it_web_childdomain.lng @@ -43,7 +43,7 @@ $wb['no_flag_txt'] = 'No flag'; $wb['domain_error_wildcard'] = 'Wildcard subdomains are not allowed.'; $wb['proxy_directives_txt'] = 'Proxy Directives'; $wb['available_proxy_directive_snippets_txt'] = 'Available Proxy Directive Snippets:'; -$wb['error_proxy_requires_url'] = 'Redirect Type \"proxy\" requires a URL as the redirect path.'; +$wb['error_proxy_requires_url'] = 'Redirect Type \\"proxy\\" requires a URL as the redirect path.'; $wb['backup_interval_txt'] = 'Backup interval'; $wb['backup_copies_txt'] = 'Number of backup copies'; $wb['ssl_key_txt'] = 'SSL Key'; diff --git a/interface/web/sites/lib/lang/it_web_subdomain.lng b/interface/web/sites/lib/lang/it_web_subdomain.lng index 001930491..956b5c3be 100644 --- a/interface/web/sites/lib/lang/it_web_subdomain.lng +++ b/interface/web/sites/lib/lang/it_web_subdomain.lng @@ -42,7 +42,7 @@ $wb['no_flag_txt'] = 'No flag'; $wb['domain_error_wildcard'] = 'Non sono ammessi caratteri jolly per i sottodomini.'; $wb['proxy_directives_txt'] = 'Direttive Proxy'; $wb['available_proxy_directive_snippets_txt'] = 'Snippets Direttive Proxy disponibili:'; -$wb['error_proxy_requires_url'] = 'Tipo reinderizzamento \"proxy\" richiede una URL come percorso di reinderizzamento.'; +$wb['error_proxy_requires_url'] = 'Tipo reinderizzamento \\"proxy\\" richiede una URL come percorso di reinderizzamento.'; $wb['http_port_txt'] = 'HTTP Port'; $wb['https_port_txt'] = 'HTTPS Port'; $wb['http_port_error_regex'] = 'HTTP Port invalid.'; diff --git a/interface/web/sites/lib/lang/ja.lng b/interface/web/sites/lib/lang/ja.lng index 470ec2bae..920064bc5 100644 --- a/interface/web/sites/lib/lang/ja.lng +++ b/interface/web/sites/lib/lang/ja.lng @@ -31,5 +31,5 @@ $wb['Available packages'] = 'Available packages'; $wb['Installed packages'] = 'Installed packages'; $wb['Update Packagelist'] = 'Update Packagelist'; $wb['Subdomain (Vhost)'] = 'Subdomain (Vhost)'; -$wb['error_proxy_requires_url'] = 'Redirect Type \"proxy\" requires a URL as the redirect path.'; +$wb['error_proxy_requires_url'] = 'Redirect Type \\"proxy\\" requires a URL as the redirect path.'; ?> diff --git a/interface/web/sites/lib/lang/ja_aps.lng b/interface/web/sites/lib/lang/ja_aps.lng index 91f8ad102..dc6b22edf 100644 --- a/interface/web/sites/lib/lang/ja_aps.lng +++ b/interface/web/sites/lib/lang/ja_aps.lng @@ -38,14 +38,14 @@ $wb['error_inv_main_location'] = 'The given install location folder is invalid.' $wb['error_license_agreement'] = 'In order to continue you have to accept the license agreement.'; $wb['error_no_database_pw'] = 'You have provided no valid database password.'; $wb['error_short_database_pw'] = 'Please choose a longer database password.'; -$wb['error_no_value_for'] = 'The field \"%s\" must not be empty.'; -$wb['error_short_value_for'] = 'The field \"%s\" requires a longer input value.'; -$wb['error_long_value_for'] = 'The field \"%s\" requires a shorter input value.'; -$wb['error_inv_value_for'] = 'You have entered an invalid value for the field \"%s\".'; -$wb['error_inv_email_for'] = 'You have entered an invalid mail address for the field \"%s\".'; -$wb['error_inv_domain_for'] = 'You have entered an invalid domain for the field \"%s\".'; -$wb['error_inv_integer_for'] = 'You have entered an invalid number for the field \"%s\".'; -$wb['error_inv_float_for'] = 'You have entered an invalid floating point number for the field \"%s\".'; +$wb['error_no_value_for'] = 'The field \\"%s\\" must not be empty.'; +$wb['error_short_value_for'] = 'The field \\"%s\\" requires a longer input value.'; +$wb['error_long_value_for'] = 'The field \\"%s\\" requires a shorter input value.'; +$wb['error_inv_value_for'] = 'You have entered an invalid value for the field \\"%s\\".'; +$wb['error_inv_email_for'] = 'You have entered an invalid mail address for the field \\"%s\\".'; +$wb['error_inv_domain_for'] = 'You have entered an invalid domain for the field \\"%s\\".'; +$wb['error_inv_integer_for'] = 'You have entered an invalid number for the field \\"%s\\".'; +$wb['error_inv_float_for'] = 'You have entered an invalid floating point number for the field \\"%s\\".'; $wb['error_used_location'] = 'The installation path already contains a package installation.'; $wb['installation_task_txt'] = 'Install planned'; $wb['installation_error_txt'] = 'Install error'; diff --git a/interface/web/sites/lib/lang/ja_web_childdomain.lng b/interface/web/sites/lib/lang/ja_web_childdomain.lng index fe885c8c3..d59d7bbda 100644 --- a/interface/web/sites/lib/lang/ja_web_childdomain.lng +++ b/interface/web/sites/lib/lang/ja_web_childdomain.lng @@ -42,7 +42,7 @@ $wb['no_flag_txt'] = 'No flag'; $wb['domain_error_wildcard'] = 'Wildcard subdomains are not allowed.'; $wb['proxy_directives_txt'] = 'Proxy Directives'; $wb['available_proxy_directive_snippets_txt'] = 'Available Proxy Directive Snippets:'; -$wb['error_proxy_requires_url'] = 'Redirect Type \"proxy\" requires a URL as the redirect path.'; +$wb['error_proxy_requires_url'] = 'Redirect Type \\"proxy\\" requires a URL as the redirect path.'; $wb['backup_interval_txt'] = 'Backup interval'; $wb['backup_copies_txt'] = 'Number of backup copies'; $wb['ssl_key_txt'] = 'SSL Key'; diff --git a/interface/web/sites/lib/lang/ja_web_subdomain.lng b/interface/web/sites/lib/lang/ja_web_subdomain.lng index f77c98444..5eb45907e 100644 --- a/interface/web/sites/lib/lang/ja_web_subdomain.lng +++ b/interface/web/sites/lib/lang/ja_web_subdomain.lng @@ -42,7 +42,7 @@ $wb['no_flag_txt'] = 'No flag'; $wb['domain_error_wildcard'] = 'Wildcard subdomains are not allowed.'; $wb['proxy_directives_txt'] = 'Proxy Directives'; $wb['available_proxy_directive_snippets_txt'] = 'Available Proxy Directive Snippets:'; -$wb['error_proxy_requires_url'] = 'Redirect Type \"proxy\" requires a URL as the redirect path.'; +$wb['error_proxy_requires_url'] = 'Redirect Type \\"proxy\\" requires a URL as the redirect path.'; $wb['http_port_txt'] = 'HTTP Port'; $wb['https_port_txt'] = 'HTTPS Port'; $wb['http_port_error_regex'] = 'HTTP Port invalid.'; diff --git a/interface/web/sites/lib/lang/nl.lng b/interface/web/sites/lib/lang/nl.lng index 89a4caa10..8e07a1844 100644 --- a/interface/web/sites/lib/lang/nl.lng +++ b/interface/web/sites/lib/lang/nl.lng @@ -31,5 +31,5 @@ $wb['Available packages'] = 'Beschikbare pakketten'; $wb['Installed packages'] = 'Geïnstalleerde pakketten'; $wb['Update Packagelist'] = 'Pakkettenlijst bijwerken'; $wb['Subdomain (Vhost)'] = 'Subdomein (Vhost)'; -$wb['error_proxy_requires_url'] = 'Redirect Type \"proxy\" requires a URL as the redirect path.'; +$wb['error_proxy_requires_url'] = 'Redirect Type \\"proxy\\" requires a URL as the redirect path.'; ?> diff --git a/interface/web/sites/lib/lang/nl_aps.lng b/interface/web/sites/lib/lang/nl_aps.lng index dfd852dcd..c0adacee9 100644 --- a/interface/web/sites/lib/lang/nl_aps.lng +++ b/interface/web/sites/lib/lang/nl_aps.lng @@ -38,14 +38,14 @@ $wb['error_inv_main_location'] = 'The given install location folder is invalid.' $wb['error_license_agreement'] = 'In order to continue you have to accept the license agreement.'; $wb['error_no_database_pw'] = 'You have provided no valid database password.'; $wb['error_short_database_pw'] = 'Please choose a longer database password.'; -$wb['error_no_value_for'] = 'The field \"%s\" must not be empty.'; -$wb['error_short_value_for'] = 'The field \"%s\" requires a longer input value.'; -$wb['error_long_value_for'] = 'The field \"%s\" requires a shorter input value.'; -$wb['error_inv_value_for'] = 'You have entered an invalid value for the field \"%s\".'; -$wb['error_inv_email_for'] = 'You have entered an invalid mail address for the field \"%s\".'; -$wb['error_inv_domain_for'] = 'You have entered an invalid domain for the field \"%s\".'; -$wb['error_inv_integer_for'] = 'You have entered an invalid number for the field \"%s\".'; -$wb['error_inv_float_for'] = 'You have entered an invalid floating point number for the field \"%s\".'; +$wb['error_no_value_for'] = 'The field \\"%s\\" must not be empty.'; +$wb['error_short_value_for'] = 'The field \\"%s\\" requires a longer input value.'; +$wb['error_long_value_for'] = 'The field \\"%s\\" requires a shorter input value.'; +$wb['error_inv_value_for'] = 'You have entered an invalid value for the field \\"%s\\".'; +$wb['error_inv_email_for'] = 'You have entered an invalid mail address for the field \\"%s\\".'; +$wb['error_inv_domain_for'] = 'You have entered an invalid domain for the field \\"%s\\".'; +$wb['error_inv_integer_for'] = 'You have entered an invalid number for the field \\"%s\\".'; +$wb['error_inv_float_for'] = 'You have entered an invalid floating point number for the field \\"%s\\".'; $wb['error_used_location'] = 'The installation path already contains a package installation.'; $wb['installation_task_txt'] = 'Install planned'; $wb['installation_error_txt'] = 'Install error'; diff --git a/interface/web/sites/lib/lang/nl_web_childdomain.lng b/interface/web/sites/lib/lang/nl_web_childdomain.lng index 4c5b3dc2a..e99616ce1 100644 --- a/interface/web/sites/lib/lang/nl_web_childdomain.lng +++ b/interface/web/sites/lib/lang/nl_web_childdomain.lng @@ -42,7 +42,7 @@ $wb['no_flag_txt'] = 'No flag'; $wb['domain_error_wildcard'] = 'Wildcard subdomains are not allowed.'; $wb['proxy_directives_txt'] = 'Proxy Directives'; $wb['available_proxy_directive_snippets_txt'] = 'Available Proxy Directive Snippets:'; -$wb['error_proxy_requires_url'] = 'Redirect Type \"proxy\" requires a URL as the redirect path.'; +$wb['error_proxy_requires_url'] = 'Redirect Type \\"proxy\\" requires a URL as the redirect path.'; $wb['backup_interval_txt'] = 'Backup interval'; $wb['backup_copies_txt'] = 'Number of backup copies'; $wb['ssl_key_txt'] = 'SSL Key'; diff --git a/interface/web/sites/lib/lang/nl_web_subdomain.lng b/interface/web/sites/lib/lang/nl_web_subdomain.lng index c644d8113..2f4412afb 100644 --- a/interface/web/sites/lib/lang/nl_web_subdomain.lng +++ b/interface/web/sites/lib/lang/nl_web_subdomain.lng @@ -42,7 +42,7 @@ $wb['no_flag_txt'] = 'Geen flag'; $wb['domain_error_wildcard'] = 'Wildcard subdomeinen zijn niet toegestaan.'; $wb['proxy_directives_txt'] = 'Proxy Directives'; $wb['available_proxy_directive_snippets_txt'] = 'Available Proxy Directive Snippets:'; -$wb['error_proxy_requires_url'] = 'Redirect Type \"proxy\" requires a URL as the redirect path.'; +$wb['error_proxy_requires_url'] = 'Redirect Type \\"proxy\\" requires a URL as the redirect path.'; $wb['http_port_txt'] = 'HTTP Port'; $wb['https_port_txt'] = 'HTTPS Port'; $wb['http_port_error_regex'] = 'HTTP Port niet correct.'; diff --git a/interface/web/sites/lib/lang/pl_aps.lng b/interface/web/sites/lib/lang/pl_aps.lng index 398c74e4c..c17bbca53 100644 --- a/interface/web/sites/lib/lang/pl_aps.lng +++ b/interface/web/sites/lib/lang/pl_aps.lng @@ -38,14 +38,14 @@ $wb['error_inv_main_location'] = 'Instalacja w podanym folderze jest niemożliwa $wb['error_license_agreement'] = 'Aby kontynuować musisz zaakceptować umowę licencyjną.'; $wb['error_no_database_pw'] = 'Nie podałeś prawidłowego hasła do bazy danych.'; $wb['error_short_database_pw'] = 'Wybierz dłuższe hasło do bazy.'; -$wb['error_no_value_for'] = 'Pole \"%s\" nie może być puste'; -$wb['error_short_value_for'] = 'Pole \"%s\" wymaga dłuższej wartości'; -$wb['error_long_value_for'] = 'Pole \"%s\" wymaga krótszej wartości'; -$wb['error_inv_value_for'] = 'Wprowadziłeś nieprawidłową wartość w polu \"%s\"'; -$wb['error_inv_email_for'] = 'Wprowadziłeś nieprawidłowy adres email w polu \"%s\"'; -$wb['error_inv_domain_for'] = 'Wprowadziłeś nieprawidłową domenę w polu \"%s\"'; -$wb['error_inv_integer_for'] = 'Wprowadziłeś nieprawidłową liczbę w polu \"%s\"'; -$wb['error_inv_float_for'] = 'Wprowadziłeś nieprawidłową liczbę w polu \"%s\"'; +$wb['error_no_value_for'] = 'Pole \\"%s\\" nie może być puste'; +$wb['error_short_value_for'] = 'Pole \\"%s\\" wymaga dłuższej wartości'; +$wb['error_long_value_for'] = 'Pole \\"%s\\" wymaga krótszej wartości'; +$wb['error_inv_value_for'] = 'Wprowadziłeś nieprawidłową wartość w polu \\"%s\\"'; +$wb['error_inv_email_for'] = 'Wprowadziłeś nieprawidłowy adres email w polu \\"%s\\"'; +$wb['error_inv_domain_for'] = 'Wprowadziłeś nieprawidłową domenę w polu \\"%s\\"'; +$wb['error_inv_integer_for'] = 'Wprowadziłeś nieprawidłową liczbę w polu \\"%s\\"'; +$wb['error_inv_float_for'] = 'Wprowadziłeś nieprawidłową liczbę w polu \\"%s\\"'; $wb['error_used_location'] = 'Ścieżka instalacji zawiera już zainstalowany pakiet.'; $wb['installation_task_txt'] = 'Instalacja planowana'; $wb['installation_error_txt'] = 'Błąd instalacji'; diff --git a/interface/web/sites/lib/lang/pt.lng b/interface/web/sites/lib/lang/pt.lng index 6cd9798fa..c1fca015b 100644 --- a/interface/web/sites/lib/lang/pt.lng +++ b/interface/web/sites/lib/lang/pt.lng @@ -31,5 +31,5 @@ $wb['Available packages'] = 'Available packages'; $wb['Installed packages'] = 'Installed packages'; $wb['Update Packagelist'] = 'Update Packagelist'; $wb['Subdomain (Vhost)'] = 'Subdomain (Vhost)'; -$wb['error_proxy_requires_url'] = 'Redirect Type \"proxy\" requires a URL as the redirect path.'; +$wb['error_proxy_requires_url'] = 'Redirect Type \\"proxy\\" requires a URL as the redirect path.'; ?> diff --git a/interface/web/sites/lib/lang/pt_aps.lng b/interface/web/sites/lib/lang/pt_aps.lng index 33c4e8726..c17ef0091 100644 --- a/interface/web/sites/lib/lang/pt_aps.lng +++ b/interface/web/sites/lib/lang/pt_aps.lng @@ -38,14 +38,14 @@ $wb['error_inv_main_location'] = 'The given install location folder is invalid.' $wb['error_license_agreement'] = 'In order to continue you have to accept the license agreement.'; $wb['error_no_database_pw'] = 'You have provided no valid database password.'; $wb['error_short_database_pw'] = 'Please choose a longer database password.'; -$wb['error_no_value_for'] = 'The field \"%s\" must not be empty.'; -$wb['error_short_value_for'] = 'The field \"%s\" requires a longer input value.'; -$wb['error_long_value_for'] = 'The field \"%s\" requires a shorter input value.'; -$wb['error_inv_value_for'] = 'You have entered an invalid value for the field \"%s\".'; -$wb['error_inv_email_for'] = 'You have entered an invalid mail address for the field \"%s\".'; -$wb['error_inv_domain_for'] = 'You have entered an invalid domain for the field \"%s\".'; -$wb['error_inv_integer_for'] = 'You have entered an invalid number for the field \"%s\".'; -$wb['error_inv_float_for'] = 'You have entered an invalid floating point number for the field \"%s\".'; +$wb['error_no_value_for'] = 'The field \\"%s\\" must not be empty.'; +$wb['error_short_value_for'] = 'The field \\"%s\\" requires a longer input value.'; +$wb['error_long_value_for'] = 'The field \\"%s\\" requires a shorter input value.'; +$wb['error_inv_value_for'] = 'You have entered an invalid value for the field \\"%s\\".'; +$wb['error_inv_email_for'] = 'You have entered an invalid mail address for the field \\"%s\\".'; +$wb['error_inv_domain_for'] = 'You have entered an invalid domain for the field \\"%s\\".'; +$wb['error_inv_integer_for'] = 'You have entered an invalid number for the field \\"%s\\".'; +$wb['error_inv_float_for'] = 'You have entered an invalid floating point number for the field \\"%s\\".'; $wb['error_used_location'] = 'The installation path already contains a package installation.'; $wb['installation_task_txt'] = 'Install planned'; $wb['installation_error_txt'] = 'Install error'; diff --git a/interface/web/sites/lib/lang/pt_web_childdomain.lng b/interface/web/sites/lib/lang/pt_web_childdomain.lng index 688af77bd..4cbc032c1 100644 --- a/interface/web/sites/lib/lang/pt_web_childdomain.lng +++ b/interface/web/sites/lib/lang/pt_web_childdomain.lng @@ -42,7 +42,7 @@ $wb['no_flag_txt'] = 'No flag'; $wb['domain_error_wildcard'] = 'Wildcard subdomains are not allowed.'; $wb['proxy_directives_txt'] = 'Proxy Directives'; $wb['available_proxy_directive_snippets_txt'] = 'Available Proxy Directive Snippets:'; -$wb['error_proxy_requires_url'] = 'Redirect Type \"proxy\" requires a URL as the redirect path.'; +$wb['error_proxy_requires_url'] = 'Redirect Type \\"proxy\\" requires a URL as the redirect path.'; $wb['backup_interval_txt'] = 'Backup interval'; $wb['backup_copies_txt'] = 'Number of backup copies'; $wb['ssl_key_txt'] = 'SSL Key'; diff --git a/interface/web/sites/lib/lang/pt_web_subdomain.lng b/interface/web/sites/lib/lang/pt_web_subdomain.lng index 8f2fd70e4..8a4f1440f 100644 --- a/interface/web/sites/lib/lang/pt_web_subdomain.lng +++ b/interface/web/sites/lib/lang/pt_web_subdomain.lng @@ -42,7 +42,7 @@ $wb['no_flag_txt'] = 'No flag'; $wb['domain_error_wildcard'] = 'Wildcard subdomains are not allowed.'; $wb['proxy_directives_txt'] = 'Proxy Directives'; $wb['available_proxy_directive_snippets_txt'] = 'Available Proxy Directive Snippets:'; -$wb['error_proxy_requires_url'] = 'Redirect Type \"proxy\" requires a URL as the redirect path.'; +$wb['error_proxy_requires_url'] = 'Redirect Type \\"proxy\\" requires a URL as the redirect path.'; $wb['http_port_txt'] = 'HTTP Port'; $wb['https_port_txt'] = 'HTTPS Port'; $wb['http_port_error_regex'] = 'HTTP Port invalid.'; diff --git a/interface/web/sites/lib/lang/ro.lng b/interface/web/sites/lib/lang/ro.lng index 418585ea5..f674e91b8 100644 --- a/interface/web/sites/lib/lang/ro.lng +++ b/interface/web/sites/lib/lang/ro.lng @@ -31,5 +31,5 @@ $wb['Available packages'] = 'Available packages'; $wb['Installed packages'] = 'Installed packages'; $wb['Update Packagelist'] = 'Update Packagelist'; $wb['Subdomain (Vhost)'] = 'Subdomain (Vhost)'; -$wb['error_proxy_requires_url'] = 'Redirect Type \"proxy\" requires a URL as the redirect path.'; +$wb['error_proxy_requires_url'] = 'Redirect Type \\"proxy\\" requires a URL as the redirect path.'; ?> diff --git a/interface/web/sites/lib/lang/ro_aps.lng b/interface/web/sites/lib/lang/ro_aps.lng index 3ff130f57..881c146a4 100644 --- a/interface/web/sites/lib/lang/ro_aps.lng +++ b/interface/web/sites/lib/lang/ro_aps.lng @@ -38,14 +38,14 @@ $wb['error_inv_main_location'] = 'The given install location folder is invalid.' $wb['error_license_agreement'] = 'In order to continue you have to accept the license agreement.'; $wb['error_no_database_pw'] = 'You have provided no valid database password.'; $wb['error_short_database_pw'] = 'Please choose a longer database password.'; -$wb['error_no_value_for'] = 'The field \"%s\" must not be empty.'; -$wb['error_short_value_for'] = 'The field \"%s\" requires a longer input value.'; -$wb['error_long_value_for'] = 'The field \"%s\" requires a shorter input value.'; -$wb['error_inv_value_for'] = 'You have entered an invalid value for the field \"%s\".'; -$wb['error_inv_email_for'] = 'You have entered an invalid mail address for the field \"%s\".'; -$wb['error_inv_domain_for'] = 'You have entered an invalid domain for the field \"%s\".'; -$wb['error_inv_integer_for'] = 'You have entered an invalid number for the field \"%s\".'; -$wb['error_inv_float_for'] = 'You have entered an invalid floating point number for the field \"%s\".'; +$wb['error_no_value_for'] = 'The field \\"%s\\" must not be empty.'; +$wb['error_short_value_for'] = 'The field \\"%s\\" requires a longer input value.'; +$wb['error_long_value_for'] = 'The field \\"%s\\" requires a shorter input value.'; +$wb['error_inv_value_for'] = 'You have entered an invalid value for the field \\"%s\\".'; +$wb['error_inv_email_for'] = 'You have entered an invalid mail address for the field \\"%s\\".'; +$wb['error_inv_domain_for'] = 'You have entered an invalid domain for the field \\"%s\\".'; +$wb['error_inv_integer_for'] = 'You have entered an invalid number for the field \\"%s\\".'; +$wb['error_inv_float_for'] = 'You have entered an invalid floating point number for the field \\"%s\\".'; $wb['error_used_location'] = 'The installation path already contains a package installation.'; $wb['installation_task_txt'] = 'Install planned'; $wb['installation_error_txt'] = 'Install error'; diff --git a/interface/web/sites/lib/lang/ro_web_childdomain.lng b/interface/web/sites/lib/lang/ro_web_childdomain.lng index 5f5678651..30f83e728 100644 --- a/interface/web/sites/lib/lang/ro_web_childdomain.lng +++ b/interface/web/sites/lib/lang/ro_web_childdomain.lng @@ -43,7 +43,7 @@ $wb['no_flag_txt'] = 'No flag'; $wb['domain_error_wildcard'] = 'Wildcard subdomains are not allowed.'; $wb['proxy_directives_txt'] = 'Proxy Directives'; $wb['available_proxy_directive_snippets_txt'] = 'Available Proxy Directive Snippets:'; -$wb['error_proxy_requires_url'] = 'Redirect Type \"proxy\" requires a URL as the redirect path.'; +$wb['error_proxy_requires_url'] = 'Redirect Type \\"proxy\\" requires a URL as the redirect path.'; $wb['backup_interval_txt'] = 'Backup interval'; $wb['backup_copies_txt'] = 'Number of backup copies'; $wb['ssl_key_txt'] = 'SSL Key'; diff --git a/interface/web/sites/lib/lang/ro_web_subdomain.lng b/interface/web/sites/lib/lang/ro_web_subdomain.lng index 436acc4cf..f36685be8 100644 --- a/interface/web/sites/lib/lang/ro_web_subdomain.lng +++ b/interface/web/sites/lib/lang/ro_web_subdomain.lng @@ -42,7 +42,7 @@ $wb['no_flag_txt'] = 'No flag'; $wb['domain_error_wildcard'] = 'Wildcard subdomains are not allowed.'; $wb['proxy_directives_txt'] = 'Proxy Directives'; $wb['available_proxy_directive_snippets_txt'] = 'Available Proxy Directive Snippets:'; -$wb['error_proxy_requires_url'] = 'Redirect Type \"proxy\" requires a URL as the redirect path.'; +$wb['error_proxy_requires_url'] = 'Redirect Type \\"proxy\\" requires a URL as the redirect path.'; $wb['http_port_txt'] = 'HTTP Port'; $wb['https_port_txt'] = 'HTTPS Port'; $wb['http_port_error_regex'] = 'HTTP Port invalid.'; diff --git a/interface/web/sites/lib/lang/ru.lng b/interface/web/sites/lib/lang/ru.lng index 6316c21d1..dbf292604 100644 --- a/interface/web/sites/lib/lang/ru.lng +++ b/interface/web/sites/lib/lang/ru.lng @@ -31,5 +31,5 @@ $wb['Available packages'] = 'Доступные пакеты'; $wb['Installed packages'] = 'Установленные пакеты'; $wb['Update Packagelist'] = 'Обновить список пакетов'; $wb['Subdomain (Vhost)'] = 'Поддомен (Vhost)'; -$wb['error_proxy_requires_url'] = 'Тип редиректа \"proxy\" требует URL в качестве пути перенаправления.'; +$wb['error_proxy_requires_url'] = 'Тип редиректа \\"proxy\\" требует URL в качестве пути перенаправления.'; ?> diff --git a/interface/web/sites/lib/lang/ru_aps.lng b/interface/web/sites/lib/lang/ru_aps.lng index 3dd4ad0a8..d2225358c 100644 --- a/interface/web/sites/lib/lang/ru_aps.lng +++ b/interface/web/sites/lib/lang/ru_aps.lng @@ -38,14 +38,14 @@ $wb['error_inv_main_location'] = 'Вы указали некорректную $wb['error_license_agreement'] = 'Для продолжения нужно принять лицензионное соглашение.'; $wb['error_no_database_pw'] = 'Вы предоставили не правильный пароль базы данных.'; $wb['error_short_database_pw'] = 'Пожалуйста, выберите более длинный пароль базы данных.'; -$wb['error_no_value_for'] = 'Поле \"%s\" не может быть пустым.'; -$wb['error_short_value_for'] = 'Поле \"%s\" требует более длинного входного значения.'; -$wb['error_long_value_for'] = 'Поле \"%s\"требует более короткого входного значения.'; -$wb['error_inv_value_for'] = 'Вы ввели неверное значение для поля \"%s\".'; -$wb['error_inv_email_for'] = 'Вы ввели некорректный адрес электронной почты для поля \"%s\".'; -$wb['error_inv_domain_for'] = 'Вы ввели некорректный домен для поля \"%s\".'; -$wb['error_inv_integer_for'] = 'Вы ввели некорректное число для поля \"%s\".'; -$wb['error_inv_float_for'] = 'Вы ввели некорректное число с плавающей точкой для поля \"%s\".'; +$wb['error_no_value_for'] = 'Поле \\"%s\\" не может быть пустым.'; +$wb['error_short_value_for'] = 'Поле \\"%s\\" требует более длинного входного значения.'; +$wb['error_long_value_for'] = 'Поле \\"%s\\"требует более короткого входного значения.'; +$wb['error_inv_value_for'] = 'Вы ввели неверное значение для поля \\"%s\\".'; +$wb['error_inv_email_for'] = 'Вы ввели некорректный адрес электронной почты для поля \\"%s\\".'; +$wb['error_inv_domain_for'] = 'Вы ввели некорректный домен для поля \\"%s\\".'; +$wb['error_inv_integer_for'] = 'Вы ввели некорректное число для поля \\"%s\\".'; +$wb['error_inv_float_for'] = 'Вы ввели некорректное число с плавающей точкой для поля \\"%s\\".'; $wb['error_used_location'] = 'Путь установки уже содержит установочный пакет.'; $wb['installation_task_txt'] = 'Запланирована установка'; $wb['installation_error_txt'] = 'Ошибка установки'; diff --git a/interface/web/sites/lib/lang/ru_database.lng b/interface/web/sites/lib/lang/ru_database.lng index b931b715f..0f5eaf318 100644 --- a/interface/web/sites/lib/lang/ru_database.lng +++ b/interface/web/sites/lib/lang/ru_database.lng @@ -13,7 +13,7 @@ $wb['database_name_error_unique'] = 'Имя базы данных уже сущ $wb['database_name_error_regex'] = 'Неверное имя базы данных. Имя базы данных может содержать только следующие символы: a-z, A-Z, 0-9 и нижний пробел _. Длина: 2 - 64 символа.'; $wb['database_user_error_empty'] = 'Логин базы данных пустой'; $wb['database_user_error_unique'] = 'Такой пользователь базы данных уже существует. Что бы получить уникальное имя, например, сложите название сайта и ваше имя.'; -$wb['database_user_error_regex'] = 'Некорректный логин для базы данных. Логин может содержать только следующие символы: a-z, A-Z, 0-9 и \"_\". Длина: 2 - 16 символов.'; +$wb['database_user_error_regex'] = 'Некорректный логин для базы данных. Логин может содержать только следующие символы: a-z, A-Z, 0-9 и \\"_\\". Длина: 2 - 16 символов.'; $wb['limit_database_txt'] = 'Достигнуто максимальное количество БД.'; $wb['database_name_change_txt'] = 'Имя базы данных не может быть изменено.'; $wb['database_charset_change_txt'] = 'Кодировка базы данных не может быть изменена'; diff --git a/interface/web/sites/lib/lang/ru_database_user.lng b/interface/web/sites/lib/lang/ru_database_user.lng index df927317c..7de99a11d 100644 --- a/interface/web/sites/lib/lang/ru_database_user.lng +++ b/interface/web/sites/lib/lang/ru_database_user.lng @@ -6,7 +6,7 @@ $wb['client_txt'] = 'Клиент'; $wb['active_txt'] = 'Активно'; $wb['database_user_error_empty'] = 'Логин базы данных пустой'; $wb['database_user_error_unique'] = 'Такой пользователь базы данных уже существует. Что бы получить уникальное имя, например, сложите название сайта и ваше имя.'; -$wb['database_user_error_regex'] = 'Некорректный логин для базы данных. Логин может содержать только следующие символы: a-z, A-Z, 0-9 и \"_\". Длина: 2 - 16 символов.'; +$wb['database_user_error_regex'] = 'Некорректный логин для базы данных. Логин может содержать только следующие символы: a-z, A-Z, 0-9 и \\"_\\". Длина: 2 - 16 символов.'; $wb['database_user_error_len'] = 'Логин для базы данных - {user} - cлишком длинный. Максимальная длина логина - 16 символов'; $wb['btn_save_txt'] = 'Сохранить'; $wb['btn_cancel_txt'] = 'Отменить'; diff --git a/interface/web/sites/lib/lang/ru_web_childdomain.lng b/interface/web/sites/lib/lang/ru_web_childdomain.lng index 49905e77e..af71669a4 100644 --- a/interface/web/sites/lib/lang/ru_web_childdomain.lng +++ b/interface/web/sites/lib/lang/ru_web_childdomain.lng @@ -42,7 +42,7 @@ $wb['no_flag_txt'] = 'Нет флага'; $wb['domain_error_wildcard'] = 'Wildcard поддомены не допускаются.'; $wb['proxy_directives_txt'] = 'Директивы прокси'; $wb['available_proxy_directive_snippets_txt'] = 'Доступные заготовки директив Proxy:'; -$wb['error_proxy_requires_url'] = 'Тип редиректа \"proxy\" требует URL в качестве пути перенаправления.'; +$wb['error_proxy_requires_url'] = 'Тип редиректа \\"proxy\\" требует URL в качестве пути перенаправления.'; $wb['backup_interval_txt'] = 'Интервал резервного копирования'; $wb['backup_copies_txt'] = 'Количество резервных копий'; $wb['ssl_key_txt'] = 'SSL-ключ'; diff --git a/interface/web/sites/lib/lang/ru_web_subdomain.lng b/interface/web/sites/lib/lang/ru_web_subdomain.lng index 46203a181..376c78943 100644 --- a/interface/web/sites/lib/lang/ru_web_subdomain.lng +++ b/interface/web/sites/lib/lang/ru_web_subdomain.lng @@ -42,7 +42,7 @@ $wb['no_flag_txt'] = 'Нет флага'; $wb['domain_error_wildcard'] = 'Wildcard-поддомены не допускаются.'; $wb['proxy_directives_txt'] = 'Директивы прокси'; $wb['available_proxy_directive_snippets_txt'] = 'Доступные заготовки директив Proxy:'; -$wb['error_proxy_requires_url'] = 'Тип редиректа \"proxy\" требует URL в качестве пути перенаправления.'; +$wb['error_proxy_requires_url'] = 'Тип редиректа \\"proxy\\" требует URL в качестве пути перенаправления.'; $wb['http_port_txt'] = 'Порт HTTP'; $wb['https_port_txt'] = 'Порт HTTPS'; $wb['http_port_error_regex'] = 'Некорректный порт HTTP.'; diff --git a/interface/web/sites/lib/lang/se.lng b/interface/web/sites/lib/lang/se.lng index a63670545..6b44cdcf7 100644 --- a/interface/web/sites/lib/lang/se.lng +++ b/interface/web/sites/lib/lang/se.lng @@ -31,5 +31,5 @@ $wb['Available packages'] = 'Tillgängliga paket'; $wb['Installed packages'] = 'Installerade paket'; $wb['Update Packagelist'] = 'Uppdatera paketlista'; $wb['Subdomain (Vhost)'] = 'Underdomän (Vhost)'; -$wb['error_proxy_requires_url'] = 'Redirect Type \"proxy\" requires a URL as the redirect path.'; +$wb['error_proxy_requires_url'] = 'Redirect Type \\"proxy\\" requires a URL as the redirect path.'; ?> diff --git a/interface/web/sites/lib/lang/se_aps.lng b/interface/web/sites/lib/lang/se_aps.lng index f399880de..3b32095d6 100644 --- a/interface/web/sites/lib/lang/se_aps.lng +++ b/interface/web/sites/lib/lang/se_aps.lng @@ -38,14 +38,14 @@ $wb['error_inv_main_location'] = 'The given install location folder is invalid.' $wb['error_license_agreement'] = 'In order to continue you have to accept the license agreement.'; $wb['error_no_database_pw'] = 'You have provided no valid database password.'; $wb['error_short_database_pw'] = 'Please choose a longer database password.'; -$wb['error_no_value_for'] = 'The field \"%s\" must not be empty.'; -$wb['error_short_value_for'] = 'The field \"%s\" requires a longer input value.'; -$wb['error_long_value_for'] = 'The field \"%s\" requires a shorter input value.'; -$wb['error_inv_value_for'] = 'You have entered an invalid value for the field \"%s\".'; -$wb['error_inv_email_for'] = 'You have entered an invalid mail address for the field \"%s\".'; -$wb['error_inv_domain_for'] = 'You have entered an invalid domain for the field \"%s\".'; -$wb['error_inv_integer_for'] = 'You have entered an invalid number for the field \"%s\".'; -$wb['error_inv_float_for'] = 'You have entered an invalid floating point number for the field \"%s\".'; +$wb['error_no_value_for'] = 'The field \\"%s\\" must not be empty.'; +$wb['error_short_value_for'] = 'The field \\"%s\\" requires a longer input value.'; +$wb['error_long_value_for'] = 'The field \\"%s\\" requires a shorter input value.'; +$wb['error_inv_value_for'] = 'You have entered an invalid value for the field \\"%s\\".'; +$wb['error_inv_email_for'] = 'You have entered an invalid mail address for the field \\"%s\\".'; +$wb['error_inv_domain_for'] = 'You have entered an invalid domain for the field \\"%s\\".'; +$wb['error_inv_integer_for'] = 'You have entered an invalid number for the field \\"%s\\".'; +$wb['error_inv_float_for'] = 'You have entered an invalid floating point number for the field \\"%s\\".'; $wb['error_used_location'] = 'The installation path already contains a package installation.'; $wb['installation_task_txt'] = 'Installation planerad'; $wb['installation_error_txt'] = 'Installationsfel'; diff --git a/interface/web/sites/lib/lang/se_web_childdomain.lng b/interface/web/sites/lib/lang/se_web_childdomain.lng index 52fba020a..eff6791c6 100644 --- a/interface/web/sites/lib/lang/se_web_childdomain.lng +++ b/interface/web/sites/lib/lang/se_web_childdomain.lng @@ -43,7 +43,7 @@ $wb['no_flag_txt'] = 'No flag'; $wb['domain_error_wildcard'] = 'Wildcard subdomains are not allowed.'; $wb['proxy_directives_txt'] = 'Proxy Directives'; $wb['available_proxy_directive_snippets_txt'] = 'Available Proxy Directive Snippets:'; -$wb['error_proxy_requires_url'] = 'Redirect Type \"proxy\" requires a URL as the redirect path.'; +$wb['error_proxy_requires_url'] = 'Redirect Type \\"proxy\\" requires a URL as the redirect path.'; $wb['backup_interval_txt'] = 'Backup interval'; $wb['backup_copies_txt'] = 'Number of backup copies'; $wb['ssl_key_txt'] = 'SSL Key'; diff --git a/interface/web/sites/lib/lang/se_web_subdomain.lng b/interface/web/sites/lib/lang/se_web_subdomain.lng index a2d73c012..ec784641e 100644 --- a/interface/web/sites/lib/lang/se_web_subdomain.lng +++ b/interface/web/sites/lib/lang/se_web_subdomain.lng @@ -42,7 +42,7 @@ $wb['no_flag_txt'] = 'Ingan flagga'; $wb['domain_error_wildcard'] = 'Wildcard subdomains are not allowed.'; $wb['proxy_directives_txt'] = 'Proxy Directives'; $wb['available_proxy_directive_snippets_txt'] = 'Available Proxy Directive Snippets:'; -$wb['error_proxy_requires_url'] = 'Redirect Type \"proxy\" requires a URL as the redirect path.'; +$wb['error_proxy_requires_url'] = 'Redirect Type \\"proxy\\" requires a URL as the redirect path.'; $wb['http_port_txt'] = 'HTTP Port'; $wb['https_port_txt'] = 'HTTPS Port'; $wb['http_port_error_regex'] = 'HTTP Port invalid.'; diff --git a/interface/web/sites/lib/lang/sk.lng b/interface/web/sites/lib/lang/sk.lng index 401ad2c65..fabf52fda 100644 --- a/interface/web/sites/lib/lang/sk.lng +++ b/interface/web/sites/lib/lang/sk.lng @@ -31,5 +31,5 @@ $wb['Available packages'] = 'Available packages'; $wb['Installed packages'] = 'Installed packages'; $wb['Update Packagelist'] = 'Update Packagelist'; $wb['Subdomain (Vhost)'] = 'Subdomain (Vhost)'; -$wb['error_proxy_requires_url'] = 'Redirect Type \"proxy\" requires a URL as the redirect path.'; +$wb['error_proxy_requires_url'] = 'Redirect Type \\"proxy\\" requires a URL as the redirect path.'; ?> diff --git a/interface/web/sites/lib/lang/sk_aps.lng b/interface/web/sites/lib/lang/sk_aps.lng index 2b3dc9a0f..d6e6c7f4c 100644 --- a/interface/web/sites/lib/lang/sk_aps.lng +++ b/interface/web/sites/lib/lang/sk_aps.lng @@ -38,14 +38,14 @@ $wb['error_inv_main_location'] = 'The given install location folder is invalid.' $wb['error_license_agreement'] = 'In order to continue you have to accept the license agreement.'; $wb['error_no_database_pw'] = 'You have provided no valid database password.'; $wb['error_short_database_pw'] = 'Please choose a longer database password.'; -$wb['error_no_value_for'] = 'The field \"%s\" must not be empty.'; -$wb['error_short_value_for'] = 'The field \"%s\" requires a longer input value.'; -$wb['error_long_value_for'] = 'The field \"%s\" requires a shorter input value.'; -$wb['error_inv_value_for'] = 'You have entered an invalid value for the field \"%s\".'; -$wb['error_inv_email_for'] = 'You have entered an invalid mail address for the field \"%s\".'; -$wb['error_inv_domain_for'] = 'You have entered an invalid domain for the field \"%s\".'; -$wb['error_inv_integer_for'] = 'You have entered an invalid number for the field \"%s\".'; -$wb['error_inv_float_for'] = 'You have entered an invalid floating point number for the field \"%s\".'; +$wb['error_no_value_for'] = 'The field \\"%s\\" must not be empty.'; +$wb['error_short_value_for'] = 'The field \\"%s\\" requires a longer input value.'; +$wb['error_long_value_for'] = 'The field \\"%s\\" requires a shorter input value.'; +$wb['error_inv_value_for'] = 'You have entered an invalid value for the field \\"%s\\".'; +$wb['error_inv_email_for'] = 'You have entered an invalid mail address for the field \\"%s\\".'; +$wb['error_inv_domain_for'] = 'You have entered an invalid domain for the field \\"%s\\".'; +$wb['error_inv_integer_for'] = 'You have entered an invalid number for the field \\"%s\\".'; +$wb['error_inv_float_for'] = 'You have entered an invalid floating point number for the field \\"%s\\".'; $wb['error_used_location'] = 'The installation path already contains a package installation.'; $wb['installation_task_txt'] = 'Install planned'; $wb['installation_error_txt'] = 'Install error'; diff --git a/interface/web/sites/lib/lang/sk_web_childdomain.lng b/interface/web/sites/lib/lang/sk_web_childdomain.lng index c91bee49a..e0d26667b 100644 --- a/interface/web/sites/lib/lang/sk_web_childdomain.lng +++ b/interface/web/sites/lib/lang/sk_web_childdomain.lng @@ -42,7 +42,7 @@ $wb['no_flag_txt'] = 'No flag'; $wb['domain_error_wildcard'] = 'Wildcard subdomains are not allowed.'; $wb['proxy_directives_txt'] = 'Proxy Directives'; $wb['available_proxy_directive_snippets_txt'] = 'Available Proxy Directive Snippets:'; -$wb['error_proxy_requires_url'] = 'Redirect Type \"proxy\" requires a URL as the redirect path.'; +$wb['error_proxy_requires_url'] = 'Redirect Type \\"proxy\\" requires a URL as the redirect path.'; $wb['backup_interval_txt'] = 'Backup interval'; $wb['backup_copies_txt'] = 'Number of backup copies'; $wb['ssl_key_txt'] = 'SSL Key'; diff --git a/interface/web/sites/lib/lang/sk_web_subdomain.lng b/interface/web/sites/lib/lang/sk_web_subdomain.lng index d44bb27bd..f6bcffd90 100644 --- a/interface/web/sites/lib/lang/sk_web_subdomain.lng +++ b/interface/web/sites/lib/lang/sk_web_subdomain.lng @@ -42,7 +42,7 @@ $wb['no_flag_txt'] = 'No flag'; $wb['domain_error_wildcard'] = 'Wildcard subdomains are not allowed.'; $wb['proxy_directives_txt'] = 'Proxy Directives'; $wb['available_proxy_directive_snippets_txt'] = 'Available Proxy Directive Snippets:'; -$wb['error_proxy_requires_url'] = 'Redirect Type \"proxy\" requires a URL as the redirect path.'; +$wb['error_proxy_requires_url'] = 'Redirect Type \\"proxy\\" requires a URL as the redirect path.'; $wb['http_port_txt'] = 'HTTP Port'; $wb['https_port_txt'] = 'HTTPS Port'; $wb['http_port_error_regex'] = 'HTTP Port invalid.'; diff --git a/interface/web/sites/lib/lang/tr.lng b/interface/web/sites/lib/lang/tr.lng index 4f8620c34..d0570f6c1 100644 --- a/interface/web/sites/lib/lang/tr.lng +++ b/interface/web/sites/lib/lang/tr.lng @@ -31,5 +31,5 @@ $wb['Available packages'] = 'Kullanılabilecek Paketler'; $wb['Installed packages'] = 'Yüklü Paketler'; $wb['Update Packagelist'] = 'Güncelleme Paketi Listesi'; $wb['Subdomain (Vhost)'] = 'Alt alan adı (SSunucu)'; -$wb['error_proxy_requires_url'] = '\"Vekil Sunucu\" yönlendirme tipi için, yönlendirilecek yolu gösteren bir İnternet adresi gereklidir.'; +$wb['error_proxy_requires_url'] = '\\"Vekil Sunucu\\" yönlendirme tipi için, yönlendirilecek yolu gösteren bir İnternet adresi gereklidir.'; ?> diff --git a/interface/web/sites/lib/lang/tr_aps.lng b/interface/web/sites/lib/lang/tr_aps.lng index f0eea59cb..1c6ccd49a 100644 --- a/interface/web/sites/lib/lang/tr_aps.lng +++ b/interface/web/sites/lib/lang/tr_aps.lng @@ -40,14 +40,14 @@ $wb['error_inv_main_location'] = 'Yazdığınız yükleme konumunu klasörü ge $wb['error_license_agreement'] = 'Devam etmek için lisans anlaşmasını onaylamalısınız.'; $wb['error_no_database_pw'] = 'Yazdığınız veritabanı parolası geçersiz.'; $wb['error_short_database_pw'] = 'Lütfen daha uzun bir veritabanı parolası yazın.'; -$wb['error_no_value_for'] = '\"%s\" alanı boş olamaz.'; -$wb['error_short_value_for'] = '\"%s\" alanına daha uzun bir değer yazılmalıdır.'; -$wb['error_long_value_for'] = '\"%s\" alanına daha kısa bir değer yazılmalıdır.'; -$wb['error_inv_value_for'] = '\"%s\" alanına yazılan değer geçersiz.'; -$wb['error_inv_email_for'] = '\"%s\" alanına yazılan e-posta adresi geçersiz.'; -$wb['error_inv_domain_for'] = '\"%s\" alanına yazılan alan adı geçersiz.'; -$wb['error_inv_integer_for'] = '\"%s\" alanına yazılan sayı geçersiz.'; -$wb['error_inv_float_for'] = '\"%s\" alanına yazılan küsuratlı sayı geçersiz.'; +$wb['error_no_value_for'] = '\\"%s\\" alanı boş olamaz.'; +$wb['error_short_value_for'] = '\\"%s\\" alanına daha uzun bir değer yazılmalıdır.'; +$wb['error_long_value_for'] = '\\"%s\\" alanına daha kısa bir değer yazılmalıdır.'; +$wb['error_inv_value_for'] = '\\"%s\\" alanına yazılan değer geçersiz.'; +$wb['error_inv_email_for'] = '\\"%s\\" alanına yazılan e-posta adresi geçersiz.'; +$wb['error_inv_domain_for'] = '\\"%s\\" alanına yazılan alan adı geçersiz.'; +$wb['error_inv_integer_for'] = '\\"%s\\" alanına yazılan sayı geçersiz.'; +$wb['error_inv_float_for'] = '\\"%s\\" alanına yazılan küsuratlı sayı geçersiz.'; $wb['error_used_location'] = 'Yükleme yoluna daha önce yüklenmiş bir paket var.'; $wb['installation_task_txt'] = 'Yükleme planlandı'; $wb['installation_error_txt'] = 'Yükleme hatası'; diff --git a/interface/web/sites/lib/lang/tr_web_childdomain.lng b/interface/web/sites/lib/lang/tr_web_childdomain.lng index 5d68e809b..e11c6a92b 100644 --- a/interface/web/sites/lib/lang/tr_web_childdomain.lng +++ b/interface/web/sites/lib/lang/tr_web_childdomain.lng @@ -42,7 +42,7 @@ $wb['no_flag_txt'] = 'No flag'; $wb['domain_error_wildcard'] = 'Wildcard subdomains are not allowed.'; $wb['proxy_directives_txt'] = 'Proxy Directives'; $wb['available_proxy_directive_snippets_txt'] = 'Available Proxy Directive Snippets:'; -$wb['error_proxy_requires_url'] = 'Redirect Type \"proxy\" requires a URL as the redirect path.'; +$wb['error_proxy_requires_url'] = 'Redirect Type \\"proxy\\" requires a URL as the redirect path.'; $wb['backup_interval_txt'] = 'Backup interval'; $wb['backup_copies_txt'] = 'Number of backup copies'; $wb['ssl_key_txt'] = 'SSL Key'; diff --git a/interface/web/sites/lib/lang/tr_web_subdomain.lng b/interface/web/sites/lib/lang/tr_web_subdomain.lng index c6e28bc6f..188b25758 100644 --- a/interface/web/sites/lib/lang/tr_web_subdomain.lng +++ b/interface/web/sites/lib/lang/tr_web_subdomain.lng @@ -42,7 +42,7 @@ $wb['no_redirect_txt'] = 'Yönlendirme yok'; $wb['no_flag_txt'] = 'İşaret yok'; $wb['proxy_directives_txt'] = 'Vekil Sunucu Yönergeleri'; $wb['available_proxy_directive_snippets_txt'] = 'Kullanılabilecek Vekil Sunucu Yönerge Parçaları:'; -$wb['error_proxy_requires_url'] = '\"Vekil Sunucu\" yönlendirme tipi için, yönlendirilecek yolu gösteren bir İnternet adresi gereklidir.'; +$wb['error_proxy_requires_url'] = '\\"Vekil Sunucu\\" yönlendirme tipi için, yönlendirilecek yolu gösteren bir İnternet adresi gereklidir.'; $wb['http_port_txt'] = 'HTTP Port'; $wb['https_port_txt'] = 'HTTPS Port'; $wb['http_port_error_regex'] = 'HTTP Port invalid.'; diff --git a/interface/web/vm/lib/lang/dk_openvz_template.lng b/interface/web/vm/lib/lang/dk_openvz_template.lng index 7016f41a6..9de4a6fd9 100644 --- a/interface/web/vm/lib/lang/dk_openvz_template.lng +++ b/interface/web/vm/lib/lang/dk_openvz_template.lng @@ -44,7 +44,7 @@ $wb['tcpsndbuf_desc_txt'] = 'Total størrelse af TCP send buffere.'; $wb['tcprcvbuf_desc_txt'] = 'Total størrelse af TCP modtage buffere.'; $wb['othersockbuf_desc_txt'] = 'Total størrelse af UNIX-domæne sokel buffere, UDP og andre datagram protokoller send buffere.'; $wb['dgramrcvbuf_desc_txt'] = 'Modtage buffere af UDP og andre datagram protokoller.'; -$wb['oomguarpages_desc_txt'] = 'Den garanterede mængde hukommelse for det tilfælde hukommelsen er \"over-booked\" (out-of-memory kill guarantee), i sider.'; +$wb['oomguarpages_desc_txt'] = 'Den garanterede mængde hukommelse for det tilfælde hukommelsen er \\"over-booked\\" (out-of-memory kill guarantee), i sider.'; $wb['privvmpages_desc_txt'] = 'Hukommelses grænse tildeling, i sider.'; $wb['lockedpages_desc_txt'] = 'Proces-sider uden tiladelse til at blive byttet ud (pages locked by mlock(2)).'; $wb['shmpages_desc_txt'] = 'Total størrelse af delt hukommelse (IPC, delt anonyme afbildninger og tmpfs objekter), i sider.'; diff --git a/interface/web/vm/lib/lang/es_openvz_template.lng b/interface/web/vm/lib/lang/es_openvz_template.lng index 1868240d3..1abd562ed 100644 --- a/interface/web/vm/lib/lang/es_openvz_template.lng +++ b/interface/web/vm/lib/lang/es_openvz_template.lng @@ -44,7 +44,7 @@ $wb['tcpsndbuf_desc_txt'] = 'Tamaño total de los buffers de envío TCP.'; $wb['tcprcvbuf_desc_txt'] = 'Tamaño total de los buffers de recepción TCP.'; $wb['othersockbuf_desc_txt'] = 'Tamaño total de buffers de socket UNIX-domain, UDP y otros protocolos de envío para buffers de datagramas.'; $wb['dgramrcvbuf_desc_txt'] = 'Recibir buffers de UDP y otros protocolos de datagrama.'; -$wb['oomguarpages_desc_txt'] = 'La cantidad de memoria garantizada en caso de que la memoria \"over-booked\" (garantizado para out-of-memory kill), en las páginas.'; +$wb['oomguarpages_desc_txt'] = 'La cantidad de memoria garantizada en caso de que la memoria \\"over-booked\\" (garantizado para out-of-memory kill), en las páginas.'; $wb['privvmpages_desc_txt'] = 'Límite de asignación de memoria en las páginas.'; $wb['lockedpages_desc_txt'] = 'Páginas de procesos sin permisos para sacar del swap (páginas bloqueadas por mlock(2)).'; $wb['shmpages_desc_txt'] = 'Tamaño total de memoria compatida (IPC, asignaciones anónimas compartidas y objetos tmpfs), en las páginas.'; diff --git a/interface/web/vm/lib/lang/tr_openvz_template.lng b/interface/web/vm/lib/lang/tr_openvz_template.lng index 262121286..fb1452e88 100644 --- a/interface/web/vm/lib/lang/tr_openvz_template.lng +++ b/interface/web/vm/lib/lang/tr_openvz_template.lng @@ -44,7 +44,7 @@ $wb['tcpsndbuf_desc_txt'] = 'TCP gönderme arabelleğinin toplam boyutu.'; $wb['tcprcvbuf_desc_txt'] = 'TCP alma arabelleğinin toplam boyutu.'; $wb['othersockbuf_desc_txt'] = 'UNIX alan adı soket arabelleğinin toplam boyutu, UDP ve diğer datagram iletişim kuralları gönderme ara bellekleri.'; $wb['dgramrcvbuf_desc_txt'] = 'UDP ve diğer datagram iletişim kuralları alma ara bellekleri.'; -$wb['oomguarpages_desc_txt'] = 'Bellek sayfası cinsinden, bellek taşması durumlarında garanti edilen bellek miktarı\" (bellek bitti boşaltma garantisi).'; +$wb['oomguarpages_desc_txt'] = 'Bellek sayfası cinsinden, bellek taşması durumlarında garanti edilen bellek miktarı\\" (bellek bitti boşaltma garantisi).'; $wb['privvmpages_desc_txt'] = 'Bellek sayfası cinsinden ayrılacak bellek sınırı.'; $wb['lockedpages_desc_txt'] = 'İşlem sayfaları takasına izin verilmez (mlock(2) ile kilitlenmiş sayfalar).'; $wb['shmpages_desc_txt'] = 'Bellek sayfası cinsinden, paylaşılan belleğin toplam boyutu (IPC, paylaşılan anonim haritalama ve tmpfs nesneleri).'; -- GitLab From 9f745c2b9d37a496900e44565c2b47ce48802655 Mon Sep 17 00:00:00 2001 From: Herman van Rink Date: Tue, 30 Jul 2019 22:16:39 +0200 Subject: [PATCH 174/215] Improve comments --- interface/lib/classes/remote.d/mail.inc.php | 10 +++++----- 1 file changed, 5 insertions(+), 5 deletions(-) diff --git a/interface/lib/classes/remote.d/mail.inc.php b/interface/lib/classes/remote.d/mail.inc.php index bda7e861e..477743dfc 100644 --- a/interface/lib/classes/remote.d/mail.inc.php +++ b/interface/lib/classes/remote.d/mail.inc.php @@ -710,7 +710,7 @@ class remoting_mail extends remoting { return $app->remoting_lib->getDataRecord($primary_id); } - //* czarna lista e-mail + //* Add a new spamfilter blacklist public function mail_spamfilter_blacklist_add($session_id, $client_id, $params) { if (!$this->checkPerm($session_id, 'mail_spamfilter_blacklist_add')) @@ -810,7 +810,7 @@ class remoting_mail extends remoting { return $app->remoting_lib->getDataRecord($primary_id); } - //* polityki filtrów spamu e-mail + //* Add a spam policy public function mail_policy_add($session_id, $client_id, $params) { if (!$this->checkPerm($session_id, 'mail_policy_add')) @@ -860,7 +860,7 @@ class remoting_mail extends remoting { return $app->remoting_lib->getDataRecord($primary_id); } - //* fetchmail + //* Add fetchmail public function mail_fetchmail_add($session_id, $client_id, $params) { if (!$this->checkPerm($session_id, 'mail_fetchmail_add')) @@ -960,7 +960,7 @@ class remoting_mail extends remoting { return $app->remoting_lib->getDataRecord($primary_id); } - //* wpisy białej listy + //* Add blacklist public function mail_blacklist_add($session_id, $client_id, $params) { if (!$this->checkPerm($session_id, 'mail_blacklist_add')) @@ -1010,7 +1010,7 @@ class remoting_mail extends remoting { return $app->remoting_lib->getDataRecord($primary_id); } - //* wpisy filtrow e-mail + //* Add mail filter public function mail_filter_add($session_id, $client_id, $params) { if (!$this->checkPerm($session_id, 'mail_filter_add')) -- GitLab From c830e6e714737f97d149d93d63dd8c745d89ffe7 Mon Sep 17 00:00:00 2001 From: Herman van Rink Date: Tue, 30 Jul 2019 22:17:15 +0200 Subject: [PATCH 175/215] codestyle --- interface/lib/classes/validate_autoresponder.inc.php | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/interface/lib/classes/validate_autoresponder.inc.php b/interface/lib/classes/validate_autoresponder.inc.php index 8fefa33b3..25db68bdd 100755 --- a/interface/lib/classes/validate_autoresponder.inc.php +++ b/interface/lib/classes/validate_autoresponder.inc.php @@ -53,8 +53,8 @@ class validate_autoresponder extends validate_datetime // Parse date $datetimeformat = (isset($app->remoting_lib) ? $app->remoting_lib->datetimeformat : $app->tform->datetimeformat); - $start_date_array = date_parse_from_format($datetimeformat,$start_date); - $end_date_array = date_parse_from_format($datetimeformat,$field_value); + $start_date_array = date_parse_from_format($datetimeformat, $start_date); + $end_date_array = date_parse_from_format($datetimeformat, $field_value); //calculate timestamps $start_date_tstamp = mktime($start_date_array['hour'], $start_date_array['minute'], $start_date_array['second'], $start_date_array['month'], $start_date_array['day'], $start_date_array['year']); -- GitLab From c7c1671b0a180bfdf9fb032f8e23484541af5958 Mon Sep 17 00:00:00 2001 From: Herman van Rink Date: Tue, 30 Jul 2019 22:18:02 +0200 Subject: [PATCH 176/215] Add extra field explanation --- remoting_client/API-docs/mail_spamfilter_blacklist_add.html | 2 +- remoting_client/API-docs/mail_spamfilter_user_add.html | 2 +- remoting_client/examples/mail_spamfilter_blacklist_add.php | 2 +- 3 files changed, 3 insertions(+), 3 deletions(-) diff --git a/remoting_client/API-docs/mail_spamfilter_blacklist_add.html b/remoting_client/API-docs/mail_spamfilter_blacklist_add.html index c45c5d60f..198f7b6b2 100644 --- a/remoting_client/API-docs/mail_spamfilter_blacklist_add.html +++ b/remoting_client/API-docs/mail_spamfilter_blacklist_add.html @@ -21,7 +21,7 @@

Parameters (in $params):

server_id  (int(11))

wb  (enum('W','B'))

-

rid  (int(11))

+

rid  (int(11)) An ID from the spamfilter_users table.

email  (varchar(255))

priority  (tinyint(3))

active  (enum('n','y'))

diff --git a/remoting_client/API-docs/mail_spamfilter_user_add.html b/remoting_client/API-docs/mail_spamfilter_user_add.html index c23a9dbd4..888c74ab7 100644 --- a/remoting_client/API-docs/mail_spamfilter_user_add.html +++ b/remoting_client/API-docs/mail_spamfilter_user_add.html @@ -24,7 +24,7 @@

policy_id  (int(11))

email  (varchar(255))

fullname  (varchar(64))

-

local  (varchar(1))

+

local  (varchar(1)) 'Y' for a local account.

Output:

Returns the ID of the newly added spamfilter user.

+
diff --git a/interface/web/monitor/templates/syslog_list.htm b/interface/web/monitor/templates/syslog_list.htm index 8f62422a8..7196e3ab0 100644 --- a/interface/web/monitor/templates/syslog_list.htm +++ b/interface/web/monitor/templates/syslog_list.htm @@ -34,10 +34,10 @@ diff --git a/interface/web/sites/templates/cron_list.htm b/interface/web/sites/templates/cron_list.htm index b38a6224a..fbca26a84 100644 --- a/interface/web/sites/templates/cron_list.htm +++ b/interface/web/sites/templates/cron_list.htm @@ -56,7 +56,7 @@ diff --git a/interface/web/sites/templates/database_admin_list.htm b/interface/web/sites/templates/database_admin_list.htm index aad56db33..724027ca9 100644 --- a/interface/web/sites/templates/database_admin_list.htm +++ b/interface/web/sites/templates/database_admin_list.htm @@ -61,7 +61,7 @@ - + diff --git a/interface/web/sites/templates/database_list.htm b/interface/web/sites/templates/database_list.htm index 0d0aaca92..208741ff5 100644 --- a/interface/web/sites/templates/database_list.htm +++ b/interface/web/sites/templates/database_list.htm @@ -75,7 +75,7 @@ - + diff --git a/interface/web/sites/templates/database_user_admin_list.htm b/interface/web/sites/templates/database_user_admin_list.htm index 2d7ece0b8..0b7eb1be0 100644 --- a/interface/web/sites/templates/database_user_admin_list.htm +++ b/interface/web/sites/templates/database_user_admin_list.htm @@ -33,7 +33,7 @@ diff --git a/interface/web/sites/templates/database_user_list.htm b/interface/web/sites/templates/database_user_list.htm index b29d5c060..3cca7ec51 100644 --- a/interface/web/sites/templates/database_user_list.htm +++ b/interface/web/sites/templates/database_user_list.htm @@ -46,7 +46,7 @@ diff --git a/interface/web/sites/templates/ftp_user_list.htm b/interface/web/sites/templates/ftp_user_list.htm index 43650dac8..bd807c507 100644 --- a/interface/web/sites/templates/ftp_user_list.htm +++ b/interface/web/sites/templates/ftp_user_list.htm @@ -59,7 +59,7 @@ - + diff --git a/interface/web/sites/templates/shell_user_list.htm b/interface/web/sites/templates/shell_user_list.htm index 9be1d8485..53eb6906f 100644 --- a/interface/web/sites/templates/shell_user_list.htm +++ b/interface/web/sites/templates/shell_user_list.htm @@ -56,7 +56,7 @@ diff --git a/interface/web/sites/templates/web_childdomain_list.htm b/interface/web/sites/templates/web_childdomain_list.htm index 51aadc157..8aa5dc344 100644 --- a/interface/web/sites/templates/web_childdomain_list.htm +++ b/interface/web/sites/templates/web_childdomain_list.htm @@ -56,7 +56,7 @@ diff --git a/interface/web/sites/templates/web_folder_list.htm b/interface/web/sites/templates/web_folder_list.htm index aaccb4889..e512b8b59 100644 --- a/interface/web/sites/templates/web_folder_list.htm +++ b/interface/web/sites/templates/web_folder_list.htm @@ -55,7 +55,7 @@ diff --git a/interface/web/sites/templates/web_folder_user_list.htm b/interface/web/sites/templates/web_folder_user_list.htm index 6b67e0591..8e1d77e25 100644 --- a/interface/web/sites/templates/web_folder_user_list.htm +++ b/interface/web/sites/templates/web_folder_user_list.htm @@ -52,7 +52,7 @@ diff --git a/interface/web/sites/templates/web_vhost_domain_admin_list.htm b/interface/web/sites/templates/web_vhost_domain_admin_list.htm index 6f0e8f39c..1ab14300d 100644 --- a/interface/web/sites/templates/web_vhost_domain_admin_list.htm +++ b/interface/web/sites/templates/web_vhost_domain_admin_list.htm @@ -47,7 +47,7 @@ diff --git a/interface/web/sites/templates/web_vhost_domain_list.htm b/interface/web/sites/templates/web_vhost_domain_list.htm index b784f1596..105dac939 100644 --- a/interface/web/sites/templates/web_vhost_domain_list.htm +++ b/interface/web/sites/templates/web_vhost_domain_list.htm @@ -61,7 +61,7 @@ diff --git a/interface/web/sites/templates/webdav_user_list.htm b/interface/web/sites/templates/webdav_user_list.htm index 01764cc2f..866bcc982 100644 --- a/interface/web/sites/templates/webdav_user_list.htm +++ b/interface/web/sites/templates/webdav_user_list.htm @@ -56,7 +56,7 @@ diff --git a/interface/web/vm/templates/openvz_ip_list.htm b/interface/web/vm/templates/openvz_ip_list.htm index fd12694c3..ff98e2df5 100644 --- a/interface/web/vm/templates/openvz_ip_list.htm +++ b/interface/web/vm/templates/openvz_ip_list.htm @@ -39,7 +39,7 @@ diff --git a/interface/web/vm/templates/openvz_ostemplate_list.htm b/interface/web/vm/templates/openvz_ostemplate_list.htm index 85f46e673..d800686e1 100644 --- a/interface/web/vm/templates/openvz_ostemplate_list.htm +++ b/interface/web/vm/templates/openvz_ostemplate_list.htm @@ -42,7 +42,7 @@ diff --git a/interface/web/vm/templates/openvz_template_list.htm b/interface/web/vm/templates/openvz_template_list.htm index 5ec0cb791..2c2042790 100644 --- a/interface/web/vm/templates/openvz_template_list.htm +++ b/interface/web/vm/templates/openvz_template_list.htm @@ -33,7 +33,7 @@ diff --git a/interface/web/vm/templates/openvz_vm_list.htm b/interface/web/vm/templates/openvz_vm_list.htm index 516b536bb..ee4084f4d 100644 --- a/interface/web/vm/templates/openvz_vm_list.htm +++ b/interface/web/vm/templates/openvz_vm_list.htm @@ -49,7 +49,7 @@ -- GitLab From e958363340da23d59f2dd69bf25bda98b3913850 Mon Sep 17 00:00:00 2001 From: Till Brehm Date: Thu, 3 Oct 2019 16:56:59 +0200 Subject: [PATCH 194/215] Fixedm code typo in nginx_plugin.inc.php --- server/plugins-available/nginx_plugin.inc.php | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/server/plugins-available/nginx_plugin.inc.php b/server/plugins-available/nginx_plugin.inc.php index 86d5aba14..a8a3c3bf1 100644 --- a/server/plugins-available/nginx_plugin.inc.php +++ b/server/plugins-available/nginx_plugin.inc.php @@ -694,7 +694,7 @@ class nginx_plugin { //* Copy the web skeleton files only when there is no index.ph or index.html file yet if(!file_exists($data['new']['document_root'].'/'.$web_folder.'/index.html') && !file_exists($data['new']['document_root'].'/'.$web_folder.'/index.php')) { - if (file_exists($conf['rootpath'] . '/conf-custom/index/standard_index.html_'.substr($conf['language']), 0, 2)) { + if (file_exists($conf['rootpath'] . '/conf-custom/index/standard_index.html_'.substr($conf['language'], 0, 2))) { if(!file_exists($data['new']['document_root'].'/' . $web_folder . '/index.html')) $app->system->exec_safe('cp ? ?', $conf['rootpath'] . '/conf-custom/index/standard_index.html_'.substr($conf['language'], 0, 2), $data['new']['document_root'].'/' . $web_folder . '/index.html'); if(is_file($conf['rootpath'] . '/conf-custom/index/favicon.ico')) { -- GitLab From 9d5bde2cf44500d2815a93d7f60deb61ca5db9e2 Mon Sep 17 00:00:00 2001 From: Marius Burkard Date: Fri, 4 Oct 2019 10:32:48 +0200 Subject: [PATCH 195/215] - Don't pass password to useradd and use chpasswd with proc_open instead, fixes #5416 --- server/lib/classes/system.inc.php | 27 +++++++++++++++++++ .../shelluser_base_plugin.inc.php | 12 +++++++-- 2 files changed, 37 insertions(+), 2 deletions(-) diff --git a/server/lib/classes/system.inc.php b/server/lib/classes/system.inc.php index c05d5ddf0..525bd7bda 100644 --- a/server/lib/classes/system.inc.php +++ b/server/lib/classes/system.inc.php @@ -2191,4 +2191,31 @@ class system{ return true; } + + public function pipe_exec($cmd, $stdin, &$retval = null, &$stderr = null) { + $descriptors = array( + 0 => array('pipe', 'r'), + 1 => array('pipe', 'w'), + 2 => array('pipe', 'w') + ); + + $result = ''; + $pipes = null; + $proc = proc_open($cmd, $descriptors, $pipes); + if(is_resource($proc)) { + fwrite($pipes[0], $stdin); + fclose($pipes[0]); + + $result = stream_get_contents($pipes[1]); + $stderr = stream_get_contents($pipes[2]); + fclose($pipes[1]); + fclose($pipes[2]); + + $retval = proc_close($proc); + + return $result; + } else { + return false; + } + } } diff --git a/server/plugins-available/shelluser_base_plugin.inc.php b/server/plugins-available/shelluser_base_plugin.inc.php index b4e47b4e9..9f19c2be5 100755 --- a/server/plugins-available/shelluser_base_plugin.inc.php +++ b/server/plugins-available/shelluser_base_plugin.inc.php @@ -129,12 +129,20 @@ class shelluser_base_plugin { $app->system->chgrp($homedir,$data['new']['pgroup'],false); } $command = 'useradd -d ? -g ? -o'; // non unique - if($data['new']['password'] != '') $command .= ' -p ' . escapeshellarg($data['new']['password']); $command .= ' -s ? -u ? ?'; $app->system->exec_safe($command, $homedir, $data['new']['pgroup'], $data['new']['shell'], $uid, $data['new']['username']); $app->log("Executed command: ".$command, LOGLEVEL_DEBUG); $app->log("Added shelluser: ".$data['new']['username'], LOGLEVEL_DEBUG); - + + if($data['new']['password'] != '') { + $retval = null; + $stderr = ''; + $app->system->pipe_exec('chpasswd -e ' . escapeshellarg($data['new']['username']), $data['new']['username'] . ':' . $data['new']['password'], $retval, $stderr); + if($retval != 0) { + $app->log("Command chpasswd failed for user ".$data['new']['username'] . ' with code ' . $retval . ': ' . $stderr, LOGLEVEL_WARN); + } + } + $app->system->chown($data['new']['dir'],$data['new']['username'],false); $app->system->chgrp($data['new']['dir'],$data['new']['pgroup'],false); -- GitLab From 126290c8e8d4a4bbba21f08b2f5dee4578d9224d Mon Sep 17 00:00:00 2001 From: Marius Burkard Date: Fri, 4 Oct 2019 12:05:35 +0200 Subject: [PATCH 196/215] - added possibility to execute mkdirpath, file_put_contents and file_get_contents as unprivileged user, partly implements #5417 --- server/lib/classes/system.inc.php | 78 +++++++++++++++++++++++++++---- 1 file changed, 69 insertions(+), 9 deletions(-) diff --git a/server/lib/classes/system.inc.php b/server/lib/classes/system.inc.php index 525bd7bda..3db57c510 100644 --- a/server/lib/classes/system.inc.php +++ b/server/lib/classes/system.inc.php @@ -834,23 +834,55 @@ class system{ } } - function file_put_contents($filename, $data, $allow_symlink = false) { + function file_put_contents($filename, $data, $allow_symlink = false, $run_as_user = null) { global $app; if($allow_symlink == false && $this->checkpath($filename) == false) { $app->log("Action aborted, file is a symlink: $filename", LOGLEVEL_WARN); return false; } - if(file_exists($filename)) unlink($filename); - return file_put_contents($filename, $data); + if($run_as_user !== null && $run_as_user !== 'root') { + if(!$this->check_run_as_user($run_as_user)) { + $app->log("Action aborted, invalid run-as-user: $run_as_user", LOGLEVEL_WARN); + return false; + } + if(file_exists($filename)) { + $cmd = $this->get_sudo_command('rm ' . escapeshellarg($filename), $run_as_user); + $this->exec_safe($cmd); + } + $cmd = $this->get_sudo_command('cat - > ' . escapeshellarg($filename), $run_as_user); + $retval = null; + $stderr = ''; + $this->pipe_exec($cmd, $data, $retval, $stderr); + if($retval > 0) { + $app->log("Safe file_put_contents failed: $stderr", LOGLEVEL_WARN); + return false; + } else { + $size = filesize($filename); + return $size; + } + } else { + if(file_exists($filename)) unlink($filename); + return file_put_contents($filename, $data); + } } - function file_get_contents($filename, $allow_symlink = false) { + function file_get_contents($filename, $allow_symlink = false, $run_as_user = null) { global $app; if($allow_symlink == false && $this->checkpath($filename) == false) { $app->log("Action aborted, file is a symlink: $filename", LOGLEVEL_WARN); return false; } - return file_get_contents($filename, $data); + + if($run_as_user !== null && $run_as_user !== 'root') { + if(!$this->check_run_as_user($run_as_user)) { + $app->log("Action aborted, invalid run-as-user: $run_as_user", LOGLEVEL_WARN); + return false; + } + $cmd = $this->get_sudo_command('cat ' . escapeshellarg($filename), $run_as_user) . ' 2>/dev/null'; + return $this->system_safe($cmd); + } else { + return file_get_contents($filename); + } } function rename($filename, $new_filename, $allow_symlink = false) { @@ -862,13 +894,29 @@ class system{ return rename($filename, $new_filename); } - function mkdir($dirname, $allow_symlink = false, $mode = 0777, $recursive = false) { + function mkdir($dirname, $allow_symlink = false, $mode = 0777, $recursive = false, $run_as_user = null) { global $app; if($allow_symlink == false && $this->checkpath($dirname) == false) { $app->log("Action aborted, file is a symlink: $dirname", LOGLEVEL_WARN); return false; } - if(@mkdir($dirname, $mode, $recursive)) { + if($run_as_user !== null && !$this->check_run_as_user($run_as_user)) { + $app->log("Action aborted, invalid run-as-user: $run_as_user", LOGLEVEL_WARN); + return false; + } + $success = false; + if($run_as_user !== null && $run_as_user !== 'root') { + $cmd = $this->get_sudo_command('mkdir ' . ($recursive ? '-p ' : '') . escapeshellarg($dirname), $run_as_user) . ' >/dev/null 2>&1'; + $this->exec_safe($cmd); + if($this->last_exec_retcode() != 0) { + $success = false; + } else { + $success = true; + } + } else { + $success = @mkdir($dirname, $mode, $recursive); + } + if($success) { return true; } else { $app->log("mkdir failed: $dirname", LOGLEVEL_DEBUG); @@ -1677,14 +1725,14 @@ class system{ } //* Function to create directory paths and chown them to a user and group - function mkdirpath($path, $mode = 0755, $user = '', $group = '') { + function mkdirpath($path, $mode = 0755, $user = '', $group = '', $run_as_user = null) { $path_parts = explode('/', $path); $new_path = ''; if(is_array($path_parts)) { foreach($path_parts as $part) { $new_path .= '/'.$part; if(!@is_dir($new_path)) { - $this->mkdir($new_path); + $this->mkdir($new_path, false, 0777, false, $run_as_user); $this->chmod($new_path, $mode); if($user != '') $this->chown($new_path, $user); if($group != '') $this->chgrp($new_path, $group); @@ -2218,4 +2266,16 @@ class system{ return false; } } + + private function get_sudo_command($cmd, $run_as_user) { + return 'sudo -u ' . escapeshellarg($run_as_user) . ' sh -c ' . escapeshellarg($cmd); + } + + private function check_run_as_user($username) { + if(preg_match('/^[a-zA-Z0-9_\-]+$/', $username)) { + return true; + } else{ + return false; + } + } } -- GitLab From ed8922b48a67f981c44ee933633c403f27a1b882 Mon Sep 17 00:00:00 2001 From: Till Brehm Date: Fri, 4 Oct 2019 14:38:48 +0200 Subject: [PATCH 197/215] For issue #5415 --- interface/web/client/client_del.php | 10 ++++++++++ 1 file changed, 10 insertions(+) diff --git a/interface/web/client/client_del.php b/interface/web/client/client_del.php index 2bddd02a0..d92dc5600 100644 --- a/interface/web/client/client_del.php +++ b/interface/web/client/client_del.php @@ -58,9 +58,14 @@ class page_action extends tform_actions { if(!is_object($app->tform)) $app->uses('tform'); if($_POST["confirm"] == 'yes') { + if(isset($_POST['_csrf_id'])) $_GET['_csrf_id'] = $_POST['_csrf_id']; + if(isset($_POST['_csrf_key'])) $_GET['_csrf_key'] = $_POST['_csrf_key']; parent::onDelete(); } else { + // Check CSRF Token + $app->auth->csrf_token_check('GET'); + $app->uses('tpl'); $app->tpl->newTemplate("form.tpl.htm"); $app->tpl->setInclude('content_tpl', 'templates/client_del.htm'); @@ -100,6 +105,11 @@ class page_action extends tform_actions { $lng_file = 'lib/lang/'.$app->functions->check_language($_SESSION['s']['language']).'_client_del.lng'; include $lng_file; $app->tpl->setVar($wb); + + // get new csrf token + $csrf_token = $app->auth->csrf_token_get('client_del'); + $app->tpl->setVar('_csrf_id', $csrf_token['csrf_id']); + $app->tpl->setVar('_csrf_key', $csrf_token['csrf_key']); $app->tpl_defaults(); $app->tpl->pparse(); -- GitLab From 559c694e648bcf52d7eb057a7b54a95de169738f Mon Sep 17 00:00:00 2001 From: Till Brehm Date: Fri, 4 Oct 2019 17:33:43 +0200 Subject: [PATCH 198/215] Various fixes related to #5415 --- interface/web/sites/aps_do_operation.php | 3 +++ interface/web/sites/aps_install_package.php | 10 ++++++++-- interface/web/sites/aps_installedpackages_list.php | 10 ++++++++-- interface/web/sites/templates/aps_instances_list.htm | 2 +- interface/web/sites/templates/aps_packages_list.htm | 2 +- 5 files changed, 21 insertions(+), 6 deletions(-) diff --git a/interface/web/sites/aps_do_operation.php b/interface/web/sites/aps_do_operation.php index ff0705f9b..8de3ed4e2 100644 --- a/interface/web/sites/aps_do_operation.php +++ b/interface/web/sites/aps_do_operation.php @@ -64,6 +64,9 @@ if($_GET['action'] == 'change_status') } else if($_GET['action'] == 'delete_instance') { + // Check CSRF Token + $app->auth->csrf_token_check('GET'); + // Make sure a valid package ID is given (also corresponding to the calling user) $client_id = 0; $is_admin = ($_SESSION['s']['user']['typ'] == 'admin') ? true : false; diff --git a/interface/web/sites/aps_install_package.php b/interface/web/sites/aps_install_package.php index 4739e25b8..1a38190a9 100644 --- a/interface/web/sites/aps_install_package.php +++ b/interface/web/sites/aps_install_package.php @@ -93,6 +93,9 @@ if(!empty($domains_assoc)) foreach($domains_assoc as $domain) $domains[] = $doma $result['input'] = array(); if(count($_POST) > 1) { + // Check CSRF Token + $app->auth->csrf_token_check(); + $result = $gui->validateInstallerInput($_POST, $details, $domains, $settings); if(empty($result['error'])) { @@ -117,13 +120,16 @@ foreach($details as $key => $value) else if($key == 'Requirements PHP settings') $app->tpl->setLoop('pkg_requirements_php_settings', $details['Requirements PHP settings']); } +// get new csrf token +$csrf_token = $app->auth->csrf_token_get('aps_install_package'); +$app->tpl->setVar('_csrf_id', $csrf_token['csrf_id']); +$app->tpl->setVar('_csrf_key', $csrf_token['csrf_key']); + // Parse the template as far as possible, then do the rest manually $app->tpl_defaults(); $parsed_tpl = $app->tpl->grab(); -// ISPConfig has a very old and functionally limited template engine. We have to style parts on our own... - // Print the domain list $domains_tpl = ''; if(!empty($domains)) diff --git a/interface/web/sites/aps_installedpackages_list.php b/interface/web/sites/aps_installedpackages_list.php index 28f334019..32849ad74 100644 --- a/interface/web/sites/aps_installedpackages_list.php +++ b/interface/web/sites/aps_installedpackages_list.php @@ -112,12 +112,16 @@ if(!$is_admin) { $records = $app->db->queryAllRecords($query); $app->listform_actions->DataRowColor = '#FFFFFF'; +$csrf_token = $app->auth->csrf_token_get($app->listform->listDef['name']); +$_csrf_id = $csrf_token['csrf_id']; +$_csrf_key = $csrf_token['csrf_key']; + // Re-form all result entries and add extra entries $records_new = array(); if(is_array($records)) { $app->listform_actions->idx_key = $app->listform->listDef["table_idx"]; - foreach($records as $rec) + foreach($records as $key => $rec) { // Set an abbreviated install location to beware the page layout $ils = ''; @@ -129,7 +133,9 @@ if(is_array($records)) if($rec['instance_status'] != INSTANCE_REMOVE && $rec['instance_status'] != INSTANCE_INSTALL) $rec['delete_possible'] = 'true'; - $records_new[] = $app->listform_actions->prepareDataRow($rec); + $records_new[$key] = $app->listform_actions->prepareDataRow($rec); + $records_new[$key]['csrf_id'] = $_csrf_id; + $records_new[$key]['csrf_key'] = $_csrf_key; } } $app->tpl->setLoop('records', $records_new); diff --git a/interface/web/sites/templates/aps_instances_list.htm b/interface/web/sites/templates/aps_instances_list.htm index cfde591b1..ae3d095e7 100644 --- a/interface/web/sites/templates/aps_instances_list.htm +++ b/interface/web/sites/templates/aps_instances_list.htm @@ -40,7 +40,7 @@ diff --git a/interface/web/sites/templates/aps_packages_list.htm b/interface/web/sites/templates/aps_packages_list.htm index 501e7aeed..fa3582ed7 100644 --- a/interface/web/sites/templates/aps_packages_list.htm +++ b/interface/web/sites/templates/aps_packages_list.htm @@ -31,7 +31,7 @@ - + -- GitLab From 58b341857c056db03999e9a79404ffcffe153ec4 Mon Sep 17 00:00:00 2001 From: Till Brehm Date: Tue, 8 Oct 2019 18:26:11 +0200 Subject: [PATCH 199/215] Implemented #5420 Improve input filters for Tools > Interface settings --- interface/web/admin/form/users.tform.php | 12 ++++++++++++ interface/web/admin/lib/lang/en_users.lng | 4 ++++ .../web/tools/form/interface_settings.tform.php | 12 ++++++++++++ interface/web/tools/interface_settings.php | 5 +++-- interface/web/tools/lib/lang/en_interface.lng | 4 ++++ 5 files changed, 35 insertions(+), 2 deletions(-) diff --git a/interface/web/admin/form/users.tform.php b/interface/web/admin/form/users.tform.php index 6a23559f1..b7f00b4ee 100644 --- a/interface/web/admin/form/users.tform.php +++ b/interface/web/admin/form/users.tform.php @@ -199,6 +199,12 @@ $form['tabs']['users'] = array ( 'startmodule' => array ( 'datatype' => 'VARCHAR', 'formtype' => 'SELECT', + 'validators' => array ( 0 => array ( 'type' => 'NOTEMPTY', + 'errmsg'=> 'startmodule_empty'), + 1 => array ( 'type' => 'REGEX', + 'regex' => '/^[a-z0-9\_]{0,64}$/', + 'errmsg'=> 'startmodule_regex'), + ), 'regex' => '', 'errmsg' => '', 'default' => '', @@ -212,6 +218,12 @@ $form['tabs']['users'] = array ( 'app_theme' => array ( 'datatype' => 'VARCHAR', 'formtype' => 'RADIO', + 'validators' => array ( 0 => array ( 'type' => 'NOTEMPTY', + 'errmsg'=> 'app_theme_empty'), + 1 => array ( 'type' => 'REGEX', + 'regex' => '/^[a-z0-9\_]{0,64}$/', + 'errmsg'=> 'app_theme_regex'), + ), 'regex' => '', 'errmsg' => '', 'default' => 'default', diff --git a/interface/web/admin/lib/lang/en_users.lng b/interface/web/admin/lib/lang/en_users.lng index 81f3742a3..931c73e8e 100644 --- a/interface/web/admin/lib/lang/en_users.lng +++ b/interface/web/admin/lib/lang/en_users.lng @@ -33,4 +33,8 @@ $wb['username_error_collision'] = 'The username may not be web or web plus a num $wb['client_not_admin_err'] = 'A user that belongs to a client can not be set to type: admin'; $wb['lost_password_function_txt'] = 'Forgot password function is available'; $wb['no_user_insert'] = 'CP-Users of type -user- get added and updated automatically when you add a client or reseller.'; +$wb['startmodule_empty'] = 'Startmodule empty.'; +$wb['startmodule_regex'] = 'Invalid chars in Startmodule.'; +$wb['app_theme_empty'] = 'App theme empty.'; +$wb['app_theme_regex'] = 'Invalid chars in App theme.'; ?> diff --git a/interface/web/tools/form/interface_settings.tform.php b/interface/web/tools/form/interface_settings.tform.php index f213605bf..9ab49eb0f 100644 --- a/interface/web/tools/form/interface_settings.tform.php +++ b/interface/web/tools/form/interface_settings.tform.php @@ -144,6 +144,12 @@ $form['tabs']['main'] = array ( 'startmodule' => array ( 'datatype' => 'VARCHAR', 'formtype' => 'SELECT', + 'validators' => array ( 0 => array ( 'type' => 'NOTEMPTY', + 'errmsg'=> 'startmodule_empty'), + 1 => array ( 'type' => 'REGEX', + 'regex' => '/^[a-z0-9\_]{0,64}$/', + 'errmsg'=> 'startmodule_regex'), + ), 'regex' => '', 'errmsg' => '', 'default' => '', @@ -157,6 +163,12 @@ $form['tabs']['main'] = array ( 'app_theme' => array ( 'datatype' => 'VARCHAR', 'formtype' => 'SELECT', + 'validators' => array ( 0 => array ( 'type' => 'NOTEMPTY', + 'errmsg'=> 'app_theme_empty'), + 1 => array ( 'type' => 'REGEX', + 'regex' => '/^[a-z0-9\_]{0,64}$/', + 'errmsg'=> 'app_theme_regex'), + ), 'regex' => '', 'errmsg' => '', 'default' => 'default', diff --git a/interface/web/tools/interface_settings.php b/interface/web/tools/interface_settings.php index d7a1333b5..b14b63737 100644 --- a/interface/web/tools/interface_settings.php +++ b/interface/web/tools/interface_settings.php @@ -81,7 +81,6 @@ class page_action extends tform_actions { if(!in_array($this->dataRecord['startmodule'], $this->dataRecord['modules'])) { $app->tform->errorMessage .= $app->tform->wordbook['startmodule_err']; } - $this->updateSessionTheme(); } function onInsert() { @@ -96,7 +95,6 @@ class page_action extends tform_actions { if(@is_array($this->dataRecord['modules']) && !in_array($this->dataRecord['startmodule'], $this->dataRecord['modules'])) { $app->tform->errorMessage .= $app->tform->wordbook['startmodule_err']; } - $this->updateSessionTheme(); } function updateSessionTheme() { @@ -120,6 +118,9 @@ class page_action extends tform_actions { } function onAfterUpdate() { + + $this->updateSessionTheme(); + if($this->_theme_changed == true) { // not the best way, but it works header('Content-Type: text/html'); diff --git a/interface/web/tools/lib/lang/en_interface.lng b/interface/web/tools/lib/lang/en_interface.lng index b15c7334b..7cb0e2d8b 100644 --- a/interface/web/tools/lib/lang/en_interface.lng +++ b/interface/web/tools/lib/lang/en_interface.lng @@ -4,4 +4,8 @@ $wb["interface_desc_txt"] = 'Modify your interface'; $wb["language_txt"] = 'Language'; $wb["startmodule_txt"] = 'Startmodule'; $wb["app_theme_txt"] = 'Design'; +$wb['startmodule_empty'] = 'Startmodule empty.'; +$wb['startmodule_regex'] = 'Invalid chars in Startmodule.'; +$wb['app_theme_empty'] = 'App theme empty.'; +$wb['app_theme_regex'] = 'Invalid chars in App theme.'; ?> \ No newline at end of file -- GitLab From a1d4fd4828408ba33c53dfcfe14b1618f4a68c56 Mon Sep 17 00:00:00 2001 From: Till Brehm Date: Wed, 9 Oct 2019 10:48:24 +0200 Subject: [PATCH 200/215] More fixes for issue #5415 --- interface/web/admin/software_package_del.php | 3 +++ interface/web/admin/software_package_install.php | 7 +++++++ interface/web/admin/software_package_list.php | 7 ++++++- interface/web/admin/templates/software_package_list.htm | 2 +- 4 files changed, 17 insertions(+), 2 deletions(-) diff --git a/interface/web/admin/software_package_del.php b/interface/web/admin/software_package_del.php index 31aeb1c09..e1387f39c 100644 --- a/interface/web/admin/software_package_del.php +++ b/interface/web/admin/software_package_del.php @@ -36,6 +36,9 @@ $app->auth->check_module_permissions('admin'); $app->auth->check_security_permissions('admin_allow_software_packages'); if($conf['demo_mode'] == true) $app->error('This function is disabled in demo mode.'); +// Check CSRF Token +$app->auth->csrf_token_check('GET'); + $software_update_inst_id = $app->functions->intval($_GET['software_update_inst_id']); if($software_update_inst_id > 0) { diff --git a/interface/web/admin/software_package_install.php b/interface/web/admin/software_package_install.php index ccbfd73eb..6a5326d51 100644 --- a/interface/web/admin/software_package_install.php +++ b/interface/web/admin/software_package_install.php @@ -38,6 +38,13 @@ $app->auth->check_security_permissions('admin_allow_software_packages'); //* This is only allowed for administrators if(!$app->auth->is_admin()) die('only allowed for administrators.'); +// Check CSRF Token +if(count($_POST) > 0) { + $app->auth->csrf_token_check('POST'); +} else { + $app->auth->csrf_token_check('GET'); +} + $package_name = $_REQUEST['package']; $install_server_id = $app->functions->intval($_REQUEST['server_id']); $install_key = trim($_REQUEST['install_key']); diff --git a/interface/web/admin/software_package_list.php b/interface/web/admin/software_package_list.php index b6664d423..8a21696c7 100644 --- a/interface/web/admin/software_package_list.php +++ b/interface/web/admin/software_package_list.php @@ -145,6 +145,9 @@ $app->uses('tpl'); $app->tpl->newTemplate("form.tpl.htm"); $app->tpl->setInclude('content_tpl', 'templates/software_package_list.htm'); +$csrf_token = $app->auth->csrf_token_get('software_package_list'); +$_csrf_id = $csrf_token['csrf_id']; +$_csrf_key = $csrf_token['csrf_key']; $servers = $app->db->queryAllRecords('SELECT server_id, server_name FROM server ORDER BY server_name'); $packages = $app->db->queryAllRecords('SELECT * FROM software_package'); @@ -167,12 +170,14 @@ if(is_array($packages) && count($packages) > 0) { if($p['package_installable'] == 'no') { $installed_txt .= $s['server_name'].": ".$app->lng("Package can not be installed.")."
"; } else { - $installed_txt .= $s['server_name'].":
Install now
"; + $installed_txt .= $s['server_name'].": Install now
"; } } } $packages[$key]['software_update_inst_id'] = intval($inst['software_update_inst_id']); $packages[$key]['installed'] = $installed_txt; + $packages[$key]['csrf_id'] = $_csrf_id; + $packages[$key]['csrf_key'] = $_csrf_key; } $app->tpl->setVar('has_packages', 1); } else { diff --git a/interface/web/admin/templates/software_package_list.htm b/interface/web/admin/templates/software_package_list.htm index 31969c057..e69e3780a 100644 --- a/interface/web/admin/templates/software_package_list.htm +++ b/interface/web/admin/templates/software_package_list.htm @@ -33,7 +33,7 @@ -- GitLab From 92184cbe2c093ddbcda168e63613e87d593947c4 Mon Sep 17 00:00:00 2001 From: Till Brehm Date: Wed, 9 Oct 2019 16:03:58 +0200 Subject: [PATCH 201/215] Updated Brazilian Portuguese and Turkish language files. --- interface/lib/lang/br.lng | 108 ++-- interface/lib/lang/tr.lng | 127 ++--- interface/web/admin/lib/lang/br.lng | 35 +- .../admin/lib/lang/br_directive_snippets.lng | 10 +- .../lib/lang/br_directive_snippets_list.lng | 4 +- interface/web/admin/lib/lang/br_firewall.lng | 10 +- .../web/admin/lib/lang/br_firewall_list.lng | 2 +- interface/web/admin/lib/lang/br_groups.lng | 2 +- .../web/admin/lib/lang/br_groups_list.lng | 6 +- interface/web/admin/lib/lang/br_iptables.lng | 10 +- .../web/admin/lib/lang/br_iptables_list.lng | 8 +- .../web/admin/lib/lang/br_language_add.lng | 4 +- .../admin/lib/lang/br_language_complete.lng | 2 +- .../web/admin/lib/lang/br_language_edit.lng | 4 +- .../web/admin/lib/lang/br_language_export.lng | 4 +- .../web/admin/lib/lang/br_language_import.lng | 6 +- .../web/admin/lib/lang/br_language_list.lng | 6 +- .../web/admin/lib/lang/br_package_install.lng | 2 +- .../web/admin/lib/lang/br_remote_action.lng | 14 +- .../web/admin/lib/lang/br_remote_user.lng | 96 ++-- .../admin/lib/lang/br_remote_user_list.lng | 6 +- interface/web/admin/lib/lang/br_server.lng | 16 +- .../web/admin/lib/lang/br_server_config.lng | 506 +++++++++--------- interface/web/admin/lib/lang/br_server_ip.lng | 12 +- .../web/admin/lib/lang/br_server_ip_list.lng | 4 +- .../web/admin/lib/lang/br_server_ip_map.lng | 14 +- .../admin/lib/lang/br_server_ip_map_list.lng | 6 +- .../web/admin/lib/lang/br_server_list.lng | 6 +- .../web/admin/lib/lang/br_server_php.lng | 16 +- .../web/admin/lib/lang/br_server_php_list.lng | 4 +- .../lib/lang/br_software_package_list.lng | 8 +- .../web/admin/lib/lang/br_software_repo.lng | 2 +- .../lib/lang/br_software_update_list.lng | 8 +- .../web/admin/lib/lang/br_system_config.lng | 127 +++-- .../admin/lib/lang/br_tpl_default_admin.lng | 22 +- interface/web/admin/lib/lang/br_users.lng | 36 +- .../web/admin/lib/lang/br_users_list.lng | 8 +- interface/web/admin/lib/lang/tr.lng | 30 +- .../admin/lib/lang/tr_directive_snippets.lng | 16 +- .../lib/lang/tr_directive_snippets_list.lng | 10 +- interface/web/admin/lib/lang/tr_firewall.lng | 5 +- interface/web/admin/lib/lang/tr_groups.lng | 2 +- interface/web/admin/lib/lang/tr_iptables.lng | 2 + .../web/admin/lib/lang/tr_iptables_list.lng | 2 + .../web/admin/lib/lang/tr_language_import.lng | 4 +- interface/web/admin/lib/lang/tr_login_as.lng | 12 + .../web/admin/lib/lang/tr_remote_action.lng | 10 +- .../web/admin/lib/lang/tr_remote_user.lng | 48 +- interface/web/admin/lib/lang/tr_server.lng | 6 +- .../web/admin/lib/lang/tr_server_config.lng | 230 ++++---- interface/web/admin/lib/lang/tr_server_ip.lng | 6 +- .../web/admin/lib/lang/tr_server_ip_list.lng | 4 +- .../web/admin/lib/lang/tr_server_ip_map.lng | 20 +- .../admin/lib/lang/tr_server_ip_map_list.lng | 10 +- .../web/admin/lib/lang/tr_server_list.lng | 4 +- .../web/admin/lib/lang/tr_server_php.lng | 2 +- .../web/admin/lib/lang/tr_server_php_list.lng | 2 +- .../admin/lib/lang/tr_software_package.lng | 2 +- .../lib/lang/tr_software_update_list.lng | 2 +- .../web/admin/lib/lang/tr_system_config.lng | 70 ++- interface/web/admin/lib/lang/tr_users.lng | 20 +- .../web/admin/lib/lang/tr_users_list.lng | 2 +- interface/web/client/lib/lang/br.lng | 20 +- interface/web/client/lib/lang/br_client.lng | 258 ++++----- .../web/client/lib/lang/br_client_circle.lng | 4 +- .../client/lib/lang/br_client_circle_list.lng | 6 +- .../web/client/lib/lang/br_client_del.lng | 2 +- .../web/client/lib/lang/br_client_message.lng | 16 +- .../lib/lang/br_client_message_template.lng | 10 +- .../lang/br_client_message_template_list.lng | 2 +- .../client/lib/lang/br_client_template.lng | 179 ++++--- .../lib/lang/br_client_template_list.lng | 8 +- .../web/client/lib/lang/br_clients_list.lng | 10 +- interface/web/client/lib/lang/br_domain.lng | 6 +- interface/web/client/lib/lang/br_reseller.lng | 288 +++++----- .../web/client/lib/lang/br_resellers_list.lng | 2 +- interface/web/client/lib/lang/tr.lng | 17 +- interface/web/client/lib/lang/tr_client.lng | 180 ++++--- .../lib/lang/tr_client_message_template.lng | 12 +- .../lang/tr_client_message_template_list.lng | 4 +- .../client/lib/lang/tr_client_template.lng | 141 ++--- .../lib/lang/tr_client_template_list.lng | 8 +- .../web/client/lib/lang/tr_clients_list.lng | 8 +- interface/web/client/lib/lang/tr_domain.lng | 8 +- .../web/client/lib/lang/tr_domain_list.lng | 6 +- interface/web/client/lib/lang/tr_reseller.lng | 184 +++---- .../web/client/lib/lang/tr_resellers_list.lng | 2 +- interface/web/dashboard/lib/lang/br.lng | 2 +- .../lib/lang/br_dashlet_customer.lng | 2 +- .../lib/lang/br_dashlet_databasequota.lng | 4 +- .../br_dashlet_invoice_client_settings.lng | 2 +- .../lib/lang/br_dashlet_invoices.lng | 8 +- .../dashboard/lib/lang/br_dashlet_limits.lng | 62 +-- .../lib/lang/br_dashlet_mailquota.lng | 4 +- .../dashboard/lib/lang/br_dashlet_modules.lng | 2 +- .../lib/lang/br_dashlet_products.lng | 4 +- .../dashboard/lib/lang/br_dashlet_quota.lng | 4 +- .../dashboard/lib/lang/br_dashlet_shop.lng | 6 +- .../lib/lang/tr_dashlet_customer.lng | 4 +- .../lib/lang/tr_dashlet_databasequota.lng | 10 +- .../dashboard/lib/lang/tr_dashlet_donate.lng | 10 +- .../tr_dashlet_invoice_client_settings.lng | 4 +- .../lib/lang/tr_dashlet_invoices.lng | 32 +- .../dashboard/lib/lang/tr_dashlet_limits.lng | 32 +- .../lib/lang/tr_dashlet_mailquota.lng | 2 +- .../dashboard/lib/lang/tr_dashlet_modules.lng | 2 +- .../lib/lang/tr_dashlet_products.lng | 14 +- .../dashboard/lib/lang/tr_dashlet_quota.lng | 6 +- .../dashboard/lib/lang/tr_dashlet_shop.lng | 12 +- interface/web/dns/lib/lang/br.lng | 10 +- interface/web/dns/lib/lang/br_dns_a.lng | 16 +- interface/web/dns/lib/lang/br_dns_a_list.lng | 8 +- interface/web/dns/lib/lang/br_dns_aaaa.lng | 16 +- interface/web/dns/lib/lang/br_dns_alias.lng | 16 +- interface/web/dns/lib/lang/br_dns_caa.lng | 32 +- interface/web/dns/lib/lang/br_dns_cname.lng | 18 +- interface/web/dns/lib/lang/br_dns_dkim.lng | 14 +- interface/web/dns/lib/lang/br_dns_dmarc.lng | 64 +-- interface/web/dns/lib/lang/br_dns_ds.lng | 17 +- interface/web/dns/lib/lang/br_dns_hinfo.lng | 18 +- interface/web/dns/lib/lang/br_dns_import.lng | 20 +- interface/web/dns/lib/lang/br_dns_loc.lng | 16 +- interface/web/dns/lib/lang/br_dns_mx.lng | 18 +- interface/web/dns/lib/lang/br_dns_ns.lng | 16 +- interface/web/dns/lib/lang/br_dns_ptr.lng | 14 +- interface/web/dns/lib/lang/br_dns_rp.lng | 16 +- interface/web/dns/lib/lang/br_dns_slave.lng | 16 +- .../dns/lib/lang/br_dns_slave_admin_list.lng | 4 +- .../web/dns/lib/lang/br_dns_slave_list.lng | 4 +- interface/web/dns/lib/lang/br_dns_soa.lng | 48 +- .../dns/lib/lang/br_dns_soa_admin_list.lng | 9 +- .../web/dns/lib/lang/br_dns_soa_list.lng | 7 +- interface/web/dns/lib/lang/br_dns_spf.lng | 22 +- interface/web/dns/lib/lang/br_dns_srv.lng | 18 +- .../web/dns/lib/lang/br_dns_template.lng | 4 +- .../web/dns/lib/lang/br_dns_template_list.lng | 4 +- interface/web/dns/lib/lang/br_dns_tlsa.lng | 12 +- interface/web/dns/lib/lang/br_dns_txt.lng | 22 +- interface/web/dns/lib/lang/br_dns_wizard.lng | 44 +- interface/web/dns/lib/lang/tr.lng | 5 +- interface/web/dns/lib/lang/tr_dns_a.lng | 6 +- interface/web/dns/lib/lang/tr_dns_a_list.lng | 2 +- interface/web/dns/lib/lang/tr_dns_aaaa.lng | 8 +- interface/web/dns/lib/lang/tr_dns_alias.lng | 4 +- interface/web/dns/lib/lang/tr_dns_cname.lng | 4 +- interface/web/dns/lib/lang/tr_dns_dkim.lng | 22 +- interface/web/dns/lib/lang/tr_dns_dmarc.lng | 96 ++-- interface/web/dns/lib/lang/tr_dns_ds.lng | 31 +- interface/web/dns/lib/lang/tr_dns_hinfo.lng | 4 +- interface/web/dns/lib/lang/tr_dns_import.lng | 16 +- interface/web/dns/lib/lang/tr_dns_loc.lng | 28 +- interface/web/dns/lib/lang/tr_dns_mx.lng | 10 +- interface/web/dns/lib/lang/tr_dns_ns.lng | 4 +- interface/web/dns/lib/lang/tr_dns_rp.lng | 4 +- interface/web/dns/lib/lang/tr_dns_slave.lng | 2 +- interface/web/dns/lib/lang/tr_dns_soa.lng | 24 +- .../dns/lib/lang/tr_dns_soa_admin_list.lng | 2 +- .../web/dns/lib/lang/tr_dns_soa_list.lng | 4 +- interface/web/dns/lib/lang/tr_dns_spf.lng | 46 +- interface/web/dns/lib/lang/tr_dns_srv.lng | 4 +- .../web/dns/lib/lang/tr_dns_template.lng | 1 - interface/web/dns/lib/lang/tr_dns_tlsa.lng | 28 +- interface/web/dns/lib/lang/tr_dns_txt.lng | 10 +- interface/web/dns/lib/lang/tr_dns_wizard.lng | 32 +- interface/web/help/lib/lang/br.lng | 14 +- interface/web/help/lib/lang/br_faq_form.lng | 6 +- .../lib/lang/br_faq_manage_questions_list.lng | 10 +- .../help/lib/lang/br_faq_sections_form.lng | 2 +- .../lib/lang/br_help_faq_sections_list.lng | 8 +- .../web/help/lib/lang/br_support_message.lng | 20 +- .../help/lib/lang/br_support_message_list.lng | 6 +- interface/web/help/lib/lang/tr.lng | 1 + .../web/help/lib/lang/tr_support_message.lng | 4 +- interface/web/login/lib/lang/br.lng | 8 +- interface/web/login/lib/lang/br_login_as.lng | 14 +- interface/web/login/lib/lang/tr.lng | 16 +- interface/web/login/lib/lang/tr_login_as.lng | 9 +- interface/web/mail/lib/lang/br.lng | 78 +-- .../mail/lib/lang/br_backup_stats_list.lng | 10 +- interface/web/mail/lib/lang/br_mail_alias.lng | 16 +- .../web/mail/lib/lang/br_mail_alias_list.lng | 8 +- .../web/mail/lib/lang/br_mail_aliasdomain.lng | 8 +- .../lib/lang/br_mail_aliasdomain_list.lng | 5 +- .../web/mail/lib/lang/br_mail_backup_list.lng | 20 +- .../web/mail/lib/lang/br_mail_blacklist.lng | 4 +- .../mail/lib/lang/br_mail_blacklist_list.lng | 6 +- .../mail/lib/lang/br_mail_content_filter.lng | 6 +- .../lib/lang/br_mail_content_filter_list.lng | 2 +- .../web/mail/lib/lang/br_mail_domain.lng | 26 +- .../mail/lib/lang/br_mail_domain_catchall.lng | 13 +- .../lib/lang/br_mail_domain_catchall_list.lng | 6 +- .../web/mail/lib/lang/br_mail_forward.lng | 16 +- .../mail/lib/lang/br_mail_forward_list.lng | 6 +- interface/web/mail/lib/lang/br_mail_get.lng | 22 +- .../web/mail/lib/lang/br_mail_get_list.lng | 2 +- .../web/mail/lib/lang/br_mail_mailinglist.lng | 26 +- .../lib/lang/br_mail_mailinglist_list.lng | 2 +- .../mail/lib/lang/br_mail_relay_recipient.lng | 4 +- .../lib/lang/br_mail_relay_recipient_list.lng | 4 +- .../web/mail/lib/lang/br_mail_spamfilter.lng | 18 +- .../mail/lib/lang/br_mail_spamfilter_list.lng | 8 +- .../web/mail/lib/lang/br_mail_transport.lng | 4 +- .../mail/lib/lang/br_mail_transport_list.lng | 4 +- interface/web/mail/lib/lang/br_mail_user.lng | 86 +-- .../web/mail/lib/lang/br_mail_user_filter.lng | 20 +- .../lib/lang/br_mail_user_filter_list.lng | 2 +- .../mail/lib/lang/br_mail_user_stats_list.lng | 2 +- .../web/mail/lib/lang/br_mail_whitelist.lng | 6 +- .../mail/lib/lang/br_mail_whitelist_list.lng | 6 +- .../mail/lib/lang/br_spamfilter_blacklist.lng | 6 +- .../lib/lang/br_spamfilter_blacklist_list.lng | 6 +- .../mail/lib/lang/br_spamfilter_config.lng | 30 +- .../lib/lang/br_spamfilter_config_list.lng | 4 +- .../mail/lib/lang/br_spamfilter_policy.lng | 82 +-- .../lib/lang/br_spamfilter_policy_list.lng | 10 +- .../web/mail/lib/lang/br_spamfilter_users.lng | 2 +- .../lib/lang/br_spamfilter_users_list.lng | 8 +- .../mail/lib/lang/br_spamfilter_whitelist.lng | 6 +- .../lib/lang/br_spamfilter_whitelist_list.lng | 6 +- .../lib/lang/br_user_quota_stats_list.lng | 4 +- .../web/mail/lib/lang/br_xmpp_domain.lng | 74 +-- .../web/mail/lib/lang/br_xmpp_domain_list.lng | 2 +- interface/web/mail/lib/lang/br_xmpp_user.lng | 12 +- .../web/mail/lib/lang/br_xmpp_user_list.lng | 2 +- interface/web/mail/lib/lang/tr.lng | 35 +- .../mail/lib/lang/tr_backup_stats_list.lng | 14 +- interface/web/mail/lib/lang/tr_mail_alias.lng | 12 +- .../web/mail/lib/lang/tr_mail_aliasdomain.lng | 12 +- .../lib/lang/tr_mail_aliasdomain_list.lng | 5 +- .../web/mail/lib/lang/tr_mail_backup_list.lng | 28 +- .../web/mail/lib/lang/tr_mail_blacklist.lng | 2 +- .../mail/lib/lang/tr_mail_blacklist_list.lng | 2 +- .../mail/lib/lang/tr_mail_content_filter.lng | 4 +- .../web/mail/lib/lang/tr_mail_domain.lng | 34 +- .../lib/lang/tr_mail_domain_admin_list.lng | 6 +- .../mail/lib/lang/tr_mail_domain_catchall.lng | 10 +- .../lib/lang/tr_mail_domain_catchall_list.lng | 4 +- .../web/mail/lib/lang/tr_mail_domain_list.lng | 6 +- .../web/mail/lib/lang/tr_mail_forward.lng | 12 +- interface/web/mail/lib/lang/tr_mail_get.lng | 8 +- .../web/mail/lib/lang/tr_mail_mailinglist.lng | 14 +- .../lib/lang/tr_mail_mailinglist_list.lng | 4 +- .../mail/lib/lang/tr_mail_relay_recipient.lng | 2 +- .../web/mail/lib/lang/tr_mail_spamfilter.lng | 6 +- .../mail/lib/lang/tr_mail_spamfilter_list.lng | 4 +- .../web/mail/lib/lang/tr_mail_transport.lng | 4 +- .../mail/lib/lang/tr_mail_transport_list.lng | 2 +- interface/web/mail/lib/lang/tr_mail_user.lng | 52 +- .../web/mail/lib/lang/tr_mail_user_filter.lng | 4 +- .../web/mail/lib/lang/tr_mail_user_list.lng | 6 +- .../mail/lib/lang/tr_mail_user_stats_list.lng | 2 +- .../web/mail/lib/lang/tr_mail_whitelist.lng | 2 +- .../mail/lib/lang/tr_mail_whitelist_list.lng | 2 +- .../lib/lang/tr_spamfilter_blacklist_list.lng | 2 +- .../mail/lib/lang/tr_spamfilter_config.lng | 12 +- .../lib/lang/tr_spamfilter_config_list.lng | 2 +- .../mail/lib/lang/tr_spamfilter_policy.lng | 71 +-- .../lib/lang/tr_spamfilter_policy_list.lng | 6 +- .../lib/lang/tr_spamfilter_users_list.lng | 4 +- .../lib/lang/tr_spamfilter_whitelist_list.lng | 2 +- .../lib/lang/tr_user_quota_stats_list.lng | 2 +- .../web/mail/lib/lang/tr_xmpp_domain.lng | 120 ++--- .../lib/lang/tr_xmpp_domain_admin_list.lng | 12 +- .../web/mail/lib/lang/tr_xmpp_domain_list.lng | 10 +- interface/web/mail/lib/lang/tr_xmpp_user.lng | 26 +- .../web/mail/lib/lang/tr_xmpp_user_list.lng | 12 +- interface/web/mailuser/lib/lang/br.lng | 10 +- interface/web/mailuser/lib/lang/br_index.lng | 10 +- .../lib/lang/br_mail_user_autoresponder.lng | 14 +- .../web/mailuser/lib/lang/br_mail_user_cc.lng | 10 +- .../mailuser/lib/lang/br_mail_user_filter.lng | 14 +- .../lib/lang/br_mail_user_filter_list.lng | 2 +- .../lib/lang/br_mail_user_password.lng | 10 +- .../lib/lang/br_mail_user_spamfilter.lng | 2 +- interface/web/mailuser/lib/lang/tr.lng | 2 +- interface/web/mailuser/lib/lang/tr_index.lng | 8 +- .../mailuser/lib/lang/tr_mail_user_filter.lng | 4 +- .../lib/lang/tr_mail_user_filter_list.lng | 2 +- .../lib/lang/tr_mail_user_password.lng | 8 +- .../lib/lang/tr_mail_user_spamfilter.lng | 4 +- interface/web/monitor/lib/lang/br.lng | 225 ++++---- .../web/monitor/lib/lang/br_datalog_list.lng | 4 +- .../lib/lang/br_dataloghistory_list.lng | 12 +- .../lib/lang/br_dataloghistory_undo.lng | 10 +- .../lib/lang/br_dataloghistory_view.lng | 46 +- .../web/monitor/lib/lang/br_syslog_list.lng | 6 +- interface/web/monitor/lib/lang/tr.lng | 69 ++- interface/web/sites/lib/lang/br.lng | 21 +- interface/web/sites/lib/lang/br_aps.lng | 76 +-- .../sites/lib/lang/br_aps_instances_list.lng | 2 +- .../sites/lib/lang/br_aps_packages_list.lng | 2 +- .../lib/lang/br_aps_update_packagelist.lng | 4 +- .../sites/lib/lang/br_backup_stats_list.lng | 10 +- interface/web/sites/lib/lang/br_cron.lng | 28 +- interface/web/sites/lib/lang/br_cron_list.lng | 10 +- interface/web/sites/lib/lang/br_database.lng | 54 +- .../sites/lib/lang/br_database_admin_list.lng | 6 +- .../web/sites/lib/lang/br_database_list.lng | 6 +- .../lib/lang/br_database_quota_stats_list.lng | 8 +- .../web/sites/lib/lang/br_database_user.lng | 20 +- .../lib/lang/br_database_user_admin_list.lng | 4 +- .../sites/lib/lang/br_database_user_list.lng | 4 +- .../lib/lang/br_ftp_sites_stats_list.lng | 4 +- interface/web/sites/lib/lang/br_ftp_user.lng | 39 +- .../web/sites/lib/lang/br_shell_user.lng | 46 +- .../web/sites/lib/lang/br_shell_user_list.lng | 2 +- .../lib/lang/br_user_quota_stats_list.lng | 6 +- .../web/sites/lib/lang/br_web_aliasdomain.lng | 134 ++--- .../lib/lang/br_web_aliasdomain_list.lng | 10 +- .../web/sites/lib/lang/br_web_backup_list.lng | 27 +- .../web/sites/lib/lang/br_web_childdomain.lng | 148 ++--- .../lib/lang/br_web_childdomain_list.lng | 14 +- .../web/sites/lib/lang/br_web_domain.lng | 179 +++---- .../web/sites/lib/lang/br_web_folder.lng | 2 +- .../web/sites/lib/lang/br_web_folder_user.lng | 10 +- .../lib/lang/br_web_folder_user_list.lng | 4 +- .../web/sites/lib/lang/br_web_subdomain.lng | 34 +- .../sites/lib/lang/br_web_vhost_domain.lng | 199 +++---- .../lang/br_web_vhost_domain_admin_list.lng | 4 +- .../lib/lang/br_web_vhost_domain_list.lng | 6 +- .../sites/lib/lang/br_web_vhost_subdomain.lng | 159 +++--- .../web/sites/lib/lang/br_webdav_user.lng | 18 +- interface/web/sites/lib/lang/tr.lng | 12 +- interface/web/sites/lib/lang/tr_aps.lng | 23 +- .../sites/lib/lang/tr_aps_instances_list.lng | 4 +- .../sites/lib/lang/tr_backup_stats_list.lng | 14 +- interface/web/sites/lib/lang/tr_cron.lng | 6 +- interface/web/sites/lib/lang/tr_database.lng | 30 +- .../sites/lib/lang/tr_database_admin_list.lng | 8 +- .../web/sites/lib/lang/tr_database_list.lng | 2 +- .../lib/lang/tr_database_quota_stats_list.lng | 14 +- .../web/sites/lib/lang/tr_database_user.lng | 12 +- .../lib/lang/tr_ftp_sites_stats_list.lng | 16 +- interface/web/sites/lib/lang/tr_ftp_user.lng | 7 +- .../web/sites/lib/lang/tr_shell_user.lng | 4 +- .../web/sites/lib/lang/tr_shell_user_list.lng | 6 +- .../lib/lang/tr_user_quota_stats_list.lng | 2 +- .../web/sites/lib/lang/tr_web_aliasdomain.lng | 66 +-- .../lib/lang/tr_web_aliasdomain_list.lng | 16 +- .../web/sites/lib/lang/tr_web_backup_list.lng | 15 +- .../web/sites/lib/lang/tr_web_childdomain.lng | 178 +++--- .../lib/lang/tr_web_childdomain_list.lng | 20 +- .../lib/lang/tr_web_directive_snippets.lng | 2 +- .../web/sites/lib/lang/tr_web_domain.lng | 80 +-- .../lib/lang/tr_web_domain_admin_list.lng | 2 +- .../web/sites/lib/lang/tr_web_domain_list.lng | 2 +- .../web/sites/lib/lang/tr_web_folder_user.lng | 4 +- .../lib/lang/tr_web_sites_stats_list.lng | 2 +- .../web/sites/lib/lang/tr_web_subdomain.lng | 38 +- .../sites/lib/lang/tr_web_subdomain_list.lng | 6 +- .../sites/lib/lang/tr_web_vhost_domain.lng | 123 ++--- .../lang/tr_web_vhost_domain_admin_list.lng | 24 +- .../lib/lang/tr_web_vhost_domain_list.lng | 14 +- .../sites/lib/lang/tr_web_vhost_subdomain.lng | 77 +-- .../lib/lang/tr_web_vhost_subdomain_list.lng | 6 +- .../web/sites/lib/lang/tr_webdav_user.lng | 4 +- .../lib/lang/br_strengthmeter.lng | 4 +- interface/web/tools/lib/lang/br.lng | 12 +- .../tools/lib/lang/br_import_ispconfig.lng | 26 +- .../web/tools/lib/lang/br_import_vpopmail.lng | 9 +- interface/web/tools/lib/lang/br_index.lng | 2 +- interface/web/tools/lib/lang/br_interface.lng | 6 +- interface/web/tools/lib/lang/br_resync.lng | 72 +-- .../web/tools/lib/lang/br_tpl_default.lng | 4 +- .../web/tools/lib/lang/br_usersettings.lng | 12 +- interface/web/tools/lib/lang/tr.lng | 10 +- .../tools/lib/lang/tr_import_ispconfig.lng | 37 +- .../web/tools/lib/lang/tr_import_vpopmail.lng | 11 +- interface/web/tools/lib/lang/tr_index.lng | 2 +- interface/web/tools/lib/lang/tr_interface.lng | 2 +- interface/web/tools/lib/lang/tr_resync.lng | 98 ++-- .../web/tools/lib/lang/tr_usersettings.lng | 6 +- interface/web/vm/lib/lang/br.lng | 6 +- .../web/vm/lib/lang/br_openvz_action.lng | 18 +- interface/web/vm/lib/lang/br_openvz_ip.lng | 6 +- .../web/vm/lib/lang/br_openvz_ip_list.lng | 2 +- .../web/vm/lib/lang/br_openvz_ostemplate.lng | 6 +- .../vm/lib/lang/br_openvz_ostemplate_list.lng | 6 +- .../web/vm/lib/lang/br_openvz_template.lng | 146 ++--- .../vm/lib/lang/br_openvz_template_list.lng | 4 +- interface/web/vm/lib/lang/br_openvz_vm.lng | 43 +- .../web/vm/lib/lang/br_openvz_vm_list.lng | 6 +- interface/web/vm/lib/lang/tr.lng | 6 +- .../web/vm/lib/lang/tr_openvz_action.lng | 15 +- interface/web/vm/lib/lang/tr_openvz_ip.lng | 2 +- .../vm/lib/lang/tr_openvz_ostemplate_list.lng | 2 +- .../web/vm/lib/lang/tr_openvz_template.lng | 22 +- interface/web/vm/lib/lang/tr_openvz_vm.lng | 20 +- .../web/vm/lib/lang/tr_openvz_vm_list.lng | 4 +- 389 files changed, 4516 insertions(+), 4450 deletions(-) create mode 100644 interface/web/admin/lib/lang/tr_login_as.lng diff --git a/interface/lib/lang/br.lng b/interface/lib/lang/br.lng index 7db654bd0..60a0dcf91 100644 --- a/interface/lib/lang/br.lng +++ b/interface/lib/lang/br.lng @@ -1,45 +1,48 @@ diff --git a/interface/lib/lang/tr.lng b/interface/lib/lang/tr.lng index 115bc890b..cf4491ad5 100644 --- a/interface/lib/lang/tr.lng +++ b/interface/lib/lang/tr.lng @@ -36,10 +36,10 @@ $wb['top_menu_dns'] = 'DNS'; $wb['top_menu_tools'] = 'Araçlar'; $wb['top_menu_help'] = 'Yardım'; $wb['top_menu_billing'] = 'Faturalama'; -$wb['top_menu_mailuser'] = 'Posta Kullanıcısı'; +$wb['top_menu_mailuser'] = 'E-posta Kullanıcısı'; $wb['top_menu_domain'] = 'Alan Adları'; $wb['top_menu_dashboard'] = 'Açılış'; -$wb['top_menu_vm'] = 'SSunucu'; +$wb['top_menu_vm'] = 'sSunucu'; $wb['toolsarea_head_txt'] = 'Araçlar'; $wb['latest_news_txt'] = 'Haberler'; $wb['logout_txt'] = 'Oturumu Kapat'; @@ -74,65 +74,72 @@ $wb['datepicker_prevText'] = 'Önceki'; $wb['submit_confirmation'] = 'Bu işlemi yapmak istiyor musunuz?'; $wb['globalsearch_resultslimit_of_txt'] = '/'; $wb['globalsearch_resultslimit_results_txt'] = 'sonuç'; -$wb['globalsearch_noresults_text_txt'] = 'Sonuç yok.'; +$wb['globalsearch_noresults_text_txt'] = 'Uygun bir sonuç bulunamadı.'; $wb['globalsearch_noresults_limit_txt'] = '0 sonuç'; $wb['globalsearch_searchfield_watermark_txt'] = 'Arama'; $wb['globalsearch_suggestions_text_txt'] = 'Öneriler'; -$wb['global_tabchange_warning_txt'] = 'Bu sekmedeki değişiklikler Tamam düğmesine tıklandığında kaydedilir. İptal düğmesine tıklandığında yoksayılır.'; -$wb['global_tabchange_discard_txt'] = 'Bu sekmede kaydedilmemiş değişiklikler var. Devam ederseniz değişiklikler yoksayılacak.'; +$wb['global_tabchange_warning_txt'] = 'Bu sekmedeki değişiklikler Tamam düğmesine tıklandığında kaydedilir. İptal düğmesine tıklandığında yok sayılır.'; +$wb['global_tabchange_discard_txt'] = 'Bu sekmede kaydedilmemiş değişiklikler var. Devam ederseniz değişiklikler yok sayılacak.'; + $wb['datalog_changes_txt'] = 'Şu değişiklikler henüz tüm sunuculara dağıtılmadı:'; $wb['datalog_changes_end_txt'] = 'Güncellemelerin kaydedilmesi bir dakika kadar sürecek. Lütfen bekleyin.'; -$wb['datalog_status_i_web_database'] = 'Veritabanı ekle'; -$wb['datalog_status_u_web_database'] = 'Veritabanını güncelle'; -$wb['datalog_status_d_web_database'] = 'Veritabanını sil'; -$wb['datalog_status_i_web_database_user'] = 'Veritabanı kullanıcısı ekle'; -$wb['datalog_status_u_web_database_user'] = 'Veritabanı kullanıcısını güncelle'; -$wb['datalog_status_d_web_database_user'] = 'Veritabanı kullanıcısını sil'; -$wb['datalog_status_i_web_domain'] = 'Web sitesi ekle'; -$wb['datalog_status_u_web_domain'] = 'Web sitesi ayarlarını güncelle'; -$wb['datalog_status_d_web_domain'] = 'Web sitesini sil'; -$wb['datalog_status_i_ftp_user'] = 'FTP kullanıcısı ekle'; -$wb['datalog_status_u_ftp_user'] = 'FTP kullanıcısını güncelle'; -$wb['datalog_status_d_ftp_user'] = 'FTP kullanıcısını sil'; -$wb['datalog_status_i_mail_domain'] = 'E-posta alan adı ekle'; -$wb['datalog_status_u_mail_domain'] = 'E-posta alan adını güncelle'; -$wb['datalog_status_d_mail_domain'] = 'E-posta alan adını sil'; -$wb['datalog_status_i_mail_user'] = 'E-posta kullanıcısı ekle'; -$wb['datalog_status_u_mail_user'] = 'E-posta kullanıcısını güncelle'; -$wb['datalog_status_d_mail_user'] = 'E-posta kullanıcısını sil'; -$wb['datalog_status_i_spamfilter_users'] = 'Spam süzgeci ayarları ekle'; -$wb['datalog_status_u_spamfilter_users'] = 'Spam süzgeci ayarlarını güncelle'; -$wb['datalog_status_d_spamfilter_users'] = 'Spam süzgeci ayarlarını sil'; -$wb['datalog_status_i_mail_forwarding'] = 'E-posta adresi ekle'; -$wb['datalog_status_u_mail_forwarding'] = 'E-posta adresini güncelle'; -$wb['datalog_status_d_mail_forwarding'] = 'E-posta adresini sil'; -$wb['datalog_status_i_dns_rr'] = 'DNS kaydı ekle'; -$wb['datalog_status_u_dns_rr'] = 'DNS kaydını güncelle'; -$wb['datalog_status_d_dns_rr'] = 'DNS kaydını sil'; -$wb['datalog_status_i_dns_soa'] = 'DNS bölgesi ekle'; -$wb['datalog_status_u_dns_soa'] = 'DNS bölgesini güncelle'; -$wb['datalog_status_d_dns_soa'] = 'DNS bölgesini sil'; -$wb['datalog_status_i_cron'] = 'Zamanlanmış görev ekle'; -$wb['datalog_status_u_cron'] = 'Zamanlanmış görevi güncelle'; -$wb['datalog_status_d_cron'] = 'Zamanlanmış görevi sil'; -$wb['datalog_status_i_mail_get'] = 'E-posta alma hesabı ekle'; -$wb['datalog_status_u_mail_get'] = 'E-posta alma hesabını güncelle'; -$wb['datalog_status_d_mail_get'] = 'E-posta alma hesabını sil'; -$wb['datalog_status_i_mail_mailinglist'] = 'E-posta listesi ekle'; -$wb['datalog_status_u_mail_mailinglist'] = 'E-posta listesini güncelle'; -$wb['datalog_status_d_mail_mailinglist'] = 'E-posta listesini sil'; -$wb['datalog_status_i_shell_user'] = 'Kabuk kullanıcısı ekle'; -$wb['datalog_status_u_shell_user'] = 'Kabuk kullanıcısını güncelle'; -$wb['datalog_status_d_shell_user'] = 'Kabuk kullanıcısını sil'; -$wb['datalog_status_i_web_folder'] = 'Klasör koruması ekle'; -$wb['datalog_status_u_web_folder'] = 'Klasör korumasını güncelle'; -$wb['datalog_status_d_web_folder'] = 'Klasör korumasını sil'; -$wb['datalog_status_i_web_folder_user'] = 'Klasör koruma kullanıcısı ekle'; -$wb['datalog_status_u_web_folder_user'] = 'Klasör koruma kullanıcısını güncelle'; -$wb['datalog_status_d_web_folder_user'] = 'Klasör koruma kullanıcısını sil'; +$wb['datalog_status_i_web_database'] = 'Veritabanı Ekle'; +$wb['datalog_status_u_web_database'] = 'Veritabanını Güncelle'; +$wb['datalog_status_d_web_database'] = 'Veritabanını Sil'; +$wb['datalog_status_i_web_database_user'] = 'Veritabanı Kullanıcısı Ekle'; +$wb['datalog_status_u_web_database_user'] = 'Veritabanı Kullanıcısını Güncelle'; +$wb['datalog_status_d_web_database_user'] = 'Veritabanı Kullanıcısını Sil'; +$wb['datalog_status_i_web_domain'] = 'Web Sitesi Ekle'; +$wb['datalog_status_u_web_domain'] = 'Web Sitesi Ayarlarını Güncelle'; +$wb['datalog_status_d_web_domain'] = 'Web Sitesini Sil'; +$wb['datalog_status_i_ftp_user'] = 'FTP Kullanıcısı Ekle'; +$wb['datalog_status_u_ftp_user'] = 'FTP Kullanıcısını Güncelle'; +$wb['datalog_status_d_ftp_user'] = 'FTP Kullanıcısını Sil'; +$wb['datalog_status_i_mail_domain'] = 'E-posta Etki Alanı Ekle'; +$wb['datalog_status_u_mail_domain'] = 'E-posta Etki Alanını Güncelle'; +$wb['datalog_status_d_mail_domain'] = 'E-posta Etki Alanını Sil'; +$wb['datalog_status_i_mail_user'] = 'E-posta Kullanıcısı Ekle'; +$wb['datalog_status_u_mail_user'] = 'E-posta Kullanıcısını Güncelle'; +$wb['datalog_status_d_mail_user'] = 'E-posta Kullanıcısını Sil'; +$wb['datalog_status_i_spamfilter_users'] = 'Spam Süzgeci Ayarları Ekle'; +$wb['datalog_status_u_spamfilter_users'] = 'Spam Süzgeci Ayarlarını Güncelle'; +$wb['datalog_status_d_spamfilter_users'] = 'Spam Süzgeci Ayarlarını Sil'; +$wb['datalog_status_i_mail_forwarding'] = 'E-posta Adresi Ekle'; +$wb['datalog_status_u_mail_forwarding'] = 'E-posta Adresini Güncelle'; +$wb['datalog_status_d_mail_forwarding'] = 'E-posta Adresini Sil'; +$wb['datalog_status_i_dns_rr'] = 'DNS Kaydı Ekle'; +$wb['datalog_status_u_dns_rr'] = 'DNS Kaydını Güncelle'; +$wb['datalog_status_d_dns_rr'] = 'DNS Kaydını Sil'; +$wb['datalog_status_i_dns_soa'] = 'DNS Bölgesi Ekle'; +$wb['datalog_status_u_dns_soa'] = 'DNS Bölgesini Güncelle'; +$wb['datalog_status_d_dns_soa'] = 'DNS Bölgesini Sil'; +$wb['datalog_status_i_cron'] = 'Zamanlanmış Görev Ekle'; +$wb['datalog_status_u_cron'] = 'Zamanlanmış Görevi Güncelle'; +$wb['datalog_status_d_cron'] = 'Zamanlanmış Görevi Sil'; +$wb['datalog_status_i_mail_get'] = 'E-posta Alma Hesabı Ekle'; +$wb['datalog_status_u_mail_get'] = 'E-posta Alma Hesabını Güncelle'; +$wb['datalog_status_d_mail_get'] = 'E-posta Alma Hesabını Sil'; +$wb['datalog_status_i_mail_mailinglist'] = 'E-posta Listesi Ekle'; +$wb['datalog_status_u_mail_mailinglist'] = 'E-posta Listesini Güncelle'; +$wb['datalog_status_d_mail_mailinglist'] = 'E-posta Listesini Sil'; +$wb['datalog_status_i_shell_user'] = 'Kabuk Kullanıcısı Ekle'; +$wb['datalog_status_u_shell_user'] = 'Kabuk Kullanıcısını Güncelle'; +$wb['datalog_status_d_shell_user'] = 'Kabuk Kullanıcısını Sil'; +$wb['datalog_status_i_web_folder'] = 'Klasör Koruması Ekle'; +$wb['datalog_status_u_web_folder'] = 'Klasör Korumasını Güncelle'; +$wb['datalog_status_d_web_folder'] = 'Klasör Korumasını Sil'; +$wb['datalog_status_i_web_folder_user'] = 'Klasör Koruma Kullanıcısı Ekle'; +$wb['datalog_status_u_web_folder_user'] = 'Klasör Koruma Kullanıcısını Güncelle'; +$wb['datalog_status_d_web_folder_user'] = 'Klasör Koruma Kullanıcısını Sil'; +$wb['datalog_status_i_xmpp_domain'] = 'XMPP etki alanı ekle'; +$wb['datalog_status_u_xmpp_domain'] = 'XMPP etki alanını düzenle'; +$wb['datalog_status_d_xmpp_domain'] = 'XMPP etki alanını sil'; +$wb['datalog_status_i_xmpp_user'] = 'XMPP kullanıcısı ekle'; +$wb['datalog_status_u_xmpp_user'] = 'XMPP kullanıcısını güncelle'; +$wb['datalog_status_d_xmpp_user'] = 'XMPP kullanıcısını sil'; $wb['err_csrf_attempt_blocked'] = 'CSRF girişimi engellendi.'; $wb['login_as_txt'] = 'Müşteri adıyla oturum aç'; -$wb['no_domain_perm'] = 'Bu alan adı için izniniz yok.'; +$wb['no_domain_perm'] = 'Bu etki alanı için izniniz yok.'; $wb['no_destination_perm'] = 'Bu hedef için izniniz yok.'; $wb['client_you_are_locked'] = 'Herhangi bir ayarı değiştirme izniniz yok.'; $wb['gender_m_txt'] = 'Bay'; @@ -146,16 +153,10 @@ $wb['strength_2'] = 'Yeterli'; $wb['strength_3'] = 'İyi'; $wb['strength_4'] = 'Güçlü'; $wb['strength_5'] = 'Çok Güçlü'; -$wb['weak_password_txt'] = 'Yazdığınız parola güvenlik ilkesine uygun değil. Parola en az {chars} karakter uzunluğunda ve \\"{strength}\\" güçlüğünde olmalı.'; +$wb['weak_password_txt'] = 'Yazdığınız parola güvenlik ilkesine uygun değil. Parola en az {chars} karakter uzunluğunda ve "{strength}" güçlüğünde olmalı.'; $wb['weak_password_length_txt'] = 'Yazdığınız parola güvenlik ilkesine uygun değil. Parola en az {chars} karakter uzunluğunda olmalı.'; $wb['security_check1_txt'] = 'Güvenlik iznini denetle:'; $wb['security_check2_txt'] = 'başarısız.'; -$wb['select_directive_snippet_txt'] = 'Directive Snippets'; -$wb['select_master_directive_snippet_txt'] = 'Master Directive Snippets'; -$wb['datalog_status_i_xmpp_domain'] = 'Create XMPP domain'; -$wb['datalog_status_u_xmpp_domain'] = 'Update XMPP domain'; -$wb['datalog_status_d_xmpp_domain'] = 'Delete XMPP domain'; -$wb['datalog_status_i_xmpp_user'] = 'Create XMPP user'; -$wb['datalog_status_u_xmpp_user'] = 'Update XMPP user'; -$wb['datalog_status_d_xmpp_user'] = 'Delete XMPP user'; +$wb['select_directive_snippet_txt'] = 'Yönerge Kod Parçaları'; +$wb['select_master_directive_snippet_txt'] = 'Ana Komut Parçaları'; ?> diff --git a/interface/web/admin/lib/lang/br.lng b/interface/web/admin/lib/lang/br.lng index c4df3fe58..b558a1510 100644 --- a/interface/web/admin/lib/lang/br.lng +++ b/interface/web/admin/lib/lang/br.lng @@ -1,8 +1,8 @@ diff --git a/interface/web/admin/lib/lang/br_directive_snippets.lng b/interface/web/admin/lib/lang/br_directive_snippets.lng index ae5615384..43c46c69b 100644 --- a/interface/web/admin/lib/lang/br_directive_snippets.lng +++ b/interface/web/admin/lib/lang/br_directive_snippets.lng @@ -2,11 +2,11 @@ $wb['Directive Snippets'] = 'Diretiva de trechos de código'; $wb['name_txt'] = 'Nome da diretiva'; $wb['type_txt'] = 'Tipo'; -$wb['snippet_txt'] = 'Diretiva'; +$wb['snippet_txt'] = 'Trecho de código'; $wb['active_txt'] = 'Ativo'; -$wb['directive_snippets_name_empty'] = 'Por favor, insira um nome para a diretiva'; -$wb['directive_snippets_name_error_unique'] = 'Já existe uma diretiva de trechos de código com este nome.'; +$wb['directive_snippets_name_empty'] = 'Por favor, insira um nome para a diretiva.'; +$wb['directive_snippets_name_error_unique'] = 'Já existe uma diretiva com este nome.'; $wb['variables_txt'] = 'Variáveis'; -$wb['customer_viewable_txt'] = 'Visualizada pelo cliente'; -$wb['required_php_snippets_txt'] = 'Diretiva obrigatória para PHP'; +$wb['customer_viewable_txt'] = 'Visualização personalizada'; +$wb['required_php_snippets_txt'] = 'Trecho de código exige php'; ?> diff --git a/interface/web/admin/lib/lang/br_directive_snippets_list.lng b/interface/web/admin/lib/lang/br_directive_snippets_list.lng index 8e08580ad..70af844dd 100644 --- a/interface/web/admin/lib/lang/br_directive_snippets_list.lng +++ b/interface/web/admin/lib/lang/br_directive_snippets_list.lng @@ -1,8 +1,8 @@ diff --git a/interface/web/admin/lib/lang/br_firewall.lng b/interface/web/admin/lib/lang/br_firewall.lng index 0bd3cdc74..da0936b00 100644 --- a/interface/web/admin/lib/lang/br_firewall.lng +++ b/interface/web/admin/lib/lang/br_firewall.lng @@ -1,11 +1,11 @@ diff --git a/interface/web/admin/lib/lang/br_firewall_list.lng b/interface/web/admin/lib/lang/br_firewall_list.lng index 8ff52ee24..94ef3aab7 100644 --- a/interface/web/admin/lib/lang/br_firewall_list.lng +++ b/interface/web/admin/lib/lang/br_firewall_list.lng @@ -4,5 +4,5 @@ $wb['active_txt'] = 'Ativo'; $wb['server_id_txt'] = 'Servidor'; $wb['tcp_port_txt'] = 'Portas tcp abertas'; $wb['udp_port_txt'] = 'Portas udp abertas'; -$wb['add_new_record_txt'] = 'Adicionar regra de firewall'; +$wb['add_new_record_txt'] = 'Adicionar nova regra'; ?> diff --git a/interface/web/admin/lib/lang/br_groups.lng b/interface/web/admin/lib/lang/br_groups.lng index 735bd864a..22a1a5c63 100644 --- a/interface/web/admin/lib/lang/br_groups.lng +++ b/interface/web/admin/lib/lang/br_groups.lng @@ -1,5 +1,5 @@ diff --git a/interface/web/admin/lib/lang/br_groups_list.lng b/interface/web/admin/lib/lang/br_groups_list.lng index f31a85d12..74a414f52 100644 --- a/interface/web/admin/lib/lang/br_groups_list.lng +++ b/interface/web/admin/lib/lang/br_groups_list.lng @@ -1,7 +1,7 @@ AVISO: Não modifique ou edite qualquer configuração de usuário aqui. Use o módulo de clientes ou revendas. Modificar ou alterar usuários e grupos aqui pode ocasionar perda de dados!'; +$wb['add_new_record_txt'] = 'Adicionar novo grupo'; +$wb['warning_txt'] = 'ALERTA: Não editar ou alterar qualquer configuração de usuário aqui. Use o módulo de clientes e revendas para isso. Editar ou alterar usuários ou grupos aqui pode causar perda de dados!'; ?> diff --git a/interface/web/admin/lib/lang/br_iptables.lng b/interface/web/admin/lib/lang/br_iptables.lng index e44fcf1e6..f899d5317 100644 --- a/interface/web/admin/lib/lang/br_iptables.lng +++ b/interface/web/admin/lib/lang/br_iptables.lng @@ -1,13 +1,13 @@ diff --git a/interface/web/admin/lib/lang/br_iptables_list.lng b/interface/web/admin/lib/lang/br_iptables_list.lng index 2cd7fdfb5..3326ac060 100644 --- a/interface/web/admin/lib/lang/br_iptables_list.lng +++ b/interface/web/admin/lib/lang/br_iptables_list.lng @@ -1,6 +1,6 @@ diff --git a/interface/web/admin/lib/lang/br_language_add.lng b/interface/web/admin/lib/lang/br_language_add.lng index eaa080819..f63441c55 100644 --- a/interface/web/admin/lib/lang/br_language_add.lng +++ b/interface/web/admin/lib/lang/br_language_add.lng @@ -1,8 +1,8 @@ diff --git a/interface/web/admin/lib/lang/br_language_complete.lng b/interface/web/admin/lib/lang/br_language_complete.lng index 84d5e3393..cb0ea2eb2 100644 --- a/interface/web/admin/lib/lang/br_language_complete.lng +++ b/interface/web/admin/lib/lang/br_language_complete.lng @@ -1,5 +1,5 @@ Isto permite completar qualquer falha de tradução, com o arquivo principal original em inglês.'; $wb['language_select_txt'] = 'Selecionar idioma'; $wb['btn_save_txt'] = 'Mesclar arquivos agora'; diff --git a/interface/web/admin/lib/lang/br_language_edit.lng b/interface/web/admin/lib/lang/br_language_edit.lng index 887080b6d..ed0e6bb84 100644 --- a/interface/web/admin/lib/lang/br_language_edit.lng +++ b/interface/web/admin/lib/lang/br_language_edit.lng @@ -1,6 +1,6 @@ diff --git a/interface/web/admin/lib/lang/br_language_import.lng b/interface/web/admin/lib/lang/br_language_import.lng index e99756b37..99db33981 100644 --- a/interface/web/admin/lib/lang/br_language_import.lng +++ b/interface/web/admin/lib/lang/br_language_import.lng @@ -1,9 +1,9 @@ diff --git a/interface/web/admin/lib/lang/br_language_list.lng b/interface/web/admin/lib/lang/br_language_list.lng index cd0083341..37941c447 100644 --- a/interface/web/admin/lib/lang/br_language_list.lng +++ b/interface/web/admin/lib/lang/br_language_list.lng @@ -1,7 +1,7 @@ diff --git a/interface/web/admin/lib/lang/br_package_install.lng b/interface/web/admin/lib/lang/br_package_install.lng index 5b54c3080..bbe518549 100644 --- a/interface/web/admin/lib/lang/br_package_install.lng +++ b/interface/web/admin/lib/lang/br_package_install.lng @@ -1,7 +1,7 @@ diff --git a/interface/web/admin/lib/lang/br_remote_action.lng b/interface/web/admin/lib/lang/br_remote_action.lng index e06a6382b..80d3a05c5 100644 --- a/interface/web/admin/lib/lang/br_remote_action.lng +++ b/interface/web/admin/lib/lang/br_remote_action.lng @@ -1,12 +1,12 @@
UTILIZE POR SUA CONTA E RISCO!'; -$wb['do_ispcupdate_caption'] = 'Atualização do ISPConfig 3 no servidor'; -$wb['do_ispcupdate_desc'] = 'Esta ação fará uma atualização do ISPConfig3 no servidor selecionado.

UTILIZE POR SUA CONTA E RISCO!'; -$wb['action_scheduled'] = 'Esta ação está agendada para execução'; +$wb['do_osupdate_caption'] = 'Atualizar sistema operacional no servidor remoto'; +$wb['do_osupdate_desc'] = 'Esta ação fará o comando \'aptitude -y upgrade\' no servidor selecionado.

UTILIZE POR SUA CONTA E RISCO!'; +$wb['do_ispcupdate_caption'] = 'Atualizar ISPConfig 3 - Atualizar o servidor remoto'; +$wb['do_ispcupdate_desc'] = 'Esta ação atualizará o ISPConfig3 no servidor selecionado.

UTILIZE POR SUA CONTA E RISCO!'; +$wb['action_scheduled'] = 'A ação foi agendada.'; $wb['select_all_server'] = 'Todos os servidores'; $wb['ispconfig_update_title'] = 'Instruções de atualização do ISPConfig'; -$wb['ispconfig_update_text'] = 'Acesse como root no shell do seu servidor e execute os seguintes comandos

ispconfig_update.sh

para iniciar a atualização do ISPConfig.

Clique aqui para instruções detalhadas sobre atualização'; +$wb['ispconfig_update_text'] = 'Acesse com o usuário root no shell do servidor e execute o comando

ispconfig_update.sh

para iniciar a atualização do ISPConfig.

Clique aqui para instruções detalhadas'; ?> diff --git a/interface/web/admin/lib/lang/br_remote_user.lng b/interface/web/admin/lib/lang/br_remote_user.lng index 95657a283..fcaa6732c 100644 --- a/interface/web/admin/lib/lang/br_remote_user.lng +++ b/interface/web/admin/lib/lang/br_remote_user.lng @@ -1,50 +1,68 @@ um)'; -$wb['remote_user_error_ips'] = 'Ao menos um endereço IP ou nome do servidor é inválido.'; -$wb['Mail mailing list functions'] = 'Mail mailinglist functions'; +$wb['DNS alias functions'] = 'Funções de ALIAS dns'; +$wb['DNS cname functions'] = 'Funções de CNAME dns'; +$wb['DNS hinfo functions'] = 'Funções de HINFO dns'; +$wb['DNS mx functions'] = 'Funções de MX dns'; +$wb['DNS ns functions'] = 'Funções de NS dns'; +$wb['DNS ptr functions'] = 'Funções de PTR dns'; +$wb['DNS rp functions'] = 'Funções de RP dns'; +$wb['DNS srv functions'] = 'Funções de SVR dns'; +$wb['DNS txt functions'] = 'Funções de TXT dns'; +$wb['DNS ds functions'] = 'Funções de DS dns'; +$wb['DNS loc functions'] = 'Funções de LOC dns'; +$wb['DNS tlsa functions'] = 'Funções de TLSA dns'; +$wb['OpenVZ VM functions'] = 'Funções do openvz'; +$wb['generate_password_txt'] = 'Gerar Senha'; +$wb['repeat_password_txt'] = 'Repetir Senha'; +$wb['password_mismatch_txt'] = 'As senhas não coincidem.'; +$wb['password_match_txt'] = 'As senhas coincidem.'; +$wb['remote_access_txt'] = 'Acesso Remoto'; +$wb['remote_ips_txt'] = 'Endereços IPs ou nome(s) do(s) host(s) para acesso remoto (separado por vírgula e deixar em branco para qualquer um)'; +$wb['remote_user_error_ips'] = 'Ao menos um endereço IP ou nome do host informado é inválido.'; ?> diff --git a/interface/web/admin/lib/lang/br_remote_user_list.lng b/interface/web/admin/lib/lang/br_remote_user_list.lng index f95d782ce..0f0381a6f 100644 --- a/interface/web/admin/lib/lang/br_remote_user_list.lng +++ b/interface/web/admin/lib/lang/br_remote_user_list.lng @@ -1,7 +1,7 @@ diff --git a/interface/web/admin/lib/lang/br_server.lng b/interface/web/admin/lib/lang/br_server.lng index 930b990f4..a896d0b49 100644 --- a/interface/web/admin/lib/lang/br_server.lng +++ b/interface/web/admin/lib/lang/br_server.lng @@ -2,15 +2,15 @@ $wb['config_txt'] = 'Configuração'; $wb['server_name_txt'] = 'Nome do servidor'; $wb['mail_server_txt'] = 'Servidor de e-mails'; -$wb['web_server_txt'] = 'Servidor de páginas'; +$wb['web_server_txt'] = 'Servidor web'; $wb['dns_server_txt'] = 'Servidor dns'; -$wb['file_server_txt'] = 'Servidor de arquivo'; +$wb['file_server_txt'] = 'Servidor ftp'; $wb['db_server_txt'] = 'Servidor de banco de dados'; -$wb['vserver_server_txt'] = 'Servidor virtual'; -$wb['active_txt'] = 'Ativo'; -$wb['mirror_server_id_txt'] = 'É um espelho de servidor?'; -$wb['- None -'] = '- Nenhum -'; +$wb['vserver_server_txt'] = 'Servidor de virtualização'; $wb['proxy_server_txt'] = 'Servidor proxy'; -$wb['firewall_server_txt'] = 'Servidor de firewall'; -$wb['xmpp_server_txt'] = 'Servidor XMPP'; +$wb['firewall_server_txt'] = 'Servidor firewall'; +$wb['active_txt'] = 'Ativo'; +$wb['mirror_server_id_txt'] = 'É um espelho de servidor'; +$wb['- None -'] = '-Nenhum-'; +$wb['xmpp_server_txt'] = 'Servidor xmpp'; ?> diff --git a/interface/web/admin/lib/lang/br_server_config.lng b/interface/web/admin/lib/lang/br_server_config.lng index 25ffb0699..f57a2310f 100644 --- a/interface/web/admin/lib/lang/br_server_config.lng +++ b/interface/web/admin/lib/lang/br_server_config.lng @@ -1,303 +1,303 @@ Informação: Se você deseja desligar o MySQL deverá selecionar \'Desabilitar monitoramento do MySQL\' e aguardar em torno de 2 a 3 minutos...
se não aguardar em torno de 2 a 3 minutos, o serviço tentará reiniciar o MySQL!'; +$wb['fastcgi_alias_error_empty'] = 'Alias do FastCGI está em branco.'; +$wb['fastcgi_phpini_path_error_empty'] = 'O caminho do php.ini do FastCGI está em branco.'; +$wb['fastcgi_children_error_empty'] = 'Os processos filhos do FastCGI está em branco.'; +$wb['fastcgi_max_requests_error_empty'] = 'O limite de requisições FastCGI está em branco.'; +$wb['fastcgi_bin_error_empty'] = 'O binário do FastCGI está em branco.'; +$wb['jailkit_chroot_home_error_empty'] = 'O home em chroot do jailkit está em branco.'; +$wb['jailkit_chroot_app_sections_error_empty'] = 'Seções de aplicações no jailkit está em branco.'; +$wb['jailkit_chroot_app_programs_error_empty'] = 'Aplicações no jailkit está em branco.'; +$wb['jailkit_chroot_cron_programs_error_empty'] = 'Tarefas de aplicações no jailkit está em branco.'; +$wb['vlogger_config_dir_error_empty'] = 'Diretório de configuração está em branco.'; +$wb['cron_init_script_error_empty'] = 'Script de inicialização do cron está em branco.'; +$wb['crontab_dir_error_empty'] = 'Caminho para tarefas individuais no cron está em branco.'; +$wb['cron_wget_error_empty'] = 'Caminho do binário wget está em branco.'; +$wb['php_fpm_init_script_txt'] = 'Script de inicialização do php-fpm'; +$wb['php_fpm_init_script_error_empty'] = 'Script de inicialização do php-fpm está em branco.'; +$wb['php_fpm_ini_path_txt'] = 'Caminho do php.ini do php-fpm'; +$wb['php_fpm_ini_path_error_empty'] = 'Caminho do php.ini do php-fpm está em branco.'; +$wb['php_fpm_pool_dir_txt'] = 'Diretório de faixas do php-fpm'; +$wb['php_fpm_pool_dir_error_empty'] = 'Diretório de faixas do php-fpm está em branco.'; +$wb['php_fpm_start_port_txt'] = 'Porta do php-fpm'; +$wb['php_fpm_start_port_error_empty'] = 'Porta do php-fpm está em branco.'; +$wb['php_fpm_socket_dir_txt'] = 'Diretório do socket php-fpm'; +$wb['php_fpm_socket_dir_error_empty'] = 'O diretório do socket php-fpm está em branco.'; +$wb['try_rescue_txt'] = 'Habilitar monitoramento de reiniciar em caso de falha'; +$wb['do_not_try_rescue_httpd_txt'] = 'Desabilitar monitoramento do httpd'; +$wb['do_not_try_rescue_mongodb_txt'] = 'Desabilitar monitoramento do mongodb'; +$wb['do_not_try_rescue_mysql_txt'] = 'Desabilitar monitoramento do mysql'; +$wb['do_not_try_rescue_mail_txt'] = 'Desabilitar monitoramento de e-mail'; +$wb['rescue_description_txt'] = 'Informação: Se o serviço mysql for desligado e estiver selecionado "Desabilitar monitoramento do mysql" aguarde entre 2 e 3 minutos sem abandonar a aba.
Se não aguardar o sistema de recuperação de falhas tentará reiniciar o mysql!'; $wb['enable_sni_txt'] = 'Habilitar SNI'; -$wb['do_not_try_rescue_httpd_txt'] = 'Desabilitar monitoramento do HTTPD'; -$wb['set_folder_permissions_on_update_txt'] = 'Configurar permissões de pasta na atualização'; -$wb['add_web_users_to_sshusers_group_txt'] = 'Adicionar usuários de site (web) para grupo -sshusers-'; -$wb['connect_userid_to_webid_txt'] = 'Mapear userID Linux para webID'; -$wb['connect_userid_to_webid_start_txt'] = 'Iniciar ID para userID/webID se conectar'; -$wb['website_autoalias_txt'] = 'Auto apelido (alias) para sites'; -$wb['website_autoalias_note_txt'] = 'Área reservada:'; -$wb['backup_mode_txt'] = 'Modo do backup'; -$wb['backup_mode_userzip'] = 'Arquivos de backup com propriedade do usuário web e compactados como zip'; -$wb['backup_mode_rootgz'] = 'Todos os arquivos no diretório web com proprietário root'; -$wb['realtime_blackhole_list_txt'] = 'RBL em tempo real'; -$wb['realtime_blackhole_list_note_txt'] = '(Separar RBL\'s por vírgulas)'; +$wb['set_folder_permissions_on_update_txt'] = 'Configurar permissões de pasta quando atualizar'; +$wb['add_web_users_to_sshusers_group_txt'] = 'Adicionar novos usuários web para o grupo ssh'; +$wb['connect_userid_to_webid_txt'] = 'Conectar o UID do usuário no sistema para webID'; +$wb['connect_userid_to_webid_start_txt'] = 'Conexão do ID inicial do usuário com o webID'; +$wb['realtime_blackhole_list_txt'] = 'Lista RBL em tempo real'; +$wb['realtime_blackhole_list_note_txt'] = '(separar as RBLs com vírgulas)'; $wb['ssl_settings_txt'] = 'Configurações SSL'; $wb['permissions_txt'] = 'Permissões'; -$wb['php_settings_txt'] = 'Configurações PHP'; -$wb['apps_vhost_settings_txt'] = 'Configurações apps-vhost'; -$wb['awstats_settings_txt'] = 'Configurações awstats'; +$wb['php_settings_txt'] = 'Configurações php'; +$wb['apps_vhost_settings_txt'] = 'Configurações de apps vhost'; +$wb['awstats_settings_txt'] = 'Configurações do awstats'; $wb['firewall_txt'] = 'Firewall'; -$wb['mailbox_quota_stats_txt'] = 'Estatísticas de cota das contas de e-mail'; -$wb['enable_ip_wildcard_txt'] = 'Habilitar curingas (*) para IP'; +$wb['mailbox_quota_stats_txt'] = 'Estatísticas das cotas das contas de e-mail'; +$wb['enable_ip_wildcard_txt'] = 'Habilitar curingas de IP (*)'; $wb['web_folder_protection_txt'] = 'Tornar pastas web imutáveis (atributos estendidos)'; -$wb['overtraffic_notify_admin_txt'] = 'Enviar notificação de cota de tráfego excedida para o administrador'; -$wb['overtraffic_notify_client_txt'] = 'Enviar notificação de cota de tráfego excedida para o cliente'; -$wb['rbl_error_regex'] = 'Por favor, insira um nome de servidor válido para RBL.'; -$wb['overquota_notify_admin_txt'] = 'Enviar alertas de cota para o administrador'; -$wb['overquota_notify_client_txt'] = 'Enviar alertas de cota para o cliente'; -$wb['overquota_notify_onok_txt'] = 'Enviar mensagem de cota OK para o cliente'; -$wb['overquota_notify_freq_txt'] = 'Enviar alertas de cota a cada N dias'; -$wb['overquota_notify_freq_note_txt'] = '0 = enviar mensagem apenas uma vez, não repetir'; -$wb['admin_notify_events_txt'] = 'Enviar e-mail para o admin quando iniciando com o seguinte nível'; -$wb['no_notifications_txt'] = 'Sem Notificações'; -$wb['monit_url_txt'] = 'URL do Monit'; -$wb['monit_user_txt'] = 'Usuário do Monit'; -$wb['monit_password_txt'] = 'Senha do Monit'; -$wb['monit_url_error_regex'] = 'URL do Monit inválida.'; +$wb['overtraffic_notify_admin_txt'] = 'Enviar notificação de tráfego excedido para o administrador'; +$wb['overtraffic_notify_client_txt'] = 'Enviar notificação de tráfego excedido para o cliente'; +$wb['rbl_error_regex'] = 'Por favor, nomes de host válidos para RBLs.'; +$wb['overquota_notify_admin_txt'] = 'Enviar alerta da cota para o administrador'; +$wb['overquota_notify_client_txt'] = 'Enviar alerta da cota para o cliente'; +$wb['overquota_notify_onok_txt'] = 'Enviar mensagem da cota para o cliente'; +$wb['overquota_notify_freq_txt'] = 'Enviar alerta da cota a cada X dias'; +$wb['overquota_notify_freq_note_txt'] = '0 = enviar mensagem apenas uma vez, sem repetir'; +$wb['admin_notify_events_txt'] = 'Enviar e-mail para o administrador iniciando com o seguinte nível'; +$wb['no_notifications_txt'] = 'Sem notificações'; +$wb['monit_url_txt'] = 'URL de monitoramento do monit'; +$wb['monit_user_txt'] = 'Usuário do monit'; +$wb['monit_password_txt'] = 'Senha do monit'; +$wb['monit_url_error_regex'] = 'URL do monit é inválida'; $wb['monit_url_note_txt'] = 'Área reservada:'; -$wb['munin_url_txt'] = 'URL do Munin'; -$wb['munin_user_txt'] = 'Usuário do Munin'; -$wb['munin_password_txt'] = 'Senha do Munin'; -$wb['munin_url_error_regex'] = 'URL do Munin inválida.'; +$wb['munin_url_txt'] = 'URL do munin'; +$wb['munin_user_txt'] = 'Usuário do munin'; +$wb['munin_password_txt'] = 'Senda do munin'; +$wb['munin_url_error_regex'] = 'URL do munin e inválida'; $wb['munin_url_note_txt'] = 'Área reservada:'; -$wb['dkim_path_txt'] = 'Caminho do DKIM'; -$wb['backup_delete_txt'] = 'Remover backups do domínio/site'; $wb['v6_prefix_txt'] = 'Prefixo IPv6'; -$wb['vhost_rewrite_v6_txt'] = 'Reescrever prefixo IPv6 no espelho'; -$wb['v6_prefix_length'] = 'Prefixo longo definido de acordo com IPv6'; -$wb['backup_dir_is_mount_txt'] = 'Diretório de backup está montado?'; -$wb['monitor_system_updates_txt'] = 'Verificar por atualizações Linux'; -$wb['hostname_error_regex'] = 'Nome do servidor é inválido.'; -$wb['invalid_apache_user_txt'] = 'Usuário do Apache é inválido.'; -$wb['invalid_apache_group_txt'] = 'Grupo do Apache é inválido.'; +$wb['vhost_rewrite_v6_txt'] = 'Reescrever IPv6 no espelho'; +$wb['v6_prefix_length'] = 'O prefixo é muito longo de acordo com as definições IPv6.'; +$wb['backup_dir_is_mount_txt'] = 'O diretório de backup está montando?'; +$wb['backup_dir_mount_cmd_txt'] = 'Comando mount, se o diretório não está montado'; +$wb['backup_delete_txt'] = 'Remover backups de domínios/site'; +$wb['overquota_db_notify_admin_txt'] = 'Enviar alerta da cota do banco de dados para o administrador'; +$wb['overquota_db_notify_client_txt'] = 'Enviar alerta da cota do banco de dados para o cliente'; +$wb['monitor_system_updates_txt'] = 'Verificar por atualizações do sistema'; +$wb['php_handler_txt'] = 'Manipulador padrão do php'; +$wb['php_fpm_incron_reload_txt'] = 'Instale o arquivo de disparo do incron para recarregar o php-fpm.'; +$wb['disabled_txt'] = 'Desabilitado'; +$wb['dkim_strength_txt'] = 'Dificuldade do DKIM'; +$wb['monitor_system_updates_txt'] = 'Verificar por atualizações do sistema'; +$wb['invalid_apache_user_txt'] = 'Usuário do apache é inválido.'; +$wb['invalid_apache_group_txt'] = 'Grupo do apache é inválido.'; $wb['backup_dir_error_regex'] = 'Diretório de backup é inválido.'; -$wb['maildir_path_error_regex'] = 'Caminho do Maildir é inválido.'; -$wb['homedir_path_error_regex'] = 'Caminho do Home é inválido.'; -$wb['mailuser_name_error_regex'] = 'Nome do Mailuser é inválido.'; -$wb['mailuser_group_name_error_regex'] = 'Grupo do Mailuser é inválido.'; -$wb['mailuser_uid_error_range'] = 'A UID do Mailuser deve ser >= 2000'; -$wb['mailuser_gid_error_range'] = 'A GID do Mailuser deve ser >= 2000'; -$wb['getmail_config_dir_error_regex'] = 'Configuração do diretório do getmail inválida.'; -$wb['website_basedir_error_regex'] = 'Diretório base (basedir) para sites é inválido.'; -$wb['website_symlinks_error_regex'] = 'Links simbólicos para sites é inválido.'; -$wb['vhost_conf_dir_error_regex'] = 'Diretório de configurações para vhost é inválido.'; -$wb['vhost_conf_enabled_dir_error_regex'] = 'Diretório de configurações para vhost habilitado é inválido.'; +$wb['maildir_path_error_regex'] = 'Caminho do maildir é inválido.'; +$wb['homedir_path_error_regex'] = 'Caminho do homedir é inválido.'; +$wb['mailuser_name_error_regex'] = 'Caminho do mailuser é inválido.'; +$wb['mailuser_group_name_error_regex'] = 'Grupo do mailuser é inválido.'; +$wb['mailuser_uid_error_range'] = 'A UID do mailuser deve ser >= 2000.'; +$wb['mailuser_gid_error_range'] = 'A GID do mailuser deve ser >= 2000.'; +$wb['getmail_config_dir_error_regex'] = 'Diretório de configurações do getmail é inválido.'; +$wb['website_basedir_error_regex'] = 'Caminho do basedir para sites é inválido. Comprimento mínimo 5 caracteres.'; +$wb['website_symlinks_error_regex'] = 'Links simbólicos para site são inválidos.'; +$wb['vhost_conf_dir_error_regex'] = 'Diretório de configurações vhost é inválido.'; +$wb['vhost_conf_enabled_dir_error_regex'] = 'Diretório de configuração vhost habilitado é inválido.'; $wb['nginx_vhost_conf_dir_error_regex'] = 'Diretório de configurações do nginx é inválido.'; -$wb['nginx_vhost_conf_enabled_dir_error_regex'] = 'Diretório de configurações nginx habilitado é inválido.'; -$wb['ca_path_error_regex'] = 'Caminho do CA é inválido.'; +$wb['nginx_vhost_conf_enabled_dir_error_regex'] = 'Diretório de configurações do nginx habilitado é inválido.'; +$wb['ca_path_error_regex'] = 'Caminho da CA é inválido.'; $wb['invalid_nginx_user_txt'] = 'Usuário do nginx é inválido.'; $wb['invalid_nginx_group_txt'] = 'Grupo do nginx é inválido.'; -$wb['php_ini_path_apache_error_regex'] = 'Caminho do php.ini apache é inválido.'; -$wb['php_ini_path_cgi_error_regex'] = 'Caminho do php.ini CGI é inválido.'; -$wb['php_fpm_init_script_error_regex'] = 'Caminho do script de inicialização do PHP-FPM é inválido.'; -$wb['php_fpm_ini_path_error_regex'] = 'Caminho do php.ini PHP-FPM é inválido.'; -$wb['php_fpm_pool_dir_error_regex'] = 'Diretório de faixas (pool) PHP-FPM é inválido.'; -$wb['php_fpm_socket_dir_error_regex'] = 'Diretório do sqouete PHP-FPM é inválido.'; -$wb['php_open_basedir_error_regex'] = 'Diretório base (open_basedir) PHP é inválido.'; -$wb['awstats_data_dir_empty'] = 'Diretório de dados do awstats está em branco.'; -$wb['awstats_data_dir_error_regex'] = 'Diretório de dados do do awstats é inválido.'; -$wb['awstats_pl_empty'] = 'Configuração do script awstats.pl está em branco.'; -$wb['awstats_pl_error_regex'] = 'Caminho do script awstats.pl é inválido.'; -$wb['awstats_buildstaticpages_pl_empty'] = 'Script awstats_buildstaticpages.pl está em branco.'; -$wb['awstats_buildstaticpages_pl_error_regex'] = 'Camindho do script awstats_buildstaticpages.pl é inválido.'; -$wb['invalid_bind_user_txt'] = 'Usuário bind é inválido.'; -$wb['invalid_bind_group_txt'] = 'Grupo bind é inválido.'; -$wb['bind_zonefiles_dir_error_regex'] = 'Diretório de zonas do bind é inválido.'; -$wb['named_conf_path_error_regex'] = 'Caminho do named.conf é inválido.'; -$wb['named_conf_local_path_error_regex'] = 'Caminho do named.conf.local é inválido.'; -$wb['fastcgi_starter_path_error_regex'] = 'Caminho do scritp de inicialização FASTCGI é inválido.'; -$wb['fastcgi_starter_script_error_regex'] = 'Script de inicizalização FASTCGI é inválido.'; -$wb['fastcgi_alias_error_regex'] = 'Apelido (alias) do FASTCGI é inválido.'; -$wb['fastcgi_phpini_path_error_regex'] = 'Caminho do FASTCGI é inválido.'; -$wb['fastcgi_bin_error_regex'] = 'Binário do FASTCGI é inválido.'; -$wb['jailkit_chroot_home_error_regex'] = 'Raiz do chroot jailkit inválida.'; -$wb['jailkit_chroot_app_sections_error_regex'] = 'Aplicações no jailkit chroot (sessões) são inválidas.'; -$wb['jailkit_chroot_app_programs_error_regex'] = 'Aplicações no jailkit em ambiente chroot são inválidas.'; -$wb['jailkit_chroot_cron_programs_error_regex'] = 'Programas no cron em ambiente chroot jailkit são inválidos.'; -$wb['vlogger_config_dir_error_regex'] = 'Diretório de configuração do vlogger é inválido.'; -$wb['cron_init_script_error_regex'] = 'Script de inicialização do Cron é inválido.'; -$wb['crontab_dir_error_regex'] = 'Diretório para tabelas de tarefas individuais no cron é inválido.'; -$wb['cron_wget_error_regex'] = 'Caminho do wget para cron é inválido.'; +$wb['php_ini_path_apache_error_regex'] = 'Caminho do php.ini do apache é inválido.'; +$wb['php_ini_path_cgi_error_regex'] = 'Caminho do php.ini do cgi é inválido.'; +$wb['php_fpm_init_script_error_regex'] = 'Script de inicialização do php-fpm é inválido.'; +$wb['php_fpm_ini_path_error_regex'] = 'Caminho de inicialização do php-fpm é inválido.'; +$wb['php_fpm_pool_dir_error_regex'] = 'Caminho do diretório de faixas do php-fpm é inválido.'; +$wb['php_fpm_socket_dir_error_regex'] = 'Caminho do diretório de socket do php-fpm é inválido.'; +$wb['php_open_basedir_error_regex'] = 'Caminho do open_basedir do php é inválido.'; +$wb['awstats_data_dir_empty'] = 'O diretório de dados do awstats está em branco.'; +$wb['awstats_data_dir_error_regex'] = 'O diretório de dados do awstats é inválido.'; +$wb['awstats_pl_empty'] = 'A configuração do awstats.pl está em branco.'; +$wb['awstats_pl_error_regex'] = 'O caminho do awstats.pl é inválido.'; +$wb['awstats_buildstaticpages_pl_empty'] = 'O awstats_buildstaticpages.pl está em branco'; +$wb['awstats_buildstaticpages_pl_error_regex'] = 'O caminho do awstats_buildstaticpages.pl é inválido.'; +$wb['invalid_bind_user_txt'] = 'O usuário do bind é inválido.'; +$wb['invalid_bind_group_txt'] = 'O grupo do bind é inválido.'; +$wb['bind_zonefiles_dir_error_regex'] = 'O diretório de zonas do bind é inválido.'; +$wb['named_conf_path_error_regex'] = 'O caminho do named.conf é inválido.'; +$wb['named_conf_local_path_error_regex'] = 'O caminho do named.conf.local é inválido.'; +$wb['fastcgi_starter_path_error_regex'] = 'O caminho do script de inicialização do fastcgi é inválido.'; +$wb['fastcgi_starter_script_error_regex'] = 'O script de inicialização do fastcgi é inválido.'; +$wb['fastcgi_alias_error_regex'] = 'O alias do fastcgi é inválido.'; +$wb['fastcgi_phpini_path_error_regex'] = 'O caminho do fastcgi é inválido.'; +$wb['fastcgi_bin_error_regex'] = 'O binário do fastcgi é inválido.'; +$wb['jailkit_chroot_home_error_regex'] = 'O diretório home em chroot do jailkit é inválido.'; +$wb['jailkit_chroot_app_sections_error_regex'] = 'As seções de aplicações no jaikit são inválidas.'; +$wb['jailkit_chroot_app_programs_error_regex'] = 'As aplicações em chroot no jailkit são inválidas.'; +$wb['jailkit_chroot_cron_programs_error_regex'] = 'As tarefas de aplicações em chroot no jailkit são inválidas.'; +$wb['vlogger_config_dir_error_regex'] = 'Diretório de configurações do vlogger é inválido.'; +$wb['cron_init_script_error_regex'] = 'Script de inicialização do cron é inválido.'; +$wb['crontab_dir_error_regex'] = 'Diretório do cron é inválido.'; +$wb['cron_wget_error_regex'] = 'Caminho do wget no cron é inválido.'; $wb['network_filesystem_txt'] = 'Sistema de arquivos de rede'; -$wb['disable_bind_log_txt'] = 'Desabilitar mensagens de alerta no log para bind9.'; -$wb['apps_vhost_enabled_txt'] = 'Habilitar apps-vhost'; -$wb['do_not_try_rescue_mongodb_txt'] = 'Desabilitar monitoramento do MongoDB'; -$wb['backup_dir_mount_cmd_txt'] = 'Usar o comando mount, se o diretório de backups não estiver montado'; -$wb['overquota_db_notify_admin_txt'] = 'Enviar mensagens de alerta de cota do banco de dados para o administrador'; -$wb['overquota_db_notify_client_txt'] = 'Enviar mensagens de alerta de cota do banco de dados para o cliente'; -$wb['php_handler_txt'] = 'Manipulador padrão PHP'; -$wb['php_fpm_incron_reload_txt'] = 'Install incron trigger file to reload PHP-FPM'; -$wb['disabled_txt'] = 'Desabilitado'; -$wb['dkim_strength_txt'] = 'Dificuldade do DKIM'; -$wb['php_ini_check_minutes_txt'] = 'Verificar modificações do php.ini a cada N minutos'; -$wb['php_ini_check_minutes_error_empty'] = 'Por favor, insira um valor de quantas vezes o php.ini deve ser verificado por modificações.'; -$wb['php_ini_check_minutes_info_txt'] = '0 = sem verificação'; +$wb['php_ini_check_minutes_txt'] = 'Verificar alterações no php.ini a cada X minutos'; +$wb['php_ini_check_minutes_error_empty'] = 'Por favor, insira um valor para verificação de alterações no php.ini.'; +$wb['php_ini_check_minutes_info_txt'] = '0 = sem verificações'; $wb['enable_spdy_txt'] = 'Tornar SPDY/HTTP2 disponível'; -$wb['web_settings_txt'] = 'Servidor de páginas'; -$wb['xmpp_server_txt'] = 'Servidor XMPP'; +$wb['web_settings_txt'] = 'Servidor web'; +$wb['xmpp_server_txt'] = 'Servidor xmpp'; $wb['xmpp_use_ipv6_txt'] = 'Usar IPv6'; -$wb['xmpp_bosh_max_inactivity_txt'] = 'O limite de tempo para falta de atividade BOSH'; -$wb['xmpp_bosh_timeout_range_wrong'] = 'Por favor, insira uma faixa de tempo - entre 15 e 360 - para verificar falta de atividade BOSH.'; -$wb['xmpp_module_saslauth'] = 'saslauth'; +$wb['xmpp_bosh_max_inactivity_txt'] = 'Tempo de inatividade do BOSH'; +$wb['xmpp_bosh_timeout_range_wrong'] = 'Por favor, insira um valor para o timeout do bosh entre 15 e 360.'; +$wb['xmpp_module_saslauth'] = 'Autenticação SASL'; $wb['xmpp_server_admins_txt'] = 'Administradores do servidor (JIDs)'; -$wb['xmpp_modules_enabled_txt'] = 'Habilitar plugins no lado servidor (um por linha)'; +$wb['xmpp_modules_enabled_txt'] = 'Plugins habilitados no servidor (um por linha)'; $wb['xmpp_ports_txt'] = 'Portas dos componentes'; -$wb['xmpp_port_http_txt'] = 'HTTP'; -$wb['xmpp_port_https_txt'] = 'HTTPS'; +$wb['xmpp_port_http_txt'] = 'http'; +$wb['xmpp_port_https_txt'] = 'https'; $wb['xmpp_port_pastebin_txt'] = 'Pastebin'; $wb['xmpp_port_bosh_txt'] = 'BOSH'; -$wb['backup_time_txt'] = 'Hora do backup'; +$wb['disable_bind_log_txt'] = 'Desabilitar mensagens de alerta do bind9'; +$wb['apps_vhost_enabled_txt'] = 'Habilitar apps-vhost'; $wb['skip_le_check_txt'] = 'Ignorar verificação do Lets Encrypt'; -$wb['migration_mode_txt'] = 'Habilitar modo de migração do servidor'; -$wb['nginx_enable_pagespeed_txt'] = 'Makes Pagespeed available'; -$wb['backup_tmp_txt'] = 'Backup tmp directory for zip'; -$wb['tmpdir_path_error_empty'] = 'tmp-dir Path is empty.'; -$wb['tmpdir_path_error_regex'] = 'Invalid tmp-dir path.'; -$wb['logging_txt'] = 'Store website access and error logs'; -$wb['logging_desc_txt'] = 'Use Tools > Resync to apply changes to existing sites. For Apache, access and error log can be anonymized. For nginx, only the access log is anonymized, the error log will contain IP addresses.'; -$wb['log_retention_txt'] = 'Log retention (days)'; -$wb['log_retention_error_ispositive'] = 'Log retention must be a number > 0'; -$wb['php_default_name_txt'] = 'Description Default PHP-Version'; -$wb['error_mailbox_message_size_txt'] = 'Mailbox size must be larger or equal to message size'; -$wb['php_default_name_error_empty'] = 'Description Default PHP-Version must not be empty'; -$wb['php_fpm_reload_mode_txt'] = 'PHP-FPM reload mode'; -$wb['content_filter_txt'] = 'Content Filter'; -$wb['rspamd_url_txt'] = 'Rspamd URL'; -$wb['rspamd_user_txt'] = 'Rspamd User'; -$wb['rspamd_password_txt'] = 'Rspamd Password'; -?> +$wb['migration_mode_txt'] = 'Modo migração de servidor'; +$wb['nginx_enable_pagespeed_txt'] = 'Tornar pagespeed disponível'; +$wb['logging_txt'] = 'Gravar logs de acesso e erros de sites'; +$wb['logging_desc_txt'] = 'Usar Ferramentas > Sicronizar para aplicar mudanças em sites existentes. Para o Apache, os logs de acesso e erros podem ser anonimizados. Para o nginx, apenas o log de acesso é anonimizado, o log de erros conterá endereços IP.'; +$wb['log_retention_txt'] = 'Tempo de retenção do log (dias)'; +$wb['log_retention_error_ispositive'] = 'O tempo de retenção do log deve ser um número > 0.'; +$wb['php_default_name_txt'] = 'Descrição da versão padrão do php'; +$wb['php_default_name_error_empty'] = 'A descrição da versão padrão do php está em branco.'; +$wb['error_mailbox_message_size_txt'] = 'O tamanho da cota da conta de e-mail deve ser maior ou igual o tamanho da cota de mensagens.'; +$wb['php_fpm_reload_mode_txt'] = 'Modo da recarga do php-fpm'; +$wb['content_filter_txt'] = 'Filtro de conteúdo'; +$wb['rspamd_url_txt'] = 'URL do rspamd'; +$wb['rspamd_user_txt'] = 'Usuário do rspamd'; +$wb['rspamd_password_txt'] = 'Senha do rspamd'; diff --git a/interface/web/admin/lib/lang/br_server_ip.lng b/interface/web/admin/lib/lang/br_server_ip.lng index b92157894..b9bbd4794 100644 --- a/interface/web/admin/lib/lang/br_server_ip.lng +++ b/interface/web/admin/lib/lang/br_server_ip.lng @@ -1,11 +1,11 @@ diff --git a/interface/web/admin/lib/lang/br_server_ip_list.lng b/interface/web/admin/lib/lang/br_server_ip_list.lng index c7b22097b..0ae892af8 100644 --- a/interface/web/admin/lib/lang/br_server_ip_list.lng +++ b/interface/web/admin/lib/lang/br_server_ip_list.lng @@ -1,10 +1,10 @@ diff --git a/interface/web/admin/lib/lang/br_server_ip_map.lng b/interface/web/admin/lib/lang/br_server_ip_map.lng index 44b764827..81a2bb4b9 100644 --- a/interface/web/admin/lib/lang/br_server_ip_map.lng +++ b/interface/web/admin/lib/lang/br_server_ip_map.lng @@ -1,12 +1,12 @@ diff --git a/interface/web/admin/lib/lang/br_server_ip_map_list.lng b/interface/web/admin/lib/lang/br_server_ip_map_list.lng index f5682f31a..8cb0a1e20 100644 --- a/interface/web/admin/lib/lang/br_server_ip_map_list.lng +++ b/interface/web/admin/lib/lang/br_server_ip_map_list.lng @@ -1,7 +1,7 @@ diff --git a/interface/web/admin/lib/lang/br_server_list.lng b/interface/web/admin/lib/lang/br_server_list.lng index b4a1fcafc..ae3bb5281 100644 --- a/interface/web/admin/lib/lang/br_server_list.lng +++ b/interface/web/admin/lib/lang/br_server_list.lng @@ -1,14 +1,14 @@ diff --git a/interface/web/admin/lib/lang/br_server_php.lng b/interface/web/admin/lib/lang/br_server_php.lng index 459b4d9e0..377763ce4 100644 --- a/interface/web/admin/lib/lang/br_server_php.lng +++ b/interface/web/admin/lib/lang/br_server_php.lng @@ -1,17 +1,17 @@ diff --git a/interface/web/admin/lib/lang/br_server_php_list.lng b/interface/web/admin/lib/lang/br_server_php_list.lng index 88f1e38d2..38ebdd356 100644 --- a/interface/web/admin/lib/lang/br_server_php_list.lng +++ b/interface/web/admin/lib/lang/br_server_php_list.lng @@ -3,6 +3,6 @@ $wb['list_head_txt'] = 'Versões adicionais do php'; $wb['server_id_txt'] = 'Servidor'; $wb['add_new_record_txt'] = 'Adicionar nova versão do php'; $wb['client_id_txt'] = 'Cliente'; -$wb['name_txt'] = 'Nome da versão do php'; -$wb['active_txt'] = 'Active'; +$wb['name_txt'] = 'Nome da versão'; +$wb['active_txt'] = 'Ativo'; ?> diff --git a/interface/web/admin/lib/lang/br_software_package_list.lng b/interface/web/admin/lib/lang/br_software_package_list.lng index 093f52bca..de62e3d30 100644 --- a/interface/web/admin/lib/lang/br_software_package_list.lng +++ b/interface/web/admin/lib/lang/br_software_package_list.lng @@ -1,13 +1,13 @@ diff --git a/interface/web/admin/lib/lang/br_software_repo.lng b/interface/web/admin/lib/lang/br_software_repo.lng index b53585013..dbc14e203 100644 --- a/interface/web/admin/lib/lang/br_software_repo.lng +++ b/interface/web/admin/lib/lang/br_software_repo.lng @@ -4,5 +4,5 @@ $wb['repo_url_txt'] = 'URL'; $wb['repo_username_txt'] = 'Usuário (opcional)'; $wb['repo_password_txt'] = 'Senha (opcional)'; $wb['active_txt'] = 'Ativo'; -$wb['Software Repository which may contain addons or updates'] = 'Repositório de softwares podem conter complementos ou atualizações'; +$wb['Software Repository which may contain addons or updates'] = 'Repositório de software pode conter complementos ou atualizações'; ?> diff --git a/interface/web/admin/lib/lang/br_software_update_list.lng b/interface/web/admin/lib/lang/br_software_update_list.lng index 0592ca7f2..0dff3a245 100644 --- a/interface/web/admin/lib/lang/br_software_update_list.lng +++ b/interface/web/admin/lib/lang/br_software_update_list.lng @@ -1,9 +1,9 @@ diff --git a/interface/web/admin/lib/lang/br_system_config.lng b/interface/web/admin/lib/lang/br_system_config.lng index 8688ca53a..98bd4c961 100644 --- a/interface/web/admin/lib/lang/br_system_config.lng +++ b/interface/web/admin/lib/lang/br_system_config.lng @@ -1,58 +1,58 @@ diff --git a/interface/web/admin/lib/lang/br_tpl_default_admin.lng b/interface/web/admin/lib/lang/br_tpl_default_admin.lng index 0a53752e4..dbad6b176 100644 --- a/interface/web/admin/lib/lang/br_tpl_default_admin.lng +++ b/interface/web/admin/lib/lang/br_tpl_default_admin.lng @@ -1,18 +1,18 @@ diff --git a/interface/web/admin/lib/lang/br_users.lng b/interface/web/admin/lib/lang/br_users.lng index d16bcf1cb..6d71a39e4 100644 --- a/interface/web/admin/lib/lang/br_users.lng +++ b/interface/web/admin/lib/lang/br_users.lng @@ -1,36 +1,36 @@ diff --git a/interface/web/admin/lib/lang/br_users_list.lng b/interface/web/admin/lib/lang/br_users_list.lng index 3422f7835..26910186c 100644 --- a/interface/web/admin/lib/lang/br_users_list.lng +++ b/interface/web/admin/lib/lang/br_users_list.lng @@ -1,9 +1,9 @@ AVISO: Não modifique ou edite qualquer configuração de usuário aqui. Use o módulo de clientes ou revendas. Modificar ou alterar usuários e grupos nesta aba pode ocasionar perda de dados!'; $wb['groups_txt'] = 'Grupos'; +$wb['add_new_record_txt'] = 'Adicionar novo usuário'; +$wb['warning_txt'] = 'ALERTA: Não editar ou alterar qualquer configuração de usuário aqui. Use o módulo de clientes e revendas para isso. Editar ou alterar usuários ou grupos aqui pode causar perda de dados!'; ?> diff --git a/interface/web/admin/lib/lang/tr.lng b/interface/web/admin/lib/lang/tr.lng index 23dbc45a4..9b0dfc59e 100644 --- a/interface/web/admin/lib/lang/tr.lng +++ b/interface/web/admin/lib/lang/tr.lng @@ -1,20 +1,26 @@ diff --git a/interface/web/admin/lib/lang/tr_directive_snippets.lng b/interface/web/admin/lib/lang/tr_directive_snippets.lng index f50348652..448d45367 100644 --- a/interface/web/admin/lib/lang/tr_directive_snippets.lng +++ b/interface/web/admin/lib/lang/tr_directive_snippets.lng @@ -1,12 +1,12 @@ diff --git a/interface/web/admin/lib/lang/tr_directive_snippets_list.lng b/interface/web/admin/lib/lang/tr_directive_snippets_list.lng index 766a194dc..4a1fb954a 100644 --- a/interface/web/admin/lib/lang/tr_directive_snippets_list.lng +++ b/interface/web/admin/lib/lang/tr_directive_snippets_list.lng @@ -1,8 +1,8 @@ diff --git a/interface/web/admin/lib/lang/tr_firewall.lng b/interface/web/admin/lib/lang/tr_firewall.lng index a45998d4e..9e853c7bd 100644 --- a/interface/web/admin/lib/lang/tr_firewall.lng +++ b/interface/web/admin/lib/lang/tr_firewall.lng @@ -6,6 +6,7 @@ $wb['tcp_port_help_txt'] = 'Virgül ile ayırarak yazın'; $wb['udp_port_help_txt'] = 'Virgül ile ayırarak yazın'; $wb['active_txt'] = 'Etkin'; $wb['firewall_error_unique'] = 'Bu sunucu için bir güvenlik duvarı kaydı zaten var.'; -$wb['tcp_ports_error_regex'] = 'TCP kapı açıklamasında karakter kullanılamaz. Yalnız rakam, \\":\\" ve \\",\\" karakterleri kullanılabilir.'; -$wb['udp_ports_error_regex'] = 'UDP kapı açıklamasında karakter kullanılamaz. Yalnız rakam, \\":\\" ve \\",\\" karakterleri kullanılabilir.'; +$wb['active_txt'] = 'Etkin'; +$wb['tcp_ports_error_regex'] = 'TCP kapı açıklamasında karakter kullanılamaz. Yalnız rakam, ":" ve "," karakterleri kullanılabilir.'; +$wb['udp_ports_error_regex'] = 'UDP kapı açıklamasında karakter kullanılamaz. Yalnız rakam, ":" ve "," karakterleri kullanılabilir.'; ?> diff --git a/interface/web/admin/lib/lang/tr_groups.lng b/interface/web/admin/lib/lang/tr_groups.lng index d41fcace9..4bf60a284 100644 --- a/interface/web/admin/lib/lang/tr_groups.lng +++ b/interface/web/admin/lib/lang/tr_groups.lng @@ -1,5 +1,5 @@ diff --git a/interface/web/admin/lib/lang/tr_iptables.lng b/interface/web/admin/lib/lang/tr_iptables.lng index dcec55648..970bc2393 100644 --- a/interface/web/admin/lib/lang/tr_iptables.lng +++ b/interface/web/admin/lib/lang/tr_iptables.lng @@ -1,4 +1,5 @@ diff --git a/interface/web/admin/lib/lang/tr_iptables_list.lng b/interface/web/admin/lib/lang/tr_iptables_list.lng index a884ef7f7..ba8a1345f 100644 --- a/interface/web/admin/lib/lang/tr_iptables_list.lng +++ b/interface/web/admin/lib/lang/tr_iptables_list.lng @@ -1,4 +1,5 @@ diff --git a/interface/web/admin/lib/lang/tr_language_import.lng b/interface/web/admin/lib/lang/tr_language_import.lng index 581fcb597..be319837d 100644 --- a/interface/web/admin/lib/lang/tr_language_import.lng +++ b/interface/web/admin/lib/lang/tr_language_import.lng @@ -3,7 +3,7 @@ $wb['list_head_txt'] = 'Dil Paketi Yükleme'; $wb['list_desc_txt'] = 'UYARI: Güvenilmeyen kaynaklardan aldığınız dil paketlerini yüklemeyin.'; $wb['language_import_txt'] = 'Yüklenecek Dil Dosyası'; $wb['btn_save_txt'] = 'Dil Paketini Yükle'; -$wb['language_overwrite_txt'] = 'Var olan dosyaları değiştir'; +$wb['language_overwrite_txt'] = 'Var Olan Dosyalar Değiştirilsin'; $wb['btn_cancel_txt'] = 'Geri'; -$wb['ignore_version_txt'] = 'ISPConfig sürümüne bakma'; +$wb['ignore_version_txt'] = 'ISPConfig Sürümü Denetlenmesin'; ?> diff --git a/interface/web/admin/lib/lang/tr_login_as.lng b/interface/web/admin/lib/lang/tr_login_as.lng new file mode 100644 index 000000000..b7fc8ff98 --- /dev/null +++ b/interface/web/admin/lib/lang/tr_login_as.lng @@ -0,0 +1,12 @@ + diff --git a/interface/web/admin/lib/lang/tr_remote_action.lng b/interface/web/admin/lib/lang/tr_remote_action.lng index c067f67e8..b2ed0a6da 100644 --- a/interface/web/admin/lib/lang/tr_remote_action.lng +++ b/interface/web/admin/lib/lang/tr_remote_action.lng @@ -1,12 +1,12 @@
OLUŞABİLECEK RİSKLER SİZE AİTTİR!'; -$wb['do_ispcupdate_caption'] = 'Uzak sunucudaki ISPConfig 3 - sürümünü güncelleyin'; +$wb['btn_do_txt'] = 'İşlemi Başlat'; +$wb['do_osupdate_caption'] = 'Uzak sunucudaki işletim sistemini güncelle'; +$wb['do_osupdate_desc'] = 'Bu işlem seçilmiş sunucuda komutunu yürütür.

OLUŞABİLECEK RİSKLER SİZE AİTTİR!'; +$wb['do_ispcupdate_caption'] = 'Uzak sunucudaki ISPConfig 3 - sürümünü güncelle'; $wb['do_ispcupdate_desc'] = 'Bu işlem seçilmiş sunucuda ISPConfig3 güncellemesini yürütür.

OLUŞABİLECEK RİSKLER SÜZE AİTTİR!'; $wb['action_scheduled'] = 'İşlem yürütülmek üzere zamanlandı'; $wb['select_all_server'] = 'Tüm Sunucularda'; $wb['ispconfig_update_title'] = 'ISPConfig güncelleme yönergeleri'; -$wb['ispconfig_update_text'] = 'Sunucunuzda root kullanıcısı ile bir kabuk oturumu açın ve ISPConfig güncellemesini başlatmak için

ispconfig_update.sh

komutunu yürütün.

Ayrıntılı güncelleme bilgilerine bakmak için buraya tıklayın'; +$wb['ispconfig_update_text'] = 'Sunucunuzda root kullanıcısı ile bir kabuk oturumu açın ve ISPConfig güncellemesini başlatmak için

ispconfig_update.sh

komutunu yürütün.

Ayrıntılı güncelleme bilgilerine bakmak için buraya tıklayın'; ?> diff --git a/interface/web/admin/lib/lang/tr_remote_user.lng b/interface/web/admin/lib/lang/tr_remote_user.lng index d9e11f830..a713cad0d 100644 --- a/interface/web/admin/lib/lang/tr_remote_user.lng +++ b/interface/web/admin/lib/lang/tr_remote_user.lng @@ -1,37 +1,37 @@ any)'; -$wb['remote_user_error_ips'] = 'At least one of the entered ip addresses or hostnames is invalid.'; +$wb['remote_access_txt'] = 'Uzaktan Erişim'; +$wb['remote_ips_txt'] = 'Uzaktan Erişim IP Adresleri / Sunucu Adları (, ile ayırarak yazın ve tümü için boş bırakın)'; +$wb['remote_user_error_ips'] = 'Yazılmış IP adresi ya da sunucu adlarından en az biri geçersiz.'; ?> diff --git a/interface/web/admin/lib/lang/tr_server.lng b/interface/web/admin/lib/lang/tr_server.lng index 61e0b7dd6..bdc70761e 100644 --- a/interface/web/admin/lib/lang/tr_server.lng +++ b/interface/web/admin/lib/lang/tr_server.lng @@ -1,16 +1,16 @@ diff --git a/interface/web/admin/lib/lang/tr_server_config.lng b/interface/web/admin/lib/lang/tr_server_config.lng index efe24bf3a..3b63e881f 100644 --- a/interface/web/admin/lib/lang/tr_server_config.lng +++ b/interface/web/admin/lib/lang/tr_server_config.lng @@ -13,13 +13,13 @@ $wb['jailkit_chroot_app_programs_txt'] = 'Jailkit chroot Uygulamaları'; $wb['jailkit_chroot_cron_programs_txt'] = 'Jailkit Zamanlanmış Görev chroot Uygulamaları'; $wb['website_path_txt'] = 'Web Sitesi Yolu'; $wb['website_symlinks_txt'] = 'Web Sitesi Sembolik Bağlantıları'; -$wb['website_symlinks_rel_txt'] = 'Sembolik Bağlantılar Bağıl Olsun'; +$wb['website_symlinks_rel_txt'] = 'Sembolik Bağlantılar Göreli Olsun'; $wb['website_basedir_txt'] = 'Web Sitesi Klasörü'; $wb['website_autoalias_txt'] = 'Otomatik Web Sitesi Takma Adı'; $wb['website_autoalias_note_txt'] = 'Kodlar:'; -$wb['vhost_conf_dir_txt'] = 'SSunucu Ayar Klasörü'; -$wb['vhost_conf_enabled_dir_txt'] = 'Etkin SSunucu Ayar Klasörü'; -$wb['getmail_config_dir_txt'] = 'Getmail Ayar Klasörü'; +$wb['vhost_conf_dir_txt'] = 'Sanal Sunucu Ayarları Klasörü'; +$wb['vhost_conf_enabled_dir_txt'] = 'Etkin Sanal Sunucu Ayarları Klasörü'; +$wb['getmail_config_dir_txt'] = 'Getmail Ayarları Klasörü'; $wb['fastcgi_starter_path_txt'] = 'FastCGI Başlatıcı Yolu'; $wb['fastcgi_starter_script_txt'] = 'FastCGI Başlatıcı Betiği'; $wb['fastcgi_alias_txt'] = 'FastCGI Takma Adı'; @@ -28,16 +28,24 @@ $wb['fastcgi_children_txt'] = 'FastCGI Çocuğu'; $wb['fastcgi_max_requests_txt'] = 'FastCGI En Fazla İstek'; $wb['fastcgi_bin_txt'] = 'FastCGI Bin'; $wb['module_txt'] = 'Modül'; -$wb['maildir_path_txt'] = 'Posta Klasörü Yolu'; +$wb['maildir_path_txt'] = 'E-posta Klasörü Yolu'; +$wb['maildir_format_txt'] = 'E-posta Klasörü Biçimi'; $wb['homedir_path_txt'] = 'Kullanıcı Klasörü Yolu'; -$wb['mailuser_uid_txt'] = 'Posta Kullanıcısı UID'; -$wb['mailuser_gid_txt'] = 'Posta Kullanıcısı GID'; -$wb['mailuser_name_txt'] = 'Posta Kullanıcısı Adı'; -$wb['mailuser_group_txt'] = 'Posta Kullanıcısı Grubu'; +$wb['dkim_path_txt'] = 'DKIM Yolu'; +$wb['mailuser_uid_txt'] = 'E-posta Kullanıcısı UID'; +$wb['mailuser_gid_txt'] = 'E-posta Kullanıcısı GID'; +$wb['mailuser_name_txt'] = 'E-posta Kullanıcısı Adı'; +$wb['mailuser_group_txt'] = 'E-posta Kullanıcısı Grubu'; +$wb['mailbox_virtual_uidgid_maps_txt'] = 'E-posta Kutusunda Web Sitesinin Linux Kullanıcı Kodu Kullanılsın'; +$wb['mailbox_virtual_uidgid_maps_info_txt'] = 'Yalnız tek bir web ve e-posta sunucusu kurulumunda'; +$wb['mailbox_virtual_uidgid_maps_error_nosingleserver'] = 'Çoklu sunucu kurulumunda UID eşleştirilemez.'; +$wb['mailbox_virtual_uidgid_maps_error_nodovecot'] = 'UID eşleştirmesi yalnız dovecot ile kullanılabilir.'; +$wb['mailbox_virtual_uidgid_maps_error_alreadyusers'] = 'Daha önce oluşturulmuş e-posta kullanıcıları varsa UID eşleştirme değiştirilemez.'; $wb['relayhost_txt'] = 'Aktarım Sunucusu'; $wb['relayhost_user_txt'] = 'Aktarım Sunucu Kullanıcı Adı'; $wb['relayhost_password_txt'] = 'Aktarım Sunucu Parolası'; -$wb['mailbox_size_limit_txt'] = 'Posta Kutusu Boyutu Sınırı'; +$wb['reject_sender_login_mismatch_txt'] = 'Gönderen ile Oturum Açmış Kullanıcı Eşleşmiyorsa Reddedilsin'; +$wb['mailbox_size_limit_txt'] = 'E-posta Kutusu Boyutu Sınırı'; $wb['message_size_limit_txt'] = 'İleti Boyutu Sınırı'; $wb['ip_address_txt'] = 'IP Adresi'; $wb['netmask_txt'] = 'Ağ Maskesi'; @@ -51,69 +59,73 @@ $wb['gateway_error_wrong'] = 'Ağ geçidi biçimi geçersiz.'; $wb['hostname_error_empty'] = 'Sunucu adı boş olamaz.'; $wb['hostname_error_regex'] = 'Sunucu adı geçersiz.'; $wb['nameservers_error_empty'] = 'Ad sunucusu boş olamaz.'; -$wb['config_dir_txt'] = 'Ayar Klasörü'; +$wb['config_dir_txt'] = 'Ayarlar Klasörü'; $wb['init_script_txt'] = 'Zamanlanmış Görev Başlatma Betiğinin Adı'; $wb['crontab_dir_txt'] = 'Bireysel Zamanlanmış Görevler Yolu'; -$wb['wget_txt'] = 'wget Yazılımının Yolu'; +$wb['wget_txt'] = 'wget Uygulamasının Yolu'; $wb['web_user_txt'] = 'Apache Kullanıcı Adı'; $wb['web_group_txt'] = 'Apache Grubu'; $wb['security_level_txt'] = 'Güvenlik Düzeyi'; $wb['loglevel_txt'] = 'Günlükleme Düzeyi'; -$wb['apps_vhost_port_txt'] = 'Apps-vhost Kapısı'; -$wb['apps_vhost_ip_txt'] = 'Apps-vhost IP Adresi'; -$wb['apps_vhost_servername_txt'] = 'Apps-vhost Alan Adı'; +$wb['apps_vhost_port_txt'] = 'Uygulama Sanal Sunucusu Kapısı'; +$wb['apps_vhost_ip_txt'] = 'Uygulama Sanal Sunucusu IP Adresi'; +$wb['apps_vhost_servername_txt'] = 'Uygulama Sanal Sunucusu Etki Alanı'; $wb['bind_user_txt'] = 'BIND Kullanıcı Adı'; $wb['bind_group_txt'] = 'BIND Grubu'; -$wb['bind_zonefiles_dir_txt'] = 'BIND zonefiles Klasörü'; +$wb['bind_zonefiles_dir_txt'] = 'BIND Bölge Dosyaları Klasörü'; $wb['named_conf_path_txt'] = 'BIND named.conf Dosyası Yolu'; $wb['bind_user_error_empty'] = 'BIND kullanıcı adı boş olamaz.'; $wb['bind_group_error_empty'] = 'BIND grubu boş olamaz.'; -$wb['bind_zonefiles_dir_error_empty'] = 'BIND zonefiles klasörü boş olamaz.'; +$wb['bind_zonefiles_dir_error_empty'] = 'BIND bölge dosyaları klasörü boş olamaz.'; $wb['named_conf_path_error_empty'] = 'BIND named.conf dosyası yolu boş olamaz.'; $wb['named_conf_local_path_error_empty'] = 'BIND named.conf.local dosyasının yolu boş olamaz.'; -$wb['mail_filter_syntax_txt'] = 'Posta Süzgeci Yazımı'; +$wb['mail_filter_syntax_txt'] = 'E-posta Süzgeci Yazımı'; $wb['pop3_imap_daemon_txt'] = 'POP3/IMAP Sunucusu'; $wb['php_open_basedir_txt'] = 'PHP open_basedir'; $wb['php_open_basedir_error_empty'] = 'PHP open_basedir boş olamaz.'; $wb['htaccess_allow_override_txt'] = '.htaccess AllowOverride'; $wb['htaccess_allow_override_error_empty'] = '.htaccess AllowOverride boş olamaz.'; -$wb['awstats_conf_dir_txt'] = 'Awstats Ayar Klasörü'; +$wb['awstats_conf_dir_txt'] = 'Awstats Ayarları Klasörü'; $wb['awstats_data_dir_txt'] = 'Awstats Veri Klasörü'; $wb['awstats_pl_txt'] = 'awstats.pl Betiği'; $wb['awstats_buildstaticpages_pl_txt'] = 'awstats_buildstaticpages.pl Betiği'; $wb['backup_dir_txt'] = 'Yedek Klasörü'; +$wb['backup_tmp_txt'] = 'Geçici Zip Yedek Klasörü'; $wb['named_conf_local_path_txt'] = 'BIND named.conf.local Yolu'; $wb['php_ini_path_cgi_txt'] = 'CGI php.ini Yolu'; $wb['php_ini_path_apache_txt'] = 'Apache php.ini Yolu'; -$wb['check_apache_config_txt'] = 'Yeniden başlatıldığında apache ayarları denetlensin'; -$wb['network_config_warning_txt'] = 'Ağ ayarlama seçeneği yalnız Debian ve Ubuntu sunucularda kullanılabilir. Ağ arayüzünüz eth0 değil ise bu seçeneği etkinleştirmeyin.'; +$wb['check_apache_config_txt'] = 'Apache Ayarları Yeniden Başlatmalarda Denetlensin'; +$wb['network_config_warning_txt'] = 'Ağ ayarlama seçeneği yalnız Debian ve Ubuntu sunucularda kullanılabilir. Ağ arayüzü eth0 değil ise bu seçeneği etkinleştirmeyin.'; $wb['CA_path_txt'] = 'CA Yolu'; -$wb['CA_pass_txt'] = 'CA parolası'; +$wb['CA_pass_txt'] = 'CA Parolası'; $wb['fastcgi_config_syntax_txt'] = 'FastCGI Ayar Yazımı'; $wb['backup_mode_txt'] = 'Yedekleme Kipi'; $wb['backup_mode_userzip'] = 'Web kullanıcısına ait web dosyaları ZIP biçiminde yedeklensin'; $wb['backup_mode_rootgz'] = 'Web klasöründeki tüm dosyalar root kullanıcısı olarak yedeklensin'; -$wb['server_type_txt'] = 'Sunucu Tipi'; -$wb['nginx_vhost_conf_dir_txt'] = 'Nginx Vhost ayar klasörü'; -$wb['nginx_vhost_conf_enabled_dir_txt'] = 'Nginx Vhost etkin ayar klasörü'; +$wb['tmpdir_path_error_empty'] = 'tmp klasörü yolu boş olamaz.'; +$wb['tmpdir_path_error_regex'] = 'tmp klasörü yolu geçersiz.'; +$wb['backup_time_txt'] = 'Yedekleme Zamanı'; +$wb['server_type_txt'] = 'Sunucu Türü'; +$wb['nginx_vhost_conf_dir_txt'] = 'Nginx Sanal Sunucu Ayarları Klasörü'; +$wb['nginx_vhost_conf_enabled_dir_txt'] = 'Etkin Nginx sanal sunucu ayarları klasörü'; $wb['nginx_user_txt'] = 'Nginx kullanıcı adı'; $wb['nginx_group_txt'] = 'Nginx grubu'; $wb['nginx_cgi_socket_txt'] = 'Nginx CGI Soketi'; $wb['backup_dir_error_empty'] = 'Yedekleme klasörü boş olamaz.'; -$wb['maildir_path_error_empty'] = 'Posta klasörü yolu boş olamaz.'; +$wb['maildir_path_error_empty'] = 'E-posta klasörü yolu boş olamaz.'; $wb['homedir_path_error_empty'] = 'Kullanıcı klasörü yolu boş olamaz.'; -$wb['mailuser_uid_error_empty'] = 'Posta kullanıcısı UID boş olamaz.'; -$wb['mailuser_gid_error_empty'] = 'Posta kullanıcısı GID boş olamaz.'; -$wb['mailuser_name_error_empty'] = 'Posta kullanıcısı adı boş olamaz.'; -$wb['mailuser_group_error_empty'] = 'Posta kullanıcısı grubu boş olamaz.'; -$wb['getmail_config_dir_error_empty'] = 'Getmail ayar klasörü boş olamaz.'; +$wb['mailuser_uid_error_empty'] = 'E-posta kullanıcısı UID boş olamaz.'; +$wb['mailuser_gid_error_empty'] = 'E-posta kullanıcısı GID boş olamaz.'; +$wb['mailuser_name_error_empty'] = 'E-posta kullanıcısı adı boş olamaz.'; +$wb['mailuser_group_error_empty'] = 'E-posta kullanıcısı grubu boş olamaz.'; +$wb['getmail_config_dir_error_empty'] = 'Getmail ayarları klasörü boş olamaz.'; $wb['website_basedir_error_empty'] = 'Web sitesi kök klasörü boş olamaz.'; $wb['website_path_error_empty'] = 'Web sitesi yolu boş olamaz.'; $wb['website_symlinks_error_empty'] = 'Web sitesi sembolik bağlantısı boş olamaz.'; -$wb['vhost_conf_dir_error_empty'] = 'Vhost ayar klasörü boş olamaz.'; -$wb['vhost_conf_enabled_dir_error_empty'] = 'Vhost etkin ayar klasörü boş olamaz.'; -$wb['nginx_vhost_conf_dir_error_empty'] = 'Nginx Vhost ayar klasörü boş olamaz.'; -$wb['nginx_vhost_conf_enabled_dir_error_empty'] = 'Nginx Vhost etkin ayar klasörü boş olamaz.'; +$wb['vhost_conf_dir_error_empty'] = 'Sanal sunucu ayarları klasörü boş olamaz.'; +$wb['vhost_conf_enabled_dir_error_empty'] = 'Etkin sanal sunucu ayarları klasörü boş olamaz.'; +$wb['nginx_vhost_conf_dir_error_empty'] = 'Nginx sanal sunucu ayarları klasörü boş olamaz.'; +$wb['nginx_vhost_conf_enabled_dir_error_empty'] = 'Etkin nginx sanal sunucu ayarları klasörü boş olamaz.'; $wb['apache_user_error_empty'] = 'Apache kullanıcısı boş olamaz.'; $wb['apache_group_error_empty'] = 'Apache grubu boş olamaz.'; $wb['nginx_user_error_empty'] = 'Nginx kullanıcısı boş olamaz.'; @@ -121,8 +133,8 @@ $wb['nginx_group_error_empty'] = 'Nginx grubu boş olamaz.'; $wb['php_ini_path_apache_error_empty'] = 'Apache php.ini yolu boş olamaz.'; $wb['php_ini_path_cgi_error_empty'] = 'CGI php.ini yolu boş olamaz.'; $wb['nginx_cgi_socket_empty'] = 'Nginx CGI soketi boş olamaz.'; -$wb['apps_vhost_port_error_empty'] = 'Apps-vhost kapısı boş olamaz.'; -$wb['apps_vhost_ip_error_empty'] = 'Apps-vhost IP adresi boş olamaz.'; +$wb['apps_vhost_port_error_empty'] = 'Uygulama sanal sunucusu kapısı boş olamaz.'; +$wb['apps_vhost_ip_error_empty'] = 'Uygulama sanal sunucusu IP adresi boş olamaz.'; $wb['fastcgi_starter_path_error_empty'] = 'FastCGI başlatıcı yolu boş olamaz.'; $wb['fastcgi_starter_script_error_empty'] = 'FastCGI başlatıcı betiği boş olamaz.'; $wb['fastcgi_alias_error_empty'] = 'FastCGI takma adı boş olamaz.'; @@ -137,7 +149,7 @@ $wb['jailkit_chroot_cron_programs_error_empty'] = 'Jailkit zamanlanmış görev $wb['vlogger_config_dir_error_empty'] = 'Ayarlar klasörü boş olamaz.'; $wb['cron_init_script_error_empty'] = 'Zamanlanmış görevler başlatma betiği adı boş olamaz.'; $wb['crontab_dir_error_empty'] = 'Bireysel zamanlanmış görev yolu boş olamaz.'; -$wb['cron_wget_error_empty'] = 'wget yazılımı yolu boş olamaz.'; +$wb['cron_wget_error_empty'] = 'wget uygulaması yolu boş olamaz.'; $wb['php_fpm_init_script_txt'] = 'PHP-FPM Başlatma Betiği'; $wb['php_fpm_init_script_error_empty'] = 'PHP-FPM başlatma betiği boş olamaz.'; $wb['php_fpm_ini_path_txt'] = 'PHP-FPM php.ini Yolu'; @@ -148,11 +160,12 @@ $wb['php_fpm_start_port_txt'] = 'PHP-FPM Başlangıç Kapısı'; $wb['php_fpm_start_port_error_empty'] = 'PHP-FPM başlangıç kapısı boş olamaz.'; $wb['php_fpm_socket_dir_txt'] = 'PHP-FPM Soket Klasörü'; $wb['php_fpm_socket_dir_error_empty'] = 'PHP-FPM soket klasörü boş olamaz.'; -$wb['try_rescue_txt'] = 'Hizmetler izlensin ve sorun çıktığında yeniden başlatılsın'; -$wb['do_not_try_rescue_httpd_txt'] = 'HTTPD izlenmesin'; -$wb['do_not_try_rescue_mysql_txt'] = 'MySQL izlenmesin'; -$wb['do_not_try_rescue_mail_txt'] = 'E-posta izlenmesin'; -$wb['rescue_description_txt'] = 'Uyarı: mysql sunucusunu kapatmak istiyorsanız \\"MySQL izlenmesin\\" seçeneğini işaretleyip 2-3 dakika bekleyin.
2-3 dakika beklemezseniz, kurtarma işlemi mysql sunucusunu yeniden başlatmaya çalışır!'; +$wb['try_rescue_txt'] = 'Hizmetler İzlensin ve Sorun Çıktığında Yeniden Başlatılsın'; +$wb['do_not_try_rescue_httpd_txt'] = 'HTTPD İzlenmesin'; +$wb['do_not_try_rescue_mongodb_txt'] = 'MongoDB İzlenmesin'; +$wb['do_not_try_rescue_mysql_txt'] = 'MySQL İzlenmesin'; +$wb['do_not_try_rescue_mail_txt'] = 'E-posta İzlenmesin'; +$wb['rescue_description_txt'] = 'Uyarı: mysql sunucusunu kapatmak istiyorsanız "MySQL İzlenmesin" seçeneğini etkinleştirip 2-3 dakika bekleyin.
2-3 dakika beklemezseniz, kurtarma işlemi mysql sunucusunu yeniden başlatmaya çalışır!'; $wb['enable_sni_txt'] = 'SNI Kullanılsın'; $wb['set_folder_permissions_on_update_txt'] = 'Güncellenirken klasör izinleri ayarlansın'; $wb['add_web_users_to_sshusers_group_txt'] = 'Web kullanıcıları -sshusers- grubuna eklensin'; @@ -163,20 +176,20 @@ $wb['realtime_blackhole_list_note_txt'] = '(RBL adlarını virgül ile ayırarak $wb['ssl_settings_txt'] = 'SSL Ayarları'; $wb['permissions_txt'] = 'İzinler'; $wb['php_settings_txt'] = 'PHP Ayarları'; -$wb['apps_vhost_settings_txt'] = 'Uygulama SSunucu Ayarları'; +$wb['apps_vhost_settings_txt'] = 'Uygulama Sanal Sunucu Ayarları'; $wb['awstats_settings_txt'] = 'AWStats Ayarları'; $wb['firewall_txt'] = 'Güvenlik Duvarı'; -$wb['mailbox_quota_stats_txt'] = 'Posta Kutusu Kota İstatistikleri'; -$wb['enable_ip_wildcard_txt'] = 'IP genel karakteri (*) kullanılsın'; +$wb['mailbox_quota_stats_txt'] = 'E-posta Kutusu Kota İstatistikleri'; +$wb['enable_ip_wildcard_txt'] = 'IP Genel Karakteri (*) Kullanılsın'; $wb['web_folder_protection_txt'] = 'Web klasörleri ayarlanamasın (genişletilmiş öznitelikler)'; -$wb['overtraffic_notify_admin_txt'] = 'Yöneticiye aşırı trafik bildirimi gönderilsin'; -$wb['overtraffic_notify_client_txt'] = 'Müşteriye aşırı trafik bildirimi gönderilsin'; +$wb['overtraffic_notify_admin_txt'] = 'Trafik Aşımı Bildirimi Yöneticiye Gönderilsin'; +$wb['overtraffic_notify_client_txt'] = 'Trafik Aşımı Bildirimi Müşteriye Gönderilsin'; $wb['rbl_error_regex'] = 'Lütfen geçerli RBL sunucu adları yazın.'; -$wb['overquota_notify_admin_txt'] = 'Yöneticiye kota uyarıları gönderilsin'; -$wb['overquota_notify_client_txt'] = 'Müşteriye kota uyarıları gönderilsin'; -$wb['overquota_notify_onok_txt'] = 'Müşteriye kota tamam iletisi gönderilsin'; -$wb['overquota_notify_freq_txt'] = 'Kota uyarılarının kaç günde bir gönderileceği'; -$wb['overquota_notify_freq_note_txt'] = '0 = ileti yalnız bir kez gönderilir, yinelenmez'; +$wb['overquota_notify_admin_txt'] = 'Kota Uyarıları Yöneticiye Gönderilsin'; +$wb['overquota_notify_client_txt'] = 'Kota Uyarıları Müşteriye Gönderilsin'; +$wb['overquota_notify_onok_txt'] = 'Kota Tamam İletisi Müşteriye Gönderilsin'; +$wb['overquota_notify_freq_txt'] = 'Kota Uyarısı Gönderim Sıklığı (Gün)'; +$wb['overquota_notify_freq_note_txt'] = '0 yazıldığında ileti yalnız bir kez gönderilir, yinelenmez'; $wb['admin_notify_events_txt'] = 'Yönetici Bildirim Düzeyi'; $wb['no_notifications_txt'] = 'Bildirim Gönderilmesin'; $wb['monit_url_txt'] = 'Monit Adresi'; @@ -189,24 +202,35 @@ $wb['munin_user_txt'] = 'Munin Kullanıcı Adı'; $wb['munin_password_txt'] = 'Munin Parolası'; $wb['munin_url_error_regex'] = 'Munin adresi geçersiz'; $wb['munin_url_note_txt'] = 'Kod:'; +$wb['v6_prefix_txt'] = 'IPv6 Ön Eki'; +$wb['vhost_rewrite_v6_txt'] = 'Yansı Üzerinde IPv6 Yeniden Yazılsın'; +$wb['v6_prefix_length'] = 'Ön ek tanımlanmış IPv6 adresine göre çok uzun '; $wb['backup_dir_is_mount_txt'] = 'Yedek Klasörü Takılı mı?'; +$wb['backup_dir_mount_cmd_txt'] = 'Mount komutu, yedek klasörü takılı değil ise'; +$wb['backup_delete_txt'] = 'Etki alanı ya da web sitesi silindiğinde yedekler de silinsin'; +$wb['overquota_db_notify_admin_txt'] = 'Veritabanı Kotası Bildirimleri Yöneticiye Gönderilsin'; +$wb['overquota_db_notify_client_txt'] = 'Veritabanı Kotası Bildirimleri Müşteriye Gönderilsin'; +$wb['monitor_system_updates_txt'] = 'Linux Güncellemeleri Denetlensin'; +$wb['php_handler_txt'] = 'Varsayılan PHP İşleyici'; +$wb['disabled_txt'] = 'Devre Dışı'; +$wb['dkim_strength_txt'] = 'DKIM zorluğu'; $wb['monitor_system_updates_txt'] = 'Linux Güncelleme Denetimi'; $wb['invalid_apache_user_txt'] = 'Apache kullanıcısı geçersiz.'; $wb['invalid_apache_group_txt'] = 'Apache grubu geçersiz.'; $wb['backup_dir_error_regex'] = 'Yedek klasörü geçersiz.'; -$wb['maildir_path_error_regex'] = 'Posta klasörü yolu geçersiz.'; +$wb['maildir_path_error_regex'] = 'E-posta klasörü yolu geçersiz.'; $wb['homedir_path_error_regex'] = 'Kullanıcı klasörü yolu geçersiz.'; -$wb['mailuser_name_error_regex'] = 'Posta kullanıcısı adı geçersiz.'; -$wb['mailuser_group_name_error_regex'] = 'Posta kullanıcısı grup adı geçersiz.'; -$wb['mailuser_uid_error_range'] = 'Posta kullanıcısı UID değeri >= 2000 olmalıdır'; -$wb['mailuser_gid_error_range'] = 'Posta kullanıcısı GID değeri >= 2000 olmalıdır'; -$wb['getmail_config_dir_error_regex'] = 'Getmail ayar klasörü geçersiz.'; +$wb['mailuser_name_error_regex'] = 'E-posta kullanıcısı adı geçersiz.'; +$wb['mailuser_group_name_error_regex'] = 'E-posta kullanıcısı grup adı geçersiz.'; +$wb['mailuser_uid_error_range'] = 'E-posta kullanıcısı UID değeri >= 2000 olmalıdır'; +$wb['mailuser_gid_error_range'] = 'E-posta kullanıcısı GID değeri >= 2000 olmalıdır'; +$wb['getmail_config_dir_error_regex'] = 'Getmail ayarları klasörü geçersiz.'; $wb['website_basedir_error_regex'] = 'Web sitesi kök klasörü geçersiz.'; $wb['website_symlinks_error_regex'] = 'Web sitesi sembolik bağlantıları geçersiz.'; -$wb['vhost_conf_dir_error_regex'] = 'Vhost ayar klasörü geçersiz.'; -$wb['vhost_conf_enabled_dir_error_regex'] = 'Etkin vhost ayar klasörü geçersiz.'; -$wb['nginx_vhost_conf_dir_error_regex'] = 'Nginx ayar klasörü geçersiz.'; -$wb['nginx_vhost_conf_enabled_dir_error_regex'] = 'Etkin nginx ayar klasörü geçersiz.'; +$wb['vhost_conf_dir_error_regex'] = 'Sanal sunucu ayarları klasörü geçersiz.'; +$wb['vhost_conf_enabled_dir_error_regex'] = 'Etkin sanal sunucu ayarları klasörü geçersiz.'; +$wb['nginx_vhost_conf_dir_error_regex'] = 'Nginx ayarları klasörü geçersiz.'; +$wb['nginx_vhost_conf_enabled_dir_error_regex'] = 'Etkin nginx ayarları klasörü geçersiz.'; $wb['ca_path_error_regex'] = 'CA yolu geçersiz.'; $wb['invalid_nginx_user_txt'] = 'nginx kullanıcısı geçersiz.'; $wb['invalid_nginx_group_txt'] = 'nginx grubu geçersiz.'; @@ -225,7 +249,7 @@ $wb['awstats_buildstaticpages_pl_empty'] = 'awstats_buildstaticpages.pl boş ola $wb['awstats_buildstaticpages_pl_error_regex'] = 'awstats_buildstaticpages.pl yolu geçersiz.'; $wb['invalid_bind_user_txt'] = 'BIND kullanıcısı geçersiz.'; $wb['invalid_bind_group_txt'] = 'BIND grubu geçersiz.'; -$wb['bind_zonefiles_dir_error_regex'] = 'BIND zonefiles klasörü geçersiz.'; +$wb['bind_zonefiles_dir_error_regex'] = 'BIND bölge dosyaları klasörü geçersiz.'; $wb['named_conf_path_error_regex'] = 'named.conf yolu geçersiz.'; $wb['named_conf_local_path_error_regex'] = 'named.conf.local yolu geçersiz.'; $wb['fastcgi_starter_path_error_regex'] = 'fastcgi başlatıcı yolu geçersiz.'; @@ -237,67 +261,37 @@ $wb['jailkit_chroot_home_error_regex'] = 'Jailkit chroot kök klasörü geçersi $wb['jailkit_chroot_app_sections_error_regex'] = 'Jailkit chroot bölümleri geçersiz.'; $wb['jailkit_chroot_app_programs_error_regex'] = 'Jailkit chroot app uygulama yazılımları geçersiz.'; $wb['jailkit_chroot_cron_programs_error_regex'] = 'Jailkit chroot zamanlanmış görev yazılımları geçersiz.'; -$wb['vlogger_config_dir_error_regex'] = 'Vlogger ayar klasörü geçersiz.'; +$wb['vlogger_config_dir_error_regex'] = 'Vlogger ayarları klasörü geçersiz.'; $wb['cron_init_script_error_regex'] = 'Zamanlanmış görev başlatma betiği geçersiz.'; $wb['crontab_dir_error_regex'] = 'Zamanlanmış görev klasörü geçersiz.'; $wb['cron_wget_error_regex'] = 'Zamanlanmış görev wget yolu geçersiz.'; $wb['network_filesystem_txt'] = 'Ağ Dosya Sistemi'; -$wb['maildir_format_txt'] = 'Maildir Format'; -$wb['dkim_path_txt'] = 'DKIM Path'; -$wb['mailbox_virtual_uidgid_maps_txt'] = 'Use Websites Linux uid for mailbox'; -$wb['mailbox_virtual_uidgid_maps_info_txt'] = 'only in single web and mail-server-setup'; -$wb['mailbox_virtual_uidgid_maps_error_nosingleserver'] = 'Uid cannot be mapped in multi-server-setup.'; -$wb['mailbox_virtual_uidgid_maps_error_nodovecot'] = 'Uid-mapping can only be used with dovecot.'; -$wb['mailbox_virtual_uidgid_maps_error_alreadyusers'] = 'Uid-mapping cannot be changed if there are already mail users.'; -$wb['reject_sender_login_mismatch_txt'] = 'Reject sender and login mismatch'; -$wb['backup_time_txt'] = 'Backup time'; -$wb['do_not_try_rescue_mongodb_txt'] = 'Disable MongoDB monitoring'; -$wb['v6_prefix_txt'] = 'IPv6 Prefix'; -$wb['vhost_rewrite_v6_txt'] = 'Rewrite IPv6 on Mirror'; -$wb['v6_prefix_length'] = 'Prefix too long according to defined IPv6 '; -$wb['backup_dir_mount_cmd_txt'] = 'Mount command, if backup directory not mounted'; -$wb['backup_delete_txt'] = 'Delete backups on domain/website delete'; -$wb['overquota_db_notify_admin_txt'] = 'Send DB quota warnings to admin'; -$wb['overquota_db_notify_client_txt'] = 'Send DB quota warnings to client'; -$wb['php_handler_txt'] = 'Default PHP Handler'; -$wb['php_fpm_incron_reload_txt'] = 'Install incron trigger file to reload PHP-FPM'; -$wb['disabled_txt'] = 'Disabled'; -$wb['dkim_strength_txt'] = 'DKIM strength'; -$wb['php_ini_check_minutes_txt'] = 'Check php.ini every X minutes for changes'; -$wb['php_ini_check_minutes_error_empty'] = 'Please specify a value how often php.ini should be checked for changes.'; -$wb['php_ini_check_minutes_info_txt'] = '0 = no check'; -$wb['enable_spdy_txt'] = 'Makes SPDY/HTTP2 available'; -$wb['web_settings_txt'] = 'Web Server'; -$wb['xmpp_server_txt'] = 'XMPP Server'; -$wb['xmpp_use_ipv6_txt'] = 'Use IPv6'; -$wb['xmpp_bosh_max_inactivity_txt'] = 'Max. BOSH inactivity time'; -$wb['xmpp_bosh_timeout_range_wrong'] = 'Please enter a bosh timeout range between 15 - 360'; +$wb['php_ini_check_minutes_txt'] = 'Her X dakikada php.ini dosyasındaki değişiklikler denetlensin'; +$wb['php_ini_check_minutes_error_empty'] = 'php.ini dosyasındaki değişikliklerin kaç dakikada bir denetleneceğini yazın.'; +$wb['php_ini_check_minutes_info_txt'] = '0 = denetim yapılmaz'; +$wb['enable_spdy_txt'] = 'SPDY/HTTP2 Kullanılsın'; +$wb['web_settings_txt'] = 'Web Sunucu'; +$wb['xmpp_server_txt'] = 'XMPP Sunucu'; +$wb['xmpp_use_ipv6_txt'] = 'IPv6 Kullanılsın'; +$wb['xmpp_bosh_max_inactivity_txt'] = 'BOSH için en uzun işlem yapılmama süresi'; +$wb['xmpp_bosh_timeout_range_wrong'] = '15 ile 360 arasında bir bosh zaman aşımı süresi yazın'; $wb['xmpp_module_saslauth'] = 'saslauth'; -$wb['xmpp_server_admins_txt'] = 'Server Admins (JIDs)'; -$wb['xmpp_modules_enabled_txt'] = 'Serverwide enabled plugins (one per line)'; -$wb['xmpp_ports_txt'] = 'Component ports'; +$wb['xmpp_server_admins_txt'] = 'Sunucu Yöneticileri (JID)'; +$wb['xmpp_modules_enabled_txt'] = 'Sunucu genelinde etkinleştirilecek uygulama ekleri (her satıra bir tane yazın)'; +$wb['xmpp_ports_txt'] = 'Bileşen Kapı Numaraları'; $wb['xmpp_port_http_txt'] = 'HTTP'; $wb['xmpp_port_https_txt'] = 'HTTPS'; $wb['xmpp_port_pastebin_txt'] = 'Pastebin'; $wb['xmpp_port_bosh_txt'] = 'BOSH'; -$wb['disable_bind_log_txt'] = 'Disable bind9 messages for Loglevel WARN'; -$wb['apps_vhost_enabled_txt'] = 'Apps-vhost enabled'; -$wb['skip_le_check_txt'] = 'Skip Lets Encrypt Check'; -$wb['migration_mode_txt'] = 'Server Migration Mode'; -$wb['nginx_enable_pagespeed_txt'] = 'Makes Pagespeed available'; -$wb['backup_tmp_txt'] = 'Backup tmp directory for zip'; -$wb['tmpdir_path_error_empty'] = 'tmp-dir Path is empty.'; -$wb['tmpdir_path_error_regex'] = 'Invalid tmp-dir path.'; -$wb['logging_txt'] = 'Store website access and error logs'; -$wb['logging_desc_txt'] = 'Use Tools > Resync to apply changes to existing sites. For Apache, access and error log can be anonymized. For nginx, only the access log is anonymized, the error log will contain IP addresses.'; -$wb['log_retention_txt'] = 'Log retention (days)'; -$wb['log_retention_error_ispositive'] = 'Log retention must be a number > 0'; -$wb['php_default_name_txt'] = 'Description Default PHP-Version'; -$wb['php_default_name_error_empty'] = 'Description Default PHP-Version must not be empty'; -$wb['error_mailbox_message_size_txt'] = 'Mailbox size must be larger or equal to message size'; -$wb['php_fpm_reload_mode_txt'] = 'PHP-FPM reload mode'; -$wb['content_filter_txt'] = 'Content Filter'; -$wb['rspamd_url_txt'] = 'Rspamd URL'; -$wb['rspamd_user_txt'] = 'Rspamd User'; -$wb['rspamd_password_txt'] = 'Rspamd Password'; +$wb['disable_bind_log_txt'] = 'UYARI günlük düzeyi iletileri için bind9 iletileri devre dışı bırakılsın'; +$wb['apps_vhost_enabled_txt'] = 'Uygulama Sanal Sunucusu Kullanılsın'; +$wb['skip_le_check_txt'] = 'Lets Encrypt Denetimi Atlansın'; +$wb['migration_mode_txt'] = 'Sunucu Aktarımı Kipi'; +$wb['nginx_enable_pagespeed_txt'] = 'Pagespeed uygulamasını etkinleştirir'; +$wb['logging_txt'] = 'Web Sitesi Erişim ve Hata Günlükleri Kaydedilsin'; +$wb['logging_desc_txt'] = 'Değişiklikleri var olan sitelere uygulamak için Araçlar > Yeniden Eşitle komutunu kullanın. Apache için, erişim ve hata günlükleri anonimleştirilebilir. nginx için, only erişim günlüğü anonimleştirilebilir, hata günlüğüne IP adresleri kaydedilir.'; +$wb['log_retention_txt'] = 'Günlük Tutma Süresi (Gün)'; +$wb['log_retention_error_ispositive'] = 'Günlük tutma süresi 0 değerinden büyük bir sayı olmalıdır'; +$wb['php_default_name_txt'] = 'Varsayılan PHP Sürümü Açıklaması'; +$wb['php_default_name_error_empty'] = 'Varsayılan PHP sürümü açıklaması boş olamaz'; ?> diff --git a/interface/web/admin/lib/lang/tr_server_ip.lng b/interface/web/admin/lib/lang/tr_server_ip.lng index 3ebdbd083..4b2cb1187 100644 --- a/interface/web/admin/lib/lang/tr_server_ip.lng +++ b/interface/web/admin/lib/lang/tr_server_ip.lng @@ -1,10 +1,10 @@ diff --git a/interface/web/admin/lib/lang/tr_server_ip_map.lng b/interface/web/admin/lib/lang/tr_server_ip_map.lng index 68b196fb2..c05e19c4b 100644 --- a/interface/web/admin/lib/lang/tr_server_ip_map.lng +++ b/interface/web/admin/lib/lang/tr_server_ip_map.lng @@ -1,12 +1,12 @@ diff --git a/interface/web/admin/lib/lang/tr_server_ip_map_list.lng b/interface/web/admin/lib/lang/tr_server_ip_map_list.lng index 1fedc10b2..e0ee9a972 100644 --- a/interface/web/admin/lib/lang/tr_server_ip_map_list.lng +++ b/interface/web/admin/lib/lang/tr_server_ip_map_list.lng @@ -1,7 +1,7 @@ diff --git a/interface/web/admin/lib/lang/tr_server_list.lng b/interface/web/admin/lib/lang/tr_server_list.lng index 9f791f78a..8e22a526c 100644 --- a/interface/web/admin/lib/lang/tr_server_list.lng +++ b/interface/web/admin/lib/lang/tr_server_list.lng @@ -1,12 +1,12 @@ diff --git a/interface/web/admin/lib/lang/tr_server_php_list.lng b/interface/web/admin/lib/lang/tr_server_php_list.lng index dd3d6b730..06319e985 100644 --- a/interface/web/admin/lib/lang/tr_server_php_list.lng +++ b/interface/web/admin/lib/lang/tr_server_php_list.lng @@ -4,5 +4,5 @@ $wb['server_id_txt'] = 'Sunucu'; $wb['add_new_record_txt'] = 'PHP Sürümü Ekle'; $wb['client_id_txt'] = 'Müşteri'; $wb['name_txt'] = 'PHP Adı'; -$wb['active_txt'] = 'Active'; +$wb['active_txt'] = 'Etkin'; ?> diff --git a/interface/web/admin/lib/lang/tr_software_package.lng b/interface/web/admin/lib/lang/tr_software_package.lng index dfd498183..addda6019 100644 --- a/interface/web/admin/lib/lang/tr_software_package.lng +++ b/interface/web/admin/lib/lang/tr_software_package.lng @@ -2,5 +2,5 @@ $wb['package_title_txt'] = 'Paket Başlığı'; $wb['package_key_txt'] = 'Paket Anahtarı'; $wb['Software Package'] = 'Yazılım Paketi'; -$wb['Modify software package details'] = 'Yazılım paketi ayrıntılarını düzenleyin'; +$wb['Modify software package details'] = 'Yazılım paketi bilgilerini düzenle'; ?> diff --git a/interface/web/admin/lib/lang/tr_software_update_list.lng b/interface/web/admin/lib/lang/tr_software_update_list.lng index 4ee824a6e..a462d90fa 100644 --- a/interface/web/admin/lib/lang/tr_software_update_list.lng +++ b/interface/web/admin/lib/lang/tr_software_update_list.lng @@ -1,6 +1,6 @@ diff --git a/interface/web/admin/lib/lang/tr_users.lng b/interface/web/admin/lib/lang/tr_users.lng index 002921477..72aa9d181 100644 --- a/interface/web/admin/lib/lang/tr_users.lng +++ b/interface/web/admin/lib/lang/tr_users.lng @@ -1,22 +1,22 @@ diff --git a/interface/web/admin/lib/lang/tr_users_list.lng b/interface/web/admin/lib/lang/tr_users_list.lng index 31dbee700..182ab3ca7 100644 --- a/interface/web/admin/lib/lang/tr_users_list.lng +++ b/interface/web/admin/lib/lang/tr_users_list.lng @@ -1,6 +1,6 @@ '; -$wb['error_domain_in dnsuse'] = 'Este domínio não pode ser removido porque está em uso como uma zona dns.'; -$wb['error_domain_in dnsslaveuse'] = 'Este domínio não pode ser removido porque está em uso como uma zona dns secundária.'; -$wb['Email-Templates'] = 'Gabaritos de e-mails'; +$wb['error_domain_in dnsuse'] = 'Este domínio não pode ser removido pois é utilizado em uma zona dns.'; +$wb['error_domain_in dnsslaveuse'] = 'Este domínio não pode ser removido pois é utilizado em uma zona dns secundária.'; +$wb['error_domain_in mailuse'] = 'Este domínio não pode ser removido pois é utilizado como um domínio de e-mail.'; +$wb['error_domain_in webuse'] = 'Este domínio não pode ser removido pois é utilizado como um domínio de site.'; +$wb['error_client_can_not_add_domain'] = 'Você não tem permissão para adicionar novos domínios.'; +$wb['error_client_group_id_empty'] = 'Você deve selecionar um cliente.'; +$wb['Email-Templates'] = 'Gabaritos de e-mail'; ?> diff --git a/interface/web/client/lib/lang/br_client.lng b/interface/web/client/lib/lang/br_client.lng index 992c1ea2c..c640be54f 100644 --- a/interface/web/client/lib/lang/br_client.lng +++ b/interface/web/client/lib/lang/br_client.lng @@ -1,26 +1,29 @@ diff --git a/interface/web/client/lib/lang/br_client_circle.lng b/interface/web/client/lib/lang/br_client_circle.lng index 364172f1a..6c6cb1327 100644 --- a/interface/web/client/lib/lang/br_client_circle.lng +++ b/interface/web/client/lib/lang/br_client_circle.lng @@ -1,6 +1,6 @@ diff --git a/interface/web/client/lib/lang/br_client_message_template_list.lng b/interface/web/client/lib/lang/br_client_message_template_list.lng index 9853a71ad..367376935 100644 --- a/interface/web/client/lib/lang/br_client_message_template_list.lng +++ b/interface/web/client/lib/lang/br_client_message_template_list.lng @@ -1,5 +1,5 @@ diff --git a/interface/web/client/lib/lang/br_client_template.lng b/interface/web/client/lib/lang/br_client_template.lng index 4b2ce6555..c09c622bb 100644 --- a/interface/web/client/lib/lang/br_client_template.lng +++ b/interface/web/client/lib/lang/br_client_template.lng @@ -1,123 +1,126 @@ diff --git a/interface/web/client/lib/lang/br_clients_list.lng b/interface/web/client/lib/lang/br_clients_list.lng index 7470bd27c..8016151a9 100644 --- a/interface/web/client/lib/lang/br_clients_list.lng +++ b/interface/web/client/lib/lang/br_clients_list.lng @@ -3,12 +3,12 @@ $wb['list_head_txt'] = 'Clientes'; $wb['client_id_txt'] = 'ID'; $wb['company_name_txt'] = 'Empresa'; $wb['contact_name_txt'] = 'Contato'; +$wb['username_txt'] = 'Usuário'; $wb['city_txt'] = 'Cidade'; $wb['country_txt'] = 'País'; $wb['add_new_record_txt'] = 'Adicionar novo cliente'; -$wb['username_txt'] = 'Usuário'; -$wb['customer_no_txt'] = 'Código do Cliente'; -$wb['locked_txt'] = 'Locked'; -$wb['yes_txt'] = 'Yes'; -$wb['no_txt'] = 'No'; +$wb['customer_no_txt'] = 'Código do cliente'; +$wb['locked_txt'] = 'Bloqueado'; +$wb['yes_txt'] = 'Sim'; +$wb['no_txt'] = 'Não'; ?> diff --git a/interface/web/client/lib/lang/br_domain.lng b/interface/web/client/lib/lang/br_domain.lng index 26c205a56..988976d2c 100644 --- a/interface/web/client/lib/lang/br_domain.lng +++ b/interface/web/client/lib/lang/br_domain.lng @@ -1,6 +1,6 @@ diff --git a/interface/web/client/lib/lang/br_reseller.lng b/interface/web/client/lib/lang/br_reseller.lng index d90d3b15a..12a8a2953 100644 --- a/interface/web/client/lib/lang/br_reseller.lng +++ b/interface/web/client/lib/lang/br_reseller.lng @@ -1,26 +1,29 @@ 0'; -$wb['limit_web_quota_txt'] = 'Cota de site'; -$wb['limit_traffic_quota_txt'] = 'Cota de tráfego'; -$wb['limit_trafficquota_error_notint'] = 'A cota de tráfego deve ser um número.'; -$wb['customer_no_txt'] = 'Código do cliente.'; -$wb['vat_id_txt'] = 'VAT ID'; -$wb['required_fields_txt'] = '*Campos obrigatórios'; -$wb['limit_mailmailinglist_txt'] = 'Limite de listas de e-mails'; -$wb['limit_mailmailinglist_error_notint'] = 'Limite de listas de e-mails deve ser um número.'; -$wb['limit_webdav_user_txt'] = 'Limite de usuário webdav'; -$wb['limit_webdav_user_error_notint'] = 'Limite de usuários webdav deve ser um número.'; -$wb['limit_backup_txt'] = 'Função de backup disponível'; -$wb['limit_mailaliasdomain_txt'] = 'Limite de apelidos de domínio de e-mails'; -$wb['limit_openvz_vm_txt'] = 'Limite de servidores virtuais'; -$wb['limit_openvz_vm_template_id_txt'] = 'Forçar gabarito de servidor virtual'; -$wb['limit_openvz_vm_error_notint'] = 'Limite de servidores virtuais deve ser um número.'; -$wb['web_php_options_notempty'] = 'Nenhuma opção do php selecionada. Selecione ao menos uma opção.'; -$wb['ssh_chroot_notempty'] = 'Nenhuma opção do ssh-chroot selecionada. Selecione ao menos uma opção.'; -$wb['username_error_collision'] = 'O nome do usuário não pode iniciar com a palavra -web- ou -web- seguida de um número.'; +$wb['template_master_txt'] = 'Gabarito Mestre'; +$wb['template_additional_txt'] = 'Gabarito Personalizado'; $wb['add_additional_template_txt'] = 'Adicionar gabarito personalizado'; $wb['delete_additional_template_txt'] = 'Remover gabarito personalizado'; +$wb['ssh_chroot_txt'] = 'Opções SSH-Chroot'; +$wb['web_php_options_txt'] = 'Opções PHP'; $wb['limit_cgi_txt'] = 'CGI disponível'; $wb['limit_ssi_txt'] = 'SSI disponível'; $wb['limit_perl_txt'] = 'Perl disponível'; $wb['limit_ruby_txt'] = 'Ruby disponível'; $wb['limit_python_txt'] = 'Python disponível'; -$wb['force_suexec_txt'] = 'SuEXEC forced'; +$wb['force_suexec_txt'] = 'Forçar SuEXEC'; $wb['limit_hterror_txt'] = 'Custom error docs disponível'; -$wb['limit_wildcard_txt'] = 'Curingas de subdomínios disponíveis'; +$wb['limit_wildcard_txt'] = 'Curingas de subdomínios disponível'; $wb['limit_ssl_txt'] = 'SSL disponível'; -$wb['web_limits_txt'] = 'Limites web'; -$wb['email_limits_txt'] = 'Limites de e-mails'; -$wb['database_limits_txt'] = 'Limites de banco de dados'; -$wb['cron_job_limits_txt'] = 'Limites de tarefas no cron'; -$wb['dns_limits_txt'] = 'Limites de dns'; -$wb['virtualization_limits_txt'] = 'Limites de virtualização'; -$wb['generate_password_txt'] = 'Gerar senha'; -$wb['repeat_password_txt'] = 'Repetir senha'; -$wb['password_mismatch_txt'] = 'A senhas não coincidem.'; -$wb['password_match_txt'] = 'A senhas coincidem.'; +$wb['limit_ssl_letsencrypt_txt'] = 'Let\'s Encrypt disponível'; +$wb['limit_client_error'] = 'O limite de clientes para esta conta foi alcançado.'; +$wb['limit_client_error_positive_or_unlimited'] = 'O número de clientes deve ser > 0 ou -1 (ilimitado)'; +$wb['limit_web_quota_txt'] = 'Cota web'; +$wb['limit_traffic_quota_txt'] = 'Cota de tráfego'; +$wb['limit_trafficquota_error_notint'] = 'Cota de tráfego deve ser um número.'; +$wb['customer_no_txt'] = 'Código do cliente'; +$wb['vat_id_txt'] = 'VAT ID'; +$wb['required_fields_txt'] = '*Campos obrigatórios'; +$wb['limit_openvz_vm_txt'] = 'Limite de máquinas virtuais'; +$wb['limit_openvz_vm_template_id_txt'] = 'Forçar gabarito para máquina virtual'; +$wb['limit_openvz_vm_error_notint'] = 'O limite de máquinas virtuais deve ser um número.'; +$wb['web_php_options_notempty'] = 'Nenhuma opção PHP selecionado. Selecione ao menos uma opção PHP.'; +$wb['ssh_chroot_notempty'] = 'Nenhuma opção SSH chroot selecionada. Selecione ao menos uma opção SSH chroot.'; +$wb['username_error_collision'] = 'O nome de usuário não pode iniciar com -web- ou -web- seguida de um número.'; +$wb['web_limits_txt'] = 'Limite de site'; +$wb['email_limits_txt'] = 'Limites de e-mail'; +$wb['database_limits_txt'] = 'Limite de banco de dados'; +$wb['cron_job_limits_txt'] = 'Limites de tarefa no Cron'; +$wb['dns_limits_txt'] = 'Limites de DNS'; +$wb['virtualization_limits_txt'] = 'Limites de máquinas virtuais'; +$wb['generate_password_txt'] = 'Gerar Senha'; +$wb['repeat_password_txt'] = 'Repetir Senha'; +$wb['password_mismatch_txt'] = 'As senhas não coincidem.'; +$wb['password_match_txt'] = 'As senhas coincidem.'; $wb['email_error_isemail'] = 'Por favor, insira um e-mail válido.'; -$wb['customer_no_error_unique'] = 'O código do cliente deve ser exclusivo (ou deixe em branco).'; +$wb['customer_no_error_unique'] = 'O código do cliente deve ser exclusivo e não pode estar está em branco.'; $wb['paypal_email_error_isemail'] = 'Por favor, insira um e-mail do PayPal válido.'; -$wb['paypal_email_txt'] = 'e-mail do PayPal'; -$wb['company_id_txt'] = 'ID da empresa'; -$wb['bank_account_number_txt'] = 'Conta corrente'; -$wb['bank_account_owner_txt'] = 'Proprietário'; -$wb['bank_code_txt'] = 'Codigo do banco'; +$wb['paypal_email_txt'] = 'e-Mail PayPal'; +$wb['company_id_txt'] = 'Código da Empresa'; +$wb['bank_account_number_txt'] = 'Conta bancária'; +$wb['bank_account_owner_txt'] = 'Proprietário da conta bancária'; +$wb['bank_code_txt'] = 'Código do banco'; $wb['bank_name_txt'] = 'Nome do banco'; $wb['bank_account_iban_txt'] = 'IBAN'; $wb['bank_account_swift_txt'] = 'BIC/Swift'; -$wb['aps_limits_txt'] = 'Limites de instalações de apps'; -$wb['limit_aps_txt'] = 'Limites de instâncias de apps'; -$wb['limit_aps_error_notint'] = 'Limite de instâncias de apps deve ser um número.'; -$wb['default_slave_dnsserver_txt'] = 'Servidor dns secundário padrão'; +$wb['aps_limits_txt'] = 'Limites de instaladores de APPs'; +$wb['limit_aps_txt'] = 'Limite de instâncias de APPs'; +$wb['limit_aps_error_notint'] = 'O limite de instâncias de APPs deve ser um número.'; +$wb['default_slave_dnsserver_txt'] = 'Servidor DNS secundário padrão'; $wb['locked_txt'] = 'Bloqueado'; $wb['canceled_txt'] = 'Cancelado'; $wb['gender_m_txt'] = 'Sr.'; $wb['gender_f_txt'] = 'Sra.'; $wb['gender_txt'] = 'Título'; -$wb['customer_no_template_txt'] = 'No. do gabarito do cliente'; -$wb['customer_no_template_error_regex_txt'] = 'O número do gabarito contém caracteres inválidos.'; -$wb['customer_no_start_txt'] = 'Valor inicial do código do cliente'; -$wb['customer_no_counter_txt'] = 'Contador de código do cliente'; -$wb['added_by_txt'] = 'Cadastrado por'; -$wb['added_date_txt'] = 'Data do cadastro'; -$wb['limit_domainmodule_error_notint'] = 'Limite de módulos de domínio deve ser um número.'; -$wb['limit_domainmodule_txt'] = 'Limites de módulos de domínio'; -$wb['client_limits_txt'] = 'Limite de clientes'; -$wb['err_msg_master_tpl_set'] = 'Todas as configurações personalizadas de limites serão ignoradas se um gabarito mestre ou \\"personalizado\\" for selecionado.'; -$wb['btn_save_txt'] = 'Salvar'; -$wb['btn_cancel_txt'] = 'Cancelar'; -$wb['email_error_empty'] = 'e-mail está em branco.'; -$wb['web_servers_txt'] = 'Servidores web'; -$wb['web_servers_placeholder'] = 'Selecionar servidores web'; -$wb['no_web_server_error'] = 'Ao menos um servidor de páginas deve ser selecionado.'; -$wb['web_servers_used'] = 'O servidor que você está tentando remover para este cliente é utilizado como um servidor de páginas. Certifique-se de que este servidor não é usado por este cliente antes de removê-lo.'; -$wb['dns_servers_txt'] = 'Servidores dns'; -$wb['dns_servers_placeholder'] = 'Selecione os servidores dns'; -$wb['no_dns_server_error'] = 'Ao menos um servidor dns deve ser selecionado.'; -$wb['dns_servers_used'] = 'O servidor que você está tentando remover para este cliente é utilizado como um servidor dns. Certifique-se de que este servidor não é usado por este cliente antes de removê-lo.'; -$wb['db_servers_txt'] = 'Servidores de banco de dados'; -$wb['db_servers_placeholder'] = 'Selecione os servidores de banco de dados.'; +$wb['web_servers_txt'] = 'Servidores Web'; +$wb['web_servers_placeholder'] = 'Selecione o(s) servidor(es) web'; +$wb['no_web_server_error'] = 'Ao menos um servidor web deve ser selecionado.'; +$wb['web_servers_used'] = 'O servidor web que você está tentando remover para este cliente é usado pelo mesmo. Certifique-se que este servidor não esteja em uso para este cliente antes de removê-lo.'; +$wb['dns_servers_txt'] = 'Servidor DNS'; +$wb['dns_servers_placeholder'] = 'Selecione os servidores DNS'; +$wb['no_dns_server_error'] = 'Ao menos um servidor DNS deve ser selecionado.'; +$wb['dns_servers_used'] = 'O servidor DNS que você está tentando remover para este cliente é usado pelo mesmo. Certifique-se que este servidor não esteja em uso para este cliente antes de removê-lo.'; +$wb['db_servers_txt'] = 'Servidor de banco de dados'; +$wb['db_servers_placeholder'] = 'Selecione os servidores de banco de dados'; $wb['no_db_server_error'] = 'Ao menos um servidor de banco de dados deve ser selecionado.'; -$wb['db_servers_used'] = 'O servidor que você está tentando remover para este cliente é utilizado como um servidor de banco de dados. Certifique-se de que este servidor não é usado por este cliente antes de removê-lo.'; -$wb['mail_servers_txt'] = 'Servidores de e-mails'; -$wb['mail_servers_placeholder'] = 'Selecionar servidores de e-mails'; +$wb['db_servers_used'] = 'O servidor de banco de dados que você está tentando remover para este cliente é usado pelo mesmo. Certifique-se que este servidor não esteja em uso para este cliente antes de removê-lo.'; +$wb['mail_servers_txt'] = 'Servidores de e-mail'; +$wb['mail_servers_placeholder'] = 'Selecione os servidores de e-mail'; $wb['no_mail_server_error'] = 'Ao menos um servidor de e-mail deve ser selecionado.'; -$wb['mail_servers_used'] = 'O servidor que você está tentando remover para este cliente é utilizado como um servidor de e-mails. Certifique-se de que este servidor não é usado por este cliente antes de removê-lo.'; -$wb['xmpp_limits_txt'] = 'Limites XMPP'; -$wb['xmpp_servers_txt'] = 'Servidores XMPP'; -$wb['xmpp_servers_placeholder'] = 'Selecione os servidores XMPP'; -$wb['no_xmpp_server_error'] = 'Ao menos um servidor XMPP deve ser selecionado.'; -$wb['xmpp_servers_used'] = 'O servidor que você está tentando remover para este cliente é utilizado como um servidor xmpp. Certifique-se de que este servidor não é usado por este cliente antes de removê-lo.'; -$wb['limit_xmpp_domain_error_notint'] = 'Limite de domínios xmpp deve ser um número.'; -$wb['limit_xmpp_user_error_notint'] = 'Limite de usuários xmpp deve ser um número.'; +$wb['mail_servers_used'] = 'O servidor de e-mails que você está tentando remover para este cliente é usado pelo mesmo. Certifique-se que este servidor não esteja em uso para este cliente antes de removê-lo.'; +$wb['customer_no_template_txt'] = 'Código do gabarito de clientes'; +$wb['customer_no_template_error_regex_txt'] = 'O código de gabarito de clientes possui caracteres inválidos.'; +$wb['customer_no_start_txt'] = 'Iniciar código de clientes em'; +$wb['customer_no_counter_txt'] = 'Contador de código do cliente'; +$wb['xmpp_limits_txt'] = 'Limites xmpp'; +$wb['xmpp_servers_txt'] = 'Servidores xmpp'; +$wb['xmpp_servers_placeholder'] = 'Selecione os servidores xmpp'; +$wb['no_xmpp_server_error'] = 'Ao menos um servidor xmpp deve ser selecionado.'; +$wb['xmpp_servers_used'] = 'O servidor xmpp que você está tentando remover para este cliente é usado pelo mesmo. Certifique-se que este servidor não esteja em uso para este cliente antes de removê-lo.'; +$wb['limit_xmpp_domain_error_notint'] = 'O limite de domínios xmpp deve ser um número.'; +$wb['limit_xmpp_user_error_notint'] = 'O limite de usuários xmpp deve ser um número.'; $wb['limit_xmpp_domain_txt'] = 'Limite de domínios xmpp'; $wb['limit_xmpp_user_txt'] = 'Limite de usuários xmpp'; -$wb['limit_xmpp_muc_txt'] = 'Chat multiusuário disponível'; +$wb['limit_xmpp_muc_txt'] = 'Chat multiusuário (MUC) disponível'; $wb['limit_xmpp_pastebin_txt'] = 'Pastebin para MUC disponível'; $wb['limit_xmpp_httparchive_txt'] = 'Arquivo HTTP para MUC disponível'; $wb['limit_xmpp_anon_txt'] = 'Host anônimo disponível'; $wb['limit_xmpp_vjud_txt'] = 'Diretório de usuário VJUD disponível'; -$wb['limit_xmpp_proxy_txt'] = 'Proxy bytestream disponível'; +$wb['limit_xmpp_proxy_txt'] = 'Proxy Bytestream disponível'; $wb['limit_xmpp_status_txt'] = 'Estado do host disponível'; -$wb['invalid_vat_id'] = 'O VAT ID é é inválido.'; -$wb['limit_database_user_txt'] = 'Limite de usuários de banco de dados'; -$wb['limit_database_user_error_notint'] = 'Limite de usuários de banco de dados deve ser um número.'; -$wb['limit_database_quota_txt'] = 'Cota para banco de dados'; -$wb['limit_database_quota_error_notint'] = 'A cota para banco de dados deve ser um número.'; -$wb['limit_ssl_letsencrypt_txt'] = 'Let\'s Encrypt disponível'; -$wb['limit_directive_snippets_txt'] = 'Exibir seleção das configurações do servidor de páginas'; -$wb['password_click_to_set_txt'] = 'Configurar'; +$wb['added_by_txt'] = 'Cadastrado por'; +$wb['added_date_txt'] = 'Data do cadastro'; +$wb['limit_domainmodule_error_notint'] = 'Limite de módulos de domínio deve ser um número.'; +$wb['limit_domainmodule_txt'] = 'Limite de módulos de domínio'; +$wb['client_limits_txt'] = 'Limite de clientes'; +$wb['err_msg_master_tpl_set'] = 'Todas as configurações de limites serão ignoradas se qualquer gabarito mestre ou personalizado for selecionado.'; +$wb['invalid_vat_id'] = 'O ID do VAT é inválido.'; +$wb['btn_save_txt'] = 'Salvar'; +$wb['btn_cancel_txt'] = 'Cancelar'; +$wb['email_error_empty'] = 'O endereço de e-mail está em branco.'; +$wb['limit_directive_snippets_txt'] = 'Exibir seleção de configuração do servidor web'; +$wb['limit_database_user_error_notint'] = 'O limite de usuários do banco de dados deve ser um número.'; +$wb['limit_database_quota_txt'] = 'Cota do banco de dados'; +$wb['limit_database_quota_error_notint'] = 'A cota do banco de dados deve ser um número.'; $wb['Limits'] = 'Limites'; ?> diff --git a/interface/web/client/lib/lang/br_resellers_list.lng b/interface/web/client/lib/lang/br_resellers_list.lng index 5a64358af..1f67e7f59 100644 --- a/interface/web/client/lib/lang/br_resellers_list.lng +++ b/interface/web/client/lib/lang/br_resellers_list.lng @@ -6,6 +6,6 @@ $wb['contact_name_txt'] = 'Contato'; $wb['city_txt'] = 'Cidade'; $wb['country_txt'] = 'País'; $wb['add_new_record_txt'] = 'Adicionar nova revenda'; -$wb['customer_no_txt'] = 'Código do Cliente'; +$wb['customer_no_txt'] = 'Código do cliente'; $wb['username_txt'] = 'Usuário'; ?> diff --git a/interface/web/client/lib/lang/tr.lng b/interface/web/client/lib/lang/tr.lng index 0f3df4d7a..cc2e8aa02 100644 --- a/interface/web/client/lib/lang/tr.lng +++ b/interface/web/client/lib/lang/tr.lng @@ -16,14 +16,15 @@ $wb['delete_additional_template_txt'] = 'Ek Kalıbı Sil'; $wb['Messaging'] = 'İletişim'; $wb['Send email'] = 'E-posta Gönderimi'; $wb['Edit Client Circle'] = 'Müşteri Grubu Düzenleme'; -$wb['Domains'] = 'Alan Adları'; -$wb['domain_txt'] = 'Alan Adı'; +$wb['Domains'] = 'Etki Alanları'; +$wb['domain_txt'] = 'Etki Alanı'; $wb['client_txt'] = 'Müşteri'; -$wb['error_domain_in mailuse'] = 'Bu alan adı e-posta alan adı olarak kullanıldığından silinemez'; -$wb['error_domain_in webuse'] = 'Bu alan adı web alan adı olarak kullanıldığından silinemez'; -$wb['error_client_can_not_add_domain'] = 'Yeni bir alan adı ekleyemezsiniz'; +$wb['error_domain_in dnsuse'] = 'Bu etki alanı birincil DNS bölgesi olarak kullanıldığından silinemez'; +$wb['error_domain_in dnsslaveuse'] = 'Bu etki alanı ikincil DNS bölgesi olarak kullanıldığından silinemez'; +$wb['error_domain_in mailuse'] = 'Bu etki alanı e-posta etki alanı olarak kullanıldığından silinemez'; +$wb['error_domain_in webuse'] = 'Bu etki alanı web etki alanı olarak kullanıldığından silinemez'; +$wb['error_client_can_not_add_domain'] = 'Yeni bir etki alanı ekleyemezsiniz'; +$wb['domain_txt'] = 'Etki Alanı'; $wb['error_client_group_id_empty'] = 'Bir müşteri seçmelisiniz
'; -$wb['error_domain_in dnsuse'] = 'This domain cannot be deleted, because it is in use as dns zone'; -$wb['error_domain_in dnsslaveuse'] = 'This domain cannot be deleted, because it is in use as secondary dns zone'; -$wb['Email-Templates'] = 'Email-Templates'; +$wb['Email-Templates'] = 'E-posta Kalıpları'; ?> diff --git a/interface/web/client/lib/lang/tr_client.lng b/interface/web/client/lib/lang/tr_client.lng index 765d9f198..f07117096 100644 --- a/interface/web/client/lib/lang/tr_client.lng +++ b/interface/web/client/lib/lang/tr_client.lng @@ -1,24 +1,26 @@ (tüm web vb. devre dışı)'; $wb['canceled_txt'] = 'İptal
(müşteri oturumu devre dışı)'; -$wb['gender_txt'] = 'Ünvan'; +$wb['gender_txt'] = 'Unvan'; $wb['gender_m_txt'] = 'Bay'; $wb['gender_f_txt'] = 'Bayan'; +$wb['web_servers_txt'] = 'Web Sunucuları'; +$wb['web_servers_placeholder'] = 'Web Sunucularını Seçin'; +$wb['no_web_server_error'] = 'En az bir web sunucusu seçilmelidir.'; +$wb['web_servers_used'] = 'Bu müşteriden kaldırmaya çalıştığınız sunucu bir web sunucusu olarak kullanılıyor. Kaldırmadan önce bu sunucunun bu müşteri tarafından kullanılmadığından emin olun.'; +$wb['dns_servers_txt'] = 'DNS Sunucular'; +$wb['dns_servers_placeholder'] = 'DNS Sunucuları Seçin'; +$wb['no_dns_server_error'] = 'En az bir DNS sunucusu seçilmelidir.'; +$wb['dns_servers_used'] = 'Bu müşteriden kaldırmaya çalıştığınız sunucu bir DNS sunucusu olarak kullanılıyor. Kaldırmadan önce bu sunucunun bu müşteri tarafından kullanılmadığından emin olun'; +$wb['db_servers_txt'] = 'Veritabanı Sunucuları'; +$wb['db_servers_placeholder'] = 'Veritabanı Sunucularını Seçin'; +$wb['no_db_server_error'] = 'En az bir veritabanı sunucusu seçilmelidir.'; +$wb['db_servers_used'] = 'Bu müşteriden kaldırmaya çalıştığınız sunucu bir veritabanı sunucusu olarak kullanılıyor. Kaldırmadan önce bu sunucunun bu müşteri tarafından kullanılmadığından emin olun.'; +$wb['mail_servers_txt'] = 'E-posta Sunucuları'; +$wb['mail_servers_placeholder'] = 'E-posta Sunucularını Seçin'; +$wb['no_mail_server_error'] = 'En az bir e-posta sunucusu seçilmelidir.'; +$wb['mail_servers_used'] = 'Bu müşteriden kaldırmaya çalıştığınız sunucu bir e-posta sunucusu olarak kullanılıyor. Kaldırmadan önce bu sunucunun bu müşteri tarafından kullanılmadığından emin olun.'; + +$wb['xmpp_servers_txt'] = 'XMPP Sunucular'; +$wb['xmpp_servers_placeholder'] = 'XMPP Sunucuları Seçin'; +$wb['no_xmpp_server_error'] = 'En az bir XMPP sunucusu seçilmelidir.'; +$wb['xmpp_servers_used'] = 'Bu müşteriden kaldırmaya çalıştığınız sunucu bir XMPP sunucusu olarak kullanılıyor. Kaldırmadan önce bu sunucunun bu müşteri tarafından kullanılmadığından emin olun.'; +$wb['limit_xmpp_domain_error_notint'] = 'XMPP etki alanı sınırı bir sayı olmalıdır.'; +$wb['limit_xmpp_user_error_notint'] = 'XMPP kullanıcı sınırı bir sayı olmalıdır.'; +$wb['limit_xmpp_domain_txt'] = 'En Fazla XMPP Etki Alanı Sayısı'; +$wb['limit_xmpp_user_txt'] = 'En Fazla XMPP Hesabı Sayısı'; +$wb['limit_xmpp_muc_txt'] = 'Çok Kullanıcılı Sohbet (ÇKS) Kullanılsın'; +$wb['limit_xmpp_pastebin_txt'] = 'ÇKS için Pastebin Kullanılsın'; +$wb['limit_xmpp_httparchive_txt'] = 'ÇKS için HTTP Arşivi Kullanılsın'; +$wb['limit_xmpp_anon_txt'] = 'Adsız Sunucu Kullanılsın'; +$wb['limit_xmpp_vjud_txt'] = 'VJUD Kullanıcı Klasörü Kullanılsın'; +$wb['limit_xmpp_proxy_txt'] = 'Bytestream Vekil Sunucusu Kullanılsın'; +$wb['limit_xmpp_status_txt'] = 'Durum Sunucusu Kullanılsın'; $wb['added_by_txt'] = 'Ekleyen'; $wb['added_date_txt'] = 'Eklendiği Tarih'; $wb['parent_client_id_txt'] = 'Bayi Müşterisi'; -$wb['none_txt'] = 'yok'; -$wb['contact_firstname_txt'] = 'Contact firstname'; -$wb['password_click_to_set_txt'] = 'Click to set'; -$wb['limit_backup_txt'] = 'Backupfunction available'; -$wb['limit_ssl_letsencrypt_txt'] = 'Let\'s Encrypt available'; -$wb['xmpp_limits_txt'] = 'XMPP Limits'; -$wb['web_servers_txt'] = 'Webservers'; -$wb['web_servers_placeholder'] = 'Select webservers'; -$wb['no_web_server_error'] = 'At least one webserver must be selected.'; -$wb['web_servers_used'] = 'The server you are trying to remove from this client is used as a webserver. Be sure that this server is not used by this client before you remove it.'; -$wb['dns_servers_txt'] = 'DNS servers'; -$wb['dns_servers_placeholder'] = 'Select DNS servers'; -$wb['no_dns_server_error'] = 'At least one DNS server must be selected.'; -$wb['dns_servers_used'] = 'The server you are trying to remove from this client is used as a DNS server. Be sure that this server is not used by this client before you remove it.'; -$wb['db_servers_txt'] = 'Database servers'; -$wb['db_servers_placeholder'] = 'Select database servers'; -$wb['no_db_server_error'] = 'At least one Database server must be selected.'; -$wb['db_servers_used'] = 'The server you are trying to remove from this client is used as a Database server. Be sure that this server is not used by this client before you remove it.'; -$wb['mail_servers_txt'] = 'Mailservers'; -$wb['mail_servers_placeholder'] = 'Select mailservers'; -$wb['no_mail_server_error'] = 'At least one mailserver must be selected.'; -$wb['mail_servers_used'] = 'The server you are trying to remove from this client is used as a Mailserver. Be sure that this server is not used by this client before you remove it.'; -$wb['xmpp_servers_txt'] = 'XMPP Servers'; -$wb['xmpp_servers_placeholder'] = 'Select XMPP Servers'; -$wb['no_xmpp_server_error'] = 'At least one XMPP Server must be selected.'; -$wb['xmpp_servers_used'] = 'The server you are trying to remove from this client is used as a XMPP Server. Be sure that this server is not used by this client before you remove it.'; -$wb['limit_xmpp_domain_error_notint'] = 'The XMPP domain limit must be a number.'; -$wb['limit_xmpp_user_error_notint'] = 'The XMPP user limit must be a number.'; -$wb['limit_xmpp_domain_txt'] = 'Max. number of XMPP domains'; -$wb['limit_xmpp_user_txt'] = 'Max. number of XMPP accounts'; -$wb['limit_xmpp_muc_txt'] = 'Multiuser chat available'; -$wb['limit_xmpp_pastebin_txt'] = 'Pastebin for MUC available'; -$wb['limit_xmpp_httparchive_txt'] = 'HTTP archive for MUC available'; -$wb['limit_xmpp_anon_txt'] = 'Anonymous host available'; -$wb['limit_xmpp_vjud_txt'] = 'VJUD user directory available'; -$wb['limit_xmpp_proxy_txt'] = 'Bytestream proxy available'; -$wb['limit_xmpp_status_txt'] = 'Status host available'; -$wb['limit_database_quota_txt'] = 'Database quota'; -$wb['limit_database_quota_error_notint'] = 'The database quota limit must be a number.'; -$wb['limit_database_user_txt'] = 'Max. Database users'; -$wb['limit_database_user_error_notint'] = 'The database user limit must be a number.'; -$wb['reseller_txt'] = 'Reseller'; -$wb['btn_save_txt'] = 'Save'; -$wb['btn_cancel_txt'] = 'Cancel'; -$wb['invalid_vat_id'] = 'The VAT ID is invalid.'; -$wb['email_error_empty'] = 'Email is empty'; -$wb['limit_directive_snippets_txt'] = 'Show web server config selection'; -$wb['limit_dns_record_error_notint'] = 'The dns record limit must be a number.'; -$wb['Limits'] = 'Limits'; +$wb['none_txt'] = 'Yok'; +$wb['limit_database_quota_txt'] = 'Veritabanı Kotası'; +$wb['limit_database_quota_error_notint'] = 'Veritabanı kotası sınırı bir sayı olmalıdır.'; +$wb['limit_database_user_txt'] = 'En Fazla Veritabanı Kullanıcısı Sayısı'; +$wb['limit_database_user_error_notint'] = 'Veritabanı kullanıcı sınırı bir sayı olmalıdır.'; +$wb['reseller_txt'] = 'Bayi'; +$wb['btn_save_txt'] = 'Kaydet'; +$wb['btn_cancel_txt'] = 'İptal'; +$wb['invalid_vat_id'] = 'Vergi numarası geçersiz.'; +$wb['email_error_empty'] = 'E-posta boş olamaz.'; +$wb['limit_directive_snippets_txt'] = 'Web Sunucu Yapılandırma Seçimi Görüntülensin'; +$wb['Limits'] = 'Sınırlar'; ?> diff --git a/interface/web/client/lib/lang/tr_client_message_template.lng b/interface/web/client/lib/lang/tr_client_message_template.lng index 885e2afc8..2b2994c55 100644 --- a/interface/web/client/lib/lang/tr_client_message_template.lng +++ b/interface/web/client/lib/lang/tr_client_message_template.lng @@ -1,13 +1,13 @@ diff --git a/interface/web/client/lib/lang/tr_client_message_template_list.lng b/interface/web/client/lib/lang/tr_client_message_template_list.lng index d0f50c7fe..fb7fd944f 100644 --- a/interface/web/client/lib/lang/tr_client_message_template_list.lng +++ b/interface/web/client/lib/lang/tr_client_message_template_list.lng @@ -1,5 +1,5 @@ diff --git a/interface/web/client/lib/lang/tr_client_template.lng b/interface/web/client/lib/lang/tr_client_template.lng index da9f19f79..309117644 100644 --- a/interface/web/client/lib/lang/tr_client_template.lng +++ b/interface/web/client/lib/lang/tr_client_template.lng @@ -1,61 +1,68 @@ diff --git a/interface/web/client/lib/lang/tr_client_template_list.lng b/interface/web/client/lib/lang/tr_client_template_list.lng index fbe35efc9..cab3f906a 100644 --- a/interface/web/client/lib/lang/tr_client_template_list.lng +++ b/interface/web/client/lib/lang/tr_client_template_list.lng @@ -1,7 +1,7 @@ diff --git a/interface/web/client/lib/lang/tr_clients_list.lng b/interface/web/client/lib/lang/tr_clients_list.lng index d59411a3d..8b13f1c81 100644 --- a/interface/web/client/lib/lang/tr_clients_list.lng +++ b/interface/web/client/lib/lang/tr_clients_list.lng @@ -1,14 +1,14 @@ diff --git a/interface/web/client/lib/lang/tr_domain.lng b/interface/web/client/lib/lang/tr_domain.lng index ba5dab700..d0b4e228d 100644 --- a/interface/web/client/lib/lang/tr_domain.lng +++ b/interface/web/client/lib/lang/tr_domain.lng @@ -1,6 +1,6 @@ diff --git a/interface/web/client/lib/lang/tr_domain_list.lng b/interface/web/client/lib/lang/tr_domain_list.lng index d422ef3d5..8b6f75be8 100644 --- a/interface/web/client/lib/lang/tr_domain_list.lng +++ b/interface/web/client/lib/lang/tr_domain_list.lng @@ -1,6 +1,6 @@ diff --git a/interface/web/client/lib/lang/tr_reseller.lng b/interface/web/client/lib/lang/tr_reseller.lng index 4906a894c..e04230140 100644 --- a/interface/web/client/lib/lang/tr_reseller.lng +++ b/interface/web/client/lib/lang/tr_reseller.lng @@ -1,28 +1,30 @@ 0 ya da -1 (sınırsız) olmalıdır'; $wb['limit_web_quota_txt'] = 'Web Kotası'; $wb['limit_traffic_quota_txt'] = 'Trafik Kotası'; $wb['limit_trafficquota_error_notint'] = 'Trafik kotası bir sayı olmalıdır.'; @@ -123,7 +131,7 @@ $wb['database_limits_txt'] = 'Veritabanı Sınırları'; $wb['cron_job_limits_txt'] = 'Zamanlanmış Görev Sınırları'; $wb['dns_limits_txt'] = 'DNS Sınırları'; $wb['virtualization_limits_txt'] = 'Sanallaştırma Sınırları'; -$wb['generate_password_txt'] = 'Parola Oluştur'; +$wb['generate_password_txt'] = 'Parola Üret'; $wb['repeat_password_txt'] = 'Parola Onayı'; $wb['password_mismatch_txt'] = 'Parola ile onayı aynı değil.'; $wb['password_match_txt'] = 'Parola ile onayı aynı.'; @@ -146,62 +154,58 @@ $wb['locked_txt'] = 'Kilitli'; $wb['canceled_txt'] = 'İptal edilmiş'; $wb['gender_m_txt'] = 'Bay'; $wb['gender_f_txt'] = 'Bayan'; -$wb['gender_txt'] = 'Ünvan'; +$wb['gender_txt'] = 'Unvan'; +$wb['web_servers_txt'] = 'Web Sunucuları'; +$wb['web_servers_placeholder'] = 'Web Sunucularını Seçin'; +$wb['no_web_server_error'] = 'En az bir web sunucusu seçilmelidir.'; +$wb['web_servers_used'] = 'Bu müşteriden kaldırmaya çalıştığınız sunucu bir web sunucusu olarak kullanılıyor. Kaldırmadan önce bu sunucunun bu müşteri tarafından kullanılmadığından emin olun.'; +$wb['dns_servers_txt'] = 'DNS Sunucular'; +$wb['dns_servers_placeholder'] = 'DNS Sunucuları Seçin'; +$wb['no_dns_server_error'] = 'En az bir DNS sunucusu seçilmelidir.'; +$wb['dns_servers_used'] = 'Bu müşteriden kaldırmaya çalıştığınız sunucu bir DNS sunucusu olarak kullanılıyor. Kaldırmadan önce bu sunucunun bu müşteri tarafından kullanılmadığından emin olun'; +$wb['db_servers_txt'] = 'Veritabanı Sunucuları'; +$wb['db_servers_placeholder'] = 'Veritabanı Sunucularını Seçin'; +$wb['no_db_server_error'] = 'En az bir veritabanı sunucusu seçilmelidir.'; +$wb['db_servers_used'] = 'Bu müşteriden kaldırmaya çalıştığınız sunucu bir veritabanı sunucusu olarak kullanılıyor. Kaldırmadan önce bu sunucunun bu müşteri tarafından kullanılmadığından emin olun.'; +$wb['mail_servers_txt'] = 'E-posta Sunucuları'; +$wb['mail_servers_placeholder'] = 'E-posta Sunucularını Seçin'; +$wb['no_mail_server_error'] = 'En az bir e-posta sunucusu seçilmelidir.'; +$wb['mail_servers_used'] = 'Bu müşteriden kaldırmaya çalıştığınız sunucu bir e-posta sunucusu olarak kullanılıyor. Kaldırmadan önce bu sunucunun bu müşteri tarafından kullanılmadığından emin olun.'; $wb['customer_no_template_txt'] = 'Müşteri No Kalıbı'; $wb['customer_no_template_error_regex_txt'] = 'Müşteri no kalıbında geçersiz karakterler var'; $wb['customer_no_start_txt'] = 'Müşteri No Başlangıç Değeri'; $wb['customer_no_counter_txt'] = 'Müşteri No Sayacı'; + +$wb['xmpp_limits_txt'] = 'XMPP Sınırları'; +$wb['xmpp_servers_txt'] = 'XMPP Sunucular'; +$wb['xmpp_servers_placeholder'] = 'XMPP Sunucuları Seçin'; +$wb['no_xmpp_server_error'] = 'En az bir XMPP sunucusu seçilmelidir.'; +$wb['xmpp_servers_used'] = 'Bu müşteriden kaldırmaya çalıştığınız sunucu bir XMPP sunucusu olarak kullanılıyor. Kaldırmadan önce bu sunucunun bu müşteri tarafından kullanılmadığından emin olun.'; +$wb['limit_xmpp_domain_error_notint'] = 'XMPP etki alanı sınırı bir sayı olmalıdır.'; +$wb['limit_xmpp_user_error_notint'] = 'XMPP kullanıcı sınırı bir sayı olmalıdır.'; +$wb['limit_xmpp_domain_txt'] = 'En Fazla XMPP Etki Alanı Sayısı'; +$wb['limit_xmpp_user_txt'] = 'En Fazla XMPP Hesabı Sayısı'; +$wb['limit_xmpp_muc_txt'] = 'Çok Kullanıcılı Sohbet (ÇKS) Kullanılsın'; +$wb['limit_xmpp_pastebin_txt'] = 'ÇKS için Pastebin Kullanılsın'; +$wb['limit_xmpp_httparchive_txt'] = 'ÇKS için HTTP Arşivi Kullanılsın'; +$wb['limit_xmpp_anon_txt'] = 'Adsız Sunucu Kullanılsın'; +$wb['limit_xmpp_vjud_txt'] = 'VJUD Kullanıcı Klasörü Kullanılsın'; +$wb['limit_xmpp_proxy_txt'] = 'Bytestream Vekil Sunucusu Kullanılsın'; +$wb['limit_xmpp_status_txt'] = 'Durum Sunucusu Kullanılsın'; $wb['added_by_txt'] = 'Ekleyen'; $wb['added_date_txt'] = 'Eklendiği Tarih'; -$wb['limit_domainmodule_error_notint'] = 'Alan adı modülü sınırı bir sayı olmalıdır.'; -$wb['limit_domainmodule_txt'] = 'Alan Adı Modülü Sınırı'; +$wb['limit_domainmodule_error_notint'] = 'Etki alanı modülü sınırı bir sayı olmalıdır.'; +$wb['limit_domainmodule_txt'] = 'Etki Alanı Modülü Sınırı'; $wb['client_limits_txt'] = 'Müşteri Sınırları'; -$wb['err_msg_master_tpl_set'] = '\\"Özel\\" kalıptan başka bir ana kalıp seçilirse, tüm özel sınırlama ayarları yoksayılır.'; -$wb['contact_firstname_txt'] = 'Contact firstname'; -$wb['password_click_to_set_txt'] = 'Click to set'; -$wb['limit_database_user_txt'] = 'Max. Database users'; -$wb['limit_backup_txt'] = 'Backupfunction available'; -$wb['limit_ssl_letsencrypt_txt'] = 'Let\'s Encrypt available'; -$wb['limit_client_error_positive_or_unlimited'] = 'The number of clients must be > 0 or -1 (unlimited)'; -$wb['web_servers_txt'] = 'Webservers'; -$wb['web_servers_placeholder'] = 'Select Webservers'; -$wb['no_web_server_error'] = 'At least one webserver must be selected.'; -$wb['web_servers_used'] = 'The server you are trying to remove from this client is used as a webserver. Be sure that this server is not used by this client before to remove it.'; -$wb['dns_servers_txt'] = 'DNS Server'; -$wb['dns_servers_placeholder'] = 'Select DNS Servers'; -$wb['no_dns_server_error'] = 'At least one DNS server must be selected.'; -$wb['dns_servers_used'] = 'The server you are trying to remove from this client is used as a DNS server. Be sure that this server is not used by this client before to remove it.'; -$wb['db_servers_txt'] = 'Database Server'; -$wb['db_servers_placeholder'] = 'Select Database Servers'; -$wb['no_db_server_error'] = 'At least one Database server must be selected.'; -$wb['db_servers_used'] = 'The server you are trying to remove from this client is used as a Database server. Be sure that this server is not used by this client before to remove it.'; -$wb['mail_servers_txt'] = 'Mailservers'; -$wb['mail_servers_placeholder'] = 'Select Mailservers'; -$wb['no_mail_server_error'] = 'At least one Mailserver must be selected.'; -$wb['mail_servers_used'] = 'The server you are trying to remove from this client is used as a Mailserver. Be sure that this server is not used by this client before to remove it.'; -$wb['xmpp_limits_txt'] = 'XMPP Limits'; -$wb['xmpp_servers_txt'] = 'XMPP Servers'; -$wb['xmpp_servers_placeholder'] = 'Select XMPP Servers'; -$wb['no_xmpp_server_error'] = 'At least one XMPP Server must be selected.'; -$wb['xmpp_servers_used'] = 'The server you are trying to remove from this client is used as a XMPP Server. Be sure that this server is not used by this client before you remove it.'; -$wb['limit_xmpp_domain_error_notint'] = 'The XMPP domain limit must be a number.'; -$wb['limit_xmpp_user_error_notint'] = 'The XMPP user limit must be a number.'; -$wb['limit_xmpp_domain_txt'] = 'Max. number of XMPP domains'; -$wb['limit_xmpp_user_txt'] = 'Max. number of XMPP accounts'; -$wb['limit_xmpp_muc_txt'] = 'Multiuser chat available'; -$wb['limit_xmpp_pastebin_txt'] = 'Pastebin for MUC available'; -$wb['limit_xmpp_httparchive_txt'] = 'HTTP archive for MUC available'; -$wb['limit_xmpp_anon_txt'] = 'Anonymous host available'; -$wb['limit_xmpp_vjud_txt'] = 'VJUD user directory available'; -$wb['limit_xmpp_proxy_txt'] = 'Bytestream proxy available'; -$wb['limit_xmpp_status_txt'] = 'Status host available'; -$wb['invalid_vat_id'] = 'The VAT ID is invalid.'; -$wb['btn_save_txt'] = 'Save'; -$wb['btn_cancel_txt'] = 'Cancel'; -$wb['email_error_empty'] = 'Email is empty'; -$wb['limit_directive_snippets_txt'] = 'Show web server config selection'; -$wb['limit_database_user_error_notint'] = 'The database user limit must be a number.'; -$wb['limit_database_quota_txt'] = 'Database quota'; -$wb['limit_database_quota_error_notint'] = 'The database quota limit must be a number.'; -$wb['Limits'] = 'Limits'; +$wb['err_msg_master_tpl_set'] = '"Özel" kalıptan başka bir ana kalıp seçilirse, tüm özel sınırlama ayarları yok sayılır.'; +$wb['invalid_vat_id'] = 'Vergi numarası geçersiz.'; +$wb['btn_save_txt'] = 'Kaydet'; +$wb['btn_cancel_txt'] = 'İptal'; +$wb['email_error_empty'] = 'E-posta boş olamaz.'; +$wb['limit_directive_snippets_txt'] = 'Web Sunucu Yapılandırma Seçimi Görüntülensin'; +$wb['limit_database_user_txt'] = 'En Fazla Veritabanı Kullanıcısı Sayısı'; +$wb['limit_database_user_error_notint'] = 'Veritabanı kullanıcı sınırı bir sayı olmalıdır.'; +$wb['limit_database_quota_txt'] = 'Veritabanı Kotası'; +$wb['limit_database_quota_error_notint'] = 'Veritabanı kotası sınırı bir sayı olmalıdır.'; +$wb['Limits'] = 'Sınırlar'; ?> diff --git a/interface/web/client/lib/lang/tr_resellers_list.lng b/interface/web/client/lib/lang/tr_resellers_list.lng index 2cb388b96..62116103c 100644 --- a/interface/web/client/lib/lang/tr_resellers_list.lng +++ b/interface/web/client/lib/lang/tr_resellers_list.lng @@ -1,7 +1,7 @@ diff --git a/interface/web/dashboard/lib/lang/br_dashlet_customer.lng b/interface/web/dashboard/lib/lang/br_dashlet_customer.lng index 5e73e41ff..8c110cc29 100644 --- a/interface/web/dashboard/lib/lang/br_dashlet_customer.lng +++ b/interface/web/dashboard/lib/lang/br_dashlet_customer.lng @@ -1,4 +1,4 @@ diff --git a/interface/web/dashboard/lib/lang/br_dashlet_databasequota.lng b/interface/web/dashboard/lib/lang/br_dashlet_databasequota.lng index de92eef6b..9279d2230 100644 --- a/interface/web/dashboard/lib/lang/br_dashlet_databasequota.lng +++ b/interface/web/dashboard/lib/lang/br_dashlet_databasequota.lng @@ -1,6 +1,6 @@ diff --git a/interface/web/dashboard/lib/lang/br_dashlet_invoices.lng b/interface/web/dashboard/lib/lang/br_dashlet_invoices.lng index 2a5a0d9bc..545c6994a 100644 --- a/interface/web/dashboard/lib/lang/br_dashlet_invoices.lng +++ b/interface/web/dashboard/lib/lang/br_dashlet_invoices.lng @@ -1,18 +1,18 @@ diff --git a/interface/web/dashboard/lib/lang/br_dashlet_limits.lng b/interface/web/dashboard/lib/lang/br_dashlet_limits.lng index 04c59b883..72558f579 100644 --- a/interface/web/dashboard/lib/lang/br_dashlet_limits.lng +++ b/interface/web/dashboard/lib/lang/br_dashlet_limits.lng @@ -1,34 +1,34 @@ diff --git a/interface/web/dashboard/lib/lang/br_dashlet_mailquota.lng b/interface/web/dashboard/lib/lang/br_dashlet_mailquota.lng index 8aa300dff..d164a3566 100644 --- a/interface/web/dashboard/lib/lang/br_dashlet_mailquota.lng +++ b/interface/web/dashboard/lib/lang/br_dashlet_mailquota.lng @@ -1,6 +1,6 @@ diff --git a/interface/web/dashboard/lib/lang/br_dashlet_products.lng b/interface/web/dashboard/lib/lang/br_dashlet_products.lng index 129b14480..c750052ad 100644 --- a/interface/web/dashboard/lib/lang/br_dashlet_products.lng +++ b/interface/web/dashboard/lib/lang/br_dashlet_products.lng @@ -1,8 +1,8 @@ diff --git a/interface/web/dashboard/lib/lang/br_dashlet_shop.lng b/interface/web/dashboard/lib/lang/br_dashlet_shop.lng index 48847abff..9fd37d525 100644 --- a/interface/web/dashboard/lib/lang/br_dashlet_shop.lng +++ b/interface/web/dashboard/lib/lang/br_dashlet_shop.lng @@ -1,8 +1,8 @@ diff --git a/interface/web/dashboard/lib/lang/tr_dashlet_customer.lng b/interface/web/dashboard/lib/lang/tr_dashlet_customer.lng index 4fe6cb0ef..4902a83a0 100644 --- a/interface/web/dashboard/lib/lang/tr_dashlet_customer.lng +++ b/interface/web/dashboard/lib/lang/tr_dashlet_customer.lng @@ -1,4 +1,4 @@ diff --git a/interface/web/dashboard/lib/lang/tr_dashlet_databasequota.lng b/interface/web/dashboard/lib/lang/tr_dashlet_databasequota.lng index bd2402dbf..d8e8dfb89 100644 --- a/interface/web/dashboard/lib/lang/tr_dashlet_databasequota.lng +++ b/interface/web/dashboard/lib/lang/tr_dashlet_databasequota.lng @@ -1,7 +1,7 @@ diff --git a/interface/web/dashboard/lib/lang/tr_dashlet_donate.lng b/interface/web/dashboard/lib/lang/tr_dashlet_donate.lng index e41c374cd..7324cb840 100644 --- a/interface/web/dashboard/lib/lang/tr_dashlet_donate.lng +++ b/interface/web/dashboard/lib/lang/tr_dashlet_donate.lng @@ -1,7 +1,7 @@ diff --git a/interface/web/dashboard/lib/lang/tr_dashlet_invoice_client_settings.lng b/interface/web/dashboard/lib/lang/tr_dashlet_invoice_client_settings.lng index 8cae3dfb4..b6b47cae9 100644 --- a/interface/web/dashboard/lib/lang/tr_dashlet_invoice_client_settings.lng +++ b/interface/web/dashboard/lib/lang/tr_dashlet_invoice_client_settings.lng @@ -1,4 +1,4 @@ diff --git a/interface/web/dashboard/lib/lang/tr_dashlet_invoices.lng b/interface/web/dashboard/lib/lang/tr_dashlet_invoices.lng index a680daa8f..db2432674 100644 --- a/interface/web/dashboard/lib/lang/tr_dashlet_invoices.lng +++ b/interface/web/dashboard/lib/lang/tr_dashlet_invoices.lng @@ -1,18 +1,18 @@ diff --git a/interface/web/dashboard/lib/lang/tr_dashlet_limits.lng b/interface/web/dashboard/lib/lang/tr_dashlet_limits.lng index a8869328f..9fa1fb5b9 100644 --- a/interface/web/dashboard/lib/lang/tr_dashlet_limits.lng +++ b/interface/web/dashboard/lib/lang/tr_dashlet_limits.lng @@ -2,33 +2,33 @@ $wb['limits_txt'] = 'Hesap Sınırları'; $wb['of_txt'] = '/'; $wb['unlimited_txt'] = 'Sınırsız'; -$wb['limit_maildomain_txt'] = 'E-posta Alan Adı Sayısı'; -$wb['limit_mailmailinglist_txt'] = 'Posta Listesi Sayısı'; -$wb['limit_mailbox_txt'] = 'Posta Kutusu Sayısı'; +$wb['limit_maildomain_txt'] = 'E-posta Etki Alanı Sayısı'; +$wb['limit_mailmailinglist_txt'] = 'E-posta Listesi Sayısı'; +$wb['limit_mailbox_txt'] = 'E-posta Kutusu Sayısı'; $wb['limit_mailalias_txt'] = 'Takma E-posta Sayısı'; -$wb['limit_mailaliasdomain_txt'] = 'Takma Alan Adı Sayısı'; +$wb['limit_mailaliasdomain_txt'] = 'Takma Etki Alanı Sayısı'; $wb['limit_mailforward_txt'] = 'E-posta Yönlendirici Sayısı'; $wb['limit_mailcatchall_txt'] = 'E-posta Tümünü Al Hesabı Sayısı'; $wb['limit_mailrouting_txt'] = 'E-posta Yöneltici Sayısı'; $wb['limit_mailfilter_txt'] = 'E-posta Süzgeci Sayısı'; -$wb['limit_fetchmail_txt'] = 'Posta Alma Hesabı Sayısı'; -$wb['limit_spamfilter_wblist_txt'] = 'Önemsiz Posta Beyaz/Kara Liste Sayısı'; -$wb['limit_spamfilter_user_txt'] = 'Önemsiz Posta Süzgeci Kullanıcı Sayısı'; -$wb['limit_spamfilter_policy_txt'] = 'Önemsiz Posta Kuralı Sayısı'; +$wb['limit_fetchmail_txt'] = 'E-posta Alma Hesabı Sayısı'; +$wb['limit_spamfilter_wblist_txt'] = 'Önemsiz İleti Beyaz/Kara Liste Sayısı'; +$wb['limit_spamfilter_user_txt'] = 'Önemsiz İleti Süzgeci Kullanıcı Sayısı'; +$wb['limit_spamfilter_policy_txt'] = 'Önemsiz İletia Kuralı Sayısı'; $wb['limit_cron_txt'] = 'Zamanlanmış Görev Sayısı'; -$wb['limit_web_domain_txt'] = 'Web Alan Adı Sayısı'; -$wb['limit_web_aliasdomain_txt'] = 'Web Takma Alan Adı Sayısı'; -$wb['limit_web_subdomain_txt'] = 'Web Alt Alan Adı Sayısı'; +$wb['limit_web_domain_txt'] = 'Web Etki Alanı Sayısı'; +$wb['limit_web_aliasdomain_txt'] = 'Web Takma Etki Alanı Sayısı'; +$wb['limit_web_subdomain_txt'] = 'Web Alt Etki Alanı Sayısı'; $wb['limit_ftp_user_txt'] = 'FTP Kullanıcı Sayısı'; $wb['limit_dns_zone_txt'] = 'DNS Bölgesi Sayısı'; -$wb['limit_dns_slave_zone_txt'] = 'İkinci DNS Bölgesi Sayısı'; +$wb['limit_dns_slave_zone_txt'] = 'İkincil DNS Bölgesi Sayısı'; $wb['limit_dns_record_txt'] = 'DNS Kayıtları Sayısı'; $wb['limit_shell_user_txt'] = 'Kabuk Kullanıcısı Sayısı'; $wb['limit_webdav_user_txt'] = 'Webdav Kullanıcı Sayısı'; $wb['limit_client_txt'] = 'Müşteri Sayısı'; $wb['limit_database_txt'] = 'Veritabanı Sayısı'; -$wb['limit_domain_txt'] = 'Alan Adı Sayısı'; -$wb['limit_mailquota_txt'] = 'Assigned mailbox quota'; -$wb['limit_web_quota_txt'] = 'Assigned web quota'; -$wb['limit_database_quota_txt'] = 'Assigned database quota'; +$wb['limit_domain_txt'] = 'Etki Alanı Sayısı'; +$wb['limit_mailquota_txt'] = 'E-posta Kutusu Alanı Kotası'; +$wb['limit_web_quota_txt'] = 'Web Sitesi Alanı Kotası'; +$wb['limit_database_quota_txt'] = 'Veritabanı Alanı Kotası'; ?> diff --git a/interface/web/dashboard/lib/lang/tr_dashlet_mailquota.lng b/interface/web/dashboard/lib/lang/tr_dashlet_mailquota.lng index bee7e8677..67888a818 100644 --- a/interface/web/dashboard/lib/lang/tr_dashlet_mailquota.lng +++ b/interface/web/dashboard/lib/lang/tr_dashlet_mailquota.lng @@ -1,5 +1,5 @@ diff --git a/interface/web/dashboard/lib/lang/tr_dashlet_products.lng b/interface/web/dashboard/lib/lang/tr_dashlet_products.lng index a69b61d2f..11aa2e519 100644 --- a/interface/web/dashboard/lib/lang/tr_dashlet_products.lng +++ b/interface/web/dashboard/lib/lang/tr_dashlet_products.lng @@ -1,9 +1,9 @@ diff --git a/interface/web/dashboard/lib/lang/tr_dashlet_quota.lng b/interface/web/dashboard/lib/lang/tr_dashlet_quota.lng index 5a757be6f..c49fcba52 100644 --- a/interface/web/dashboard/lib/lang/tr_dashlet_quota.lng +++ b/interface/web/dashboard/lib/lang/tr_dashlet_quota.lng @@ -1,8 +1,8 @@ diff --git a/interface/web/dashboard/lib/lang/tr_dashlet_shop.lng b/interface/web/dashboard/lib/lang/tr_dashlet_shop.lng index 1e0b5361d..59e629889 100644 --- a/interface/web/dashboard/lib/lang/tr_dashlet_shop.lng +++ b/interface/web/dashboard/lib/lang/tr_dashlet_shop.lng @@ -1,8 +1,8 @@ diff --git a/interface/web/dns/lib/lang/br.lng b/interface/web/dns/lib/lang/br.lng index b45d1575a..9228373fd 100644 --- a/interface/web/dns/lib/lang/br.lng +++ b/interface/web/dns/lib/lang/br.lng @@ -1,4 +1,5 @@ diff --git a/interface/web/dns/lib/lang/br_dns_a.lng b/interface/web/dns/lib/lang/br_dns_a.lng index 93704528e..f96cf551e 100644 --- a/interface/web/dns/lib/lang/br_dns_a.lng +++ b/interface/web/dns/lib/lang/br_dns_a.lng @@ -1,17 +1,17 @@ diff --git a/interface/web/dns/lib/lang/br_dns_a_list.lng b/interface/web/dns/lib/lang/br_dns_a_list.lng index 0abaf5493..6387c14cb 100644 --- a/interface/web/dns/lib/lang/br_dns_a_list.lng +++ b/interface/web/dns/lib/lang/br_dns_a_list.lng @@ -1,14 +1,14 @@ diff --git a/interface/web/dns/lib/lang/br_dns_alias.lng b/interface/web/dns/lib/lang/br_dns_alias.lng index b303a662b..46821ee1a 100644 --- a/interface/web/dns/lib/lang/br_dns_alias.lng +++ b/interface/web/dns/lib/lang/br_dns_alias.lng @@ -1,16 +1,16 @@ diff --git a/interface/web/dns/lib/lang/br_dns_caa.lng b/interface/web/dns/lib/lang/br_dns_caa.lng index 973a97ceb..16bf26786 100644 --- a/interface/web/dns/lib/lang/br_dns_caa.lng +++ b/interface/web/dns/lib/lang/br_dns_caa.lng @@ -1,19 +1,19 @@ diff --git a/interface/web/dns/lib/lang/br_dns_cname.lng b/interface/web/dns/lib/lang/br_dns_cname.lng index cbba03cda..c4fb0df26 100644 --- a/interface/web/dns/lib/lang/br_dns_cname.lng +++ b/interface/web/dns/lib/lang/br_dns_cname.lng @@ -1,17 +1,17 @@ diff --git a/interface/web/dns/lib/lang/br_dns_dkim.lng b/interface/web/dns/lib/lang/br_dns_dkim.lng index 1ec851a21..a24976194 100644 --- a/interface/web/dns/lib/lang/br_dns_dkim.lng +++ b/interface/web/dns/lib/lang/br_dns_dkim.lng @@ -1,13 +1,13 @@ diff --git a/interface/web/dns/lib/lang/br_dns_dmarc.lng b/interface/web/dns/lib/lang/br_dns_dmarc.lng index 8bb35318f..bacd3af25 100644 --- a/interface/web/dns/lib/lang/br_dns_dmarc.lng +++ b/interface/web/dns/lib/lang/br_dns_dmarc.lng @@ -1,50 +1,50 @@ diff --git a/interface/web/dns/lib/lang/br_dns_ds.lng b/interface/web/dns/lib/lang/br_dns_ds.lng index 38b2183ea..843338a94 100644 --- a/interface/web/dns/lib/lang/br_dns_ds.lng +++ b/interface/web/dns/lib/lang/br_dns_ds.lng @@ -1,17 +1,18 @@ diff --git a/interface/web/dns/lib/lang/br_dns_hinfo.lng b/interface/web/dns/lib/lang/br_dns_hinfo.lng index bf7b7f33d..e7bdfa2f4 100644 --- a/interface/web/dns/lib/lang/br_dns_hinfo.lng +++ b/interface/web/dns/lib/lang/br_dns_hinfo.lng @@ -1,16 +1,16 @@ diff --git a/interface/web/dns/lib/lang/br_dns_import.lng b/interface/web/dns/lib/lang/br_dns_import.lng index e26b20a3f..ffcef7d74 100644 --- a/interface/web/dns/lib/lang/br_dns_import.lng +++ b/interface/web/dns/lib/lang/br_dns_import.lng @@ -1,16 +1,16 @@ diff --git a/interface/web/dns/lib/lang/br_dns_loc.lng b/interface/web/dns/lib/lang/br_dns_loc.lng index 838fdcf12..f84c2af03 100644 --- a/interface/web/dns/lib/lang/br_dns_loc.lng +++ b/interface/web/dns/lib/lang/br_dns_loc.lng @@ -1,16 +1,16 @@ diff --git a/interface/web/dns/lib/lang/br_dns_mx.lng b/interface/web/dns/lib/lang/br_dns_mx.lng index 30116f16b..45b721c1a 100644 --- a/interface/web/dns/lib/lang/br_dns_mx.lng +++ b/interface/web/dns/lib/lang/br_dns_mx.lng @@ -1,18 +1,18 @@ diff --git a/interface/web/dns/lib/lang/br_dns_ns.lng b/interface/web/dns/lib/lang/br_dns_ns.lng index 5b3b03a80..d83d0f7b8 100644 --- a/interface/web/dns/lib/lang/br_dns_ns.lng +++ b/interface/web/dns/lib/lang/br_dns_ns.lng @@ -3,14 +3,14 @@ $wb['server_id_txt'] = 'Servidor'; $wb['zone_txt'] = 'Zona'; $wb['name_txt'] = 'Zona'; $wb['type_txt'] = 'Tipo'; -$wb['data_txt'] = 'Servidor de nomes'; +$wb['data_txt'] = 'Nome do servidor'; $wb['ttl_txt'] = 'TTL'; $wb['active_txt'] = 'Ativo'; -$wb['limit_dns_record_txt'] = 'O limite de zonas dns para esta conta foi alcançado.'; -$wb['no_zone_perm'] = 'Você não tem permissão para adicionar registros a esta zona dns.'; -$wb['name_error_empty'] = 'Zona está em branco.'; -$wb['name_error_regex'] = 'Zona inválida.'; -$wb['data_error_empty'] = 'Nome está em branco.'; -$wb['data_error_regex'] = 'Nome é inválido.'; -$wb['ttl_range_error'] = 'O ttl mínimo são 60 segundos.'; +$wb['limit_dns_record_txt'] = 'O limite de registros dns para esta conta foi alcançado.'; +$wb['no_zone_perm'] = 'Você não tem permissão para adicionar registros dns nesta zona.'; +$wb['name_error_empty'] = 'A zona está em branco.'; +$wb['name_error_regex'] = 'A zona possui formato inválido.'; +$wb['data_error_empty'] = 'Nome do servidor está em branco.'; +$wb['data_error_regex'] = 'Nome do servidor possui formato inválido.'; +$wb['ttl_range_error'] = 'O TTL mínimo são 60 segundos.'; ?> diff --git a/interface/web/dns/lib/lang/br_dns_ptr.lng b/interface/web/dns/lib/lang/br_dns_ptr.lng index cfb7eddd7..b6214a62e 100644 --- a/interface/web/dns/lib/lang/br_dns_ptr.lng +++ b/interface/web/dns/lib/lang/br_dns_ptr.lng @@ -3,14 +3,14 @@ $wb['server_id_txt'] = 'Servidor'; $wb['zone_txt'] = 'Zona'; $wb['name_txt'] = 'Nome'; $wb['type_txt'] = 'Tipo'; -$wb['data_txt'] = 'Nome reverso'; +$wb['data_txt'] = 'Nome canônico para o nome do host'; $wb['ttl_txt'] = 'TTL'; $wb['active_txt'] = 'Ativo'; -$wb['limit_dns_record_txt'] = 'O limite de zonas dns para esta conta foi alcançado.'; -$wb['no_zone_perm'] = 'Você não tem permissão para adicionar registros a esta zona dns.'; +$wb['limit_dns_record_txt'] = 'O limite de registros dns para esta conta foi alcançado.'; +$wb['no_zone_perm'] = 'Você não tem permissão para adicionar registros dns nesta zona.'; $wb['name_error_empty'] = 'O nome está em branco.'; -$wb['name_error_regex'] = 'O nome é inválido.'; -$wb['data_error_empty'] = 'Endereço IP está em branco.'; -$wb['data_error_regex'] = 'Endereço IP é inválido.'; -$wb['ttl_range_error'] = 'O ttl mínimo são 60 segundos.'; +$wb['name_error_regex'] = 'O nome possui formato inválido.'; +$wb['data_error_empty'] = 'O nome canônico está em branco.'; +$wb['data_error_regex'] = 'O nome canônico possui formato inválido.'; +$wb['ttl_range_error'] = 'O TTL mínimo são 60 segundos.'; ?> diff --git a/interface/web/dns/lib/lang/br_dns_rp.lng b/interface/web/dns/lib/lang/br_dns_rp.lng index d8f1cad2a..4f782fb4a 100644 --- a/interface/web/dns/lib/lang/br_dns_rp.lng +++ b/interface/web/dns/lib/lang/br_dns_rp.lng @@ -1,16 +1,16 @@ diff --git a/interface/web/dns/lib/lang/br_dns_slave.lng b/interface/web/dns/lib/lang/br_dns_slave.lng index 336164442..a71e64c4f 100644 --- a/interface/web/dns/lib/lang/br_dns_slave.lng +++ b/interface/web/dns/lib/lang/br_dns_slave.lng @@ -1,17 +1,17 @@ Endereço(s) IP(s) (lista de endereços, separados por vírgula)'; $wb['server_id_error_empty'] = 'Nenhum servidor selecionado.'; $wb['origin_error_empty'] = 'Zona está em branco.'; -$wb['origin_error_unique'] = 'Já existe um registro igual para esta zona.'; -$wb['origin_error_regex'] = 'Zona inválida.'; -$wb['ns_error_regex'] = 'Registro NS é inválido.'; +$wb['origin_error_unique'] = 'Já existe este registro dns nesta zona.'; +$wb['origin_error_regex'] = 'Zona possui um formato inválido.'; +$wb['ns_error_regex'] = 'O NS possui formato inválido.'; $wb['eg_domain_tld'] = 'ex.: dominio.com.br.'; -$wb['ipv4_form_txt'] = 'Separar múltiplos endereços IP por vírgulas'; -$wb['secondary_zone_txt'] = 'Zona dns secundária'; +$wb['ipv4_form_txt'] = 'Separar múltiplos IPs com vírgulas.'; ?> diff --git a/interface/web/dns/lib/lang/br_dns_slave_admin_list.lng b/interface/web/dns/lib/lang/br_dns_slave_admin_list.lng index b69147104..9b4c7e07e 100644 --- a/interface/web/dns/lib/lang/br_dns_slave_admin_list.lng +++ b/interface/web/dns/lib/lang/br_dns_slave_admin_list.lng @@ -1,10 +1,10 @@ diff --git a/interface/web/dns/lib/lang/br_dns_slave_list.lng b/interface/web/dns/lib/lang/br_dns_slave_list.lng index 5ff54311a..adf14dfdc 100644 --- a/interface/web/dns/lib/lang/br_dns_slave_list.lng +++ b/interface/web/dns/lib/lang/br_dns_slave_list.lng @@ -1,9 +1,9 @@ diff --git a/interface/web/dns/lib/lang/br_dns_soa.lng b/interface/web/dns/lib/lang/br_dns_soa.lng index fcad62b44..f5385c470 100644 --- a/interface/web/dns/lib/lang/br_dns_soa.lng +++ b/interface/web/dns/lib/lang/br_dns_soa.lng @@ -2,43 +2,43 @@ $wb['server_id_txt'] = 'Servidor'; $wb['origin_txt'] = 'Zona (SOA)'; $wb['ns_txt'] = 'NS'; -$wb['mbox_txt'] = 'e-mail'; +$wb['mbox_txt'] = 'e-Mail'; $wb['serial_txt'] = 'Serial'; $wb['refresh_txt'] = 'Atualizar'; $wb['retry_txt'] = 'Repetir'; $wb['expire_txt'] = 'Expirar'; -$wb['minimum_txt'] = 'Minímo'; +$wb['minimum_txt'] = 'Mínimo'; $wb['ttl_txt'] = 'TTL'; -$wb['xfer_txt'] = 'Permitir transferências de zona para estes IPs (IPs separados por vírgula).'; +$wb['xfer_txt'] = 'Permitir transferências de zonas para
Endereço(s) IP(s) (lista de endereços, separados por vírgula)'; $wb['active_txt'] = 'Ativo'; +$wb['dnssec_info_txt'] = 'O campo DS DNSSEC para o registro'; +$wb['dnssec_wanted_txt'] = 'Zona assinada (DNSSEC)'; +$wb['dnssec_wanted_info'] = 'Ao desativar o DNSSEC as chaves não serão excluídas se o DNSSEC tiver sido ativado anteriormente e as chaves já tiverem sido geradas, mas a zona não será mais entregue no formato assinado posteriormente. Se você usa o PowerDNS, as chaves serão excluídas!'; $wb['limit_dns_zone_txt'] = 'O limite de zonas dns para esta conta foi alcançado.'; $wb['client_txt'] = 'Cliente'; -$wb['no_zone_perm'] = 'Você não tem permissão para adicionar registros a esta zona dns.'; -$wb['server_id_error_empty'] = 'Servidor não selecionado.'; +$wb['no_zone_perm'] = 'Você não tem permissão para adicionar registros dns nesta zona.'; +$wb['server_id_error_empty'] = 'Nenhum servidor selecionado'; $wb['origin_error_empty'] = 'Zona está em branco.'; -$wb['origin_error_unique'] = 'Este registro já existe nesta zona.'; -$wb['origin_error_regex'] = 'Zona inválida.'; -$wb['ns_error_regex'] = 'NS é inválido.'; -$wb['mbox_error_empty'] = 'Endereço de e-mail está em branco.'; -$wb['mbox_error_regex'] = 'Endereço de e-mail é inválido.'; +$wb['origin_error_unique'] = 'Já existe este registro dns nesta zona.'; +$wb['origin_error_regex'] = 'A zona dns possui formato inválido.'; +$wb['ns_error_regex'] = 'O registro NS possui formato inválido.'; +$wb['mbox_error_empty'] = 'O e-mail está em branco.'; +$wb['mbox_error_regex'] = 'O e-mail possui formato inválido.'; $wb['also_notify_txt'] = 'Também notificar'; -$wb['also_notify_error_regex'] = 'Por favor, insira um endereço IP.'; +$wb['also_notify_error_regex'] = 'Também notificar: Por favor, use um endereço IP.'; +$wb['xfer_error_regex'] = 'Xfer: Por favor use um ou mais endereço(s) IP, separado por vírgula ou use a palavra reservada: any'; $wb['update_acl_txt'] = 'Atualizar ACL'; $wb['seconds_txt'] = 'Segundos'; $wb['eg_domain_tld'] = 'ex.: dominio.com.br'; $wb['eg_ns1_domain_tld'] = 'ex.: ns1.dominio.com.br'; -$wb['eg_webmaster_domain_tld'] = 'ex.: postmaster@dominio.com.br'; -$wb['The Domain can not be changed. Please ask your Administrator if you want to change the domain name.'] = 'O domínio não pode ser modificado. Por favor, entre em contato com o administrador do sistema se você deseja modificar este domínio.'; -$wb['refresh_range_error'] = 'Tempo mínimo de atualizações (refresh) são 60 segundos.'; -$wb['retry_range_error'] = 'Tempo mínimo de repetições (retry) são 60 segundos.'; -$wb['expire_range_error'] = 'Tempo mínimo para expirar (expire) são 60 segundos.'; -$wb['minimum_range_error'] = 'Tempo mínimo (minimum) são 60 segundos.'; -$wb['ttl_range_error'] = 'O ttl mínimo são 60 segundos.'; -$wb['xfer_error_regex'] = 'Também notificar: Por favor, insira um endereço IP.'; -$wb['dnssec_info_txt'] = 'Registro para DNSSEC (DS-Data)'; -$wb['dnssec_wanted_txt'] = 'Zona assinada (DNSSEC)'; -$wb['dnssec_wanted_info'] = 'Quando desabilitar o DNSSEC as chaves não são eliminadas mas a zona não será disponibilizada assinada. Se você usar o PowerDNS, as chaves serão excluídas!'; -$wb['error_not_allowed_server_id'] = 'O servidor selecionado não tem permissão para esta conta.'; -$wb['soa_cannot_be_changed_txt'] = 'A zona SOA não pode ser modificada. Entre em contato com o administrador para alterar esta zona.'; +$wb['eg_webmaster_domain_tld'] = 'ex.: hostmaster@dominio.com.br'; +$wb['The Domain can not be changed. Please ask your Administrator if you want to change the domain name.'] = 'O domínio não pode ser alterado. Por favor contate o administrador se deseja alterar o domínio.'; +$wb['refresh_range_error'] = 'Intervalo mínimo entre as atualizações são 60 segundos.'; +$wb['retry_range_error'] = 'Intervalo mínimo entre as repetições são 60 segundos.'; +$wb['expire_range_error'] = 'Intervalo mínimo para expirar são 60 segundos.'; +$wb['minimum_range_error'] = 'Intervalo mínimo são 60 segundos.'; +$wb['ttl_range_error'] = 'Intervalo mínimo do TTL são 60 segundos.'; +$wb['error_not_allowed_server_id'] = 'O servidor selecionado não é permitido para esta conta.'; +$wb['soa_cannot_be_changed_txt'] = 'A zona (SOA) não pode ser alterada. Por favor, contate o administrador se deseja alterar esta zona.'; $wb['configuration_error_txt'] = 'ERRO DE CONFIGURAÇÃO'; ?> diff --git a/interface/web/dns/lib/lang/br_dns_soa_admin_list.lng b/interface/web/dns/lib/lang/br_dns_soa_admin_list.lng index dd3169a83..26e8062d5 100644 --- a/interface/web/dns/lib/lang/br_dns_soa_admin_list.lng +++ b/interface/web/dns/lib/lang/br_dns_soa_admin_list.lng @@ -1,11 +1,12 @@ diff --git a/interface/web/dns/lib/lang/br_dns_soa_list.lng b/interface/web/dns/lib/lang/br_dns_soa_list.lng index ddb24697e..969df1d2a 100644 --- a/interface/web/dns/lib/lang/br_dns_soa_list.lng +++ b/interface/web/dns/lib/lang/br_dns_soa_list.lng @@ -1,11 +1,10 @@ diff --git a/interface/web/dns/lib/lang/br_dns_spf.lng b/interface/web/dns/lib/lang/br_dns_spf.lng index 0c56cd32e..739e59cf4 100644 --- a/interface/web/dns/lib/lang/br_dns_spf.lng +++ b/interface/web/dns/lib/lang/br_dns_spf.lng @@ -1,25 +1,25 @@ diff --git a/interface/web/dns/lib/lang/br_dns_srv.lng b/interface/web/dns/lib/lang/br_dns_srv.lng index fefec736e..97d260489 100644 --- a/interface/web/dns/lib/lang/br_dns_srv.lng +++ b/interface/web/dns/lib/lang/br_dns_srv.lng @@ -1,20 +1,20 @@ diff --git a/interface/web/dns/lib/lang/br_dns_template.lng b/interface/web/dns/lib/lang/br_dns_template.lng index 8b099ceb1..81a8f190e 100644 --- a/interface/web/dns/lib/lang/br_dns_template.lng +++ b/interface/web/dns/lib/lang/br_dns_template.lng @@ -1,7 +1,7 @@ diff --git a/interface/web/dns/lib/lang/br_dns_template_list.lng b/interface/web/dns/lib/lang/br_dns_template_list.lng index f6455314d..8ec480d72 100644 --- a/interface/web/dns/lib/lang/br_dns_template_list.lng +++ b/interface/web/dns/lib/lang/br_dns_template_list.lng @@ -1,6 +1,6 @@ diff --git a/interface/web/dns/lib/lang/br_dns_tlsa.lng b/interface/web/dns/lib/lang/br_dns_tlsa.lng index 5e1bf2256..4037ebe59 100644 --- a/interface/web/dns/lib/lang/br_dns_tlsa.lng +++ b/interface/web/dns/lib/lang/br_dns_tlsa.lng @@ -1,16 +1,16 @@ diff --git a/interface/web/dns/lib/lang/br_dns_txt.lng b/interface/web/dns/lib/lang/br_dns_txt.lng index 356bbfa5f..641cb9f2e 100644 --- a/interface/web/dns/lib/lang/br_dns_txt.lng +++ b/interface/web/dns/lib/lang/br_dns_txt.lng @@ -1,19 +1,19 @@ diff --git a/interface/web/dns/lib/lang/br_dns_wizard.lng b/interface/web/dns/lib/lang/br_dns_wizard.lng index 5e20f0559..d132d4646 100644 --- a/interface/web/dns/lib/lang/br_dns_wizard.lng +++ b/interface/web/dns/lib/lang/br_dns_wizard.lng @@ -1,45 +1,45 @@ diff --git a/interface/web/dns/lib/lang/tr.lng b/interface/web/dns/lib/lang/tr.lng index a101cf7b2..a291a5af0 100644 --- a/interface/web/dns/lib/lang/tr.lng +++ b/interface/web/dns/lib/lang/tr.lng @@ -1,4 +1,5 @@ diff --git a/interface/web/dns/lib/lang/tr_dns_a.lng b/interface/web/dns/lib/lang/tr_dns_a.lng index 0cf1414fd..905ff0474 100644 --- a/interface/web/dns/lib/lang/tr_dns_a.lng +++ b/interface/web/dns/lib/lang/tr_dns_a.lng @@ -2,16 +2,16 @@ $wb['server_id_txt'] = 'Sunucu'; $wb['zone_txt'] = 'Bölge'; $wb['name_txt'] = 'Sunucu Adı'; -$wb['type_txt'] = 'Tip'; +$wb['type_txt'] = 'Tür'; $wb['data_txt'] = 'IP Adresi'; $wb['ttl_txt'] = 'TTL Süresi'; $wb['active_txt'] = 'Etkin'; $wb['limit_dns_record_txt'] = 'Hesabınıza ekleyebileceğiniz en fazla DNS kaydı sınırına ulaştınız.'; -$wb['no_zone_perm'] = 'Bu DNS bölgesi kaydını ekleme izniniz yok.'; +$wb['no_zone_perm'] = 'Bu DNS bölgesine kayıt ekleme izniniz yok.'; $wb['name_error_empty'] = 'Sunucu adı boş olamaz.'; $wb['name_error_regex'] = 'Sunucu adı biçimi geçersiz.'; $wb['data_error_empty'] = 'IP Adresi boş olamaz'; $wb['data_error_duplicate'] = 'Bu A DNS kaydı zaten var'; $wb['ttl_range_error'] = 'En düşük TTL süresi 60 saniyedir.'; -$wb['ip_error_wrong'] = 'IP-Address format invalid'; +$wb['ip_error_wrong'] = 'IP adresi biçimi geçersiz'; ?> diff --git a/interface/web/dns/lib/lang/tr_dns_a_list.lng b/interface/web/dns/lib/lang/tr_dns_a_list.lng index 129b32fdb..61a4e2a7d 100644 --- a/interface/web/dns/lib/lang/tr_dns_a_list.lng +++ b/interface/web/dns/lib/lang/tr_dns_a_list.lng @@ -7,7 +7,7 @@ $wb['name_txt'] = 'Ad'; $wb['data_txt'] = 'Veri'; $wb['aux_txt'] = 'Öncelik'; $wb['ttl_txt'] = 'TTL Süresi'; -$wb['type_txt'] = 'Tip'; +$wb['type_txt'] = 'Tür'; $wb['add_new_record_txt'] = 'DNS A Kaydı Ekle'; $wb['page_txt'] = 'Sayfa'; $wb['page_of_txt'] = '/'; diff --git a/interface/web/dns/lib/lang/tr_dns_aaaa.lng b/interface/web/dns/lib/lang/tr_dns_aaaa.lng index b0c28aed4..1726f80a8 100644 --- a/interface/web/dns/lib/lang/tr_dns_aaaa.lng +++ b/interface/web/dns/lib/lang/tr_dns_aaaa.lng @@ -2,15 +2,15 @@ $wb['server_id_txt'] = 'Sunucu'; $wb['zone_txt'] = 'Bölge'; $wb['name_txt'] = 'Sunucu Adı'; -$wb['type_txt'] = 'Tip'; +$wb['type_txt'] = 'Tür'; $wb['data_txt'] = 'IPv6 Adresleri'; $wb['ttl_txt'] = 'TTL Süresi'; $wb['active_txt'] = 'Etkin'; $wb['limit_dns_record_txt'] = 'Hesabınıza ekleyebileceğiniz en fazla DNS kaydı sınırına ulaştınız.'; -$wb['no_zone_perm'] = 'Bu DNS bölgesi kaydını ekleme izniniz yok.'; +$wb['no_zone_perm'] = 'Bu DNS bölgesine kayıt ekleme izniniz yok.'; $wb['name_error_empty'] = 'Sunucu adı boş olamaz.'; -$wb['name_error_regex'] = 'Sunucu adı biçimi geçersiz.'; +$wb['name_error_regex'] = 'Sunucu adının biçimi geçersiz.'; $wb['data_error_empty'] = 'IP Adresi boş olamaz'; +$wb['ip_error_wrong'] = 'IP adresinin biçimi geçersiz'; $wb['ttl_range_error'] = 'En düşük TTL süresi 60 saniyedir.'; -$wb['ip_error_wrong'] = 'IP-Address format invalid'; ?> diff --git a/interface/web/dns/lib/lang/tr_dns_alias.lng b/interface/web/dns/lib/lang/tr_dns_alias.lng index 9bd6e72ce..ce78fcf30 100644 --- a/interface/web/dns/lib/lang/tr_dns_alias.lng +++ b/interface/web/dns/lib/lang/tr_dns_alias.lng @@ -2,12 +2,12 @@ $wb['server_id_txt'] = 'Sunucu'; $wb['zone_txt'] = 'Bölge'; $wb['name_txt'] = 'Sunucu Adı'; -$wb['type_txt'] = 'Tip'; +$wb['type_txt'] = 'Tür'; $wb['data_txt'] = 'Hedef Sunucu Adı'; $wb['ttl_txt'] = 'TTL Süresi'; $wb['active_txt'] = 'Etkin'; $wb['limit_dns_record_txt'] = 'Hesabınıza ekleyebileceğiniz en fazla DNS kaydı sınırına ulaştınız.'; -$wb['no_zone_perm'] = 'Bu DNS bölgesi kaydını ekleme izniniz yok.'; +$wb['no_zone_perm'] = 'Bu DNS bölgesine kayıt ekleme izniniz yok.'; $wb['name_error_empty'] = 'Sunucu adı boş olamaz.'; $wb['name_error_regex'] = 'Sunucu adının biçimi geçersiz.'; $wb['data_error_empty'] = 'Hedef sunucu adı boş olamaz'; diff --git a/interface/web/dns/lib/lang/tr_dns_cname.lng b/interface/web/dns/lib/lang/tr_dns_cname.lng index 00366b969..fa9a497e1 100644 --- a/interface/web/dns/lib/lang/tr_dns_cname.lng +++ b/interface/web/dns/lib/lang/tr_dns_cname.lng @@ -2,12 +2,12 @@ $wb['server_id_txt'] = 'Sunucu'; $wb['zone_txt'] = 'Bölge'; $wb['name_txt'] = 'Sunucu Adı'; -$wb['type_txt'] = 'Tip'; +$wb['type_txt'] = 'Tür'; $wb['data_txt'] = 'Hedef Sunucu Adı'; $wb['ttl_txt'] = 'TTL Süresi'; $wb['active_txt'] = 'Etkin'; $wb['limit_dns_record_txt'] = 'Hesabınıza ekleyebileceğiniz en fazla DNS kaydı sınırına ulaştınız.'; -$wb['no_zone_perm'] = 'Bu DNS bölge kaydını ekleme izniniz yok.'; +$wb['no_zone_perm'] = 'Bu DNS bölgesine kayıt ekleme izniniz yok.'; $wb['name_error_empty'] = 'Sunucu adı boş olamaz.'; $wb['name_error_regex'] = 'Sunucu adı biçimi geçersiz.'; $wb['data_error_empty'] = 'Hedef sunucu adı boş olamaz'; diff --git a/interface/web/dns/lib/lang/tr_dns_dkim.lng b/interface/web/dns/lib/lang/tr_dns_dkim.lng index 4d45fb4fe..b7ffb1930 100644 --- a/interface/web/dns/lib/lang/tr_dns_dkim.lng +++ b/interface/web/dns/lib/lang/tr_dns_dkim.lng @@ -1,13 +1,13 @@ diff --git a/interface/web/dns/lib/lang/tr_dns_dmarc.lng b/interface/web/dns/lib/lang/tr_dns_dmarc.lng index cf78bb8ee..6e98e9466 100644 --- a/interface/web/dns/lib/lang/tr_dns_dmarc.lng +++ b/interface/web/dns/lib/lang/tr_dns_dmarc.lng @@ -1,50 +1,50 @@ diff --git a/interface/web/dns/lib/lang/tr_dns_ds.lng b/interface/web/dns/lib/lang/tr_dns_ds.lng index c3622dc5b..4ab7447d0 100644 --- a/interface/web/dns/lib/lang/tr_dns_ds.lng +++ b/interface/web/dns/lib/lang/tr_dns_ds.lng @@ -1,17 +1,18 @@ diff --git a/interface/web/dns/lib/lang/tr_dns_hinfo.lng b/interface/web/dns/lib/lang/tr_dns_hinfo.lng index 9082420e0..c47718c63 100644 --- a/interface/web/dns/lib/lang/tr_dns_hinfo.lng +++ b/interface/web/dns/lib/lang/tr_dns_hinfo.lng @@ -2,12 +2,12 @@ $wb['server_id_txt'] = 'Sunucu'; $wb['zone_txt'] = 'Bölge'; $wb['name_txt'] = 'Sunucu Adı'; -$wb['type_txt'] = 'Tip'; +$wb['type_txt'] = 'Tür'; $wb['data_txt'] = 'Sunucu Bilgisi'; $wb['ttl_txt'] = 'TTL Süresi'; $wb['active_txt'] = 'Etkin'; $wb['limit_dns_record_txt'] = 'Hesabınıza ekleyebileceğiniz en fazla DNS kaydı sınırına ulaştınız.'; -$wb['no_zone_perm'] = 'Bu DNS bölgesi kaydını ekleme izniniz yok.'; +$wb['no_zone_perm'] = 'Bu DNS bölgesine kayıt ekleme izniniz yok.'; $wb['name_error_empty'] = 'Sunucu adı boş olamaz.'; $wb['name_error_regex'] = 'Sunucu adı biçimi geçersiz.'; $wb['data_error_empty'] = 'Sunucu bilgisi boş olamaz'; diff --git a/interface/web/dns/lib/lang/tr_dns_import.lng b/interface/web/dns/lib/lang/tr_dns_import.lng index 64073d2b4..0f95a3131 100644 --- a/interface/web/dns/lib/lang/tr_dns_import.lng +++ b/interface/web/dns/lib/lang/tr_dns_import.lng @@ -1,16 +1,16 @@ diff --git a/interface/web/dns/lib/lang/tr_dns_loc.lng b/interface/web/dns/lib/lang/tr_dns_loc.lng index dc9ad9a00..25350c9aa 100644 --- a/interface/web/dns/lib/lang/tr_dns_loc.lng +++ b/interface/web/dns/lib/lang/tr_dns_loc.lng @@ -1,16 +1,16 @@ diff --git a/interface/web/dns/lib/lang/tr_dns_mx.lng b/interface/web/dns/lib/lang/tr_dns_mx.lng index b3efeab1b..6f39e991b 100644 --- a/interface/web/dns/lib/lang/tr_dns_mx.lng +++ b/interface/web/dns/lib/lang/tr_dns_mx.lng @@ -2,17 +2,17 @@ $wb['server_id_txt'] = 'Sunucu'; $wb['zone_txt'] = 'Bölge'; $wb['name_txt'] = 'Sunucu Adı'; -$wb['type_txt'] = 'Tip'; -$wb['data_txt'] = 'Posta sunucusu adı'; +$wb['type_txt'] = 'Tür'; +$wb['data_txt'] = 'E-posta Sunucusu Adı'; $wb['aux_txt'] = 'Öncelik'; $wb['ttl_txt'] = 'TTL Süresi'; $wb['active_txt'] = 'Etkin'; $wb['limit_dns_record_txt'] = 'Hesabınıza ekleyebileceğiniz en fazla DNS kaydı sınırına ulaştınız.'; -$wb['no_zone_perm'] = 'Bu DNS bölgesi kaydını ekleme izniniz yok.'; +$wb['no_zone_perm'] = 'Bu DNS bölgesine kayıt ekleme izniniz yok.'; $wb['name_error_empty'] = 'Sunucu adı boş olamaz.'; $wb['name_error_regex'] = 'Sunucu adı biçimi geçersiz.'; -$wb['data_error_empty'] = 'Posta sunucusu adı boş olamaz'; -$wb['data_error_regex'] = 'Posta sunucusu adı biçimi geçersiz'; +$wb['data_error_empty'] = 'E-posta sunucusu adı boş olamaz'; +$wb['data_error_regex'] = 'E-posta sunucusu adı biçimi geçersiz'; $wb['duplicate_mx_record_txt'] = 'Bu MX kaydı zaten var.'; $wb['ttl_range_error'] = 'En düşük TTL süresi 60 saniyedir.'; ?> diff --git a/interface/web/dns/lib/lang/tr_dns_ns.lng b/interface/web/dns/lib/lang/tr_dns_ns.lng index 03975af5f..e32b08609 100644 --- a/interface/web/dns/lib/lang/tr_dns_ns.lng +++ b/interface/web/dns/lib/lang/tr_dns_ns.lng @@ -2,12 +2,12 @@ $wb['server_id_txt'] = 'Sunucu'; $wb['zone_txt'] = 'Bölge'; $wb['name_txt'] = 'Bölge'; -$wb['type_txt'] = 'Tip'; +$wb['type_txt'] = 'tür'; $wb['data_txt'] = 'Ad Sunucusu Adı'; $wb['ttl_txt'] = 'TTL Süresi'; $wb['active_txt'] = 'Etkin'; $wb['limit_dns_record_txt'] = 'Hesabınıza ekleyebileceğiniz en fazla DNS kaydı sınırına ulaştınız.'; -$wb['no_zone_perm'] = 'Bu DNS bölgesi kaydını ekleme izniniz yok.'; +$wb['no_zone_perm'] = 'Bu DNS bölgesine kayıt ekleme izniniz yok.'; $wb['name_error_empty'] = 'Bölge boş olamaz.'; $wb['name_error_regex'] = 'Bölge biçimi geçersiz.'; $wb['data_error_empty'] = 'Ad sunucusu boş olamaz'; diff --git a/interface/web/dns/lib/lang/tr_dns_rp.lng b/interface/web/dns/lib/lang/tr_dns_rp.lng index 0a01c2dbe..56c10cb7e 100644 --- a/interface/web/dns/lib/lang/tr_dns_rp.lng +++ b/interface/web/dns/lib/lang/tr_dns_rp.lng @@ -2,12 +2,12 @@ $wb['server_id_txt'] = 'Sunucu'; $wb['zone_txt'] = 'Bölge'; $wb['name_txt'] = 'Sunucu Adı'; -$wb['type_txt'] = 'Tip'; +$wb['type_txt'] = 'Tür'; $wb['data_txt'] = 'İlgili Kişi'; $wb['ttl_txt'] = 'TTL Süresi'; $wb['active_txt'] = 'Etkin'; $wb['limit_dns_record_txt'] = 'Hesabınıza ekleyebileceğiniz en fazla DNS kaydı sınırına ulaştınız.'; -$wb['no_zone_perm'] = 'Bu DNS bölgesi kaydını ekleme izniniz yok.'; +$wb['no_zone_perm'] = 'Bu DNS bölgesine kayıt ekleme izniniz yok.'; $wb['name_error_empty'] = 'Sunucu adı boş olamaz.'; $wb['name_error_regex'] = 'Sunucu adı biçimi geçersiz.'; $wb['data_error_empty'] = 'İlgili kişi boş olamaz'; diff --git a/interface/web/dns/lib/lang/tr_dns_slave.lng b/interface/web/dns/lib/lang/tr_dns_slave.lng index d6c83a92f..8c83c1591 100644 --- a/interface/web/dns/lib/lang/tr_dns_slave.lng +++ b/interface/web/dns/lib/lang/tr_dns_slave.lng @@ -13,5 +13,5 @@ $wb['origin_error_unique'] = 'Bu bölge için zaten bir kayıt var.'; $wb['origin_error_regex'] = 'Bölge biçimi geçersiz.'; $wb['ns_error_regex'] = 'NS biçimi geçersiz.'; $wb['eg_domain_tld'] = 'Örnek: domain.tld.'; -$wb['ipv4_form_txt'] = 'Separate multiple IPs with commas'; +$wb['ipv4_form_txt'] = 'Birden çok IP adresini virgül ile ayırarak yazın'; ?> diff --git a/interface/web/dns/lib/lang/tr_dns_soa.lng b/interface/web/dns/lib/lang/tr_dns_soa.lng index 02e325e42..fd39de04f 100644 --- a/interface/web/dns/lib/lang/tr_dns_soa.lng +++ b/interface/web/dns/lib/lang/tr_dns_soa.lng @@ -9,11 +9,14 @@ $wb['retry_txt'] = 'Yinelenme'; $wb['expire_txt'] = 'Sona erme'; $wb['minimum_txt'] = 'En düşük'; $wb['ttl_txt'] = 'TTL Süresi'; -$wb['xfer_txt'] = 'Şu IP adreslerine (virgülle ayrılmış)
bölge aktarımı yapılabilsin'; +$wb['xfer_txt'] = 'Şu IP adreslerine (virgül ile ayrırak yazın)
bölge aktarımı yapılabilsin'; $wb['active_txt'] = 'Etkin'; +$wb['dnssec_info_txt'] = 'Kayıt defteri için DNSSEC DS verisi'; +$wb['dnssec_wanted_txt'] = 'İmza bölgesi (DNSSEC)'; +$wb['dnssec_wanted_info'] = 'Devre dışı bırakıldığında DNSSEC daha önce etkinleştirilmiş ve anahtarlar üretilmiş ise DNSSEC anahtarları silinir. Ancak bölge bundan sonra imzalanmış biçimde aktarılmaz.'; $wb['limit_dns_zone_txt'] = 'Hesabınıza ekleyebileceğiniz en fazla DNS bölgesi sayısına ulaştınız.'; $wb['client_txt'] = 'Müşteri'; -$wb['no_zone_perm'] = 'Bu DNS bölgesi kaydını ekleme izniniz yok.'; +$wb['no_zone_perm'] = 'Bu DNS bölgesine kayıt ekleme izniniz yok.'; $wb['server_id_error_empty'] = 'Sunucu seçilmemiş'; $wb['origin_error_empty'] = 'Bölge boş olamaz.'; $wb['origin_error_unique'] = 'Bu bölge için bir kayıt zaten var.'; @@ -21,24 +24,21 @@ $wb['origin_error_regex'] = 'Bölge biçimi geçersiz.'; $wb['ns_error_regex'] = 'NS geçersiz formatta.'; $wb['mbox_error_empty'] = 'E-posta boş olamaz.'; $wb['mbox_error_regex'] = 'E-posta biçimi geçersiz.'; -$wb['also_notify_txt'] = 'Ayrıca Bildir'; -$wb['also_notify_error_regex'] = 'Lütfen bir IP adresi kullanın.'; -$wb['xfer_error_regex'] = 'Ayrıca bildir: Lütfen bir IP adresi kullanın.'; +$wb['also_notify_txt'] = 'Ayrıca Bildirilsin'; +$wb['also_notify_error_regex'] = 'Ayrıca Bildirilsin: Lütfen bir IP adresi kullanın.'; +$wb['xfer_error_regex'] = 'Aktarılsın: Bir ya da , ile ayrılmış birkaç IP adresi ya da any sözcüğünü kullanın.'; $wb['update_acl_txt'] = 'EDL Güncelle'; $wb['seconds_txt'] = 'Saniye'; $wb['eg_domain_tld'] = 'Örnek: domain.tld'; $wb['eg_ns1_domain_tld'] = 'Örnek: ns1.domain.tld'; $wb['eg_webmaster_domain_tld'] = 'Örnek: webmaster@domain.tld'; -$wb['The Domain can not be changed. Please ask your Administrator if you want to change the domain name.'] = 'Alan adı değiştirilemedi. Lütfen alan adını değiştirmek için sistem yöneticisi ile görüşün.'; +$wb['The Domain can not be changed. Please ask your Administrator if you want to change the domain name.'] = 'Etki alanı değiştirilemedi. Lütfen etki alanını değiştirmek için sistem yöneticisi ile görüşün.'; $wb['refresh_range_error'] = 'En kısa yenilenme süresi 60 saniyedir.'; $wb['retry_range_error'] = 'En kısa yinelenme süresi 60 saniyedir.'; $wb['expire_range_error'] = 'En kısa sona erme süresi 60 saniyedir.'; $wb['minimum_range_error'] = 'En kısa en kısa süre 60 saniyedir.'; $wb['ttl_range_error'] = 'En düşük TTL süresi 60 saniyedir.'; -$wb['dnssec_info_txt'] = 'DNSSEC DS-Data for registry'; -$wb['dnssec_wanted_txt'] = 'Sign zone (DNSSEC)'; -$wb['dnssec_wanted_info'] = 'When disabling DNSSEC keys are not going to be deleted if DNSSEC was enabled before and keys already have been generated but the zone will no longer be delivered in signed format afterwards. If you use PowerDNS, keys WILL be deleted!'; -$wb['error_not_allowed_server_id'] = 'The selected server is not allowed for this account.'; -$wb['soa_cannot_be_changed_txt'] = 'The Zone (SOA) can not be changed. Please contact your administrator to change the zone.'; -$wb['configuration_error_txt'] = 'CONFIGURATION ERROR'; +$wb['error_not_allowed_server_id'] = 'Seçilmiş sunucuda bu hesap kullanılamaz.'; +$wb['soa_cannot_be_changed_txt'] = 'Bölge (SOA) değiştirilemez. Lütfen bölgeyi değiştirmek için yöneticiniz ile görüşün.'; +$wb['configuration_error_txt'] = 'YAPILANDIRMA SORUNU'; ?> diff --git a/interface/web/dns/lib/lang/tr_dns_soa_admin_list.lng b/interface/web/dns/lib/lang/tr_dns_soa_admin_list.lng index d8e56c17e..490cdc7b4 100644 --- a/interface/web/dns/lib/lang/tr_dns_soa_admin_list.lng +++ b/interface/web/dns/lib/lang/tr_dns_soa_admin_list.lng @@ -5,7 +5,7 @@ $wb['server_id_txt'] = 'Sunucu'; $wb['origin_txt'] = 'Bölge'; $wb['ns_txt'] = 'Ad Sunucusu'; $wb['mbox_txt'] = 'E-posta'; -$wb['add_new_record_wizard_txt'] = 'Yardımcı ile DNS bölgesi ekle'; +$wb['add_new_record_wizard_txt'] = 'Yardımcı ile DNS Bölgesi Ekle'; $wb['add_new_record_txt'] = 'El ile DNS Bölgesi Ekle'; $wb['sys_groupid_txt'] = 'Müşteri'; ?> diff --git a/interface/web/dns/lib/lang/tr_dns_soa_list.lng b/interface/web/dns/lib/lang/tr_dns_soa_list.lng index 8f7ed985e..831ff6afd 100644 --- a/interface/web/dns/lib/lang/tr_dns_soa_list.lng +++ b/interface/web/dns/lib/lang/tr_dns_soa_list.lng @@ -5,7 +5,7 @@ $wb['server_id_txt'] = 'Sunucu'; $wb['origin_txt'] = 'Bölge'; $wb['ns_txt'] = 'Ad Sunucusu'; $wb['mbox_txt'] = 'E-posta'; -$wb['add_new_record_wizard_txt'] = 'Yardımcı ile DNS bölgesi ekle'; +$wb['add_new_record_wizard_txt'] = 'Yardımcı ile DNS Bölgesi Ekle'; $wb['add_new_record_txt'] = 'DNS Bölgesi (SOA) Ekle'; -$wb['import_zone_file_txt'] = 'Import Zone File'; +$wb['import_zone_file_txt'] = 'Bölge Dosyasını İçe Aktar'; ?> diff --git a/interface/web/dns/lib/lang/tr_dns_spf.lng b/interface/web/dns/lib/lang/tr_dns_spf.lng index df8d1fe14..40cad402a 100644 --- a/interface/web/dns/lib/lang/tr_dns_spf.lng +++ b/interface/web/dns/lib/lang/tr_dns_spf.lng @@ -1,25 +1,25 @@ diff --git a/interface/web/dns/lib/lang/tr_dns_srv.lng b/interface/web/dns/lib/lang/tr_dns_srv.lng index c7ad55a85..8af151db8 100644 --- a/interface/web/dns/lib/lang/tr_dns_srv.lng +++ b/interface/web/dns/lib/lang/tr_dns_srv.lng @@ -2,7 +2,7 @@ $wb['server_id_txt'] = 'Sunucu'; $wb['zone_txt'] = 'Bölge'; $wb['name_txt'] = 'Sunucu Adı'; -$wb['type_txt'] = 'Tip'; +$wb['type_txt'] = 'Tür'; $wb['target_txt'] = 'Hedef'; $wb['weight_txt'] = 'Ağırlık'; $wb['port_txt'] = 'Kapı'; @@ -10,7 +10,7 @@ $wb['ttl_txt'] = 'TTL Süresi'; $wb['active_txt'] = 'Etkin'; $wb['aux_txt'] = 'Öncelik'; $wb['limit_dns_record_txt'] = 'Hesabınıza ekleyebileceğiniz en fazla DNS kaydı sınırına ulaştınız.'; -$wb['no_zone_perm'] = 'Bu DNS Bölgesi kaydını ekleme izniniz yok.'; +$wb['no_zone_perm'] = 'Bu DNS bölgesine kayıt ekleme izniniz yok.'; $wb['name_error_empty'] = 'Sunucu adı boş olamaz.'; $wb['name_error_regex'] = 'Sunucu adı biçimi geçersiz.'; $wb['data_error_empty'] = 'Sunucu kaydı boş olamaz'; diff --git a/interface/web/dns/lib/lang/tr_dns_template.lng b/interface/web/dns/lib/lang/tr_dns_template.lng index 3ca594f62..37ba3b588 100644 --- a/interface/web/dns/lib/lang/tr_dns_template.lng +++ b/interface/web/dns/lib/lang/tr_dns_template.lng @@ -3,5 +3,4 @@ $wb['name_txt'] = 'Ad'; $wb['fields_txt'] = 'Alanlar'; $wb['template_txt'] = 'Kalıp'; $wb['visible_txt'] = 'Görünür'; -$wb['placeholder_txt'] = 'Placeholder'; ?> diff --git a/interface/web/dns/lib/lang/tr_dns_tlsa.lng b/interface/web/dns/lib/lang/tr_dns_tlsa.lng index 3b87e2ad5..1fe0310d3 100644 --- a/interface/web/dns/lib/lang/tr_dns_tlsa.lng +++ b/interface/web/dns/lib/lang/tr_dns_tlsa.lng @@ -1,16 +1,16 @@ diff --git a/interface/web/dns/lib/lang/tr_dns_txt.lng b/interface/web/dns/lib/lang/tr_dns_txt.lng index 7b77bae7f..632b1e7b6 100644 --- a/interface/web/dns/lib/lang/tr_dns_txt.lng +++ b/interface/web/dns/lib/lang/tr_dns_txt.lng @@ -2,18 +2,18 @@ $wb['server_id_txt'] = 'Sunucu'; $wb['zone_txt'] = 'Bölge'; $wb['name_txt'] = 'Sunucu Adı'; -$wb['type_txt'] = 'Tip'; +$wb['type_txt'] = 'Tür'; $wb['data_txt'] = 'Metin'; $wb['ttl_txt'] = 'TTL Süresi'; $wb['active_txt'] = 'Etkin'; $wb['limit_dns_record_txt'] = 'Hesabınıza ekleyebileceğiniz en fazla DNS kaydı sınırına ulaştınız.'; -$wb['no_zone_perm'] = 'Bu DNS bölgesi kaydını ekleme izniniz yok.'; +$wb['no_zone_perm'] = 'Bu DNS bölgesine kayıt ekleme izniniz yok.'; $wb['name_error_empty'] = 'Sunucu adı boş olamaz.'; $wb['name_error_regex'] = 'Sunucu adı biçimi geçersiz.'; $wb['data_error_empty'] = 'Metin boş olamaz'; $wb['data_error_regex'] = 'Metin biçimi geçersiz'; $wb['ttl_range_error'] = 'En düşük TTL süresi 60 saniyedir.'; -$wb['invalid_type_dkim'] = 'DKIM is not allowed. Use the DKIM button'; -$wb['invalid_type_dmarc'] = 'DMARC is not allowed. Use the DMARC button'; -$wb['invalid_type_spf'] = 'SPF is not allowed. Use the SPF button.'; +$wb['invalid_type_dkim'] = 'DKIM yazılamaz. DKIM düğmesini kullanın'; +$wb['invalid_type_dmarc'] = 'DMARC yazılamaz. DMARC düğmesini kullanın'; +$wb['invalid_type_spf'] = 'SPF yazılamaz. SPF düğmesini kullanın.'; ?> diff --git a/interface/web/dns/lib/lang/tr_dns_wizard.lng b/interface/web/dns/lib/lang/tr_dns_wizard.lng index 1a9639391..f0a8b3898 100644 --- a/interface/web/dns/lib/lang/tr_dns_wizard.lng +++ b/interface/web/dns/lib/lang/tr_dns_wizard.lng @@ -7,11 +7,14 @@ $wb['server_id_txt'] = 'Sunucu'; $wb['client_txt'] = 'Müşteri'; $wb['btn_save_txt'] = 'DNS Kaydı Ekle'; $wb['btn_cancel_txt'] = 'Geri'; -$wb['domain_txt'] = 'Alan Adı'; +$wb['domain_txt'] = 'Etki Alanı'; $wb['email_txt'] = 'E-posta'; -$wb['ns1_txt'] = 'Ad Sunucusu 1'; -$wb['ns2_txt'] = 'Ad Sunucusu 2'; +$wb['dkim_txt'] = 'DKIM'; +$wb['dnssec_txt'] = 'İmza bölgesi (DNSSEC)'; +$wb['ns1_txt'] = '1. Ad Sunucusu'; +$wb['ns2_txt'] = '2. Ad Sunucusu'; $wb['ip_txt'] = 'IP Adresi'; +$wb['ipv6_txt'] = 'IPv6 Adresi'; $wb['error_origin_empty'] = 'Kaynak boş olamaz.'; $wb['error_ns_empty'] = 'Ad sunucusu boş olamaz.'; $wb['error_mbox_empty'] = 'Mbox boş olamaz.'; @@ -20,14 +23,15 @@ $wb['error_retry_empty'] = 'Yinelenme boş olamaz.'; $wb['error_expire_empty'] = 'Sona erme boş olamaz.'; $wb['error_minimum_empty'] = 'En az boş olamaz.'; $wb['error_ttl_empty'] = 'TTL süresi boş olamaz.'; -$wb['error_domain_empty'] = 'Alan adı boş olamaz'; +$wb['error_domain_empty'] = 'Etki alanı boş olamaz'; $wb['error_ip_empty'] = 'IP boş olamaz.'; -$wb['error_ns1_empty'] = 'As Sunucusu 1 boş olamaz.'; -$wb['error_ns2_empty'] = 'Ad Sunucusu 2 boş olamaz.'; +$wb['error_ipv6_empty'] = 'IPv6 boş olamaz.'; +$wb['error_ns1_empty'] = '1. Ad Sunucusu boş olamaz.'; +$wb['error_ns2_empty'] = '2. Ad Sunucusu boş olamaz.'; $wb['error_email_empty'] = 'E-posta boş olamaz.'; -$wb['error_domain_regex'] = 'Alan adında geçersiz karakterler var.'; -$wb['error_ns1_regex'] = 'Ad Sunucusu 1 adında geçersiz karakterler var.'; -$wb['error_ns2_regex'] = 'Ad Sunucusu 2 adında geçersiz karakterler var.'; +$wb['error_domain_regex'] = 'Etki alanı adında geçersiz karakterler var.'; +$wb['error_ns1_regex'] = '1. Ad Sunucusu adında geçersiz karakterler var.'; +$wb['error_ns2_regex'] = '2. Ad Sunucusu adında geçersiz karakterler var.'; $wb['error_email_regex'] = 'E-posta adresi geçersiz.'; $wb['globalsearch_resultslimit_of_txt'] = '/'; $wb['globalsearch_resultslimit_results_txt'] = 'sonuç'; @@ -35,11 +39,7 @@ $wb['globalsearch_noresults_text_txt'] = 'Sonuç yok.'; $wb['globalsearch_noresults_limit_txt'] = '0 sonuç'; $wb['globalsearch_searchfield_watermark_txt'] = 'Arama'; $wb['globalsearch_suggestions_text_txt'] = 'Öneriler'; -$wb['dkim_txt'] = 'DKIM'; -$wb['dnssec_txt'] = 'Sign zone (DNSSEC)'; -$wb['ipv6_txt'] = 'IPv6 Address'; -$wb['error_ipv6_empty'] = 'IPv6 empty.'; -$wb['error_no_server_id'] = 'No server provided.'; -$wb['error_not_allowed_server_id'] = 'The selected server is not allowed for this account.'; -$wb['limit_dns_zone_txt'] = 'The max. number of DNS zones for your account is reached.'; +$wb['error_no_server_id'] = 'Bir sunucu belirtilmemiş.'; +$wb['error_not_allowed_server_id'] = 'Seçilmiş sunucuda bu hesap kullanılamaz.'; +$wb['limit_dns_zone_txt'] = 'Hesabınıza ekleyebileceğiniz en fazla DNS bölgesi sayısına ulaştınız.'; ?> diff --git a/interface/web/help/lib/lang/br.lng b/interface/web/help/lib/lang/br.lng index a745e6096..217d3afa1 100644 --- a/interface/web/help/lib/lang/br.lng +++ b/interface/web/help/lib/lang/br.lng @@ -1,14 +1,14 @@ diff --git a/interface/web/help/lib/lang/br_faq_form.lng b/interface/web/help/lib/lang/br_faq_form.lng index 331268a72..b24ec1c58 100644 --- a/interface/web/help/lib/lang/br_faq_form.lng +++ b/interface/web/help/lib/lang/br_faq_form.lng @@ -1,6 +1,6 @@ diff --git a/interface/web/help/lib/lang/br_faq_manage_questions_list.lng b/interface/web/help/lib/lang/br_faq_manage_questions_list.lng index 8bda9d7f4..ee9f769d9 100644 --- a/interface/web/help/lib/lang/br_faq_manage_questions_list.lng +++ b/interface/web/help/lib/lang/br_faq_manage_questions_list.lng @@ -1,9 +1,9 @@ diff --git a/interface/web/help/lib/lang/br_faq_sections_form.lng b/interface/web/help/lib/lang/br_faq_sections_form.lng index f3f9f9f58..2fb709cbd 100644 --- a/interface/web/help/lib/lang/br_faq_sections_form.lng +++ b/interface/web/help/lib/lang/br_faq_sections_form.lng @@ -1,3 +1,3 @@ diff --git a/interface/web/help/lib/lang/br_help_faq_sections_list.lng b/interface/web/help/lib/lang/br_help_faq_sections_list.lng index f1f549e61..aec81d7b5 100644 --- a/interface/web/help/lib/lang/br_help_faq_sections_list.lng +++ b/interface/web/help/lib/lang/br_help_faq_sections_list.lng @@ -1,8 +1,8 @@ diff --git a/interface/web/help/lib/lang/br_support_message.lng b/interface/web/help/lib/lang/br_support_message.lng index 19ae309a1..dad8ce7fd 100644 --- a/interface/web/help/lib/lang/br_support_message.lng +++ b/interface/web/help/lib/lang/br_support_message.lng @@ -1,16 +1,16 @@ diff --git a/interface/web/help/lib/lang/br_support_message_list.lng b/interface/web/help/lib/lang/br_support_message_list.lng index 7d888659d..e4add42b7 100644 --- a/interface/web/help/lib/lang/br_support_message_list.lng +++ b/interface/web/help/lib/lang/br_support_message_list.lng @@ -1,7 +1,7 @@ diff --git a/interface/web/help/lib/lang/tr.lng b/interface/web/help/lib/lang/tr.lng index 4aeaa0ac0..c6b0877af 100644 --- a/interface/web/help/lib/lang/tr.lng +++ b/interface/web/help/lib/lang/tr.lng @@ -11,4 +11,5 @@ $wb['FAQ Sections'] = 'SSS Bölümleri'; $wb['Manage Sections'] = 'Bölüm Yönetimi'; $wb['Add a Question & Answer Pair'] = 'Soru-Yanıt Ekle'; $wb['Manage Questions'] = 'Soru Yönetimi'; + ?> diff --git a/interface/web/help/lib/lang/tr_support_message.lng b/interface/web/help/lib/lang/tr_support_message.lng index fcd785e62..ae60d28a1 100644 --- a/interface/web/help/lib/lang/tr_support_message.lng +++ b/interface/web/help/lib/lang/tr_support_message.lng @@ -7,10 +7,10 @@ $wb['tstamp_txt'] = 'Zaman damgası'; $wb['reply_txt'] = 'Yanıt'; $wb['date_txt'] = 'Tarih'; $wb['support_request_subject_txt'] = 'Destek İsteği'; -$wb['support_request_txt'] = 'Bir destek isteğinde bulundunuz. Lütfen bu e-postay yanıtlamayın. Destek isteğinizi ISPConfig üzerinden izleyin.'; +$wb['support_request_txt'] = 'Bir destek isteğinde bulundunuz. Lütfen bu e-postayı yanıtlamayın. Destek isteğinizi ISPConfig üzerinden izleyin.'; $wb['answer_to_support_request_txt'] = 'Destek isteğiniz yanıtlandı. Lütfen bu e-postayı yanıtlamayın. Destek isteğinizi ISPConfig üzerinden izleyin.'; $wb['answer_to_support_request_sent_txt'] = 'Destek isteğinize yazdığınız yanıt gönderildi. Lütfen bu e-potayı yanıtlamayın.'; $wb['support_request_sent_txt'] = 'Destek isteğiniz gönderildi. Lütfen bu e-postayı yanıtlamayın.'; $wb['recipient_or_sender_email_address_not_valid_txt'] = 'Gönderen ya da alıcı adresi geçersiz olduğundan bu ileti gönderilemedi.'; -$wb['subject_is_empty'] = 'The subject can not be empty.'; +$wb['subject_is_empty'] = 'Konu boş olamaz.'; ?> diff --git a/interface/web/login/lib/lang/br.lng b/interface/web/login/lib/lang/br.lng index 379b719f4..9baaf5521 100644 --- a/interface/web/login/lib/lang/br.lng +++ b/interface/web/login/lib/lang/br.lng @@ -13,18 +13,18 @@ $wb['user_regex_error'] = 'O nome do usuário contém menos de 1 ou mais de 64 c $wb['pw_error_length'] = 'Tamanho da senha não pode ser maior do que 64 caracteres.'; $wb['username_txt'] = 'Usuário'; $wb['password_txt'] = 'Senha'; -$wb['login_button_txt'] = 'Entrar'; +$wb['login_button_txt'] = 'Acessar'; $wb['pw_lost_txt'] = 'Esqueceu a senha?'; $wb['error_maintenance_mode'] = 'Esta instalação do ISPConfig atualmente está sob manutenção. Nós retornaremos em breve. Obrigado por sua paciência.'; -$wb['login_txt'] = 'Acesso'; +$wb['login_txt'] = 'Acessar'; $wb['pw_reset_txt'] = 'Redefinir senha'; $wb['pw_button_txt'] = 'Reenviar senha'; $wb['email_txt'] = 'E-mail'; -$wb['theme_not_compatible'] = 'O tema escolhido não é compatível com a versão atual do ISPConfig. Por favor, procure por uma nova versão deste tema compatível com ISPConfig.
O tema padrão foi configurado automaticamente.'; +$wb['theme_not_compatible'] = 'O tema escolhido não é compatível com a versão atual do ISPConfig. Por favor, procure por uma nova versão deste tema, compatível com ISPConfig.
O tema padrão foi configurado automaticamente.'; $wb['back_txt'] = 'Voltar'; $wb['email_error'] = 'O e-mail contém caracteres não permitidos ou formato é inválido.'; $wb['stay_logged_in_txt'] = 'Manter-me conectado'; -$wb['lost_password_function_disabled_txt'] = 'Função de redefinir senha indisponível para este usuário.'; +$wb['lost_password_function_disabled_txt'] = 'Função "redefinir senha" indisponível para este usuário.'; $wb['pw_reset_act'] = 'Você receberá um link de ativação. Por favor, acesse o link de ativação para confirmar sua nova senha.'; $wb['pw_reset_act_mail_title'] = 'Confirmar nova senha para o painel de controle ISPConfig'; $wb['pw_reset_act_mail_msg'] = 'Por favor, confirme se você deseja reiniciar sua senha do painel de controle ISPConfig, acessando o link de ativação: '; diff --git a/interface/web/login/lib/lang/br_login_as.lng b/interface/web/login/lib/lang/br_login_as.lng index 5d9fb269b..72c2c97e4 100644 --- a/interface/web/login/lib/lang/br_login_as.lng +++ b/interface/web/login/lib/lang/br_login_as.lng @@ -1,12 +1,12 @@ diff --git a/interface/web/login/lib/lang/tr.lng b/interface/web/login/lib/lang/tr.lng index c50ea5c8a..863a6310d 100644 --- a/interface/web/login/lib/lang/tr.lng +++ b/interface/web/login/lib/lang/tr.lng @@ -3,12 +3,15 @@ $wb['error_user_password_empty'] = 'Kullanıcı adı ya da parola boş'; $wb['error_user_password_incorrect'] = 'Kullanıcı adı ya da parola hatalı'; $wb['error_user_blocked'] = 'Kullanıcı engellenmiş.'; $wb['error_user_too_many_logins'] = 'Fazla sayıda hatalı oturum açmayı denediniz, Lütfen 15 dakika sonra yeniden deneyin.'; -$wb['pass_reset_txt'] = 'Yazdığınız e-posta adresi hesabınızdakine uyarsa, yeni bir parola oluşturularak e-posta adresinize gönderilir.'; +$wb['pass_reset_txt'] = 'Yazdığınız e-posta adresi hesabınızdakine uyarsa, yeni bir parola üretilerek e-posta adresinize gönderilir.'; $wb['pw_reset'] = 'Parolanız sıfırlandı ve e-posta adresinize gönderildi.'; +$wb['pw_reset_act'] = 'Size bir etkinleştirme bağlantısı gönderildi. Parola isteğinizi onaylamak için bağlantıya tıklayın.'; $wb['pw_error'] = 'Kullanıcı adı ya da e-posta adresiniz doğru değil.'; $wb['pw_error_noinput'] = 'Lütfen e-posta adresinizi ya da kullanıcı adınızı yazın.'; $wb['pw_reset_mail_msg'] = 'ISPConfig 3 Kontrol Paneli parolanız sıfırlandı. Yeni parolanız: '; $wb['pw_reset_mail_title'] = 'ISPConfig 3 Kontrol Paneli parolanız sıfırlandı'; +$wb['pw_reset_act_mail_title'] = 'ISPConfig 3 Control Panel parola sıfırlama isteğini onaylayın'; +$wb['pw_reset_act_mail_msg'] = 'Lütfen ISPConfig 3 Control Panel hesabınızın parolasını sıfırlamak için şu bağlantıya tıklayın: '; $wb['user_regex_error'] = 'Kullanıcı adınız izin verilmeyen karakterlerden oluşuyor ya da 64 karakterden uzun.'; $wb['pw_error_length'] = 'Parola 64 karakterden uzun.'; $wb['email_error'] = 'E-posta adresi izin verilmeyen karakterlerden oluşuyor ya da biçimi hatalı.'; @@ -24,11 +27,8 @@ $wb['back_txt'] = 'Geri'; $wb['error_maintenance_mode'] = 'ISPConfig bakımda. Kısa bir süre sonra yeniden çalışıyor olacak, sabrınız için teşekkürler.'; $wb['theme_not_compatible'] = 'Seçilmiş tema geçerli ISPConfig sürümü ile uyumlu değil. Lütfen temanın yeni sürümünü araştırın.
Varsayılan tema etkinleştirildi.'; $wb['stay_logged_in_txt'] = 'Oturumum açık kalsın'; -$wb['pw_reset_act'] = 'You have been sent an activation link. Please visit the link to confirm your password request.'; -$wb['pw_reset_act_mail_title'] = 'Confirm ISPConfig 3 Control panel password reset'; -$wb['pw_reset_act_mail_msg'] = 'Please confirm that your want to reset your ISPConfig 3 control panel account password by visiting the following activation link: '; -$wb['lost_password_function_disabled_txt'] = 'The lost password function is not available for this user.'; -$wb['lost_password_function_wait_txt'] = 'You cannot request a new password, yet. Please wait a few minutes.'; -$wb['lost_password_function_expired_txt'] = 'This activation link has expired. Please request a new one.'; -$wb['lost_password_function_denied_txt'] = 'This activation link is not valid.'; +$wb['lost_password_function_disabled_txt'] = 'Bu kullanıcı parolamı unuttum özelliğini kullanamaz.'; +$wb['lost_password_function_wait_txt'] = 'Henüz yeni parola isteğinde bulunamazsınız. Lütfen bir kaç dakika bekleyin.'; +$wb['lost_password_function_expired_txt'] = 'Bu etkinleştirme bağlantısının süresi geçmiş. Lütfen yeni bir parola sıfırlama isteğinde bulunun.'; +$wb['lost_password_function_denied_txt'] = 'Bu etkinleştirme bağlantısı geçersiz.'; ?> diff --git a/interface/web/login/lib/lang/tr_login_as.lng b/interface/web/login/lib/lang/tr_login_as.lng index f7f12feef..8a54a8efd 100644 --- a/interface/web/login/lib/lang/tr_login_as.lng +++ b/interface/web/login/lib/lang/tr_login_as.lng @@ -1,12 +1,13 @@ diff --git a/interface/web/mail/lib/lang/br.lng b/interface/web/mail/lib/lang/br.lng index 972e134bc..774834261 100644 --- a/interface/web/mail/lib/lang/br.lng +++ b/interface/web/mail/lib/lang/br.lng @@ -1,50 +1,56 @@ +$wb['Mailbox quota'] = 'Cota da conta de e-mail'; +$wb['add_header_txt'] = 'Cabeçalho (adicionar "X-Spam: Yes")'; +$wb['rewrite_subject_txt'] = 'Assunto (adicionar "***SPAM***" no início)'; diff --git a/interface/web/mail/lib/lang/br_backup_stats_list.lng b/interface/web/mail/lib/lang/br_backup_stats_list.lng index 9d0781771..482e91320 100644 --- a/interface/web/mail/lib/lang/br_backup_stats_list.lng +++ b/interface/web/mail/lib/lang/br_backup_stats_list.lng @@ -1,9 +1,9 @@ diff --git a/interface/web/mail/lib/lang/br_mail_alias.lng b/interface/web/mail/lib/lang/br_mail_alias.lng index 993dd71d2..636195718 100644 --- a/interface/web/mail/lib/lang/br_mail_alias.lng +++ b/interface/web/mail/lib/lang/br_mail_alias.lng @@ -1,17 +1,17 @@ diff --git a/interface/web/mail/lib/lang/br_mail_alias_list.lng b/interface/web/mail/lib/lang/br_mail_alias_list.lng index 69fb77a77..5e96f0fb3 100644 --- a/interface/web/mail/lib/lang/br_mail_alias_list.lng +++ b/interface/web/mail/lib/lang/br_mail_alias_list.lng @@ -1,8 +1,8 @@ diff --git a/interface/web/mail/lib/lang/br_mail_aliasdomain.lng b/interface/web/mail/lib/lang/br_mail_aliasdomain.lng index 68986f536..a0f4e5067 100644 --- a/interface/web/mail/lib/lang/br_mail_aliasdomain.lng +++ b/interface/web/mail/lib/lang/br_mail_aliasdomain.lng @@ -3,9 +3,9 @@ $wb['source_txt'] = 'Origem'; $wb['destination_txt'] = 'Destino'; $wb['active_txt'] = 'Ativo'; $wb['no_domain_perm'] = 'Você não tem permissão para este domínio.'; -$wb['limit_mailaliasdomain_txt'] = 'O limite de apelidos de domínios para esta conta foi alcançado.'; +$wb['limit_mailaliasdomain_txt'] = 'O limite de alias de domínios para esta conta foi alcançado.'; $wb['source_destination_identical_txt'] = 'Origem e destino são os mesmos.'; -$wb['source_error_empty'] = 'Origem está em branco.'; -$wb['source_error_unique'] = 'Origem duplicada.'; -$wb['source_error_regex'] = 'Origem inválida.'; +$wb['source_error_empty'] = 'O domínio de origem está em branco.'; +$wb['source_error_unique'] = 'Domínio de origem duplicado.'; +$wb['source_error_regex'] = 'Domínio de origem é inválido.'; ?> diff --git a/interface/web/mail/lib/lang/br_mail_aliasdomain_list.lng b/interface/web/mail/lib/lang/br_mail_aliasdomain_list.lng index 4849c3cb6..ddf1ea0a9 100644 --- a/interface/web/mail/lib/lang/br_mail_aliasdomain_list.lng +++ b/interface/web/mail/lib/lang/br_mail_aliasdomain_list.lng @@ -1,7 +1,8 @@ diff --git a/interface/web/mail/lib/lang/br_mail_backup_list.lng b/interface/web/mail/lib/lang/br_mail_backup_list.lng index 8ef31a076..b8e4f8230 100644 --- a/interface/web/mail/lib/lang/br_mail_backup_list.lng +++ b/interface/web/mail/lib/lang/br_mail_backup_list.lng @@ -3,14 +3,14 @@ $wb['list_head_txt'] = 'Backups existentes'; $wb['date_txt'] = 'Data'; $wb['backup_type_txt'] = 'Tipo'; $wb['filename_txt'] = 'Arquivo de backup'; -$wb['restore_backup_txt'] = 'Restaurar backup'; -$wb['restore_info_txt'] = 'Restauração do backup iniciada. Esta ação poderá levar vários minutos para ser concluída. Aguarde.'; -$wb['restore_confirm_txt'] = 'A restauração do backup reescreverá os arquivos existentes das suas caixas postais. Tem certeza que deseja restaurar este backup?'; -$wb['download_pending_txt'] = 'Já existe um download deste backup em execução.'; -$wb['restore_pending_txt'] = 'Já existe uma restauração deste backup em execução.'; -$wb['delete_backup_txt'] = 'Remover backup'; -$wb['delete_info_txt'] = 'Remoção do backup iniciada. Esta ação poderá levar vários minutos para ser concluída. Aguarde.'; -$wb['delete_confirm_txt'] = 'Tem certeza que deseja remover este backup?'; -$wb['delete_pending_txt'] = 'Já existe uma remoção deste backup em execução.'; -$wb['filesize_txt'] = 'Tamanho'; +$wb['restore_backup_txt'] = 'Restaurar'; +$wb['restore_info_txt'] = 'A restauração do backup está em andamento. Esta ação demora vários minutos para concluir.'; +$wb['restore_confirm_txt'] = 'A restauração do backup pode sobrescrever arquivos das contas de e-mail. Você tem certeza que deseja restaurar este backup?'; +$wb['download_pending_txt'] = 'Já existe um download de backup em andamento.'; +$wb['restore_pending_txt'] = 'Já existe uma restauração de backup em andamento.'; +$wb['delete_backup_txt'] = 'Remover Backup'; +$wb['delete_info_txt'] = 'A remoção do backup está em andamento. Esta ação demora vários minutos para concluir.'; +$wb['delete_confirm_txt'] = 'Deseja remover este backup?'; +$wb['delete_pending_txt'] = 'Já existe uma remoção de backup em andamento.'; +$wb['filesize_txt'] = 'Tamanho do arquivo'; ?> diff --git a/interface/web/mail/lib/lang/br_mail_blacklist.lng b/interface/web/mail/lib/lang/br_mail_blacklist.lng index 4c52e77d2..14c323c34 100644 --- a/interface/web/mail/lib/lang/br_mail_blacklist.lng +++ b/interface/web/mail/lib/lang/br_mail_blacklist.lng @@ -1,9 +1,9 @@ diff --git a/interface/web/mail/lib/lang/br_mail_blacklist_list.lng b/interface/web/mail/lib/lang/br_mail_blacklist_list.lng index d561cea6b..319a35401 100644 --- a/interface/web/mail/lib/lang/br_mail_blacklist_list.lng +++ b/interface/web/mail/lib/lang/br_mail_blacklist_list.lng @@ -1,10 +1,10 @@ diff --git a/interface/web/mail/lib/lang/br_mail_content_filter.lng b/interface/web/mail/lib/lang/br_mail_content_filter.lng index dc85d4e78..b0a7c15b1 100644 --- a/interface/web/mail/lib/lang/br_mail_content_filter.lng +++ b/interface/web/mail/lib/lang/br_mail_content_filter.lng @@ -1,9 +1,9 @@ diff --git a/interface/web/mail/lib/lang/br_mail_content_filter_list.lng b/interface/web/mail/lib/lang/br_mail_content_filter_list.lng index 4d35bd635..65674a903 100644 --- a/interface/web/mail/lib/lang/br_mail_content_filter_list.lng +++ b/interface/web/mail/lib/lang/br_mail_content_filter_list.lng @@ -1,5 +1,5 @@ diff --git a/interface/web/mail/lib/lang/br_mail_domain_catchall.lng b/interface/web/mail/lib/lang/br_mail_domain_catchall.lng index 3c4c6a262..3d4f85af8 100644 --- a/interface/web/mail/lib/lang/br_mail_domain_catchall.lng +++ b/interface/web/mail/lib/lang/br_mail_domain_catchall.lng @@ -1,12 +1,13 @@ diff --git a/interface/web/mail/lib/lang/br_mail_domain_catchall_list.lng b/interface/web/mail/lib/lang/br_mail_domain_catchall_list.lng index 57c1f3a11..2d5747826 100644 --- a/interface/web/mail/lib/lang/br_mail_domain_catchall_list.lng +++ b/interface/web/mail/lib/lang/br_mail_domain_catchall_list.lng @@ -1,8 +1,8 @@ diff --git a/interface/web/mail/lib/lang/br_mail_forward_list.lng b/interface/web/mail/lib/lang/br_mail_forward_list.lng index 025ecc00b..166839e2c 100644 --- a/interface/web/mail/lib/lang/br_mail_forward_list.lng +++ b/interface/web/mail/lib/lang/br_mail_forward_list.lng @@ -2,7 +2,7 @@ $wb['list_head_txt'] = 'Encaminhamento de e-mail'; $wb['active_txt'] = 'Ativo'; $wb['source_txt'] = 'Origem'; -$wb['destination_txt'] = 'Destino'; -$wb['email_txt'] = 'e-mail'; -$wb['add_new_record_txt'] = 'Adicionar novo encaminhamento'; +$wb['destination_txt'] = 'Destinatário'; +$wb['email_txt'] = 'e-Mail'; +$wb['add_new_record_txt'] = 'Adicionar novo encaminhamento de e-mail'; ?> diff --git a/interface/web/mail/lib/lang/br_mail_get.lng b/interface/web/mail/lib/lang/br_mail_get.lng index dc9d2fce8..f3d055f6d 100644 --- a/interface/web/mail/lib/lang/br_mail_get.lng +++ b/interface/web/mail/lib/lang/br_mail_get.lng @@ -1,19 +1,19 @@ diff --git a/interface/web/mail/lib/lang/br_mail_get_list.lng b/interface/web/mail/lib/lang/br_mail_get_list.lng index 07d28d0bd..84b8bbd33 100644 --- a/interface/web/mail/lib/lang/br_mail_get_list.lng +++ b/interface/web/mail/lib/lang/br_mail_get_list.lng @@ -1,5 +1,5 @@ diff --git a/interface/web/mail/lib/lang/br_mail_mailinglist_list.lng b/interface/web/mail/lib/lang/br_mail_mailinglist_list.lng index 08fd204fb..d7dcf02c0 100644 --- a/interface/web/mail/lib/lang/br_mail_mailinglist_list.lng +++ b/interface/web/mail/lib/lang/br_mail_mailinglist_list.lng @@ -1,5 +1,5 @@ diff --git a/interface/web/mail/lib/lang/br_mail_relay_recipient.lng b/interface/web/mail/lib/lang/br_mail_relay_recipient.lng index 0ce921b1a..637788ce4 100644 --- a/interface/web/mail/lib/lang/br_mail_relay_recipient.lng +++ b/interface/web/mail/lib/lang/br_mail_relay_recipient.lng @@ -3,7 +3,7 @@ $wb['server_id_txt'] = 'Servidor'; $wb['source_txt'] = 'Destinatário de retransmissão'; $wb['recipient_txt'] = 'Destinatário'; $wb['active_txt'] = 'Ativo'; -$wb['source_error_notempty'] = 'Endereço está em branco.'; +$wb['source_error_notempty'] = 'Destinatário de retransmissão está em branco.'; $wb['type_txt'] = 'Tipo'; -$wb['limit_mailfilter_txt'] = 'O limite de filtros para esta conta foi alcançado.'; +$wb['limit_mailfilter_txt'] = 'O limite de filtros de e-mail para esta conta foi alcançado.'; ?> diff --git a/interface/web/mail/lib/lang/br_mail_relay_recipient_list.lng b/interface/web/mail/lib/lang/br_mail_relay_recipient_list.lng index b6ca775e5..d96bab59e 100644 --- a/interface/web/mail/lib/lang/br_mail_relay_recipient_list.lng +++ b/interface/web/mail/lib/lang/br_mail_relay_recipient_list.lng @@ -2,8 +2,8 @@ $wb['list_head_txt'] = 'Destinatários de retransmissão'; $wb['active_txt'] = 'Ativo'; $wb['server_id_txt'] = 'Servidor'; -$wb['source_txt'] = 'Remetente'; +$wb['source_txt'] = 'Endereço do destinatário'; $wb['recipient_txt'] = 'Destinatário'; -$wb['add_new_record_txt'] = 'Adicionar novo destinatário'; +$wb['add_new_record_txt'] = 'Adicionar novo destinatário de retransmissão'; $wb['access_txt'] = 'acesso'; ?> diff --git a/interface/web/mail/lib/lang/br_mail_spamfilter.lng b/interface/web/mail/lib/lang/br_mail_spamfilter.lng index 3e7201b95..e38894fde 100644 --- a/interface/web/mail/lib/lang/br_mail_spamfilter.lng +++ b/interface/web/mail/lib/lang/br_mail_spamfilter.lng @@ -1,17 +1,17 @@ diff --git a/interface/web/mail/lib/lang/br_mail_spamfilter_list.lng b/interface/web/mail/lib/lang/br_mail_spamfilter_list.lng index 40c680da7..51044a3be 100644 --- a/interface/web/mail/lib/lang/br_mail_spamfilter_list.lng +++ b/interface/web/mail/lib/lang/br_mail_spamfilter_list.lng @@ -1,8 +1,8 @@ diff --git a/interface/web/mail/lib/lang/br_mail_transport.lng b/interface/web/mail/lib/lang/br_mail_transport.lng index 7b080493c..cf59e244b 100644 --- a/interface/web/mail/lib/lang/br_mail_transport.lng +++ b/interface/web/mail/lib/lang/br_mail_transport.lng @@ -3,9 +3,9 @@ $wb['server_id_txt'] = 'Servidor'; $wb['domain_txt'] = 'Domínio'; $wb['destination_txt'] = 'Destino'; $wb['type_txt'] = 'Tipo'; -$wb['mx_txt'] = 'Sem MX lookup'; +$wb['mx_txt'] = 'Sem pesquisa MX'; $wb['sort_order_txt'] = 'Ordenar por'; $wb['active_txt'] = 'Ativo'; -$wb['limit_mailrouting_txt'] = 'O limite de transportes para esta conta foi alcançado.'; +$wb['limit_mailrouting_txt'] = 'O limite de rotas de e-mail para esta conta foi alcançado.'; $wb['transport_txt'] = 'Transporte'; ?> diff --git a/interface/web/mail/lib/lang/br_mail_transport_list.lng b/interface/web/mail/lib/lang/br_mail_transport_list.lng index 1e824b345..4597742be 100644 --- a/interface/web/mail/lib/lang/br_mail_transport_list.lng +++ b/interface/web/mail/lib/lang/br_mail_transport_list.lng @@ -1,6 +1,6 @@ 1'; -$wb['autoresponder_start_date_txt'] = 'Início:'; -$wb['autoresponder_start_date_ispast'] = 'A data de início não pode ser menor que a data atual.'; -$wb['autoresponder_end_date_txt'] = 'Término:'; -$wb['autoresponder_end_date_isgreater'] = 'A data de término não pode ser menor que a data de início.'; -$wb['move_junk_txt'] = 'Mover spam para o diretório junk'; -$wb['name_txt'] = 'Nome real'; +$wb['limit_mailquota_txt'] = 'O limite de tamanho para as contas de e-mails foi alcançado. O espaço disponível em MB é'; +$wb['disablesmtp_txt'] = 'Desabilitar SMTP (envio)'; +$wb['disableimap_txt'] = 'Desabilitar IMAP'; +$wb['disablepop3_txt'] = 'Desabilitar POP3'; +$wb['duplicate_alias_or_forward_txt'] = 'Já existe um alias ou encaminhamento para este endereço de e-mail.'; +$wb['quota_error_value'] = 'Valor da cota é inválido. Valores permitidos são: 0 para ilimitado ou números > 1.'; +$wb['move_junk_txt'] = 'Mover e-mails marcados como spam para o diretório junk.'; +$wb['name_txt'] = 'Nome'; $wb['name_optional_txt'] = '(Opcional)'; -$wb['autoresponder_active'] = 'Ativar autoresposta'; +$wb['autoresponder_active'] = 'Habilitar auto-resposta'; $wb['cc_txt'] = 'Enviar cópia para'; -$wb['cc_error_isemail'] = 'O campo \\"Enviar cópia para\\" deve conter um endereço de e-mail válido'; +$wb['sender_cc_txt'] = 'Enviar cópia oculta (BCC) para'; +$wb['cc_error_isemail'] = 'O campo "Enviar cópia para" contém um endereço de e-mail inválido.'; +$wb['sender_cc_error_isemail'] = 'O campo "Enviar cópia oculta para" contém um endereço de e-mail inválido.'; $wb['domain_txt'] = 'Domínio'; $wb['now_txt'] = 'Agora'; -$wb['login_error_unique'] = 'O acesso já está em uso.'; -$wb['login_error_regex'] = 'Caracteres válidos são: \'A-Z\', \'a-z\', \'0-9\', \'.\', \'_\' e \'-\'.'; -$wb['login_txt'] = 'Acesso (opcional)'; -$wb['error_login_email_txt'] = 'Este acesso não é permitido. Por favor, insira um usuário diferente ou use o endereço de e-mail.'; -$wb['autoresponder_subject_txt'] = 'Assunto do e-mail'; -$wb['autoresponder_subject'] = 'Resposta de ausência temporária'; -$wb['generate_password_txt'] = 'Gerar senha'; -$wb['repeat_password_txt'] = 'Repetir senha'; -$wb['password_mismatch_txt'] = 'A senhas não coincidem.'; -$wb['password_match_txt'] = 'A senhas coincidem.'; -$wb['email_error_isascii'] = 'Por favor não use caracteres \\"unicode\\" para a senha. Esta ação poderá causar problemas com seu cliente de e-mail (mua).'; -$wb['cc_note_txt'] = '(Múltiplos e-mails separados por vírgulas)'; -$wb['disablesmtp_txt'] = 'Desabilitar smtp (envio)'; -$wb['autoresponder_start_date_is_required'] = 'Data de início deve ser configurada quando \'autoresposta\' é habilitada.'; -$wb['sender_cc_txt'] = 'Enviar cópia para'; -$wb['sender_cc_error_isemail'] = 'O campo \'Enviar cópia para\' não contém um endereço de e-mail válido'; -$wb['backup_interval_txt'] = 'Intervalo de backup'; -$wb['backup_copies_txt'] = 'Limite de cópias do backup'; +$wb['login_error_unique'] = 'O acesso já foi realizado.'; +$wb['login_error_regex'] = 'Caracteres válidos são "A-Z", "a-z", "0-9", ".", "_" e "-".'; +$wb['login_txt'] = 'Acesso'; +$wb['error_login_email_txt'] = 'Este acesso não é permitido. Por favor, forneça um nome de usuário ou endereço de e-mail diferente para acessar.'; +$wb['generate_password_txt'] = 'Gerar Senha'; +$wb['repeat_password_txt'] = 'Repetir Senha'; +$wb['password_mismatch_txt'] = 'As senhas não coincidem.'; +$wb['password_match_txt'] = 'As senhas coincidem.'; +$wb['backup_interval_txt'] = 'Intervalo entre backups'; +$wb['backup_copies_txt'] = 'Número de cópias do backup'; $wb['no_backup_txt'] = 'Sem backup'; $wb['daily_backup_txt'] = 'Diário'; $wb['weekly_backup_txt'] = 'Semanal'; $wb['monthly_backup_txt'] = 'Mensal'; -$wb['sender_cc_note_txt'] = '(Múltiplos e-mails separados por vírgulas)'; -$wb['password_click_to_set_txt'] = 'Configurar'; +$wb['email_error_isascii'] = 'Por favor, não use caracteres especiais para a senha. Isto poderá causar problemas no cliente de e-mail.'; +$wb['cc_note_txt'] = '(separar múltiplos endereços de e-mails com vírgulas)'; +$wb['sender_cc_note_txt'] = '(separar múltiplos endereços de e-mails com vírgulas)'; ?> diff --git a/interface/web/mail/lib/lang/br_mail_user_filter.lng b/interface/web/mail/lib/lang/br_mail_user_filter.lng index 7dca140ce..54ae96d69 100644 --- a/interface/web/mail/lib/lang/br_mail_user_filter.lng +++ b/interface/web/mail/lib/lang/br_mail_user_filter.lng @@ -4,23 +4,23 @@ $wb['action_txt'] = 'Ação'; $wb['target_txt'] = 'Pasta'; $wb['active_txt'] = 'Ativo'; $wb['rulename_error_empty'] = 'Nome está em branco.'; -$wb['searchterm_is_empty'] = 'Termo de busca está em branco.'; +$wb['searchterm_is_empty'] = 'Termo de pesquisa está em branco.'; $wb['source_txt'] = 'Origem'; -$wb['target_error_regex'] = 'O alvo não pode conter os caracteres: \'a-z\', \'0-9\', \'-\', \'.\', \'_\', e \'{espaço}\'.'; -$wb['limit_mailfilter_txt'] = 'O limite de filtros de e-mail para esta conta foi alcançado.'; +$wb['target_error_regex'] = 'O alvo pode conter apenas os caracteres: "a-z", "0-9", "-", ".", "_", e {espaço}'; +$wb['limit_mailfilter_txt'] = 'O limite de filtros de e-mail foi alcançado.'; $wb['subject_txt'] = 'Assunto'; $wb['from_txt'] = 'De'; $wb['to_txt'] = 'Para'; -$wb['contains_txt'] = 'Contém'; +$wb['contains_txt'] = 'Contêm'; $wb['is_txt'] = 'é'; -$wb['begins_with_txt'] = 'Começa com'; -$wb['ends_with_txt'] = 'Termina com'; -$wb['delete_txt'] = 'Remover'; +$wb['begins_with_txt'] = 'Iniciando com'; +$wb['ends_with_txt'] = 'Terminando com'; $wb['move_stop_txt'] = 'Mover para'; +$wb['delete_txt'] = 'Remover'; $wb['header_txt'] = 'Cabeçalho'; -$wb['size_over_txt'] = 'Tamanho máximo do e-mail (KB)'; -$wb['size_under_txt'] = 'Tamanho mínimo do e-mail (KB)'; -$wb['localpart_txt'] = 'Local'; +$wb['size_over_txt'] = 'Tamanho do e-mail acima de (KB)'; +$wb['size_under_txt'] = 'Tamanho do e-mail abaixo de (KB)'; +$wb['localpart_txt'] = 'Parte local'; $wb['domain_txt'] = 'Domínio'; $wb['keep_txt'] = 'Manter'; $wb['reject_txt'] = 'Rejeitar'; diff --git a/interface/web/mail/lib/lang/br_mail_user_filter_list.lng b/interface/web/mail/lib/lang/br_mail_user_filter_list.lng index feae1f4bb..516478f9f 100644 --- a/interface/web/mail/lib/lang/br_mail_user_filter_list.lng +++ b/interface/web/mail/lib/lang/br_mail_user_filter_list.lng @@ -3,5 +3,5 @@ $wb['rulename_txt'] = 'Nome'; $wb['add_new_record_txt'] = 'Adicionar novo filtro'; $wb['page_txt'] = 'Página'; $wb['page_of_txt'] = 'de'; -$wb['delete_confirmation'] = 'Tem certeza que gostaria de remover este filtro?'; +$wb['delete_confirmation'] = 'Você tem certeza que deseja remover este filtro?'; ?> diff --git a/interface/web/mail/lib/lang/br_mail_user_stats_list.lng b/interface/web/mail/lib/lang/br_mail_user_stats_list.lng index 370ce3520..f0305edac 100644 --- a/interface/web/mail/lib/lang/br_mail_user_stats_list.lng +++ b/interface/web/mail/lib/lang/br_mail_user_stats_list.lng @@ -1,6 +1,6 @@ diff --git a/interface/web/mail/lib/lang/br_mail_whitelist_list.lng b/interface/web/mail/lib/lang/br_mail_whitelist_list.lng index 40eced2d2..0c7d3c717 100644 --- a/interface/web/mail/lib/lang/br_mail_whitelist_list.lng +++ b/interface/web/mail/lib/lang/br_mail_whitelist_list.lng @@ -1,10 +1,10 @@ diff --git a/interface/web/mail/lib/lang/br_spamfilter_blacklist.lng b/interface/web/mail/lib/lang/br_spamfilter_blacklist.lng index df01dd30b..ec3dc5f66 100644 --- a/interface/web/mail/lib/lang/br_spamfilter_blacklist.lng +++ b/interface/web/mail/lib/lang/br_spamfilter_blacklist.lng @@ -1,11 +1,11 @@ diff --git a/interface/web/mail/lib/lang/br_spamfilter_config.lng b/interface/web/mail/lib/lang/br_spamfilter_config.lng index 9a12279a4..6182e8b78 100644 --- a/interface/web/mail/lib/lang/br_spamfilter_config.lng +++ b/interface/web/mail/lib/lang/br_spamfilter_config.lng @@ -1,20 +1,20 @@ diff --git a/interface/web/mail/lib/lang/br_spamfilter_config_list.lng b/interface/web/mail/lib/lang/br_spamfilter_config_list.lng index 300e210b1..6d4c1cf0e 100644 --- a/interface/web/mail/lib/lang/br_spamfilter_config_list.lng +++ b/interface/web/mail/lib/lang/br_spamfilter_config_list.lng @@ -1,5 +1,5 @@ diff --git a/interface/web/mail/lib/lang/br_spamfilter_policy.lng b/interface/web/mail/lib/lang/br_spamfilter_policy.lng index b5bb69db4..476b27e56 100644 --- a/interface/web/mail/lib/lang/br_spamfilter_policy.lng +++ b/interface/web/mail/lib/lang/br_spamfilter_policy.lng @@ -1,51 +1,51 @@ +$wb['message_size_limit_txt'] = 'Limite de tamanho da mensagem'; +$wb['banned_rulenames_txt'] = 'Nome da regra para arquivo banido'; +$wb['rspamd_greylisting_txt'] = 'Habilitar greylist'; +$wb['rspamd_spam_greylisting_level_txt'] = 'Nível da greylist'; +$wb['rspamd_spam_tag_level_txt'] = 'Nível da marcação anti-spam'; +$wb['rspamd_spam_tag_method_txt'] = 'Método da marcação anti-spam'; +$wb['rspamd_spam_kill_level_txt'] = 'Nível para rejeição de spam'; +$wb['btn_save_txt'] = 'Salvar'; +$wb['btn_cancel_txt'] = 'Cancelar'; + +$wb['amavis_settings_txt'] = 'Configurações'; +$wb['amavis_taglevel_txt'] = 'Nível de marcação'; +$wb['amavis_quarantine_txt'] = 'Quarentena'; +$wb['amavis_other_txt'] = 'Outro'; +$wb['add_header_txt'] = 'Adicionar cabeçalho'; +$wb['rewrite_subject_txt'] = 'Reescrever assunto'; diff --git a/interface/web/mail/lib/lang/br_spamfilter_policy_list.lng b/interface/web/mail/lib/lang/br_spamfilter_policy_list.lng index 38d91f16d..269862fe9 100644 --- a/interface/web/mail/lib/lang/br_spamfilter_policy_list.lng +++ b/interface/web/mail/lib/lang/br_spamfilter_policy_list.lng @@ -1,9 +1,9 @@ diff --git a/interface/web/mail/lib/lang/br_spamfilter_users.lng b/interface/web/mail/lib/lang/br_spamfilter_users.lng index 2c33cd355..3b34351ad 100644 --- a/interface/web/mail/lib/lang/br_spamfilter_users.lng +++ b/interface/web/mail/lib/lang/br_spamfilter_users.lng @@ -2,7 +2,7 @@ $wb['server_id_txt'] = 'Servidor'; $wb['priority_txt'] = 'Prioridade'; $wb['policy_id_txt'] = 'Política'; -$wb['email_txt'] = 'e-mail (padrão)'; +$wb['email_txt'] = 'e-Mail (padrão)'; $wb['fullname_txt'] = 'Nome'; $wb['local_txt'] = 'Local'; $wb['email_error_notempty'] = 'Endereço de e-mail está em branco.'; diff --git a/interface/web/mail/lib/lang/br_spamfilter_users_list.lng b/interface/web/mail/lib/lang/br_spamfilter_users_list.lng index cf1f4900f..fe3feb25c 100644 --- a/interface/web/mail/lib/lang/br_spamfilter_users_list.lng +++ b/interface/web/mail/lib/lang/br_spamfilter_users_list.lng @@ -1,10 +1,10 @@ diff --git a/interface/web/mail/lib/lang/br_spamfilter_whitelist.lng b/interface/web/mail/lib/lang/br_spamfilter_whitelist.lng index 0161d716a..bcb9491cf 100644 --- a/interface/web/mail/lib/lang/br_spamfilter_whitelist.lng +++ b/interface/web/mail/lib/lang/br_spamfilter_whitelist.lng @@ -1,8 +1,8 @@ diff --git a/interface/web/mail/lib/lang/br_user_quota_stats_list.lng b/interface/web/mail/lib/lang/br_user_quota_stats_list.lng index a75644320..ee156b23a 100755 --- a/interface/web/mail/lib/lang/br_user_quota_stats_list.lng +++ b/interface/web/mail/lib/lang/br_user_quota_stats_list.lng @@ -1,8 +1,8 @@ diff --git a/interface/web/mail/lib/lang/br_xmpp_domain.lng b/interface/web/mail/lib/lang/br_xmpp_domain.lng index 1a9a42f0c..1fd96ba13 100644 --- a/interface/web/mail/lib/lang/br_xmpp_domain.lng +++ b/interface/web/mail/lib/lang/br_xmpp_domain.lng @@ -5,31 +5,31 @@ $wb['domain_txt'] = 'Domínio'; $wb['type_txt'] = 'Tipo'; $wb['active_txt'] = 'Ativo'; $wb['client_txt'] = 'Cliente'; -$wb['management_method_txt'] = 'Gerenciamento de contas de usuários'; +$wb['management_method_txt'] = 'Gerenciar contas de usuário'; $wb['public_registration_txt'] = 'Habilitar registro público'; $wb['registration_url_txt'] = 'URL de registro'; $wb['registration_message_txt'] = 'Mensagem de registro'; -$wb['domain_admins_txt'] = 'Administradores de domínio (JIDs)'; -$wb['use_pubsub_txt'] = 'Habilitar Pubsub'; -$wb['use_proxy_txt'] = 'Habilitar proxy Bytestream'; +$wb['domain_admins_txt'] = 'Administradores de domínios (JIDs)'; +$wb['use_pubsub_txt'] = 'Habilitar pubsub'; +$wb['use_proxy_txt'] = 'Habilitar proxy bytestream'; $wb['use_anon_host_txt'] = 'Habilitar host anônimo'; -$wb['use_vjud_txt'] = 'Habilitar diretório de usuário VJUD'; -$wb['vjud_opt_mode_txt'] = 'Modo de operação VJUD'; -$wb['use_muc_host_txt'] = 'Habilitar chats multiusuários'; -$wb['muc_name_txt'] = 'Nome na descoberta do MUC'; -$wb['muc_restrict_room_creation_txt'] = 'Permissão para criar salas de chat'; -$wb['muc_admins_txt'] = 'Administradores de MUC (JIDs)'; -$wb['use_pastebin_txt'] = 'Habilitar Pastebin'; -$wb['pastebin_expire_after_txt'] = 'Colagens expiram após (horas)'; -$wb['pastebin_trigger_txt'] = 'Gatilho Pastebin'; -$wb['use_http_archive_txt'] = 'Habilitar arquivo HTTP em salas de chat'; -$wb['http_archive_show_join_txt'] = 'Exibir mensagens de participação em arquivos'; -$wb['http_archive_show_status_txt'] = 'Exibir estado de mudança em arquivos'; -$wb['use_status_host_txt'] = 'Habilitar estado XML do host'; -$wb['cant_change_domainname_txt'] = 'O nome domínio XMPP existente não pode ser modificado.'; -$wb['about_registration_url_txt'] = 'Link para o página de registro.'; -$wb['about_registration_message_txt'] = 'Descrição sobre seu processo de registro de conta.'; -$wb['no_corresponding_maildomain_txt'] = 'O domínio de e-mail correspondente para gerenciamento de usuário não foi encontrado. Por favor crie o domínio de e-mail primeiro.'; +$wb['use_vjud_txt'] = 'Habilitar diretório de usuário (VJUD)'; +$wb['vjud_opt_mode_txt'] = 'Modo opcional do VJUD'; +$wb['use_muc_host_txt'] = 'Habilitar chat multiusuário (MUC)'; +$wb['muc_name_txt'] = 'Nome no serviço de descoberta do MUC'; +$wb['muc_restrict_room_creation_txt'] = 'Permissão para adicionar salas de chat'; +$wb['muc_admins_txt'] = 'Administradores MUC (JIDs)'; +$wb['use_pastebin_txt'] = 'Habilitar pastebin'; +$wb['pastebin_expire_after_txt'] = 'Patas expira após (horas)'; +$wb['pastebin_trigger_txt'] = 'Desencadear pastebin'; +$wb['use_http_archive_txt'] = 'Habilitar arquivos HTTP em salas de chat'; +$wb['http_archive_show_join_txt'] = 'Exibir mensagens de ingresso no arquivo'; +$wb['http_archive_show_status_txt'] = 'Exibir estado da mudanças no arquivo'; +$wb['use_status_host_txt'] = 'Habilitar estado do XML do host'; +$wb['cant_change_domainname_txt'] = 'O nome existente do domínio xmpp não pode ser alterado.'; +$wb['about_registration_url_txt'] = 'Ligar ao seu formulário de registro.'; +$wb['about_registration_message_txt'] = 'Descrição sobre o processo de registro da sua conta.'; +$wb['no_corresponding_maildomain_txt'] = 'O domínio de e-mail correspondente para gerenciamento de usuários não foi encontrado. Por favor, crie um domínio de e-mail primeiro.'; $wb['ssl_state_txt'] = 'Estado'; $wb['ssl_locality_txt'] = 'Cidade'; $wb['ssl_organisation_txt'] = 'Empresa'; @@ -38,25 +38,25 @@ $wb['ssl_country_txt'] = 'País'; $wb['ssl_key_txt'] = 'Chave'; $wb['ssl_request_txt'] = 'Requisição'; $wb['ssl_cert_txt'] = 'Certificado'; -$wb['ssl_bundle_txt'] = 'Pacote'; +$wb['ssl_bundle_txt'] = 'Agrupar'; $wb['ssl_action_txt'] = 'Ação'; $wb['ssl_email_txt'] = 'Endereço de e-mail'; $wb['ssl_txt'] = 'SSL'; -$wb['error_ssl_state_empty'] = 'Campo \'Estado\' está em branco.'; -$wb['error_ssl_locality_empty'] = 'Campo \'Cidade\' está em branco.'; -$wb['error_ssl_organisation_empty'] = 'Campo \'Empresa\' está em branco.'; -$wb['error_ssl_organisation_unit_empty'] = 'Campo \'Departamento\' está em branco.'; -$wb['error_ssl_country_empty'] = 'Campo \'País\' está em branco.'; -$wb['error_ssl_cert_empty'] = 'Campo \'Certificado\' está em branco.'; -$wb['ssl_state_error_regex'] = 'Campo \'Estado\' é inválido. São caracteres válidos: \'a-z\', \'0-9\' e \'.,-_\'.'; -$wb['ssl_locality_error_regex'] = 'Campo \'Cidade\' é inválido. São caracteres válidos: \'a-z\', \'0-9\' e \'.,-_\'.'; -$wb['ssl_organisation_error_regex'] = 'Campo \'Empresa\' é inválido. São caracteres válidos: \'a-z\', \'0-9\' e \'.,-_\'.'; -$wb['ssl_organistaion_unit_error_regex'] = 'Campo \'Departamento\' é inválido. São caracteres válidos: \'a-z\', \'0-9\' e \'.,-_\'.'; -$wb['ssl_country_error_regex'] = 'Campo \'País\' é inválido. São caracteres válidos: \'A-Z\'.'; +$wb['error_ssl_state_empty'] = 'O campo "Estado" está em branco.'; +$wb['error_ssl_locality_empty'] = 'O campo "Cidade" está em branco.'; +$wb['error_ssl_organisation_empty'] = 'O campo "Empresa" está em branco.'; +$wb['error_ssl_organisation_unit_empty'] = 'O campo "Departamento" está em branco.'; +$wb['error_ssl_country_empty'] = 'O campo "País" está em branco.'; +$wb['error_ssl_cert_empty'] = 'O campo "Certificado" está em branco.'; +$wb['ssl_state_error_regex'] = 'Campo "Estado" é inválido. São caracteres válidos: "a-z", "0-9" e ".,-_".'; +$wb['ssl_locality_error_regex'] = 'Campo "Cidade" é inválido. São caracteres válidos: "a-z", "0-9" e ".,-_".'; +$wb['ssl_organisation_error_regex'] = 'Campo "Empresa" é inválido. São caracteres válidos: "a-z", "0-9" e ".,-_".'; +$wb['ssl_organistaion_unit_error_regex'] = 'Campo "Departamento" é inválido. São caracteres válidos: "a-z", "0-9" e ".,-_".'; +$wb['ssl_country_error_regex'] = 'Campo "País" é inválido. São caracteres válidos: "A-Z".'; $wb['none_txt'] = 'Nenhum'; -$wb['save_certificate_txt'] = 'Salvar certificado'; -$wb['create_certificate_txt'] = 'Adicionar certificado'; -$wb['delete_certificate_txt'] = 'Remover certificado'; -$wb['ssl_error_isemail'] = 'Por favor, insira um e-mail válido para gerar o certificado SSL.'; +$wb['save_certificate_txt'] = 'Salvar Certificado'; +$wb['create_certificate_txt'] = 'Adicionar Certificado'; +$wb['delete_certificate_txt'] = 'Remover Certificado'; +$wb['ssl_error_isemail'] = 'Por favor, insira um endereço de e-mail válido para geração do certificado SSL.'; $wb['limit_xmppdomain_txt'] = 'O limite de domínios xmpp para esta conta foi alcançado.'; ?> diff --git a/interface/web/mail/lib/lang/br_xmpp_domain_list.lng b/interface/web/mail/lib/lang/br_xmpp_domain_list.lng index ab8f3a908..e0ff3a6fc 100644 --- a/interface/web/mail/lib/lang/br_xmpp_domain_list.lng +++ b/interface/web/mail/lib/lang/br_xmpp_domain_list.lng @@ -1,5 +1,5 @@ diff --git a/interface/web/mail/lib/lang/br_xmpp_user_list.lng b/interface/web/mail/lib/lang/br_xmpp_user_list.lng index 13d71a05a..0aefe1170 100644 --- a/interface/web/mail/lib/lang/br_xmpp_user_list.lng +++ b/interface/web/mail/lib/lang/br_xmpp_user_list.lng @@ -1,5 +1,5 @@ diff --git a/interface/web/mail/lib/lang/tr_backup_stats_list.lng b/interface/web/mail/lib/lang/tr_backup_stats_list.lng index 79cd6c9a6..125bfc828 100644 --- a/interface/web/mail/lib/lang/tr_backup_stats_list.lng +++ b/interface/web/mail/lib/lang/tr_backup_stats_list.lng @@ -1,9 +1,9 @@ diff --git a/interface/web/mail/lib/lang/tr_mail_alias.lng b/interface/web/mail/lib/lang/tr_mail_alias.lng index d3fd3f127..ea440b2e6 100644 --- a/interface/web/mail/lib/lang/tr_mail_alias.lng +++ b/interface/web/mail/lib/lang/tr_mail_alias.lng @@ -4,14 +4,14 @@ $wb['destination_txt'] = 'Hedef'; $wb['active_txt'] = 'Etkin'; $wb['email_error_isemail'] = 'E-posta adresi geçersiz.'; $wb['email_error_unique'] = 'Bu e-posta adresi zaten var'; -$wb['no_domain_perm'] = 'Bu alan adı için izniniz yok.'; +$wb['no_domain_perm'] = 'Bu etki alanı için izniniz yok.'; $wb['destination_error_isemail'] = 'Hedef e-posta adresi geçersiz.'; $wb['limit_mailalias_txt'] = 'Hesabınıza ekleyebileceğiniz en fazla takma e-posta adresi sayısına ulaştınız.'; -$wb['duplicate_mailbox_txt'] = 'Bu e-posta adresini kullanan bir posta kutusu zaten var'; -$wb['domain_txt'] = 'Alan Adı'; +$wb['duplicate_mailbox_txt'] = 'Bu adresi kullanan bir e-posta kutusu zaten var'; +$wb['domain_txt'] = 'Etki Alanı'; $wb['duplicate_email_alias_txt'] = 'Bu takma e-posta adresi zaten var.'; $wb['source_txt'] = 'Takma Ad'; -$wb['send_as_txt'] = 'Send as'; -$wb['send_as_exp'] = 'Allow target to send mail using this alias as origin'; -$wb['greylisting_txt'] = 'Enable greylisting'; +$wb['send_as_txt'] = 'Gönderen'; +$wb['send_as_exp'] = 'Hedef bu adresi kaynak olarak göstererek e-posta gönderebilsin'; +$wb['greylisting_txt'] = 'Gri Liste Kullanılsın'; ?> diff --git a/interface/web/mail/lib/lang/tr_mail_aliasdomain.lng b/interface/web/mail/lib/lang/tr_mail_aliasdomain.lng index d39c6f46a..f6cd98261 100644 --- a/interface/web/mail/lib/lang/tr_mail_aliasdomain.lng +++ b/interface/web/mail/lib/lang/tr_mail_aliasdomain.lng @@ -2,10 +2,10 @@ $wb['source_txt'] = 'Kaynak'; $wb['destination_txt'] = 'Hedef'; $wb['active_txt'] = 'Etkin'; -$wb['no_domain_perm'] = 'Bu alan adı için izniniz yok.'; -$wb['limit_mailaliasdomain_txt'] = 'Hesabınıza ekleyebileceğiniz en fazla takma alan adı sayısına ulaştınız.'; -$wb['source_destination_identical_txt'] = 'Kaynak ve Hedef alan adları aynı.'; -$wb['source_error_empty'] = 'Kaynak alan adı boş olamaz.'; -$wb['source_error_unique'] = 'Bu kaynak alan adı zaten var.'; -$wb['source_error_regex'] = 'Kaynak alan adı geçersiz.'; +$wb['no_domain_perm'] = 'Bu etki alanı için izniniz yok.'; +$wb['limit_mailaliasdomain_txt'] = 'Hesabınıza ekleyebileceğiniz en fazla takma etki alanı sayısına ulaştınız.'; +$wb['source_destination_identical_txt'] = 'Kaynak ve Hedef etki alanları aynı.'; +$wb['source_error_empty'] = 'Kaynak etki alanı boş olamaz.'; +$wb['source_error_unique'] = 'Bu kaynak etki alanı zaten var.'; +$wb['source_error_regex'] = 'Kaynak etki alanı geçersiz.'; ?> diff --git a/interface/web/mail/lib/lang/tr_mail_aliasdomain_list.lng b/interface/web/mail/lib/lang/tr_mail_aliasdomain_list.lng index a6d3dfc3b..7cbc3aef9 100644 --- a/interface/web/mail/lib/lang/tr_mail_aliasdomain_list.lng +++ b/interface/web/mail/lib/lang/tr_mail_aliasdomain_list.lng @@ -1,7 +1,8 @@ diff --git a/interface/web/mail/lib/lang/tr_mail_backup_list.lng b/interface/web/mail/lib/lang/tr_mail_backup_list.lng index 73286a073..1a5ae7227 100644 --- a/interface/web/mail/lib/lang/tr_mail_backup_list.lng +++ b/interface/web/mail/lib/lang/tr_mail_backup_list.lng @@ -1,16 +1,16 @@ diff --git a/interface/web/mail/lib/lang/tr_mail_blacklist.lng b/interface/web/mail/lib/lang/tr_mail_blacklist.lng index ecdca0b1a..381a11fa9 100644 --- a/interface/web/mail/lib/lang/tr_mail_blacklist.lng +++ b/interface/web/mail/lib/lang/tr_mail_blacklist.lng @@ -4,6 +4,6 @@ $wb['source_txt'] = 'Kara Listedeki Adres'; $wb['recipient_txt'] = 'Alıcı'; $wb['active_txt'] = 'Etkin'; $wb['source_error_notempty'] = 'Adres boş olamaz.'; -$wb['type_txt'] = 'Tip'; +$wb['type_txt'] = 'Tür'; $wb['limit_mailfilter_txt'] = 'Hesabınıza ekleyebileceğiniz en fazla e-posta süzgeci sayısına ulaştınız.'; ?> diff --git a/interface/web/mail/lib/lang/tr_mail_blacklist_list.lng b/interface/web/mail/lib/lang/tr_mail_blacklist_list.lng index b9bf6ff92..9446569f4 100644 --- a/interface/web/mail/lib/lang/tr_mail_blacklist_list.lng +++ b/interface/web/mail/lib/lang/tr_mail_blacklist_list.lng @@ -3,7 +3,7 @@ $wb['list_head_txt'] = 'E-posta Kara Listesi'; $wb['active_txt'] = 'Etkin'; $wb['server_id_txt'] = 'Sunucu'; $wb['source_txt'] = 'Kara Listedeki Adres'; -$wb['type_txt'] = 'Tip'; +$wb['type_txt'] = 'Tür'; $wb['recipient_txt'] = 'Alıcı'; $wb['add_new_record_txt'] = 'Kara Liste Kaydı Ekle'; $wb['access_txt'] = 'Erişim'; diff --git a/interface/web/mail/lib/lang/tr_mail_content_filter.lng b/interface/web/mail/lib/lang/tr_mail_content_filter.lng index f13b01a68..df2d4d5c4 100644 --- a/interface/web/mail/lib/lang/tr_mail_content_filter.lng +++ b/interface/web/mail/lib/lang/tr_mail_content_filter.lng @@ -1,9 +1,9 @@ diff --git a/interface/web/mail/lib/lang/tr_mail_domain.lng b/interface/web/mail/lib/lang/tr_mail_domain.lng index 4ee4aa50f..3e7d9cc41 100644 --- a/interface/web/mail/lib/lang/tr_mail_domain.lng +++ b/interface/web/mail/lib/lang/tr_mail_domain.lng @@ -1,23 +1,23 @@ diff --git a/interface/web/mail/lib/lang/tr_mail_domain_admin_list.lng b/interface/web/mail/lib/lang/tr_mail_domain_admin_list.lng index 7d56618ee..f6937ab38 100644 --- a/interface/web/mail/lib/lang/tr_mail_domain_admin_list.lng +++ b/interface/web/mail/lib/lang/tr_mail_domain_admin_list.lng @@ -1,8 +1,8 @@ diff --git a/interface/web/mail/lib/lang/tr_mail_domain_catchall.lng b/interface/web/mail/lib/lang/tr_mail_domain_catchall.lng index c5f8725a7..bcdf62984 100644 --- a/interface/web/mail/lib/lang/tr_mail_domain_catchall.lng +++ b/interface/web/mail/lib/lang/tr_mail_domain_catchall.lng @@ -1,12 +1,12 @@ diff --git a/interface/web/mail/lib/lang/tr_mail_domain_catchall_list.lng b/interface/web/mail/lib/lang/tr_mail_domain_catchall_list.lng index 596e2dbda..45a59fe83 100644 --- a/interface/web/mail/lib/lang/tr_mail_domain_catchall_list.lng +++ b/interface/web/mail/lib/lang/tr_mail_domain_catchall_list.lng @@ -2,8 +2,8 @@ $wb['list_head_txt'] = 'E-posta Tümünü Al Hesabı'; $wb['active_txt'] = 'Etkin'; $wb['source_txt'] = 'Kaynak'; -$wb['destination_txt'] = 'Hedef e-posta adresi'; +$wb['destination_txt'] = 'Hedef E-posta Adresi'; $wb['server_id_txt'] = 'Sunucu'; -$wb['domain_txt'] = 'Alan Adı'; +$wb['domain_txt'] = 'Etki Alanı'; $wb['add_new_record_txt'] = 'Tümünü Al Hesabı Ekle'; ?> diff --git a/interface/web/mail/lib/lang/tr_mail_domain_list.lng b/interface/web/mail/lib/lang/tr_mail_domain_list.lng index 7a4a1f2b6..06a44455e 100644 --- a/interface/web/mail/lib/lang/tr_mail_domain_list.lng +++ b/interface/web/mail/lib/lang/tr_mail_domain_list.lng @@ -1,7 +1,7 @@ diff --git a/interface/web/mail/lib/lang/tr_mail_forward.lng b/interface/web/mail/lib/lang/tr_mail_forward.lng index f96a0e4c0..2352cd945 100644 --- a/interface/web/mail/lib/lang/tr_mail_forward.lng +++ b/interface/web/mail/lib/lang/tr_mail_forward.lng @@ -3,11 +3,11 @@ $wb['email_txt'] = 'E-posta'; $wb['destination_txt'] = 'Hedef E-posta'; $wb['active_txt'] = 'Etkin'; $wb['limit_mailforward_txt'] = 'Hesabınıza ekleyebileceğiniz en fazla e-posta yönlendirme sayısına ulaştınız.'; -$wb['duplicate_mailbox_txt'] = 'Bu e-posta adresini kullanan bir posta kutusu zaten var'; -$wb['domain_txt'] = 'Alan Adı'; +$wb['duplicate_mailbox_txt'] = 'Bu e-posta adresini kullanan bir e-posta kutusu zaten var'; +$wb['domain_txt'] = 'Etki Alanı'; $wb['source_txt'] = 'Kaynak E-posta'; -$wb['email_error_isemail'] = 'Please enter a valid email address.'; -$wb['send_as_txt'] = 'Send as'; -$wb['send_as_exp'] = 'Allow target to send mail using this address as origin (if target is internal)'; -$wb['greylisting_txt'] = 'Enable greylisting'; +$wb['email_error_isemail'] = 'Lütfen geçerli bir e-posta adresi yazın.'; +$wb['send_as_txt'] = 'Gönderen'; +$wb['send_as_exp'] = 'Hedef bu adresi kaynak olarak göstererek e-posta gönderebilsin (hedef iç kullanıcı ise)'; +$wb['greylisting_txt'] = 'Gri Liste Kullanılsın'; ?> diff --git a/interface/web/mail/lib/lang/tr_mail_get.lng b/interface/web/mail/lib/lang/tr_mail_get.lng index b82b6c8c9..2ad343426 100644 --- a/interface/web/mail/lib/lang/tr_mail_get.lng +++ b/interface/web/mail/lib/lang/tr_mail_get.lng @@ -1,6 +1,6 @@ diff --git a/interface/web/mail/lib/lang/tr_mail_mailinglist.lng b/interface/web/mail/lib/lang/tr_mail_mailinglist.lng index 17bfab31d..4bd52db75 100644 --- a/interface/web/mail/lib/lang/tr_mail_mailinglist.lng +++ b/interface/web/mail/lib/lang/tr_mail_mailinglist.lng @@ -1,19 +1,19 @@ diff --git a/interface/web/mail/lib/lang/tr_mail_relay_recipient.lng b/interface/web/mail/lib/lang/tr_mail_relay_recipient.lng index 90153f8c4..a7d83620c 100644 --- a/interface/web/mail/lib/lang/tr_mail_relay_recipient.lng +++ b/interface/web/mail/lib/lang/tr_mail_relay_recipient.lng @@ -4,6 +4,6 @@ $wb['source_txt'] = 'Aktarılan Alıcı'; $wb['recipient_txt'] = 'Alıcı'; $wb['active_txt'] = 'Etkin'; $wb['source_error_notempty'] = 'Adres boş olamaz.'; -$wb['type_txt'] = 'Tip'; +$wb['type_txt'] = 'Tür'; $wb['limit_mailfilter_txt'] = 'Hesabınıza ekleyebileceğiniz en fazla e-posta süzgeci sayısına ulaştınız.'; ?> diff --git a/interface/web/mail/lib/lang/tr_mail_spamfilter.lng b/interface/web/mail/lib/lang/tr_mail_spamfilter.lng index be63f7120..6a708982f 100644 --- a/interface/web/mail/lib/lang/tr_mail_spamfilter.lng +++ b/interface/web/mail/lib/lang/tr_mail_spamfilter.lng @@ -7,11 +7,11 @@ $wb['spam_rewrite_subject_txt'] = 'Konuyu yeniden yaz'; $wb['spam_redirect_maildir_txt'] = 'Mail kutusuna yönlendir'; $wb['active_txt'] = 'Etkin'; $wb['spam_rewrite_txt'] = 'Bu puanın üzerindeki e-posta konusunu yeniden yaz.'; -$wb['spam_redirect_txt'] = 'Bu puanın üzerindeki e-postayı seçilmiş posta kutusuna yönlendir.'; +$wb['spam_redirect_txt'] = 'Bu puanın üzerindeki e-postayı seçilmiş e-posta kutusuna yönlendir.'; $wb['spam_delete_txt'] = 'Bu puanın üzerindeki e-postayı sil.'; $wb['disable_txt'] = 'İpucu: Bir süzgeç seçeneğini devre dışı bırakmak için, puanı 0.00 olarak yazın.'; $wb['email_error_isemail'] = 'E-posta adresi geçersiz.'; -$wb['email_error_unique'] = 'Bu e-posta adresi için önemiz posta süzgeci kaydı zaten var.'; -$wb['spam_redirect_maildir_purge_txt'] = 'Posta klasörü'; +$wb['email_error_unique'] = 'Bu e-posta adresi için önemiz e-posta süzgeci kaydı zaten var.'; +$wb['spam_redirect_maildir_purge_txt'] = 'E-posta Klasörü'; $wb['days_txt'] = ' gün aralıklarla temizlensin.'; ?> diff --git a/interface/web/mail/lib/lang/tr_mail_spamfilter_list.lng b/interface/web/mail/lib/lang/tr_mail_spamfilter_list.lng index 90981ad8f..6901f541b 100644 --- a/interface/web/mail/lib/lang/tr_mail_spamfilter_list.lng +++ b/interface/web/mail/lib/lang/tr_mail_spamfilter_list.lng @@ -1,8 +1,8 @@ diff --git a/interface/web/mail/lib/lang/tr_mail_transport.lng b/interface/web/mail/lib/lang/tr_mail_transport.lng index f268fd547..0b4177039 100644 --- a/interface/web/mail/lib/lang/tr_mail_transport.lng +++ b/interface/web/mail/lib/lang/tr_mail_transport.lng @@ -1,8 +1,8 @@ diff --git a/interface/web/mail/lib/lang/tr_mail_user_filter.lng b/interface/web/mail/lib/lang/tr_mail_user_filter.lng index 8897a9d18..ba55be63d 100644 --- a/interface/web/mail/lib/lang/tr_mail_user_filter.lng +++ b/interface/web/mail/lib/lang/tr_mail_user_filter.lng @@ -7,7 +7,7 @@ $wb['rulename_error_empty'] = 'Ad boş olamaz.'; $wb['searchterm_is_empty'] = 'Aranacak ifade boş olamaz.'; $wb['source_txt'] = 'Kaynak'; $wb['target_error_regex'] = 'Hedef için yalnız şu karakterler kullanılabilir: a-z, 0-9, -, ., _, ve {boşluk}'; -$wb['limit_mailfilter_txt'] = 'Hesabınıza ekleyebileceğiniz en fazla posta süzgeci sayısına ulaştınız.'; +$wb['limit_mailfilter_txt'] = 'Hesabınıza ekleyebileceğiniz en fazla e-posta süzgeci sayısına ulaştınız.'; $wb['subject_txt'] = 'Konu'; $wb['from_txt'] = 'Kimden'; $wb['to_txt'] = 'Kime'; @@ -25,5 +25,5 @@ $wb['domain_txt'] = 'Etki alanı'; $wb['keep_txt'] = 'Tut'; $wb['reject_txt'] = 'Reddet'; $wb['stop_txt'] = 'Durdur'; -$wb['move_to_txt'] = 'Move to'; +$wb['move_to_txt'] = 'Şuraya Taşı'; ?> diff --git a/interface/web/mail/lib/lang/tr_mail_user_list.lng b/interface/web/mail/lib/lang/tr_mail_user_list.lng index 6310ce403..66d33beca 100644 --- a/interface/web/mail/lib/lang/tr_mail_user_list.lng +++ b/interface/web/mail/lib/lang/tr_mail_user_list.lng @@ -1,11 +1,11 @@ diff --git a/interface/web/mail/lib/lang/tr_mail_whitelist_list.lng b/interface/web/mail/lib/lang/tr_mail_whitelist_list.lng index 7809a24fe..736b395ca 100644 --- a/interface/web/mail/lib/lang/tr_mail_whitelist_list.lng +++ b/interface/web/mail/lib/lang/tr_mail_whitelist_list.lng @@ -3,7 +3,7 @@ $wb['list_head_txt'] = 'E-posta Beyaz Listesi'; $wb['active_txt'] = 'Etkin'; $wb['server_id_txt'] = 'Sunucu'; $wb['source_txt'] = 'Beyaz Listedeki Adres'; -$wb['type_txt'] = 'Tip'; +$wb['type_txt'] = 'Tür'; $wb['recipient_txt'] = 'Alıcı'; $wb['add_new_record_txt'] = 'Beyaz Liste Kaydı Ekle'; $wb['access_txt'] = 'Erişim'; diff --git a/interface/web/mail/lib/lang/tr_spamfilter_blacklist_list.lng b/interface/web/mail/lib/lang/tr_spamfilter_blacklist_list.lng index 1e0f67347..40e3c5fb1 100644 --- a/interface/web/mail/lib/lang/tr_spamfilter_blacklist_list.lng +++ b/interface/web/mail/lib/lang/tr_spamfilter_blacklist_list.lng @@ -1,5 +1,5 @@ diff --git a/interface/web/mail/lib/lang/tr_spamfilter_config_list.lng b/interface/web/mail/lib/lang/tr_spamfilter_config_list.lng index 2b6e0b3c1..dc30cf868 100644 --- a/interface/web/mail/lib/lang/tr_spamfilter_config_list.lng +++ b/interface/web/mail/lib/lang/tr_spamfilter_config_list.lng @@ -1,5 +1,5 @@ diff --git a/interface/web/mail/lib/lang/tr_spamfilter_policy.lng b/interface/web/mail/lib/lang/tr_spamfilter_policy.lng index d7b76496a..45a52ffc9 100644 --- a/interface/web/mail/lib/lang/tr_spamfilter_policy.lng +++ b/interface/web/mail/lib/lang/tr_spamfilter_policy.lng @@ -1,51 +1,38 @@ diff --git a/interface/web/mail/lib/lang/tr_spamfilter_policy_list.lng b/interface/web/mail/lib/lang/tr_spamfilter_policy_list.lng index 78459c3f2..cb5b9b83a 100644 --- a/interface/web/mail/lib/lang/tr_spamfilter_policy_list.lng +++ b/interface/web/mail/lib/lang/tr_spamfilter_policy_list.lng @@ -1,9 +1,9 @@ diff --git a/interface/web/mail/lib/lang/tr_spamfilter_users_list.lng b/interface/web/mail/lib/lang/tr_spamfilter_users_list.lng index 847c5bdf4..bee9372cb 100644 --- a/interface/web/mail/lib/lang/tr_spamfilter_users_list.lng +++ b/interface/web/mail/lib/lang/tr_spamfilter_users_list.lng @@ -1,10 +1,10 @@ diff --git a/interface/web/mail/lib/lang/tr_spamfilter_whitelist_list.lng b/interface/web/mail/lib/lang/tr_spamfilter_whitelist_list.lng index c29bf003c..5e1f95da1 100644 --- a/interface/web/mail/lib/lang/tr_spamfilter_whitelist_list.lng +++ b/interface/web/mail/lib/lang/tr_spamfilter_whitelist_list.lng @@ -1,5 +1,5 @@ diff --git a/interface/web/mail/lib/lang/tr_xmpp_domain_admin_list.lng b/interface/web/mail/lib/lang/tr_xmpp_domain_admin_list.lng index af643eab5..0a0c7abe6 100644 --- a/interface/web/mail/lib/lang/tr_xmpp_domain_admin_list.lng +++ b/interface/web/mail/lib/lang/tr_xmpp_domain_admin_list.lng @@ -1,8 +1,8 @@ diff --git a/interface/web/mail/lib/lang/tr_xmpp_domain_list.lng b/interface/web/mail/lib/lang/tr_xmpp_domain_list.lng index ebfebab7d..50a7d55cd 100644 --- a/interface/web/mail/lib/lang/tr_xmpp_domain_list.lng +++ b/interface/web/mail/lib/lang/tr_xmpp_domain_list.lng @@ -1,7 +1,7 @@ diff --git a/interface/web/mail/lib/lang/tr_xmpp_user.lng b/interface/web/mail/lib/lang/tr_xmpp_user.lng index 6ab739d98..c83f1ecef 100644 --- a/interface/web/mail/lib/lang/tr_xmpp_user.lng +++ b/interface/web/mail/lib/lang/tr_xmpp_user.lng @@ -1,15 +1,15 @@ diff --git a/interface/web/mail/lib/lang/tr_xmpp_user_list.lng b/interface/web/mail/lib/lang/tr_xmpp_user_list.lng index f2651cb62..a6af23d15 100644 --- a/interface/web/mail/lib/lang/tr_xmpp_user_list.lng +++ b/interface/web/mail/lib/lang/tr_xmpp_user_list.lng @@ -1,8 +1,8 @@ diff --git a/interface/web/mailuser/lib/lang/br.lng b/interface/web/mailuser/lib/lang/br.lng index 55eca578a..64f934680 100644 --- a/interface/web/mailuser/lib/lang/br.lng +++ b/interface/web/mailuser/lib/lang/br.lng @@ -1,9 +1,9 @@ diff --git a/interface/web/mailuser/lib/lang/br_index.lng b/interface/web/mailuser/lib/lang/br_index.lng index eb7d7e1e7..9be2fbdb2 100644 --- a/interface/web/mailuser/lib/lang/br_index.lng +++ b/interface/web/mailuser/lib/lang/br_index.lng @@ -1,12 +1,12 @@ diff --git a/interface/web/mailuser/lib/lang/br_mail_user_autoresponder.lng b/interface/web/mailuser/lib/lang/br_mail_user_autoresponder.lng index 6e00682a4..9de387d79 100644 --- a/interface/web/mailuser/lib/lang/br_mail_user_autoresponder.lng +++ b/interface/web/mailuser/lib/lang/br_mail_user_autoresponder.lng @@ -1,13 +1,13 @@ diff --git a/interface/web/mailuser/lib/lang/br_mail_user_cc.lng b/interface/web/mailuser/lib/lang/br_mail_user_cc.lng index f6d96f02a..7a1e9a3d9 100644 --- a/interface/web/mailuser/lib/lang/br_mail_user_cc.lng +++ b/interface/web/mailuser/lib/lang/br_mail_user_cc.lng @@ -1,9 +1,9 @@ diff --git a/interface/web/mailuser/lib/lang/br_mail_user_filter.lng b/interface/web/mailuser/lib/lang/br_mail_user_filter.lng index 37196f5d6..acefe8be6 100644 --- a/interface/web/mailuser/lib/lang/br_mail_user_filter.lng +++ b/interface/web/mailuser/lib/lang/br_mail_user_filter.lng @@ -5,17 +5,17 @@ $wb['target_txt'] = 'Pasta'; $wb['active_txt'] = 'Ativo'; $wb['rulename_error_empty'] = 'Nome está em branco.'; $wb['searchterm_is_empty'] = 'Termo de pesquisa está em branco.'; -$wb['source_txt'] = 'Fonte'; -$wb['target_error_regex'] = 'O alvo pode conter os seguintes caracteres: \'a-z\', \'0-9\', \'-\', \'.\', \'_\', e \'{espaço}\'.'; -$wb['limit_mailfilter_txt'] = 'O limite de filtros de e-mails para esta conta foi alcançado.'; +$wb['source_txt'] = 'Origem'; +$wb['target_error_regex'] = 'O alvo pode conter apenas estes caracteres: "a-z", "0-9", "-", ".", "_", e "{espaço}".'; +$wb['limit_mailfilter_txt'] = 'O limite de filtros de e-mail para esta conta foi alcançado.'; +$wb['mailbox_filter_txt'] = 'Filtro de conta de e-mail'; $wb['subject_txt'] = 'Assunto'; $wb['from_txt'] = 'De'; $wb['to_txt'] = 'Para'; -$wb['contains_txt'] = 'Contém'; -$wb['is_txt'] = 'É'; +$wb['contains_txt'] = 'Contêm'; +$wb['is_txt'] = 'é'; $wb['begins_with_txt'] = 'Iniciando com'; -$wb['ends_with_txt'] = 'Terminando com'; +$wb['ends_with_txt'] = 'Finalizando com'; $wb['move_to_txt'] = 'Mover para'; $wb['delete_txt'] = 'Remover'; -$wb['mailbox_filter_txt'] = 'Filtro de e-mail'; ?> diff --git a/interface/web/mailuser/lib/lang/br_mail_user_filter_list.lng b/interface/web/mailuser/lib/lang/br_mail_user_filter_list.lng index 5d0f24197..5e13e8c30 100644 --- a/interface/web/mailuser/lib/lang/br_mail_user_filter_list.lng +++ b/interface/web/mailuser/lib/lang/br_mail_user_filter_list.lng @@ -4,5 +4,5 @@ $wb['rulename_txt'] = 'Nome'; $wb['add_new_record_txt'] = 'Adicionar novo filtro'; $wb['page_txt'] = 'Página'; $wb['page_of_txt'] = 'de'; -$wb['delete_confirmation'] = 'Você tem certeza que gostaria de remover este filtro de e-mail?'; +$wb['delete_confirmation'] = 'Você tem certeza que deseja remover este filtro de e-mail?'; ?> diff --git a/interface/web/mailuser/lib/lang/br_mail_user_password.lng b/interface/web/mailuser/lib/lang/br_mail_user_password.lng index 154a44cd7..7a64df748 100644 --- a/interface/web/mailuser/lib/lang/br_mail_user_password.lng +++ b/interface/web/mailuser/lib/lang/br_mail_user_password.lng @@ -1,11 +1,11 @@ diff --git a/interface/web/mailuser/lib/lang/br_mail_user_spamfilter.lng b/interface/web/mailuser/lib/lang/br_mail_user_spamfilter.lng index a4973817a..eb3692204 100644 --- a/interface/web/mailuser/lib/lang/br_mail_user_spamfilter.lng +++ b/interface/web/mailuser/lib/lang/br_mail_user_spamfilter.lng @@ -1,7 +1,7 @@ diff --git a/interface/web/mailuser/lib/lang/tr.lng b/interface/web/mailuser/lib/lang/tr.lng index fa5a7e12a..c9d03bfff 100644 --- a/interface/web/mailuser/lib/lang/tr.lng +++ b/interface/web/mailuser/lib/lang/tr.lng @@ -4,6 +4,6 @@ $wb['Overview'] = 'Özet'; $wb['Password'] = 'Parola'; $wb['Autoresponder'] = 'Otomatik yanıtlayıcı'; $wb['Send copy'] = 'Kopya gönder'; -$wb['Spamfilter'] = 'Önemsiz posta süzgeci'; +$wb['Spamfilter'] = 'Önemsiz ileti süzgeci'; $wb['Email Filters'] = 'E-posta Süzgeçleri'; ?> diff --git a/interface/web/mailuser/lib/lang/tr_index.lng b/interface/web/mailuser/lib/lang/tr_index.lng index 4c0c553b7..47e12d698 100644 --- a/interface/web/mailuser/lib/lang/tr_index.lng +++ b/interface/web/mailuser/lib/lang/tr_index.lng @@ -1,11 +1,11 @@ diff --git a/interface/web/mailuser/lib/lang/tr_mail_user_filter_list.lng b/interface/web/mailuser/lib/lang/tr_mail_user_filter_list.lng index 36bfe6a25..3a14043e9 100644 --- a/interface/web/mailuser/lib/lang/tr_mail_user_filter_list.lng +++ b/interface/web/mailuser/lib/lang/tr_mail_user_filter_list.lng @@ -4,5 +4,5 @@ $wb['rulename_txt'] = 'Ad'; $wb['add_new_record_txt'] = 'Süzgeç Ekle'; $wb['page_txt'] = 'Sayfa'; $wb['page_of_txt'] = '/'; -$wb['delete_confirmation'] = 'Posta süzgecini silmek istediğinize emin misiniz?'; +$wb['delete_confirmation'] = 'E-posta süzgecini silmek istediğinize emin misiniz?'; ?> diff --git a/interface/web/mailuser/lib/lang/tr_mail_user_password.lng b/interface/web/mailuser/lib/lang/tr_mail_user_password.lng index d06ad94bb..c35319ced 100644 --- a/interface/web/mailuser/lib/lang/tr_mail_user_password.lng +++ b/interface/web/mailuser/lib/lang/tr_mail_user_password.lng @@ -1,11 +1,11 @@ diff --git a/interface/web/mailuser/lib/lang/tr_mail_user_spamfilter.lng b/interface/web/mailuser/lib/lang/tr_mail_user_spamfilter.lng index d63f274e4..3426385a2 100644 --- a/interface/web/mailuser/lib/lang/tr_mail_user_spamfilter.lng +++ b/interface/web/mailuser/lib/lang/tr_mail_user_spamfilter.lng @@ -1,6 +1,6 @@ Não encontramos nenhum dos dois neste servidor.

Isto significa que não podemos oferecer suporte ao seu RAID ainda.'; +$wb['monitor_norkhunter_txt'] = 'O RKHunter não está instalado, desta forma, não existe log'; $wb['monitor_serverstate_server_txt'] = 'Servidor'; $wb['monitor_serverstate_kernel_txt'] = 'Kernel'; $wb['monitor_serverstate_state_txt'] = 'Estado'; -$wb['monitor_serverstate_unknown_txt'] = 'desconhecido(s)'; -$wb['monitor_serverstate_info_txt'] = 'informação(es)'; -$wb['monitor_serverstate_warning_txt'] = 'aviso(s)'; -$wb['monitor_serverstate_critical_txt'] = 'crítico(s)'; -$wb['monitor_serverstate_error_txt'] = 'erro(s)'; +$wb['monitor_serverstate_unknown_txt'] = 'desconhecido'; +$wb['monitor_serverstate_info_txt'] = 'info'; +$wb['monitor_serverstate_warning_txt'] = 'alerta'; +$wb['monitor_serverstate_critical_txt'] = 'crítico'; +$wb['monitor_serverstate_error_txt'] = 'erro'; $wb['monitor_serverstate_moreinfo_txt'] = 'Mais informações...'; $wb['monitor_serverstate_more_txt'] = 'Mais...'; -$wb['monitor_serverstate_fclamok_txt'] = 'Definições de anti-vírus OK'; -$wb['monitor_serverstate_fclamoutdated_txt'] = 'Definições de anti-vírus DESATUALIZADAS!'; +$wb['monitor_serverstate_fclamok_txt'] = 'A proteção anti-vírus está ok'; +$wb['monitor_serverstate_fclamoutdated_txt'] = 'A proteção anti-vírus está desatualizada!'; $wb['monitor_serverstate_fclamunknown_txt'] = 'Freshclam: ???!'; -$wb['monitor_serverstate_hdok_txt'] = 'Disco OK'; -$wb['monitor_serverstate_hdgoingfull_txt'] = 'Disco cheio'; -$wb['monitor_serverstate_hdnearlyfull_txt'] = 'Disco com pouco espaço'; -$wb['monitor_serverstate_hdveryfull_txt'] = 'Disco com espaço insuficiente'; -$wb['monitor_serverstate_hdfull_txt'] = 'Disco sem espaço'; -$wb['monitor_serverstate_hdunknown_txt'] = 'Disco rígido: ???'; +$wb['monitor_serverstate_hdok_txt'] = 'O uso do disco está ok'; +$wb['monitor_serverstate_hdgoingfull_txt'] = 'O uso do disco está moderado'; +$wb['monitor_serverstate_hdnearlyfull_txt'] = 'O uso do disco está próximo do limite'; +$wb['monitor_serverstate_hdveryfull_txt'] = 'O uso do disco está crítico'; +$wb['monitor_serverstate_hdfull_txt'] = 'Não existe mais espaço no disco para uso'; +$wb['monitor_serverstate_hdunknown_txt'] = 'Disco(HDD): ???'; $wb['monitor_serverstate_listok_txt'] = 'ok'; -$wb['monitor_serverstate_listinfo_txt'] = 'informação'; -$wb['monitor_serverstate_listwarning_txt'] = 'aviso'; +$wb['monitor_serverstate_listinfo_txt'] = 'info'; +$wb['monitor_serverstate_listwarning_txt'] = 'alerta'; $wb['monitor_serverstate_listcritical_txt'] = 'crítico'; $wb['monitor_serverstate_listerror_txt'] = 'erro'; $wb['monitor_serverstate_listunknown_txt'] = 'desconhecido'; -$wb['monitor_serverstate_loadok_txt'] = 'Carga do servidor OK'; -$wb['monitor_serverstate_loadheavy_txt'] = 'Carga do servidor: alta'; -$wb['monitor_serverstate_loadhigh_txt'] = 'Carga do servidor: média'; -$wb['monitor_serverstate_loaghigher_txt'] = 'Carga do servidor: excessiva'; -$wb['monitor_serverstate_loadhighest_txt'] = 'Carga do servidor: extrema'; -$wb['monitor_serverstate_loadunknown_txt'] = 'Carga do servidor: ???'; -$wb['monitor_serverstate_mailqok_txt'] = 'Fila de e-mails OK'; -$wb['monitor_serverstate_mailqheavy_txt'] = 'Fila de e-mails: alta'; -$wb['monitor_serverstate_mailqhigh_txt'] = 'Fila de e-mails: média'; -$wb['monitor_serverstate_mailqhigher_txt'] = 'Fila de e-mails: excessiva'; -$wb['monitor_serverstate_mailqhighest_txt'] = 'Fila de e-mails: extrema'; +$wb['monitor_serverstate_loadok_txt'] = 'A carga do servidor está ok'; +$wb['monitor_serverstate_loadheavy_txt'] = 'O servidor está sob carga média'; +$wb['monitor_serverstate_loadhigh_txt'] = 'O servidor está sob carga alta'; +$wb['monitor_serverstate_loaghigher_txt'] = 'O servidor está sob carga muito alta'; +$wb['monitor_serverstate_loadhighest_txt'] = 'O servidor está sob carga crítica'; +$wb['monitor_serverstate_loadunknown_txt'] = 'Carga do Servidor: ???'; +$wb['monitor_serverstate_mailqok_txt'] = 'A fila de e-mails está ok'; +$wb['monitor_serverstate_mailqheavy_txt'] = 'A fila de e-mails está moderada'; +$wb['monitor_serverstate_mailqhigh_txt'] = 'A fila de e-mails está grande'; +$wb['monitor_serverstate_mailqhigher_txt'] = 'A fila de está muito grande'; +$wb['monitor_serverstate_mailqhighest_txt'] = 'A fila de e-mails está crítica'; $wb['monitor_serverstate_mailqunknown_txt'] = 'Fila de e-mails: ???'; -$wb['monitor_serverstate_raidok_txt'] = 'RAID OK'; -$wb['monitor_serverstate_raidresync_txt'] = 'RAID em modo RESYNC'; -$wb['monitor_serverstate_raidfault_txt'] = 'RAID possui um disco com falhas. Troque-o o mais rápido possível!'; -$wb['monitor_serverstate_raiderror_txt'] = 'RAID parado.'; -$wb['monitor_serverstate_raidunknown_txt'] = 'RAID: ???'; -$wb['monitor_serverstate_servicesonline_txt'] = 'Todos os serviços necessários estão on-line'; -$wb['monitor_serverstate_servicesoffline_txt'] = 'Um ou mais serviços necessários estão off-line'; +$wb['monitor_serverstate_raidok_txt'] = 'O RAID está ok'; +$wb['monitor_serverstate_raidresync_txt'] = 'O RAID está em modo RESYNC'; +$wb['monitor_serverstate_raidfault_txt'] = 'O RAID possui uma disco com falha. Substitua o mais rápido possível!'; +$wb['monitor_serverstate_raiderror_txt'] = 'O RAID não está funcionando'; +$wb['monitor_serverstate_raidunknown_txt'] = 'Estado do RAID: ???'; +$wb['monitor_serverstate_servicesonline_txt'] = 'Todos os serviços estão on-line'; +$wb['monitor_serverstate_servicesoffline_txt'] = 'Um ou mais serviços estão off-line'; $wb['monitor_serverstate_servicesunknown_txt'] = 'Serviços: ???'; -$wb['monitor_serverstate_syslogok_txt'] = 'O log do sistema está OK'; -$wb['monitor_serverstate_syslogwarning_txt'] = 'Existem alguns alertas no log do sistema'; -$wb['monitor_serverstate_syslogerror_txt'] = 'Existem erros no log do sistema'; -$wb['monitor_serverstate_syslogunknown_txt'] = 'syslog:???'; -$wb['monitor_serverstate_updatesok_txt'] = 'Sistema atualizado.'; -$wb['monitor_serverstate_updatesneeded_txt'] = 'Um ou mais componentes necessitam de atualização'; -$wb['monitor_serverstate_updatesunknown_txt'] = 'Estado do sistema:???'; +$wb['monitor_serverstate_syslogok_txt'] = 'O log do sistema está ok.'; +$wb['monitor_serverstate_syslogwarning_txt'] = 'Existem algumas mensagens de alerta no log do sistema'; +$wb['monitor_serverstate_syslogerror_txt'] = 'Existem algumas mensagens de erros no log do sistema'; +$wb['monitor_serverstate_syslogunknown_txt'] = 'Log do sistema: ???'; +$wb['monitor_serverstate_updatesok_txt'] = 'O sistema está atualizado.'; +$wb['monitor_serverstate_updatesneeded_txt'] = 'Um ou mais componentes do sistema necessitam atualização'; +$wb['monitor_serverstate_updatesunknown_txt'] = 'Atualizar Sistema: ???'; +$wb['monitor_serverstate_beancounterok_txt'] = 'O beancounter está ok'; +$wb['monitor_serverstate_beancounterinfo_txt'] = 'Existe uma falha de visualização no beancounter'; +$wb['monitor_serverstate_beancounterwarning_txt'] = 'Existe alguma falha no beancounter'; +$wb['monitor_serverstate_beancountercritical_txt'] = 'Existem várias falhas no beancounter'; +$wb['monitor_serverstate_beancountererror_txt'] = 'Existem muitas falhas no beancounter'; $wb['monitor_services_online_txt'] = 'On-line'; $wb['monitor_services_offline_txt'] = 'Off-line'; -$wb['monitor_services_web_txt'] = 'Servidor de páginas:'; -$wb['monitor_services_ftp_txt'] = 'Servidor ftp:'; -$wb['monitor_services_smtp_txt'] = 'Servidor smtp:'; -$wb['monitor_services_pop_txt'] = 'Servidor pop:'; -$wb['monitor_services_imap_txt'] = 'Servidor imap:'; -$wb['monitor_services_mydns_txt'] = 'Servidor dns:'; -$wb['monitor_services_mysql_txt'] = 'Servidor mysql:'; -$wb['monitor_settings_datafromdate_txt'] = 'Data de: '; -$wb['monitor_settings_datetimeformat_txt'] = 'd/m/Y H:i'; -$wb['monitor_settings_refreshsq_txt'] = 'Atualizar sequência:'; +$wb['monitor_services_web_txt'] = 'Servidor WEB:'; +$wb['monitor_services_ftp_txt'] = 'Servidor FTP:'; +$wb['monitor_services_smtp_txt'] = 'Servidor SMTP:'; +$wb['monitor_services_pop_txt'] = 'Servidor POP3:'; +$wb['monitor_services_imap_txt'] = 'Servidor IMAP:'; +$wb['monitor_services_mydns_txt'] = 'Servidor DNS:'; +$wb['monitor_services_mongodb_txt'] = 'Servidor MONGODB:'; +$wb['monitor_services_mysql_txt'] = 'Servidor MYSQL:'; +$wb['monitor_settings_datafromdate_txt'] = 'Dados de: '; +$wb['monitor_settings_datetimeformat_txt'] = 'd-m-Y H:i'; +$wb['monitor_settings_refreshsq_txt'] = 'Sequência de atualização:'; $wb['monitor_settings_server_txt'] = 'Servidor'; -$wb['monitor_title_cpuinfo_txt'] = 'Informação da cpu'; -$wb['monitor_title_updatestate_txt'] = 'Atualizar estado'; +$wb['monitor_title_cpuinfo_txt'] = 'Informações de CPU'; +$wb['monitor_title_updatestate_txt'] = 'Atualizar Estado'; $wb['monitor_title_mailq_txt'] = 'Fila de e-mails'; $wb['monitor_title_raidstate_txt'] = 'Estado do RAID'; -$wb['monitor_title_rkhunterlog_txt'] = 'Log do RKHunter'; -$wb['monitor_updates_nosupport_txt'] = 'Sua distribuição não suporta este tipo de monitoramento'; +$wb['monitor_title_rkhunterlog_txt'] = 'Log do rkhunter'; $wb['monitor_title_fail2ban_txt'] = 'Log do fail2ban'; -$wb['monitor_nosupportedraid1_txt'] = 'Até o presente momento, o suporte a mdadm ou mpt-status para monitoramento do RAID não foi encontrado.

Provavelmente seu servidor não possui recursos de RAID a serem monitorados.'; -$wb['monitor_serverstate_beancounterok_txt'] = 'Beancounter OK'; -$wb['monitor_serverstate_beancounterinfo_txt'] = 'Existem poucas falhas no beancounter'; -$wb['monitor_serverstate_beancounterwarning_txt'] = 'Existem algumas falhas no beancounter'; -$wb['monitor_serverstate_beancountercritical_txt'] = 'Existem falhas críticas no beancounter'; -$wb['monitor_serverstate_beancountererror_txt'] = 'Existem diversas falhas no beancounter'; -$wb['monitor_title_beancounter_txt'] = 'Beancounter openvz ve'; -$wb['monitor_beancounter_nosupport_txt'] = 'Este servidor não é um um contêiner openvz e não contém informações de beancounter.'; -$wb['monitor_title_iptables_txt'] = 'Regras do firewall'; -$wb['Show fail2ban-Log'] = 'Exibir log do fail2ban'; -$wb['Show IPTables'] = 'Exibir regras do firewall'; -$wb['Show OpenVz VE BeanCounter'] = 'Exibir beancounter do openvz'; +$wb['monitor_title_mongodb_txt'] = 'Log do mongodb'; +$wb['monitor_title_iptables_txt'] = 'Regras de Firewall'; +$wb['monitor_title_beancounter_txt'] = 'Beancounter openvz'; +$wb['monitor_updates_nosupport_txt'] = 'Sua distribuição não é suportada por este monitoramento'; +$wb['monitor_beancounter_nosupport_txt'] = 'Este servidor não é um openvz e não possui nenhuma informação do beancounter'; $wb['Show Monit'] = 'Exibir Monit'; -$wb['no_monit_url_defined_txt'] = 'Nenhuma url do Monit configurada.'; +$wb['no_monit_url_defined_txt'] = 'Nenhuma URL do Monit definida.'; $wb['no_permissions_to_view_monit_txt'] = 'Você não tem permissão para acessar o Monit.'; $wb['Show Munin'] = 'Exibir Munin'; -$wb['no_munin_url_defined_txt'] = 'Nenhuma url do Muni configurada.'; +$wb['no_munin_url_defined_txt'] = 'Nenhuma URL do Munin definida.'; $wb['no_permissions_to_view_munin_txt'] = 'Você não tem permissão para acessar o Munin.'; -$wb['no_data_database_size_txt'] = 'Nenhuma informação de uso do banco de dados disponível no momento. Por favor verifique novamente mais tarde.'; -$wb['monitor_database_name_txt'] = 'Banco de dados'; -$wb['monitor_database_size_txt'] = 'Tamanho'; -$wb['monitor_database_client_txt'] = 'Cliente'; -$wb['monitor_database_domain_txt'] = 'Domínio'; -$wb['Show MongoDB-Log'] = 'Exibir logs do MongoDB'; -$wb['monitor_services_mongodb_txt'] = 'Servidor MongoDB:'; -$wb['monitor_title_mongodb_txt'] = 'Logs do MongoDB'; -$wb['Show Data Log History'] = 'Show Data Log History'; ?> diff --git a/interface/web/monitor/lib/lang/br_datalog_list.lng b/interface/web/monitor/lib/lang/br_datalog_list.lng index e6b2f554c..8e044daeb 100644 --- a/interface/web/monitor/lib/lang/br_datalog_list.lng +++ b/interface/web/monitor/lib/lang/br_datalog_list.lng @@ -1,8 +1,8 @@ diff --git a/interface/web/monitor/lib/lang/br_dataloghistory_list.lng b/interface/web/monitor/lib/lang/br_dataloghistory_list.lng index f1ba8c67b..0a02fda07 100644 --- a/interface/web/monitor/lib/lang/br_dataloghistory_list.lng +++ b/interface/web/monitor/lib/lang/br_dataloghistory_list.lng @@ -1,8 +1,8 @@ diff --git a/interface/web/monitor/lib/lang/br_dataloghistory_undo.lng b/interface/web/monitor/lib/lang/br_dataloghistory_undo.lng index 0e040a3e7..be544e611 100644 --- a/interface/web/monitor/lib/lang/br_dataloghistory_undo.lng +++ b/interface/web/monitor/lib/lang/br_dataloghistory_undo.lng @@ -1,7 +1,7 @@ diff --git a/interface/web/monitor/lib/lang/br_dataloghistory_view.lng b/interface/web/monitor/lib/lang/br_dataloghistory_view.lng index df9ddd286..835469328 100644 --- a/interface/web/monitor/lib/lang/br_dataloghistory_view.lng +++ b/interface/web/monitor/lib/lang/br_dataloghistory_view.lng @@ -1,26 +1,26 @@ diff --git a/interface/web/monitor/lib/lang/br_syslog_list.lng b/interface/web/monitor/lib/lang/br_syslog_list.lng index 23f3c6d5d..ca5a37356 100644 --- a/interface/web/monitor/lib/lang/br_syslog_list.lng +++ b/interface/web/monitor/lib/lang/br_syslog_list.lng @@ -1,7 +1,7 @@ diff --git a/interface/web/monitor/lib/lang/tr.lng b/interface/web/monitor/lib/lang/tr.lng index 005b4d97e..20a9e8e14 100644 --- a/interface/web/monitor/lib/lang/tr.lng +++ b/interface/web/monitor/lib/lang/tr.lng @@ -1,21 +1,22 @@ Bunlardan biri sunucunuzda bulunamadı.

Bu nedenle RAID sürücünüz henüz desteklenemiyor.'; -$wb['monitor_norkhunter_txt'] = 'RKHunter yüklü olmadığından herhangi bir günlük verisi yok'; +$wb['monitor_nosupportedraid1_txt'] = 'Şimdilik RAID durumunu izlemek için ya da destekleniyor.
Bunlardan biri sunucunuzda bulunamadı.

Bu nedenle RAID sürücünüz henüz desteklenemiyor.'; +$wb['monitor_norkhunter_txt'] = 'RKHunter kurulu olmadığından herhangi bir günlük verisi yok'; $wb['monitor_serverstate_server_txt'] = 'Sunucu'; $wb['monitor_serverstate_kernel_txt'] = 'Kernel'; $wb['monitor_serverstate_state_txt'] = 'Durum'; @@ -75,7 +81,7 @@ $wb['monitor_serverstate_info_txt'] = 'bilgi'; $wb['monitor_serverstate_warning_txt'] = 'uyarı'; $wb['monitor_serverstate_critical_txt'] = 'kritik'; $wb['monitor_serverstate_error_txt'] = 'hata'; -$wb['monitor_serverstate_moreinfo_txt'] = 'Ayrıntılı bilgi...'; +$wb['monitor_serverstate_moreinfo_txt'] = 'Ayrıntılı bilgiler...'; $wb['monitor_serverstate_more_txt'] = 'Ayrıntılar...'; $wb['monitor_serverstate_fclamok_txt'] = 'Virüs koruması sorunsuz'; $wb['monitor_serverstate_fclamoutdated_txt'] = 'Virüs koruması GÜNCEL DEĞİL!'; @@ -93,17 +99,17 @@ $wb['monitor_serverstate_listcritical_txt'] = 'kritik'; $wb['monitor_serverstate_listerror_txt'] = 'hata'; $wb['monitor_serverstate_listunknown_txt'] = 'bilinmiyor'; $wb['monitor_serverstate_loadok_txt'] = 'Sunucu yükü: Sorunsuz'; -$wb['monitor_serverstate_loadheavy_txt'] = 'Sunucu yükü: Ağır'; +$wb['monitor_serverstate_loadheavy_txt'] = 'Sunucu yükü: Fazla'; $wb['monitor_serverstate_loadhigh_txt'] = 'Sunucu yükü: Yüksek'; $wb['monitor_serverstate_loaghigher_txt'] = 'Sunucu yükü: Çok yüksek'; $wb['monitor_serverstate_loadhighest_txt'] = 'Sunucu yükü: En yüksek'; $wb['monitor_serverstate_loadunknown_txt'] = 'Sunucu yükü: ???'; -$wb['monitor_serverstate_mailqok_txt'] = 'Posta kuyruğu yükü: Sorunsuz'; -$wb['monitor_serverstate_mailqheavy_txt'] = 'Posta kuyruğu yükü: Ağır'; -$wb['monitor_serverstate_mailqhigh_txt'] = 'Posta kuyruğu yükü: Yüksek'; -$wb['monitor_serverstate_mailqhigher_txt'] = 'Posta kuyruğu yükü: Çok yüksek'; -$wb['monitor_serverstate_mailqhighest_txt'] = 'Posta kuyruğu yükü: En yüksek'; -$wb['monitor_serverstate_mailqunknown_txt'] = 'Posta kuyruğu yükü: ???'; +$wb['monitor_serverstate_mailqok_txt'] = 'E-posta kuyruğu yükü: Sorunsuz'; +$wb['monitor_serverstate_mailqheavy_txt'] = 'E-posta kuyruğu yükü: Fazla'; +$wb['monitor_serverstate_mailqhigh_txt'] = 'E-posta kuyruğu yükü: Yüksek'; +$wb['monitor_serverstate_mailqhigher_txt'] = 'E-posta kuyruğu yükü: Çok yüksek'; +$wb['monitor_serverstate_mailqhighest_txt'] = 'E-posta kuyruğu yükü: En yüksek'; +$wb['monitor_serverstate_mailqunknown_txt'] = 'E-posta kuyruğu yükü: ???'; $wb['monitor_serverstate_raidok_txt'] = 'RAID sorunsuz'; $wb['monitor_serverstate_raidresync_txt'] = 'RAID, RESYNC kipinde'; $wb['monitor_serverstate_raidfault_txt'] = 'RAID dizisinde hatalı bir disk var. Bu diski en kısa sürede değiştirmelisiniz!'; @@ -118,6 +124,7 @@ $wb['monitor_serverstate_syslogerror_txt'] = 'Sistem günlüğünde hatalar var' $wb['monitor_serverstate_syslogunknown_txt'] = 'Sistem Günlüğü: ???'; $wb['monitor_serverstate_updatesok_txt'] = 'Sistem güncel'; $wb['monitor_serverstate_updatesneeded_txt'] = 'Bir ya da daha fazla bileşenin güncellenmesi gerekiyor'; +$wb['monitor_serverstate_updatesunknown_txt'] = 'Sistem Güncelleme: ???'; $wb['monitor_serverstate_beancounterok_txt'] = 'Beancounter sorunsuz'; $wb['monitor_serverstate_beancounterinfo_txt'] = 'Beancounter kayıtlarında az sayıda hata var'; $wb['monitor_serverstate_beancounterwarning_txt'] = 'Beancounter kayıtlarında ortalama sayıda hata var'; @@ -130,7 +137,8 @@ $wb['monitor_services_ftp_txt'] = 'FTP Sunucu:'; $wb['monitor_services_smtp_txt'] = 'SMTP Sunucu:'; $wb['monitor_services_pop_txt'] = 'POP3 Sunucu:'; $wb['monitor_services_imap_txt'] = 'IMAP Sunucu:'; -$wb['monitor_services_mydns_txt'] = 'myDNS Sunucu:'; +$wb['monitor_services_mydns_txt'] = 'DNS Sunucu:'; +$wb['monitor_services_mongodb_txt'] = 'MongoDB Sunucusu:'; $wb['monitor_services_mysql_txt'] = 'mySQL Sunucu:'; $wb['monitor_settings_datafromdate_txt'] = 'Veri tarihi: '; $wb['monitor_settings_datetimeformat_txt'] = 'Y-m-d H:i'; @@ -138,10 +146,11 @@ $wb['monitor_settings_refreshsq_txt'] = 'Yenileme Sıklığı:'; $wb['monitor_settings_server_txt'] = 'Sunucu'; $wb['monitor_title_cpuinfo_txt'] = 'İşlemci Bilgileri'; $wb['monitor_title_updatestate_txt'] = 'Güncellik Durumu'; -$wb['monitor_title_mailq_txt'] = 'Posta Kuyruğu'; +$wb['monitor_title_mailq_txt'] = 'E-posta Kuyruğu'; $wb['monitor_title_raidstate_txt'] = 'RAID Durumu'; $wb['monitor_title_rkhunterlog_txt'] = 'RKHunter Günlüğü'; $wb['monitor_title_fail2ban_txt'] = 'Fail2Ban Günlüğü'; +$wb['monitor_title_mongodb_txt'] = 'MongoDB Günlüğü'; $wb['monitor_title_iptables_txt'] = 'IPTables Kuralları'; $wb['monitor_title_beancounter_txt'] = 'OpenVz VE BeanCounter'; $wb['monitor_updates_nosupport_txt'] = 'Dağıtımınız, bu izlemeyi desteklemiyor'; @@ -152,14 +161,4 @@ $wb['no_permissions_to_view_monit_txt'] = 'Monit erişimi izniniz yok.'; $wb['Show Munin'] = 'Munin Durumu'; $wb['no_munin_url_defined_txt'] = 'Munin adresi belirtilmemiş.'; $wb['no_permissions_to_view_munin_txt'] = 'Munin erişimi izniniz yok.'; -$wb['no_data_database_size_txt'] = 'No data about the database usage available at the moment. Please check again later.'; -$wb['Show MongoDB-Log'] = 'Show MongoDB-Log'; -$wb['monitor_database_name_txt'] = 'Database'; -$wb['monitor_database_size_txt'] = 'Size'; -$wb['monitor_database_client_txt'] = 'Client'; -$wb['monitor_database_domain_txt'] = 'Domain'; -$wb['monitor_serverstate_updatesunknown_txt'] = 'System Update: ???'; -$wb['monitor_services_mongodb_txt'] = 'MongoDB-Server:'; -$wb['monitor_title_mongodb_txt'] = 'MongoDB Log'; -$wb['Show Data Log History'] = 'Show Data Log History'; ?> diff --git a/interface/web/sites/lib/lang/br.lng b/interface/web/sites/lib/lang/br.lng index 685ce6ed2..8710dc114 100644 --- a/interface/web/sites/lib/lang/br.lng +++ b/interface/web/sites/lib/lang/br.lng @@ -2,34 +2,37 @@ $wb['Websites'] = 'Sites'; $wb['Website'] = 'Site'; $wb['Subdomain'] = 'Subdomínio'; -$wb['Aliasdomain'] = 'Apelido de domínio'; -$wb['Database'] = 'Bancos de dados'; +$wb['Aliasdomain'] = 'Alias de domínio'; +$wb['Database'] = 'Banco de dados'; +$wb['Database User'] = 'Usuários do banco de dados'; $wb['Web Access'] = 'Acesso web'; $wb['FTP-User'] = 'Usuários ftp'; $wb['Webdav-User'] = 'Usuários webdav'; $wb['Folder'] = 'Pastas protegidas'; -$wb['Folder users'] = 'Usuários de pastas'; +$wb['Folder users'] = 'Usuários de pastas protegidas'; $wb['Command Line'] = 'Linha de comando'; -$wb['Shell-User'] = 'Usuários shell'; +$wb['Shell-User'] = 'Usuários do shell'; $wb['Cron Jobs'] = 'Tarefas no cron'; $wb['Statistics'] = 'Estatísticas'; $wb['Web traffic'] = 'Tráfego web'; -$wb['Website quota (Harddisk)'] = 'Cota para sites (disco)'; +$wb['FTP traffic'] = 'Tráfego ftp'; +$wb['Website quota (Harddisk)'] = 'Cota de site (disco)'; +$wb['Database quota'] = 'Cota do banco de dados'; +$wb['Backup Stats'] = 'Estatísticas de backups'; $wb['Cron'] = 'Cron'; $wb['Stats'] = 'Estatísticas'; $wb['Shell'] = 'Shell'; $wb['Webdav'] = 'Webdav'; $wb['FTP'] = 'FTP'; $wb['Options'] = 'Opções'; +$wb['Domain'] = 'Domínio'; $wb['Redirect'] = 'Redirecionamento'; $wb['SSL'] = 'SSL'; $wb['Sites'] = 'Sites'; -$wb['Database User'] = 'Usuários'; -$wb['APS Installer'] = 'Instalação de apps'; +$wb['APS Installer'] = 'Instalador de APPs'; $wb['Available packages'] = 'Pacotes disponíveis'; $wb['Installed packages'] = 'Pacotes instalados'; $wb['Update Packagelist'] = 'Atualizar lista de pacotes'; $wb['Subdomain (Vhost)'] = 'Subdomínio (vhost)'; -$wb['error_proxy_requires_url'] = 'Tipo de redirecionamento \\"proxy\\" exige uma url como caminho do redirecionamento.'; -$wb['Domain'] = 'Domínio'; +$wb['error_proxy_requires_url'] = 'O tipo de redirecionamento "proxy" exige uma URL como caminho de redirecionamento.'; ?> diff --git a/interface/web/sites/lib/lang/br_aps.lng b/interface/web/sites/lib/lang/br_aps.lng index 27e743435..744c21519 100644 --- a/interface/web/sites/lib/lang/br_aps.lng +++ b/interface/web/sites/lib/lang/br_aps.lng @@ -5,59 +5,59 @@ $wb['available_packages_txt'] = 'Pacotes disponíveis'; $wb['installed_packages_txt'] = 'Pacotes instalados'; $wb['yes_txt'] = 'Sim'; $wb['no_txt'] = 'Não'; -$wb['invalid_id_txt'] = 'Nenhuma ID válida inserida.'; +$wb['invalid_id_txt'] = 'Nenhuma ID válida informada.'; $wb['details_txt'] = 'Detalhes'; $wb['version_txt'] = 'Versão'; $wb['category_txt'] = 'Categoria'; -$wb['homepage_txt'] = 'Página'; +$wb['homepage_txt'] = 'Página Inicial'; $wb['supported_languages_txt'] = 'Idiomas suportados'; $wb['description_txt'] = 'Descrição'; $wb['config_script_txt'] = 'Script de configuração'; -$wb['installed_size_txt'] = 'Tamanho após instalação'; +$wb['installed_size_txt'] = 'Tamanho após a instalação'; $wb['license_txt'] = 'Licença'; -$wb['screenshots_txt'] = 'Telas'; -$wb['changelog_txt'] = 'Log de mudanças'; -$wb['server_requirements_txt'] = 'Requisitos do servidor'; -$wb['php_extensions_txt'] = 'Extensões PHP'; -$wb['php_settings_txt'] = 'Configurações do PHP'; -$wb['supported_php_versions_txt'] = 'Versões do PHP suportadas'; +$wb['screenshots_txt'] = 'Captura de telas'; +$wb['changelog_txt'] = 'Mudanças Recentes'; +$wb['server_requirements_txt'] = 'Requisitos do Servidor'; +$wb['php_extensions_txt'] = 'Extensões php'; +$wb['php_settings_txt'] = 'Configurações php'; +$wb['supported_php_versions_txt'] = 'Versões do php suportadas'; $wb['database_txt'] = 'Banco de Dados'; $wb['settings_txt'] = 'Configurações'; -$wb['install_package_txt'] = 'Instalar esse pacote'; +$wb['install_package_txt'] = 'Instalar este pacote'; $wb['installation_txt'] = 'Instalação'; $wb['install_location_txt'] = 'Local da instalação'; -$wb['acceptance_txt'] = 'Aceitação'; -$wb['acceptance_text_txt'] = 'Sim, eu li a licença e aceito os termos.'; +$wb['btn_install_txt'] = 'Instalar'; +$wb['btn_cancel_txt'] = 'Cancelar'; +$wb['acceptance_txt'] = 'Aceitar a licença'; +$wb['acceptance_text_txt'] = 'Sim, li e aceito os termos da licença.'; $wb['install_language_txt'] = 'Idioma da interface'; $wb['new_database_password_txt'] = 'Nova senha do banco de dados'; $wb['basic_settings_txt'] = 'Configurações básicas'; -$wb['package_settings_txt'] = 'Configurações do pacote'; -$wb['error_main_domain'] = 'O domínio no caminho da instalação é é inválido.'; -$wb['error_no_main_location'] = 'Você inseriu um caminho inválido para a instalação.'; -$wb['error_inv_main_location'] = 'A pasta informada para a instalação é inválida.'; -$wb['error_license_agreement'] = 'Para continuar é preciso aceitar os termos da licenciamento.'; -$wb['error_no_database_pw'] = 'Você informou uma senha inválida para o banco de dados.'; -$wb['error_short_database_pw'] = 'Por favor, escolha uma senha com maior complexidade para o banco de dados.'; -$wb['error_no_value_for'] = 'O campo \'%s\' não pode ficar está em branco.'; -$wb['error_short_value_for'] = 'O campo \'%s\' exige um valor maior.'; -$wb['error_long_value_for'] = 'O campo \'%s\' exige um valor mais curto.'; -$wb['error_inv_value_for'] = 'Você inseriu um valor inválido para o campo \'%s\'.'; -$wb['error_inv_email_for'] = 'Você inseriu um e-mail inválido para o campo \'%s\'.'; -$wb['error_inv_domain_for'] = 'Você inseriu um domínio inválido para o campo \'%s\'.'; -$wb['error_inv_integer_for'] = 'Você inseriu um número inválido para o campo \'%s\'.'; -$wb['error_inv_float_for'] = 'Você inseriu um número de ponto flutuante inválido para o campo \'%s\'.'; -$wb['error_used_location'] = 'O caminho da instalação contém um pacote de instalação.'; -$wb['installation_task_txt'] = 'Agendamento de instalação'; +$wb['package_settings_txt'] = 'Configurações de pacotes'; +$wb['error_main_domain'] = 'O domínio para a instalação é inválido.'; +$wb['error_no_main_location'] = 'Não foi informado um caminho válido para a instalação.'; +$wb['error_inv_main_location'] = 'Local da pasta de instalação informado é inválido.'; +$wb['error_license_agreement'] = 'Para continuar é necessário aceitar os termos da licença.'; +$wb['error_no_database_pw'] = 'Não foi informado uma senha válida para o banco de dados.'; +$wb['error_short_database_pw'] = 'Por favor informe uma senha do banco de dados com maior complexidade.'; +$wb['error_no_value_for'] = 'O campo "%s" não pode estar está em branco.'; +$wb['error_short_value_for'] = 'O campo "%s" requer um valor de entrada maior.'; +$wb['error_long_value_for'] = 'O campo "%s" requer um valor de entrada menor.'; +$wb['error_inv_value_for'] = 'O valor informado no campo "%s" é inválido.'; +$wb['error_inv_email_for'] = 'O e-mail informado no campo "%s" é inválido.'; +$wb['error_inv_domain_for'] = 'O domínio informado no campo "%s" é inválido.'; +$wb['error_inv_integer_for'] = 'O número informado no campo "%s" é inválido.'; +$wb['error_inv_float_for'] = 'O número de ponto flutuante informado no campo "%s" é inválido.'; +$wb['error_used_location'] = 'O caminho da instalação selecionado já possui uma instalação de pacote.'; +$wb['installation_task_txt'] = 'Instalação agendada'; $wb['installation_error_txt'] = 'Erro de instalação'; $wb['installation_success_txt'] = 'Instalado'; -$wb['installation_remove_txt'] = 'Remove agendamento'; -$wb['packagelist_update_finished_txt'] = 'Atualização da lista de pacotes finalizada.'; -$wb['btn_install_txt'] = 'Instalar'; -$wb['btn_cancel_txt'] = 'Cancelar'; -$wb['limit_aps_txt'] = 'O limite de instâncias de apps para esta conta foi alcançado.'; -$wb['generate_password_txt'] = 'Gerar senha'; -$wb['repeat_password_txt'] = 'Repetir senha'; -$wb['password_mismatch_txt'] = 'A senhas não coincidem.'; -$wb['password_match_txt'] = 'A senhas coincidem.'; +$wb['installation_remove_txt'] = 'Remover instalação agendada'; +$wb['packagelist_update_finished_txt'] = 'Lista de APPs atualizada.'; +$wb['limit_aps_txt'] = 'O limite de instâncias de APPs para esta conta foi alcançado.'; +$wb['generate_password_txt'] = 'Gerar Senha'; +$wb['repeat_password_txt'] = 'Repetir Senha'; +$wb['password_mismatch_txt'] = 'As senhas não coincidem.'; +$wb['password_match_txt'] = 'As senhas coincidem.'; $wb['password_strength_txt'] = 'Dificuldade da senha'; ?> diff --git a/interface/web/sites/lib/lang/br_aps_instances_list.lng b/interface/web/sites/lib/lang/br_aps_instances_list.lng index fb6a2addd..da5b80d68 100644 --- a/interface/web/sites/lib/lang/br_aps_instances_list.lng +++ b/interface/web/sites/lib/lang/br_aps_instances_list.lng @@ -5,7 +5,7 @@ $wb['version_txt'] = 'Versão'; $wb['customer_txt'] = 'Cliente'; $wb['status_txt'] = 'Estado'; $wb['install_location_txt'] = 'Local da instalação'; -$wb['pkg_delete_confirmation'] = 'Você realmente deseja remover esta instalação?'; +$wb['pkg_delete_confirmation'] = 'Deseja realmente remover esta instalação?'; $wb['filter_txt'] = 'Pesquisar'; $wb['delete_txt'] = 'Remover'; ?> diff --git a/interface/web/sites/lib/lang/br_aps_packages_list.lng b/interface/web/sites/lib/lang/br_aps_packages_list.lng index 641d807f5..bbd0e1ad3 100644 --- a/interface/web/sites/lib/lang/br_aps_packages_list.lng +++ b/interface/web/sites/lib/lang/br_aps_packages_list.lng @@ -1,5 +1,5 @@ diff --git a/interface/web/sites/lib/lang/br_backup_stats_list.lng b/interface/web/sites/lib/lang/br_backup_stats_list.lng index 5f7f2d9ec..932ad5dba 100644 --- a/interface/web/sites/lib/lang/br_backup_stats_list.lng +++ b/interface/web/sites/lib/lang/br_backup_stats_list.lng @@ -1,10 +1,10 @@ diff --git a/interface/web/sites/lib/lang/br_cron.lng b/interface/web/sites/lib/lang/br_cron.lng index 2bbadf6d1..98d98efa2 100644 --- a/interface/web/sites/lib/lang/br_cron.lng +++ b/interface/web/sites/lib/lang/br_cron.lng @@ -8,19 +8,19 @@ $wb['run_hour_txt'] = 'Horas'; $wb['run_mday_txt'] = 'Dias do mês'; $wb['run_month_txt'] = 'Meses'; $wb['run_wday_txt'] = 'Dias da semana'; -$wb['command_txt'] = 'Comando a executar (os comandos serão executados via sh ou urls via wget)'; +$wb['command_txt'] = 'Comando a executar (comandos são executados através do sh, urls através do wget)'; $wb['limit_cron_txt'] = 'O limite de tarefas no cron foi alcançado.'; -$wb['limit_cron_frequency_txt'] = 'A frequência das tarefas no cron ultrapassou o limite permitido.'; -$wb['run_min_error_format'] = 'Formato dos minutos é inválido.'; -$wb['run_hour_error_format'] = 'Formato das horas é inválido.'; -$wb['run_mday_error_format'] = 'Formato dos dias do mês é inválido.'; -$wb['run_month_error_format'] = 'Formato dos meses é inválido.'; -$wb['run_wday_error_format'] = 'Formato dos dias da semana é inválido.'; -$wb['command_error_format'] = 'Formato de comando é inválido. Somente endereços url http/https são permitidos.'; -$wb['unknown_fieldtype_error'] = 'Um tipo desconhecido de campo foi usado.'; -$wb['server_id_error_empty'] = 'O ID do servidor está em branco.'; -$wb['limit_cron_url_txt'] = 'Somente url do cron. Por favor, insira uma url iniciando com \\"http://\\" e um comando do cron.'; -$wb['command_error_empty'] = 'Comando está em branco.'; -$wb['command_hint_txt'] = 'Você poderá usar, por exemplo: \\"/var/www/clients/clientX/webY/meu_script.sh\\" ou \\"http://www.dominio.com.br/path/script.php\\" e também a palavra reservada \\"[web_root]\\" substituído por \\"/var/www/clients/clientX/webY/web\\".'; -$wb['log_output_txt'] = 'Saída do Log'; +$wb['limit_cron_frequency_txt'] = 'O limite de execuções das tarefas no cron foi alcançado.'; +$wb['run_min_error_format'] = 'Formato inválido para minutos.'; +$wb['run_hour_error_format'] = 'Formato inválido para horas.'; +$wb['run_mday_error_format'] = 'Formato inválido para dias do mês.'; +$wb['run_month_error_format'] = 'Formato inválido para meses.'; +$wb['run_wday_error_format'] = 'Formato inválido para dias da semana.'; +$wb['command_error_format'] = 'Comando possui formato inválido. Por favor, observe que em alguns casos somente chamadas http/https são permitidas.'; +$wb['unknown_fieldtype_error'] = 'Um tipo de campo desconhecido foi utilizado.'; +$wb['server_id_error_empty'] = 'O servidor está em branco.'; +$wb['command_hint_txt'] = 'ex.: /var/www/clients/clientX/webY/myscript.sh ou http://www.dominio.com.br/caminho/script.php, você pode utilizar a área reservada [web_root] para substituir /var/www/clients/clientX/webY/web.'; +$wb['log_output_txt'] = 'Gravar saída do log'; +$wb['limit_cron_url_txt'] = 'Somente URL no cron. Por favor insira uma URL iniciando com http:// como um comando no cron.'; +$wb['command_error_empty'] = 'Comando a executar está em branco.'; ?> diff --git a/interface/web/sites/lib/lang/br_cron_list.lng b/interface/web/sites/lib/lang/br_cron_list.lng index 89fe7932f..31017512d 100644 --- a/interface/web/sites/lib/lang/br_cron_list.lng +++ b/interface/web/sites/lib/lang/br_cron_list.lng @@ -1,10 +1,10 @@ qualquer um)'; +$wb['database_remote_error_ips'] = 'Ao menos um endereço IP informado é inválido.'; $wb['client_txt'] = 'Cliente'; $wb['active_txt'] = 'Ativo'; +$wb['database_client_differs_txt'] = 'O cliente do site pai e o banco de dados não coincidem.'; $wb['database_name_error_empty'] = 'Nome do banco de dados está em branco.'; -$wb['database_name_error_unique'] = 'Já existe um banco de dados com este nome no servidor. O nome escolhido deve ser exclusivo.'; -$wb['database_name_error_regex'] = 'Nome do banco de dados é inválido. Só é permitido para o nome do banco os caracteres: \'a-z\', \'A-Z\', \'0-9\' e o \'underscrore\'. Tamanho: 2 - 64 caracteres.'; -$wb['database_user_error_empty'] = 'Nome do usuário do banco de dados está em branco.'; -$wb['database_user_error_unique'] = 'Já existe um usuário do banco de dados com este nome no servidor. O nome escolhido deve ser exclusivo.'; -$wb['database_user_error_regex'] = 'Nome do usuário do banco de dados é inválido. Só é permitido para nome do usuário banco de dados os caracteres: \'a-z\', \'A-Z\', \'0-9\' e o \'underscrore\'. Tamanho: 2 - 64 caracteres.'; -$wb['limit_database_txt'] = 'O limite de bancos de dados permitido para esta conta foi alcançado.'; -$wb['database_name_change_txt'] = 'O nome do banco de dados não pode ser modificado.'; -$wb['database_charset_change_txt'] = 'O charset do banco de dados não pode ser modificado.'; -$wb['remote_ips_txt'] = 'Endereços IP Remotos (separados por vírgula. Em branco para quaisquer IPs)'; -$wb['database_remote_error_ips'] = 'Pelo menos um dos endereços IP informados não é válido.'; -$wb['database_name_error_len'] = 'Nome do banco de dados - {db} - é muito longo. 64 caracteres, incluindo o prefixo, é o limite permitido.'; -$wb['database_user_error_len'] = 'Nome do usuário do banco de dados \'{user}\' é muito longo. 16 caracteres, incluindo o prefixo, é o limite permitido.'; +$wb['database_name_error_unique'] = 'Já existe um banco de dados com este nome no servidor. Para ter um nome exclusivo, por exemplo, insira o domínio como prefixo do nome.'; +$wb['database_name_error_regex'] = 'Nome do banco de dados é inválido. O nome do banco de dados pode conter os seguintes caracteres: a-z, A-Z, 0-9 e underscore. Comprimento 2 - 64 caracteres.'; +$wb['database_user_error_empty'] = 'Usuário do banco de dados está em branco.'; +$wb['database_user_error_unique'] = 'Já existe um usuário de banco de dados com esse nome. Para ter um nome exclusivo, por exemplo, insira o domínio como prefixo do nome.'; +$wb['database_user_error_regex'] = 'Usuário do banco de dados é inválido. O nome do usuário pode conter os seguintes caracteres: a-z, A-Z, 0-9 e underscore. Comprimento: 2 a 16 caracteres.'; +$wb['limit_database_txt'] = 'O limite de banco de dados foi alcançado para esta conta.'; +$wb['database_name_change_txt'] = 'O nome do banco de dados não pode ser alterado.'; +$wb['database_user_missing_txt'] = 'Por favor, selecione um usuário para este banco de dados.'; +$wb['database_charset_change_txt'] = 'O charset do banco de dados não pode ser alterado.'; +$wb['database_name_error_len'] = 'Nome do banco de dados - {db} - muito longo. O comprimento do nome do banco de dados, incluindo o prefixo, são 64 caracteres.'; +$wb['database_user_error_len'] = 'Nome do usuário do banco de dados - {user} - muito longo. O comprimento do nome do usuário, incluindo o prefixo, são 16 caracteres.'; $wb['parent_domain_id_txt'] = 'Site'; -$wb['database_site_error_empty'] = 'Selecione o \\"site\\" ao qual o banco de dados pertence.'; -$wb['select_site_txt'] = '- Selecionar site -'; +$wb['database_site_error_empty'] = 'Selecione o site ao qual o banco de dados pertence.'; +$wb['select_site_txt'] = '-Selecionar Site-'; $wb['btn_save_txt'] = 'Salvar'; $wb['btn_cancel_txt'] = 'Cancelar'; -$wb['generate_password_txt'] = 'Gerar senha'; -$wb['repeat_password_txt'] = 'Repetir senha'; -$wb['password_mismatch_txt'] = 'A senhas não coincidem.'; -$wb['password_match_txt'] = 'A senhas coincidem.'; +$wb['generate_password_txt'] = 'Gerar Senha'; +$wb['repeat_password_txt'] = 'Repetir Senha'; +$wb['password_mismatch_txt'] = 'As senhas não coincidem.'; +$wb['password_match_txt'] = 'As senhas coincidem.'; $wb['globalsearch_resultslimit_of_txt'] = 'de'; $wb['globalsearch_resultslimit_results_txt'] = 'resultados'; $wb['globalsearch_noresults_text_txt'] = 'Sem resultados.'; $wb['globalsearch_noresults_limit_txt'] = '0 resultados'; $wb['globalsearch_searchfield_watermark_txt'] = 'Pesquisar'; $wb['globalsearch_suggestions_text_txt'] = 'Sugestões'; -$wb['database_ro_user_txt'] = 'Usuário do banco de dados somente leitura'; -$wb['optional_txt'] = 'opcional'; -$wb['select_dbuser_txt'] = 'Selecionar o usuário do banco de dados'; -$wb['no_dbuser_txt'] = 'Nenhum'; -$wb['database_client_differs_txt'] = 'O cliente do site e banco de dados não coincidem.'; -$wb['database_user_missing_txt'] = 'Por favor, selecione um usuário do banco de dados para este banco de dados.'; -$wb['limit_database_quota_txt'] = 'Cota para banco de dados'; -$wb['limit_database_quota_error_notint'] = 'O valor da cota para banco de dados deve ser um número positivo.'; -$wb['limit_database_quota_free_txt'] = 'Cota para banco de dados'; +$wb['limit_database_quota_txt'] = 'Cota do banco de dados'; +$wb['limit_database_quota_error_notint'] = 'O limite da cota do banco de dados deve ser um número.'; +$wb['limit_database_quota_free_txt'] = 'Limite da cota do banco de dados disponível'; ?> diff --git a/interface/web/sites/lib/lang/br_database_admin_list.lng b/interface/web/sites/lib/lang/br_database_admin_list.lng index 4f8f6ba61..eef9b6e3f 100644 --- a/interface/web/sites/lib/lang/br_database_admin_list.lng +++ b/interface/web/sites/lib/lang/br_database_admin_list.lng @@ -1,12 +1,12 @@ diff --git a/interface/web/sites/lib/lang/br_database_list.lng b/interface/web/sites/lib/lang/br_database_list.lng index afb5d36a0..b3d438e04 100644 --- a/interface/web/sites/lib/lang/br_database_list.lng +++ b/interface/web/sites/lib/lang/br_database_list.lng @@ -1,11 +1,11 @@ diff --git a/interface/web/sites/lib/lang/br_database_quota_stats_list.lng b/interface/web/sites/lib/lang/br_database_quota_stats_list.lng index 90202f115..41fd305a3 100644 --- a/interface/web/sites/lib/lang/br_database_quota_stats_list.lng +++ b/interface/web/sites/lib/lang/br_database_quota_stats_list.lng @@ -1,9 +1,9 @@ diff --git a/interface/web/sites/lib/lang/br_database_user.lng b/interface/web/sites/lib/lang/br_database_user.lng index 59b9fce62..193dbc740 100644 --- a/interface/web/sites/lib/lang/br_database_user.lng +++ b/interface/web/sites/lib/lang/br_database_user.lng @@ -1,25 +1,25 @@ diff --git a/interface/web/sites/lib/lang/br_database_user_admin_list.lng b/interface/web/sites/lib/lang/br_database_user_admin_list.lng index 1d610bd1b..bb21e97b1 100644 --- a/interface/web/sites/lib/lang/br_database_user_admin_list.lng +++ b/interface/web/sites/lib/lang/br_database_user_admin_list.lng @@ -1,6 +1,6 @@ diff --git a/interface/web/sites/lib/lang/br_database_user_list.lng b/interface/web/sites/lib/lang/br_database_user_list.lng index 855265e95..d2e4332fc 100644 --- a/interface/web/sites/lib/lang/br_database_user_list.lng +++ b/interface/web/sites/lib/lang/br_database_user_list.lng @@ -1,5 +1,5 @@ diff --git a/interface/web/sites/lib/lang/br_ftp_sites_stats_list.lng b/interface/web/sites/lib/lang/br_ftp_sites_stats_list.lng index 93a02f6c2..e4fabd595 100644 --- a/interface/web/sites/lib/lang/br_ftp_sites_stats_list.lng +++ b/interface/web/sites/lib/lang/br_ftp_sites_stats_list.lng @@ -1,10 +1,10 @@ diff --git a/interface/web/sites/lib/lang/br_ftp_user.lng b/interface/web/sites/lib/lang/br_ftp_user.lng index 3df741ed9..370fe0f36 100644 --- a/interface/web/sites/lib/lang/br_ftp_user.lng +++ b/interface/web/sites/lib/lang/br_ftp_user.lng @@ -1,35 +1,36 @@ 0'; -$wb['dir_dot_error'] = 'Não é permitido \\"..\\" no caminho.'; -$wb['dir_slashdot_error'] = 'Não é permitido \\"./\\" no caminho.'; -$wb['generate_password_txt'] = 'Gerar senha'; -$wb['repeat_password_txt'] = 'Repetir senha'; -$wb['password_mismatch_txt'] = 'A senhas não coincidem.'; -$wb['password_match_txt'] = 'A senhas coincidem.'; -$wb['expires_txt'] = 'Expira em'; +$wb['quota_size_error_regex'] = 'Cota: insira -1 para ilimitado ou um número > 0.'; +$wb['dir_dot_error'] = 'Não é permitido ".." no caminho.'; +$wb['dir_slashdot_error'] = 'Não é permitido "./" no caminho.'; +$wb['generate_password_txt'] = 'Gerar Senha'; +$wb['repeat_password_txt'] = 'Repetir Senha'; +$wb['password_mismatch_txt'] = 'As senhas não coincidem.'; +$wb['password_match_txt'] = 'As senhas coincidem.'; +$wb['expires_txt'] = 'Expirar em'; ?> diff --git a/interface/web/sites/lib/lang/br_shell_user.lng b/interface/web/sites/lib/lang/br_shell_user.lng index 3cbc911ab..8cd052055 100644 --- a/interface/web/sites/lib/lang/br_shell_user.lng +++ b/interface/web/sites/lib/lang/br_shell_user.lng @@ -1,36 +1,36 @@ diff --git a/interface/web/sites/lib/lang/br_shell_user_list.lng b/interface/web/sites/lib/lang/br_shell_user_list.lng index 587c988cc..21bb3d4df 100644 --- a/interface/web/sites/lib/lang/br_shell_user_list.lng +++ b/interface/web/sites/lib/lang/br_shell_user_list.lng @@ -1,5 +1,5 @@ diff --git a/interface/web/sites/lib/lang/br_web_aliasdomain.lng b/interface/web/sites/lib/lang/br_web_aliasdomain.lng index 4acadb2c5..d6142fd37 100644 --- a/interface/web/sites/lib/lang/br_web_aliasdomain.lng +++ b/interface/web/sites/lib/lang/br_web_aliasdomain.lng @@ -1,7 +1,7 @@ = 0.'; -$wb['pm_ondemand_hint_txt'] = 'Por favor, observe que você deve ter uma versão do PHP >= 5.3.9 para usar o gerenciador de processos sob demanda. Se você selecionar processos sob demanda usando uma versão antiga do PHP, o PHP não iniciará novamente!'; -$wb['generate_password_txt'] = 'Gerar senha'; -$wb['repeat_password_txt'] = 'Repetir senha'; -$wb['password_mismatch_txt'] = 'A senhas não coincidem.'; -$wb['password_match_txt'] = 'A senhas coincidem.'; -$wb['available_php_directive_snippets_txt'] = 'Diretivas de trechos de código do php disponíveis:'; -$wb['available_apache_directive_snippets_txt'] = 'Diretivas de trechos de código do apache disponíveis:'; -$wb['available_nginx_directive_snippets_txt'] = 'Diretivas de trechos de código do nginx disponíveis:'; +$wb['pm_max_children_txt'] = 'PHP-FPM pm.max_children'; +$wb['pm_start_servers_txt'] = 'PHP-FPM pm.start_servers'; +$wb['pm_min_spare_servers_txt'] = 'PHP-FPM pm.min_spare_servers'; +$wb['pm_max_spare_servers_txt'] = 'PHP-FPM pm.max_spare_servers'; +$wb['error_php_fpm_pm_settings_txt'] = 'Valores das configurações do php-fpm podem ser: pm.max_children >= pm.max_spare_servers >= pm.start_servers >= pm.min_spare_servers > 0'; +$wb['pm_max_children_error_regex'] = 'PHP-FPM pm.max_children deve ter um valor inteiro positivo.'; +$wb['pm_start_servers_error_regex'] = 'PHP-FPM pm.start_servers deve ter um valor inteiro positivo.'; +$wb['pm_min_spare_servers_error_regex'] = 'PHP-FPM pm.min_spare_servers deve ter um valor inteiro positivo.'; +$wb['pm_max_spare_servers_error_regex'] = 'PHP-FPM pm.max_spare_servers deve ter um valor inteiro positivo.'; +$wb['hd_quota_error_regex'] = 'Cota do disco é inválida.'; +$wb['traffic_quota_error_regex'] = 'Cota de tráfego é inválida.'; +$wb['fastcgi_php_version_txt'] = 'Versão do php'; +$wb['pm_txt'] = 'Gerenciador de Processos do php-fpm'; +$wb['pm_process_idle_timeout_txt'] = 'PHP-FPM pm.process_idle_timeout'; +$wb['pm_max_requests_txt'] = 'PHP-FPM pm.max_requests'; +$wb['pm_process_idle_timeout_error_regex'] = 'PHP-FPM pm.process_idle_timeout deve ter um valor inteiro positivo.'; +$wb['pm_max_requests_error_regex'] = 'PHP-FPM pm.max_requests deve ter um valor >= 0.'; +$wb['pm_ondemand_hint_txt'] = 'Por favor, observe que é necessário uma versão do php >= 5.3.9 para utilizar o gerenciador de processos por demanda. Se for selecionado por demanda com uma versão inferior do php, o mesmo não iniciará mais!'; +$wb['generate_password_txt'] = 'Gerar Senha'; +$wb['repeat_password_txt'] = 'Repetir Senha'; +$wb['password_mismatch_txt'] = 'As senhas não coincidem.'; +$wb['password_match_txt'] = 'As senhas coincidem.'; +$wb['available_php_directive_snippets_txt'] = 'Diretivas de trecho de código do php disponíveis:'; +$wb['available_apache_directive_snippets_txt'] = 'Diretivas de trecho de código do apache disponíveis:'; +$wb['available_nginx_directive_snippets_txt'] = 'Diretivas de trecho de código do nginx disponíveis:'; $wb['proxy_directives_txt'] = 'Diretivas do proxy'; $wb['available_proxy_directive_snippets_txt'] = 'Diretivas de trechos de código do proxy disponíveis:'; -$wb['Domain'] = 'Apelido de domínio'; +$wb['Domain'] = 'Alias de Domínio'; ?> diff --git a/interface/web/sites/lib/lang/br_web_aliasdomain_list.lng b/interface/web/sites/lib/lang/br_web_aliasdomain_list.lng index 153aa3340..770ec725e 100644 --- a/interface/web/sites/lib/lang/br_web_aliasdomain_list.lng +++ b/interface/web/sites/lib/lang/br_web_aliasdomain_list.lng @@ -1,13 +1,13 @@ diff --git a/interface/web/sites/lib/lang/br_web_childdomain.lng b/interface/web/sites/lib/lang/br_web_childdomain.lng index ecff0c2ae..fbbb40635 100644 --- a/interface/web/sites/lib/lang/br_web_childdomain.lng +++ b/interface/web/sites/lib/lang/br_web_childdomain.lng @@ -4,117 +4,117 @@ $wb['ssl_locality_txt'] = 'Cidade'; $wb['ssl_organisation_txt'] = 'Empresa'; $wb['ssl_organisation_unit_txt'] = 'Departamento'; $wb['ssl_country_txt'] = 'País'; -$wb['ssl_request_txt'] = 'Requisição SSL'; -$wb['ssl_cert_txt'] = 'Certificado SSL'; -$wb['ssl_bundle_txt'] = 'Pacote'; +$wb['ssl_request_txt'] = 'Requisição'; +$wb['ssl_cert_txt'] = 'Certificado'; +$wb['ssl_bundle_txt'] = 'Agrupar'; $wb['ssl_action_txt'] = 'Ação'; $wb['server_id_txt'] = 'Servidor'; $wb['domain_txt'] = 'Domínio'; $wb['type_txt'] = 'Tipo'; -$wb['parent_domain_id_txt'] = 'Site pai'; +$wb['parent_domain_id_txt'] = 'Site Pai'; $wb['redirect_type_txt'] = 'Tipo de redirecionamento'; -$wb['redirect_path_txt'] = 'Caminho para redirecionamento'; +$wb['redirect_path_txt'] = 'Caminho para o redirecionamento'; $wb['active_txt'] = 'Ativo'; $wb['document_root_txt'] = 'Documentroot'; $wb['system_user_txt'] = 'Usuário Linux'; $wb['system_group_txt'] = 'Grupo Linux'; $wb['ip_address_txt'] = 'Endereço IP'; -$wb['vhost_type_txt'] = 'Tipo de vhost'; -$wb['hd_quota_txt'] = 'Cota de disco'; -$wb['traffic_quota_txt'] = 'Cota de tráfego'; +$wb['vhost_type_txt'] = 'Tipo do VHost'; +$wb['hd_quota_txt'] = 'Cota do Disco'; +$wb['traffic_quota_txt'] = 'Cota de Tráfego'; $wb['cgi_txt'] = 'CGI'; $wb['ssi_txt'] = 'SSI'; $wb['ssl_txt'] = 'SSL'; $wb['suexec_txt'] = 'SuEXEC'; $wb['php_txt'] = 'PHP'; $wb['client_txt'] = 'Cliente'; -$wb['limit_web_domain_txt'] = 'o limite de domínios de site para esta conta foi alcançado.'; -$wb['limit_web_aliasdomain_txt'] = 'O limite de apelidos de domínio de site para esta conta foi alcançado.'; +$wb['limit_web_domain_txt'] = 'O limite de domínios de site para esta conta foi alcançado.'; +$wb['limit_web_aliasdomain_txt'] = 'O limite de alias de domínios para esta conta foi alcançado.'; $wb['limit_web_subdomain_txt'] = 'O limite de subdomínios de site para esta conta foi alcançado.'; $wb['apache_directives_txt'] = 'Diretivas do apache'; -$wb['domain_error_empty'] = 'Domínio está em branco.'; -$wb['domain_error_unique'] = 'Já existe apelido de domínio ou subdomínio com este nome.'; -$wb['domain_error_regex'] = 'Nome de domínio é inválido.'; -$wb['host_txt'] = 'Nome do servidor'; -$wb['redirect_error_regex'] = 'Caminho de redirecionamento é inválido. Exemplo de caminho válido: \\"/teste/\\" ou \\"http://www.dominio.com.br/teste/\\".'; +$wb['domain_error_empty'] = 'O domínio está em branco.'; +$wb['domain_error_unique'] = 'Já existe um site, subdomínio ou alias de domínio com este nome.'; +$wb['domain_error_regex'] = 'O domínio é inválido.'; +$wb['domain_error_acme_invalid'] = 'Domínio genérico inválido não permitido.'; +$wb['domain_error_wildcard'] = 'Curingas não são permitidos para subdomínios.'; +$wb['host_txt'] = 'Host'; +$wb['redirect_error_regex'] = 'Caminho de redirecionamento inválido. Redirecionamentos válidos são, por ex.: /teste/ ou http://www.dominio.com.br/teste/'; $wb['no_redirect_txt'] = 'Sem redirecionamento'; $wb['no_flag_txt'] = 'Sem marcas'; -$wb['domain_error_wildcard'] = 'Curingas para subdomínios não são permitidos.'; $wb['proxy_directives_txt'] = 'Diretivas do proxy'; $wb['available_proxy_directive_snippets_txt'] = 'Diretivas de trechos de código do proxy disponíveis:'; -$wb['error_proxy_requires_url'] = 'O tipo de redirecionamento \\"proxy\\" exige uma url no caminho de redirecionamento.'; -$wb['backup_interval_txt'] = 'Intervalo de backup'; -$wb['backup_copies_txt'] = 'Limite de cópias do backup'; +$wb['error_proxy_requires_url'] = 'O tipo de redirecionamento "proxy" exige uma URL como caminho de redirecionamento.'; +$wb['backup_interval_txt'] = 'Intervalo entre backups'; +$wb['backup_copies_txt'] = 'Número de cópias do backup'; $wb['ssl_key_txt'] = 'Chave'; -$wb['ssl_domain_txt'] = 'Domínio do SSL'; -$wb['web_folder_error_regex'] = 'Pasta inválida informada. Por favor não use uma barra - \\"/\\".'; +$wb['ssl_domain_txt'] = 'Domínio'; +$wb['web_folder_error_regex'] = 'Pasta web é inválida. Por favor não utilize o caractere barra(/).'; $wb['ipv6_address_txt'] = 'Endereço IPv6'; -$wb['errordocs_txt'] = 'Pasta personalizada Error-Documents'; +$wb['errordocs_txt'] = 'Proprietário do Error-Documents'; $wb['subdomain_txt'] = 'Subdomínio automático'; $wb['domain_error_autosub'] = 'Já existe um subdomínio com estas configurações.'; -$wb['hd_quota_error_empty'] = 'Cota de disco é 0 ou está em branco.'; +$wb['hd_quota_error_empty'] = 'Cota do disco é 0 ou está em branco.'; $wb['traffic_quota_error_empty'] = 'Cota de tráfego está em branco.'; -$wb['error_ssl_state_empty'] = 'Campo \'Estado\' está em branco.'; -$wb['error_ssl_locality_empty'] = 'Campo \'Cidade\' está em branco.'; -$wb['error_ssl_organisation_empty'] = 'Campo \'Organização\' está em branco.'; -$wb['error_ssl_organisation_unit_empty'] = 'Campo \'Departamento\' está em branco.'; -$wb['error_ssl_country_empty'] = 'Campo \'País\' está em branco.'; -$wb['error_ssl_cert_empty'] = 'Campo \'Certificado\' em branco'; +$wb['error_ssl_state_empty'] = 'O campo "Estado" está em branco.'; +$wb['error_ssl_locality_empty'] = 'O campo "Cidade" está em branco.'; +$wb['error_ssl_organisation_empty'] = 'O campo "Empresa" está em branco.'; +$wb['error_ssl_organisation_unit_empty'] = 'O campo "Departamento" está em branco.'; +$wb['error_ssl_country_empty'] = 'O campo "País" está em branco.'; +$wb['error_ssl_cert_empty'] = 'O campo "Certificado" está em branco.'; $wb['client_group_id_txt'] = 'Cliente'; $wb['stats_password_txt'] = 'Configurar senha para estatísticas web'; -$wb['allow_override_txt'] = 'Diretiva apache AllowOverride'; -$wb['limit_web_quota_free_txt'] = 'Cota de disco'; -$wb['ssl_state_error_regex'] = 'Campo \'Estado\' é inválido. São caracteres válidos: \'a-z\', \'0-9\' e \'.,-_\'.'; -$wb['ssl_locality_error_regex'] = 'Campo \'Cidade\' é inválido. São caracteres válidos: \'a-z\', \'0-9\' e \'.,-_\'.'; -$wb['ssl_organisation_error_regex'] = 'Campo \'Empresa\' é inválido. São caracteres válidos: \'a-z\', \'0-9\' e \'.,-_\'.'; -$wb['ssl_organistaion_unit_error_regex'] = 'Campo \'Departamento\' é inválido. São caracteres válidos: \'a-z\', \'0-9\' e \'.,-_\'.'; -$wb['ssl_country_error_regex'] = 'Campo \'País\' é inválido. São caracteres válidos: \'A-Z\'.'; -$wb['limit_traffic_quota_free_txt'] = 'Cota de tráfego'; +$wb['allow_override_txt'] = 'Diretiva Apache AllowOverride'; +$wb['limit_web_quota_free_txt'] = 'Limite da cota de disco disponível'; +$wb['ssl_state_error_regex'] = 'O campo "Estado" é inválido. Caracteres válidos são: "a-z", "0-9",".", "-", e "_".'; +$wb['ssl_locality_error_regex'] = 'O campo "Cidade" é inválido. Caracteres válidos são: "a-z", "0-9", ".", "-", e "_".'; +$wb['ssl_organisation_error_regex'] = 'O campo "Empresa" é inválido. Caracteres válidos são: "a-z", "0-9", ".", "-", e "_".'; +$wb['ssl_organistaion_unit_error_regex'] = 'O campo "Departamento" é inválido. Caracteres válidos são: "a-z", "0-9", ".", "-", e "_".'; +$wb['ssl_country_error_regex'] = 'O campo "País" é inválido. Caracteres válidos são: "A-Z".'; +$wb['limit_traffic_quota_free_txt'] = 'Limite da cota de tráfego disponível'; $wb['php_open_basedir_txt'] = 'Diretório open_basedir do php'; -$wb['traffic_quota_exceeded_txt'] = 'Cota de tráfego alcançada'; +$wb['traffic_quota_exceeded_txt'] = 'O limite da cota de tráfego foi alcançado.'; $wb['ruby_txt'] = 'Ruby'; -$wb['stats_user_txt'] = 'Usuário para estatísticas web'; -$wb['stats_type_txt'] = 'Programa para estatísticas web'; +$wb['stats_user_txt'] = 'Usuário de estatísticas web'; +$wb['stats_type_txt'] = 'Sistema de estatísticas web'; $wb['custom_php_ini_txt'] = 'Configurações personalizadas do php.ini'; $wb['none_txt'] = 'Nenhum'; -$wb['disabled_txt'] = 'Inativo'; +$wb['disabled_txt'] = 'Desabilitado'; $wb['save_certificate_txt'] = 'Salvar certificado'; $wb['create_certificate_txt'] = 'Adicionar certificado'; $wb['delete_certificate_txt'] = 'Remover certificado'; $wb['nginx_directives_txt'] = 'Diretivas do nginx'; -$wb['seo_redirect_txt'] = 'Redirecionamento SEO'; -$wb['non_www_to_www_txt'] = 'Diretivas Non-www -> www'; -$wb['www_to_non_www_txt'] = 'Diretivas www -> non-www'; -$wb['php_fpm_use_socket_txt'] = 'Usar soquete para PHP-FPM'; -$wb['error_no_sni_txt'] = 'SNI para SSL não está ativo neste servidor. Você só pode ativar um certificado SSL para cada endereço IP.'; +$wb['seo_redirect_txt'] = 'Diretivas SEO'; +$wb['non_www_to_www_txt'] = 'non-www -> www'; +$wb['www_to_non_www_txt'] = 'www -> non-www'; +$wb['php_fpm_use_socket_txt'] = 'Usar socket para php-fpm'; +$wb['error_no_sni_txt'] = 'SNI para SSL não está habilitado neste servidor. Somente poderá ser habilitado um certificado para cada endereço IP.'; $wb['python_txt'] = 'Python'; $wb['perl_txt'] = 'Perl'; -$wb['pm_max_children_txt'] = 'Diretiva PHP-FPM pm.max_children'; -$wb['pm_start_servers_txt'] = 'Diretiva PHP-FPM pm.start_servers'; -$wb['pm_min_spare_servers_txt'] = 'Diretiva PHP-FPM pm.min_spare_servers'; -$wb['pm_max_spare_servers_txt'] = 'Diretiva PHP-FPM pm.max_spare_servers'; -$wb['error_php_fpm_pm_settings_txt'] = 'Valores para as configurações do PHP-FPM pm devem obedecer as seguintes condições: pm.max_children >= pm.max_spare_servers >= pm.start_servers >= pm.min_spare_servers > 0'; -$wb['pm_max_children_error_regex'] = 'O valor do PHP-FPM pm.max_children deve ser um número positivo.'; -$wb['pm_start_servers_error_regex'] = 'O valor do PHP-FPM pm.start_servers deve ser um número positivo.'; -$wb['pm_min_spare_servers_error_regex'] = 'O valor do PHP-FPM pm.min_spare_servers deve ser um número positivo.'; -$wb['pm_max_spare_servers_error_regex'] = 'O valor do PHP-FPM pm.max_spare_servers deve ser um número positivo.'; -$wb['hd_quota_error_regex'] = 'Valor da cota de disco é inválido.'; -$wb['traffic_quota_error_regex'] = 'Valor da cota de tráfego é inválido.'; -$wb['fastcgi_php_version_txt'] = 'Versão do PHP'; -$wb['pm_txt'] = 'Gerenciador de Processos do PHP-FPM'; -$wb['pm_process_idle_timeout_txt'] = 'Diretiva PHP-FPM pm.process_idle_timeout'; -$wb['pm_max_requests_txt'] = 'Diretiva PHP-FPM pm.max_requests'; -$wb['pm_process_idle_timeout_error_regex'] = 'O valor do PHP-FPM pm.process_idle_timeout deve ser um número positivo.'; -$wb['pm_max_requests_error_regex'] = 'O valor do PHP-FPM pm.max_requests deve ser um inteiro >= 0.'; -$wb['pm_ondemand_hint_txt'] = 'Por favor, observe que você deve ter uma versão do PHP >= 5.3.9 para usar o gerenciador de processos sob demanda. Se você selecionar processos sob demanda usando uma versão antiga do PHP, o PHP não iniciará novamente!'; -$wb['generate_password_txt'] = 'Gerar senha'; -$wb['repeat_password_txt'] = 'Repetir senha'; -$wb['password_mismatch_txt'] = 'A senhas não coincidem.'; -$wb['password_match_txt'] = 'A senhas coincidem.'; -$wb['available_php_directive_snippets_txt'] = 'Diretivas de trechos de código do php disponíveis:'; -$wb['available_apache_directive_snippets_txt'] = 'Diretivas de trechos de código do apache disponíveis:'; -$wb['available_nginx_directive_snippets_txt'] = 'Diretivas de trechos de código do nginx disponíveis:'; -$wb['Domain'] = 'Apelido de domínio'; -$wb['ssl_letsencrypt_exclude_txt'] = 'Não adicionar certificado Let\'s Encrypt'; -$wb['domain_error_acme_invalid'] = 'Domain name acme.invalid not permitted.'; +$wb['pm_max_children_txt'] = 'PHP-FPM pm.max_children'; +$wb['pm_start_servers_txt'] = 'PHP-FPM pm.start_servers'; +$wb['pm_min_spare_servers_txt'] = 'PHP-FPM pm.min_spare_servers'; +$wb['pm_max_spare_servers_txt'] = 'PHP-FPM pm.max_spare_servers'; +$wb['error_php_fpm_pm_settings_txt'] = 'Valores das configurações do php-fpm podem ser: pm.max_children >= pm.max_spare_servers >= pm.start_servers >= pm.min_spare_servers > 0'; +$wb['pm_max_children_error_regex'] = 'PHP-FPM pm.max_children deve ter um valor inteiro positivo.'; +$wb['pm_start_servers_error_regex'] = 'PHP-FPM pm.start_servers deve ter um valor inteiro positivo.'; +$wb['pm_min_spare_servers_error_regex'] = 'PHP-FPM pm.min_spare_servers deve ter um valor inteiro positivo.'; +$wb['pm_max_spare_servers_error_regex'] = 'PHP-FPM pm.max_spare_servers deve ter um valor inteiro positivo.'; +$wb['hd_quota_error_regex'] = 'Cota do disco é inválida.'; +$wb['traffic_quota_error_regex'] = 'Cota de tráfego é inválida.'; +$wb['fastcgi_php_version_txt'] = 'Versão do php'; +$wb['pm_txt'] = 'Gerenciador de processos do php-fpm'; +$wb['pm_process_idle_timeout_txt'] = 'PHP-FPM pm.process_idle_timeout'; +$wb['pm_max_requests_txt'] = 'PHP-FPM pm.max_requests'; +$wb['pm_process_idle_timeout_error_regex'] = 'PHP-FPM pm.process_idle_timeout deve ter um valor inteiro positivo.'; +$wb['pm_max_requests_error_regex'] = 'PHP-FPM pm.max_requests deve ter um valor >= 0.'; +$wb['pm_ondemand_hint_txt'] = 'Por favor, observe que é necessário uma versão do php >= 5.3.9 para utilizar o gerenciador de processos por demanda. Se for selecionado por demanda com uma versão inferior do php, o mesmo não iniciará mais!'; +$wb['generate_password_txt'] = 'Gerar Senha'; +$wb['repeat_password_txt'] = 'Repetir Senha'; +$wb['password_mismatch_txt'] = 'As senhas não coincidem.'; +$wb['password_match_txt'] = 'As senhas coincidem.'; +$wb['available_php_directive_snippets_txt'] = 'Diretivas de trecho de código do php disponíveis:'; +$wb['available_apache_directive_snippets_txt'] = 'Diretivas de trecho de código do apache disponíveis:'; +$wb['available_nginx_directive_snippets_txt'] = 'Diretivas de trecho de código do nginx disponíveis:'; +$wb['Domain'] = 'Alias de domínio'; +$wb['ssl_letsencrypt_exclude_txt'] = 'Sem certificado Let \'s Encrypt'; ?> diff --git a/interface/web/sites/lib/lang/br_web_childdomain_list.lng b/interface/web/sites/lib/lang/br_web_childdomain_list.lng index 20b559b12..583ae2d36 100644 --- a/interface/web/sites/lib/lang/br_web_childdomain_list.lng +++ b/interface/web/sites/lib/lang/br_web_childdomain_list.lng @@ -4,15 +4,15 @@ $wb['active_txt'] = 'Ativo'; $wb['server_id_txt'] = 'Servidor'; $wb['parent_domain_id_txt'] = 'Site'; $wb['domain_txt'] = 'Subdomínio'; -$wb['domain_error_empty'] = 'Domínio está em branco.'; -$wb['domain_error_unique'] = 'O nome do domínio deve ser exclusivo.'; -$wb['domain_error_regex'] = 'Nome do domínio é inválido.'; +$wb['add_new_subdomain_txt'] = 'Adicionar novo subdomínio'; +$wb['add_new_aliasdomain_txt'] = 'Adicionar novo alias de domínio'; +$wb['domain_error_empty'] = 'O domínio está em branco.'; +$wb['domain_error_unique'] = 'O domínio deve ser exclusivo.'; +$wb['domain_error_regex'] = 'O domínio é inválido.'; +$wb['domain_error_acme_invalid'] = 'Domínio genérico inválido não permitido.'; $wb['no_redirect_txt'] = 'Sem redirecionamento'; $wb['no_flag_txt'] = 'Sem marcas'; $wb['none_txt'] = 'Nenhum'; -$wb['add_new_subdomain_txt'] = 'Adicionar novo subdomínio'; -$wb['add_new_aliasdomain_txt'] = 'Adicionar novo apelido'; -$wb['aliasdomain_list_head_txt'] = 'Apelidos de domínios'; +$wb['aliasdomain_list_head_txt'] = 'Alias de domínios'; $wb['subdomain_list_head_txt'] = 'Subdomínios'; -$wb['domain_error_acme_invalid'] = 'Domain name acme.invalid not permitted.'; ?> diff --git a/interface/web/sites/lib/lang/br_web_domain.lng b/interface/web/sites/lib/lang/br_web_domain.lng index 662fdb407..1a2a2b301 100644 --- a/interface/web/sites/lib/lang/br_web_domain.lng +++ b/interface/web/sites/lib/lang/br_web_domain.lng @@ -1,116 +1,115 @@ = 0.'; -$wb['pm_ondemand_hint_txt'] = 'Por favor, observe que você deve ter uma versão do PHP >= 5.3.9 para usar o gerenciador de processos sob demanda. Se você selecionar processos sob demanda usando uma versão antiga do PHP, o PHP não iniciará novamente!'; -$wb['generate_password_txt'] = 'Gerar senha'; -$wb['repeat_password_txt'] = 'Repetir senha'; -$wb['password_mismatch_txt'] = 'A senhas não coincidem.'; -$wb['password_match_txt'] = 'A senhas coincidem.'; -$wb['web_folder_error_regex'] = 'Pasta informada é inválida! Por favor não insira barra \\"/\\".'; -$wb['domain_error_autosub'] = 'Já existe um subdomínio com estas configurações.'; -$wb['available_php_directive_snippets_txt'] = 'Diretivas de trechos de código do php:'; -$wb['available_apache_directive_snippets_txt'] = 'Diretivas de trechos de código do apache:'; -$wb['available_nginx_directive_snippets_txt'] = 'Diretivas de trechos de código do nginx:'; +$wb['pm_max_children_txt'] = 'PHP-FPM pm.max_children'; +$wb['pm_start_servers_txt'] = 'PHP-FPM pm.start_servers'; +$wb['pm_min_spare_servers_txt'] = 'PHP-FPM pm.min_spare_servers'; +$wb['pm_max_spare_servers_txt'] = 'PHP-FPM pm.max_spare_servers'; +$wb['error_php_fpm_pm_settings_txt'] = 'Valores das configurações do php-fpm podem ser: pm.max_children >= pm.max_spare_servers >= pm.start_servers >= pm.min_spare_servers > 0'; +$wb['pm_max_children_error_regex'] = 'PHP-FPM pm.max_children deve ter um valor inteiro positivo.'; +$wb['pm_start_servers_error_regex'] = 'PHP-FPM pm.start_servers deve ter um valor inteiro positivo.'; +$wb['pm_min_spare_servers_error_regex'] = 'PHP-FPM pm.min_spare_servers deve ter um valor inteiro positivo.'; +$wb['pm_max_spare_servers_error_regex'] = 'PHP-FPM pm.max_spare_servers deve ter um valor inteiro positivo.'; +$wb['hd_quota_error_regex'] = 'Cota do disco é inválida.'; +$wb['traffic_quota_error_regex'] = 'Cota de tráfego é inválida.'; +$wb['fastcgi_php_version_txt'] = 'Versão do php'; +$wb['pm_txt'] = 'Gerenciador de Processos do php-fpm'; +$wb['pm_process_idle_timeout_txt'] = 'PHP-FPM pm.process_idle_timeout'; +$wb['pm_max_requests_txt'] = 'PHP-FPM pm.max_requests'; +$wb['pm_process_idle_timeout_error_regex'] = 'PHP-FPM pm.process_idle_timeout deve ter um valor inteiro positivo.'; +$wb['pm_max_requests_error_regex'] = 'PHP-FPM pm.max_requests deve ter um valor >= 0.'; +$wb['pm_ondemand_hint_txt'] = 'Por favor, observe que é necessário uma versão do php >= 5.3.9 para utilizar o gerenciador de processos por demanda. Se for selecionado por demanda com uma versão inferior do php, o mesmo não iniciará mais!'; +$wb['generate_password_txt'] = 'Gerar Senha'; +$wb['repeat_password_txt'] = 'Repetir Senha'; +$wb['password_mismatch_txt'] = 'As senhas não coincidem.'; +$wb['password_match_txt'] = 'As senhas coincidem.'; +$wb['available_php_directive_snippets_txt'] = 'Diretivas de trecho de código do php disponíveis:'; +$wb['available_apache_directive_snippets_txt'] = 'Diretivas de trecho de código do apache disponíveis:'; +$wb['available_nginx_directive_snippets_txt'] = 'Diretivas de trecho de código do nginx disponíveis:'; $wb['proxy_directives_txt'] = 'Diretivas do proxy'; -$wb['available_proxy_directive_snippets_txt'] = 'Diretivas de trechos de código do proxy:'; +$wb['available_proxy_directive_snippets_txt'] = 'Diretivas de trechos de código do proxy disponíveis:'; $wb['no_server_error'] = 'Nenhum servidor selecionado.'; $wb['no_backup_txt'] = 'Sem backup'; $wb['daily_backup_txt'] = 'Diário'; @@ -118,20 +117,20 @@ $wb['weekly_backup_txt'] = 'Semanal'; $wb['monthly_backup_txt'] = 'Mensal'; $wb['rewrite_rules_txt'] = 'Reescrever Regras'; $wb['invalid_rewrite_rules_txt'] = 'Regras de reescrita inválidas'; -$wb['allowed_rewrite_rule_directives_txt'] = 'Diretivas Permitidas:'; +$wb['allowed_rewrite_rule_directives_txt'] = 'Diretivas permitidas:'; $wb['configuration_error_txt'] = 'ERRO DE CONFIGURAÇÃO'; $wb['variables_txt'] = 'Variáveis'; -$wb['added_by_txt'] = 'Cadastrado por'; +$wb['added_by_txt'] = 'Cadastrador por'; $wb['added_date_txt'] = 'Data do cadastro'; -$wb['backup_excludes_txt'] = 'Diretórios excluídos'; -$wb['backup_excludes_note_txt'] = '(Separar múltiplos diretórios por vírgula. Exemplo: web/cache/*,web/backup)'; -$wb['backup_excludes_error_regex'] = 'Os diretórios excluídos contém caracteres inválidos!'; +$wb['backup_excludes_txt'] = 'Diretórios Excluídos'; +$wb['backup_excludes_note_txt'] = '(Separar múltiplos diretórios por vírgulas. Exemplo: web/cache/*, web/backup)'; +$wb['backup_excludes_error_regex'] = 'Os diretórios excluídos possuem caracteres inválidos.'; $wb['invalid_custom_php_ini_settings_txt'] = 'Configurações do php.ini inválidas'; -$wb['invalid_system_user_or_group_txt'] = 'Configurações inválidas para usuário ou grupo do sistema'; -$wb['apache_directive_blocked_error'] = 'Diretiva do apache bloqueada por configurações de segurança:'; -$wb['http_port_txt'] = 'Porta HTTP'; -$wb['https_port_txt'] = 'Porta HTTPS'; -$wb['http_port_error_regex'] = 'Porta HTTP inválida.'; -$wb['https_port_error_regex'] = 'Porta HTTPS inválida.'; -$wb['nginx_directive_blocked_error'] = 'Nginx directive blocked by security settings:'; +$wb['invalid_system_user_or_group_txt'] = 'Usuário ou grupo inválido.'; +$wb['apache_directive_blocked_error'] = 'Diretivas do apache bloqueadas pelas configurações de segurança:'; +$wb['http_port_txt'] = 'Porta http'; +$wb['https_port_txt'] = 'Porta https'; +$wb['http_port_error_regex'] = 'Porta http inválida.'; +$wb['https_port_error_regex'] = 'Porta https inválida.'; +$wb['nginx_directive_blocked_error'] = 'Diretivas do nginx bloqueadas pelas configurações de segurança:'; ?> diff --git a/interface/web/sites/lib/lang/br_web_folder.lng b/interface/web/sites/lib/lang/br_web_folder.lng index 34a3f65b0..193cb4636 100644 --- a/interface/web/sites/lib/lang/br_web_folder.lng +++ b/interface/web/sites/lib/lang/br_web_folder.lng @@ -4,5 +4,5 @@ $wb['parent_domain_id_txt'] = 'Site'; $wb['path_txt'] = 'Caminho'; $wb['active_txt'] = 'Ativo'; $wb['path_error_regex'] = 'Caminho da pasta é inválido.'; -$wb['error_folder_already_protected_txt'] = 'Já existe um registro para esta pasta.'; +$wb['error_folder_already_protected_txt'] = 'Já existe esta pasta.'; ?> diff --git a/interface/web/sites/lib/lang/br_web_folder_user.lng b/interface/web/sites/lib/lang/br_web_folder_user.lng index dd63d02ee..5dc0354fe 100644 --- a/interface/web/sites/lib/lang/br_web_folder_user.lng +++ b/interface/web/sites/lib/lang/br_web_folder_user.lng @@ -1,14 +1,14 @@ diff --git a/interface/web/sites/lib/lang/br_web_folder_user_list.lng b/interface/web/sites/lib/lang/br_web_folder_user_list.lng index e108c219b..8ad8c4825 100644 --- a/interface/web/sites/lib/lang/br_web_folder_user_list.lng +++ b/interface/web/sites/lib/lang/br_web_folder_user_list.lng @@ -1,7 +1,7 @@ diff --git a/interface/web/sites/lib/lang/br_web_subdomain.lng b/interface/web/sites/lib/lang/br_web_subdomain.lng index 0ccc57480..53cb94ab5 100644 --- a/interface/web/sites/lib/lang/br_web_subdomain.lng +++ b/interface/web/sites/lib/lang/br_web_subdomain.lng @@ -6,21 +6,21 @@ $wb['ssl_organisation_unit_txt'] = 'Departamento'; $wb['ssl_country_txt'] = 'País'; $wb['ssl_request_txt'] = 'Requisição'; $wb['ssl_cert_txt'] = 'Certificado'; -$wb['ssl_bundle_txt'] = 'Pacote'; +$wb['ssl_bundle_txt'] = 'Agrupar'; $wb['ssl_action_txt'] = 'Ação'; $wb['server_id_txt'] = 'Servidor'; $wb['domain_txt'] = 'Domínio'; $wb['type_txt'] = 'Tipo'; $wb['parent_domain_id_txt'] = 'Site Pai'; -$wb['redirect_type_txt'] = 'Tipo do Redirecionamento'; -$wb['redirect_path_txt'] = 'Caminho do Redirecionamento'; +$wb['redirect_type_txt'] = 'Tipo de redirecionamento'; +$wb['redirect_path_txt'] = 'Caminho para o redirecionamento'; $wb['active_txt'] = 'Ativo'; $wb['document_root_txt'] = 'Documentroot'; $wb['system_user_txt'] = 'Usuário Linux'; $wb['system_group_txt'] = 'Grupo Linux'; $wb['ip_address_txt'] = 'Endereço IP'; -$wb['vhost_type_txt'] = 'Tipo VHost'; -$wb['hd_quota_txt'] = 'Cota de Disco'; +$wb['vhost_type_txt'] = 'Tipo do VHost'; +$wb['hd_quota_txt'] = 'Cota do Disco'; $wb['traffic_quota_txt'] = 'Cota de Tráfego'; $wb['cgi_txt'] = 'CGI'; $wb['ssi_txt'] = 'SSI'; @@ -29,22 +29,22 @@ $wb['suexec_txt'] = 'SuEXEC'; $wb['php_txt'] = 'PHP'; $wb['client_txt'] = 'Cliente'; $wb['limit_web_domain_txt'] = 'O limite de domínios de site para esta conta foi alcançado.'; -$wb['limit_web_aliasdomain_txt'] = 'O limite de apelidos de domínio para esta conta foi alcançado.'; -$wb['limit_web_subdomain_txt'] = 'O limite de subdomínios para esta conta foi alcançado.'; +$wb['limit_web_aliasdomain_txt'] = 'O limite de alias de domínios para esta conta foi alcançado.'; +$wb['limit_web_subdomain_txt'] = 'O limite de subdomínios de site para esta conta foi alcançado.'; $wb['apache_directives_txt'] = 'Diretivas do apache'; -$wb['domain_error_empty'] = 'Domínio está em branco.'; -$wb['domain_error_unique'] = 'Já existe apelido de domínio ou subdomínio com este nome.'; -$wb['domain_error_regex'] = 'Nome do domínio é inválido.'; +$wb['domain_error_empty'] = 'O domínio está em branco.'; +$wb['domain_error_unique'] = 'Já existe um site, subdomínio ou alias de domínio com este nome.'; +$wb['domain_error_regex'] = 'O domínio é inválido.'; +$wb['domain_error_wildcard'] = 'Curingas não são permitidos para subdomínios.'; $wb['host_txt'] = 'Host'; -$wb['redirect_error_regex'] = 'Caminho de redirecionamento é inválido. Exemplo de caminho válido: \\"/teste/\\" ou \\"http://www.dominio.com.br/teste/\\".'; +$wb['redirect_error_regex'] = 'Caminho de redirecionamento inválido. Redirecionamentos válidos são, por ex.: /teste/ ou http://www.dominio.com.br/teste/'; $wb['no_redirect_txt'] = 'Sem redirecionamento'; $wb['no_flag_txt'] = 'Sem marcas'; -$wb['domain_error_wildcard'] = 'Curingas de subdomínios não são permitidos.'; $wb['proxy_directives_txt'] = 'Diretivas do proxy'; $wb['available_proxy_directive_snippets_txt'] = 'Diretivas de trechos de código do proxy disponíveis:'; -$wb['error_proxy_requires_url'] = 'Tipo de redirecionamento \'proxy\' exige uma URL como caminho de redirecionamento.'; -$wb['http_port_txt'] = 'Porta HTTP'; -$wb['https_port_txt'] = 'Porta HTTPS'; -$wb['http_port_error_regex'] = 'Porta HTTP inválida.'; -$wb['https_port_error_regex'] = 'Porta HTTPS inválida.'; +$wb['error_proxy_requires_url'] = 'O tipo de redirecionamento "proxy" exige uma URL como caminho de redirecionamento.'; +$wb['http_port_txt'] = 'Porta http'; +$wb['https_port_txt'] = 'Porta https'; +$wb['http_port_error_regex'] = 'Porta http inválida.'; +$wb['https_port_error_regex'] = 'Porta https inválida.'; ?> diff --git a/interface/web/sites/lib/lang/br_web_vhost_domain.lng b/interface/web/sites/lib/lang/br_web_vhost_domain.lng index 4c72b1fd8..01a7414a9 100644 --- a/interface/web/sites/lib/lang/br_web_vhost_domain.lng +++ b/interface/web/sites/lib/lang/br_web_vhost_domain.lng @@ -1,116 +1,116 @@ = 0.'; -$wb['pm_ondemand_hint_txt'] = 'Por favor, observe que você deve ter uma versão do PHP >= 5.3.9 para usar o gerenciador de processos sob demanda. Se você selecionar processos sob demanda usando uma versão antiga do PHP, o PHP não iniciará novamente!'; -$wb['generate_password_txt'] = 'Gerar senha'; -$wb['repeat_password_txt'] = 'Repetir senha'; -$wb['password_mismatch_txt'] = 'A senhas não coincidem.'; -$wb['password_match_txt'] = 'A senhas coincidem.'; -$wb['web_folder_error_regex'] = 'Pasta inválida informada. Por favor não insira barra - \\"\\".'; -$wb['domain_error_autosub'] = 'Já existe um subdomínio com essas configurações.'; -$wb['available_php_directive_snippets_txt'] = 'Diretivas de trechos de código do php disponíveis:'; -$wb['available_apache_directive_snippets_txt'] = 'Diretivas de trechos de código do apache disponíveis:'; -$wb['available_nginx_directive_snippets_txt'] = 'Diretivas de trechos de código do nginx disponíveis:'; +$wb['pm_max_children_txt'] = 'PHP-FPM pm.max_children'; +$wb['pm_start_servers_txt'] = 'PHP-FPM pm.start_servers'; +$wb['pm_min_spare_servers_txt'] = 'PHP-FPM pm.min_spare_servers'; +$wb['pm_max_spare_servers_txt'] = 'PHP-FPM pm.max_spare_servers'; +$wb['error_php_fpm_pm_settings_txt'] = 'Valores das configurações do php-fpm podem ser: pm.max_children >= pm.max_spare_servers >= pm.start_servers >= pm.min_spare_servers > 0'; +$wb['pm_max_children_error_regex'] = 'PHP-FPM pm.max_children deve ter um valor inteiro positivo.'; +$wb['pm_start_servers_error_regex'] = 'PHP-FPM pm.start_servers deve ter um valor inteiro positivo.'; +$wb['pm_min_spare_servers_error_regex'] = 'PHP-FPM pm.min_spare_servers deve ter um valor inteiro positivo.'; +$wb['pm_max_spare_servers_error_regex'] = 'PHP-FPM pm.max_spare_servers deve ter um valor inteiro positivo.'; +$wb['hd_quota_error_regex'] = 'Cota do disco é inválida.'; +$wb['traffic_quota_error_regex'] = 'Cota de tráfego é inválida.'; +$wb['fastcgi_php_version_txt'] = 'Versão do php'; +$wb['pm_txt'] = 'Gerenciador de Processos do php-fpm'; +$wb['pm_process_idle_timeout_txt'] = 'PHP-FPM pm.process_idle_timeout'; +$wb['pm_max_requests_txt'] = 'PHP-FPM pm.max_requests'; +$wb['pm_process_idle_timeout_error_regex'] = 'PHP-FPM pm.process_idle_timeout deve ter um valor inteiro positivo.'; +$wb['pm_max_requests_error_regex'] = 'PHP-FPM pm.max_requests deve ter um valor >= 0.'; +$wb['pm_ondemand_hint_txt'] = 'Por favor, observe que é necessário uma versão do php >= 5.3.9 para utilizar o gerenciador de processos por demanda. Se for selecionado por demanda com uma versão inferior do php, o mesmo não iniciará mais!'; +$wb['generate_password_txt'] = 'Gerar Senha'; +$wb['repeat_password_txt'] = 'Repetir Senha'; +$wb['password_mismatch_txt'] = 'As senhas não coincidem.'; +$wb['password_match_txt'] = 'As senhas coincidem.'; +$wb['available_php_directive_snippets_txt'] = 'Diretivas de trecho de código do php disponíveis:'; +$wb['available_apache_directive_snippets_txt'] = 'Diretivas de trecho de código do apache disponíveis:'; +$wb['available_nginx_directive_snippets_txt'] = 'Diretivas de trecho de código do nginx disponíveis:'; $wb['proxy_directives_txt'] = 'Diretivas do proxy'; $wb['available_proxy_directive_snippets_txt'] = 'Diretivas de trechos de código do proxy disponíveis:'; $wb['no_server_error'] = 'Nenhum servidor selecionado.'; @@ -118,39 +118,44 @@ $wb['no_backup_txt'] = 'Sem backup'; $wb['daily_backup_txt'] = 'Diário'; $wb['weekly_backup_txt'] = 'Semanal'; $wb['monthly_backup_txt'] = 'Mensal'; -$wb['rewrite_rules_txt'] = 'Regras de reescrita'; +$wb['rewrite_rules_txt'] = 'Reescrever Regras'; $wb['invalid_rewrite_rules_txt'] = 'Regras de reescrita inválidas'; $wb['allowed_rewrite_rule_directives_txt'] = 'Diretivas permitidas:'; $wb['configuration_error_txt'] = 'ERRO DE CONFIGURAÇÃO'; -$wb['web_folder_txt'] = 'Pasta web'; -$wb['web_folder_invalid_txt'] = 'A pasta web informada é inválida, por favor escolha um nome diferente.'; -$wb['web_folder_unique_txt'] = 'A pasta web informada já existe, por favor escolha um nome diferente.'; -$wb['host_txt'] = 'Nome do servidor'; -$wb['domain_error_wildcard'] = 'Curingas não são permitidos para subdomínios.'; +$wb['server_chosen_not_ok'] = 'O servidor selecionado não é permitido para esta conta.'; $wb['variables_txt'] = 'Variáveis'; $wb['added_by_txt'] = 'Cadastrado por'; $wb['added_date_txt'] = 'Data do cadastro'; -$wb['backup_excludes_txt'] = 'Diretórios excluídos'; -$wb['backup_excludes_note_txt'] = '(Separar múltiplos diretórios por vírgulas. Exemplo: web/cache/*,web/backup)'; -$wb['backup_excludes_error_regex'] = 'Os diretórios excluídos contém caracteres inválidos.'; -$wb['server_chosen_not_ok'] = 'O servidor selecionado não é permitido para esta conta.'; -$wb['subdomain_error_empty'] = 'O campo subdomínio está em branco ou contém caracteres inválidos.'; +$wb['backup_excludes_txt'] = 'Diretórios Excluídos'; +$wb['backup_excludes_note_txt'] = '(Separar múltiplos diretórios por vírgulas. Exemplo: web/cache/*, web/backup)'; +$wb['backup_excludes_error_regex'] = 'Os diretórios excluídos possuem caracteres inválidos.'; +$wb['web_folder_txt'] = 'Pasta web'; +$wb['web_folder_invalid_txt'] = 'A pasta web é inválida, por favor selecione outra.'; +$wb['web_folder_unique_txt'] = 'A pasta web é já está em uso, por favor selecione outra.'; +$wb['host_txt'] = 'Nome do host'; +$wb['domain_error_wildcard'] = 'Curingas não são permitidos para subdomínios.'; +$wb['variables_txt'] = 'Variáveis'; +$wb['backup_excludes_txt'] = 'Diretórios Excluídos'; +$wb['backup_excludes_note_txt'] = '(Separar múltiplos diretórios por vírgulas. Exemplo: web/cache/*, web/backup)'; +$wb['backup_excludes_error_regex'] = 'Os diretórios excluídos possuem caracteres inválidos.'; +$wb['subdomain_error_empty'] = 'O subdomínio está em branco ou possui caracteres inválidos.'; $wb['btn_save_txt'] = 'Salvar'; $wb['btn_cancel_txt'] = 'Cancelar'; $wb['enable_spdy_txt'] = 'Habilitar SPDY/HTTP2'; -$wb['load_client_data_txt'] = 'Carregas detalhes do cliente'; +$wb['load_client_data_txt'] = 'Carregar detalhes do cliente'; $wb['load_my_data_txt'] = 'Carregar detalhes do contato'; $wb['reset_client_data_txt'] = 'Limpar dados'; +$wb['document_root_txt'] = 'Document Root'; +$wb['ssl_letsencrypt_txt'] = 'Let\'s Encrypt SSL'; $wb['rewrite_to_https_txt'] = 'Reescrever HTTP para HTTPS'; $wb['password_strength_txt'] = 'Dificuldade da senha'; -$wb['directive_snippets_id_txt'] = 'Configurações do servidor de páginas'; -$wb['http_port_txt'] = 'Porta HTTP'; -$wb['https_port_txt'] = 'Porta HTTPS'; -$wb['http_port_error_regex'] = 'Porta HTTP inválida.'; -$wb['https_port_error_regex'] = 'Porta HTTPS inválida.'; +$wb['directive_snippets_id_txt'] = 'Configurações do servidor web'; +$wb['http_port_txt'] = 'Porta http'; +$wb['https_port_txt'] = 'Porta https'; +$wb['http_port_error_regex'] = 'Porta http inválida.'; +$wb['https_port_error_regex'] = 'Porta https inválida.'; $wb['enable_pagespeed_txt'] = 'Habilitar PageSpeed'; -$wb['log_retention_txt'] = 'Tempo de armazenamenro dos arquivos de log'; -$wb['log_retention_error_regex'] = 'Tempo de armazenamento, em dias (valores permitidos: min. 0 - max. 9999)'; -$wb['domain_error_acme_invalid'] = 'Domain name acme.invalid not permitted.'; -$wb['limit_web_quota_not_0_txt'] = 'Harddisk Quota cannot be set to 0.'; +$wb['log_retention_txt'] = 'Tempo de retenção do log de arquivos'; +$wb['log_retention_error_regex'] = 'Tempo de retenção em dias (valores permitidos: mínimo 0, máximo 9999)'; +$wb['limit_web_quota_not_0_txt'] = 'Cota de disco não pode ser configurada para 0.'; ?> diff --git a/interface/web/sites/lib/lang/br_web_vhost_domain_admin_list.lng b/interface/web/sites/lib/lang/br_web_vhost_domain_admin_list.lng index 6b1385926..3c0c7fd01 100644 --- a/interface/web/sites/lib/lang/br_web_vhost_domain_admin_list.lng +++ b/interface/web/sites/lib/lang/br_web_vhost_domain_admin_list.lng @@ -7,8 +7,8 @@ $wb['server_id_txt'] = 'Servidor'; $wb['domain_txt'] = 'Domínio'; $wb['add_new_record_txt'] = 'Adicionar novo site'; $wb['add_new_subdomain_txt'] = 'Adicionar novo subdomínio'; -$wb['add_new_aliasdomain_txt'] = 'Adicionar novo apelido de domínio'; +$wb['add_new_aliasdomain_txt'] = 'Adicionar novo alias de domínio'; $wb['domain_list_head_txt'] = 'Sites'; -$wb['aliasdomain_list_head_txt'] = 'Apelidos de domínios (vhost)'; +$wb['aliasdomain_list_head_txt'] = 'Alias de domínio (vhost)'; $wb['subdomain_list_head_txt'] = 'Subdomínios (vhost)'; ?> diff --git a/interface/web/sites/lib/lang/br_web_vhost_domain_list.lng b/interface/web/sites/lib/lang/br_web_vhost_domain_list.lng index e8fb6bfb0..8170afc2d 100644 --- a/interface/web/sites/lib/lang/br_web_vhost_domain_list.lng +++ b/interface/web/sites/lib/lang/br_web_vhost_domain_list.lng @@ -5,10 +5,10 @@ $wb['active_txt'] = 'Ativo'; $wb['server_id_txt'] = 'Servidor'; $wb['domain_txt'] = 'Domínio'; $wb['add_new_record_txt'] = 'Adicionar novo site'; -$wb['parent_domain_id_txt'] = 'Site'; $wb['add_new_subdomain_txt'] = 'Adicionar novo subdomínio'; -$wb['add_new_aliasdomain_txt'] = 'Adicionar novo apelido'; +$wb['add_new_aliasdomain_txt'] = 'Adicionar novo alias de domínio'; +$wb['parent_domain_id_txt'] = 'Site'; $wb['domain_list_head_txt'] = 'Sites'; -$wb['aliasdomain_list_head_txt'] = 'Apelidos de domínios (vhost)'; +$wb['aliasdomain_list_head_txt'] = 'Alias de domínio (vhost)'; $wb['subdomain_list_head_txt'] = 'Subdomínios (vhost)'; ?> diff --git a/interface/web/sites/lib/lang/br_web_vhost_subdomain.lng b/interface/web/sites/lib/lang/br_web_vhost_subdomain.lng index fa6ddad48..390b7402e 100644 --- a/interface/web/sites/lib/lang/br_web_vhost_subdomain.lng +++ b/interface/web/sites/lib/lang/br_web_vhost_subdomain.lng @@ -1,10 +1,10 @@ = 0.'; -$wb['pm_ondemand_hint_txt'] = 'Por favor, observe que você deve ter uma versão do PHP >= 5.3.9 para usar o gerenciador de processos sob demanda. Se você selecionar processos sob demanda usando uma versão antiga do PHP, o PHP não iniciará novamente!'; -$wb['generate_password_txt'] = 'Gerar senha'; -$wb['repeat_password_txt'] = 'Repetir senha'; -$wb['password_mismatch_txt'] = 'A senhas não coincidem.'; -$wb['password_match_txt'] = 'A senhas coincidem.'; -$wb['available_php_directive_snippets_txt'] = 'Diretivas de trechos de código do php disponíveis:'; -$wb['available_apache_directive_snippets_txt'] = 'Diretivas de trechos de código do apache disponíveis:'; -$wb['available_nginx_directive_snippets_txt'] = 'Diretivas de trechos de código do nginx disponíveis:'; -$wb['proxy_directives_txt'] = 'Diretivas do Proxy'; +$wb['pm_max_children_txt'] = 'PHP-FPM pm.max_children'; +$wb['pm_start_servers_txt'] = 'PHP-FPM pm.start_servers'; +$wb['pm_min_spare_servers_txt'] = 'PHP-FPM pm.min_spare_servers'; +$wb['pm_max_spare_servers_txt'] = 'PHP-FPM pm.max_spare_servers'; +$wb['error_php_fpm_pm_settings_txt'] = 'Valores das configurações do php-fpm podem ser: pm.max_children >= pm.max_spare_servers >= pm.start_servers >= pm.min_spare_servers > 0'; +$wb['pm_max_children_error_regex'] = 'PHP-FPM pm.max_children deve ter um valor inteiro positivo.'; +$wb['pm_start_servers_error_regex'] = 'PHP-FPM pm.start_servers deve ter um valor inteiro positivo.'; +$wb['pm_min_spare_servers_error_regex'] = 'PHP-FPM pm.min_spare_servers deve ter um valor inteiro positivo.'; +$wb['pm_max_spare_servers_error_regex'] = 'PHP-FPM pm.max_spare_servers deve ter um valor inteiro positivo.'; +$wb['hd_quota_error_regex'] = 'Cota do disco é inválida.'; +$wb['traffic_quota_error_regex'] = 'Cota de tráfego é inválida.'; +$wb['fastcgi_php_version_txt'] = 'Versão do php'; +$wb['pm_txt'] = 'Gerenciador de Processos do php-fpm'; +$wb['pm_process_idle_timeout_txt'] = 'PHP-FPM pm.process_idle_timeout'; +$wb['pm_max_requests_txt'] = 'PHP-FPM pm.max_requests'; +$wb['pm_process_idle_timeout_error_regex'] = 'PHP-FPM pm.process_idle_timeout deve ter um valor inteiro positivo.'; +$wb['pm_max_requests_error_regex'] = 'PHP-FPM pm.max_requests deve ter um valor >= 0.'; +$wb['pm_ondemand_hint_txt'] = 'Por favor, observe que é necessário uma versão do php >= 5.3.9 para utilizar o gerenciador de processos por demanda. Se for selecionado por demanda com uma versão inferior do php, o mesmo não iniciará mais!'; +$wb['generate_password_txt'] = 'Gerar Senha'; +$wb['repeat_password_txt'] = 'Repetir Senha'; +$wb['password_mismatch_txt'] = 'As senhas não coincidem.'; +$wb['password_match_txt'] = 'As senhas coincidem.'; +$wb['available_php_directive_snippets_txt'] = 'Diretivas de trecho de código do php disponíveis:'; +$wb['available_apache_directive_snippets_txt'] = 'Diretivas de trecho de código do apache disponíveis:'; +$wb['available_nginx_directive_snippets_txt'] = 'Diretivas de trecho de código do nginx disponíveis:'; +$wb['proxy_directives_txt'] = 'Diretivas do proxy'; $wb['available_proxy_directive_snippets_txt'] = 'Diretivas de trechos de código do proxy disponíveis:'; -$wb['rewrite_rules_txt'] = 'Regras de Reescrita'; +$wb['rewrite_rules_txt'] = 'Reescrever regras'; $wb['invalid_rewrite_rules_txt'] = 'Regras de reescrita inválidas'; -$wb['allowed_rewrite_rule_directives_txt'] = 'Diretivas Permitidas:'; +$wb['allowed_rewrite_rule_directives_txt'] = 'Diretivas permitidas:'; $wb['configuration_error_txt'] = 'ERRO DE CONFIGURAÇÃO'; $wb['variables_txt'] = 'Variáveis'; $wb['backup_excludes_txt'] = 'Diretórios Excluídos'; -$wb['backup_excludes_note_txt'] = '(Separar múltiplos diretórios por vírgulas. Exemplo: \\"web/cache/*,web/backup\\".)'; -$wb['backup_excludes_error_regex'] = 'Os diretórios excluídos contém caracteres inválidos.'; -$wb['subdomain_error_empty'] = 'O campo \\"Subdomínio\\" está em branco ou contém caracteres inválidos.'; -$wb['http_port_txt'] = 'Porta HTTP'; -$wb['https_port_txt'] = 'Porta HTTPS'; -$wb['http_port_error_regex'] = 'Porta HTTP inválida.'; -$wb['https_port_error_regex'] = 'Porta HTTPS inválida.'; +$wb['backup_excludes_note_txt'] = '(Separar múltiplos diretórios por vírgulas. Exemplo: web/cache/*, web/backup)'; +$wb['backup_excludes_error_regex'] = 'Os diretórios excluídos possuem caracteres inválidos.'; +$wb['subdomain_error_empty'] = 'O subdomínio está em branco ou possui caracteres inválidos.'; +$wb['http_port_txt'] = 'Porta http'; +$wb['https_port_txt'] = 'Porta https'; +$wb['http_port_error_regex'] = 'Porta http inválida.'; +$wb['https_port_error_regex'] = 'Porta https inválida.'; ?> diff --git a/interface/web/sites/lib/lang/br_webdav_user.lng b/interface/web/sites/lib/lang/br_webdav_user.lng index 4347f8ae3..485e3a774 100644 --- a/interface/web/sites/lib/lang/br_webdav_user.lng +++ b/interface/web/sites/lib/lang/br_webdav_user.lng @@ -7,15 +7,15 @@ $wb['password_txt'] = 'Senha'; $wb['password_strength_txt'] = 'Dificuldade da senha'; $wb['active_txt'] = 'Ativo'; $wb['limit_webdav_user_txt'] = 'O limite de usuários webdav para esta conta foi alcançado.'; -$wb['username_error_empty'] = 'Usuário está em branco.'; +$wb['username_error_empty'] = 'O nome do usuário está em branco.'; $wb['username_error_unique'] = 'O nome do usuário deve ser exclusivo.'; -$wb['username_error_regex'] = 'O nome do usuário contém caracteres não permitidos.'; -$wb['directory_error_empty'] = 'Diretório está em branco.'; +$wb['username_error_regex'] = 'O nome de usuário possui caracteres não permitidos.'; +$wb['directory_error_empty'] = 'O diretório está em branco.'; $wb['parent_domain_id_error_empty'] = 'Nenhum site selecionado.'; -$wb['dir_dot_error'] = 'Não é permitido \\"..\\" no caminho.'; -$wb['dir_slashdot_error'] = 'Não é permitido \\"./\\" no caminho.'; -$wb['generate_password_txt'] = 'Gerar senha'; -$wb['repeat_password_txt'] = 'Repetir senha'; -$wb['password_mismatch_txt'] = 'A senhas não coincidem.'; -$wb['password_match_txt'] = 'A senhas coincidem.'; +$wb['dir_dot_error'] = 'Não é permitido \'..\' no caminho.'; +$wb['dir_slashdot_error'] = 'Não é permitido \'./\' no caminho.'; +$wb['generate_password_txt'] = 'Gerar Senha'; +$wb['repeat_password_txt'] = 'Repetir Senha'; +$wb['password_mismatch_txt'] = 'As senhas não coincidem.'; +$wb['password_match_txt'] = 'As senhas coincidem.'; ?> diff --git a/interface/web/sites/lib/lang/tr.lng b/interface/web/sites/lib/lang/tr.lng index d0570f6c1..b5e7f42e2 100644 --- a/interface/web/sites/lib/lang/tr.lng +++ b/interface/web/sites/lib/lang/tr.lng @@ -1,8 +1,8 @@ diff --git a/interface/web/sites/lib/lang/tr_aps.lng b/interface/web/sites/lib/lang/tr_aps.lng index 1c6ccd49a..c876629a7 100644 --- a/interface/web/sites/lib/lang/tr_aps.lng +++ b/interface/web/sites/lib/lang/tr_aps.lng @@ -34,20 +34,20 @@ $wb['install_language_txt'] = 'Arayüz dili'; $wb['new_database_password_txt'] = 'Yeni veritabanı parolası'; $wb['basic_settings_txt'] = 'Temel ayarlar'; $wb['package_settings_txt'] = 'Paket ayarları'; -$wb['error_main_domain'] = 'Yükleme yolundaki alan adı geçersiz.'; +$wb['error_main_domain'] = 'Yükleme yolundaki etki alanı geçersiz.'; $wb['error_no_main_location'] = 'Yazdığınız yükleme yolu geçersiz.'; $wb['error_inv_main_location'] = 'Yazdığınız yükleme konumunu klasörü geçersiz.'; $wb['error_license_agreement'] = 'Devam etmek için lisans anlaşmasını onaylamalısınız.'; $wb['error_no_database_pw'] = 'Yazdığınız veritabanı parolası geçersiz.'; $wb['error_short_database_pw'] = 'Lütfen daha uzun bir veritabanı parolası yazın.'; -$wb['error_no_value_for'] = '\\"%s\\" alanı boş olamaz.'; -$wb['error_short_value_for'] = '\\"%s\\" alanına daha uzun bir değer yazılmalıdır.'; -$wb['error_long_value_for'] = '\\"%s\\" alanına daha kısa bir değer yazılmalıdır.'; -$wb['error_inv_value_for'] = '\\"%s\\" alanına yazılan değer geçersiz.'; -$wb['error_inv_email_for'] = '\\"%s\\" alanına yazılan e-posta adresi geçersiz.'; -$wb['error_inv_domain_for'] = '\\"%s\\" alanına yazılan alan adı geçersiz.'; -$wb['error_inv_integer_for'] = '\\"%s\\" alanına yazılan sayı geçersiz.'; -$wb['error_inv_float_for'] = '\\"%s\\" alanına yazılan küsuratlı sayı geçersiz.'; +$wb['error_no_value_for'] = '"%s" alanı boş olamaz.'; +$wb['error_short_value_for'] = '"%s" alanına daha uzun bir değer yazılmalıdır.'; +$wb['error_long_value_for'] = '"%s" alanına daha kısa bir değer yazılmalıdır.'; +$wb['error_inv_value_for'] = '"%s" alanına yazılan değer geçersiz.'; +$wb['error_inv_email_for'] = '"%s" alanına yazılan e-posta adresi geçersiz.'; +$wb['error_inv_domain_for'] = '"%s" alanına yazılan etki alanı geçersiz.'; +$wb['error_inv_integer_for'] = '"%s" alanına yazılan sayı geçersiz.'; +$wb['error_inv_float_for'] = '"%s" alanına yazılan küsuratlı sayı geçersiz.'; $wb['error_used_location'] = 'Yükleme yoluna daha önce yüklenmiş bir paket var.'; $wb['installation_task_txt'] = 'Yükleme planlandı'; $wb['installation_error_txt'] = 'Yükleme hatası'; @@ -55,9 +55,4 @@ $wb['installation_success_txt'] = 'Yüklendi'; $wb['installation_remove_txt'] = 'Kaldırma planlandı'; $wb['packagelist_update_finished_txt'] = 'APS paket listesi güncellendi.'; $wb['limit_aps_txt'] = 'Hesabınıza ekleyebileceğiniz en fazla APS kopyası sayısına ulaştınız.'; -$wb['generate_password_txt'] = 'Parola Oluştur'; -$wb['repeat_password_txt'] = 'Parola Onayı'; -$wb['password_mismatch_txt'] = 'Parola ile onayı aynı değil.'; -$wb['password_match_txt'] = 'Parola ile onayı aynı.'; -$wb['password_strength_txt'] = 'Parola Güçlüğü'; ?> diff --git a/interface/web/sites/lib/lang/tr_aps_instances_list.lng b/interface/web/sites/lib/lang/tr_aps_instances_list.lng index e8b3532ff..292c627f8 100644 --- a/interface/web/sites/lib/lang/tr_aps_instances_list.lng +++ b/interface/web/sites/lib/lang/tr_aps_instances_list.lng @@ -4,8 +4,8 @@ $wb['name_txt'] = 'Ad'; $wb['version_txt'] = 'Sürüm'; $wb['customer_txt'] = 'Müşteri'; $wb['status_txt'] = 'Durum'; -$wb['install_location_txt'] = 'Yükleme Konumu'; -$wb['pkg_delete_confirmation'] = 'Bu yüklemeyi silmek istediğinize emin misiniz?'; +$wb['install_location_txt'] = 'Kurulum Konumu'; +$wb['pkg_delete_confirmation'] = 'Bu kurulumu silmek istediğinize emin misiniz?'; $wb['filter_txt'] = 'Arama'; $wb['delete_txt'] = 'Sil'; ?> diff --git a/interface/web/sites/lib/lang/tr_backup_stats_list.lng b/interface/web/sites/lib/lang/tr_backup_stats_list.lng index 65792aa59..f59fcae70 100644 --- a/interface/web/sites/lib/lang/tr_backup_stats_list.lng +++ b/interface/web/sites/lib/lang/tr_backup_stats_list.lng @@ -1,10 +1,10 @@ diff --git a/interface/web/sites/lib/lang/tr_cron.lng b/interface/web/sites/lib/lang/tr_cron.lng index f645d7632..d00e6868c 100644 --- a/interface/web/sites/lib/lang/tr_cron.lng +++ b/interface/web/sites/lib/lang/tr_cron.lng @@ -17,10 +17,10 @@ $wb['run_mday_error_format'] = 'Ayın günü biçimi geçersiz.'; $wb['run_month_error_format'] = 'Ay biçimi geçersiz.'; $wb['run_wday_error_format'] = 'Haftanın günü biçimi geçersiz.'; $wb['command_error_format'] = 'Komut biçimi geçersiz. İnternet adreslerinde yalnız http/https kullanılabilir.'; -$wb['unknown_fieldtype_error'] = 'Bilinmeyen bir alan tipi kullanılmış.'; +$wb['unknown_fieldtype_error'] = 'Bilinmeyen bir alan türü kullanılmış.'; $wb['server_id_error_empty'] = 'Sunucu kodu boş olamaz.'; +$wb['command_hint_txt'] = 'Örnek: /var/www/clients/musteriX/webY/betigim.sh ya da http://www.etkialanim.com/yol/betik.php, /var/www/clients/musteriX/webY/web yerine [web_root] kodunu kullanabilirsiniz.'; +$wb['log_output_txt'] = 'Günlük çıktısı'; $wb['limit_cron_url_txt'] = 'Yalnız İnternet adresli zamanlanmış görev kullanılabilir. Lütfen zamanlanmış görev komutu olarak http:// ile başlayan bir İnternet adresi yazın.'; $wb['command_error_empty'] = 'Komut boş olamaz.'; -$wb['command_hint_txt'] = 'e.g. /var/www/clients/clientX/webY/myscript.sh or http://www.mydomain.com/path/script.php, you can use [web_root] placeholder that is replaced by /var/www/clients/clientX/webY/web.'; -$wb['log_output_txt'] = 'Log output'; ?> diff --git a/interface/web/sites/lib/lang/tr_database.lng b/interface/web/sites/lib/lang/tr_database.lng index d5d8c7d85..f443bbb62 100644 --- a/interface/web/sites/lib/lang/tr_database.lng +++ b/interface/web/sites/lib/lang/tr_database.lng @@ -1,13 +1,13 @@ diff --git a/interface/web/sites/lib/lang/tr_database_admin_list.lng b/interface/web/sites/lib/lang/tr_database_admin_list.lng index fc92e1957..e13404415 100644 --- a/interface/web/sites/lib/lang/tr_database_admin_list.lng +++ b/interface/web/sites/lib/lang/tr_database_admin_list.lng @@ -2,11 +2,11 @@ $wb['list_head_txt'] = 'Veritabanı'; $wb['active_txt'] = 'Etkin'; $wb['remote_access_txt'] = 'Uzaktan Erişim'; +$wb['type_txt'] = 'Tür'; $wb['server_id_txt'] = 'Sunucu'; -$wb['database_user_txt'] = 'Veritabanı kullanıcısı'; -$wb['database_name_txt'] = 'Veritabanı adı'; -$wb['add_new_record_txt'] = 'Veritabanı ekle'; +$wb['database_user_txt'] = 'Veritabanı Kullanıcı Adı'; +$wb['database_name_txt'] = 'Veritabanı Adı'; +$wb['add_new_record_txt'] = 'Veritabanı Ekle'; $wb['sys_groupid_txt'] = 'Müşteri'; $wb['parent_domain_id_txt'] = 'Web Sitesi'; -$wb['type_txt'] = 'Type'; ?> diff --git a/interface/web/sites/lib/lang/tr_database_list.lng b/interface/web/sites/lib/lang/tr_database_list.lng index 43ea5f9b6..591a72af1 100644 --- a/interface/web/sites/lib/lang/tr_database_list.lng +++ b/interface/web/sites/lib/lang/tr_database_list.lng @@ -2,10 +2,10 @@ $wb['list_head_txt'] = 'Veritabanı'; $wb['active_txt'] = 'Etkin'; $wb['remote_access_txt'] = 'Uzaktan Erişim'; +$wb['type_txt'] = 'Tür'; $wb['server_id_txt'] = 'Sunucu'; $wb['database_user_txt'] = 'Veritabanı Kullanıcısı'; $wb['database_name_txt'] = 'Veritabanı Adı'; $wb['add_new_record_txt'] = 'Veritabanı Ekle'; $wb['parent_domain_id_txt'] = 'Web Sitesi'; -$wb['type_txt'] = 'Type'; ?> diff --git a/interface/web/sites/lib/lang/tr_database_quota_stats_list.lng b/interface/web/sites/lib/lang/tr_database_quota_stats_list.lng index 50f2dcc49..a65174977 100644 --- a/interface/web/sites/lib/lang/tr_database_quota_stats_list.lng +++ b/interface/web/sites/lib/lang/tr_database_quota_stats_list.lng @@ -1,9 +1,9 @@ diff --git a/interface/web/sites/lib/lang/tr_database_user.lng b/interface/web/sites/lib/lang/tr_database_user.lng index 785c4ecce..3f6ba89f4 100644 --- a/interface/web/sites/lib/lang/tr_database_user.lng +++ b/interface/web/sites/lib/lang/tr_database_user.lng @@ -1,25 +1,25 @@ diff --git a/interface/web/sites/lib/lang/tr_ftp_sites_stats_list.lng b/interface/web/sites/lib/lang/tr_ftp_sites_stats_list.lng index e44025a71..6d2da369d 100644 --- a/interface/web/sites/lib/lang/tr_ftp_sites_stats_list.lng +++ b/interface/web/sites/lib/lang/tr_ftp_sites_stats_list.lng @@ -1,10 +1,10 @@ diff --git a/interface/web/sites/lib/lang/tr_ftp_user.lng b/interface/web/sites/lib/lang/tr_ftp_user.lng index 665d2ec47..155573595 100644 --- a/interface/web/sites/lib/lang/tr_ftp_user.lng +++ b/interface/web/sites/lib/lang/tr_ftp_user.lng @@ -12,7 +12,7 @@ $wb['server_id_txt'] = 'Sunucu'; $wb['parent_domain_id_txt'] = 'Web Sitesi'; $wb['username_txt'] = 'Kullanıcı Adı'; $wb['password_txt'] = 'Parola'; -$wb['password_strength_txt'] = 'Parola Güçlüğü'; +$wb['password_strength_txt'] = 'Parola Zorluğu'; $wb['quota_size_txt'] = 'Disk Kotası'; $wb['active_txt'] = 'Etkin'; $wb['limit_ftp_user_txt'] = 'Hesabınıza ekleyebileceğiniz en fazla FTP kullanıcısı sayısına ulaştınız.'; @@ -21,15 +21,16 @@ $wb['username_error_unique'] = 'Bu kullanıcı adı zaten var.'; $wb['username_error_regex'] = 'Kullanıcı adında izin verilmeyen karakterler var.'; $wb['quota_size_error_empty'] = 'Kota boş olamaz.'; $wb['uid_error_empty'] = 'UID boş olamaz.'; +$wb['gid_error_empty'] = 'GID boş olamaz.'; $wb['directory_error_empty'] = 'Klasör boş olamaz.'; $wb['directory_error_notinweb'] = 'Klasör web kök klasörünün altında bulunmalıdır.'; $wb['parent_domain_id_error_empty'] = 'Bir web sitesi seçmelisiniz.'; $wb['quota_size_error_regex'] = 'Kota: Sınırsız olması için -1 sınırlamak için sıfırdan büyük bir rakam yazın'; $wb['dir_dot_error'] = 'Yol içinde .. kullanılamaz.'; $wb['dir_slashdot_error'] = 'Yol içinde ./ kullanılamaz.'; -$wb['generate_password_txt'] = 'Parola Oluştur'; +$wb['generate_password_txt'] = 'Parola Üret'; $wb['repeat_password_txt'] = 'Parola Onayı'; $wb['password_mismatch_txt'] = 'Parola ile onayı aynı değil.'; $wb['password_match_txt'] = 'Parola ile onayı aynı.'; -$wb['expires_txt'] = 'Expire at'; +$wb['expires_txt'] = 'Sona Erme Zamanı'; ?> diff --git a/interface/web/sites/lib/lang/tr_shell_user.lng b/interface/web/sites/lib/lang/tr_shell_user.lng index 5610d5993..e2aa84484 100644 --- a/interface/web/sites/lib/lang/tr_shell_user.lng +++ b/interface/web/sites/lib/lang/tr_shell_user.lng @@ -7,7 +7,7 @@ $wb['server_id_txt'] = 'Sunucu'; $wb['parent_domain_id_txt'] = 'Web Sitesi'; $wb['username_txt'] = 'Kullanıcı Adı'; $wb['password_txt'] = 'Parola'; -$wb['password_strength_txt'] = 'Parola Güçlüğü'; +$wb['password_strength_txt'] = 'Parola Zorluğu'; $wb['chroot_txt'] = 'Chroot Kabuğu'; $wb['quota_size_txt'] = 'Kota'; $wb['active_txt'] = 'Etkin'; @@ -22,7 +22,7 @@ $wb['parent_domain_id_error_empty'] = 'Bir web sitesi seçmelisiniz.'; $wb['ssh_rsa_txt'] = 'SSH-RSA Genel Anahtarı (anahtar ile oturum açmak için)'; $wb['dir_dot_error'] = 'Yol içinde .. . kullanılamaz.'; $wb['dir_slashdot_error'] = 'Yol içinde ./ kullanılamaz.'; -$wb['generate_password_txt'] = 'Parola Oluştur'; +$wb['generate_password_txt'] = 'Parola Üret'; $wb['repeat_password_txt'] = 'Parola Onayı'; $wb['password_mismatch_txt'] = 'Parola ile onayı aynı değil.'; $wb['password_match_txt'] = 'Parola ile onayı aynı.'; diff --git a/interface/web/sites/lib/lang/tr_shell_user_list.lng b/interface/web/sites/lib/lang/tr_shell_user_list.lng index b88c7fa74..5c375a232 100644 --- a/interface/web/sites/lib/lang/tr_shell_user_list.lng +++ b/interface/web/sites/lib/lang/tr_shell_user_list.lng @@ -1,8 +1,8 @@ diff --git a/interface/web/sites/lib/lang/tr_user_quota_stats_list.lng b/interface/web/sites/lib/lang/tr_user_quota_stats_list.lng index 82103410f..be7712fd4 100644 --- a/interface/web/sites/lib/lang/tr_user_quota_stats_list.lng +++ b/interface/web/sites/lib/lang/tr_user_quota_stats_list.lng @@ -1,6 +1,6 @@ = 5.3.9 olmalıdır. Daha önceki bir PHP sürümü için ondemand özelliğini seçerseniz, PHP başlatılamaz!'; -$wb['generate_password_txt'] = 'Parola Oluştur'; +$wb['generate_password_txt'] = 'Parola Üret'; $wb['repeat_password_txt'] = 'Parola Onayı'; $wb['password_mismatch_txt'] = 'Parola ile onayı aynı değil.'; $wb['password_match_txt'] = 'Parola ile onayı aynı.'; -$wb['available_php_directive_snippets_txt'] = 'Kullanılabilecek PHP Yönerge Parçaları:'; -$wb['available_apache_directive_snippets_txt'] = 'Kullanılabilecek Apache Yönerge Parçaları:'; -$wb['available_nginx_directive_snippets_txt'] = 'Kullanılabilecek nginx Yönerge Parçaları:'; +$wb['available_php_directive_snippets_txt'] = 'Kullanılabilecek PHP Yönerge Kod Parçaları:'; +$wb['available_apache_directive_snippets_txt'] = 'Kullanılabilecek Apache Yönerge Kod Parçaları:'; +$wb['available_nginx_directive_snippets_txt'] = 'Kullanılabilecek nginx Yönerge Kod Parçaları:'; $wb['proxy_directives_txt'] = 'Vekil Sunucu Yönergeleri'; -$wb['available_proxy_directive_snippets_txt'] = 'Kullanılabilecek Vekil Sunucu Yönerge Parçaları:'; -$wb['Domain'] = 'Başka alan adı'; +$wb['available_proxy_directive_snippets_txt'] = 'Kullanılabilecek Vekil Sunucu Yönerge Kod Parçaları:'; +$wb['Domain'] = 'Takma Etki Alanı'; ?> diff --git a/interface/web/sites/lib/lang/tr_web_aliasdomain_list.lng b/interface/web/sites/lib/lang/tr_web_aliasdomain_list.lng index b7acfd099..e4dcaacbe 100644 --- a/interface/web/sites/lib/lang/tr_web_aliasdomain_list.lng +++ b/interface/web/sites/lib/lang/tr_web_aliasdomain_list.lng @@ -1,14 +1,14 @@ diff --git a/interface/web/sites/lib/lang/tr_web_backup_list.lng b/interface/web/sites/lib/lang/tr_web_backup_list.lng index c9bc16ae7..31aea494c 100644 --- a/interface/web/sites/lib/lang/tr_web_backup_list.lng +++ b/interface/web/sites/lib/lang/tr_web_backup_list.lng @@ -1,8 +1,9 @@ diff --git a/interface/web/sites/lib/lang/tr_web_childdomain.lng b/interface/web/sites/lib/lang/tr_web_childdomain.lng index e11c6a92b..235e87011 100644 --- a/interface/web/sites/lib/lang/tr_web_childdomain.lng +++ b/interface/web/sites/lib/lang/tr_web_childdomain.lng @@ -1,26 +1,26 @@ = 0.'; -$wb['pm_ondemand_hint_txt'] = 'Please note that you must have PHP version >= 5.3.9 in order to use the ondemand process manager. If you select ondemand for an older PHP version, PHP will not start anymore!'; -$wb['generate_password_txt'] = 'Generate Password'; -$wb['repeat_password_txt'] = 'Repeat Password'; -$wb['password_mismatch_txt'] = 'The passwords do not match.'; -$wb['password_match_txt'] = 'The passwords do match.'; -$wb['available_php_directive_snippets_txt'] = 'Available PHP Directive Snippets:'; -$wb['available_apache_directive_snippets_txt'] = 'Available Apache Directive Snippets:'; -$wb['available_nginx_directive_snippets_txt'] = 'Available nginx Directive Snippets:'; -$wb['Domain'] = 'Aliasdomain'; -$wb['domain_error_acme_invalid'] = 'Domain name acme.invalid not permitted.'; -$wb['ssl_letsencrypt_exclude_txt'] = 'Don\'t add to Let\'s Encrypt certificate'; +$wb['pm_process_idle_timeout_error_regex'] = 'PHP-FPM pm.process_idle_timeout değeri pozitif bir tamsayı olmalıdır.'; +$wb['pm_max_requests_error_regex'] = 'PHP-FPM pm.max_requests değeri pozitif bir tamsayı olmalıdır >= 0.'; +$wb['pm_ondemand_hint_txt'] = 'Ondemand işlem yönetimini kullanabilmek için PHP sürümünüz >= 5.3.9 olmalıdır. Daha eski bir PHP sürümü için ondemand seçilirse PHP çalışmaya başlayamaz!'; +$wb['generate_password_txt'] = 'Parola Üret'; +$wb['repeat_password_txt'] = 'Parola Onayı'; +$wb['password_mismatch_txt'] = 'Parola ve onayı aynı değil'; +$wb['password_match_txt'] = 'Parola ve onayı aynı değil.'; +$wb['available_php_directive_snippets_txt'] = 'Kullanılabilecek PHP Yönerge Kod Parçaları:'; +$wb['available_apache_directive_snippets_txt'] = 'Kullanılabilecek Apache Yönerge Kod Parçaları:'; +$wb['available_nginx_directive_snippets_txt'] = 'Kullanılabilecek nginx Yönerge Kod Parçaları:'; +$wb['Domain'] = 'Takma Etki Alanı Adı'; +$wb['ssl_letsencrypt_exclude_txt'] = 'Let\'s Encrypt sertifikası eklenmesin'; ?> diff --git a/interface/web/sites/lib/lang/tr_web_childdomain_list.lng b/interface/web/sites/lib/lang/tr_web_childdomain_list.lng index 26b3acc9e..33127c84c 100644 --- a/interface/web/sites/lib/lang/tr_web_childdomain_list.lng +++ b/interface/web/sites/lib/lang/tr_web_childdomain_list.lng @@ -1,18 +1,18 @@ diff --git a/interface/web/sites/lib/lang/tr_web_directive_snippets.lng b/interface/web/sites/lib/lang/tr_web_directive_snippets.lng index d2590e53c..a4380942e 100644 --- a/interface/web/sites/lib/lang/tr_web_directive_snippets.lng +++ b/interface/web/sites/lib/lang/tr_web_directive_snippets.lng @@ -1,3 +1,3 @@ diff --git a/interface/web/sites/lib/lang/tr_web_domain.lng b/interface/web/sites/lib/lang/tr_web_domain.lng index c97ce7377..65db621f5 100644 --- a/interface/web/sites/lib/lang/tr_web_domain.lng +++ b/interface/web/sites/lib/lang/tr_web_domain.lng @@ -3,7 +3,7 @@ $wb['backup_interval_txt'] = 'Yedekleme Sıklığı'; $wb['backup_copies_txt'] = 'Yedek Kopyası Sayısı'; $wb['ssl_state_txt'] = 'İl'; $wb['ssl_locality_txt'] = 'Bölge'; -$wb['ssl_organisation_txt'] = 'Kurum'; +$wb['ssl_organisation_txt'] = 'Kuruluş'; $wb['ssl_organisation_unit_txt'] = 'Birim'; $wb['ssl_country_txt'] = 'Ülke'; $wb['ssl_key_txt'] = 'SSL Anahtarı'; @@ -11,13 +11,13 @@ $wb['ssl_request_txt'] = 'SSL İsteği'; $wb['ssl_cert_txt'] = 'SSL Sertifikası'; $wb['ssl_bundle_txt'] = 'SSL Yığını'; $wb['ssl_action_txt'] = 'SSL İşlemi'; -$wb['ssl_domain_txt'] = 'SSL Alan Adı'; +$wb['ssl_domain_txt'] = 'SSL Etki Alanı'; $wb['server_id_txt'] = 'Sunucu'; -$wb['domain_txt'] = 'Alan Adı'; -$wb['web_folder_error_regex'] = 'Yazdığınız klasör geçersiz. Lütfen / karakterini yazmayın.'; -$wb['type_txt'] = 'Tip'; +$wb['domain_txt'] = 'Etki Alanı'; +$wb['web_folder_error_regex'] = 'Yazdığınız klasör geçersiz. Lütfen bölü karakterini yazmayın.'; +$wb['type_txt'] = 'Tür'; $wb['parent_domain_id_txt'] = 'Üst Web Sitesi'; -$wb['redirect_type_txt'] = 'Yönlendirme Tipi'; +$wb['redirect_type_txt'] = 'Yönlendirme Türü'; $wb['redirect_path_txt'] = 'Yönlendirme Yolu'; $wb['active_txt'] = 'Etkin'; $wb['document_root_txt'] = 'Kök Klasör'; @@ -25,62 +25,62 @@ $wb['system_user_txt'] = 'Linux Kullanıcısı'; $wb['system_group_txt'] = 'Linux Grubu'; $wb['ip_address_txt'] = 'IPv4 Adresi'; $wb['ipv6_address_txt'] = 'IPv6 Adresi'; -$wb['vhost_type_txt'] = 'SSunucu Tipi'; +$wb['vhost_type_txt'] = 'Sanal Sunucu Türü'; $wb['hd_quota_txt'] = 'Disk Kotası'; $wb['traffic_quota_txt'] = 'Trafik Kotası'; $wb['cgi_txt'] = 'CGI'; $wb['ssi_txt'] = 'SSI'; $wb['errordocs_txt'] = 'Özel Hata Sayfaları'; -$wb['subdomain_txt'] = 'Otomatik Alt Alan'; +$wb['subdomain_txt'] = 'Otomatik Alt Etki Alanı'; $wb['ssl_txt'] = 'SSL'; $wb['suexec_txt'] = 'SuEXEC'; $wb['php_txt'] = 'PHP'; $wb['client_txt'] = 'Müşteri'; -$wb['limit_web_domain_txt'] = 'Hesabınıza ekleyebileceğiniz en fazla alan adı sayısına ulaştınız.'; -$wb['limit_web_aliasdomain_txt'] = 'Hesabınıza ekleyebileceğiniz en fazla başka alan adı sayısına ulaştınız.'; -$wb['limit_web_subdomain_txt'] = 'Hesabınıza ekleyebileceğiniz en fazla alt alan adı sayısına ulaştınız.'; +$wb['limit_web_domain_txt'] = 'Hesabınıza ekleyebileceğiniz en fazla etki alanı sayısına ulaştınız.'; +$wb['limit_web_aliasdomain_txt'] = 'Hesabınıza ekleyebileceğiniz en fazla takma etki alanı sayısına ulaştınız.'; +$wb['limit_web_subdomain_txt'] = 'Hesabınıza ekleyebileceğiniz en fazla alt etki alanı sayısına ulaştınız.'; $wb['apache_directives_txt'] = 'Apache Yönergeleri'; -$wb['domain_error_empty'] = 'Alan adı boş olamaz.'; -$wb['domain_error_unique'] = 'Aynı adlı bir web sitesi ya da alt/başka alan adı var.'; -$wb['domain_error_regex'] = 'Alan adı geçersiz.'; -$wb['domain_error_autosub'] = 'Aynı ayarlara sahip bir alt alan adı zaten var.'; +$wb['domain_error_empty'] = 'Etki alanı boş olamaz.'; +$wb['domain_error_unique'] = 'Aynı adlı bir web sitesi ya da alt/takma etki alanı var.'; +$wb['domain_error_regex'] = 'Etki alanı geçersiz.'; +$wb['domain_error_autosub'] = 'Aynı ayarlara sahip bir alt etki alanı zaten var.'; $wb['hd_quota_error_empty'] = 'Disk kotası 0 ya da boş olamaz.'; $wb['traffic_quota_error_empty'] = 'Trafik kotası boş olamaz.'; -$wb['error_ssl_state_empty'] = 'SSL şehri boş olamaz.'; +$wb['error_ssl_state_empty'] = 'SSL ili boş olamaz.'; $wb['error_ssl_locality_empty'] = 'SSL bölgesi boş olamaz.'; -$wb['error_ssl_organisation_empty'] = 'SSL kurumu boş olamaz.'; +$wb['error_ssl_organisation_empty'] = 'SSL kuruluşu boş olamaz.'; $wb['error_ssl_organisation_unit_empty'] = 'SSL birimi boş olamaz.'; $wb['error_ssl_country_empty'] = 'SSL ülkesi boş olamaz.'; $wb['error_ssl_cert_empty'] = 'SSL sertifikası alanı boş olamaz'; $wb['client_group_id_txt'] = 'Müşteri'; -$wb['stats_password_txt'] = 'Web istatistikleri parolası'; +$wb['stats_password_txt'] = 'Web İstatistikleri Parolası'; $wb['allow_override_txt'] = 'Apache AllowOverride'; $wb['limit_web_quota_free_txt'] = 'Kullanılabilecek en fazla disk kotası'; -$wb['ssl_state_error_regex'] = 'SSL şehri geçersiz. Kullanılabilecek karakterler: a-z, 0-9 ve .,-_&äöüÄÖÜ'; +$wb['ssl_state_error_regex'] = 'SSL ili geçersiz. Kullanılabilecek karakterler: a-z, 0-9 ve .,-_&äöüÄÖÜ'; $wb['ssl_locality_error_regex'] = 'SSL bölgesi geçersiz. Kullanılabilecek karakterler: a-z, 0-9 ve .,-_&äöüÄÖÜ'; -$wb['ssl_organisation_error_regex'] = 'SSL kurumu geçersiz. Kullanılabilecek karakterler: a-z, 0-9 ve .,-_&äöüÄÖÜ'; -$wb['ssl_organistaion_unit_error_regex'] = 'SSL birimi geçersiz. Kullanılabilecek karakterler: a-z, 0-9 ve .,-_&äöüÄÖÜ'; +$wb['ssl_organisation_error_regex'] = 'SSL kuruluşu geçersiz. Kullanılabilecek karakterler: a-z, 0-9 ve .,-_&äöüÄÖÜ'; +$wb['ssl_organistaion_unit_error_regex'] = 'SSL kuruluşu birimi geçersiz. Kullanılabilecek karakterler: a-z, 0-9 ve .,-_&äöüÄÖÜ'; $wb['ssl_country_error_regex'] = 'SSL ülkesi geçersiz. Kullanılabilecek karakterler: A-Z'; $wb['limit_traffic_quota_free_txt'] = 'Kullanılabilecek en fazla trafik kotası'; -$wb['redirect_error_regex'] = 'Yönlendirme yolu geçersiz. Geçerli örnekler: /test/ ya da http://www.domain.tld/test/'; +$wb['redirect_error_regex'] = 'Yönlendirme yolu geçersiz. Örnekler: /test/ ya da http://www.domain.tld/test/'; $wb['php_open_basedir_txt'] = 'PHP open_basedir'; $wb['traffic_quota_exceeded_txt'] = 'Trafik kotası aşıldı'; $wb['ruby_txt'] = 'Ruby'; -$wb['stats_user_txt'] = 'Web istatistikleri kullanıcı adı'; -$wb['stats_type_txt'] = 'Web istatistikleri yazılımı'; -$wb['custom_php_ini_txt'] = 'Özel php.ini ayarları'; +$wb['stats_user_txt'] = 'Web İstatistikleri Kullanıcı Adı'; +$wb['stats_type_txt'] = 'Web İstatistikleri Uygulaması'; +$wb['custom_php_ini_txt'] = 'Özel php.ini Ayarları'; $wb['none_txt'] = 'Yok'; $wb['disabled_txt'] = 'Devre Dışı'; $wb['no_redirect_txt'] = 'Yönlendirme yok'; $wb['no_flag_txt'] = 'İşaret yok'; -$wb['save_certificate_txt'] = 'Sertifikayı kaydet'; -$wb['create_certificate_txt'] = 'Sertifika ekle'; -$wb['delete_certificate_txt'] = 'Sertifikayı sil'; +$wb['save_certificate_txt'] = 'Sertifikayı Kaydet'; +$wb['create_certificate_txt'] = 'Sertifika Ekle'; +$wb['delete_certificate_txt'] = 'Sertifikayı Sil'; $wb['nginx_directives_txt'] = 'nginx Yönergeleri'; $wb['seo_redirect_txt'] = 'AMD Yönlendirme'; $wb['non_www_to_www_txt'] = 'Non-www -> www'; $wb['www_to_non_www_txt'] = 'www -> non-www'; -$wb['php_fpm_use_socket_txt'] = 'PHP-FPM İçin Soket Kullanılsın'; +$wb['php_fpm_use_socket_txt'] = 'PHP-FPM Soketi'; $wb['error_no_sni_txt'] = 'Bu sunucuda SSL için SNI etkinleştirilmemiş. Bir IP adresi için yalnız bir SSL sertifikası etkinleştirebilirsiniz.'; $wb['python_txt'] = 'Python'; $wb['perl_txt'] = 'Perl'; @@ -102,15 +102,15 @@ $wb['pm_max_requests_txt'] = 'PHP-FPM pm.max_requests'; $wb['pm_process_idle_timeout_error_regex'] = 'PHP-FPM pm.process_idle_timeout değeri pozitif bir tamsayı olmalıdır.'; $wb['pm_max_requests_error_regex'] = 'PHP-FPM pm.max_requests değeri sıfır ya da pozitif bir tamsayı olmalıdır.'; $wb['pm_ondemand_hint_txt'] = 'İsteğe bağlı işlem yöneticisini kullanabilmek için PHP Sürümünüz >= 5.3.9 olmalıdır. Daha önceki bir PHP sürümü için ondemand özelliğini seçerseniz, PHP başlatılamaz!'; -$wb['generate_password_txt'] = 'Parola Oluştur'; +$wb['generate_password_txt'] = 'Parola Üret'; $wb['repeat_password_txt'] = 'Parola Onayı'; $wb['password_mismatch_txt'] = 'Parola ile onayı aynı değil.'; $wb['password_match_txt'] = 'Parola ile onayı aynı.'; -$wb['available_php_directive_snippets_txt'] = 'Kullanılabilecek PHP Yönerge Parçaları:'; -$wb['available_apache_directive_snippets_txt'] = 'Kullanılabilecek Apache Yönerge Parçaları:'; -$wb['available_nginx_directive_snippets_txt'] = 'Kullanılabilecek nginx Yönerge Parçaları:'; +$wb['available_php_directive_snippets_txt'] = 'Kullanılabilecek PHP Yönerge Kod Parçaları:'; +$wb['available_apache_directive_snippets_txt'] = 'Kullanılabilecek Apache Yönerge Kod Parçaları:'; +$wb['available_nginx_directive_snippets_txt'] = 'Kullanılabilecek nginx Yönerge Kod Parçaları:'; $wb['proxy_directives_txt'] = 'Vekil Sunucu Yönergeleri'; -$wb['available_proxy_directive_snippets_txt'] = 'Kullanılabilecek Vekil Sunucu Yönerge Parçaları:'; +$wb['available_proxy_directive_snippets_txt'] = 'Kullanılabilecek Vekil Sunucu Yönerge Kod Parçaları:'; $wb['no_server_error'] = 'Bir sunucu seçmelisiniz.'; $wb['no_backup_txt'] = 'Yedek alınmasın'; $wb['daily_backup_txt'] = 'Günlük'; @@ -122,16 +122,16 @@ $wb['allowed_rewrite_rule_directives_txt'] = 'Kullanılabilecek Yönergeler:'; $wb['configuration_error_txt'] = 'AYAR HATASI'; $wb['variables_txt'] = 'Değişkenler'; $wb['added_by_txt'] = 'Ekleyen'; -$wb['added_date_txt'] = 'Eklendiği tarih'; +$wb['added_date_txt'] = 'Eklenme Tarihi'; $wb['backup_excludes_txt'] = 'Katılmayacak Klasörler'; $wb['backup_excludes_note_txt'] = '(Klasörleri virgül ile ayırarak yazın. Örnek: web/cache/*,web/backup)'; $wb['backup_excludes_error_regex'] = 'Katılmayacak klasörlerde geçersiz karakterler bulunuyor.'; $wb['invalid_custom_php_ini_settings_txt'] = 'php.ini ayarları geçersiz'; $wb['invalid_system_user_or_group_txt'] = 'Sistem kullanıcısı ya da grubu geçersiz'; $wb['apache_directive_blocked_error'] = 'Apache yönergesi güvenlik ayarları tarafından engellenmiş:'; -$wb['http_port_txt'] = 'HTTP Port'; -$wb['https_port_txt'] = 'HTTPS Port'; -$wb['http_port_error_regex'] = 'HTTP Port invalid.'; -$wb['https_port_error_regex'] = 'HTTPS Port invalid.'; -$wb['nginx_directive_blocked_error'] = 'Nginx directive blocked by security settings:'; +$wb['http_port_txt'] = 'HTTP Kapı Numarası'; +$wb['https_port_txt'] = 'HTTPS Kapı Numarası'; +$wb['http_port_error_regex'] = 'HTTP kapı numarası geçersiz.'; +$wb['https_port_error_regex'] = 'HTTPS kapı numarası geçersiz.'; +$wb['nginx_directive_blocked_error'] = 'nginx yönergesi güvenlik ayarları tarafından engellendi:'; ?> diff --git a/interface/web/sites/lib/lang/tr_web_domain_admin_list.lng b/interface/web/sites/lib/lang/tr_web_domain_admin_list.lng index f86967d0d..487c6a087 100644 --- a/interface/web/sites/lib/lang/tr_web_domain_admin_list.lng +++ b/interface/web/sites/lib/lang/tr_web_domain_admin_list.lng @@ -4,6 +4,6 @@ $wb['list_head_txt'] = 'Web Siteleri'; $wb['domain_id_txt'] = 'Kod'; $wb['active_txt'] = 'Etkin'; $wb['server_id_txt'] = 'Sunucu'; -$wb['domain_txt'] = 'Alan Adı'; +$wb['domain_txt'] = 'Etki Alanı'; $wb['add_new_record_txt'] = 'Web Sitesi Ekle'; ?> diff --git a/interface/web/sites/lib/lang/tr_web_domain_list.lng b/interface/web/sites/lib/lang/tr_web_domain_list.lng index a2320b5dc..fbfa57347 100644 --- a/interface/web/sites/lib/lang/tr_web_domain_list.lng +++ b/interface/web/sites/lib/lang/tr_web_domain_list.lng @@ -3,6 +3,6 @@ $wb['list_head_txt'] = 'Web Siteleri'; $wb['domain_id_txt'] = 'Kod'; $wb['active_txt'] = 'Etkin'; $wb['server_id_txt'] = 'Sunucu'; -$wb['domain_txt'] = 'Alan Adı'; +$wb['domain_txt'] = 'Etki Alanı'; $wb['add_new_record_txt'] = 'Web Sitesi Ekle'; ?> diff --git a/interface/web/sites/lib/lang/tr_web_folder_user.lng b/interface/web/sites/lib/lang/tr_web_folder_user.lng index a0479ee0d..afbe01cab 100644 --- a/interface/web/sites/lib/lang/tr_web_folder_user.lng +++ b/interface/web/sites/lib/lang/tr_web_folder_user.lng @@ -4,8 +4,8 @@ $wb['username_txt'] = 'Kullanıcı Adı'; $wb['password_txt'] = 'Parola'; $wb['active_txt'] = 'Etkin'; $wb['folder_error_empty'] = 'Bir web klasörü seçilmemiş.'; -$wb['password_strength_txt'] = 'Parola Güçlüğü'; -$wb['generate_password_txt'] = 'Parola Oluştur'; +$wb['password_strength_txt'] = 'Parola Zorluğu'; +$wb['generate_password_txt'] = 'Parola Üret'; $wb['repeat_password_txt'] = 'Parola Onayı'; $wb['password_mismatch_txt'] = 'Parola ile onayı aynı değil.'; $wb['password_match_txt'] = 'Parola ile onayı aynı.'; diff --git a/interface/web/sites/lib/lang/tr_web_sites_stats_list.lng b/interface/web/sites/lib/lang/tr_web_sites_stats_list.lng index 4fbdef871..685fc22fc 100644 --- a/interface/web/sites/lib/lang/tr_web_sites_stats_list.lng +++ b/interface/web/sites/lib/lang/tr_web_sites_stats_list.lng @@ -1,6 +1,6 @@ diff --git a/interface/web/sites/lib/lang/tr_web_subdomain_list.lng b/interface/web/sites/lib/lang/tr_web_subdomain_list.lng index 8155af64b..6527242e2 100644 --- a/interface/web/sites/lib/lang/tr_web_subdomain_list.lng +++ b/interface/web/sites/lib/lang/tr_web_subdomain_list.lng @@ -1,8 +1,8 @@ diff --git a/interface/web/sites/lib/lang/tr_web_vhost_domain.lng b/interface/web/sites/lib/lang/tr_web_vhost_domain.lng index 2e9384fee..4cfe808bf 100644 --- a/interface/web/sites/lib/lang/tr_web_vhost_domain.lng +++ b/interface/web/sites/lib/lang/tr_web_vhost_domain.lng @@ -3,7 +3,7 @@ $wb['backup_interval_txt'] = 'Yedekleme Sıklığı'; $wb['backup_copies_txt'] = 'Yedek Kopyası Sayısı'; $wb['ssl_state_txt'] = 'İl'; $wb['ssl_locality_txt'] = 'Bölge'; -$wb['ssl_organisation_txt'] = 'Kurum'; +$wb['ssl_organisation_txt'] = 'Kuruluş'; $wb['ssl_organisation_unit_txt'] = 'Birim'; $wb['ssl_country_txt'] = 'Ülke'; $wb['ssl_key_txt'] = 'SSL Anahtarı'; @@ -11,13 +11,13 @@ $wb['ssl_request_txt'] = 'SSL İsteği'; $wb['ssl_cert_txt'] = 'SSL Sertifikası'; $wb['ssl_bundle_txt'] = 'SSL Yığını'; $wb['ssl_action_txt'] = 'SSL İşlemi'; -$wb['ssl_domain_txt'] = 'SSL Alan Adı'; +$wb['ssl_domain_txt'] = 'SSL Etki Alanı'; $wb['server_id_txt'] = 'Sunucu'; -$wb['domain_txt'] = 'Alan Adı'; +$wb['domain_txt'] = 'Etki Alanı'; $wb['web_folder_error_regex'] = 'Yazdığınız klasör geçersiz. Lütfen / karakterini yazmayın.'; -$wb['type_txt'] = 'Tip'; +$wb['type_txt'] = 'Tür'; $wb['parent_domain_id_txt'] = 'Üst Web Sitesi'; -$wb['redirect_type_txt'] = 'Yönlendirme Tipi'; +$wb['redirect_type_txt'] = 'Yönlendirme Türü'; $wb['redirect_path_txt'] = 'Yönlendirme Yolu'; $wb['active_txt'] = 'Etkin'; $wb['document_root_txt'] = 'Kök Klasör'; @@ -25,63 +25,63 @@ $wb['system_user_txt'] = 'Linux Kullanıcısı'; $wb['system_group_txt'] = 'Linux Grubu'; $wb['ip_address_txt'] = 'IPv4 Adresi'; $wb['ipv6_address_txt'] = 'IPv6 Adresi'; -$wb['vhost_type_txt'] = 'SSunucu Tipi'; +$wb['vhost_type_txt'] = 'Sanal Sunucu Türü'; $wb['hd_quota_txt'] = 'Disk Kotası'; $wb['traffic_quota_txt'] = 'Trafik Kotası'; $wb['cgi_txt'] = 'CGI'; $wb['ssi_txt'] = 'SSI'; $wb['errordocs_txt'] = 'Özel Hata Sayfaları'; -$wb['subdomain_txt'] = 'Otomatik Alt Alan'; +$wb['subdomain_txt'] = 'Otomatik Alt Etki Alanı'; $wb['ssl_txt'] = 'SSL'; $wb['suexec_txt'] = 'SuEXEC'; $wb['php_txt'] = 'PHP'; $wb['client_txt'] = 'Müşteri'; -$wb['limit_web_domain_txt'] = 'Hesabınıza ekleyebileceğiniz en fazla alan adı sayısına ulaştınız.'; -$wb['limit_web_aliasdomain_txt'] = 'Hesabınıza ekleyebileceğiniz en fazla başka alan adı sayısına ulaştınız.'; -$wb['limit_web_subdomain_txt'] = 'Hesabınıza ekleyebileceğiniz en fazla alt alan adı sayısına ulaştınız.'; +$wb['limit_web_domain_txt'] = 'Hesabınıza ekleyebileceğiniz en fazla etki alanı sayısına ulaştınız.'; +$wb['limit_web_aliasdomain_txt'] = 'Hesabınıza ekleyebileceğiniz en fazla takma etki alanı sayısına ulaştınız.'; +$wb['limit_web_subdomain_txt'] = 'Hesabınıza ekleyebileceğiniz en fazla alt etki alanı sayısına ulaştınız.'; $wb['apache_directives_txt'] = 'Apache Yönergeleri'; -$wb['domain_error_empty'] = 'Alan adı boş olamaz.'; -$wb['domain_error_unique'] = 'Aynı adlı bir web sitesi ya da alt/başka alan adı var.'; -$wb['domain_error_regex'] = 'Alan adı geçersiz.'; -$wb['domain_error_autosub'] = 'Aynı ayarlara sahip bir alt alan adı zaten var.'; +$wb['domain_error_empty'] = 'Etki alanı boş olamaz.'; +$wb['domain_error_unique'] = 'Aynı adlı bir web sitesi ya da alt/takma etki alanı var.'; +$wb['domain_error_regex'] = 'Etki alanı geçersiz.'; +$wb['domain_error_acme_invalid'] = 'acme.invalid etki alanı adı kullanılamaz.'; +$wb['domain_error_autosub'] = 'Aynı ayarlara sahip bir alt etki alanı zaten var.'; $wb['hd_quota_error_empty'] = 'Disk kotası 0 ya da boş olamaz.'; $wb['traffic_quota_error_empty'] = 'Trafik kotası boş olamaz.'; -$wb['error_ssl_state_empty'] = 'SSL şehri boş olamaz.'; +$wb['error_ssl_state_empty'] = 'SSL ili boş olamaz.'; $wb['error_ssl_locality_empty'] = 'SSL bölgesi boş olamaz.'; -$wb['error_ssl_organisation_empty'] = 'SSL kurumu boş olamaz.'; +$wb['error_ssl_organisation_empty'] = 'SSL kuruluşu boş olamaz.'; $wb['error_ssl_organisation_unit_empty'] = 'SSL birimi boş olamaz.'; $wb['error_ssl_country_empty'] = 'SSL ülkesi boş olamaz.'; $wb['error_ssl_cert_empty'] = 'SSL sertifikası alanı boş olamaz'; $wb['client_group_id_txt'] = 'Müşteri'; -$wb['stats_password_txt'] = 'Web istatistikleri parolası'; +$wb['stats_password_txt'] = 'Web İstatistikleri Parolası'; $wb['allow_override_txt'] = 'Apache AllowOverride'; $wb['limit_web_quota_free_txt'] = 'Kullanılabilecek en fazla disk kotası'; -$wb['ssl_state_error_regex'] = 'SSL şehri geçersiz. Kullanılabilecek karakterler: a-z, 0-9 ve .,-_&äöüÄÖÜ'; +$wb['ssl_state_error_regex'] = 'SSL ili geçersiz. Kullanılabilecek karakterler: a-z, 0-9 ve .,-_&äöüÄÖÜ'; $wb['ssl_locality_error_regex'] = 'SSL bölgesi geçersiz. Kullanılabilecek karakterler: a-z, 0-9 ve .,-_&äöüÄÖÜ'; -$wb['ssl_organisation_error_regex'] = 'SSL kurumu geçersiz. Kullanılabilecek karakterler: a-z, 0-9 ve .,-_&äöüÄÖÜ'; -$wb['ssl_organistaion_unit_error_regex'] = 'SSL birimi geçersiz. Kullanılabilecek karakterler: a-z, 0-9 ve .,-_&äöüÄÖÜ'; +$wb['ssl_organisation_error_regex'] = 'SSL kuruluşu geçersiz. Kullanılabilecek karakterler: a-z, 0-9 ve .,-_&äöüÄÖÜ'; +$wb['ssl_organistaion_unit_error_regex'] = 'SSL kuruluşu birimi geçersiz. Kullanılabilecek karakterler: a-z, 0-9 ve .,-_&äöüÄÖÜ'; $wb['ssl_country_error_regex'] = 'SSL ülkesi geçersiz. Kullanılabilecek karakterler: A-Z'; $wb['limit_traffic_quota_free_txt'] = 'Kullanılabilecek en fazla trafik kotası'; $wb['redirect_error_regex'] = 'Yönlendirme yolu geçersiz. Geçerli örnekler: /test/ ya da http://www.domain.tld/test/'; $wb['php_open_basedir_txt'] = 'PHP open_basedir'; $wb['traffic_quota_exceeded_txt'] = 'Trafik kotası aşıldı'; $wb['ruby_txt'] = 'Ruby'; -$wb['stats_user_txt'] = 'Web istatistikleri kullanıcı adı'; -$wb['stats_type_txt'] = 'Web istatistikleri yazılımı'; -$wb['custom_php_ini_txt'] = 'Özel php.ini ayarları'; +$wb['stats_user_txt'] = 'Web İstatistikleri Kullanıcı Adı'; +$wb['stats_type_txt'] = 'Web İstatistikleri Uygulaması'; +$wb['custom_php_ini_txt'] = 'Özel php.ini Ayarları'; $wb['none_txt'] = 'Yok'; $wb['disabled_txt'] = 'Devre Dışı'; $wb['no_redirect_txt'] = 'Yönlendirme yok'; $wb['no_flag_txt'] = 'İşaret yok'; -$wb['save_certificate_txt'] = 'Sertifikayı kaydet'; -$wb['create_certificate_txt'] = 'Sertifika ekle'; -$wb['delete_certificate_txt'] = 'Sertifikayı sil'; +$wb['save_certificate_txt'] = 'Sertifikayı Kaydet'; +$wb['create_certificate_txt'] = 'Sertifika Ekle'; +$wb['delete_certificate_txt'] = 'Sertifikayı Sil'; $wb['nginx_directives_txt'] = 'nginx Yönergeleri'; $wb['seo_redirect_txt'] = 'AMD Yönlendirme'; $wb['non_www_to_www_txt'] = 'Non-www -> www'; $wb['www_to_non_www_txt'] = 'www -> non-www'; -$wb['php_fpm_use_socket_txt'] = 'PHP-FPM İçin Soket Kullanılsın'; -$wb['php_fpm_chroot_txt'] = 'Chroot PHP-FPM'; +$wb['php_fpm_use_socket_txt'] = 'PHP-FPM Soketi'; $wb['error_no_sni_txt'] = 'Bu sunucuda SSL için SNI etkinleştirilmemiş. Bir IP adresi için yalnız bir SSL sertifikası etkinleştirebilirsiniz.'; $wb['python_txt'] = 'Python'; $wb['perl_txt'] = 'Perl'; @@ -103,15 +103,15 @@ $wb['pm_max_requests_txt'] = 'PHP-FPM pm.max_requests'; $wb['pm_process_idle_timeout_error_regex'] = 'PHP-FPM pm.process_idle_timeout değeri pozitif bir tamsayı olmalıdır.'; $wb['pm_max_requests_error_regex'] = 'PHP-FPM pm.max_requests değeri sıfır ya da pozitif bir tamsayı olmalıdır.'; $wb['pm_ondemand_hint_txt'] = 'İsteğe bağlı işlem yöneticisini kullanabilmek için PHP Sürümünüz >= 5.3.9 olmalıdır. Daha önceki bir PHP sürümü için ondemand özelliğini seçerseniz, PHP başlatılamaz!'; -$wb['generate_password_txt'] = 'Parola Oluştur'; +$wb['generate_password_txt'] = 'Parola Üret'; $wb['repeat_password_txt'] = 'Parola Onayı'; $wb['password_mismatch_txt'] = 'Parola ile onayı aynı değil.'; $wb['password_match_txt'] = 'Parola ile onayı aynı.'; -$wb['available_php_directive_snippets_txt'] = 'Kullanılabilecek PHP Yönerge Parçaları:'; -$wb['available_apache_directive_snippets_txt'] = 'Kullanılabilecek Apache Yönerge Parçaları:'; -$wb['available_nginx_directive_snippets_txt'] = 'Kullanılabilecek nginx Yönerge Parçaları:'; +$wb['available_php_directive_snippets_txt'] = 'Kullanılabilecek PHP Yönerge Kod Parçaları:'; +$wb['available_apache_directive_snippets_txt'] = 'Kullanılabilecek Apache Yönerge Kod Parçaları:'; +$wb['available_nginx_directive_snippets_txt'] = 'Kullanılabilecek nginx Yönerge Kod Parçaları:'; $wb['proxy_directives_txt'] = 'Vekil Sunucu Yönergeleri'; -$wb['available_proxy_directive_snippets_txt'] = 'Kullanılabilecek Vekil Sunucu Yönerge Parçaları:'; +$wb['available_proxy_directive_snippets_txt'] = 'Kullanılabilecek Vekil Sunucu Yönerge Kod Parçaları:'; $wb['no_server_error'] = 'Bir sunucu seçmelisiniz.'; $wb['no_backup_txt'] = 'Yedek alınmasın'; $wb['daily_backup_txt'] = 'Günlük'; @@ -121,36 +121,39 @@ $wb['rewrite_rules_txt'] = 'Yeniden Yazma Kuralları'; $wb['invalid_rewrite_rules_txt'] = 'Yeniden Yazma Kuralları Geçersiz'; $wb['allowed_rewrite_rule_directives_txt'] = 'Kullanılabilecek Yönergeler:'; $wb['configuration_error_txt'] = 'AYAR HATASI'; +$wb['server_chosen_not_ok'] = 'Seçilmiş sunucuda bu hesap kullanılamıyor.'; $wb['variables_txt'] = 'Değişkenler'; $wb['added_by_txt'] = 'Ekleyen'; -$wb['added_date_txt'] = 'Eklendiği tarih'; +$wb['added_date_txt'] = 'Eklenme Tarihi'; $wb['backup_excludes_txt'] = 'Katılmayacak Klasörler'; $wb['backup_excludes_note_txt'] = '(Klasörleri virgül ile ayırarak yazın. Örnek: web/cache/*,web/backup)'; $wb['backup_excludes_error_regex'] = 'Katılmayacak klasörlerde geçersiz karakterler bulunuyor.'; -$wb['server_chosen_not_ok'] = 'The selected server is not allowed for this account.'; -$wb['web_folder_txt'] = 'Web folder'; -$wb['web_folder_invalid_txt'] = 'The web folder is invalid, please choose a different one.'; -$wb['web_folder_unique_txt'] = 'The web folder is already used, please choose a different one.'; -$wb['host_txt'] = 'Hostname'; -$wb['domain_error_wildcard'] = 'Wildcard subdomains are not allowed.'; -$wb['subdomain_error_empty'] = 'The subdommain field is empty or contains invalid characters.'; -$wb['btn_save_txt'] = 'Save'; -$wb['btn_cancel_txt'] = 'Cancel'; -$wb['enable_spdy_txt'] = 'Enable SPDY/HTTP2'; -$wb['load_client_data_txt'] = 'Load client details'; -$wb['load_my_data_txt'] = 'Load my contact details'; -$wb['reset_client_data_txt'] = 'Reset data'; -$wb['ssl_letsencrypt_txt'] = 'Let\'s Encrypt SSL'; -$wb['rewrite_to_https_txt'] = 'Rewrite HTTP to HTTPS'; -$wb['password_strength_txt'] = 'Password strength'; -$wb['directive_snippets_id_txt'] = 'Web server config'; -$wb['http_port_txt'] = 'HTTP Port'; -$wb['https_port_txt'] = 'HTTPS Port'; -$wb['http_port_error_regex'] = 'HTTP Port invalid.'; -$wb['https_port_error_regex'] = 'HTTPS Port invalid.'; -$wb['enable_pagespeed_txt'] = 'Enable PageSpeed'; -$wb['log_retention_txt'] = 'Logfiles retention time'; -$wb['log_retention_error_regex'] = 'Retention time in days (allowed values: min. 0 - max. 9999)'; -$wb['domain_error_acme_invalid'] = 'Domain name acme.invalid not permitted.'; -$wb['limit_web_quota_not_0_txt'] = 'Harddisk Quota cannot be set to 0.'; +$wb['web_folder_txt'] = 'Web klasörü'; +$wb['web_folder_invalid_txt'] = 'Web klasörü geçersiz, lütfen başka bir klasör seçin.'; +$wb['web_folder_unique_txt'] = 'Web klasörü zaten kullanılıyor, lütfen başka bir klasör seçin.'; +$wb['host_txt'] = 'Sunucu adı'; +$wb['domain_error_wildcard'] = 'Genel alt etki alanları kullanılamaz.'; +$wb['variables_txt'] = 'Değişkenler'; +$wb['backup_excludes_txt'] = 'Katılmayacak Klasörler'; +$wb['backup_excludes_note_txt'] = '(Klasörleri virgül ile ayırarak yazın. Örnek: web/cache/*,web/backup)'; +$wb['backup_excludes_error_regex'] = 'Katılmayacak klasörlerde geçersiz karakterler bulunuyor.'; +$wb['subdomain_error_empty'] = 'Alt etki alanı boş ya da geçersiz karakterler içeriyor.'; +$wb['btn_save_txt'] = 'Kaydet'; +$wb['btn_cancel_txt'] = 'İptal'; +$wb['enable_spdy_txt'] = 'SPDY kullanılsın'; +$wb['load_client_data_txt'] = 'Müşteri Bilgilerini Yükle'; +$wb['load_my_data_txt'] = 'Profil Bilgilerimi Yükle'; +$wb['reset_client_data_txt'] = 'Verileri Sıfırla'; +$wb['document_root_txt'] = 'Belge Kök Klasörü'; +$wb['ssl_letsencrypt_txt'] = 'Let'; +$wb['rewrite_to_https_txt'] = 'HTTP, HTTPS Yönlendirme'; +$wb['password_strength_txt'] = 'Parola Zorluğu'; +$wb['directive_snippets_id_txt'] = 'Web Sunucu Yapılandırması'; +$wb['http_port_txt'] = 'HTTP Kapı Numarası'; +$wb['https_port_txt'] = 'HTTPS Kapı Numarası'; +$wb['http_port_error_regex'] = 'HTTP kapı numarası geçersiz.'; +$wb['https_port_error_regex'] = 'HTTPS kapı numarası geçersiz.'; +$wb['enable_pagespeed_txt'] = 'PageSpeed Kullanılsın'; +$wb['log_retention_txt'] = 'Günlük Dosyalarının Silinme Sıklığı'; +$wb['log_retention_error_regex'] = 'Gün cinsinden günlük dosyalarının silinme sıklığı (En küçük: 0 - En büyük: 9999)'; ?> diff --git a/interface/web/sites/lib/lang/tr_web_vhost_domain_admin_list.lng b/interface/web/sites/lib/lang/tr_web_vhost_domain_admin_list.lng index 4f07fd858..423e95623 100644 --- a/interface/web/sites/lib/lang/tr_web_vhost_domain_admin_list.lng +++ b/interface/web/sites/lib/lang/tr_web_vhost_domain_admin_list.lng @@ -1,14 +1,14 @@ diff --git a/interface/web/sites/lib/lang/tr_web_vhost_domain_list.lng b/interface/web/sites/lib/lang/tr_web_vhost_domain_list.lng index b7df7ed9d..061afec49 100644 --- a/interface/web/sites/lib/lang/tr_web_vhost_domain_list.lng +++ b/interface/web/sites/lib/lang/tr_web_vhost_domain_list.lng @@ -3,12 +3,12 @@ $wb['list_head_txt'] = 'Web Siteleri'; $wb['domain_id_txt'] = 'Kod'; $wb['active_txt'] = 'Etkin'; $wb['server_id_txt'] = 'Sunucu'; -$wb['parent_domain_id_txt'] = 'Website'; -$wb['domain_txt'] = 'Alan Adı'; +$wb['domain_txt'] = 'Etki Alanı'; $wb['add_new_record_txt'] = 'Web Sitesi Ekle'; -$wb['add_new_subdomain_txt'] = 'Add new subdomain'; -$wb['add_new_aliasdomain_txt'] = 'Add new aliasdomain'; -$wb['domain_list_head_txt'] = 'Websites'; -$wb['aliasdomain_list_head_txt'] = 'Aliasdomains (Vhost)'; -$wb['subdomain_list_head_txt'] = 'Subdomains (Vhost)'; +$wb['add_new_subdomain_txt'] = 'Alt Etki Alanı Ekle'; +$wb['add_new_aliasdomain_txt'] = 'Takma Etki Alanı Ekle'; +$wb['parent_domain_id_txt'] = 'Web Sitesi'; +$wb['domain_list_head_txt'] = 'Web Siteleri'; +$wb['aliasdomain_list_head_txt'] = 'Takma Etki Alanları (Sanal Sunucu)'; +$wb['subdomain_list_head_txt'] = 'Alt Etki Alanı Adları (Sanal Sunucu)'; ?> diff --git a/interface/web/sites/lib/lang/tr_web_vhost_subdomain.lng b/interface/web/sites/lib/lang/tr_web_vhost_subdomain.lng index 2bbcfb661..a24883881 100644 --- a/interface/web/sites/lib/lang/tr_web_vhost_subdomain.lng +++ b/interface/web/sites/lib/lang/tr_web_vhost_subdomain.lng @@ -7,7 +7,7 @@ $wb['backup_interval_txt'] = 'Yedekleme Sıklığı'; $wb['backup_copies_txt'] = 'Yedek Kopyası Sayısı'; $wb['ssl_state_txt'] = 'İl'; $wb['ssl_locality_txt'] = 'Bölge'; -$wb['ssl_organisation_txt'] = 'Kurum'; +$wb['ssl_organisation_txt'] = 'Kuruluş'; $wb['ssl_organisation_unit_txt'] = 'Birim'; $wb['ssl_country_txt'] = 'Ülke'; $wb['ssl_key_txt'] = 'SSL Anahtarı'; @@ -15,13 +15,14 @@ $wb['ssl_request_txt'] = 'SSL İsteği'; $wb['ssl_cert_txt'] = 'SSL Sertifikası'; $wb['ssl_bundle_txt'] = 'SSL Yığını'; $wb['ssl_action_txt'] = 'SSL İşlemi'; -$wb['ssl_domain_txt'] = 'SSL Alan Adı'; +$wb['ssl_domain_txt'] = 'SSL Etki Alanı'; $wb['server_id_txt'] = 'Sunucu'; -$wb['domain_txt'] = 'Alan Adı'; +$wb['domain_txt'] = 'Etki Alanı'; $wb['host_txt'] = 'Sunucu Adı'; $wb['web_folder_error_regex'] = 'Yazılan klasör geçersiz. Lütfen / karakteri kullanmadan yazın.'; -$wb['type_txt'] = 'Tip'; -$wb['redirect_type_txt'] = 'Yönlendirme Tipi'; +$wb['type_txt'] = 'Tür'; +$wb['parent_domain_id_txt'] = 'Üst Web Sitesi'; +$wb['redirect_type_txt'] = 'Yönlendirme Türü'; $wb['redirect_path_txt'] = 'Yönlendirme Yolu'; $wb['active_txt'] = 'Etkin'; $wb['document_root_txt'] = 'Kök Klasör'; @@ -29,30 +30,30 @@ $wb['system_user_txt'] = 'Linux Kullanıcısı'; $wb['system_group_txt'] = 'Linux Grubu'; $wb['ip_address_txt'] = 'IPv4 Adresi'; $wb['ipv6_address_txt'] = 'IPv6 Adresi'; -$wb['vhost_type_txt'] = 'SSunucu Tipi'; +$wb['vhost_type_txt'] = 'Sanal Sunucu Türü'; $wb['hd_quota_txt'] = 'Disk Kotası'; $wb['traffic_quota_txt'] = 'Trafik Kotası'; $wb['cgi_txt'] = 'CGI'; $wb['ssi_txt'] = 'SSI'; $wb['errordocs_txt'] = 'Özel Hata Sayfaları'; -$wb['subdomain_txt'] = 'Otomatik Alt Alan'; +$wb['subdomain_txt'] = 'Otomatik Alt Etki Alanı'; $wb['ssl_txt'] = 'SSL'; $wb['suexec_txt'] = 'SuEXEC'; $wb['php_txt'] = 'PHP'; $wb['client_txt'] = 'Müşteri'; -$wb['limit_web_domain_txt'] = 'Hesabınıza ekleyebileceğiniz en fazla alan adı sayısına ulaştınız.'; -$wb['limit_web_aliasdomain_txt'] = 'Hesabınıza ekleyebileceğiniz en fazla başka alan adı sayısına ulaştınız.'; -$wb['limit_web_subdomain_txt'] = 'Hesabınıza ekleyebileceğiniz en fazla alt alan adı sayısına ulaştınız.'; +$wb['limit_web_domain_txt'] = 'Hesabınıza ekleyebileceğiniz en fazla etki alanı sayısına ulaştınız.'; +$wb['limit_web_aliasdomain_txt'] = 'Hesabınıza ekleyebileceğiniz en fazla takma etki alanı sayısına ulaştınız.'; +$wb['limit_web_subdomain_txt'] = 'Hesabınıza ekleyebileceğiniz en fazla alt etki alanı sayısına ulaştınız.'; $wb['apache_directives_txt'] = 'Apache Yönergeleri'; -$wb['domain_error_empty'] = 'Alan adı boş olamaz.'; -$wb['domain_error_unique'] = 'Aynı adlı bir web sitesi ya da alt/başka alan adı var.'; -$wb['domain_error_regex'] = 'Alan adı geçersiz.'; -$wb['domain_error_wildcard'] = 'Genel karakterler içeren alt alan adları kullanılamaz.'; +$wb['domain_error_empty'] = 'Etki alanı boş olamaz.'; +$wb['domain_error_unique'] = 'Aynı adlı bir web sitesi ya da alt/takma etki alanı var.'; +$wb['domain_error_regex'] = 'Etki alanı geçersiz.'; +$wb['domain_error_wildcard'] = 'Genel karakterler içeren alt etki alanları kullanılamaz.'; $wb['hd_quota_error_empty'] = 'Disk kotası 0 ya da boş olamaz.'; $wb['traffic_quota_error_empty'] = 'Trafik kotası boş olamaz.'; -$wb['error_ssl_state_empty'] = 'SSL şehri boş olamaz.'; +$wb['error_ssl_state_empty'] = 'SSL ili boş olamaz.'; $wb['error_ssl_locality_empty'] = 'SSL bölgesi boş olamaz.'; -$wb['error_ssl_organisation_empty'] = 'SSL kurumu boş olamaz.'; +$wb['error_ssl_organisation_empty'] = 'SSL kuruluşu boş olamaz.'; $wb['error_ssl_organisation_unit_empty'] = 'SSL birimi boş olamaz.'; $wb['error_ssl_country_empty'] = 'SSL ülkesi boş olamaz.'; $wb['error_ssl_cert_empty'] = 'SSL sertifikası alanı boş olamaz'; @@ -60,31 +61,31 @@ $wb['client_group_id_txt'] = 'Müşteri'; $wb['stats_password_txt'] = 'Web istatistikleri parolasını ayarla'; $wb['allow_override_txt'] = 'Apache AllowOverride'; $wb['limit_web_quota_free_txt'] = 'Kullanılabilecek en fazla disk kotası'; -$wb['ssl_state_error_regex'] = 'SSL şehri geçersiz. Kullanılabilecek karakterler: a-z, 0-9 ve .,-_'; -$wb['ssl_locality_error_regex'] = 'SSL bölgesi geçersiz. Kullanılabilecek karakterler: a-z, 0-9 ve .,-_'; -$wb['ssl_organisation_error_regex'] = 'SSL kurumu geçersiz. Kullanılabilecek karakterler: a-z, 0-9 ve .,-_'; -$wb['ssl_organistaion_unit_error_regex'] = 'SSL birimi geçersiz. Kullanılabilecek karakterler: a-z, 0-9 ve .,-_'; +$wb['ssl_state_error_regex'] = 'SSL ili geçersiz. Kullanılabilecek karakterler: a-z, 0-9 ve .,-_&äöüÄÖÜ'; +$wb['ssl_locality_error_regex'] = 'SSL bölgesi geçersiz. Kullanılabilecek karakterler: a-z, 0-9 ve .,-_&äöüÄÖÜ'; +$wb['ssl_organisation_error_regex'] = 'SSL kuruluşu geçersiz. Kullanılabilecek karakterler: a-z, 0-9 ve .,-_&äöüÄÖÜ'; +$wb['ssl_organistaion_unit_error_regex'] = 'SSL kuruluşu birimi geçersiz. Kullanılabilecek karakterler: a-z, 0-9 ve .,-_&äöüÄÖÜ'; $wb['ssl_country_error_regex'] = 'SSL ülkesi geçersiz. Kullanılabilecek karakterler: A-Z'; $wb['limit_traffic_quota_free_txt'] = 'Kullanılabilecek en fazla trafik kotası'; $wb['redirect_error_regex'] = 'Yönlendirme yolu geçersiz. Geçerli örnekler: /test/ ya da http://www.domain.tld/test/'; $wb['php_open_basedir_txt'] = 'PHP open_basedir'; $wb['traffic_quota_exceeded_txt'] = 'Trafik kotası aşıldı'; $wb['ruby_txt'] = 'Ruby'; -$wb['stats_user_txt'] = 'Web istatistikleri kullanıcı adı'; -$wb['stats_type_txt'] = 'Web istatistikleri yazılımı'; -$wb['custom_php_ini_txt'] = 'Özel php.ini ayarları'; +$wb['stats_user_txt'] = 'Web İstatistikleri Kullanıcı Adı'; +$wb['stats_type_txt'] = 'Web İstatistikleri Uygulaması'; +$wb['custom_php_ini_txt'] = 'Özel php.ini Ayarları'; $wb['none_txt'] = 'Yok'; $wb['disabled_txt'] = 'Devre Dışı'; $wb['no_redirect_txt'] = 'Yönlendirme yok'; $wb['no_flag_txt'] = 'İşaret yok'; -$wb['save_certificate_txt'] = 'Sertifikayı kaydet'; -$wb['create_certificate_txt'] = 'Sertifika ekle'; -$wb['delete_certificate_txt'] = 'Sertifikayı sil'; +$wb['save_certificate_txt'] = 'Sertifikayı Kaydet'; +$wb['create_certificate_txt'] = 'Sertifika Ekle'; +$wb['delete_certificate_txt'] = 'Sertifikayı Sil'; $wb['nginx_directives_txt'] = 'nginx Yönergeleri'; $wb['seo_redirect_txt'] = 'AMD Yönlendirme'; $wb['non_www_to_www_txt'] = 'Non-www -> www'; $wb['www_to_non_www_txt'] = 'www -> non-www'; -$wb['php_fpm_use_socket_txt'] = 'PHP-FPM İçin Soket Kullanılsın'; +$wb['php_fpm_use_socket_txt'] = 'PHP-FPM Soketi'; $wb['error_no_sni_txt'] = 'Bu sunucuda SSL için SNI etkinleştirilmemiş. Bir IP adresi için yalnız bir SSL sertifikası etkinleştirebilirsiniz.'; $wb['python_txt'] = 'Python'; $wb['perl_txt'] = 'Perl'; @@ -106,26 +107,26 @@ $wb['pm_max_requests_txt'] = 'PHP-FPM pm.max_requests'; $wb['pm_process_idle_timeout_error_regex'] = 'PHP-FPM pm.process_idle_timeout değeri pozitif bir tamsayı olmalıdır.'; $wb['pm_max_requests_error_regex'] = 'PHP-FPM pm.max_requests değeri sıfır ya da pozitif bir tamsayı olmalıdır.'; $wb['pm_ondemand_hint_txt'] = 'İsteğe bağlı işlem yöneticisini kullanabilmek için PHP Sürümünüz >= 5.3.9 olmalıdır. Daha önceki bir PHP sürümü için ondemand özelliğini seçerseniz, PHP başlatılamaz!'; -$wb['generate_password_txt'] = 'Parola Oluştur'; +$wb['generate_password_txt'] = 'Parola Üret'; $wb['repeat_password_txt'] = 'Parola Onayı'; $wb['password_mismatch_txt'] = 'Parola ile onayı aynı değil.'; $wb['password_match_txt'] = 'Parola ile onayı aynı.'; -$wb['available_php_directive_snippets_txt'] = 'Kullanılabilecek PHP Yönerge Parçaları:'; -$wb['available_apache_directive_snippets_txt'] = 'Kullanılabilecek Apache Yönerge Parçaları:'; -$wb['available_nginx_directive_snippets_txt'] = 'Kullanılabilecek nginx Yönerge Parçaları:'; +$wb['available_php_directive_snippets_txt'] = 'Kullanılabilecek PHP Yönerge Kod Parçaları:'; +$wb['available_apache_directive_snippets_txt'] = 'Kullanılabilecek Apache Yönerge Kod Parçaları:'; +$wb['available_nginx_directive_snippets_txt'] = 'Kullanılabilecek nginx Yönerge Kod Parçaları:'; $wb['proxy_directives_txt'] = 'Vekil Sunucu Yönergeleri'; -$wb['available_proxy_directive_snippets_txt'] = 'Kullanılabilecek Vekil Sunucu Yönerge Parçaları:'; +$wb['available_proxy_directive_snippets_txt'] = 'Kullanılabilecek Vekil Sunucu Yönerge Kod Parçaları:'; $wb['rewrite_rules_txt'] = 'Yeniden Yazma Kuralları'; $wb['invalid_rewrite_rules_txt'] = 'Yeniden Yazma Kuralları Geçersiz'; $wb['allowed_rewrite_rule_directives_txt'] = 'Kullanılabilecek Yönergeler:'; -$wb['configuration_error_txt'] = 'CONFIGURATION ERROR'; +$wb['configuration_error_txt'] = 'YAPILANDIRMA HATASI'; $wb['variables_txt'] = 'Değişkenler'; $wb['backup_excludes_txt'] = 'Katılmayacak Klasörler'; $wb['backup_excludes_note_txt'] = '(Klasörleri virgül ile ayırarak yazın. Örnek: web/cache/*,web/backup)'; $wb['backup_excludes_error_regex'] = 'Katılmayacak klasörlerde geçersiz karakterler bulunuyor.'; -$wb['subdomain_error_empty'] = 'Alt alan adı boş ya da geçersiz karakterler içeriyor.'; -$wb['http_port_txt'] = 'HTTP Port'; -$wb['https_port_txt'] = 'HTTPS Port'; -$wb['http_port_error_regex'] = 'HTTP Port invalid.'; -$wb['https_port_error_regex'] = 'HTTPS Port invalid.'; +$wb['subdomain_error_empty'] = 'Alt etki alanı boş ya da geçersiz karakterler içeriyor.'; +$wb['http_port_txt'] = 'HTTP Kapı Numarası'; +$wb['https_port_txt'] = 'HTTPS Kapı Numarası'; +$wb['http_port_error_regex'] = 'HTTP kapı numarası geçersiz.'; +$wb['https_port_error_regex'] = 'HTTPS kapı numarası geçersiz.'; ?> diff --git a/interface/web/sites/lib/lang/tr_web_vhost_subdomain_list.lng b/interface/web/sites/lib/lang/tr_web_vhost_subdomain_list.lng index bc7e7622c..6527242e2 100644 --- a/interface/web/sites/lib/lang/tr_web_vhost_subdomain_list.lng +++ b/interface/web/sites/lib/lang/tr_web_vhost_subdomain_list.lng @@ -1,8 +1,8 @@ diff --git a/interface/web/sites/lib/lang/tr_webdav_user.lng b/interface/web/sites/lib/lang/tr_webdav_user.lng index e592f052c..c80088da9 100644 --- a/interface/web/sites/lib/lang/tr_webdav_user.lng +++ b/interface/web/sites/lib/lang/tr_webdav_user.lng @@ -4,7 +4,7 @@ $wb['server_id_txt'] = 'Sunucu'; $wb['parent_domain_id_txt'] = 'Web Sitesi'; $wb['username_txt'] = 'Kullanıcı Adı'; $wb['password_txt'] = 'Parola'; -$wb['password_strength_txt'] = 'Parola Güçlüğü'; +$wb['password_strength_txt'] = 'Parola Zorluğu'; $wb['active_txt'] = 'Etkin'; $wb['limit_webdav_user_txt'] = 'Hesabınıza ekleyebileceğiniz en fazla webdav kullanıcısı sayısına ulaştınız.'; $wb['username_error_empty'] = 'Kullanıcı adı boş olamaz.'; @@ -14,7 +14,7 @@ $wb['directory_error_empty'] = 'Klasör boş olamaz.'; $wb['parent_domain_id_error_empty'] = 'Bir web sitesi seçmelisiniz.'; $wb['dir_dot_error'] = 'Yol içinde .. kullanılamaz.'; $wb['dir_slashdot_error'] = 'Yol içinde ./ kullanılamaz.'; -$wb['generate_password_txt'] = 'Parola Oluştur'; +$wb['generate_password_txt'] = 'Parola Üret'; $wb['repeat_password_txt'] = 'Parola Onayı'; $wb['password_mismatch_txt'] = 'Parola ile onayı aynı değil.'; $wb['password_match_txt'] = 'Parola ile onayı aynı.'; diff --git a/interface/web/strengthmeter/lib/lang/br_strengthmeter.lng b/interface/web/strengthmeter/lib/lang/br_strengthmeter.lng index 172646f21..2b2fb51f9 100644 --- a/interface/web/strengthmeter/lib/lang/br_strengthmeter.lng +++ b/interface/web/strengthmeter/lib/lang/br_strengthmeter.lng @@ -2,7 +2,7 @@ $wb['password_strength_0_txt'] = 'Muito curta'; $wb['password_strength_1_txt'] = 'Fraca'; $wb['password_strength_2_txt'] = 'Razoável'; -$wb['password_strength_3_txt'] = 'Bom'; +$wb['password_strength_3_txt'] = 'Boa'; $wb['password_strength_4_txt'] = 'Forte'; -$wb['password_strength_5_txt'] = 'Muito Forte'; +$wb['password_strength_5_txt'] = 'Muito forte'; ?> diff --git a/interface/web/tools/lib/lang/br.lng b/interface/web/tools/lib/lang/br.lng index 3000e972f..1c1147216 100644 --- a/interface/web/tools/lib/lang/br.lng +++ b/interface/web/tools/lib/lang/br.lng @@ -1,13 +1,13 @@ diff --git a/interface/web/tools/lib/lang/br_import_ispconfig.lng b/interface/web/tools/lib/lang/br_import_ispconfig.lng index 8124d13f1..d77242b48 100644 --- a/interface/web/tools/lib/lang/br_import_ispconfig.lng +++ b/interface/web/tools/lib/lang/br_import_ispconfig.lng @@ -1,23 +1,23 @@ diff --git a/interface/web/tools/lib/lang/br_import_vpopmail.lng b/interface/web/tools/lib/lang/br_import_vpopmail.lng index 55bc0bf23..c18b0b681 100644 --- a/interface/web/tools/lib/lang/br_import_vpopmail.lng +++ b/interface/web/tools/lib/lang/br_import_vpopmail.lng @@ -1,7 +1,8 @@ diff --git a/interface/web/tools/lib/lang/br_index.lng b/interface/web/tools/lib/lang/br_index.lng index 437e1f01c..bbb708520 100644 --- a/interface/web/tools/lib/lang/br_index.lng +++ b/interface/web/tools/lib/lang/br_index.lng @@ -1,4 +1,4 @@ diff --git a/interface/web/tools/lib/lang/br_interface.lng b/interface/web/tools/lib/lang/br_interface.lng index 45341060c..95677c4b5 100644 --- a/interface/web/tools/lib/lang/br_interface.lng +++ b/interface/web/tools/lib/lang/br_interface.lng @@ -1,7 +1,7 @@ diff --git a/interface/web/tools/lib/lang/br_resync.lng b/interface/web/tools/lib/lang/br_resync.lng index bf854b33b..160a35dd0 100644 --- a/interface/web/tools/lib/lang/br_resync.lng +++ b/interface/web/tools/lib/lang/br_resync.lng @@ -1,53 +1,53 @@ diff --git a/interface/web/tools/lib/lang/br_tpl_default.lng b/interface/web/tools/lib/lang/br_tpl_default.lng index 1e09eea22..30ae32b17 100644 --- a/interface/web/tools/lib/lang/br_tpl_default.lng +++ b/interface/web/tools/lib/lang/br_tpl_default.lng @@ -1,7 +1,7 @@ diff --git a/interface/web/tools/lib/lang/br_usersettings.lng b/interface/web/tools/lib/lang/br_usersettings.lng index 8fccd2685..cb3ae2dc4 100644 --- a/interface/web/tools/lib/lang/br_usersettings.lng +++ b/interface/web/tools/lib/lang/br_usersettings.lng @@ -2,11 +2,11 @@ $wb['password_txt'] = 'Senha'; $wb['password_strength_txt'] = 'Dificuldade da senha'; $wb['language_txt'] = 'Idioma'; -$wb['password_mismatch'] = 'As senhas não coincidem'; -$wb['Form to edit the user password and language.'] = 'Alterar idioma e senha'; +$wb['password_mismatch'] = 'A senha e confirmação da senha não coincidem.'; +$wb['Form to edit the user password and language.'] = 'Editar senha e idioma do usuário'; $wb['Settings'] = 'Configurações'; -$wb['generate_password_txt'] = 'Gerar senha'; -$wb['repeat_password_txt'] = 'Repetir senha'; -$wb['password_mismatch_txt'] = 'A senhas não coincidem.'; -$wb['password_match_txt'] = 'A senhas coincidem.'; +$wb['generate_password_txt'] = 'Gerar Senha'; +$wb['repeat_password_txt'] = 'Repetir Senha'; +$wb['password_mismatch_txt'] = 'As senhas não coincidem.'; +$wb['password_match_txt'] = 'As senhas coincidem.'; ?> diff --git a/interface/web/tools/lib/lang/tr.lng b/interface/web/tools/lib/lang/tr.lng index 5782a862c..6115b8a7a 100644 --- a/interface/web/tools/lib/lang/tr.lng +++ b/interface/web/tools/lib/lang/tr.lng @@ -4,10 +4,10 @@ $wb['Settings'] = 'Ayarlar'; $wb['ISPConfig Tools'] = 'ISPConfig Araçları'; $wb['Interface'] = 'Arayüz'; $wb['Password and Language'] = 'Parola ve Dil'; -$wb['ispconfig_tools_note'] = 'Bu modül parola ve dilin değiştirilmesini sağlayarak DNS kayıtları eşleştirmesini başlatır.'; -$wb['Sync Tools'] = 'Eşleştirme Araçları'; -$wb['Resync'] = 'Eşleştirme'; -$wb['Import'] = 'Al'; -$wb['ISPConfig 3 mail'] = 'ISPConfig 3 postası'; +$wb['ispconfig_tools_note'] = 'Bu modül parola ve dilin değiştirilmesini sağlayarak DNS kayıtları eşitlemesini başlatır.'; +$wb['Sync Tools'] = 'Eşitleme Araçları'; +$wb['Resync'] = 'Eşitleme'; +$wb['Import'] = 'İçe Aktar'; +$wb['ISPConfig 3 mail'] = 'ISPConfig 3 E-postaları'; $wb['PDNS Tupa'] = 'PowerDNS Tupa Yöneticisi'; ?> diff --git a/interface/web/tools/lib/lang/tr_import_ispconfig.lng b/interface/web/tools/lib/lang/tr_import_ispconfig.lng index 7aec6bd47..67c98edbe 100644 --- a/interface/web/tools/lib/lang/tr_import_ispconfig.lng +++ b/interface/web/tools/lib/lang/tr_import_ispconfig.lng @@ -1,23 +1,24 @@ diff --git a/interface/web/tools/lib/lang/tr_import_vpopmail.lng b/interface/web/tools/lib/lang/tr_import_vpopmail.lng index 66fe56da1..f0c05ea74 100644 --- a/interface/web/tools/lib/lang/tr_import_vpopmail.lng +++ b/interface/web/tools/lib/lang/tr_import_vpopmail.lng @@ -1,7 +1,8 @@ diff --git a/interface/web/tools/lib/lang/tr_index.lng b/interface/web/tools/lib/lang/tr_index.lng index d8ea10cf5..6d9a6c361 100644 --- a/interface/web/tools/lib/lang/tr_index.lng +++ b/interface/web/tools/lib/lang/tr_index.lng @@ -1,4 +1,4 @@ diff --git a/interface/web/tools/lib/lang/tr_interface.lng b/interface/web/tools/lib/lang/tr_interface.lng index 2ff88a976..2384c7110 100644 --- a/interface/web/tools/lib/lang/tr_interface.lng +++ b/interface/web/tools/lib/lang/tr_interface.lng @@ -1,6 +1,6 @@ diff --git a/interface/web/tools/lib/lang/tr_usersettings.lng b/interface/web/tools/lib/lang/tr_usersettings.lng index 60c7679b9..fa2eff63d 100644 --- a/interface/web/tools/lib/lang/tr_usersettings.lng +++ b/interface/web/tools/lib/lang/tr_usersettings.lng @@ -1,12 +1,12 @@ diff --git a/interface/web/vm/lib/lang/br.lng b/interface/web/vm/lib/lang/br.lng index 513a018bf..ae59107a7 100644 --- a/interface/web/vm/lib/lang/br.lng +++ b/interface/web/vm/lib/lang/br.lng @@ -1,7 +1,7 @@ diff --git a/interface/web/vm/lib/lang/br_openvz_action.lng b/interface/web/vm/lib/lang/br_openvz_action.lng index a301f51d0..cc191c14e 100644 --- a/interface/web/vm/lib/lang/br_openvz_action.lng +++ b/interface/web/vm/lib/lang/br_openvz_action.lng @@ -1,16 +1,16 @@ diff --git a/interface/web/vm/lib/lang/br_openvz_ip.lng b/interface/web/vm/lib/lang/br_openvz_ip.lng index 61fbd6ed6..612c391c9 100644 --- a/interface/web/vm/lib/lang/br_openvz_ip.lng +++ b/interface/web/vm/lib/lang/br_openvz_ip.lng @@ -1,8 +1,8 @@ diff --git a/interface/web/vm/lib/lang/br_openvz_ostemplate.lng b/interface/web/vm/lib/lang/br_openvz_ostemplate.lng index edce91205..ea76c915b 100644 --- a/interface/web/vm/lib/lang/br_openvz_ostemplate.lng +++ b/interface/web/vm/lib/lang/br_openvz_ostemplate.lng @@ -1,11 +1,11 @@ diff --git a/interface/web/vm/lib/lang/br_openvz_ostemplate_list.lng b/interface/web/vm/lib/lang/br_openvz_ostemplate_list.lng index 04e94a889..9e60baf17 100644 --- a/interface/web/vm/lib/lang/br_openvz_ostemplate_list.lng +++ b/interface/web/vm/lib/lang/br_openvz_ostemplate_list.lng @@ -1,8 +1,8 @@ diff --git a/interface/web/vm/lib/lang/br_openvz_template.lng b/interface/web/vm/lib/lang/br_openvz_template.lng index 4190a31f9..23d4c9b6a 100644 --- a/interface/web/vm/lib/lang/br_openvz_template.lng +++ b/interface/web/vm/lib/lang/br_openvz_template.lng @@ -1,97 +1,97 @@ diff --git a/interface/web/vm/lib/lang/br_openvz_template_list.lng b/interface/web/vm/lib/lang/br_openvz_template_list.lng index 390869859..00d1b648d 100644 --- a/interface/web/vm/lib/lang/br_openvz_template_list.lng +++ b/interface/web/vm/lib/lang/br_openvz_template_list.lng @@ -1,5 +1,5 @@ diff --git a/interface/web/vm/lib/lang/br_openvz_vm.lng b/interface/web/vm/lib/lang/br_openvz_vm.lng index 04794daf8..a8176e768 100644 --- a/interface/web/vm/lib/lang/br_openvz_vm.lng +++ b/interface/web/vm/lib/lang/br_openvz_vm.lng @@ -1,45 +1,46 @@ 0, na ordem da prioridade do boot.'; ?> diff --git a/interface/web/vm/lib/lang/br_openvz_vm_list.lng b/interface/web/vm/lib/lang/br_openvz_vm_list.lng index 03d510f2f..c907c710e 100644 --- a/interface/web/vm/lib/lang/br_openvz_vm_list.lng +++ b/interface/web/vm/lib/lang/br_openvz_vm_list.lng @@ -1,10 +1,10 @@ diff --git a/interface/web/vm/lib/lang/tr.lng b/interface/web/vm/lib/lang/tr.lng index 82599dd03..23bca6685 100644 --- a/interface/web/vm/lib/lang/tr.lng +++ b/interface/web/vm/lib/lang/tr.lng @@ -1,7 +1,7 @@ diff --git a/interface/web/vm/lib/lang/tr_openvz_action.lng b/interface/web/vm/lib/lang/tr_openvz_action.lng index 29759e026..8e2a3652d 100644 --- a/interface/web/vm/lib/lang/tr_openvz_action.lng +++ b/interface/web/vm/lib/lang/tr_openvz_action.lng @@ -1,16 +1,17 @@ diff --git a/interface/web/vm/lib/lang/tr_openvz_ip.lng b/interface/web/vm/lib/lang/tr_openvz_ip.lng index 637a70f2e..e24b354ba 100644 --- a/interface/web/vm/lib/lang/tr_openvz_ip.lng +++ b/interface/web/vm/lib/lang/tr_openvz_ip.lng @@ -1,7 +1,7 @@ diff --git a/interface/web/vm/lib/lang/tr_openvz_vm.lng b/interface/web/vm/lib/lang/tr_openvz_vm.lng index fad86d9f3..7c2977cda 100644 --- a/interface/web/vm/lib/lang/tr_openvz_vm.lng +++ b/interface/web/vm/lib/lang/tr_openvz_vm.lng @@ -10,21 +10,21 @@ $wb['nameserver_txt'] = 'Ad Sunucuları'; $wb['nameserver_desc_txt'] = '(boşluk ile ayırarak)'; $wb['capability_txt'] = 'Yeterlilik'; $wb['server_id_txt'] = 'Sunucu'; -$wb['ostemplate_id_txt'] = 'OS Kalıbı'; +$wb['ostemplate_id_txt'] = 'İşletim Sistemi Kalıbı'; $wb['template_id_txt'] = 'Kalıp'; $wb['ip_address_txt'] = 'IP Adresi'; $wb['hostname_txt'] = 'Sunucu Adı'; -$wb['vm_password_txt'] = 'VM Parolası'; -$wb['start_boot_txt'] = 'Açılışta başlat'; +$wb['vm_password_txt'] = 'Sanal Makine Parolası'; +$wb['start_boot_txt'] = 'Açılışta Başlatılsın'; $wb['active_txt'] = 'Etkin'; $wb['description_txt'] = 'Açıklama'; $wb['client_group_id_txt'] = 'Müşteri'; $wb['veid_txt'] = 'VEID'; $wb['create_dns_txt'] = 'Sunucu için DNS oluştur'; -$wb['active_until_date_txt'] = 'Şu tarihe kadar etkin'; +$wb['active_until_date_txt'] = 'Şu Tarihe Kadar Etkin'; $wb['ip_address_error_empty'] = 'IP adresi boş olamaz.'; $wb['hostname_error_empty'] = 'Sunucu adı boş olamaz.'; -$wb['vm_password_error_empty'] = 'VM parolası boş olamaz.'; +$wb['vm_password_error_empty'] = 'Sanal makine parolası boş olamaz.'; $wb['veid_error_empty'] = 'VEID boş olamaz.'; $wb['veid_error_unique'] = 'VEID zaten var.'; $wb['diskspace_error_empty'] = 'Disk alanı boş olamaz.'; @@ -35,11 +35,11 @@ $wb['cpu_num_error_empty'] = 'İşlemci sayısı boş olamaz.'; $wb['cpu_limit_error_empty'] = 'İşlemci sınırı boş olamaz.'; $wb['io_priority_error_empty'] = 'G/Ç önceliği boş olamaz.'; $wb['template_nameserver_error_empty'] = 'Ad sunucuları boş olamaz.'; -$wb['Virtual server'] = 'Sanal sunucu'; +$wb['Virtual server'] = 'sSunucu'; $wb['Advanced'] = 'Gelişmiş'; -$wb['features_txt'] = 'Features'; +$wb['features_txt'] = 'Özellikler'; $wb['iptables_txt'] = 'IP Tables'; -$wb['custom_txt'] = 'Custom settings'; -$wb['bootorder_txt'] = 'Boot order priority'; -$wb['bootorder_error_notpositive'] = 'Only positive integers are allowed for Boot order priority'; +$wb['custom_txt'] = 'Özel Ayarlar'; +$wb['bootorder_txt'] = 'Başlatma Önceliği'; +$wb['bootorder_error_notpositive'] = 'Başlatma önceliği değeri yalnız pozitif bir tamsayı olabilir'; ?> diff --git a/interface/web/vm/lib/lang/tr_openvz_vm_list.lng b/interface/web/vm/lib/lang/tr_openvz_vm_list.lng index 1a4ed0e7b..e188f6046 100644 --- a/interface/web/vm/lib/lang/tr_openvz_vm_list.lng +++ b/interface/web/vm/lib/lang/tr_openvz_vm_list.lng @@ -1,8 +1,8 @@ Date: Fri, 11 Oct 2019 16:53:03 +0200 Subject: [PATCH 202/215] Fixed #5424 Unable to change passwd or user of admin --- interface/web/admin/form/users.tform.php | 6 ------ 1 file changed, 6 deletions(-) diff --git a/interface/web/admin/form/users.tform.php b/interface/web/admin/form/users.tform.php index b7f00b4ee..be77122b1 100644 --- a/interface/web/admin/form/users.tform.php +++ b/interface/web/admin/form/users.tform.php @@ -218,12 +218,6 @@ $form['tabs']['users'] = array ( 'app_theme' => array ( 'datatype' => 'VARCHAR', 'formtype' => 'RADIO', - 'validators' => array ( 0 => array ( 'type' => 'NOTEMPTY', - 'errmsg'=> 'app_theme_empty'), - 1 => array ( 'type' => 'REGEX', - 'regex' => '/^[a-z0-9\_]{0,64}$/', - 'errmsg'=> 'app_theme_regex'), - ), 'regex' => '', 'errmsg' => '', 'default' => 'default', -- GitLab From 04b0eb24cbe282017bdddb7ac5b4d6386563fa29 Mon Sep 17 00:00:00 2001 From: Till Brehm Date: Fri, 11 Oct 2019 16:56:43 +0200 Subject: [PATCH 203/215] Fixed #5425 Valid delete requests blocked by CSRF check --- interface/lib/classes/plugin_listview.inc.php | 8 ++++++++ interface/web/admin/templates/remote_user_list.htm | 2 +- 2 files changed, 9 insertions(+), 1 deletion(-) diff --git a/interface/lib/classes/plugin_listview.inc.php b/interface/lib/classes/plugin_listview.inc.php index bd0aa0e16..ced308b2e 100644 --- a/interface/lib/classes/plugin_listview.inc.php +++ b/interface/lib/classes/plugin_listview.inc.php @@ -123,6 +123,10 @@ class plugin_listview extends plugin_base { $lng_file = "lib/lang/".$app->functions->check_language($_SESSION["s"]["language"])."_".$app->listform->listDef['name']."_list.lng"; include $lng_file; $listTpl->setVar($wb); + + $csrf_token = $app->auth->csrf_token_get($app->listform->listDef['name']); + $_csrf_id = $csrf_token['csrf_id']; + $_csrf_key = $csrf_token['csrf_key']; // Get the data @@ -157,6 +161,10 @@ class plugin_listview extends plugin_base { // The variable "id" contains always the index field $rec["id"] = $rec[$idx_key]; $rec["delete_confirmation"] = $wb['delete_confirmation']; + + // CSRF Token + $rec["csrf_id"] = $_csrf_id; + $rec["csrf_key"] = $_csrf_key; $records_new[] = $rec; } diff --git a/interface/web/admin/templates/remote_user_list.htm b/interface/web/admin/templates/remote_user_list.htm index de65c6453..7189dc20d 100644 --- a/interface/web/admin/templates/remote_user_list.htm +++ b/interface/web/admin/templates/remote_user_list.htm @@ -33,7 +33,7 @@
-- GitLab From 92d734f89346e5a1c0e430c063658d1d7b560653 Mon Sep 17 00:00:00 2001 From: Till Brehm Date: Mon, 14 Oct 2019 12:22:41 +0200 Subject: [PATCH 204/215] Improved Symlink option Apache vhost.conf.master --- server/conf/vhost.conf.master | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/server/conf/vhost.conf.master b/server/conf/vhost.conf.master index 75f6a72e8..0982a3cf4 100644 --- a/server/conf/vhost.conf.master +++ b/server/conf/vhost.conf.master @@ -93,7 +93,7 @@ SetHandler None - Options +FollowSymLinks + Options +SymlinksIfOwnerMatch AllowOverride Require all granted @@ -125,7 +125,7 @@ SetHandler None - Options +FollowSymLinks + Options +SymlinksIfOwnerMatch AllowOverride Require all granted -- GitLab From 5d261ed7063964baada64f08faf0bca99d71bc90 Mon Sep 17 00:00:00 2001 From: Till Brehm Date: Mon, 14 Oct 2019 13:35:43 +0200 Subject: [PATCH 205/215] PHP compatibility changes (array definitions) in PowerDNS Plugin. --- server/plugins-available/powerdns_plugin.inc.php | 10 +++++----- 1 file changed, 5 insertions(+), 5 deletions(-) diff --git a/server/plugins-available/powerdns_plugin.inc.php b/server/plugins-available/powerdns_plugin.inc.php index 2e44e014d..7ab23ec54 100644 --- a/server/plugins-available/powerdns_plugin.inc.php +++ b/server/plugins-available/powerdns_plugin.inc.php @@ -536,14 +536,14 @@ class powerdns_plugin { $log[] = sprintf("\r\n%s %s", date('c'), 'Running set-nsec3 command...'); exec($cmd_set_nsec3, $log); - $pubkeys = []; + $pubkeys = array(); $cmd_show_zone = sprintf('%s show-zone %s 2>&1', $pdns_pdnssec, $zone); $log[] = sprintf("\r\n%s %s", date('c'), 'Running show-zone command...'); exec($cmd_show_zone, $pubkeys); $log = array_merge($log, $pubkeys); - $dnssec_info = array_merge($this->format_dnssec_pubkeys($pubkeys), ['', '== Raw log ============================'], $log); + $dnssec_info = array_merge($this->format_dnssec_pubkeys($pubkeys), array('', '== Raw log ============================'), $log); $dnssec_info = implode("\r\n", $dnssec_info); if ($app->dbmaster !== $app->db) { @@ -553,7 +553,7 @@ class powerdns_plugin { } function format_dnssec_pubkeys($lines) { - $formatted = []; + $formatted = array(); // We don't care about the first two lines about presigning and NSEC array_shift($lines); @@ -574,7 +574,7 @@ class powerdns_plugin { $key_type = $matches_key_type[1]; // We only care about the KSK or CSK - if (!in_array($key_type, ['KSK', 'CSK'], true)) { + if (!in_array($key_type, array('KSK', 'CSK'), true)) { break; } @@ -677,7 +677,7 @@ class powerdns_plugin { exec($cmd_disable_dnssec, $log); - $dnssec_info = array_merge(['== Raw log ============================'], $log); + $dnssec_info = array_merge(array('== Raw log ============================'), $log); $dnssec_info = implode("\r\n", $dnssec_info); if ($app->dbmaster !== $app->db) { -- GitLab From 7d41f01a2c3a4f6d4c9ae6751add7bae97bf3a12 Mon Sep 17 00:00:00 2001 From: Till Brehm Date: Wed, 16 Oct 2019 17:09:24 +0200 Subject: [PATCH 206/215] Fixed #5429 Wrong class variable in server/lib/classes/db_mysql.inc.php LINE 275 --- interface/lib/classes/db_mysql.inc.php | 2 +- server/lib/classes/db_mysql.inc.php | 2 +- 2 files changed, 2 insertions(+), 2 deletions(-) diff --git a/interface/lib/classes/db_mysql.inc.php b/interface/lib/classes/db_mysql.inc.php index 227fab73f..9c7269e56 100644 --- a/interface/lib/classes/db_mysql.inc.php +++ b/interface/lib/classes/db_mysql.inc.php @@ -272,7 +272,7 @@ class db if(!is_object($this->_iConnId)) { $this->_iConnId = mysqli_init(); } - if(!mysqli_real_connect($this->_isConnId, $this->dbHost, $this->dbUser, $this->dbPass, $this->dbName, (int)$this->dbPort, NULL, $this->dbClientFlags)) { + if(!mysqli_real_connect($this->_iConnId, $this->dbHost, $this->dbUser, $this->dbPass, $this->dbName, (int)$this->dbPort, NULL, $this->dbClientFlags)) { if(mysqli_connect_errno() == '111') { // server is not available if($try > 9) { diff --git a/server/lib/classes/db_mysql.inc.php b/server/lib/classes/db_mysql.inc.php index 227fab73f..9c7269e56 100644 --- a/server/lib/classes/db_mysql.inc.php +++ b/server/lib/classes/db_mysql.inc.php @@ -272,7 +272,7 @@ class db if(!is_object($this->_iConnId)) { $this->_iConnId = mysqli_init(); } - if(!mysqli_real_connect($this->_isConnId, $this->dbHost, $this->dbUser, $this->dbPass, $this->dbName, (int)$this->dbPort, NULL, $this->dbClientFlags)) { + if(!mysqli_real_connect($this->_iConnId, $this->dbHost, $this->dbUser, $this->dbPass, $this->dbName, (int)$this->dbPort, NULL, $this->dbClientFlags)) { if(mysqli_connect_errno() == '111') { // server is not available if($try > 9) { -- GitLab From 2fc824fe37ff504636a00d0a9171ba0045004795 Mon Sep 17 00:00:00 2001 From: Till Brehm Date: Wed, 16 Oct 2019 17:10:12 +0200 Subject: [PATCH 207/215] Changed PHP syntax in monitor_tools.inc.php for PHP 5.3 compatibility. --- server/lib/classes/monitor_tools.inc.php | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/server/lib/classes/monitor_tools.inc.php b/server/lib/classes/monitor_tools.inc.php index b2bd5ede3..d8d325fe6 100644 --- a/server/lib/classes/monitor_tools.inc.php +++ b/server/lib/classes/monitor_tools.inc.php @@ -254,7 +254,7 @@ class monitor_tools { preg_match_all('/NAME=\"([\w ]+)\"/m', $content, $name); preg_match_all('/VERSION_ID=\"([0-9]{1,2})\.?([0-9]{0,2})\.?([0-9]*).$/m', $content, $version); $distname = is_array($name) ? $name[1][0] : 'openSUSE'; - $distver = is_array($version) ? implode('.', array_filter([$version[1][0],$version[2][0],$version[3][0]],'strlen')) : 'Unknown'; + $distver = is_array($version) ? implode('.', array_filter(array($version[1][0],$version[2][0],$version[3][0]),'strlen')) : 'Unknown'; $distid = 'opensuse112'; $distbaseid = 'opensuse'; } else { @@ -309,7 +309,7 @@ class monitor_tools { } elseif(stristr($content, 'CentOS Linux release 7')) { preg_match_all('/([0-9]{1,2})\.?([0-9]{0,2})\.?([0-9]*)/', $content, $version); $distname = 'CentOS'; - $distver = is_array($version)? implode('.', array_filter([$version[1][0],$version[2][0],$version[3][0]],'strlen')) :'Unknown'; + $distver = is_array($version)? implode('.', array_filter(array($version[1][0],$version[2][0],$version[3][0]),'strlen')) :'Unknown'; $distbaseid = 'fedora'; $var=explode(" ", $content); $var=explode(".", $var[3]); -- GitLab From 9d1d86244a7fc64c317f1b52ab1c5e46fd8ed9e4 Mon Sep 17 00:00:00 2001 From: Till Brehm Date: Wed, 23 Oct 2019 08:35:02 +0200 Subject: [PATCH 208/215] Changed version file download URL in ispconfig_update.php to https. --- server/scripts/ispconfig_update.php | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/server/scripts/ispconfig_update.php b/server/scripts/ispconfig_update.php index 0c2d3789e..2c77607b6 100644 --- a/server/scripts/ispconfig_update.php +++ b/server/scripts/ispconfig_update.php @@ -91,7 +91,7 @@ echo "Please choose the update method. For production systems select 'stable'. \ $method = simple_query('Select update method', array('stable', 'git-stable', 'git-master'), 'stable'); if($method == 'stable') { - $new_version = @file_get_contents('http://www.ispconfig.org/downloads/ispconfig3_version.txt') or die('Unable to retrieve version file.'); + $new_version = @file_get_contents('https://www.ispconfig.org/downloads/ispconfig3_version.txt') or die('Unable to retrieve version file.'); $new_version = trim($new_version); if(version_compare($new_version, ISPC_APP_VERSION, '>')) { passthru('/usr/local/ispconfig/server/scripts/update_stable.sh'); -- GitLab From b047ebde79ffd12b1628cd2127b75e007ca51cbd Mon Sep 17 00:00:00 2001 From: Till Brehm Date: Wed, 23 Oct 2019 08:36:05 +0200 Subject: [PATCH 209/215] Changed link to ispconfig download to https. --- interface/web/dashboard/dashboard.php | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/interface/web/dashboard/dashboard.php b/interface/web/dashboard/dashboard.php index 5426ba957..005c364aa 100644 --- a/interface/web/dashboard/dashboard.php +++ b/interface/web/dashboard/dashboard.php @@ -149,7 +149,7 @@ if($_SESSION["s"]["user"]["typ"] == 'admin') { $info[] = array('info_msg' => '

There is a new Version of ISPConfig 3 available!

' . '

This Version: ' . $v1 . '

' . '

New Version : ' . $v2 . '

' . - '

See more...

'); + '

See more...

'); } } -- GitLab From f0bfe454941703b2954c78fe96f736bb06a21f60 Mon Sep 17 00:00:00 2001 From: Florian Schaal Date: Mon, 4 Nov 2019 15:17:20 +0100 Subject: [PATCH 210/215] show ips only with vhost = y and show directive_snippets for the admin even if they are set to customer_viewable = 'n' --- interface/web/sites/web_vhost_domain_edit.php | 20 +++++++++++-------- 1 file changed, 12 insertions(+), 8 deletions(-) diff --git a/interface/web/sites/web_vhost_domain_edit.php b/interface/web/sites/web_vhost_domain_edit.php index 86deb5b2a..52b44acc7 100644 --- a/interface/web/sites/web_vhost_domain_edit.php +++ b/interface/web/sites/web_vhost_domain_edit.php @@ -206,7 +206,7 @@ class page_action extends tform_actions { } //* Fill the IPv4 select field with the IP addresses that are allowed for this client on the current server - $sql = "SELECT ip_address FROM server_ip WHERE server_id = ? AND ip_type = 'IPv4' AND (client_id = 0 OR client_id=".$_SESSION['s']['user']['client_id'].")"; + $sql = "SELECT ip_address FROM server_ip WHERE server_id = ? AND ip_type = 'IPv4' AND virtualhost = 'y' AND (client_id = 0 OR client_id=".$_SESSION['s']['user']['client_id'].")"; $ips = $app->db->queryAllRecords($sql, $server_id); $ip_select = ($web_config[$server_id]['enable_ip_wildcard'] == 'y')?"":""; //if(!in_array($this->dataRecord["ip_address"], $ips)) $ip_select .= "\r\n"; @@ -222,7 +222,7 @@ class page_action extends tform_actions { unset($ips); //* Fill the IPv6 select field with the IP addresses that are allowed for this client - $sql = "SELECT ip_address FROM server_ip WHERE server_id = ? AND ip_type = 'IPv6' AND (client_id = 0 OR client_id=?)"; + $sql = "SELECT ip_address FROM server_ip WHERE server_id = ? AND ip_type = 'IPv6' AND virtualhost = 'y' AND (client_id = 0 OR client_id=?)"; $ips = $app->db->queryAllRecords($sql, $server_id, $_SESSION['s']['user']['client_id']); //$ip_select = ($web_config[$server_id]['enable_ip_wildcard'] == 'y')?"":""; //$ip_select = ""; @@ -352,7 +352,7 @@ class page_action extends tform_actions { } //* Fill the IPv4 select field with the IP addresses that are allowed for this client - $sql = "SELECT ip_address FROM server_ip WHERE server_id = ? AND ip_type = 'IPv4' AND (client_id = 0 OR client_id=?)"; + $sql = "SELECT ip_address FROM server_ip WHERE server_id = ? AND ip_type = 'IPv4' AND virtualhost = 'y' AND (client_id = 0 OR client_id=?)"; $ips = $app->db->queryAllRecords($sql, $server_id, $_SESSION['s']['user']['client_id']); $ip_select = ($web_config[$server_id]['enable_ip_wildcard'] == 'y')?"":""; //if(!in_array($this->dataRecord["ip_address"], $ips)) $ip_select .= "\r\n"; @@ -368,7 +368,7 @@ class page_action extends tform_actions { unset($ips); //* Fill the IPv6 select field with the IP addresses that are allowed for this client - $sql = "SELECT ip_address FROM server_ip WHERE server_id = ? AND ip_type = 'IPv6' AND (client_id = 0 OR client_id=?)"; + $sql = "SELECT ip_address FROM server_ip WHERE server_id = ? AND ip_type = 'IPv6' AND virtualhost = 'y' AND (client_id = 0 OR client_id=?)"; $ips = $app->db->queryAllRecords($sql, $server_id, $_SESSION['s']['user']['client_id']); $ip_select = ""; //$ip_select = ""; @@ -549,7 +549,7 @@ class page_action extends tform_actions { } //* Fill the IPv4 select field - $sql = "SELECT ip_address FROM server_ip WHERE ip_type = 'IPv4' AND server_id = ?"; + $sql = "SELECT ip_address FROM server_ip WHERE ip_type = 'IPv4' AND virtualhost = 'y' AND server_id = ?"; $ips = $app->db->queryAllRecords($sql, $server_id); $ip_select = ($web_config['enable_ip_wildcard'] == 'y')?"":""; //$ip_select = ""; @@ -564,7 +564,7 @@ class page_action extends tform_actions { unset($ips); //* Fill the IPv6 select field - $sql = "SELECT ip_address FROM server_ip WHERE ip_type = 'IPv6' AND server_id = ?"; + $sql = "SELECT ip_address FROM server_ip WHERE ip_type = 'IPv6' AND virtualhost = 'y' AND server_id = ?"; $ips = $app->db->queryAllRecords($sql, $server_id); $ip_select = ""; //$ip_select = ""; @@ -863,8 +863,12 @@ class page_action extends tform_actions { } $directive_snippets_id_select .= ''; } - - $directive_snippets = $app->db->queryAllRecords("SELECT directive_snippets_id, name FROM directive_snippets WHERE customer_viewable = 'y' AND active = 'y' AND master_directive_snippets_id = 0 AND type = ? ORDER BY name ASC", $server_type); + + if($is_admin) { + $directive_snippets = $app->db->queryAllRecords("SELECT directive_snippets_id, name FROM directive_snippets WHERE active = 'y' AND master_directive_snippets_id = 0 AND type = ? ORDER BY name ASC", $server_type); + } else { + $directive_snippets = $app->db->queryAllRecords("SELECT directive_snippets_id, name FROM directive_snippets WHERE customer_viewable = 'y' AND active = 'y' AND master_directive_snippets_id = 0 AND type = ? ORDER BY name ASC", $server_type); + } if(is_array($directive_snippets) && !empty($directive_snippets)){ $directive_snippets_id_select .= ''; foreach($directive_snippets as $directive_snippet){ -- GitLab From db4158a2c8a7e917dc3e2cad756f5e2b1419a74b Mon Sep 17 00:00:00 2001 From: Marius Burkard Date: Wed, 13 Nov 2019 13:51:45 +0100 Subject: [PATCH 211/215] - Table sys_log clean-up not deleting entries with server_id 0, fixes #5450 --- server/lib/classes/cron.d/200-logfiles.inc.php | 12 ++++++++++++ 1 file changed, 12 insertions(+) diff --git a/server/lib/classes/cron.d/200-logfiles.inc.php b/server/lib/classes/cron.d/200-logfiles.inc.php index b229c76a8..e2d9e9bb9 100644 --- a/server/lib/classes/cron.d/200-logfiles.inc.php +++ b/server/lib/classes/cron.d/200-logfiles.inc.php @@ -240,6 +240,18 @@ class cronjob_logfiles extends cronjob { */ $sql = "DELETE FROM sys_log WHERE tstamp < ? AND server_id != 0"; $app->dbmaster->query($sql, $tstamp); + + /* + * now delete those entries without a linked datalog entry (datalog_id = 0) + */ + $sql = "DELETE FROM sys_log WHERE tstamp < ? AND server_id = 0 AND datalog_id = 0"; + $app->dbmaster->query($sql, $tstamp); + + /* + * now delete those entries with a linked datalog entry (datalog_id != 0) only if older than 30 days + */ + $sql = "DELETE FROM sys_log WHERE tstamp < ? AND server_id = 0 AND datalog_id != 0"; + $app->dbmaster->query($sql, $tstamp - (3600 * 24 * 23)); /* * Delete all remote-actions "done" and older than 7 days -- GitLab From 746e79db393f22b03fdd408cc086eecc084f1991 Mon Sep 17 00:00:00 2001 From: Marius Burkard Date: Tue, 19 Nov 2019 21:34:03 +0100 Subject: [PATCH 212/215] - backported acme.sh support from master branch, fixes #5461 --- .../classes/cron.d/900-letsencrypt.inc.php | 25 +- server/lib/classes/letsencrypt.inc.php | 215 +++++++++++++----- server/lib/classes/system.inc.php | 5 +- 3 files changed, 180 insertions(+), 65 deletions(-) diff --git a/server/lib/classes/cron.d/900-letsencrypt.inc.php b/server/lib/classes/cron.d/900-letsencrypt.inc.php index 3e2c9190c..b0f6f39c5 100644 --- a/server/lib/classes/cron.d/900-letsencrypt.inc.php +++ b/server/lib/classes/cron.d/900-letsencrypt.inc.php @@ -35,8 +35,6 @@ class cronjob_letsencrypt extends cronjob { /* this function is optional if it contains no custom code */ public function onPrepare() { - global $app; - parent::onPrepare(); } @@ -52,10 +50,19 @@ class cronjob_letsencrypt extends cronjob { global $app, $conf; $server_config = $app->getconf->get_server_config($conf['server_id'], 'server'); - if(!isset($server_config['migration_mode']) || $server_config['migration_mode'] != 'y') { - $letsencrypt = explode("\n", shell_exec('which letsencrypt certbot /root/.local/share/letsencrypt/bin/letsencrypt /opt/eff.org/certbot/venv/bin/certbot')); - $letsencrypt = reset($letsencrypt); - if(is_executable($letsencrypt)) { + if(!isset($server_config['migration_mode']) || $server_config['migration_mode'] != 'y') { + $acme = $app->letsencrypt->get_acme_script(); + if($acme) { + // skip letsencrypt + parent::onRunJob(); + return; + } + + $letsencrypt = $app->letsencrypt->get_certbot_script(); + if($letsencrypt) { + $ret = null; + $val = 0; + $matches = array(); $version = exec($letsencrypt . ' --version 2>&1', $ret, $val); if(preg_match('/^(\S+|\w+)\s+(\d+(\.\d+)+)$/', $version, $matches)) { $type = strtolower($matches[1]); @@ -86,11 +93,7 @@ class cronjob_letsencrypt extends cronjob { /* this function is optional if it contains no custom code */ public function onAfterRun() { - global $app; - parent::onAfterRun(); } -} - -?> +} \ No newline at end of file diff --git a/server/lib/classes/letsencrypt.inc.php b/server/lib/classes/letsencrypt.inc.php index 62080e29b..291ee41b1 100644 --- a/server/lib/classes/letsencrypt.inc.php +++ b/server/lib/classes/letsencrypt.inc.php @@ -37,15 +37,136 @@ class letsencrypt { */ private $base_path = '/etc/letsencrypt'; private $renew_config_path = '/etc/letsencrypt/renewal'; - + private $certbot_use_certcommand = false; public function __construct(){ } + + public function get_acme_script() { + $acme = explode("\n", shell_exec('which /usr/local/ispconfig/server/scripts/acme.sh /root/.acme.sh/acme.sh')); + $acme = reset($acme); + if(is_executable($acme)) { + return $acme; + } else { + return false; + } + } + + public function get_acme_command($domains, $key_file, $bundle_file, $cert_file) { + + $letsencrypt = $this->get_acme_script(); + + $cmd = ''; + // generate cli format + foreach($domains as $domain) { + $cmd .= (string) " -d " . $domain; + } + + if($cmd == '') { + return false; + } + + $cmd = 'R=0 ; C=0 ; ' . $letsencrypt . ' --issue ' . $cmd . ' -w /usr/local/ispconfig/interface/acme ; R=$? ; if [[ $R -eq 0 || $R -eq 2 ]] ; then ' . $letsencrypt . ' --install-cert ' . $cmd . ' --key-file ' . escapeshellarg($key_file) . ' --fullchain-file ' . escapeshellarg($bundle_file) . ' --cert-file ' . escapeshellarg($cert_file) . ' --reloadcmd ' . escapeshellarg($this->get_reload_command()) . '; C=$? ; fi ; if [[ $C -eq 0 ]] ; then exit $R ; else exit $C ; fi'; + + return $cmd; + } + + public function get_certbot_script() { + $letsencrypt = explode("\n", shell_exec('which letsencrypt certbot /root/.local/share/letsencrypt/bin/letsencrypt /opt/eff.org/certbot/venv/bin/certbot')); + $letsencrypt = reset($letsencrypt); + if(is_executable($letsencrypt)) { + return $letsencrypt; + } else { + return false; + } + } + private function install_acme() { + $install_cmd = 'wget -O - https://get.acme.sh | sh'; + $ret = null; + $val = 0; + exec($install_cmd . ' 2>&1', $ret, $val); + + return ($val == 0 ? true : false); + } + + private function get_reload_command() { + global $app, $conf; + + $web_config = $app->getconf->get_server_config($conf['server_id'], 'web'); + + $daemon = ''; + switch ($web_config['server_type']) { + case 'nginx': + $daemon = $web_config['server_type']; + break; + default: + if(is_file($conf['init_scripts'] . '/' . 'httpd24-httpd') || is_dir('/opt/rh/httpd24/root/etc/httpd')) { + $daemon = 'httpd24-httpd'; + } elseif(is_file($conf['init_scripts'] . '/' . 'httpd') || is_dir('/etc/httpd')) { + $daemon = 'httpd'; + } else { + $daemon = 'apache2'; + } + } + + $cmd = $app->system->getinitcommand($daemon, 'force-reload'); + return $cmd; + } + + public function get_certbot_command($domains) { + global $app; + + $letsencrypt = $this->get_certbot_script(); + + $cmd = ''; + // generate cli format + foreach($domains as $domain) { + $cmd .= (string) " --domains " . $domain; + } + + if($cmd == '') { + return false; + } + + $matches = array(); + $ret = null; + $val = 0; + + $letsencrypt_version = exec($letsencrypt . ' --version 2>&1', $ret, $val); + if(preg_match('/^(\S+|\w+)\s+(\d+(\.\d+)+)$/', $letsencrypt_version, $matches)) { + $letsencrypt_version = $matches[2]; + } + if (version_compare($letsencrypt_version, '0.22', '>=')) { + $acme_version = 'https://acme-v02.api.letsencrypt.org/directory'; + } else { + $acme_version = 'https://acme-v01.api.letsencrypt.org/directory'; + } + if (version_compare($letsencrypt_version, '0.30', '>=')) { + $app->log("LE version is " . $letsencrypt_version . ", so using certificates command", LOGLEVEL_DEBUG); + $this->certbot_use_certcommand = true; + $webroot_map = array(); + for($i = 0; $i < count($domains); $i++) { + $webroot_map[$domains[$i]] = '/usr/local/ispconfig/interface/acme'; + } + $webroot_args = "--webroot-map " . escapeshellarg(str_replace(array("\r", "\n"), '', json_encode($webroot_map))); + } else { + $webroot_args = "$cmd --webroot-path /usr/local/ispconfig/interface/acme"; + } + + $cmd = $letsencrypt . " certonly -n --text --agree-tos --expand --authenticator webroot --server $acme_version --rsa-key-size 4096 --email postmaster@$domain $cmd --webroot-path /usr/local/ispconfig/interface/acme"; + + return $cmd; + } + public function get_letsencrypt_certificate_paths($domains = array()) { global $app; + if($this->get_acme_script()) { + return false; + } + if(empty($domains)) return false; if(!is_dir($this->renew_config_path)) return false; @@ -133,9 +254,13 @@ class letsencrypt { } private function get_ssl_domain($data) { - $domain = $data['new']['ssl_domain']; - if(!$domain) $domain = $data['new']['domain']; + global $app; + $domain = $data['new']['ssl_domain']; + if(!$domain) { + $domain = $data['new']['domain']; + } + if($data['new']['ssl'] == 'y' && $data['new']['ssl_letsencrypt'] == 'y') { $domain = $data['new']['domain']; if(substr($domain, 0, 2) === '*.') { @@ -149,8 +274,6 @@ class letsencrypt { } public function get_website_certificate_paths($data) { - global $app; - $ssl_dir = $data['new']['document_root'].'/ssl'; $domain = $this->get_ssl_domain($data); @@ -183,11 +306,17 @@ class letsencrypt { $web_config = $app->getconf->get_server_config($conf['server_id'], 'web'); $server_config = $app->getconf->get_server_config($conf['server_id'], 'server'); + $use_acme = false; + if($this->get_acme_script()) { + $use_acme = true; + } elseif(!$this->get_certbot_script()) { + // acme and le missing + $this->install_acme(); + } + $tmp = $app->letsencrypt->get_website_certificate_paths($data); $domain = $tmp['domain']; $key_file = $tmp['key']; - $key_file2 = $tmp['key2']; - $csr_file = $tmp['csr']; $crt_file = $tmp['crt']; $bundle_file = $tmp['bundle']; @@ -256,66 +385,50 @@ class letsencrypt { $app->log("There were " . $le_domain_count . " domains in the domain list. LE only supports 100, so we strip the rest.", LOGLEVEL_WARN); } - // generate cli format - foreach($temp_domains as $temp_domain) { - $cli_domain_arg .= (string) " --domains " . $temp_domain; - } - // unset useless data unset($subdomains); unset($aliasdomains); - $letsencrypt_use_certcommand = false; + $this->certbot_use_certcommand = false; $letsencrypt_cmd = ''; - $letsencrypt = false; - $success = false; - - $letsencrypt = explode("\n", shell_exec('which letsencrypt certbot /root/.local/share/letsencrypt/bin/letsencrypt /opt/eff.org/certbot/venv/bin/certbot')); - $letsencrypt = reset($letsencrypt); - if(!is_executable($letsencrypt)) { - $letsencrypt = false; + $allow_return_codes = null; + if($use_acme) { + $letsencrypt_cmd = $this->get_acme_command($temp_domains, $key_file, $bundle_file, $crt_file); + $allow_return_codes = array(2); + } else { + $letsencrypt_cmd = $this->get_certbot_command($temp_domains); } - if(!empty($cli_domain_arg)) { + + $success = false; + if($letsencrypt_cmd) { if(!isset($server_config['migration_mode']) || $server_config['migration_mode'] != 'y') { $app->log("Create Let's Encrypt SSL Cert for: $domain", LOGLEVEL_DEBUG); $app->log("Let's Encrypt SSL Cert domains: $cli_domain_arg", LOGLEVEL_DEBUG); - - if($letsencrypt) { - $letsencrypt_version = exec($letsencrypt . ' --version 2>&1', $ret, $val); - if(preg_match('/^(\S+|\w+)\s+(\d+(\.\d+)+)$/', $letsencrypt_version, $matches)) { - $letsencrypt_version = $matches[2]; - } - if (version_compare($letsencrypt_version, '0.22', '>=')) { - $acme_version = 'https://acme-v02.api.letsencrypt.org/directory'; - } else { - $acme_version = 'https://acme-v01.api.letsencrypt.org/directory'; - } - if (version_compare($letsencrypt_version, '0.30', '>=')) { - $app->log("LE version is " . $letsencrypt_version . ", so using certificates command", LOGLEVEL_DEBUG); - $letsencrypt_use_certcommand = true; - $webroot_map = array(); - for($i = 0; $i < count($temp_domains); $i++) { - $webroot_map[$temp_domains[$i]] = '/usr/local/ispconfig/interface/acme'; - } - $webroot_args = "--webroot-map " . escapeshellarg(str_replace(array("\r", "\n"), '', json_encode($webroot_map))); - } else { - $webroot_args = "$cli_domain_arg --webroot-path /usr/local/ispconfig/interface/acme"; - } - - $letsencrypt_cmd = $letsencrypt . " certonly -n --text --agree-tos --expand --authenticator webroot --server $acme_version --rsa-key-size 4096 --email postmaster@$domain $webroot_args"; - $success = $app->system->_exec($letsencrypt_cmd); - } + + $success = $app->system->_exec($letsencrypt_cmd, $allow_return_codes); } else { $app->log("Migration mode active, skipping Let's Encrypt SSL Cert creation for: $domain", LOGLEVEL_DEBUG); $success = true; } } + + if($use_acme === true) { + if(!$success) { + $app->log('Let\'s Encrypt SSL Cert for: ' . $domain . ' could not be issued.', LOGLEVEL_WARN); + $app->log($letsencrypt_cmd, LOGLEVEL_WARN); + return false; + } else { + return true; + } + } + $le_files = array(); - if($letsencrypt_use_certcommand === true && $letsencrypt) { - $letsencrypt_cmd = $letsencrypt . " certificates " . $cli_domain_arg; + if($this->certbot_use_certcommand === true && $letsencrypt_cmd) { + $letsencrypt_cmd = $letsencrypt_cmd . " certificates " . $cli_domain_arg; $output = explode("\n", shell_exec($letsencrypt_cmd . " 2>/dev/null | grep -v '^\$'")); $le_path = ''; $skip_to_next = true; + $matches = null; foreach($output as $outline) { $outline = trim($outline); $app->log("LE CERT OUTPUT: " . $outline, LOGLEVEL_DEBUG); @@ -415,6 +528,4 @@ class letsencrypt { return false; } } -} - -?> +} \ No newline at end of file diff --git a/server/lib/classes/system.inc.php b/server/lib/classes/system.inc.php index 3db57c510..551e4e485 100644 --- a/server/lib/classes/system.inc.php +++ b/server/lib/classes/system.inc.php @@ -1742,13 +1742,14 @@ class system{ } - function _exec($command) { + function _exec($command, $allow_return_codes = null) { global $app; $out = array(); $ret = 0; $app->log('exec: '.$command, LOGLEVEL_DEBUG); exec($command, $out, $ret); - if($ret != 0) return false; + if(is_array($allow_return_codes) && in_array($ret, $allow_return_codes)) return true; + elseif($ret != 0) return false; else return true; } -- GitLab From 58708d959ca14762b4280c42348b5f9b85cc809c Mon Sep 17 00:00:00 2001 From: Marius Burkard Date: Fri, 22 Nov 2019 13:20:06 +0100 Subject: [PATCH 213/215] - added list id to mail filter options --- interface/lib/classes/remote.d/server.inc.php | 4 +--- interface/web/mail/form/mail_user_filter.tform.php | 2 +- interface/web/mail/lib/lang/ar_mail_user_filter.lng | 1 + interface/web/mail/lib/lang/ca_mail_user_filter.lng | 1 + interface/web/mail/lib/lang/dk_mail_user_filter.lng | 1 + interface/web/mail/lib/lang/en_mail_user_filter.lng | 1 + interface/web/mail/lib/lang/es_mail_user_filter.lng | 1 + interface/web/mail/lib/lang/fi_mail_user_filter.lng | 1 + interface/web/mail/lib/lang/fr_mail_user_filter.lng | 1 + interface/web/mail/lib/lang/id_mail_user_filter.lng | 1 + interface/web/mail/lib/lang/ja_mail_user_filter.lng | 1 + interface/web/mail/lib/lang/pt_mail_user_filter.lng | 1 + interface/web/mail/lib/lang/ro_mail_user_filter.lng | 1 + interface/web/mail/lib/lang/sk_mail_user_filter.lng | 1 + interface/web/mailuser/form/mail_user_filter.tform.php | 2 +- interface/web/mailuser/lib/lang/ar_mail_user_filter.lng | 1 + interface/web/mailuser/lib/lang/bg_mail_user_filter.lng | 1 + interface/web/mailuser/lib/lang/ca_mail_user_filter.lng | 1 + interface/web/mailuser/lib/lang/dk_mail_user_filter.lng | 1 + interface/web/mailuser/lib/lang/el_mail_user_filter.lng | 1 + interface/web/mailuser/lib/lang/en_mail_user_filter.lng | 1 + interface/web/mailuser/lib/lang/es_mail_user_filter.lng | 1 + interface/web/mailuser/lib/lang/fi_mail_user_filter.lng | 1 + interface/web/mailuser/lib/lang/hu_mail_user_filter.lng | 1 + interface/web/mailuser/lib/lang/id_mail_user_filter.lng | 1 + interface/web/mailuser/lib/lang/ja_mail_user_filter.lng | 1 + interface/web/mailuser/lib/lang/pl_mail_user_filter.lng | 1 + interface/web/mailuser/lib/lang/pt_mail_user_filter.lng | 1 + interface/web/mailuser/lib/lang/ro_mail_user_filter.lng | 1 + interface/web/mailuser/lib/lang/sk_mail_user_filter.lng | 1 + 30 files changed, 30 insertions(+), 5 deletions(-) diff --git a/interface/lib/classes/remote.d/server.inc.php b/interface/lib/classes/remote.d/server.inc.php index 4962cb4c5..77649d1bb 100644 --- a/interface/lib/classes/remote.d/server.inc.php +++ b/interface/lib/classes/remote.d/server.inc.php @@ -288,6 +288,4 @@ class remoting_server extends remoting { return false; } } -} - -?> +} \ No newline at end of file diff --git a/interface/web/mail/form/mail_user_filter.tform.php b/interface/web/mail/form/mail_user_filter.tform.php index c1134c5e4..be5fba3ed 100644 --- a/interface/web/mail/form/mail_user_filter.tform.php +++ b/interface/web/mail/form/mail_user_filter.tform.php @@ -88,7 +88,7 @@ $form["tabs"]['filter'] = array ( 'datatype' => 'VARCHAR', 'formtype' => 'SELECT', 'default' => '', - 'value' => array('Subject' => 'subject_txt', 'From'=>'from_txt', 'To'=>'to_txt') + 'value' => array('Subject' => 'subject_txt', 'From'=>'from_txt', 'To'=>'to_txt', 'List-Id'=>'list_id_txt') ), 'op' => array ( 'datatype' => 'VARCHAR', diff --git a/interface/web/mail/lib/lang/ar_mail_user_filter.lng b/interface/web/mail/lib/lang/ar_mail_user_filter.lng index b5d31b589..9a15472e8 100644 --- a/interface/web/mail/lib/lang/ar_mail_user_filter.lng +++ b/interface/web/mail/lib/lang/ar_mail_user_filter.lng @@ -11,6 +11,7 @@ $wb['limit_mailfilter_txt'] = 'The max. number of mailfilters is reached.'; $wb['subject_txt'] = 'Subject'; $wb['from_txt'] = 'From'; $wb['to_txt'] = 'To'; +$wb['list_id_txt'] = 'List ID'; $wb['contains_txt'] = 'Contains'; $wb['is_txt'] = 'Is'; $wb['begins_with_txt'] = 'Begins with'; diff --git a/interface/web/mail/lib/lang/ca_mail_user_filter.lng b/interface/web/mail/lib/lang/ca_mail_user_filter.lng index 14b80ee07..8744b2ab7 100644 --- a/interface/web/mail/lib/lang/ca_mail_user_filter.lng +++ b/interface/web/mail/lib/lang/ca_mail_user_filter.lng @@ -11,6 +11,7 @@ $wb['limit_mailfilter_txt'] = 'Le nombre max de filtres courriel est atteint.'; $wb['subject_txt'] = 'Sujet'; $wb['from_txt'] = 'De'; $wb['to_txt'] = 'Pour'; +$wb['list_id_txt'] = 'List ID'; $wb['contains_txt'] = 'Contient'; $wb['is_txt'] = 'Est'; $wb['begins_with_txt'] = 'Commence par'; diff --git a/interface/web/mail/lib/lang/dk_mail_user_filter.lng b/interface/web/mail/lib/lang/dk_mail_user_filter.lng index d43af17ff..ef8be2a0c 100644 --- a/interface/web/mail/lib/lang/dk_mail_user_filter.lng +++ b/interface/web/mail/lib/lang/dk_mail_user_filter.lng @@ -11,6 +11,7 @@ $wb['limit_mailfilter_txt'] = 'Max. antal af mailfiltere er nået.'; $wb['subject_txt'] = 'Emne'; $wb['from_txt'] = 'Fra'; $wb['to_txt'] = 'Til'; +$wb['list_id_txt'] = 'List ID'; $wb['contains_txt'] = 'Indeholder'; $wb['is_txt'] = 'Er'; $wb['begins_with_txt'] = 'Begynder med'; diff --git a/interface/web/mail/lib/lang/en_mail_user_filter.lng b/interface/web/mail/lib/lang/en_mail_user_filter.lng index e78f808ef..462ee6d93 100644 --- a/interface/web/mail/lib/lang/en_mail_user_filter.lng +++ b/interface/web/mail/lib/lang/en_mail_user_filter.lng @@ -11,6 +11,7 @@ $wb["limit_mailfilter_txt"] = 'The max. number of mailfilters is reached.'; $wb['subject_txt'] = 'Subject'; $wb['from_txt'] = 'From'; $wb['to_txt'] = 'To'; +$wb['list_id_txt'] = 'List ID'; $wb['contains_txt'] = 'Contains'; $wb['is_txt'] = 'Is'; $wb['begins_with_txt'] = 'Begins with'; diff --git a/interface/web/mail/lib/lang/es_mail_user_filter.lng b/interface/web/mail/lib/lang/es_mail_user_filter.lng index 94100ef7a..ed221d5cb 100755 --- a/interface/web/mail/lib/lang/es_mail_user_filter.lng +++ b/interface/web/mail/lib/lang/es_mail_user_filter.lng @@ -25,5 +25,6 @@ $wb['subject_txt'] = 'Asunto'; $wb['target_error_regex'] = 'El destino solo puede contener los siguientes caracteres: a-z, 0-9, -, ., _, y {espacio}'; $wb['target_txt'] = 'Carpeta'; $wb['to_txt'] = 'Para'; +$wb['list_id_txt'] = 'List ID'; $wb['move_to_txt'] = 'Move to'; ?> diff --git a/interface/web/mail/lib/lang/fi_mail_user_filter.lng b/interface/web/mail/lib/lang/fi_mail_user_filter.lng index 1a4e7218a..1238dc86f 100755 --- a/interface/web/mail/lib/lang/fi_mail_user_filter.lng +++ b/interface/web/mail/lib/lang/fi_mail_user_filter.lng @@ -11,6 +11,7 @@ $wb['limit_mailfilter_txt'] = 'The max. number of mailfilters is reached.'; $wb['subject_txt'] = 'Subject'; $wb['from_txt'] = 'From'; $wb['to_txt'] = 'To'; +$wb['list_id_txt'] = 'List ID'; $wb['contains_txt'] = 'Contains'; $wb['is_txt'] = 'Is'; $wb['begins_with_txt'] = 'Begins with'; diff --git a/interface/web/mail/lib/lang/fr_mail_user_filter.lng b/interface/web/mail/lib/lang/fr_mail_user_filter.lng index 49c5076d9..b5cacf2e9 100644 --- a/interface/web/mail/lib/lang/fr_mail_user_filter.lng +++ b/interface/web/mail/lib/lang/fr_mail_user_filter.lng @@ -11,6 +11,7 @@ $wb['limit_mailfilter_txt'] = 'Le nombre max de filtres e-mail est atteint.'; $wb['subject_txt'] = 'Sujet'; $wb['from_txt'] = 'De'; $wb['to_txt'] = 'Pour'; +$wb['list_id_txt'] = 'List ID'; $wb['contains_txt'] = 'Contient'; $wb['is_txt'] = 'Est'; $wb['begins_with_txt'] = 'Commence par'; diff --git a/interface/web/mail/lib/lang/id_mail_user_filter.lng b/interface/web/mail/lib/lang/id_mail_user_filter.lng index 0def30d1a..93f45979f 100644 --- a/interface/web/mail/lib/lang/id_mail_user_filter.lng +++ b/interface/web/mail/lib/lang/id_mail_user_filter.lng @@ -11,6 +11,7 @@ $wb['limit_mailfilter_txt'] = 'The max. number of mailfilters is reached.'; $wb['subject_txt'] = 'Subject'; $wb['from_txt'] = 'From'; $wb['to_txt'] = 'To'; +$wb['list_id_txt'] = 'List ID'; $wb['contains_txt'] = 'Contains'; $wb['is_txt'] = 'Is'; $wb['begins_with_txt'] = 'Begins with'; diff --git a/interface/web/mail/lib/lang/ja_mail_user_filter.lng b/interface/web/mail/lib/lang/ja_mail_user_filter.lng index 847640fee..8ee3801cc 100644 --- a/interface/web/mail/lib/lang/ja_mail_user_filter.lng +++ b/interface/web/mail/lib/lang/ja_mail_user_filter.lng @@ -11,6 +11,7 @@ $wb['limit_mailfilter_txt'] = 'The max. number of mailfilters is reached.'; $wb['subject_txt'] = 'Subject'; $wb['from_txt'] = 'From'; $wb['to_txt'] = 'To'; +$wb['list_id_txt'] = 'List ID'; $wb['contains_txt'] = 'Contains'; $wb['is_txt'] = 'Is'; $wb['begins_with_txt'] = 'Begins with'; diff --git a/interface/web/mail/lib/lang/pt_mail_user_filter.lng b/interface/web/mail/lib/lang/pt_mail_user_filter.lng index 42a7481d7..906c27ecd 100644 --- a/interface/web/mail/lib/lang/pt_mail_user_filter.lng +++ b/interface/web/mail/lib/lang/pt_mail_user_filter.lng @@ -11,6 +11,7 @@ $wb['limit_mailfilter_txt'] = 'The max. number of mailfilters is reached.'; $wb['subject_txt'] = 'Subject'; $wb['from_txt'] = 'From'; $wb['to_txt'] = 'To'; +$wb['list_id_txt'] = 'List ID'; $wb['contains_txt'] = 'Contains'; $wb['is_txt'] = 'Is'; $wb['begins_with_txt'] = 'Begins with'; diff --git a/interface/web/mail/lib/lang/ro_mail_user_filter.lng b/interface/web/mail/lib/lang/ro_mail_user_filter.lng index 7c5c72ad7..22435d9e9 100644 --- a/interface/web/mail/lib/lang/ro_mail_user_filter.lng +++ b/interface/web/mail/lib/lang/ro_mail_user_filter.lng @@ -11,6 +11,7 @@ $wb['limit_mailfilter_txt'] = 'The max. number of mailfilters is reached.'; $wb['subject_txt'] = 'Subject'; $wb['from_txt'] = 'From'; $wb['to_txt'] = 'To'; +$wb['list_id_txt'] = 'List ID'; $wb['contains_txt'] = 'Contains'; $wb['is_txt'] = 'Is'; $wb['begins_with_txt'] = 'Begins with'; diff --git a/interface/web/mail/lib/lang/sk_mail_user_filter.lng b/interface/web/mail/lib/lang/sk_mail_user_filter.lng index 20904653c..7546cd6af 100644 --- a/interface/web/mail/lib/lang/sk_mail_user_filter.lng +++ b/interface/web/mail/lib/lang/sk_mail_user_filter.lng @@ -11,6 +11,7 @@ $wb['limit_mailfilter_txt'] = 'The max. number of mailfilters is reached.'; $wb['subject_txt'] = 'Subject'; $wb['from_txt'] = 'From'; $wb['to_txt'] = 'To'; +$wb['list_id_txt'] = 'List ID'; $wb['contains_txt'] = 'Contains'; $wb['is_txt'] = 'Is'; $wb['begins_with_txt'] = 'Begins with'; diff --git a/interface/web/mailuser/form/mail_user_filter.tform.php b/interface/web/mailuser/form/mail_user_filter.tform.php index adf771631..9fdd8bdfc 100644 --- a/interface/web/mailuser/form/mail_user_filter.tform.php +++ b/interface/web/mailuser/form/mail_user_filter.tform.php @@ -83,7 +83,7 @@ $form["tabs"]['filter'] = array ( 'datatype' => 'VARCHAR', 'formtype' => 'SELECT', 'default' => '', - 'value' => array('Subject' => 'subject_txt', 'From'=>'from_txt', 'To'=>'to_txt') + 'value' => array('Subject' => 'subject_txt', 'From'=>'from_txt', 'To'=>'to_txt', 'List-Id'=>'list_id_txt') ), 'op' => array ( 'datatype' => 'VARCHAR', diff --git a/interface/web/mailuser/lib/lang/ar_mail_user_filter.lng b/interface/web/mailuser/lib/lang/ar_mail_user_filter.lng index 4069a1535..9ac4be357 100644 --- a/interface/web/mailuser/lib/lang/ar_mail_user_filter.lng +++ b/interface/web/mailuser/lib/lang/ar_mail_user_filter.lng @@ -11,6 +11,7 @@ $wb['limit_mailfilter_txt'] = 'The max. number of mailfilters is reached.'; $wb['subject_txt'] = 'Subject'; $wb['from_txt'] = 'From'; $wb['to_txt'] = 'To'; +$wb['list_id_txt'] = 'List ID'; $wb['contains_txt'] = 'Contains'; $wb['is_txt'] = 'Is'; $wb['begins_with_txt'] = 'Begins with'; diff --git a/interface/web/mailuser/lib/lang/bg_mail_user_filter.lng b/interface/web/mailuser/lib/lang/bg_mail_user_filter.lng index 4069a1535..9ac4be357 100644 --- a/interface/web/mailuser/lib/lang/bg_mail_user_filter.lng +++ b/interface/web/mailuser/lib/lang/bg_mail_user_filter.lng @@ -11,6 +11,7 @@ $wb['limit_mailfilter_txt'] = 'The max. number of mailfilters is reached.'; $wb['subject_txt'] = 'Subject'; $wb['from_txt'] = 'From'; $wb['to_txt'] = 'To'; +$wb['list_id_txt'] = 'List ID'; $wb['contains_txt'] = 'Contains'; $wb['is_txt'] = 'Is'; $wb['begins_with_txt'] = 'Begins with'; diff --git a/interface/web/mailuser/lib/lang/ca_mail_user_filter.lng b/interface/web/mailuser/lib/lang/ca_mail_user_filter.lng index 4069a1535..9ac4be357 100644 --- a/interface/web/mailuser/lib/lang/ca_mail_user_filter.lng +++ b/interface/web/mailuser/lib/lang/ca_mail_user_filter.lng @@ -11,6 +11,7 @@ $wb['limit_mailfilter_txt'] = 'The max. number of mailfilters is reached.'; $wb['subject_txt'] = 'Subject'; $wb['from_txt'] = 'From'; $wb['to_txt'] = 'To'; +$wb['list_id_txt'] = 'List ID'; $wb['contains_txt'] = 'Contains'; $wb['is_txt'] = 'Is'; $wb['begins_with_txt'] = 'Begins with'; diff --git a/interface/web/mailuser/lib/lang/dk_mail_user_filter.lng b/interface/web/mailuser/lib/lang/dk_mail_user_filter.lng index e164d54bb..0a92f580a 100644 --- a/interface/web/mailuser/lib/lang/dk_mail_user_filter.lng +++ b/interface/web/mailuser/lib/lang/dk_mail_user_filter.lng @@ -11,6 +11,7 @@ $wb['limit_mailfilter_txt'] = 'Max. antal af mailfiltere er nået.'; $wb['subject_txt'] = 'Emne'; $wb['from_txt'] = 'Fra'; $wb['to_txt'] = 'Til'; +$wb['list_id_txt'] = 'List ID'; $wb['contains_txt'] = 'Indeholder'; $wb['is_txt'] = 'Er'; $wb['begins_with_txt'] = 'Begynder med'; diff --git a/interface/web/mailuser/lib/lang/el_mail_user_filter.lng b/interface/web/mailuser/lib/lang/el_mail_user_filter.lng index 4069a1535..9ac4be357 100644 --- a/interface/web/mailuser/lib/lang/el_mail_user_filter.lng +++ b/interface/web/mailuser/lib/lang/el_mail_user_filter.lng @@ -11,6 +11,7 @@ $wb['limit_mailfilter_txt'] = 'The max. number of mailfilters is reached.'; $wb['subject_txt'] = 'Subject'; $wb['from_txt'] = 'From'; $wb['to_txt'] = 'To'; +$wb['list_id_txt'] = 'List ID'; $wb['contains_txt'] = 'Contains'; $wb['is_txt'] = 'Is'; $wb['begins_with_txt'] = 'Begins with'; diff --git a/interface/web/mailuser/lib/lang/en_mail_user_filter.lng b/interface/web/mailuser/lib/lang/en_mail_user_filter.lng index 23451b74d..c26150ba1 100644 --- a/interface/web/mailuser/lib/lang/en_mail_user_filter.lng +++ b/interface/web/mailuser/lib/lang/en_mail_user_filter.lng @@ -12,6 +12,7 @@ $wb['mailbox_filter_txt'] = 'Mailbox filter'; $wb['subject_txt'] = 'Subject'; $wb['from_txt'] = 'From'; $wb['to_txt'] = 'To'; +$wb['list_id_txt'] = 'List ID'; $wb['contains_txt'] = 'Contains'; $wb['is_txt'] = 'Is'; $wb['begins_with_txt'] = 'Begins with'; diff --git a/interface/web/mailuser/lib/lang/es_mail_user_filter.lng b/interface/web/mailuser/lib/lang/es_mail_user_filter.lng index 426ad1ad0..b8a19359f 100755 --- a/interface/web/mailuser/lib/lang/es_mail_user_filter.lng +++ b/interface/web/mailuser/lib/lang/es_mail_user_filter.lng @@ -17,5 +17,6 @@ $wb['subject_txt'] = 'Asunto'; $wb['target_error_regex'] = 'La carpeta solo debe contener estos caracteres: a-z, 0-9, -, ., _, y {espacio}'; $wb['target_txt'] = 'Carpeta'; $wb['to_txt'] = 'Para'; +$wb['list_id_txt'] = 'List ID'; $wb['mailbox_filter_txt'] = 'Mailbox filter'; ?> diff --git a/interface/web/mailuser/lib/lang/fi_mail_user_filter.lng b/interface/web/mailuser/lib/lang/fi_mail_user_filter.lng index 4069a1535..9ac4be357 100644 --- a/interface/web/mailuser/lib/lang/fi_mail_user_filter.lng +++ b/interface/web/mailuser/lib/lang/fi_mail_user_filter.lng @@ -11,6 +11,7 @@ $wb['limit_mailfilter_txt'] = 'The max. number of mailfilters is reached.'; $wb['subject_txt'] = 'Subject'; $wb['from_txt'] = 'From'; $wb['to_txt'] = 'To'; +$wb['list_id_txt'] = 'List ID'; $wb['contains_txt'] = 'Contains'; $wb['is_txt'] = 'Is'; $wb['begins_with_txt'] = 'Begins with'; diff --git a/interface/web/mailuser/lib/lang/hu_mail_user_filter.lng b/interface/web/mailuser/lib/lang/hu_mail_user_filter.lng index 4069a1535..9ac4be357 100644 --- a/interface/web/mailuser/lib/lang/hu_mail_user_filter.lng +++ b/interface/web/mailuser/lib/lang/hu_mail_user_filter.lng @@ -11,6 +11,7 @@ $wb['limit_mailfilter_txt'] = 'The max. number of mailfilters is reached.'; $wb['subject_txt'] = 'Subject'; $wb['from_txt'] = 'From'; $wb['to_txt'] = 'To'; +$wb['list_id_txt'] = 'List ID'; $wb['contains_txt'] = 'Contains'; $wb['is_txt'] = 'Is'; $wb['begins_with_txt'] = 'Begins with'; diff --git a/interface/web/mailuser/lib/lang/id_mail_user_filter.lng b/interface/web/mailuser/lib/lang/id_mail_user_filter.lng index 4069a1535..9ac4be357 100644 --- a/interface/web/mailuser/lib/lang/id_mail_user_filter.lng +++ b/interface/web/mailuser/lib/lang/id_mail_user_filter.lng @@ -11,6 +11,7 @@ $wb['limit_mailfilter_txt'] = 'The max. number of mailfilters is reached.'; $wb['subject_txt'] = 'Subject'; $wb['from_txt'] = 'From'; $wb['to_txt'] = 'To'; +$wb['list_id_txt'] = 'List ID'; $wb['contains_txt'] = 'Contains'; $wb['is_txt'] = 'Is'; $wb['begins_with_txt'] = 'Begins with'; diff --git a/interface/web/mailuser/lib/lang/ja_mail_user_filter.lng b/interface/web/mailuser/lib/lang/ja_mail_user_filter.lng index 4069a1535..9ac4be357 100644 --- a/interface/web/mailuser/lib/lang/ja_mail_user_filter.lng +++ b/interface/web/mailuser/lib/lang/ja_mail_user_filter.lng @@ -11,6 +11,7 @@ $wb['limit_mailfilter_txt'] = 'The max. number of mailfilters is reached.'; $wb['subject_txt'] = 'Subject'; $wb['from_txt'] = 'From'; $wb['to_txt'] = 'To'; +$wb['list_id_txt'] = 'List ID'; $wb['contains_txt'] = 'Contains'; $wb['is_txt'] = 'Is'; $wb['begins_with_txt'] = 'Begins with'; diff --git a/interface/web/mailuser/lib/lang/pl_mail_user_filter.lng b/interface/web/mailuser/lib/lang/pl_mail_user_filter.lng index 4069a1535..9ac4be357 100644 --- a/interface/web/mailuser/lib/lang/pl_mail_user_filter.lng +++ b/interface/web/mailuser/lib/lang/pl_mail_user_filter.lng @@ -11,6 +11,7 @@ $wb['limit_mailfilter_txt'] = 'The max. number of mailfilters is reached.'; $wb['subject_txt'] = 'Subject'; $wb['from_txt'] = 'From'; $wb['to_txt'] = 'To'; +$wb['list_id_txt'] = 'List ID'; $wb['contains_txt'] = 'Contains'; $wb['is_txt'] = 'Is'; $wb['begins_with_txt'] = 'Begins with'; diff --git a/interface/web/mailuser/lib/lang/pt_mail_user_filter.lng b/interface/web/mailuser/lib/lang/pt_mail_user_filter.lng index 4069a1535..9ac4be357 100644 --- a/interface/web/mailuser/lib/lang/pt_mail_user_filter.lng +++ b/interface/web/mailuser/lib/lang/pt_mail_user_filter.lng @@ -11,6 +11,7 @@ $wb['limit_mailfilter_txt'] = 'The max. number of mailfilters is reached.'; $wb['subject_txt'] = 'Subject'; $wb['from_txt'] = 'From'; $wb['to_txt'] = 'To'; +$wb['list_id_txt'] = 'List ID'; $wb['contains_txt'] = 'Contains'; $wb['is_txt'] = 'Is'; $wb['begins_with_txt'] = 'Begins with'; diff --git a/interface/web/mailuser/lib/lang/ro_mail_user_filter.lng b/interface/web/mailuser/lib/lang/ro_mail_user_filter.lng index 4069a1535..9ac4be357 100644 --- a/interface/web/mailuser/lib/lang/ro_mail_user_filter.lng +++ b/interface/web/mailuser/lib/lang/ro_mail_user_filter.lng @@ -11,6 +11,7 @@ $wb['limit_mailfilter_txt'] = 'The max. number of mailfilters is reached.'; $wb['subject_txt'] = 'Subject'; $wb['from_txt'] = 'From'; $wb['to_txt'] = 'To'; +$wb['list_id_txt'] = 'List ID'; $wb['contains_txt'] = 'Contains'; $wb['is_txt'] = 'Is'; $wb['begins_with_txt'] = 'Begins with'; diff --git a/interface/web/mailuser/lib/lang/sk_mail_user_filter.lng b/interface/web/mailuser/lib/lang/sk_mail_user_filter.lng index 4069a1535..9ac4be357 100644 --- a/interface/web/mailuser/lib/lang/sk_mail_user_filter.lng +++ b/interface/web/mailuser/lib/lang/sk_mail_user_filter.lng @@ -11,6 +11,7 @@ $wb['limit_mailfilter_txt'] = 'The max. number of mailfilters is reached.'; $wb['subject_txt'] = 'Subject'; $wb['from_txt'] = 'From'; $wb['to_txt'] = 'To'; +$wb['list_id_txt'] = 'List ID'; $wb['contains_txt'] = 'Contains'; $wb['is_txt'] = 'Is'; $wb['begins_with_txt'] = 'Begins with'; -- GitLab From 141aec78b1ee07ff099d708ee5f34df5121b366f Mon Sep 17 00:00:00 2001 From: Marius Burkard Date: Fri, 22 Nov 2019 15:04:54 +0100 Subject: [PATCH 214/215] - fixed using fullchain instead of two files on acme.sh and apache > 2.4.8 --- server/lib/classes/letsencrypt.inc.php | 13 ++++++++++--- 1 file changed, 10 insertions(+), 3 deletions(-) diff --git a/server/lib/classes/letsencrypt.inc.php b/server/lib/classes/letsencrypt.inc.php index 291ee41b1..f60ad040e 100644 --- a/server/lib/classes/letsencrypt.inc.php +++ b/server/lib/classes/letsencrypt.inc.php @@ -53,7 +53,8 @@ class letsencrypt { } } - public function get_acme_command($domains, $key_file, $bundle_file, $cert_file) { + public function get_acme_command($domains, $key_file, $bundle_file, $cert_file, $server_type = 'apache') { + global $app; $letsencrypt = $this->get_acme_script(); @@ -66,8 +67,14 @@ class letsencrypt { if($cmd == '') { return false; } + + if($server_type != 'apache' || version_compare($app->system->getapacheversion(true), '2.4.8', '>=')) { + $cert_arg = '--fullchain-file ' . escapeshellarg($cert_file); + } else { + $cert_arg = '--fullchain-file ' . escapeshellarg($bundle_file) . ' --cert-file ' . escapeshellarg($cert_file); + } - $cmd = 'R=0 ; C=0 ; ' . $letsencrypt . ' --issue ' . $cmd . ' -w /usr/local/ispconfig/interface/acme ; R=$? ; if [[ $R -eq 0 || $R -eq 2 ]] ; then ' . $letsencrypt . ' --install-cert ' . $cmd . ' --key-file ' . escapeshellarg($key_file) . ' --fullchain-file ' . escapeshellarg($bundle_file) . ' --cert-file ' . escapeshellarg($cert_file) . ' --reloadcmd ' . escapeshellarg($this->get_reload_command()) . '; C=$? ; fi ; if [[ $C -eq 0 ]] ; then exit $R ; else exit $C ; fi'; + $cmd = 'R=0 ; C=0 ; ' . $letsencrypt . ' --issue ' . $cmd . ' -w /usr/local/ispconfig/interface/acme ; R=$? ; if [[ $R -eq 0 || $R -eq 2 ]] ; then ' . $letsencrypt . ' --install-cert ' . $cmd . ' --key-file ' . escapeshellarg($key_file) . ' ' . $cert_arg . ' --reloadcmd ' . escapeshellarg($this->get_reload_command()) . '; C=$? ; fi ; if [[ $C -eq 0 ]] ; then exit $R ; else exit $C ; fi'; return $cmd; } @@ -393,7 +400,7 @@ class letsencrypt { $letsencrypt_cmd = ''; $allow_return_codes = null; if($use_acme) { - $letsencrypt_cmd = $this->get_acme_command($temp_domains, $key_file, $bundle_file, $crt_file); + $letsencrypt_cmd = $this->get_acme_command($temp_domains, $key_file, $bundle_file, $crt_file, $server_type); $allow_return_codes = array(2); } else { $letsencrypt_cmd = $this->get_certbot_command($temp_domains); -- GitLab From 26009352ab78589458b85a8ab4f585b7847e9b1e Mon Sep 17 00:00:00 2001 From: Marius Burkard Date: Fri, 22 Nov 2019 19:35:30 +0100 Subject: [PATCH 215/215] - fixed typo (amavis instead of amavisd), fixes #5453 --- install/lib/installer_base.lib.php | 2 +- install/lib/update.lib.php | 2 +- server/plugins-available/postfix_server_plugin.inc.php | 3 +-- 3 files changed, 3 insertions(+), 4 deletions(-) diff --git a/install/lib/installer_base.lib.php b/install/lib/installer_base.lib.php index 4f72c6920..513858ca6 100644 --- a/install/lib/installer_base.lib.php +++ b/install/lib/installer_base.lib.php @@ -326,7 +326,7 @@ class installer_base { $tpl_ini_array['web']['php_ini_path_cgi'] = $conf['apache']['php_ini_path_cgi']; $tpl_ini_array['mail']['pop3_imap_daemon'] = ($conf['dovecot']['installed'] == true)?'dovecot':'courier'; $tpl_ini_array['mail']['mail_filter_syntax'] = ($conf['dovecot']['installed'] == true)?'sieve':'maildrop'; - $tpl_ini_array['mail']['content_filter'] = @($conf['rspamd']['installed']) ? 'rspamd' : 'amavis'; + $tpl_ini_array['mail']['content_filter'] = @($conf['rspamd']['installed']) ? 'rspamd' : 'amavisd'; $tpl_ini_array['mail']['rspamd_available'] = @($conf['rspamd']['installed']) ? 'y' : 'n'; $tpl_ini_array['dns']['bind_user'] = $conf['bind']['bind_user']; $tpl_ini_array['dns']['bind_group'] = $conf['bind']['bind_group']; diff --git a/install/lib/update.lib.php b/install/lib/update.lib.php index 9deb8ca10..4dcb31cff 100644 --- a/install/lib/update.lib.php +++ b/install/lib/update.lib.php @@ -336,7 +336,7 @@ function updateDbAndIni() { $tpl_ini_array['mail']['pop3_imap_daemon'] = ($conf['dovecot']['installed'] == true)?'dovecot':'courier'; $tpl_ini_array['mail']['mail_filter_syntax'] = ($conf['dovecot']['installed'] == true)?'sieve':'maildrop'; // do not switch to rspamd automatically! - // $tpl_ini_array['mail']['content_filter'] = @($conf['rspamd']['installed']) ? 'rspamd' : 'amavis'; + // $tpl_ini_array['mail']['content_filter'] = @($conf['rspamd']['installed']) ? 'rspamd' : 'amavisd'; $tpl_ini_array['mail']['rspamd_available'] = @($conf['rspamd']['installed']) ? 'y' : 'n'; $tpl_ini_array['dns']['bind_user'] = $conf['bind']['bind_user']; $tpl_ini_array['dns']['bind_group'] = $conf['bind']['bind_group']; diff --git a/server/plugins-available/postfix_server_plugin.inc.php b/server/plugins-available/postfix_server_plugin.inc.php index 77ac68907..ad48e3dee 100644 --- a/server/plugins-available/postfix_server_plugin.inc.php +++ b/server/plugins-available/postfix_server_plugin.inc.php @@ -215,8 +215,7 @@ class postfix_server_plugin { fclose($fpp); fclose($fps); unset($dkim_domains); - } - if($mail_config['content_filter'] == 'amavisd'){ + } else { exec("postconf -X 'smtpd_milters'"); exec("postconf -X 'milter_protocol'"); exec("postconf -X 'milter_mail_macros'"); -- GitLab
{tmpl_var name='name_txt'}{tmpl_var name='name_txt'} {tmpl_var name='version_txt'} {tmpl_var name='category_txt'}  
{tmpl_var name='name'}{tmpl_var name='name'} {tmpl_var name='version'}-{tmpl_var name='release'} {tmpl_var name='category'}
{tmpl_var name='email'}{tmpl_var name='email'} {tmpl_var name='name'} {tmpl_var name='used'} {tmpl_var name='quota'}
{tmpl_var name="message"} - + - +
{tmpl_var name="command"}
- +
{tmpl_var name="sys_groupid"} - +
{tmpl_var name="database_user"} - +
{tmpl_var name="parent_domain_id"} {tmpl_var name="username"} - +
{tmpl_var name="parent_domain_id"} {tmpl_var name="domain"} - +
{tmpl_var name="parent_domain_id"} {tmpl_var name="path"} - +
{tmpl_var name="web_folder_id"} {tmpl_var name="username"} - +
- +
- +
{tmpl_var name="parent_domain_id"} {tmpl_var name="username"} - +
{tmpl_var name="ip_address"} {tmpl_var name="reserved"} - +
{tmpl_var name="server_id"} {tmpl_var name="allservers"} - +
{tmpl_var name="active"} {tmpl_var name="template_name"} - +
{tmpl_var name="ip_address"} - +
{tmpl_var name='instance_status'} - +
{tmpl_var name='version'}-{tmpl_var name='release'} {tmpl_var name='category'} {tmpl_var name='package_status'}{tmpl_var name='package_status'}  
ispapp{tmpl_var name="package_id"} - +
{tmpl_var name="remote_userid"} {tmpl_var name="remote_username"} - +