From 9e6a611833d3b807f363817225f26152164c7be6 Mon Sep 17 00:00:00 2001 From: Herman van Rink Date: Wed, 27 Feb 2019 10:03:22 +0100 Subject: [PATCH 001/300] WIP add CI test to install ispconfig in a clean container --- .gitlab-ci.yml | 16 ++++++++++++++++ helper_scripts/test_install_docker.sh | 21 +++++++++++++++++++++ 2 files changed, 37 insertions(+) create mode 100755 helper_scripts/test_install_docker.sh diff --git a/.gitlab-ci.yml b/.gitlab-ci.yml index 736fbc3083..a81b3b5aa6 100644 --- a/.gitlab-ci.yml +++ b/.gitlab-ci.yml @@ -1,6 +1,7 @@ # Defines stages which are to be executed stages: - syntax + - test # ### Stage syntax @@ -13,6 +14,7 @@ syntax:lint: only: - schedules - web + - merge_requests script: - composer require overtrue/phplint @@ -20,3 +22,17 @@ syntax:lint: - echo "For more information http://www.icosaedro.it/phplint/" - vendor/bin/phplint + +test:install: + stage: test + image: jerob/docker-ispconfig + only: + - schedules + - web + - merge_requests + script: + - $CI_PROJECT_DIR/helper_scripts/test_install_docker.sh + - apt-get update + - apt-get --yes install curl + - curl --insecure https://127.0.0.1:8080/login/ + - ps xaf diff --git a/helper_scripts/test_install_docker.sh b/helper_scripts/test_install_docker.sh new file mode 100755 index 0000000000..4de61c3895 --- /dev/null +++ b/helper_scripts/test_install_docker.sh @@ -0,0 +1,21 @@ +#!/bin/sh + +# This script is used from .gitlab-ci.yml to do an automated installation inside a docker container for testing. + +if [ -f /usr/local/ispconfig/interface/lib/config.inc.php ]; then + echo "Found an existing configfile, bailing out!" + exit 1 +fi + +mysql_install_db +service mysql start \ +&& echo "UPDATE mysql.user SET Password = PASSWORD('pass') WHERE User = 'root';" | mysql -u root \ +&& echo "UPDATE mysql.user SET plugin='mysql_native_password' where user='root';" | mysql -u root \ +&& echo "DELETE FROM mysql.user WHERE User='';" | mysql -u root \ +&& echo "DELETE FROM mysql.user WHERE User='root' AND Host NOT IN ('localhost', '127.0.0.1', '::1');" | mysql -u root \ +&& echo "DROP DATABASE IF EXISTS test;" | mysql -u root \ +&& echo "DELETE FROM mysql.db WHERE Db='test' OR Db='test\\_%';" | mysql -u root \ +&& echo "FLUSH PRIVILEGES;" | mysql -u root +sed -i "s/^hostname=server1.example.com$/hostname=$HOSTNAME/g" /root/ispconfig3_install/install/autoinstall.ini + +service mysql start && php -q $CI_PROJECT_DIR/install/install.php --autoinstall=/root/ispconfig3_install/install/autoinstall.ini -- GitLab From 21a4b5944f2f4695e7c30284958678b272937ff1 Mon Sep 17 00:00:00 2001 From: Till Brehm Date: Wed, 19 Apr 2017 11:08:34 +0000 Subject: [PATCH 002/300] Merge branch 'master' into 'master' handle the server/plugins-enabled folder based on enabled/disbaled services See merge request !582 (cherry picked from commit 3e83d19985b1124702cd6a06c8e7486ade99798b) f22fd0ee handle the server/plugins-enabled folder based on enabled/disbaled services --- .../server_services_plugin.inc.php | 155 ++++++++++++++++++ 1 file changed, 155 insertions(+) create mode 100644 server/plugins-available/server_services_plugin.inc.php diff --git a/server/plugins-available/server_services_plugin.inc.php b/server/plugins-available/server_services_plugin.inc.php new file mode 100644 index 0000000000..29710a7285 --- /dev/null +++ b/server/plugins-available/server_services_plugin.inc.php @@ -0,0 +1,155 @@ +plugins->registerEvent('server_insert', 'server_services_plugin', 'insert'); + $app->plugins->registerEvent('server_update', 'server_services_plugin', 'update'); + $app->plugins->registerEvent('server_delete', 'server_services_delete', 'delete'); + + } + + function insert($event_name, $data) { + + $this->update($event_name, $data); + + } + + function delete($event_name, $data) { + + $this->update($event_name, $data); + + } + + function update($event_name, $data) { + global $app, $conf; + + $app->uses('getconf'); + $old_services = array(); + $new_services = array(); + foreach($this->services as $service) { + $old_services[$service] = $data['old'][$service]; + $new_services[$service] = $data['new'][$service]; + } + $changed_services=array_diff_assoc($new_services,$old_services); + foreach($changed_services as $service => $value) { + switch($service) { + case 'mail_server': + $config = $app->getconf->get_server_config($conf['server_id'], 'mail'); + $plugins = @($config['pop3_imap_daemon'] == 'dovecot')?$this->dovecot_plugins:$this->courier_plugins; + $plugins = array_merge($plugins, $this->mail_plugins); + $this->change_state($plugins, $value, $config); + break; + case 'web_server': + $config = $app->getconf->get_server_config($conf['server_id'], 'web'); + $plugins = @($config['server_type'] == 'apache')?$this->apache_plugins:$this->nginx_plugins; + $plugins = array_merge($plugins, $this->web_plugins); + $this->change_state($plugins, $value, $config); + break; + case 'dns_server': + $config = $app->getconf->get_server_config($conf['server_id'], 'dns'); + $plugins = @(isset($config['bind_user']))?$this->bind_plugins:$this->powerdns_plugins; + $this->change_state($plugins, $value, $config); + break; + case 'db_server': + $this->change_state($this->db_plugins, $value, $config); + break; + case 'vserver_server': + $this->change_state($this->openvz_plugins, $value, $config); + break; + case 'xmpp_server': + $this->change_state($this->xmpp_plugins, $value, $config); + break; + } + } + + } + + function change_state($plugins, $value, $config) { + + $enabled_dir = '/usr/local/ispconfig/server/plugins-enabled/'; + $available_dir = '/usr/local/ispconfig/server/plugins-available/'; + + if($value == 0) { //* disable services + foreach($plugins as $plugin) { + if(is_link($enabled_dir.$plugin.'.inc.php')) { + unlink($enabled_dir.$plugin.'.inc.php'); + } + } + } + if ($value == 1) { //* enable services + foreach($plugins as $plugin) { + if(is_file($available_dir.$plugin.'.inc.php') && !is_link($enabled_dir.$plugin.'.inc.php')) { + symlink($available_dir.$plugin.'.inc.php', $enabled_dir.$plugin.'.inc.php'); + } + } + } + + } + +} // end class + + + +?> -- GitLab From 039db24f9a900b4b2c0141bfd5eb6d665dc19ed6 Mon Sep 17 00:00:00 2001 From: Robert Breithuber Date: Wed, 9 Sep 2020 17:59:52 +0200 Subject: [PATCH 003/300] makes the language configurable for each site, it reads the "Lang" parameter from awstats.DOMAIN.conf before it gets deleted and adds the parameter to the content before the new config file is written. the "-lang" parameter is removed from the awstats-command, so the global value for lang in awstats.conf.local or the value in awstats.DOMAIN.conf gets respected. Closes #3668 --- server/lib/classes/cron.d/150-awstats.inc.php | 13 +++++++++++-- 1 file changed, 11 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 891919cb02..2edf0222f0 100644 --- a/server/lib/classes/cron.d/150-awstats.inc.php +++ b/server/lib/classes/cron.d/150-awstats.inc.php @@ -86,7 +86,14 @@ class cronjob_awstats extends cronjob { $awstats_conf_dir = $web_config['awstats_conf_dir']; $awstats_website_conf_file = $web_config['awstats_conf_dir'].'/awstats.'.$domain.'.conf'; - if(is_file($awstats_website_conf_file)) unlink($awstats_website_conf_file); + $existing_awstats_conf_array = array(); + if(is_file($awstats_website_conf_file)) { + $existing_awstats_conf = file($awstats_website_conf_file); + foreach ($existing_awstats_conf as $line) { + if(preg_match("/Lang=/",$line)) $existing_awstats_conf_array['Lang'] = implode('',parse_ini_string($line)); + } + unlink($awstats_website_conf_file); + } $sql = "SELECT domain FROM web_domain WHERE (type = 'alias' OR type = 'subdomain') AND parent_domain_id = ?"; $aliases = $app->db->queryAllRecords($sql, $rec['domain_id']); @@ -108,6 +115,8 @@ class cronjob_awstats extends cronjob { LogFile="/var/log/ispconfig/httpd/'.$domain.'/yesterday-access.log" SiteDomain="'.$domain.'" HostAliases="www.'.$domain.' localhost 127.0.0.1'.$aliasdomain.'"'; + if (array_key_exists('Lang',$existing_awstats_conf_array)) $awstats_conf_file_content .=' + Lang="'.$existing_awstats_conf_array['Lang'].'"'; if (isset($include_file)) { file_put_contents($awstats_website_conf_file, $awstats_conf_file_content); } else { @@ -134,7 +143,7 @@ class cronjob_awstats extends cronjob { } } - $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); + $command = escapeshellcmd($awstats_buildstaticpages_pl) . ' -month=' . escapeshellarg($awmonth) . ' -year=' . escapeshellarg($awyear) . ' -update -config=' . escapeshellarg($domain) . ' -dir=' . escapeshellarg($statsdir) . ' -awstatsprog=' . escapeshellarg($awstats_pl) . '"; if (date("d") == 2) { $awmonth = date("m")-1; -- GitLab From 102a8bfcd55cf2b663e257bcd9a29d6516ba32ae Mon Sep 17 00:00:00 2001 From: Robert Breithuber Date: Wed, 9 Sep 2020 21:04:42 +0200 Subject: [PATCH 004/300] Update 150-awstats.inc.php --- server/lib/classes/cron.d/150-awstats.inc.php | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/server/lib/classes/cron.d/150-awstats.inc.php b/server/lib/classes/cron.d/150-awstats.inc.php index 2edf0222f0..cd981baf8a 100644 --- a/server/lib/classes/cron.d/150-awstats.inc.php +++ b/server/lib/classes/cron.d/150-awstats.inc.php @@ -143,7 +143,7 @@ class cronjob_awstats extends cronjob { } } - $command = escapeshellcmd($awstats_buildstaticpages_pl) . ' -month=' . escapeshellarg($awmonth) . ' -year=' . escapeshellarg($awyear) . ' -update -config=' . escapeshellarg($domain) . ' -dir=' . escapeshellarg($statsdir) . ' -awstatsprog=' . escapeshellarg($awstats_pl) . '"; + $command = escapeshellcmd($awstats_buildstaticpages_pl) . ' -month=' . escapeshellarg($awmonth) . ' -year=' . escapeshellarg($awyear) . ' -update -config=' . escapeshellarg($domain) . ' -dir=' . escapeshellarg($statsdir) . ' -awstatsprog=' . escapeshellarg($awstats_pl); if (date("d") == 2) { $awmonth = date("m")-1; -- GitLab From 682be6d148814787c393ec40e3f504fc3b1f3ebf Mon Sep 17 00:00:00 2001 From: Florian Schaal Date: Fri, 11 Sep 2020 08:16:29 +0200 Subject: [PATCH 005/300] update caa-check --- server/lib/classes/letsencrypt.inc.php | 24 ++++++++++++++---------- 1 file changed, 14 insertions(+), 10 deletions(-) diff --git a/server/lib/classes/letsencrypt.inc.php b/server/lib/classes/letsencrypt.inc.php index fb67e7c00d..77be94c105 100644 --- a/server/lib/classes/letsencrypt.inc.php +++ b/server/lib/classes/letsencrypt.inc.php @@ -373,6 +373,17 @@ class letsencrypt { if((isset($web_config['skip_le_check']) && $web_config['skip_le_check'] == 'y') || (isset($server_config['migration_mode']) && $server_config['migration_mode'] == 'y')) { $le_domains[] = $temp_domain; } else { + $le_hash_check = trim(@file_get_contents('http://' . $temp_domain . '/.well-known/acme-challenge/' . $le_rnd_file)); + if($le_hash_check == $le_rnd_hash) { + $le_domains[] = $temp_domain; + $app->log("Verified domain " . $temp_domain . " should be reachable for letsencrypt.", LOGLEVEL_DEBUG); + } else { + $app->log("Could not verify domain " . $temp_domain . ", so excluding it from letsencrypt request.", LOGLEVEL_WARN); + } + } + } + if(!empty($le_domains)) { + foreach($le_domains as $idx=>$temp_domain) { //check caa-record $caa_check = false; $caa_domain = $temp_domain; @@ -393,20 +404,13 @@ class letsencrypt { $caa_check = true; } - if($caa_check === true) { - $le_hash_check = trim(@file_get_contents('http://' . $temp_domain . '/.well-known/acme-challenge/' . $le_rnd_file)); - if($le_hash_check == $le_rnd_hash) { - $le_domains[] = $temp_domain; - $app->log("Verified domain " . $temp_domain . " should be reachable for letsencrypt.", LOGLEVEL_DEBUG); - } else { - $app->log("Could not verify domain " . $temp_domain . ", so excluding it from letsencrypt request.", LOGLEVEL_WARN); - } - } else { + if($caa_check === false) { $app->log("Incomplete CAA-Records for " . $temp_domain . ", so excluding it from letsencrypt request.", LOGLEVEL_WARN); + unset($le_domains[$idx]); } - } } + $temp_domains = $le_domains; unset($le_domains); @unlink('/usr/local/ispconfig/interface/acme/.well-known/acme-challenge/' . $le_rnd_file); -- GitLab From f1e4b77e7a73f56841c4f4b985214b7764507c12 Mon Sep 17 00:00:00 2001 From: thom Date: Fri, 2 Oct 2020 11:44:41 +0200 Subject: [PATCH 006/300] Purge Apps & Addons (#5795) --- install/lib/installer_base.lib.php | 3 - .../sql/incremental/upd_dev_collection.sql | 6 +- install/sql/ispconfig3.sql | 90 ------ install/tpl/config.inc.php.master | 12 +- install/tpl/security_settings.ini.master | 3 - interface/lib/config.inc.php | 4 - .../web/admin/form/software_package.tform.php | 128 -------- .../web/admin/form/software_repo.tform.php | 171 ---------- .../admin/lib/lang/ar_software_package.lng | 6 - .../lib/lang/ar_software_package_install.lng | 6 - .../lib/lang/ar_software_package_list.lng | 13 - .../web/admin/lib/lang/ar_software_repo.lng | 8 - .../admin/lib/lang/ar_software_repo_list.lng | 6 - .../lib/lang/ar_software_update_list.lng | 9 - .../admin/lib/lang/bg_software_package.lng | 6 - .../lib/lang/bg_software_package_install.lng | 6 - .../lib/lang/bg_software_package_list.lng | 13 - .../web/admin/lib/lang/bg_software_repo.lng | 8 - .../admin/lib/lang/bg_software_repo_list.lng | 6 - .../lib/lang/bg_software_update_list.lng | 9 - .../admin/lib/lang/br_software_package.lng | 6 - .../lib/lang/br_software_package_install.lng | 6 - .../lib/lang/br_software_package_list.lng | 13 - .../web/admin/lib/lang/br_software_repo.lng | 8 - .../admin/lib/lang/br_software_repo_list.lng | 6 - .../lib/lang/br_software_update_list.lng | 9 - .../admin/lib/lang/ca_software_package.lng | 6 - .../lib/lang/ca_software_package_install.lng | 6 - .../lib/lang/ca_software_package_list.lng | 13 - .../web/admin/lib/lang/ca_software_repo.lng | 8 - .../admin/lib/lang/ca_software_repo_list.lng | 6 - .../lib/lang/ca_software_update_list.lng | 9 - .../admin/lib/lang/cz_software_package.lng | 6 - .../lib/lang/cz_software_package_install.lng | 6 - .../lib/lang/cz_software_package_list.lng | 13 - .../web/admin/lib/lang/cz_software_repo.lng | 8 - .../admin/lib/lang/cz_software_repo_list.lng | 6 - .../lib/lang/cz_software_update_list.lng | 9 - .../admin/lib/lang/de_software_package.lng | 6 - .../lib/lang/de_software_package_install.lng | 6 - .../lib/lang/de_software_package_list.lng | 13 - .../web/admin/lib/lang/de_software_repo.lng | 8 - .../admin/lib/lang/de_software_repo_list.lng | 6 - .../lib/lang/de_software_update_list.lng | 9 - .../admin/lib/lang/dk_software_package.lng | 6 - .../lib/lang/dk_software_package_install.lng | 6 - .../lib/lang/dk_software_package_list.lng | 13 - .../web/admin/lib/lang/dk_software_repo.lng | 8 - .../admin/lib/lang/dk_software_repo_list.lng | 6 - .../lib/lang/dk_software_update_list.lng | 9 - .../admin/lib/lang/el_software_package.lng | 6 - .../lib/lang/el_software_package_install.lng | 6 - .../lib/lang/el_software_package_list.lng | 13 - .../web/admin/lib/lang/el_software_repo.lng | 8 - .../admin/lib/lang/el_software_repo_list.lng | 6 - .../lib/lang/el_software_update_list.lng | 9 - .../admin/lib/lang/en_software_package.lng | 6 - .../lib/lang/en_software_package_install.lng | 6 - .../lib/lang/en_software_package_list.lng | 13 - .../web/admin/lib/lang/en_software_repo.lng | 8 - .../admin/lib/lang/en_software_repo_list.lng | 6 - .../lib/lang/en_software_update_list.lng | 9 - .../admin/lib/lang/es_software_package.lng | 6 - .../lib/lang/es_software_package_install.lng | 6 - .../lib/lang/es_software_package_list.lng | 13 - .../web/admin/lib/lang/es_software_repo.lng | 8 - .../admin/lib/lang/es_software_repo_list.lng | 6 - .../lib/lang/es_software_update_list.lng | 9 - .../admin/lib/lang/fi_software_package.lng | 6 - .../lib/lang/fi_software_package_install.lng | 6 - .../lib/lang/fi_software_package_list.lng | 13 - .../web/admin/lib/lang/fi_software_repo.lng | 8 - .../admin/lib/lang/fi_software_repo_list.lng | 6 - .../lib/lang/fi_software_update_list.lng | 9 - .../admin/lib/lang/fr_software_package.lng | 6 - .../lib/lang/fr_software_package_install.lng | 6 - .../lib/lang/fr_software_package_list.lng | 13 - .../web/admin/lib/lang/fr_software_repo.lng | 8 - .../admin/lib/lang/fr_software_repo_list.lng | 6 - .../lib/lang/fr_software_update_list.lng | 9 - .../admin/lib/lang/hr_software_package.lng | 6 - .../lib/lang/hr_software_package_install.lng | 6 - .../lib/lang/hr_software_package_list.lng | 13 - .../web/admin/lib/lang/hr_software_repo.lng | 8 - .../admin/lib/lang/hr_software_repo_list.lng | 6 - .../lib/lang/hr_software_update_list.lng | 9 - .../admin/lib/lang/hu_software_package.lng | 6 - .../lib/lang/hu_software_package_install.lng | 6 - .../lib/lang/hu_software_package_list.lng | 13 - .../web/admin/lib/lang/hu_software_repo.lng | 8 - .../admin/lib/lang/hu_software_repo_list.lng | 6 - .../lib/lang/hu_software_update_list.lng | 9 - .../admin/lib/lang/id_software_package.lng | 6 - .../lib/lang/id_software_package_install.lng | 6 - .../lib/lang/id_software_package_list.lng | 13 - .../web/admin/lib/lang/id_software_repo.lng | 8 - .../admin/lib/lang/id_software_repo_list.lng | 6 - .../lib/lang/id_software_update_list.lng | 9 - .../admin/lib/lang/it_software_package.lng | 6 - .../lib/lang/it_software_package_install.lng | 6 - .../lib/lang/it_software_package_list.lng | 13 - .../web/admin/lib/lang/it_software_repo.lng | 8 - .../admin/lib/lang/it_software_repo_list.lng | 6 - .../lib/lang/it_software_update_list.lng | 9 - .../admin/lib/lang/ja_software_package.lng | 6 - .../lib/lang/ja_software_package_install.lng | 6 - .../lib/lang/ja_software_package_list.lng | 13 - .../web/admin/lib/lang/ja_software_repo.lng | 8 - .../admin/lib/lang/ja_software_repo_list.lng | 6 - .../lib/lang/ja_software_update_list.lng | 9 - .../admin/lib/lang/nl_software_package.lng | 6 - .../lib/lang/nl_software_package_install.lng | 6 - .../lib/lang/nl_software_package_list.lng | 13 - .../web/admin/lib/lang/nl_software_repo.lng | 8 - .../admin/lib/lang/nl_software_repo_list.lng | 6 - .../lib/lang/nl_software_update_list.lng | 9 - .../admin/lib/lang/pl_software_package.lng | 6 - .../lib/lang/pl_software_package_install.lng | 6 - .../lib/lang/pl_software_package_list.lng | 13 - .../web/admin/lib/lang/pl_software_repo.lng | 8 - .../admin/lib/lang/pl_software_repo_list.lng | 6 - .../lib/lang/pl_software_update_list.lng | 9 - .../admin/lib/lang/pt_software_package.lng | 6 - .../lib/lang/pt_software_package_install.lng | 6 - .../lib/lang/pt_software_package_list.lng | 13 - .../web/admin/lib/lang/pt_software_repo.lng | 8 - .../admin/lib/lang/pt_software_repo_list.lng | 6 - .../lib/lang/pt_software_update_list.lng | 9 - .../admin/lib/lang/ro_software_package.lng | 6 - .../lib/lang/ro_software_package_install.lng | 6 - .../lib/lang/ro_software_package_list.lng | 13 - .../web/admin/lib/lang/ro_software_repo.lng | 8 - .../admin/lib/lang/ro_software_repo_list.lng | 6 - .../lib/lang/ro_software_update_list.lng | 9 - .../admin/lib/lang/ru_software_package.lng | 6 - .../lib/lang/ru_software_package_install.lng | 6 - .../lib/lang/ru_software_package_list.lng | 13 - .../web/admin/lib/lang/ru_software_repo.lng | 8 - .../admin/lib/lang/ru_software_repo_list.lng | 6 - .../lib/lang/ru_software_update_list.lng | 9 - .../admin/lib/lang/se_software_package.lng | 6 - .../lib/lang/se_software_package_install.lng | 6 - .../lib/lang/se_software_package_list.lng | 13 - .../web/admin/lib/lang/se_software_repo.lng | 8 - .../admin/lib/lang/se_software_repo_list.lng | 6 - .../lib/lang/se_software_update_list.lng | 9 - .../admin/lib/lang/sk_software_package.lng | 6 - .../lib/lang/sk_software_package_install.lng | 6 - .../lib/lang/sk_software_package_list.lng | 13 - .../web/admin/lib/lang/sk_software_repo.lng | 8 - .../admin/lib/lang/sk_software_repo_list.lng | 6 - .../lib/lang/sk_software_update_list.lng | 9 - .../admin/lib/lang/tr_software_package.lng | 6 - .../lib/lang/tr_software_package_install.lng | 6 - .../lib/lang/tr_software_package_list.lng | 13 - .../web/admin/lib/lang/tr_software_repo.lng | 8 - .../admin/lib/lang/tr_software_repo_list.lng | 6 - .../lib/lang/tr_software_update_list.lng | 9 - interface/web/admin/lib/module.conf.php | 24 -- .../web/admin/list/software_repo.list.php | 78 ----- interface/web/admin/software_package_del.php | 57 ---- interface/web/admin/software_package_edit.php | 60 ---- .../web/admin/software_package_install.php | 179 ----------- interface/web/admin/software_package_list.php | 200 ------------ interface/web/admin/software_repo_del.php | 53 --- interface/web/admin/software_repo_edit.php | 60 ---- interface/web/admin/software_repo_list.php | 52 --- interface/web/admin/software_update_list.php | 204 ------------ .../admin/templates/software_package_edit.htm | 22 -- .../templates/software_package_install.htm | 31 -- .../admin/templates/software_package_list.htm | 55 ---- .../admin/templates/software_repo_edit.htm | 26 -- .../admin/templates/software_repo_list.htm | 58 ---- .../admin/templates/software_update_list.htm | 53 --- security/README.txt | 22 +- server/mods-available/server_module.inc.php | 11 +- .../software_update_plugin.inc.php | 303 ------------------ 177 files changed, 16 insertions(+), 3149 deletions(-) delete mode 100644 interface/web/admin/form/software_package.tform.php delete mode 100644 interface/web/admin/form/software_repo.tform.php delete mode 100644 interface/web/admin/lib/lang/ar_software_package.lng delete mode 100644 interface/web/admin/lib/lang/ar_software_package_install.lng delete mode 100644 interface/web/admin/lib/lang/ar_software_package_list.lng delete mode 100644 interface/web/admin/lib/lang/ar_software_repo.lng delete mode 100644 interface/web/admin/lib/lang/ar_software_repo_list.lng delete mode 100644 interface/web/admin/lib/lang/ar_software_update_list.lng delete mode 100644 interface/web/admin/lib/lang/bg_software_package.lng delete mode 100644 interface/web/admin/lib/lang/bg_software_package_install.lng delete mode 100644 interface/web/admin/lib/lang/bg_software_package_list.lng delete mode 100644 interface/web/admin/lib/lang/bg_software_repo.lng delete mode 100644 interface/web/admin/lib/lang/bg_software_repo_list.lng delete mode 100644 interface/web/admin/lib/lang/bg_software_update_list.lng delete mode 100644 interface/web/admin/lib/lang/br_software_package.lng delete mode 100644 interface/web/admin/lib/lang/br_software_package_install.lng delete mode 100644 interface/web/admin/lib/lang/br_software_package_list.lng delete mode 100644 interface/web/admin/lib/lang/br_software_repo.lng delete mode 100644 interface/web/admin/lib/lang/br_software_repo_list.lng delete mode 100644 interface/web/admin/lib/lang/br_software_update_list.lng delete mode 100644 interface/web/admin/lib/lang/ca_software_package.lng delete mode 100644 interface/web/admin/lib/lang/ca_software_package_install.lng delete mode 100644 interface/web/admin/lib/lang/ca_software_package_list.lng delete mode 100644 interface/web/admin/lib/lang/ca_software_repo.lng delete mode 100644 interface/web/admin/lib/lang/ca_software_repo_list.lng delete mode 100644 interface/web/admin/lib/lang/ca_software_update_list.lng delete mode 100644 interface/web/admin/lib/lang/cz_software_package.lng delete mode 100644 interface/web/admin/lib/lang/cz_software_package_install.lng delete mode 100644 interface/web/admin/lib/lang/cz_software_package_list.lng delete mode 100644 interface/web/admin/lib/lang/cz_software_repo.lng delete mode 100644 interface/web/admin/lib/lang/cz_software_repo_list.lng delete mode 100644 interface/web/admin/lib/lang/cz_software_update_list.lng delete mode 100644 interface/web/admin/lib/lang/de_software_package.lng delete mode 100644 interface/web/admin/lib/lang/de_software_package_install.lng delete mode 100644 interface/web/admin/lib/lang/de_software_package_list.lng delete mode 100644 interface/web/admin/lib/lang/de_software_repo.lng delete mode 100644 interface/web/admin/lib/lang/de_software_repo_list.lng delete mode 100644 interface/web/admin/lib/lang/de_software_update_list.lng delete mode 100644 interface/web/admin/lib/lang/dk_software_package.lng delete mode 100644 interface/web/admin/lib/lang/dk_software_package_install.lng delete mode 100644 interface/web/admin/lib/lang/dk_software_package_list.lng delete mode 100644 interface/web/admin/lib/lang/dk_software_repo.lng delete mode 100644 interface/web/admin/lib/lang/dk_software_repo_list.lng delete mode 100644 interface/web/admin/lib/lang/dk_software_update_list.lng delete mode 100644 interface/web/admin/lib/lang/el_software_package.lng delete mode 100644 interface/web/admin/lib/lang/el_software_package_install.lng delete mode 100644 interface/web/admin/lib/lang/el_software_package_list.lng delete mode 100644 interface/web/admin/lib/lang/el_software_repo.lng delete mode 100644 interface/web/admin/lib/lang/el_software_repo_list.lng delete mode 100644 interface/web/admin/lib/lang/el_software_update_list.lng delete mode 100644 interface/web/admin/lib/lang/en_software_package.lng delete mode 100644 interface/web/admin/lib/lang/en_software_package_install.lng delete mode 100644 interface/web/admin/lib/lang/en_software_package_list.lng delete mode 100644 interface/web/admin/lib/lang/en_software_repo.lng delete mode 100644 interface/web/admin/lib/lang/en_software_repo_list.lng delete mode 100644 interface/web/admin/lib/lang/en_software_update_list.lng delete mode 100644 interface/web/admin/lib/lang/es_software_package.lng delete mode 100644 interface/web/admin/lib/lang/es_software_package_install.lng delete mode 100644 interface/web/admin/lib/lang/es_software_package_list.lng delete mode 100644 interface/web/admin/lib/lang/es_software_repo.lng delete mode 100644 interface/web/admin/lib/lang/es_software_repo_list.lng delete mode 100644 interface/web/admin/lib/lang/es_software_update_list.lng delete mode 100644 interface/web/admin/lib/lang/fi_software_package.lng delete mode 100644 interface/web/admin/lib/lang/fi_software_package_install.lng delete mode 100644 interface/web/admin/lib/lang/fi_software_package_list.lng delete mode 100644 interface/web/admin/lib/lang/fi_software_repo.lng delete mode 100644 interface/web/admin/lib/lang/fi_software_repo_list.lng delete mode 100644 interface/web/admin/lib/lang/fi_software_update_list.lng delete mode 100644 interface/web/admin/lib/lang/fr_software_package.lng delete mode 100644 interface/web/admin/lib/lang/fr_software_package_install.lng delete mode 100644 interface/web/admin/lib/lang/fr_software_package_list.lng delete mode 100644 interface/web/admin/lib/lang/fr_software_repo.lng delete mode 100644 interface/web/admin/lib/lang/fr_software_repo_list.lng delete mode 100644 interface/web/admin/lib/lang/fr_software_update_list.lng delete mode 100644 interface/web/admin/lib/lang/hr_software_package.lng delete mode 100644 interface/web/admin/lib/lang/hr_software_package_install.lng delete mode 100644 interface/web/admin/lib/lang/hr_software_package_list.lng delete mode 100644 interface/web/admin/lib/lang/hr_software_repo.lng delete mode 100644 interface/web/admin/lib/lang/hr_software_repo_list.lng delete mode 100644 interface/web/admin/lib/lang/hr_software_update_list.lng delete mode 100644 interface/web/admin/lib/lang/hu_software_package.lng delete mode 100644 interface/web/admin/lib/lang/hu_software_package_install.lng delete mode 100644 interface/web/admin/lib/lang/hu_software_package_list.lng delete mode 100644 interface/web/admin/lib/lang/hu_software_repo.lng delete mode 100644 interface/web/admin/lib/lang/hu_software_repo_list.lng delete mode 100644 interface/web/admin/lib/lang/hu_software_update_list.lng delete mode 100644 interface/web/admin/lib/lang/id_software_package.lng delete mode 100644 interface/web/admin/lib/lang/id_software_package_install.lng delete mode 100644 interface/web/admin/lib/lang/id_software_package_list.lng delete mode 100644 interface/web/admin/lib/lang/id_software_repo.lng delete mode 100644 interface/web/admin/lib/lang/id_software_repo_list.lng delete mode 100644 interface/web/admin/lib/lang/id_software_update_list.lng delete mode 100644 interface/web/admin/lib/lang/it_software_package.lng delete mode 100644 interface/web/admin/lib/lang/it_software_package_install.lng delete mode 100644 interface/web/admin/lib/lang/it_software_package_list.lng delete mode 100644 interface/web/admin/lib/lang/it_software_repo.lng delete mode 100644 interface/web/admin/lib/lang/it_software_repo_list.lng delete mode 100644 interface/web/admin/lib/lang/it_software_update_list.lng delete mode 100644 interface/web/admin/lib/lang/ja_software_package.lng delete mode 100644 interface/web/admin/lib/lang/ja_software_package_install.lng delete mode 100644 interface/web/admin/lib/lang/ja_software_package_list.lng delete mode 100644 interface/web/admin/lib/lang/ja_software_repo.lng delete mode 100644 interface/web/admin/lib/lang/ja_software_repo_list.lng delete mode 100644 interface/web/admin/lib/lang/ja_software_update_list.lng delete mode 100644 interface/web/admin/lib/lang/nl_software_package.lng delete mode 100644 interface/web/admin/lib/lang/nl_software_package_install.lng delete mode 100644 interface/web/admin/lib/lang/nl_software_package_list.lng delete mode 100644 interface/web/admin/lib/lang/nl_software_repo.lng delete mode 100644 interface/web/admin/lib/lang/nl_software_repo_list.lng delete mode 100644 interface/web/admin/lib/lang/nl_software_update_list.lng delete mode 100644 interface/web/admin/lib/lang/pl_software_package.lng delete mode 100644 interface/web/admin/lib/lang/pl_software_package_install.lng delete mode 100644 interface/web/admin/lib/lang/pl_software_package_list.lng delete mode 100644 interface/web/admin/lib/lang/pl_software_repo.lng delete mode 100644 interface/web/admin/lib/lang/pl_software_repo_list.lng delete mode 100644 interface/web/admin/lib/lang/pl_software_update_list.lng delete mode 100644 interface/web/admin/lib/lang/pt_software_package.lng delete mode 100644 interface/web/admin/lib/lang/pt_software_package_install.lng delete mode 100644 interface/web/admin/lib/lang/pt_software_package_list.lng delete mode 100644 interface/web/admin/lib/lang/pt_software_repo.lng delete mode 100644 interface/web/admin/lib/lang/pt_software_repo_list.lng delete mode 100644 interface/web/admin/lib/lang/pt_software_update_list.lng delete mode 100644 interface/web/admin/lib/lang/ro_software_package.lng delete mode 100644 interface/web/admin/lib/lang/ro_software_package_install.lng delete mode 100644 interface/web/admin/lib/lang/ro_software_package_list.lng delete mode 100644 interface/web/admin/lib/lang/ro_software_repo.lng delete mode 100644 interface/web/admin/lib/lang/ro_software_repo_list.lng delete mode 100644 interface/web/admin/lib/lang/ro_software_update_list.lng delete mode 100644 interface/web/admin/lib/lang/ru_software_package.lng delete mode 100644 interface/web/admin/lib/lang/ru_software_package_install.lng delete mode 100644 interface/web/admin/lib/lang/ru_software_package_list.lng delete mode 100644 interface/web/admin/lib/lang/ru_software_repo.lng delete mode 100644 interface/web/admin/lib/lang/ru_software_repo_list.lng delete mode 100644 interface/web/admin/lib/lang/ru_software_update_list.lng delete mode 100644 interface/web/admin/lib/lang/se_software_package.lng delete mode 100644 interface/web/admin/lib/lang/se_software_package_install.lng delete mode 100644 interface/web/admin/lib/lang/se_software_package_list.lng delete mode 100644 interface/web/admin/lib/lang/se_software_repo.lng delete mode 100644 interface/web/admin/lib/lang/se_software_repo_list.lng delete mode 100644 interface/web/admin/lib/lang/se_software_update_list.lng delete mode 100644 interface/web/admin/lib/lang/sk_software_package.lng delete mode 100644 interface/web/admin/lib/lang/sk_software_package_install.lng delete mode 100644 interface/web/admin/lib/lang/sk_software_package_list.lng delete mode 100644 interface/web/admin/lib/lang/sk_software_repo.lng delete mode 100644 interface/web/admin/lib/lang/sk_software_repo_list.lng delete mode 100644 interface/web/admin/lib/lang/sk_software_update_list.lng delete mode 100644 interface/web/admin/lib/lang/tr_software_package.lng delete mode 100644 interface/web/admin/lib/lang/tr_software_package_install.lng delete mode 100644 interface/web/admin/lib/lang/tr_software_package_list.lng delete mode 100644 interface/web/admin/lib/lang/tr_software_repo.lng delete mode 100644 interface/web/admin/lib/lang/tr_software_repo_list.lng delete mode 100644 interface/web/admin/lib/lang/tr_software_update_list.lng delete mode 100644 interface/web/admin/list/software_repo.list.php delete mode 100644 interface/web/admin/software_package_del.php delete mode 100644 interface/web/admin/software_package_edit.php delete mode 100644 interface/web/admin/software_package_install.php delete mode 100644 interface/web/admin/software_package_list.php delete mode 100644 interface/web/admin/software_repo_del.php delete mode 100644 interface/web/admin/software_repo_edit.php delete mode 100644 interface/web/admin/software_repo_list.php delete mode 100644 interface/web/admin/software_update_list.php delete mode 100644 interface/web/admin/templates/software_package_edit.htm delete mode 100644 interface/web/admin/templates/software_package_install.htm delete mode 100644 interface/web/admin/templates/software_package_list.htm delete mode 100644 interface/web/admin/templates/software_repo_edit.htm delete mode 100644 interface/web/admin/templates/software_repo_list.htm delete mode 100644 interface/web/admin/templates/software_update_list.htm delete mode 100644 server/plugins-available/software_update_plugin.inc.php diff --git a/install/lib/installer_base.lib.php b/install/lib/installer_base.lib.php index c82fd16537..ff6110c1e8 100644 --- a/install/lib/installer_base.lib.php +++ b/install/lib/installer_base.lib.php @@ -646,9 +646,6 @@ class installer_base { 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){ diff --git a/install/sql/incremental/upd_dev_collection.sql b/install/sql/incremental/upd_dev_collection.sql index 8b13789179..89585deb9c 100644 --- a/install/sql/incremental/upd_dev_collection.sql +++ b/install/sql/incremental/upd_dev_collection.sql @@ -1 +1,5 @@ - +-- Purge apps & addons installer (#5795) +DROP TABLE 'software_package'; +DROP TABLE 'software_repo'; +DROP TABLE 'software_update'; +DROP TABLE 'software_update_inst'; diff --git a/install/sql/ispconfig3.sql b/install/sql/ispconfig3.sql index 67f0f3bdcb..3ef6388e9c 100644 --- a/install/sql/ispconfig3.sql +++ b/install/sql/ispconfig3.sql @@ -1461,88 +1461,6 @@ CREATE TABLE `shell_user` ( -- -------------------------------------------------------- --- --- 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`) -) 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`) -) 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`) -) 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`) -) DEFAULT CHARSET=utf8 AUTO_INCREMENT=1 ; - --- -------------------------------------------------------- - -- -- Table structure for table `spamfilter_policy` -- @@ -2528,14 +2446,6 @@ 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` -- diff --git a/install/tpl/config.inc.php.master b/install/tpl/config.inc.php.master index 946a3ee505..bd5cc8f47f 100644 --- a/install/tpl/config.inc.php.master +++ b/install/tpl/config.inc.php.master @@ -33,11 +33,11 @@ if( !empty($_SERVER['DOCUMENT_ROOT']) ) { Header("Pragma: no-cache"); Header("Cache-Control: no-store, no-cache, max-age=0, must-revalidate"); Header("Content-Type: text/html; charset=utf-8"); - + //** Set a few php.ini values ini_set('register_globals',0); ini_set('magic_quotes_gpc', 0); - + if (isset($_REQUEST['GLOBALS']) || isset($_FILES['GLOBALS']) || isset($_REQUEST['s']) || isset($_REQUEST['s_old']) || isset($_REQUEST['conf'])) { die('Internal Error: var override attempt detected'); exit; @@ -127,8 +127,8 @@ $conf['init_scripts'] = '/etc/init.d'; $conf['interface_modules_enabled'] = 'dashboard,mail,sites,dns,tools,help'; //** Demo mode -/* The demo mode is an option to restrict certain actions in the interface like -* changing the password of users with sys_userid < 3 etc. to be +/* The demo mode is an option to restrict certain actions in the interface like +* changing the password of users with sys_userid < 3 etc. to be * able to run the ISPConfig interface as online demo. It does not * affect the server part. The demo mode should be always set to false * on every normal installation @@ -141,10 +141,6 @@ $conf['log_file'] = $conf['ispconfig_log_dir'].$conf['fs_div'].'ispconfig.log'; $conf['log_priority'] = {ispconfig_log_priority}; // 0 = Debug, 1 = Warning, 2 = Error -//** Allow software package installations -$conf['software_updates_enabled'] = false; - - //** Themes $conf['theme'] = '{theme}'; $conf['html_content_encoding'] = 'utf-8'; // example: utf-8, iso-8859-1, ... diff --git a/install/tpl/security_settings.ini.master b/install/tpl/security_settings.ini.master index c135652e17..02b1058074 100644 --- a/install/tpl/security_settings.ini.master +++ b/install/tpl/security_settings.ini.master @@ -12,8 +12,6 @@ admin_allow_del_cpuser=superadmin admin_allow_cpuser_group=superadmin admin_allow_firewall_config=superadmin admin_allow_osupdate=superadmin -admin_allow_software_packages=superadmin -admin_allow_software_repo=superadmin remote_api_allowed=yes password_reset_allowed=yes session_regenerate_id=yes @@ -44,4 +42,3 @@ warn_new_admin=yes warn_passwd_change=no warn_shadow_change=no warn_group_change=no - diff --git a/interface/lib/config.inc.php b/interface/lib/config.inc.php index ccda3717e1..c5d14d79cd 100644 --- a/interface/lib/config.inc.php +++ b/interface/lib/config.inc.php @@ -128,10 +128,6 @@ $conf['log_file'] = $conf['ispconfig_log_dir'].'/ispconfig.log'; $conf['log_priority'] = 0; // 0 = Debug, 1 = Warning, 2 = Error -//** Allow software package installations -$conf['software_updates_enabled'] = false; - - //** Themes $conf['theme'] = 'default'; $conf['html_content_encoding'] = 'utf-8'; // example: utf-8, iso-8859-1, ... diff --git a/interface/web/admin/form/software_package.tform.php b/interface/web/admin/form/software_package.tform.php deleted file mode 100644 index b8368d5457..0000000000 --- a/interface/web/admin/form/software_package.tform.php +++ /dev/null @@ -1,128 +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"]['software_package'] = array ( - 'title' => "Software Package", - 'width' => 80, - 'template' => "templates/software_package_edit.htm", - 'fields' => array ( - //################################# - // Beginn Datenbankfelder - //################################# - 'package_title' => array ( - 'datatype' => 'VARCHAR', - 'formtype' => 'TEXT', - 'filters' => array( - 0 => array( 'event' => 'SAVE', - 'type' => 'STRIPTAGS'), - 1 => array( 'event' => 'SAVE', - 'type' => 'STRIPNL') - ), - 'validators' => '', - 'default' => '', - 'value' => '', - 'separator' => '', - 'width' => '40', - 'maxlength' => '40', - 'rows' => '', - 'cols' => '' - ), - 'package_key' => array ( - 'datatype' => 'VARCHAR', - 'formtype' => 'TEXT', - 'filters' => array( - 0 => array( 'event' => 'SAVE', - 'type' => 'STRIPTAGS'), - 1 => array( 'event' => 'SAVE', - 'type' => 'STRIPNL') - ), - 'validators' => '', - 'default' => '', - 'value' => '', - 'separator' => '', - 'width' => '40', - 'maxlength' => '40', - 'rows' => '', - 'cols' => '' - ), - //################################# - // ENDE Datenbankfelder - //################################# - ) -); -?> diff --git a/interface/web/admin/form/software_repo.tform.php b/interface/web/admin/form/software_repo.tform.php deleted file mode 100644 index cbf68b3a35..0000000000 --- a/interface/web/admin/form/software_repo.tform.php +++ /dev/null @@ -1,171 +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"]['software_repo'] = array ( - 'title' => "Repository", - 'width' => 80, - 'template' => "templates/software_repo_edit.htm", - 'fields' => array ( - //################################# - // Beginn Datenbankfelder - //################################# - 'repo_name' => array ( - 'datatype' => 'VARCHAR', - 'formtype' => 'TEXT', - 'validators' => array ( 0 => array ( 'type' => 'NOTEMPTY', - 'errmsg'=> 'repo_name_empty'), - 1 => array ( 'type' => 'UNIQUE', - 'errmsg'=> 'repo_name_unique'), - ), - 'filters' => array( - 0 => array( 'event' => 'SAVE', - 'type' => 'STRIPTAGS'), - 1 => array( 'event' => 'SAVE', - 'type' => 'STRIPNL') - ), - 'default' => '', - 'value' => '', - 'separator' => '', - 'width' => '40', - 'maxlength' => '40', - 'rows' => '', - 'cols' => '' - ), - 'repo_url' => array ( - 'datatype' => 'VARCHAR', - 'formtype' => 'TEXT', - 'validators' => array ( 0 => array ( 'type' => 'NOTEMPTY', - 'errmsg'=> 'repo_name_empty'), - 1 => array ( 'type' => 'UNIQUE', - 'errmsg'=> 'repo_name_unique'), - ), - 'filters' => array( - 0 => array( 'event' => 'SAVE', - 'type' => 'STRIPTAGS'), - 1 => array( 'event' => 'SAVE', - 'type' => 'STRIPNL') - ), - 'default' => '', - 'value' => '', - 'separator' => '', - 'width' => '40', - 'maxlength' => '40', - 'rows' => '', - 'cols' => '' - ), - 'repo_username' => array ( - 'datatype' => 'VARCHAR', - 'formtype' => 'TEXT', - 'filters' => array( - 0 => array( 'event' => 'SAVE', - 'type' => 'STRIPTAGS'), - 1 => array( 'event' => 'SAVE', - 'type' => 'STRIPNL') - ), - 'default' => '', - 'value' => '', - 'separator' => '', - 'width' => '30', - 'maxlength' => '30', - 'rows' => '', - 'cols' => '' - ), - 'repo_password' => array ( - 'datatype' => 'VARCHAR', - 'formtype' => 'PASSWORD', - 'encryption' => 'CLEARTEXT', - 'default' => '', - 'value' => '', - 'separator' => '', - 'width' => '30', - 'maxlength' => '30', - 'rows' => '', - 'cols' => '' - ), - 'active' => array ( - 'datatype' => 'VARCHAR', - 'formtype' => 'CHECKBOX', - 'default' => 'y', - 'value' => array(0 => 'n', 1 => 'y') - ), - //################################# - // ENDE Datenbankfelder - //################################# - ) -); -?> diff --git a/interface/web/admin/lib/lang/ar_software_package.lng b/interface/web/admin/lib/lang/ar_software_package.lng deleted file mode 100644 index faffe38217..0000000000 --- a/interface/web/admin/lib/lang/ar_software_package.lng +++ /dev/null @@ -1,6 +0,0 @@ - diff --git a/interface/web/admin/lib/lang/ar_software_package_install.lng b/interface/web/admin/lib/lang/ar_software_package_install.lng deleted file mode 100644 index 5c8b756434..0000000000 --- a/interface/web/admin/lib/lang/ar_software_package_install.lng +++ /dev/null @@ -1,6 +0,0 @@ - diff --git a/interface/web/admin/lib/lang/ar_software_package_list.lng b/interface/web/admin/lib/lang/ar_software_package_list.lng deleted file mode 100644 index 9fa53867bc..0000000000 --- a/interface/web/admin/lib/lang/ar_software_package_list.lng +++ /dev/null @@ -1,13 +0,0 @@ - diff --git a/interface/web/admin/lib/lang/ar_software_repo.lng b/interface/web/admin/lib/lang/ar_software_repo.lng deleted file mode 100644 index f2cbbb2c25..0000000000 --- a/interface/web/admin/lib/lang/ar_software_repo.lng +++ /dev/null @@ -1,8 +0,0 @@ - diff --git a/interface/web/admin/lib/lang/ar_software_repo_list.lng b/interface/web/admin/lib/lang/ar_software_repo_list.lng deleted file mode 100644 index b7a219ffa8..0000000000 --- a/interface/web/admin/lib/lang/ar_software_repo_list.lng +++ /dev/null @@ -1,6 +0,0 @@ - diff --git a/interface/web/admin/lib/lang/ar_software_update_list.lng b/interface/web/admin/lib/lang/ar_software_update_list.lng deleted file mode 100644 index fe7639125c..0000000000 --- a/interface/web/admin/lib/lang/ar_software_update_list.lng +++ /dev/null @@ -1,9 +0,0 @@ - diff --git a/interface/web/admin/lib/lang/bg_software_package.lng b/interface/web/admin/lib/lang/bg_software_package.lng deleted file mode 100644 index faffe38217..0000000000 --- a/interface/web/admin/lib/lang/bg_software_package.lng +++ /dev/null @@ -1,6 +0,0 @@ - diff --git a/interface/web/admin/lib/lang/bg_software_package_install.lng b/interface/web/admin/lib/lang/bg_software_package_install.lng deleted file mode 100644 index 0c9bd116c3..0000000000 --- a/interface/web/admin/lib/lang/bg_software_package_install.lng +++ /dev/null @@ -1,6 +0,0 @@ - diff --git a/interface/web/admin/lib/lang/bg_software_package_list.lng b/interface/web/admin/lib/lang/bg_software_package_list.lng deleted file mode 100644 index e251c95fbd..0000000000 --- a/interface/web/admin/lib/lang/bg_software_package_list.lng +++ /dev/null @@ -1,13 +0,0 @@ - diff --git a/interface/web/admin/lib/lang/bg_software_repo.lng b/interface/web/admin/lib/lang/bg_software_repo.lng deleted file mode 100644 index f515654345..0000000000 --- a/interface/web/admin/lib/lang/bg_software_repo.lng +++ /dev/null @@ -1,8 +0,0 @@ - diff --git a/interface/web/admin/lib/lang/bg_software_repo_list.lng b/interface/web/admin/lib/lang/bg_software_repo_list.lng deleted file mode 100644 index 6471d70614..0000000000 --- a/interface/web/admin/lib/lang/bg_software_repo_list.lng +++ /dev/null @@ -1,6 +0,0 @@ - diff --git a/interface/web/admin/lib/lang/bg_software_update_list.lng b/interface/web/admin/lib/lang/bg_software_update_list.lng deleted file mode 100644 index c7fa6e07f5..0000000000 --- a/interface/web/admin/lib/lang/bg_software_update_list.lng +++ /dev/null @@ -1,9 +0,0 @@ - diff --git a/interface/web/admin/lib/lang/br_software_package.lng b/interface/web/admin/lib/lang/br_software_package.lng deleted file mode 100644 index 94ccc930de..0000000000 --- a/interface/web/admin/lib/lang/br_software_package.lng +++ /dev/null @@ -1,6 +0,0 @@ - diff --git a/interface/web/admin/lib/lang/br_software_package_install.lng b/interface/web/admin/lib/lang/br_software_package_install.lng deleted file mode 100644 index 0fcccf939e..0000000000 --- a/interface/web/admin/lib/lang/br_software_package_install.lng +++ /dev/null @@ -1,6 +0,0 @@ - diff --git a/interface/web/admin/lib/lang/br_software_package_list.lng b/interface/web/admin/lib/lang/br_software_package_list.lng deleted file mode 100644 index de62e3d305..0000000000 --- a/interface/web/admin/lib/lang/br_software_package_list.lng +++ /dev/null @@ -1,13 +0,0 @@ - diff --git a/interface/web/admin/lib/lang/br_software_repo.lng b/interface/web/admin/lib/lang/br_software_repo.lng deleted file mode 100644 index dbc14e2032..0000000000 --- a/interface/web/admin/lib/lang/br_software_repo.lng +++ /dev/null @@ -1,8 +0,0 @@ - diff --git a/interface/web/admin/lib/lang/br_software_repo_list.lng b/interface/web/admin/lib/lang/br_software_repo_list.lng deleted file mode 100644 index 6941c7f147..0000000000 --- a/interface/web/admin/lib/lang/br_software_repo_list.lng +++ /dev/null @@ -1,6 +0,0 @@ - diff --git a/interface/web/admin/lib/lang/br_software_update_list.lng b/interface/web/admin/lib/lang/br_software_update_list.lng deleted file mode 100644 index 0dff3a245c..0000000000 --- a/interface/web/admin/lib/lang/br_software_update_list.lng +++ /dev/null @@ -1,9 +0,0 @@ - diff --git a/interface/web/admin/lib/lang/ca_software_package.lng b/interface/web/admin/lib/lang/ca_software_package.lng deleted file mode 100644 index faffe38217..0000000000 --- a/interface/web/admin/lib/lang/ca_software_package.lng +++ /dev/null @@ -1,6 +0,0 @@ - diff --git a/interface/web/admin/lib/lang/ca_software_package_install.lng b/interface/web/admin/lib/lang/ca_software_package_install.lng deleted file mode 100644 index 5c8b756434..0000000000 --- a/interface/web/admin/lib/lang/ca_software_package_install.lng +++ /dev/null @@ -1,6 +0,0 @@ - diff --git a/interface/web/admin/lib/lang/ca_software_package_list.lng b/interface/web/admin/lib/lang/ca_software_package_list.lng deleted file mode 100644 index 2909d8376e..0000000000 --- a/interface/web/admin/lib/lang/ca_software_package_list.lng +++ /dev/null @@ -1,13 +0,0 @@ - diff --git a/interface/web/admin/lib/lang/ca_software_repo.lng b/interface/web/admin/lib/lang/ca_software_repo.lng deleted file mode 100644 index f2cbbb2c25..0000000000 --- a/interface/web/admin/lib/lang/ca_software_repo.lng +++ /dev/null @@ -1,8 +0,0 @@ - diff --git a/interface/web/admin/lib/lang/ca_software_repo_list.lng b/interface/web/admin/lib/lang/ca_software_repo_list.lng deleted file mode 100644 index b7a219ffa8..0000000000 --- a/interface/web/admin/lib/lang/ca_software_repo_list.lng +++ /dev/null @@ -1,6 +0,0 @@ - diff --git a/interface/web/admin/lib/lang/ca_software_update_list.lng b/interface/web/admin/lib/lang/ca_software_update_list.lng deleted file mode 100644 index fe7639125c..0000000000 --- a/interface/web/admin/lib/lang/ca_software_update_list.lng +++ /dev/null @@ -1,9 +0,0 @@ - diff --git a/interface/web/admin/lib/lang/cz_software_package.lng b/interface/web/admin/lib/lang/cz_software_package.lng deleted file mode 100644 index faffe38217..0000000000 --- a/interface/web/admin/lib/lang/cz_software_package.lng +++ /dev/null @@ -1,6 +0,0 @@ - diff --git a/interface/web/admin/lib/lang/cz_software_package_install.lng b/interface/web/admin/lib/lang/cz_software_package_install.lng deleted file mode 100644 index 0d079ef6d3..0000000000 --- a/interface/web/admin/lib/lang/cz_software_package_install.lng +++ /dev/null @@ -1,6 +0,0 @@ - diff --git a/interface/web/admin/lib/lang/cz_software_package_list.lng b/interface/web/admin/lib/lang/cz_software_package_list.lng deleted file mode 100644 index 6896a9feb4..0000000000 --- a/interface/web/admin/lib/lang/cz_software_package_list.lng +++ /dev/null @@ -1,13 +0,0 @@ - diff --git a/interface/web/admin/lib/lang/cz_software_repo.lng b/interface/web/admin/lib/lang/cz_software_repo.lng deleted file mode 100644 index bd7bc9d0f2..0000000000 --- a/interface/web/admin/lib/lang/cz_software_repo.lng +++ /dev/null @@ -1,8 +0,0 @@ - diff --git a/interface/web/admin/lib/lang/cz_software_repo_list.lng b/interface/web/admin/lib/lang/cz_software_repo_list.lng deleted file mode 100644 index ca04f41dcf..0000000000 --- a/interface/web/admin/lib/lang/cz_software_repo_list.lng +++ /dev/null @@ -1,6 +0,0 @@ - diff --git a/interface/web/admin/lib/lang/cz_software_update_list.lng b/interface/web/admin/lib/lang/cz_software_update_list.lng deleted file mode 100644 index c48ad8ce30..0000000000 --- a/interface/web/admin/lib/lang/cz_software_update_list.lng +++ /dev/null @@ -1,9 +0,0 @@ - diff --git a/interface/web/admin/lib/lang/de_software_package.lng b/interface/web/admin/lib/lang/de_software_package.lng deleted file mode 100644 index 13b3d996c3..0000000000 --- a/interface/web/admin/lib/lang/de_software_package.lng +++ /dev/null @@ -1,6 +0,0 @@ - diff --git a/interface/web/admin/lib/lang/de_software_package_install.lng b/interface/web/admin/lib/lang/de_software_package_install.lng deleted file mode 100644 index 1ef69d13d3..0000000000 --- a/interface/web/admin/lib/lang/de_software_package_install.lng +++ /dev/null @@ -1,6 +0,0 @@ - diff --git a/interface/web/admin/lib/lang/de_software_package_list.lng b/interface/web/admin/lib/lang/de_software_package_list.lng deleted file mode 100644 index 75b7504390..0000000000 --- a/interface/web/admin/lib/lang/de_software_package_list.lng +++ /dev/null @@ -1,13 +0,0 @@ - diff --git a/interface/web/admin/lib/lang/de_software_repo.lng b/interface/web/admin/lib/lang/de_software_repo.lng deleted file mode 100644 index 242611cd08..0000000000 --- a/interface/web/admin/lib/lang/de_software_repo.lng +++ /dev/null @@ -1,8 +0,0 @@ - diff --git a/interface/web/admin/lib/lang/de_software_repo_list.lng b/interface/web/admin/lib/lang/de_software_repo_list.lng deleted file mode 100644 index db6f49fd4e..0000000000 --- a/interface/web/admin/lib/lang/de_software_repo_list.lng +++ /dev/null @@ -1,6 +0,0 @@ - diff --git a/interface/web/admin/lib/lang/de_software_update_list.lng b/interface/web/admin/lib/lang/de_software_update_list.lng deleted file mode 100644 index cf31e88154..0000000000 --- a/interface/web/admin/lib/lang/de_software_update_list.lng +++ /dev/null @@ -1,9 +0,0 @@ - diff --git a/interface/web/admin/lib/lang/dk_software_package.lng b/interface/web/admin/lib/lang/dk_software_package.lng deleted file mode 100644 index 86f45dc91e..0000000000 --- a/interface/web/admin/lib/lang/dk_software_package.lng +++ /dev/null @@ -1,6 +0,0 @@ - diff --git a/interface/web/admin/lib/lang/dk_software_package_install.lng b/interface/web/admin/lib/lang/dk_software_package_install.lng deleted file mode 100644 index fd9211652c..0000000000 --- a/interface/web/admin/lib/lang/dk_software_package_install.lng +++ /dev/null @@ -1,6 +0,0 @@ - diff --git a/interface/web/admin/lib/lang/dk_software_package_list.lng b/interface/web/admin/lib/lang/dk_software_package_list.lng deleted file mode 100644 index 3fb5399eae..0000000000 --- a/interface/web/admin/lib/lang/dk_software_package_list.lng +++ /dev/null @@ -1,13 +0,0 @@ - diff --git a/interface/web/admin/lib/lang/dk_software_repo.lng b/interface/web/admin/lib/lang/dk_software_repo.lng deleted file mode 100644 index 2c506cdc6b..0000000000 --- a/interface/web/admin/lib/lang/dk_software_repo.lng +++ /dev/null @@ -1,8 +0,0 @@ - diff --git a/interface/web/admin/lib/lang/dk_software_repo_list.lng b/interface/web/admin/lib/lang/dk_software_repo_list.lng deleted file mode 100644 index aa33919cbd..0000000000 --- a/interface/web/admin/lib/lang/dk_software_repo_list.lng +++ /dev/null @@ -1,6 +0,0 @@ - diff --git a/interface/web/admin/lib/lang/dk_software_update_list.lng b/interface/web/admin/lib/lang/dk_software_update_list.lng deleted file mode 100644 index 8a8e8686af..0000000000 --- a/interface/web/admin/lib/lang/dk_software_update_list.lng +++ /dev/null @@ -1,9 +0,0 @@ - diff --git a/interface/web/admin/lib/lang/el_software_package.lng b/interface/web/admin/lib/lang/el_software_package.lng deleted file mode 100644 index faffe38217..0000000000 --- a/interface/web/admin/lib/lang/el_software_package.lng +++ /dev/null @@ -1,6 +0,0 @@ - diff --git a/interface/web/admin/lib/lang/el_software_package_install.lng b/interface/web/admin/lib/lang/el_software_package_install.lng deleted file mode 100644 index 5e3d0fd402..0000000000 --- a/interface/web/admin/lib/lang/el_software_package_install.lng +++ /dev/null @@ -1,6 +0,0 @@ - diff --git a/interface/web/admin/lib/lang/el_software_package_list.lng b/interface/web/admin/lib/lang/el_software_package_list.lng deleted file mode 100644 index 1553ea1cea..0000000000 --- a/interface/web/admin/lib/lang/el_software_package_list.lng +++ /dev/null @@ -1,13 +0,0 @@ - diff --git a/interface/web/admin/lib/lang/el_software_repo.lng b/interface/web/admin/lib/lang/el_software_repo.lng deleted file mode 100644 index 3b12d3fd87..0000000000 --- a/interface/web/admin/lib/lang/el_software_repo.lng +++ /dev/null @@ -1,8 +0,0 @@ - diff --git a/interface/web/admin/lib/lang/el_software_repo_list.lng b/interface/web/admin/lib/lang/el_software_repo_list.lng deleted file mode 100644 index deb896a719..0000000000 --- a/interface/web/admin/lib/lang/el_software_repo_list.lng +++ /dev/null @@ -1,6 +0,0 @@ - diff --git a/interface/web/admin/lib/lang/el_software_update_list.lng b/interface/web/admin/lib/lang/el_software_update_list.lng deleted file mode 100644 index 42100d0c89..0000000000 --- a/interface/web/admin/lib/lang/el_software_update_list.lng +++ /dev/null @@ -1,9 +0,0 @@ - diff --git a/interface/web/admin/lib/lang/en_software_package.lng b/interface/web/admin/lib/lang/en_software_package.lng deleted file mode 100644 index 5850719890..0000000000 --- a/interface/web/admin/lib/lang/en_software_package.lng +++ /dev/null @@ -1,6 +0,0 @@ - \ No newline at end of file diff --git a/interface/web/admin/lib/lang/en_software_package_install.lng b/interface/web/admin/lib/lang/en_software_package_install.lng deleted file mode 100644 index d6ec373abb..0000000000 --- a/interface/web/admin/lib/lang/en_software_package_install.lng +++ /dev/null @@ -1,6 +0,0 @@ - \ No newline at end of file diff --git a/interface/web/admin/lib/lang/en_software_package_list.lng b/interface/web/admin/lib/lang/en_software_package_list.lng deleted file mode 100644 index 2909d8376e..0000000000 --- a/interface/web/admin/lib/lang/en_software_package_list.lng +++ /dev/null @@ -1,13 +0,0 @@ - diff --git a/interface/web/admin/lib/lang/en_software_repo.lng b/interface/web/admin/lib/lang/en_software_repo.lng deleted file mode 100644 index 38c163507e..0000000000 --- a/interface/web/admin/lib/lang/en_software_repo.lng +++ /dev/null @@ -1,8 +0,0 @@ - \ No newline at end of file diff --git a/interface/web/admin/lib/lang/en_software_repo_list.lng b/interface/web/admin/lib/lang/en_software_repo_list.lng deleted file mode 100644 index 15b16e2d5b..0000000000 --- a/interface/web/admin/lib/lang/en_software_repo_list.lng +++ /dev/null @@ -1,6 +0,0 @@ - \ No newline at end of file diff --git a/interface/web/admin/lib/lang/en_software_update_list.lng b/interface/web/admin/lib/lang/en_software_update_list.lng deleted file mode 100644 index fe7639125c..0000000000 --- a/interface/web/admin/lib/lang/en_software_update_list.lng +++ /dev/null @@ -1,9 +0,0 @@ - diff --git a/interface/web/admin/lib/lang/es_software_package.lng b/interface/web/admin/lib/lang/es_software_package.lng deleted file mode 100644 index af80e4a479..0000000000 --- a/interface/web/admin/lib/lang/es_software_package.lng +++ /dev/null @@ -1,6 +0,0 @@ - diff --git a/interface/web/admin/lib/lang/es_software_package_install.lng b/interface/web/admin/lib/lang/es_software_package_install.lng deleted file mode 100644 index 838af344ec..0000000000 --- a/interface/web/admin/lib/lang/es_software_package_install.lng +++ /dev/null @@ -1,6 +0,0 @@ - diff --git a/interface/web/admin/lib/lang/es_software_package_list.lng b/interface/web/admin/lib/lang/es_software_package_list.lng deleted file mode 100644 index c1837c7a82..0000000000 --- a/interface/web/admin/lib/lang/es_software_package_list.lng +++ /dev/null @@ -1,13 +0,0 @@ - diff --git a/interface/web/admin/lib/lang/es_software_repo.lng b/interface/web/admin/lib/lang/es_software_repo.lng deleted file mode 100644 index 26382bd503..0000000000 --- a/interface/web/admin/lib/lang/es_software_repo.lng +++ /dev/null @@ -1,8 +0,0 @@ - diff --git a/interface/web/admin/lib/lang/es_software_repo_list.lng b/interface/web/admin/lib/lang/es_software_repo_list.lng deleted file mode 100644 index f6a624bd7d..0000000000 --- a/interface/web/admin/lib/lang/es_software_repo_list.lng +++ /dev/null @@ -1,6 +0,0 @@ - diff --git a/interface/web/admin/lib/lang/es_software_update_list.lng b/interface/web/admin/lib/lang/es_software_update_list.lng deleted file mode 100644 index 827c60e299..0000000000 --- a/interface/web/admin/lib/lang/es_software_update_list.lng +++ /dev/null @@ -1,9 +0,0 @@ - diff --git a/interface/web/admin/lib/lang/fi_software_package.lng b/interface/web/admin/lib/lang/fi_software_package.lng deleted file mode 100644 index faffe38217..0000000000 --- a/interface/web/admin/lib/lang/fi_software_package.lng +++ /dev/null @@ -1,6 +0,0 @@ - diff --git a/interface/web/admin/lib/lang/fi_software_package_install.lng b/interface/web/admin/lib/lang/fi_software_package_install.lng deleted file mode 100644 index 5c8b756434..0000000000 --- a/interface/web/admin/lib/lang/fi_software_package_install.lng +++ /dev/null @@ -1,6 +0,0 @@ - diff --git a/interface/web/admin/lib/lang/fi_software_package_list.lng b/interface/web/admin/lib/lang/fi_software_package_list.lng deleted file mode 100644 index 87a9e193b5..0000000000 --- a/interface/web/admin/lib/lang/fi_software_package_list.lng +++ /dev/null @@ -1,13 +0,0 @@ - diff --git a/interface/web/admin/lib/lang/fi_software_repo.lng b/interface/web/admin/lib/lang/fi_software_repo.lng deleted file mode 100644 index f875f428b6..0000000000 --- a/interface/web/admin/lib/lang/fi_software_repo.lng +++ /dev/null @@ -1,8 +0,0 @@ - diff --git a/interface/web/admin/lib/lang/fi_software_repo_list.lng b/interface/web/admin/lib/lang/fi_software_repo_list.lng deleted file mode 100644 index bde844c99f..0000000000 --- a/interface/web/admin/lib/lang/fi_software_repo_list.lng +++ /dev/null @@ -1,6 +0,0 @@ - diff --git a/interface/web/admin/lib/lang/fi_software_update_list.lng b/interface/web/admin/lib/lang/fi_software_update_list.lng deleted file mode 100644 index 7871958353..0000000000 --- a/interface/web/admin/lib/lang/fi_software_update_list.lng +++ /dev/null @@ -1,9 +0,0 @@ - diff --git a/interface/web/admin/lib/lang/fr_software_package.lng b/interface/web/admin/lib/lang/fr_software_package.lng deleted file mode 100644 index faffe38217..0000000000 --- a/interface/web/admin/lib/lang/fr_software_package.lng +++ /dev/null @@ -1,6 +0,0 @@ - diff --git a/interface/web/admin/lib/lang/fr_software_package_install.lng b/interface/web/admin/lib/lang/fr_software_package_install.lng deleted file mode 100644 index 39f643d3e6..0000000000 --- a/interface/web/admin/lib/lang/fr_software_package_install.lng +++ /dev/null @@ -1,6 +0,0 @@ - diff --git a/interface/web/admin/lib/lang/fr_software_package_list.lng b/interface/web/admin/lib/lang/fr_software_package_list.lng deleted file mode 100644 index 405b9e296f..0000000000 --- a/interface/web/admin/lib/lang/fr_software_package_list.lng +++ /dev/null @@ -1,13 +0,0 @@ - diff --git a/interface/web/admin/lib/lang/fr_software_repo.lng b/interface/web/admin/lib/lang/fr_software_repo.lng deleted file mode 100644 index f65c955d52..0000000000 --- a/interface/web/admin/lib/lang/fr_software_repo.lng +++ /dev/null @@ -1,8 +0,0 @@ - diff --git a/interface/web/admin/lib/lang/fr_software_repo_list.lng b/interface/web/admin/lib/lang/fr_software_repo_list.lng deleted file mode 100644 index 56749896bb..0000000000 --- a/interface/web/admin/lib/lang/fr_software_repo_list.lng +++ /dev/null @@ -1,6 +0,0 @@ - diff --git a/interface/web/admin/lib/lang/fr_software_update_list.lng b/interface/web/admin/lib/lang/fr_software_update_list.lng deleted file mode 100644 index 8fb67a0310..0000000000 --- a/interface/web/admin/lib/lang/fr_software_update_list.lng +++ /dev/null @@ -1,9 +0,0 @@ - diff --git a/interface/web/admin/lib/lang/hr_software_package.lng b/interface/web/admin/lib/lang/hr_software_package.lng deleted file mode 100644 index faffe38217..0000000000 --- a/interface/web/admin/lib/lang/hr_software_package.lng +++ /dev/null @@ -1,6 +0,0 @@ - diff --git a/interface/web/admin/lib/lang/hr_software_package_install.lng b/interface/web/admin/lib/lang/hr_software_package_install.lng deleted file mode 100644 index 22d7e0ce7a..0000000000 --- a/interface/web/admin/lib/lang/hr_software_package_install.lng +++ /dev/null @@ -1,6 +0,0 @@ - diff --git a/interface/web/admin/lib/lang/hr_software_package_list.lng b/interface/web/admin/lib/lang/hr_software_package_list.lng deleted file mode 100644 index 3722c5cff4..0000000000 --- a/interface/web/admin/lib/lang/hr_software_package_list.lng +++ /dev/null @@ -1,13 +0,0 @@ - diff --git a/interface/web/admin/lib/lang/hr_software_repo.lng b/interface/web/admin/lib/lang/hr_software_repo.lng deleted file mode 100644 index bbfb2e2db2..0000000000 --- a/interface/web/admin/lib/lang/hr_software_repo.lng +++ /dev/null @@ -1,8 +0,0 @@ - diff --git a/interface/web/admin/lib/lang/hr_software_repo_list.lng b/interface/web/admin/lib/lang/hr_software_repo_list.lng deleted file mode 100644 index b79045bd76..0000000000 --- a/interface/web/admin/lib/lang/hr_software_repo_list.lng +++ /dev/null @@ -1,6 +0,0 @@ - diff --git a/interface/web/admin/lib/lang/hr_software_update_list.lng b/interface/web/admin/lib/lang/hr_software_update_list.lng deleted file mode 100644 index 2250a186a3..0000000000 --- a/interface/web/admin/lib/lang/hr_software_update_list.lng +++ /dev/null @@ -1,9 +0,0 @@ - diff --git a/interface/web/admin/lib/lang/hu_software_package.lng b/interface/web/admin/lib/lang/hu_software_package.lng deleted file mode 100644 index faffe38217..0000000000 --- a/interface/web/admin/lib/lang/hu_software_package.lng +++ /dev/null @@ -1,6 +0,0 @@ - diff --git a/interface/web/admin/lib/lang/hu_software_package_install.lng b/interface/web/admin/lib/lang/hu_software_package_install.lng deleted file mode 100644 index 6dc8be3f89..0000000000 --- a/interface/web/admin/lib/lang/hu_software_package_install.lng +++ /dev/null @@ -1,6 +0,0 @@ - diff --git a/interface/web/admin/lib/lang/hu_software_package_list.lng b/interface/web/admin/lib/lang/hu_software_package_list.lng deleted file mode 100644 index 430583ce8a..0000000000 --- a/interface/web/admin/lib/lang/hu_software_package_list.lng +++ /dev/null @@ -1,13 +0,0 @@ - diff --git a/interface/web/admin/lib/lang/hu_software_repo.lng b/interface/web/admin/lib/lang/hu_software_repo.lng deleted file mode 100644 index 3c578e3694..0000000000 --- a/interface/web/admin/lib/lang/hu_software_repo.lng +++ /dev/null @@ -1,8 +0,0 @@ - diff --git a/interface/web/admin/lib/lang/hu_software_repo_list.lng b/interface/web/admin/lib/lang/hu_software_repo_list.lng deleted file mode 100644 index f5e7aabcb2..0000000000 --- a/interface/web/admin/lib/lang/hu_software_repo_list.lng +++ /dev/null @@ -1,6 +0,0 @@ - diff --git a/interface/web/admin/lib/lang/hu_software_update_list.lng b/interface/web/admin/lib/lang/hu_software_update_list.lng deleted file mode 100644 index c2edc83217..0000000000 --- a/interface/web/admin/lib/lang/hu_software_update_list.lng +++ /dev/null @@ -1,9 +0,0 @@ - diff --git a/interface/web/admin/lib/lang/id_software_package.lng b/interface/web/admin/lib/lang/id_software_package.lng deleted file mode 100644 index faffe38217..0000000000 --- a/interface/web/admin/lib/lang/id_software_package.lng +++ /dev/null @@ -1,6 +0,0 @@ - diff --git a/interface/web/admin/lib/lang/id_software_package_install.lng b/interface/web/admin/lib/lang/id_software_package_install.lng deleted file mode 100644 index 9e966893ca..0000000000 --- a/interface/web/admin/lib/lang/id_software_package_install.lng +++ /dev/null @@ -1,6 +0,0 @@ - diff --git a/interface/web/admin/lib/lang/id_software_package_list.lng b/interface/web/admin/lib/lang/id_software_package_list.lng deleted file mode 100644 index 02642be6e2..0000000000 --- a/interface/web/admin/lib/lang/id_software_package_list.lng +++ /dev/null @@ -1,13 +0,0 @@ - diff --git a/interface/web/admin/lib/lang/id_software_repo.lng b/interface/web/admin/lib/lang/id_software_repo.lng deleted file mode 100644 index 1c3b0305b4..0000000000 --- a/interface/web/admin/lib/lang/id_software_repo.lng +++ /dev/null @@ -1,8 +0,0 @@ - diff --git a/interface/web/admin/lib/lang/id_software_repo_list.lng b/interface/web/admin/lib/lang/id_software_repo_list.lng deleted file mode 100644 index 63444907f3..0000000000 --- a/interface/web/admin/lib/lang/id_software_repo_list.lng +++ /dev/null @@ -1,6 +0,0 @@ - diff --git a/interface/web/admin/lib/lang/id_software_update_list.lng b/interface/web/admin/lib/lang/id_software_update_list.lng deleted file mode 100644 index f789a0e72c..0000000000 --- a/interface/web/admin/lib/lang/id_software_update_list.lng +++ /dev/null @@ -1,9 +0,0 @@ - diff --git a/interface/web/admin/lib/lang/it_software_package.lng b/interface/web/admin/lib/lang/it_software_package.lng deleted file mode 100644 index d2e123cf85..0000000000 --- a/interface/web/admin/lib/lang/it_software_package.lng +++ /dev/null @@ -1,6 +0,0 @@ - diff --git a/interface/web/admin/lib/lang/it_software_package_install.lng b/interface/web/admin/lib/lang/it_software_package_install.lng deleted file mode 100644 index 1e210d5894..0000000000 --- a/interface/web/admin/lib/lang/it_software_package_install.lng +++ /dev/null @@ -1,6 +0,0 @@ - diff --git a/interface/web/admin/lib/lang/it_software_package_list.lng b/interface/web/admin/lib/lang/it_software_package_list.lng deleted file mode 100644 index 5ab82417de..0000000000 --- a/interface/web/admin/lib/lang/it_software_package_list.lng +++ /dev/null @@ -1,13 +0,0 @@ - diff --git a/interface/web/admin/lib/lang/it_software_repo.lng b/interface/web/admin/lib/lang/it_software_repo.lng deleted file mode 100644 index 76b0182697..0000000000 --- a/interface/web/admin/lib/lang/it_software_repo.lng +++ /dev/null @@ -1,8 +0,0 @@ - diff --git a/interface/web/admin/lib/lang/it_software_repo_list.lng b/interface/web/admin/lib/lang/it_software_repo_list.lng deleted file mode 100644 index 4db52118ec..0000000000 --- a/interface/web/admin/lib/lang/it_software_repo_list.lng +++ /dev/null @@ -1,6 +0,0 @@ - diff --git a/interface/web/admin/lib/lang/it_software_update_list.lng b/interface/web/admin/lib/lang/it_software_update_list.lng deleted file mode 100644 index cc264b84ec..0000000000 --- a/interface/web/admin/lib/lang/it_software_update_list.lng +++ /dev/null @@ -1,9 +0,0 @@ - diff --git a/interface/web/admin/lib/lang/ja_software_package.lng b/interface/web/admin/lib/lang/ja_software_package.lng deleted file mode 100644 index faffe38217..0000000000 --- a/interface/web/admin/lib/lang/ja_software_package.lng +++ /dev/null @@ -1,6 +0,0 @@ - diff --git a/interface/web/admin/lib/lang/ja_software_package_install.lng b/interface/web/admin/lib/lang/ja_software_package_install.lng deleted file mode 100644 index 5c8b756434..0000000000 --- a/interface/web/admin/lib/lang/ja_software_package_install.lng +++ /dev/null @@ -1,6 +0,0 @@ - diff --git a/interface/web/admin/lib/lang/ja_software_package_list.lng b/interface/web/admin/lib/lang/ja_software_package_list.lng deleted file mode 100644 index e5352e91e7..0000000000 --- a/interface/web/admin/lib/lang/ja_software_package_list.lng +++ /dev/null @@ -1,13 +0,0 @@ - diff --git a/interface/web/admin/lib/lang/ja_software_repo.lng b/interface/web/admin/lib/lang/ja_software_repo.lng deleted file mode 100644 index c95399a54e..0000000000 --- a/interface/web/admin/lib/lang/ja_software_repo.lng +++ /dev/null @@ -1,8 +0,0 @@ - diff --git a/interface/web/admin/lib/lang/ja_software_repo_list.lng b/interface/web/admin/lib/lang/ja_software_repo_list.lng deleted file mode 100644 index a7d06d8fde..0000000000 --- a/interface/web/admin/lib/lang/ja_software_repo_list.lng +++ /dev/null @@ -1,6 +0,0 @@ - diff --git a/interface/web/admin/lib/lang/ja_software_update_list.lng b/interface/web/admin/lib/lang/ja_software_update_list.lng deleted file mode 100644 index f0ecf5711b..0000000000 --- a/interface/web/admin/lib/lang/ja_software_update_list.lng +++ /dev/null @@ -1,9 +0,0 @@ - diff --git a/interface/web/admin/lib/lang/nl_software_package.lng b/interface/web/admin/lib/lang/nl_software_package.lng deleted file mode 100644 index faffe38217..0000000000 --- a/interface/web/admin/lib/lang/nl_software_package.lng +++ /dev/null @@ -1,6 +0,0 @@ - diff --git a/interface/web/admin/lib/lang/nl_software_package_install.lng b/interface/web/admin/lib/lang/nl_software_package_install.lng deleted file mode 100644 index 87150b8cf1..0000000000 --- a/interface/web/admin/lib/lang/nl_software_package_install.lng +++ /dev/null @@ -1,6 +0,0 @@ - diff --git a/interface/web/admin/lib/lang/nl_software_package_list.lng b/interface/web/admin/lib/lang/nl_software_package_list.lng deleted file mode 100644 index 44aaa563ad..0000000000 --- a/interface/web/admin/lib/lang/nl_software_package_list.lng +++ /dev/null @@ -1,13 +0,0 @@ - diff --git a/interface/web/admin/lib/lang/nl_software_repo.lng b/interface/web/admin/lib/lang/nl_software_repo.lng deleted file mode 100644 index 665c4197a2..0000000000 --- a/interface/web/admin/lib/lang/nl_software_repo.lng +++ /dev/null @@ -1,8 +0,0 @@ - diff --git a/interface/web/admin/lib/lang/nl_software_repo_list.lng b/interface/web/admin/lib/lang/nl_software_repo_list.lng deleted file mode 100644 index fc05fc269b..0000000000 --- a/interface/web/admin/lib/lang/nl_software_repo_list.lng +++ /dev/null @@ -1,6 +0,0 @@ - diff --git a/interface/web/admin/lib/lang/nl_software_update_list.lng b/interface/web/admin/lib/lang/nl_software_update_list.lng deleted file mode 100644 index 0d05c85594..0000000000 --- a/interface/web/admin/lib/lang/nl_software_update_list.lng +++ /dev/null @@ -1,9 +0,0 @@ - diff --git a/interface/web/admin/lib/lang/pl_software_package.lng b/interface/web/admin/lib/lang/pl_software_package.lng deleted file mode 100644 index faffe38217..0000000000 --- a/interface/web/admin/lib/lang/pl_software_package.lng +++ /dev/null @@ -1,6 +0,0 @@ - diff --git a/interface/web/admin/lib/lang/pl_software_package_install.lng b/interface/web/admin/lib/lang/pl_software_package_install.lng deleted file mode 100644 index fd2f2930dd..0000000000 --- a/interface/web/admin/lib/lang/pl_software_package_install.lng +++ /dev/null @@ -1,6 +0,0 @@ - diff --git a/interface/web/admin/lib/lang/pl_software_package_list.lng b/interface/web/admin/lib/lang/pl_software_package_list.lng deleted file mode 100644 index cb47abc46d..0000000000 --- a/interface/web/admin/lib/lang/pl_software_package_list.lng +++ /dev/null @@ -1,13 +0,0 @@ - diff --git a/interface/web/admin/lib/lang/pl_software_repo.lng b/interface/web/admin/lib/lang/pl_software_repo.lng deleted file mode 100644 index 1cc3dbb61c..0000000000 --- a/interface/web/admin/lib/lang/pl_software_repo.lng +++ /dev/null @@ -1,8 +0,0 @@ - diff --git a/interface/web/admin/lib/lang/pl_software_repo_list.lng b/interface/web/admin/lib/lang/pl_software_repo_list.lng deleted file mode 100644 index 7ca6af9f9f..0000000000 --- a/interface/web/admin/lib/lang/pl_software_repo_list.lng +++ /dev/null @@ -1,6 +0,0 @@ - diff --git a/interface/web/admin/lib/lang/pl_software_update_list.lng b/interface/web/admin/lib/lang/pl_software_update_list.lng deleted file mode 100644 index aa49fba4e7..0000000000 --- a/interface/web/admin/lib/lang/pl_software_update_list.lng +++ /dev/null @@ -1,9 +0,0 @@ - diff --git a/interface/web/admin/lib/lang/pt_software_package.lng b/interface/web/admin/lib/lang/pt_software_package.lng deleted file mode 100644 index faffe38217..0000000000 --- a/interface/web/admin/lib/lang/pt_software_package.lng +++ /dev/null @@ -1,6 +0,0 @@ - diff --git a/interface/web/admin/lib/lang/pt_software_package_install.lng b/interface/web/admin/lib/lang/pt_software_package_install.lng deleted file mode 100644 index 5c8b756434..0000000000 --- a/interface/web/admin/lib/lang/pt_software_package_install.lng +++ /dev/null @@ -1,6 +0,0 @@ - diff --git a/interface/web/admin/lib/lang/pt_software_package_list.lng b/interface/web/admin/lib/lang/pt_software_package_list.lng deleted file mode 100644 index 1ec77bdd15..0000000000 --- a/interface/web/admin/lib/lang/pt_software_package_list.lng +++ /dev/null @@ -1,13 +0,0 @@ - diff --git a/interface/web/admin/lib/lang/pt_software_repo.lng b/interface/web/admin/lib/lang/pt_software_repo.lng deleted file mode 100644 index 436758e687..0000000000 --- a/interface/web/admin/lib/lang/pt_software_repo.lng +++ /dev/null @@ -1,8 +0,0 @@ - diff --git a/interface/web/admin/lib/lang/pt_software_repo_list.lng b/interface/web/admin/lib/lang/pt_software_repo_list.lng deleted file mode 100644 index 5afba6d5e3..0000000000 --- a/interface/web/admin/lib/lang/pt_software_repo_list.lng +++ /dev/null @@ -1,6 +0,0 @@ - diff --git a/interface/web/admin/lib/lang/pt_software_update_list.lng b/interface/web/admin/lib/lang/pt_software_update_list.lng deleted file mode 100644 index 12fd9e2fa9..0000000000 --- a/interface/web/admin/lib/lang/pt_software_update_list.lng +++ /dev/null @@ -1,9 +0,0 @@ - diff --git a/interface/web/admin/lib/lang/ro_software_package.lng b/interface/web/admin/lib/lang/ro_software_package.lng deleted file mode 100644 index faffe38217..0000000000 --- a/interface/web/admin/lib/lang/ro_software_package.lng +++ /dev/null @@ -1,6 +0,0 @@ - diff --git a/interface/web/admin/lib/lang/ro_software_package_install.lng b/interface/web/admin/lib/lang/ro_software_package_install.lng deleted file mode 100644 index 5c8b756434..0000000000 --- a/interface/web/admin/lib/lang/ro_software_package_install.lng +++ /dev/null @@ -1,6 +0,0 @@ - diff --git a/interface/web/admin/lib/lang/ro_software_package_list.lng b/interface/web/admin/lib/lang/ro_software_package_list.lng deleted file mode 100644 index 4a8dcbcbf0..0000000000 --- a/interface/web/admin/lib/lang/ro_software_package_list.lng +++ /dev/null @@ -1,13 +0,0 @@ - diff --git a/interface/web/admin/lib/lang/ro_software_repo.lng b/interface/web/admin/lib/lang/ro_software_repo.lng deleted file mode 100644 index f2cbbb2c25..0000000000 --- a/interface/web/admin/lib/lang/ro_software_repo.lng +++ /dev/null @@ -1,8 +0,0 @@ - diff --git a/interface/web/admin/lib/lang/ro_software_repo_list.lng b/interface/web/admin/lib/lang/ro_software_repo_list.lng deleted file mode 100644 index b7a219ffa8..0000000000 --- a/interface/web/admin/lib/lang/ro_software_repo_list.lng +++ /dev/null @@ -1,6 +0,0 @@ - diff --git a/interface/web/admin/lib/lang/ro_software_update_list.lng b/interface/web/admin/lib/lang/ro_software_update_list.lng deleted file mode 100644 index 1e85d6de5f..0000000000 --- a/interface/web/admin/lib/lang/ro_software_update_list.lng +++ /dev/null @@ -1,9 +0,0 @@ - diff --git a/interface/web/admin/lib/lang/ru_software_package.lng b/interface/web/admin/lib/lang/ru_software_package.lng deleted file mode 100644 index 490184dd92..0000000000 --- a/interface/web/admin/lib/lang/ru_software_package.lng +++ /dev/null @@ -1,6 +0,0 @@ - diff --git a/interface/web/admin/lib/lang/ru_software_package_install.lng b/interface/web/admin/lib/lang/ru_software_package_install.lng deleted file mode 100644 index 21efc7d562..0000000000 --- a/interface/web/admin/lib/lang/ru_software_package_install.lng +++ /dev/null @@ -1,6 +0,0 @@ - diff --git a/interface/web/admin/lib/lang/ru_software_package_list.lng b/interface/web/admin/lib/lang/ru_software_package_list.lng deleted file mode 100644 index 791cfa33ae..0000000000 --- a/interface/web/admin/lib/lang/ru_software_package_list.lng +++ /dev/null @@ -1,13 +0,0 @@ - diff --git a/interface/web/admin/lib/lang/ru_software_repo.lng b/interface/web/admin/lib/lang/ru_software_repo.lng deleted file mode 100644 index 5aec8763c1..0000000000 --- a/interface/web/admin/lib/lang/ru_software_repo.lng +++ /dev/null @@ -1,8 +0,0 @@ - diff --git a/interface/web/admin/lib/lang/ru_software_repo_list.lng b/interface/web/admin/lib/lang/ru_software_repo_list.lng deleted file mode 100644 index ed307454ae..0000000000 --- a/interface/web/admin/lib/lang/ru_software_repo_list.lng +++ /dev/null @@ -1,6 +0,0 @@ - diff --git a/interface/web/admin/lib/lang/ru_software_update_list.lng b/interface/web/admin/lib/lang/ru_software_update_list.lng deleted file mode 100644 index dde28811d5..0000000000 --- a/interface/web/admin/lib/lang/ru_software_update_list.lng +++ /dev/null @@ -1,9 +0,0 @@ - diff --git a/interface/web/admin/lib/lang/se_software_package.lng b/interface/web/admin/lib/lang/se_software_package.lng deleted file mode 100644 index 086902db0c..0000000000 --- a/interface/web/admin/lib/lang/se_software_package.lng +++ /dev/null @@ -1,6 +0,0 @@ - diff --git a/interface/web/admin/lib/lang/se_software_package_install.lng b/interface/web/admin/lib/lang/se_software_package_install.lng deleted file mode 100644 index 434fc4bc98..0000000000 --- a/interface/web/admin/lib/lang/se_software_package_install.lng +++ /dev/null @@ -1,6 +0,0 @@ - diff --git a/interface/web/admin/lib/lang/se_software_package_list.lng b/interface/web/admin/lib/lang/se_software_package_list.lng deleted file mode 100644 index c0222e1ba4..0000000000 --- a/interface/web/admin/lib/lang/se_software_package_list.lng +++ /dev/null @@ -1,13 +0,0 @@ - diff --git a/interface/web/admin/lib/lang/se_software_repo.lng b/interface/web/admin/lib/lang/se_software_repo.lng deleted file mode 100644 index a0e0de6822..0000000000 --- a/interface/web/admin/lib/lang/se_software_repo.lng +++ /dev/null @@ -1,8 +0,0 @@ - diff --git a/interface/web/admin/lib/lang/se_software_repo_list.lng b/interface/web/admin/lib/lang/se_software_repo_list.lng deleted file mode 100644 index b7a219ffa8..0000000000 --- a/interface/web/admin/lib/lang/se_software_repo_list.lng +++ /dev/null @@ -1,6 +0,0 @@ - diff --git a/interface/web/admin/lib/lang/se_software_update_list.lng b/interface/web/admin/lib/lang/se_software_update_list.lng deleted file mode 100644 index 0cf7c0eddc..0000000000 --- a/interface/web/admin/lib/lang/se_software_update_list.lng +++ /dev/null @@ -1,9 +0,0 @@ - diff --git a/interface/web/admin/lib/lang/sk_software_package.lng b/interface/web/admin/lib/lang/sk_software_package.lng deleted file mode 100644 index faffe38217..0000000000 --- a/interface/web/admin/lib/lang/sk_software_package.lng +++ /dev/null @@ -1,6 +0,0 @@ - diff --git a/interface/web/admin/lib/lang/sk_software_package_install.lng b/interface/web/admin/lib/lang/sk_software_package_install.lng deleted file mode 100644 index 5c8b756434..0000000000 --- a/interface/web/admin/lib/lang/sk_software_package_install.lng +++ /dev/null @@ -1,6 +0,0 @@ - diff --git a/interface/web/admin/lib/lang/sk_software_package_list.lng b/interface/web/admin/lib/lang/sk_software_package_list.lng deleted file mode 100644 index 502a3a2237..0000000000 --- a/interface/web/admin/lib/lang/sk_software_package_list.lng +++ /dev/null @@ -1,13 +0,0 @@ - diff --git a/interface/web/admin/lib/lang/sk_software_repo.lng b/interface/web/admin/lib/lang/sk_software_repo.lng deleted file mode 100644 index 263614f50c..0000000000 --- a/interface/web/admin/lib/lang/sk_software_repo.lng +++ /dev/null @@ -1,8 +0,0 @@ - diff --git a/interface/web/admin/lib/lang/sk_software_repo_list.lng b/interface/web/admin/lib/lang/sk_software_repo_list.lng deleted file mode 100644 index c77d4a3846..0000000000 --- a/interface/web/admin/lib/lang/sk_software_repo_list.lng +++ /dev/null @@ -1,6 +0,0 @@ - diff --git a/interface/web/admin/lib/lang/sk_software_update_list.lng b/interface/web/admin/lib/lang/sk_software_update_list.lng deleted file mode 100644 index 9a04707c3e..0000000000 --- a/interface/web/admin/lib/lang/sk_software_update_list.lng +++ /dev/null @@ -1,9 +0,0 @@ - diff --git a/interface/web/admin/lib/lang/tr_software_package.lng b/interface/web/admin/lib/lang/tr_software_package.lng deleted file mode 100644 index addda60195..0000000000 --- a/interface/web/admin/lib/lang/tr_software_package.lng +++ /dev/null @@ -1,6 +0,0 @@ - diff --git a/interface/web/admin/lib/lang/tr_software_package_install.lng b/interface/web/admin/lib/lang/tr_software_package_install.lng deleted file mode 100644 index fe7dd26e73..0000000000 --- a/interface/web/admin/lib/lang/tr_software_package_install.lng +++ /dev/null @@ -1,6 +0,0 @@ - diff --git a/interface/web/admin/lib/lang/tr_software_package_list.lng b/interface/web/admin/lib/lang/tr_software_package_list.lng deleted file mode 100644 index 1838ff94cf..0000000000 --- a/interface/web/admin/lib/lang/tr_software_package_list.lng +++ /dev/null @@ -1,13 +0,0 @@ - diff --git a/interface/web/admin/lib/lang/tr_software_repo.lng b/interface/web/admin/lib/lang/tr_software_repo.lng deleted file mode 100644 index 13e113967f..0000000000 --- a/interface/web/admin/lib/lang/tr_software_repo.lng +++ /dev/null @@ -1,8 +0,0 @@ - diff --git a/interface/web/admin/lib/lang/tr_software_repo_list.lng b/interface/web/admin/lib/lang/tr_software_repo_list.lng deleted file mode 100644 index 5e2fdf5b92..0000000000 --- a/interface/web/admin/lib/lang/tr_software_repo_list.lng +++ /dev/null @@ -1,6 +0,0 @@ - diff --git a/interface/web/admin/lib/lang/tr_software_update_list.lng b/interface/web/admin/lib/lang/tr_software_update_list.lng deleted file mode 100644 index a462d90faa..0000000000 --- a/interface/web/admin/lib/lang/tr_software_update_list.lng +++ /dev/null @@ -1,9 +0,0 @@ - diff --git a/interface/web/admin/lib/module.conf.php b/interface/web/admin/lib/module.conf.php index 124656b7f3..59b2e1ffc1 100644 --- a/interface/web/admin/lib/module.conf.php +++ b/interface/web/admin/lib/module.conf.php @@ -92,30 +92,6 @@ $module['nav'][] = array( 'title' => 'Interface', 'items' => $items); -// cleanup -unset($items); - - -$items[] = array( 'title' => 'Repositories', - 'target' => 'content', - 'link' => 'admin/software_repo_list.php', - 'html_id' => 'software_repo_list'); - -$items[] = array( 'title' => 'Packages', - 'target' => 'content', - 'link' => 'admin/software_package_list.php', - 'html_id' => 'software_package_list'); - -$items[] = array( 'title' => 'Updates', - 'target' => 'content', - 'link' => 'admin/software_update_list.php', - 'html_id' => 'software_update_list'); - -$module['nav'][] = array( 'title' => 'Software', - 'open' => 1, - 'items' => $items); - - // cleanup unset($items); diff --git a/interface/web/admin/list/software_repo.list.php b/interface/web/admin/list/software_repo.list.php deleted file mode 100644 index 0e172ace99..0000000000 --- a/interface/web/admin/list/software_repo.list.php +++ /dev/null @@ -1,78 +0,0 @@ - "active", - 'datatype' => "VARCHAR", - 'formtype' => "SELECT", - 'op' => "=", - 'prefix' => "", - 'suffix' => "", - 'width' => "", - 'value' => array('y' => $app->lng('yes_txt'), 'n' => $app->lng('no_txt'))); - -$liste["item"][] = array( 'field' => "repo_name", - 'datatype' => "VARCHAR", - 'formtype' => "TEXT", - 'op' => "like", - 'prefix' => "%", - 'suffix' => "%", - 'width' => "", - 'value' => ""); - - -$liste["item"][] = array( 'field' => "repo_url", - 'datatype' => "VARCHAR", - 'formtype' => "TEXT", - 'op' => "like", - 'prefix' => "%", - 'suffix' => "%", - 'width' => "", - 'value' => ""); - -?> diff --git a/interface/web/admin/software_package_del.php b/interface/web/admin/software_package_del.php deleted file mode 100644 index e1387f39c4..0000000000 --- a/interface/web/admin/software_package_del.php +++ /dev/null @@ -1,57 +0,0 @@ -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) { - $app->db->datalogDelete('software_update_inst', 'software_update_inst_id', $software_update_inst_id); - //header('Location: admin/software_package_list.php'); - die('HEADER_REDIRECT: admin/software_package_list.php'); -} else { - die('Invalid ID'); -} - - - - - - -?> diff --git a/interface/web/admin/software_package_edit.php b/interface/web/admin/software_package_edit.php deleted file mode 100644 index 65555d3a35..0000000000 --- a/interface/web/admin/software_package_edit.php +++ /dev/null @@ -1,60 +0,0 @@ -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.'); - -// Loading classes -$app->uses('tpl,tform,tform_actions'); -$app->load('tform_actions'); - -class page_action extends tform_actions { - -} - -$page = new page_action; -$page->onLoad(); - -?> diff --git a/interface/web/admin/software_package_install.php b/interface/web/admin/software_package_install.php deleted file mode 100644 index 6a5326d51a..0000000000 --- a/interface/web/admin/software_package_install.php +++ /dev/null @@ -1,179 +0,0 @@ -auth->check_module_permissions('admin'); -$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']); - -$package = $app->db->queryOneRecord("SELECT * FROM software_package WHERE package_name = ?", $package_name); - -$install_key_verified = false; -$message_err = ''; -$message_ok = ''; - -//* verify the key -if($package['package_installable'] == 'key' && $install_key != '') { - - $repo = $app->db->queryOneRecord("SELECT * FROM software_repo WHERE software_repo_id = ?", $package['software_repo_id']); - - $client = new SoapClient(null, array('location' => $repo['repo_url'], - 'uri' => $repo['repo_url'])); - - $install_key_verified = $client->check_installable($package_name, $install_key, $repo['repo_username'], $repo['repo_password']); - - if($install_key_verified == false) { - //$install_key = ''; - $message_err = 'Verification of the key failed.'; - } else { - // Store the verified key into the database - $app->db->datalogUpdate('software_package', array("package_key" => $install_key), 'package_id', $package['package_id']); - } -} else { - $message_ok = 'Please enter the software key for the package.'; -} - -//* Install packages, if all requirements are fullfilled. -if($install_server_id > 0 && $package_name != '' && ($package['package_installable'] == 'yes' || $install_key_verified == true)) { - $sql = "SELECT software_update_id, package_name, update_title FROM software_update WHERE type = 'full' AND package_name = ? ORDER BY v1 DESC, v2 DESC, v3 DESC, v4 DESC LIMIT 0,1"; - $tmp = $app->db->queryOneRecord($sql, $package_name); - $software_update_id = $tmp['software_update_id']; - - //* if package requires a DB and there is no data for a db in config, then we create this data now - if($package['package_requires_db'] == 'mysql') { - $app->uses('ini_parser,getconf'); - - $package_config_array = array(); - if(trim($package['package_config']) != '') { - $package_config_array = $app->ini_parser->parse_ini_string(stripslashes($package['package_config'])); - } - - if(!isset($package_config_array['mysql'])) { - $package_config_array['mysql'] = array( 'database_name' => 'ispapp'.$package['package_id'], - 'database_user' => 'ispapp'.$package['package_id'], - 'database_password' => md5(mt_rand()), - 'database_host' => 'localhost'); - $package_config_str = $app->ini_parser->get_ini_string($package_config_array); - $package['package_config'] = $package_config_str; - $app->db->datalogUpdate('software_package', array("package_config" => $package_config_str), 'package_id', $package['package_id']); - } - } - - //* If the packages requires a remote user - if($package['package_remote_functions'] != '') { - - if(trim($package['package_config']) != '') { - $package_config_array = $app->ini_parser->parse_ini_string(stripslashes($package['package_config'])); - } - - if(!isset($package_config_array['remote_api'])) { - $remote_user = 'ispapp'.$package['package_id']; - $remote_password = md5(mt_rand()); - $remote_functions = $package['package_remote_functions']; - - $package_config_array['remote_api'] = array( - 'remote_hostname' => $_SERVER['HTTP_HOST'], - 'remote_user' => $remote_user, - 'remote_password' => $remote_password - ); - - $package_config_str = $app->ini_parser->get_ini_string($package_config_array); - $package['package_config'] = $package_config_str; - $remote_password_md5 = md5($remote_password); - $app->db->datalogUpdate('software_package', array("package_config" => $package_config_str), 'package_id', $package['package_id']); - - $sql = "INSERT INTO `remote_user` (`sys_userid`, `sys_groupid`, `sys_perm_user`, `sys_perm_group`, `sys_perm_other`, `remote_username`, `remote_password`, `remote_functions`) VALUES - (1, 1, 'riud', 'riud', '', ?, ?, ?)"; - $app->db->query($sql, $remote_user, $remote_password_md5, $remote_functions); - - } - - } - - //* Add the record to start the install process - $insert_data = array( - "package_name" => $package_name, - "server_id" => $install_server_id, - "software_update_id" => $software_update_id, - "status" => 'installing' - ); - $app->db->datalogInsert('software_update_inst', $insert_data, 'software_update_inst_id'); - $message_ok = 'Starting package installation '."".$app->lng('next').""; - -} - -if(count($_POST) > 2 && $install_key == '') { - $message_ok = 'Please enter the software key.'; -} - -//* Show key input form -if($package['package_installable'] == 'key' && !$install_key_verified) { - $insert_key = true; -} else { - $insert_key = false; -} - -// Loading the template -$app->uses('tpl'); -$app->tpl->newTemplate("form.tpl.htm"); -$app->tpl->setInclude('content_tpl', 'templates/software_package_install.htm'); - -$app->tpl->setVar('message_ok', $message_ok); -$app->tpl->setVar('message_err', $message_err); -$app->tpl->setVar('insert_key', $insert_key); -$app->tpl->setVar('install_key', $install_key); -$app->tpl->setVar('package_name', $package_name); -$app->tpl->setVar('server_id', $install_server_id); - - -include_once 'lib/lang/en_software_package_install.lng'; -$app->tpl->setVar($wb); - - -$app->tpl_defaults(); -$app->tpl->pparse(); - -?> diff --git a/interface/web/admin/software_package_list.php b/interface/web/admin/software_package_list.php deleted file mode 100644 index 8a21696c7f..0000000000 --- a/interface/web/admin/software_package_list.php +++ /dev/null @@ -1,200 +0,0 @@ -auth->check_module_permissions('admin'); - -//* This is only allowed for administrators -if(!$app->auth->is_admin()) die('only allowed for administrators.'); - -//* Get the latest packages from the repositorys and insert them in the local database -$packages_added = 0; -$repos = $app->db->queryAllRecords("SELECT software_repo_id, repo_url, repo_username, repo_password FROM software_repo WHERE active = 'y'"); -if(is_array($repos) && isset($_GET['action']) && $_GET['action'] == 'repoupdate' ) { - foreach($repos as $repo) { - $client = new SoapClient(null, array('location' => $repo['repo_url'], - 'uri' => $repo['repo_url'])); - - $packages = $client->get_packages($repo['repo_username'], $repo['repo_password']); - if(is_array($packages)) { - foreach($packages as $p) { - $package_name = $p['name']; - $tmp = $app->db->queryOneRecord("SELECT package_id FROM software_package WHERE package_name = ?", $package_name); - - $package_title = $p['title']; - $package_description = $p['description']; - $software_repo_id = $app->functions->intval($repo['software_repo_id']); - $package_type = $p['type']; - $package_installable = $p['installable']; - $package_requires_db = $p['requires_db']; - $package_remote_functions = $p['remote_functions']; - - if(empty($tmp['package_id'])) { - $insert_data = array( - "software_repo_id" => $software_repo_id, - "package_name" => $package_name, - "package_title" => $package_title, - "package_description" => $package_description, - "package_type" => $package_type, - "package_installable" => $package_installable, - "package_requires_db" => $package_requires_db, - "package_remote_functions" => $package_remote_functions - ); - $app->db->datalogInsert('software_package', $insert_data, 'package_id'); - $packages_added++; - } else { - $update_data = array( - "software_repo_id" => $software_repo_id, - "package_title" => $package_title, - "package_description" => $package_description, - "package_type" => $package_type, - "package_installable" => $package_installable, - "package_requires_db" => $package_requires_db, - "package_remote_functions" => $package_remote_functions - ); - //echo $update_data; - $app->db->datalogUpdate('software_package', $update_data, 'package_id', $tmp['package_id']); - } - } - } - - $packages = $app->db->queryAllRecords("SELECT software_package.package_name, v1, v2, v3, v4 FROM software_package LEFT JOIN software_update ON ( software_package.package_name = software_update.package_name ) GROUP BY package_name ORDER BY v1 DESC , v2 DESC , v3 DESC , v4 DESC"); - if(is_array($packages)) { - foreach($packages as $p) { - - $version = $p['v1'].'.'.$p['v2'].'.'.$p['v3'].'.'.$p['v4']; - $updates = $client->get_updates($p['package_name'], $version, $repo['repo_username'], $repo['repo_password']); - - if(is_array($updates)) { - foreach($updates as $u) { - - $version_array = explode('.', $u['version']); - $v1 = $app->functions->intval($version_array[0]); - $v2 = $app->functions->intval($version_array[1]); - $v3 = $app->functions->intval($version_array[2]); - $v4 = $app->functions->intval($version_array[3]); - - $package_name = $u['package_name']; - $software_repo_id = $app->functions->intval($repo['software_repo_id']); - $update_url = $u['url']; - $update_md5 = $u['md5']; - $update_dependencies = (isset($u['dependencies']))?$u['dependencies']:''; - $update_title = $u['title']; - $type = $u['type']; - - // Check that we do not have this update in the database yet - $sql = "SELECT * FROM software_update WHERE package_name = ? and v1 = ? and v2 = ? and v3 = ? and v4 = ?"; - $tmp = $app->db->queryOneRecord($sql, $package_name, $v1, $v2, $v3, $v4); - if(!isset($tmp['software_update_id'])) { - $insert_data = array( - "software_repo_id" => $software_repo_id, - "package_name" => $package_name, - "update_url" => $update_url, - "update_md5" => $update_md5, - "update_dependencies" => $update_dependencies, - "update_title" => $update_title, - "v1" => $v1, - "v2" => $v2, - "v3" => $v3, - "v4" => $v4, - "type" => $type - ); - $app->db->datalogInsert('software_update', $insert_data, 'software_update_id'); - } - - } - } - } - } - } -} - -// Show the list in the interface -// Loading the template -$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'); -if(is_array($packages) && count($packages) > 0) { - foreach($packages as $key => $p) { - $installed_txt = ''; - foreach($servers as $s) { - $inst = $app->db->queryOneRecord("SELECT * FROM software_update, software_update_inst WHERE software_update_inst.software_update_id = software_update.software_update_id AND software_update_inst.package_name = ? AND server_id = ?", $p["package_name"], $s["server_id"]); - $version = $inst['v1'].'.'.$inst['v2'].'.'.$inst['v3'].'.'.$inst['v4']; - - if($inst['status'] == 'installed') { - $installed_txt .= $s['server_name'].": ".$app->lng("Installed version $version")."
"; - } elseif ($inst['status'] == 'installing') { - $installed_txt .= $s['server_name'].": ".$app->lng("Installation in progress")."
"; - } elseif ($inst['status'] == 'failed') { - $installed_txt .= $s['server_name'].": ".$app->lng("Installation failed")."
"; - } elseif ($inst['status'] == 'deleting') { - $installed_txt .= $s['server_name'].": ".$app->lng("Deletion in progress")."
"; - } else { - 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
"; - } - } - } - $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 { - $app->tpl->setVar('has_packages', 0); -} - - - -$app->tpl->setLoop('records', $packages); - -$language = (isset($_SESSION['s']['language']))?$_SESSION['s']['language']:$conf['language']; -include_once 'lib/lang/'.$app->functions->check_language($language).'_software_package_list.lng'; -$app->tpl->setVar($wb); - - -$app->tpl_defaults(); -$app->tpl->pparse(); - - -?> diff --git a/interface/web/admin/software_repo_del.php b/interface/web/admin/software_repo_del.php deleted file mode 100644 index 630993717c..0000000000 --- a/interface/web/admin/software_repo_del.php +++ /dev/null @@ -1,53 +0,0 @@ -auth->check_module_permissions('admin'); -$app->auth->check_security_permissions('admin_allow_software_repo'); -if($conf['demo_mode'] == true) $app->error('This function is disabled in demo mode.'); - -$app->uses("tform_actions"); -$app->tform_actions->onDelete(); - -?> diff --git a/interface/web/admin/software_repo_edit.php b/interface/web/admin/software_repo_edit.php deleted file mode 100644 index 6d52da2b56..0000000000 --- a/interface/web/admin/software_repo_edit.php +++ /dev/null @@ -1,60 +0,0 @@ -auth->check_module_permissions('admin'); -$app->auth->check_security_permissions('admin_allow_software_repo'); -if($conf['demo_mode'] == true) $app->error('This function is disabled in demo mode.'); - -// Loading classes -$app->uses('tpl,tform,tform_actions'); -$app->load('tform_actions'); - -class page_action extends tform_actions { - -} - -$page = new page_action; -$page->onLoad(); - -?> diff --git a/interface/web/admin/software_repo_list.php b/interface/web/admin/software_repo_list.php deleted file mode 100644 index b8afc8f9bc..0000000000 --- a/interface/web/admin/software_repo_list.php +++ /dev/null @@ -1,52 +0,0 @@ -auth->check_module_permissions('admin'); - -$app->uses('listform_actions'); - -$app->listform_actions->onLoad(); - - -?> diff --git a/interface/web/admin/software_update_list.php b/interface/web/admin/software_update_list.php deleted file mode 100644 index 6d680c0ec1..0000000000 --- a/interface/web/admin/software_update_list.php +++ /dev/null @@ -1,204 +0,0 @@ -auth->check_module_permissions('admin'); -$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.'); - -//* Get the latest updates from the repositorys and insert them in the local database -$updates_added = 0; -$repos = $app->db->queryAllRecords("SELECT software_repo_id, repo_url, repo_username, repo_password FROM software_repo WHERE active = 'y'"); -if(is_array($repos)) { - foreach($repos as $repo) { - - /* - SELECT software_package.package_name, v1, v2, v3, v4 - FROM software_package - LEFT JOIN software_update ON ( software_package.package_name = software_update.package_name ) - LEFT JOIN software_update_inst ON ( software_update.software_update_id = software_update_inst.software_update_id ) - GROUP BY package_name - ORDER BY v1 DESC , v2 DESC , v3 DESC , v4 DESC - */ - - $client = new SoapClient(null, array('location' => $repo['repo_url'], - 'uri' => $repo['repo_url'])); - - $packages = $app->db->queryAllRecords("SELECT software_package.package_name, v1, v2, v3, v4 FROM software_package LEFT JOIN software_update ON ( software_package.package_name = software_update.package_name ) GROUP BY package_name ORDER BY v1 DESC , v2 DESC , v3 DESC , v4 DESC"); - if(is_array($packages)) { - foreach($packages as $p) { - - $version = $p['v1'].'.'.$p['v2'].'.'.$p['v3'].'.'.$p['v4']; - $updates = $client->get_updates($p['package_name'], $version, $repo['repo_username'], $repo['repo_password']); - - if(is_array($updates)) { - foreach($updates as $u) { - - $version_array = explode('.', $u['version']); - $v1 = $app->functions->intval($version_array[0]); - $v2 = $app->functions->intval($version_array[1]); - $v3 = $app->functions->intval($version_array[2]); - $v4 = $app->functions->intval($version_array[3]); - - $package_name = $u['package_name']; - $software_repo_id = $app->functions->intval($repo['software_repo_id']); - $update_url = $u['url']; - $update_md5 = $u['md5']; - $update_dependencies = (isset($u['dependencies']))?$u['dependencies']:''; - $update_title = $u['title']; - $type = $u['type']; - - // Check that we do not have this update in the database yet - $sql = "SELECT * FROM software_update WHERE package_name = ? and v1 = ? and v2 = ? and v3 = ? and v4 = ?"; - $tmp = $app->db->queryOneRecord($sql, $package_name, $v1, $v2, $v3, $v4); - if(!isset($tmp['software_update_id'])) { - // Insert the update in the datbase - $sql = "INSERT INTO software_update (software_repo_id, package_name, update_url, update_md5, update_dependencies, update_title, v1, v2, v3, v4, type) - VALUES ($software_repo_id, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?)"; - //die($sql); - $app->db->query($sql, $package_name, $update_url, $update_md5, $update_dependencies, $update_title, $v1, $v2, $v3, $v4, $type); - } - - } - } - } - } - } -} - - -//* Install packages, if GET Request -if(isset($_GET['action']) && $_GET['action'] == 'install' && $_GET['package'] != '' && $_GET['server_id'] > 0) { - $package_name = $_GET['package']; - $server_id = $app->functions->intval($_GET['server_id']); - $software_update_id = $app->functions->intval($_GET['id']); - - $insert_data = array( - "package_name" => $package_name, - "server_id" => $server_id, - "software_update_id" => $software_update_id, - "status" => 'installing' - ); - $app->db->datalogInsert('software_update_inst', $insert_data, 'software_update_inst_id'); - -} - - - -// Show the list in the interface -// Loading the template -$app->uses('tpl'); -$app->tpl->newTemplate("form.tpl.htm"); -$app->tpl->setInclude('content_tpl', 'templates/software_update_list.htm'); - -/* -SELECT software_package.package_name, software_package.package_title, software_update.update_title, v1, v2, v3, v4, software_update_inst.status - FROM software_package - LEFT JOIN software_update ON ( software_package.package_name = software_update.package_name ) - LEFT JOIN software_update_inst ON ( software_update.software_update_id = software_update_inst.software_update_id ) -GROUP BY software_update.software_update_id - ORDER BY v1 DESC , v2 DESC , v3 DESC , v4 DESC -*/ - - - -if(isset($_POST["server_id"]) && $_POST["server_id"] > 0) { - $server_id = $app->functions->intval($_POST["server_id"]); -} else { - $server_id = 1; -} - -$servers = $app->db->queryAllRecords('SELECT server_id, server_name FROM server ORDER BY server_name'); -foreach($servers as $key => $server) { - if($server['server_id'] == $server_id) { - $servers[$key]['selected'] = 'selected'; - } else { - $servers[$key]['selected'] = ''; - } -} - -$app->tpl->setLoop('servers', $servers); - -$sql = "SELECT v1, v2, v3, v4, software_update.update_title, software_update.software_update_id, software_update.package_name, v1, v2, v3, v4, software_update_inst.status - FROM software_update LEFT JOIN software_update_inst ON ( software_update.software_update_id = software_update_inst.software_update_id ) - WHERE server_id = $server_id - GROUP BY software_update.package_name - ORDER BY software_update.package_name ASC, v1 DESC , v2 DESC , v3 DESC , v4 DESC"; - -$installed_packages = $app->db->queryAllRecords($sql); - - -$records_out = array(); - -if(is_array($installed_packages)) { - foreach($installed_packages as $ip) { - - // Get version number of the latest installed version - $sql = "SELECT v1, v2, v3, v4 FROM software_update, software_update_inst WHERE software_update.software_update_id = software_update_inst.software_update_id AND server_id = ? ORDER BY v1 DESC , v2 DESC , v3 DESC , v4 DESC LIMIT 0,1"; - $lu = $app->db->queryOneRecord($sql, $server_id); - - // Get all installable updates - $sql = "SELECT * FROM software_update WHERE v1 >= ? AND v2 >= ? AND v3 >= ? AND v4 >= ? AND package_name = ? ORDER BY v1 DESC , v2 DESC , v3 DESC , v4 DESC"; - $updates = $app->db->queryAllRecords($sql, $lu['v1'], $lu['v2'], $lu['v3'], $lu['v4'], $ip['package_name']); - //die($sql); - - if(is_array($updates)) { - // Delete the last record as it is already installed - unset($updates[count($updates)-1]); - - foreach($updates as $key => $u) { - $version = $u['v1'].'.'.$u['v2'].'.'.$u['v3'].'.'.$u['v4']; - $installed_txt = "Install Update
"; - $records_out[] = array('version' => $version, 'update_title' => $u["update_title"], 'installed' => $installed_txt); - - } - } - } -} - - - -$app->tpl->setLoop('records', $records_out); - -$language = (isset($_SESSION['s']['language']))?$_SESSION['s']['language']:$conf['language']; -include_once 'lib/lang/'.$app->functions->check_language($language).'_software_update_list.lng'; -$app->tpl->setVar($wb); - - -$app->tpl_defaults(); -$app->tpl->pparse(); - - -?> diff --git a/interface/web/admin/templates/software_package_edit.htm b/interface/web/admin/templates/software_package_edit.htm deleted file mode 100644 index 2569c267f0..0000000000 --- a/interface/web/admin/templates/software_package_edit.htm +++ /dev/null @@ -1,22 +0,0 @@ - -

- - - -
- - {tmpl_var name='package_title'} -
-
- -
- - - - -
- - -
\ No newline at end of file diff --git a/interface/web/admin/templates/software_package_install.htm b/interface/web/admin/templates/software_package_install.htm deleted file mode 100644 index 8524b3c087..0000000000 --- a/interface/web/admin/templates/software_package_install.htm +++ /dev/null @@ -1,31 +0,0 @@ - -

- -
- -
-
- -
-
- -
- -

 

-
- -
- - - -

 

-
- - -
- -
-
-
\ No newline at end of file diff --git a/interface/web/admin/templates/software_package_list.htm b/interface/web/admin/templates/software_package_list.htm deleted file mode 100644 index e69e3780af..0000000000 --- a/interface/web/admin/templates/software_package_list.htm +++ /dev/null @@ -1,55 +0,0 @@ - -

- - -

{tmpl_var name="toolsarea_head_txt"}

- - - - - - -

-
- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
{tmpl_var name='search_limit'}
{tmpl_var name="installed"}{tmpl_var name="package_title"}{tmpl_var name="package_description"}ispapp{tmpl_var name="package_id"} - - -
{tmpl_var name='no_packages_txt'}
-
- - \ No newline at end of file diff --git a/interface/web/admin/templates/software_repo_edit.htm b/interface/web/admin/templates/software_repo_edit.htm deleted file mode 100644 index a43ea74900..0000000000 --- a/interface/web/admin/templates/software_repo_edit.htm +++ /dev/null @@ -1,26 +0,0 @@ -
- -
-
- -
-
- -
-
- -
-
- -
- {tmpl_var name='active'} -
-
- - - - -
- - -
diff --git a/interface/web/admin/templates/software_repo_list.htm b/interface/web/admin/templates/software_repo_list.htm deleted file mode 100644 index d408896de6..0000000000 --- a/interface/web/admin/templates/software_repo_list.htm +++ /dev/null @@ -1,58 +0,0 @@ - -

- - -

{tmpl_var name="toolsarea_head_txt"}

- - - - - - -

-
- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
 
- -
{tmpl_var name="active"}{tmpl_var name="repo_name"}{tmpl_var name="repo_url"} - -
{tmpl_var name='globalsearch_noresults_text_txt'}
-
- - \ No newline at end of file diff --git a/interface/web/admin/templates/software_update_list.htm b/interface/web/admin/templates/software_update_list.htm deleted file mode 100644 index 6776b66a7a..0000000000 --- a/interface/web/admin/templates/software_update_list.htm +++ /dev/null @@ -1,53 +0,0 @@ - -

- - - Tools - -
- -
- - -
- - -

-
- - - - - - - - - - - - - - - - - - - - - - - - - - - -
{tmpl_var name="installed"}{tmpl_var name="update_title"}{tmpl_var name="version"}
{tmpl_var name='no_updates_txt'}
-
- - \ No newline at end of file diff --git a/security/README.txt b/security/README.txt index b42cbaabb4..1825b981f2 100644 --- a/security/README.txt +++ b/security/README.txt @@ -1,7 +1,7 @@ Description for security_settings.ini values. -The option "superadmin" means that a setting is only available to the admin user with userid 1 in the interface. +The option "superadmin" means that a setting is only available to the admin user with userid 1 in the interface. If there are other amdins, then they cant access this setting. ----------------------------------------------------------- @@ -57,14 +57,6 @@ Setting: admin_allow_osupdate Options: yes/no/superadmin Description: Disables System > OS update -Setting: admin_allow_software_packages -Options: yes/no/superadmin -Description: Disables System > Apps & Addons > Packages and Update - -Setting: admin_allow_software_repo -Options: yes/no/superadmin -Description: Disables System > Apps & Addons > Repo - Setting: remote_api_allowed Options: yes/no Description: Disables the remote API @@ -80,13 +72,13 @@ Description: Enables the Intrusion Detection System Setting: ids_log_level Options: 1 (number, default = 1) Description: IDS score that triggers the log in /usr/local/ispconfig/interface/temp/ids.log - This log can be used to feed the whitelist. - + This log can be used to feed the whitelist. + Example: - + cat /usr/local/ispconfig/interface/temp/ids.log >> /usr/local/ispconfig/security/ids.whitelist rm -f /usr/local/ispconfig/interface/temp/ids.log - + If you want to use a custom whitelist, then store it as /usr/local/ispconfig/security/ids.whitelist.custom Setting: ids_warn_level @@ -95,7 +87,7 @@ Description: When the IDS score exceeds this level, a error message is logged in Setting: ids_block_level Options: 100 (number, default = 100) -Description: When the IDS score exceeds this level, a error message is shown to the user and further processing is blocked. A score of 100 will most likely never be reached. +Description: When the IDS score exceeds this level, a error message is shown to the user and further processing is blocked. A score of 100 will most likely never be reached. We have choosen such a high score as default until we have more complete whitelists for this new feature. Setting: sql_scan_enabled @@ -135,5 +127,3 @@ Description: Warn by email when /etc/shadow has been changed. Setting: warn_group_change Options: yes/no Description: Warn by email when /etc/group has been changed. - - diff --git a/server/mods-available/server_module.inc.php b/server/mods-available/server_module.inc.php index bc846cf530..92a50c5128 100644 --- a/server/mods-available/server_module.inc.php +++ b/server/mods-available/server_module.inc.php @@ -40,10 +40,7 @@ class server_module { 'server_ip_delete', 'firewall_insert', 'firewall_update', - 'firewall_delete', - 'software_update_inst_insert', - 'software_update_inst_update', - 'software_update_inst_delete'); + 'firewall_delete'); //* This function is called during ispconfig installation to determine // if a symlink shall be created for this plugin. @@ -81,7 +78,6 @@ class server_module { $app->modules->registerTableHook('server', 'server_module', 'process'); $app->modules->registerTableHook('server_ip', 'server_module', 'process'); $app->modules->registerTableHook('firewall', 'server_module', 'process'); - $app->modules->registerTableHook('software_update_inst', 'server_module', 'process'); // Register service //$app->services->registerService('httpd','web_module','restartHttpd'); @@ -112,11 +108,6 @@ class server_module { if($action == 'u') $app->plugins->raiseEvent('firewall_update', $data); if($action == 'd') $app->plugins->raiseEvent('firewall_delete', $data); break; - case 'software_update_inst': - if($action == 'i') $app->plugins->raiseEvent('software_update_inst_insert', $data); - if($action == 'u') $app->plugins->raiseEvent('software_update_inst_update', $data); - if($action == 'd') $app->plugins->raiseEvent('software_update_inst_delete', $data); - break; } // end switch } // end function diff --git a/server/plugins-available/software_update_plugin.inc.php b/server/plugins-available/software_update_plugin.inc.php deleted file mode 100644 index 2626d1e756..0000000000 --- a/server/plugins-available/software_update_plugin.inc.php +++ /dev/null @@ -1,303 +0,0 @@ -plugins->registerEvent('software_update_inst_insert', $this->plugin_name, 'process'); - //$app->plugins->registerEvent('software_update_inst_update',$this->plugin_name,'process'); - //$app->plugins->registerEvent('software_update_inst_delete',$this->plugin_name,'process'); - - //* Register for actions - $app->plugins->registerAction('os_update', $this->plugin_name, 'os_update'); - - - } - - private function set_install_status($inst_id, $status) { - global $app; - - $app->db->query("UPDATE software_update_inst SET status = ? WHERE software_update_inst_id = ?", $status, $inst_id); - $app->dbmaster->query("UPDATE software_update_inst SET status = ? WHERE software_update_inst_id = ?", $status, $inst_id); - } - - public function process($event_name, $data) { - global $app, $conf; - - //* Get the info of the package: - $software_update_id = intval($data["new"]["software_update_id"]); - $software_update = $app->db->queryOneRecord("SELECT * FROM software_update WHERE software_update_id = ?", $software_update_id); - $software_package = $app->db->queryOneRecord("SELECT * FROM software_package WHERE package_name = ?", $software_update['package_name']); - - if($software_package['package_type'] == 'ispconfig' && !$conf['software_updates_enabled'] == true) { - $app->log('Software Updates not enabled on this server. To enable updates, set $conf["software_updates_enabled"] = true; in config.inc.php', LOGLEVEL_WARN); - $this->set_install_status($data["new"]["software_update_inst_id"], "failed"); - return false; - } - - $installuser = ''; - if($software_package['package_type'] == 'ispconfig') { - $installuser = ''; - } elseif ($software_package['package_type'] == 'app') { - $installuser = 'ispapps'; - } else { - $app->log('package_type not supported', LOGLEVEL_WARN); - $this->set_install_status($data["new"]["software_update_inst_id"], "failed"); - return false; - } - - $temp_dir = '/tmp/'.md5(uniqid(rand())); - $app->log("The temp dir is $temp_dir", LOGLEVEL_DEBUG); - mkdir($temp_dir); - if($installuser != '') chown($temp_dir, $installuser); - - if(!is_dir($temp_dir)) { - $app->log("Unable to create temp directory.", LOGLEVEL_WARN); - $this->set_install_status($data["new"]["software_update_inst_id"], "failed"); - return false; - } - - //* Replace placeholders in download URL - $software_update["update_url"] = str_replace('{key}', $software_package['package_key'], $software_update["update_url"]); - - //* Download the update package - if($installuser == '') { - $cmd = "cd ? && wget ?"; - $app->system->exec_safe($cmd, $temp_dir, $software_update["update_url"]); - } else { - $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); - - //$url_parts = parse_url($software_update["update_url"]); - //$update_filename = basename($url_parts["path"]); - //* Find the name of the zip file which contains the app. - $tmp_dir_handle = dir($temp_dir); - $update_filename = ''; - while (false !== ($t = $tmp_dir_handle->read())) { - if($t != '.' && $t != '..' && is_file($temp_dir.'/'.$t) && substr($t, -4) == '.zip') { - $update_filename = $t; - } - } - $tmp_dir_handle->close(); - unset($tmp_dir_handle); - unset($t); - - if($update_filename == '') { - $app->log("No package file found. Download failed? Installation aborted.", LOGLEVEL_WARN); - $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; - } - - $app->log("The update filename is $update_filename", LOGLEVEL_DEBUG); - - if(is_file($temp_dir.'/'.$update_filename)) { - - //* 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); - $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; - } else { - $app->log("MD5 checksum of the downloaded file verified.", LOGLEVEL_DEBUG); - } - - - //* unpacking the update - - if($installuser == '') { - $cmd = "cd ? && unzip ?"; - $app->system->exec_safe($cmd, $temp_dir, $update_filename); - } else { - $cmd = "cd $temp_dir && unzip $update_filename"; - $app->system->exec_safe("su -c ? ?", $cmd, $installuser); - } - - //* Create a database, if the package requires one - if($software_package['package_type'] == 'app' && $software_package['package_requires_db'] == 'mysql') { - - $app->uses('ini_parser'); - $package_config = $app->ini_parser->parse_ini_string(stripslashes($software_package['package_config'])); - - $this->create_app_db($package_config['mysql']); - $app->log("Creating the app DB.", LOGLEVEL_DEBUG); - - //* Load the sql dump into the database - if(is_file($temp_dir.'/setup.sql')) { - $db_config = $package_config['mysql']; - if( $db_config['database_user'] != '' && - $db_config['database_password'] != '' && - $db_config['database_name'] != '' && - $db_config['database_host'] != '') { - $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); - } - } - - } - - //* Save the package config file as app.ini - if($software_package['package_config'] != '') { - file_put_contents($temp_dir.'/app.ini', $software_package['package_config']); - $app->log("Writing ".$temp_dir.'/app.ini', LOGLEVEL_DEBUG); - } - - if(is_file($temp_dir.'/setup.sh')) { - // Execute the setup script - $app->system->exec_safe('chmod +x ?', $temp_dir.'/setup.sh'); - $app->log("Executing setup.sh file in directory $temp_dir", LOGLEVEL_DEBUG); - - if($installuser == '') { - $cmd = 'cd ? && ./setup.sh > package_install.log'; - $app->system->exec_safe($cmd, $temp_dir); - } else { - $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"); - if(preg_match("'.*\[OK\]\s*$'is", $log_data)) { - $app->log("Installation successful", LOGLEVEL_DEBUG); - $app->log($log_data, LOGLEVEL_DEBUG); - $this->set_install_status($data["new"]["software_update_inst_id"], "installed"); - } else { - $app->log("Installation failed:\n\n" . $log_data, LOGLEVEL_WARN); - $this->set_install_status($data["new"]["software_update_inst_id"], "failed"); - } - } else { - $app->log("setup.sh file not found", LOGLEVEL_ERROR); - $this->set_install_status($data["new"]["software_update_inst_id"], "failed"); - } - } else { - $app->log("Download of the update file failed", LOGLEVEL_WARN); - $this->set_install_status($data["new"]["software_update_inst_id"], "failed"); - } - - if($temp_dir != '' && $temp_dir != '/') $app->system->exec_safe("rm -rf ?", $temp_dir); - $app->log("Deleting the temp directory $temp_dir", LOGLEVEL_DEBUG); - } - - private function create_app_db($db_config) { - global $app, $conf; - - if( $db_config['database_user'] != '' && - $db_config['database_password'] != '' && - $db_config['database_name'] != '' && - $db_config['database_host'] != '') { - - if(!include ISPC_LIB_PATH.'/mysql_clientdb.conf') { - $app->log('Unable to open'.ISPC_LIB_PATH.'/mysql_clientdb.conf', LOGLEVEL_ERROR); - return; - } - - if($db_config['database_user'] == 'root') { - $app->log('User root not allowed for App databases', LOGLEVEL_WARNING); - return; - } - - //* Connect to the database - $link = mysqli_connect($clientdb_host, $clientdb_user, $clientdb_password); - if (!$link) { - $app->log('Unable to connect to the database'.mysqli_connect_error(), LOGLEVEL_ERROR); - return; - } - - $query_charset_table = ''; - - //* Create the new database - if (mysqli_query($link,'CREATE DATABASE '.mysqli_real_escape_string($link, $db_config['database_name']).$query_charset_table, $link)) { - $app->log('Created MySQL database: '.$db_config['database_name'], LOGLEVEL_DEBUG); - } else { - $app->log('Unable to connect to the database'.mysqli_error($link), LOGLEVEL_ERROR); - } - - if(mysqli_query("GRANT ALL ON ".mysqli_real_escape_string($link, $db_config['database_name']).".* TO '".mysqli_real_escape_string($link, $db_config['database_user'])."'@'".$db_config['database_host']."' IDENTIFIED BY '".mysqli_real_escape_string($link, $db_config['database_password'])."';", $link)) { - $app->log('Created MySQL user: '.$db_config['database_user'], LOGLEVEL_DEBUG); - } else { - $app->log('Unable to create database user'.$db_config['database_user'].' '.mysqli_error($link), LOGLEVEL_ERROR); - } - - mysqli_close($link); - - } - - } - - //* Operating system update - public function os_update($action_name, $data) { - global $app; - - //** Debian and compatible Linux distributions - if(file_exists('/etc/debian_version')) { - exec("apt-get update"); - exec("apt-get upgrade -y"); - $app->log('Execeuted Debian / Ubuntu update', LOGLEVEL_DEBUG); - } - - //** Gentoo Linux - if(file_exists('/etc/gentoo-release')) { - exec("glsa-check -f --nocolor affected"); - $app->log('Execeuted Gentoo update', LOGLEVEL_DEBUG); - } - - return 'ok'; - } - -} // end class - -?> -- GitLab From 68514e475d10d3fa118710443468cac57cbc9347 Mon Sep 17 00:00:00 2001 From: thom Date: Tue, 6 Oct 2020 13:08:47 +0200 Subject: [PATCH 007/300] Hide SSL cert options when LE is enabled (#5692) --- interface/web/sites/lib/lang/ar_web_vhost_domain.lng | 1 + interface/web/sites/lib/lang/bg_web_vhost_domain.lng | 1 + interface/web/sites/lib/lang/br_web_vhost_domain.lng | 1 + interface/web/sites/lib/lang/ca_web_vhost_domain.lng | 1 + interface/web/sites/lib/lang/cz_web_vhost_domain.lng | 1 + interface/web/sites/lib/lang/de_web_vhost_domain.lng | 1 + interface/web/sites/lib/lang/dk_web_vhost_domain.lng | 1 + interface/web/sites/lib/lang/el_web_vhost_domain.lng | 1 + interface/web/sites/lib/lang/en_web_vhost_domain.lng | 1 + interface/web/sites/lib/lang/es_web_vhost_domain.lng | 1 + interface/web/sites/lib/lang/fi_web_vhost_domain.lng | 1 + interface/web/sites/lib/lang/fr_web_vhost_domain.lng | 1 + interface/web/sites/lib/lang/hr_web_vhost_domain.lng | 1 + interface/web/sites/lib/lang/hu_web_vhost_domain.lng | 1 + interface/web/sites/lib/lang/id_web_vhost_domain.lng | 1 + interface/web/sites/lib/lang/it_web_vhost_domain.lng | 1 + interface/web/sites/lib/lang/ja_web_vhost_domain.lng | 1 + interface/web/sites/lib/lang/nl_web_vhost_domain.lng | 1 + interface/web/sites/lib/lang/pl_web_vhost_domain.lng | 1 + interface/web/sites/lib/lang/pt_web_vhost_domain.lng | 1 + interface/web/sites/lib/lang/ro_web_vhost_domain.lng | 1 + interface/web/sites/lib/lang/ru_web_vhost_domain.lng | 1 + interface/web/sites/lib/lang/se_web_vhost_domain.lng | 1 + interface/web/sites/lib/lang/sk_web_vhost_domain.lng | 1 + interface/web/sites/lib/lang/tr_web_vhost_domain.lng | 1 + interface/web/sites/templates/web_vhost_domain_ssl.htm | 7 ++++++- interface/web/sites/web_vhost_domain_edit.php | 1 + 27 files changed, 32 insertions(+), 1 deletion(-) 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 2fd132c9e7..9e6ecf1031 100644 --- a/interface/web/sites/lib/lang/ar_web_vhost_domain.lng +++ b/interface/web/sites/lib/lang/ar_web_vhost_domain.lng @@ -196,3 +196,4 @@ $wb['tooltip_jailkit_chroot_app_sections_txt'] = 'When empty, uses Jailkit chroo $wb['tooltip_jailkit_chroot_app_programs_txt'] = 'When empty, uses Jailkit chroot applications from Server Config'; $wb['delete_unused_jailkit_txt'] = 'Delete unused jailkit chroot'; $wb['tooltip_delete_unused_jailkit_txt'] = 'Delete the jailkit chroot environment when there are no shell users or cron jobs which require it.'; +$wb['ssl_options_hidden_txt'] = 'The SSL certificate options are hidden because Let\'s Encrypt is enabled.'; 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 573fe63a45..1ec9cfc8da 100644 --- a/interface/web/sites/lib/lang/bg_web_vhost_domain.lng +++ b/interface/web/sites/lib/lang/bg_web_vhost_domain.lng @@ -196,3 +196,4 @@ $wb['tooltip_jailkit_chroot_app_sections_txt'] = 'When empty, uses Jailkit chroo $wb['tooltip_jailkit_chroot_app_programs_txt'] = 'When empty, uses Jailkit chroot applications from Server Config'; $wb['delete_unused_jailkit_txt'] = 'Delete unused jailkit chroot'; $wb['tooltip_delete_unused_jailkit_txt'] = 'Delete the jailkit chroot environment when there are no shell users or cron jobs which require it.'; +$wb['ssl_options_hidden_txt'] = 'The SSL certificate options are hidden because Let\'s Encrypt is enabled.'; 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 835ceeae4d..aa51b046f7 100644 --- a/interface/web/sites/lib/lang/br_web_vhost_domain.lng +++ b/interface/web/sites/lib/lang/br_web_vhost_domain.lng @@ -201,3 +201,4 @@ $wb['tooltip_jailkit_chroot_app_sections_txt'] = 'When empty, uses Jailkit chroo $wb['tooltip_jailkit_chroot_app_programs_txt'] = 'When empty, uses Jailkit chroot applications from Server Config'; $wb['delete_unused_jailkit_txt'] = 'Delete unused jailkit chroot'; $wb['tooltip_delete_unused_jailkit_txt'] = 'Delete the jailkit chroot environment when there are no shell users or cron jobs which require it.'; +$wb['ssl_options_hidden_txt'] = 'The SSL certificate options are hidden because Let\'s Encrypt is enabled.'; 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 65c21fd2dd..e53dea6f5e 100644 --- a/interface/web/sites/lib/lang/ca_web_vhost_domain.lng +++ b/interface/web/sites/lib/lang/ca_web_vhost_domain.lng @@ -196,3 +196,4 @@ $wb['tooltip_jailkit_chroot_app_sections_txt'] = 'When empty, uses Jailkit chroo $wb['tooltip_jailkit_chroot_app_programs_txt'] = 'When empty, uses Jailkit chroot applications from Server Config'; $wb['delete_unused_jailkit_txt'] = 'Delete unused jailkit chroot'; $wb['tooltip_delete_unused_jailkit_txt'] = 'Delete the jailkit chroot environment when there are no shell users or cron jobs which require it.'; +$wb['ssl_options_hidden_txt'] = 'The SSL certificate options are hidden because Let\'s Encrypt is enabled.'; 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 5d3caf5c90..8f26a1f281 100644 --- a/interface/web/sites/lib/lang/cz_web_vhost_domain.lng +++ b/interface/web/sites/lib/lang/cz_web_vhost_domain.lng @@ -196,3 +196,4 @@ $wb['tooltip_jailkit_chroot_app_sections_txt'] = 'When empty, uses Jailkit chroo $wb['tooltip_jailkit_chroot_app_programs_txt'] = 'When empty, uses Jailkit chroot applications from Server Config'; $wb['delete_unused_jailkit_txt'] = 'Delete unused jailkit chroot'; $wb['tooltip_delete_unused_jailkit_txt'] = 'Delete the jailkit chroot environment when there are no shell users or cron jobs which require it.'; +$wb['ssl_options_hidden_txt'] = 'The SSL certificate options are hidden because Let\'s Encrypt is enabled.'; 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 3b13009ab7..96a9cd2ab4 100644 --- a/interface/web/sites/lib/lang/de_web_vhost_domain.lng +++ b/interface/web/sites/lib/lang/de_web_vhost_domain.lng @@ -196,3 +196,4 @@ $wb['tooltip_jailkit_chroot_app_sections_txt'] = 'When empty, uses Jailkit chroo $wb['tooltip_jailkit_chroot_app_programs_txt'] = 'When empty, uses Jailkit chroot applications from Server Config'; $wb['delete_unused_jailkit_txt'] = 'Delete unused jailkit chroot'; $wb['tooltip_delete_unused_jailkit_txt'] = 'Delete the jailkit chroot environment when there are no shell users or cron jobs which require it.'; +$wb['ssl_options_hidden_txt'] = 'The SSL certificate options are hidden because Let\'s Encrypt is enabled.'; 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 7721691a60..85eba59b87 100644 --- a/interface/web/sites/lib/lang/dk_web_vhost_domain.lng +++ b/interface/web/sites/lib/lang/dk_web_vhost_domain.lng @@ -196,3 +196,4 @@ $wb['tooltip_jailkit_chroot_app_sections_txt'] = 'When empty, uses Jailkit chroo $wb['tooltip_jailkit_chroot_app_programs_txt'] = 'When empty, uses Jailkit chroot applications from Server Config'; $wb['delete_unused_jailkit_txt'] = 'Delete unused jailkit chroot'; $wb['tooltip_delete_unused_jailkit_txt'] = 'Delete the jailkit chroot environment when there are no shell users or cron jobs which require it.'; +$wb['ssl_options_hidden_txt'] = 'The SSL certificate options are hidden because Let\'s Encrypt is enabled.'; 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 8628dff841..5fb605f665 100644 --- a/interface/web/sites/lib/lang/el_web_vhost_domain.lng +++ b/interface/web/sites/lib/lang/el_web_vhost_domain.lng @@ -196,3 +196,4 @@ $wb['tooltip_jailkit_chroot_app_sections_txt'] = 'When empty, uses Jailkit chroo $wb['tooltip_jailkit_chroot_app_programs_txt'] = 'When empty, uses Jailkit chroot applications from Server Config'; $wb['delete_unused_jailkit_txt'] = 'Delete unused jailkit chroot'; $wb['tooltip_delete_unused_jailkit_txt'] = 'Delete the jailkit chroot environment when there are no shell users or cron jobs which require it.'; +$wb['ssl_options_hidden_txt'] = 'The SSL certificate options are hidden because Let\'s Encrypt is enabled.'; 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 f633076dbb..64dc34eb2f 100644 --- a/interface/web/sites/lib/lang/en_web_vhost_domain.lng +++ b/interface/web/sites/lib/lang/en_web_vhost_domain.lng @@ -201,3 +201,4 @@ $wb['tooltip_jailkit_chroot_app_sections_txt'] = 'When empty, uses Jailkit chroo $wb['tooltip_jailkit_chroot_app_programs_txt'] = 'When empty, uses Jailkit chroot applications from Server Config'; $wb['delete_unused_jailkit_txt'] = 'Delete unused jailkit chroot'; $wb['tooltip_delete_unused_jailkit_txt'] = 'Delete the jailkit chroot environment when there are no shell users or cron jobs which require it.'; +$wb['ssl_options_hidden_txt'] = 'The SSL certificate options are hidden because Let\'s Encrypt is enabled.'; 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 e9d49604f2..01657cfc76 100644 --- a/interface/web/sites/lib/lang/es_web_vhost_domain.lng +++ b/interface/web/sites/lib/lang/es_web_vhost_domain.lng @@ -196,3 +196,4 @@ $wb['tooltip_jailkit_chroot_app_sections_txt'] = 'When empty, uses Jailkit chroo $wb['tooltip_jailkit_chroot_app_programs_txt'] = 'When empty, uses Jailkit chroot applications from Server Config'; $wb['delete_unused_jailkit_txt'] = 'Delete unused jailkit chroot'; $wb['tooltip_delete_unused_jailkit_txt'] = 'Delete the jailkit chroot environment when there are no shell users or cron jobs which require it.'; +$wb['ssl_options_hidden_txt'] = 'The SSL certificate options are hidden because Let\'s Encrypt is enabled.'; 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 b0ede66c4d..28febb070f 100644 --- a/interface/web/sites/lib/lang/fi_web_vhost_domain.lng +++ b/interface/web/sites/lib/lang/fi_web_vhost_domain.lng @@ -196,3 +196,4 @@ $wb['tooltip_jailkit_chroot_app_sections_txt'] = 'When empty, uses Jailkit chroo $wb['tooltip_jailkit_chroot_app_programs_txt'] = 'When empty, uses Jailkit chroot applications from Server Config'; $wb['delete_unused_jailkit_txt'] = 'Delete unused jailkit chroot'; $wb['tooltip_delete_unused_jailkit_txt'] = 'Delete the jailkit chroot environment when there are no shell users or cron jobs which require it.'; +$wb['ssl_options_hidden_txt'] = 'The SSL certificate options are hidden because Let\'s Encrypt is enabled.'; 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 c43f5c97d5..fbd25b6b62 100644 --- a/interface/web/sites/lib/lang/fr_web_vhost_domain.lng +++ b/interface/web/sites/lib/lang/fr_web_vhost_domain.lng @@ -196,3 +196,4 @@ $wb['tooltip_jailkit_chroot_app_sections_txt'] = 'When empty, uses Jailkit chroo $wb['tooltip_jailkit_chroot_app_programs_txt'] = 'When empty, uses Jailkit chroot applications from Server Config'; $wb['delete_unused_jailkit_txt'] = 'Delete unused jailkit chroot'; $wb['tooltip_delete_unused_jailkit_txt'] = 'Delete the jailkit chroot environment when there are no shell users or cron jobs which require it.'; +$wb['ssl_options_hidden_txt'] = 'The SSL certificate options are hidden because Let\'s Encrypt is enabled.'; 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 1645ef8eb5..82d3fe44b5 100644 --- a/interface/web/sites/lib/lang/hr_web_vhost_domain.lng +++ b/interface/web/sites/lib/lang/hr_web_vhost_domain.lng @@ -196,3 +196,4 @@ $wb['tooltip_jailkit_chroot_app_sections_txt'] = 'When empty, uses Jailkit chroo $wb['tooltip_jailkit_chroot_app_programs_txt'] = 'When empty, uses Jailkit chroot applications from Server Config'; $wb['delete_unused_jailkit_txt'] = 'Delete unused jailkit chroot'; $wb['tooltip_delete_unused_jailkit_txt'] = 'Delete the jailkit chroot environment when there are no shell users or cron jobs which require it.'; +$wb['ssl_options_hidden_txt'] = 'The SSL certificate options are hidden because Let\'s Encrypt is enabled.'; 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 32a65e6502..9026d7175f 100644 --- a/interface/web/sites/lib/lang/hu_web_vhost_domain.lng +++ b/interface/web/sites/lib/lang/hu_web_vhost_domain.lng @@ -196,3 +196,4 @@ $wb['tooltip_jailkit_chroot_app_sections_txt'] = 'When empty, uses Jailkit chroo $wb['tooltip_jailkit_chroot_app_programs_txt'] = 'When empty, uses Jailkit chroot applications from Server Config'; $wb['delete_unused_jailkit_txt'] = 'Delete unused jailkit chroot'; $wb['tooltip_delete_unused_jailkit_txt'] = 'Delete the jailkit chroot environment when there are no shell users or cron jobs which require it.'; +$wb['ssl_options_hidden_txt'] = 'The SSL certificate options are hidden because Let\'s Encrypt is enabled.'; 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 4bc0395328..da5a174bb1 100644 --- a/interface/web/sites/lib/lang/id_web_vhost_domain.lng +++ b/interface/web/sites/lib/lang/id_web_vhost_domain.lng @@ -196,3 +196,4 @@ $wb['tooltip_jailkit_chroot_app_sections_txt'] = 'When empty, uses Jailkit chroo $wb['tooltip_jailkit_chroot_app_programs_txt'] = 'When empty, uses Jailkit chroot applications from Server Config'; $wb['delete_unused_jailkit_txt'] = 'Delete unused jailkit chroot'; $wb['tooltip_delete_unused_jailkit_txt'] = 'Delete the jailkit chroot environment when there are no shell users or cron jobs which require it.'; +$wb['ssl_options_hidden_txt'] = 'The SSL certificate options are hidden because Let\'s Encrypt is enabled.'; 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 3d1e16fe2e..ff34ccbd57 100644 --- a/interface/web/sites/lib/lang/it_web_vhost_domain.lng +++ b/interface/web/sites/lib/lang/it_web_vhost_domain.lng @@ -196,3 +196,4 @@ $wb['tooltip_jailkit_chroot_app_sections_txt'] = 'When empty, uses Jailkit chroo $wb['tooltip_jailkit_chroot_app_programs_txt'] = 'When empty, uses Jailkit chroot applications from Server Config'; $wb['delete_unused_jailkit_txt'] = 'Delete unused jailkit chroot'; $wb['tooltip_delete_unused_jailkit_txt'] = 'Delete the jailkit chroot environment when there are no shell users or cron jobs which require it.'; +$wb['ssl_options_hidden_txt'] = 'The SSL certificate options are hidden because Let\'s Encrypt is enabled.'; 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 3ca7f658f5..e10ad8825f 100644 --- a/interface/web/sites/lib/lang/ja_web_vhost_domain.lng +++ b/interface/web/sites/lib/lang/ja_web_vhost_domain.lng @@ -196,3 +196,4 @@ $wb['tooltip_jailkit_chroot_app_sections_txt'] = 'When empty, uses Jailkit chroo $wb['tooltip_jailkit_chroot_app_programs_txt'] = 'When empty, uses Jailkit chroot applications from Server Config'; $wb['delete_unused_jailkit_txt'] = 'Delete unused jailkit chroot'; $wb['tooltip_delete_unused_jailkit_txt'] = 'Delete the jailkit chroot environment when there are no shell users or cron jobs which require it.'; +$wb['ssl_options_hidden_txt'] = 'The SSL certificate options are hidden because Let\'s Encrypt is enabled.'; 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 afe2da94b8..d47674bc17 100644 --- a/interface/web/sites/lib/lang/nl_web_vhost_domain.lng +++ b/interface/web/sites/lib/lang/nl_web_vhost_domain.lng @@ -196,3 +196,4 @@ $wb['tooltip_jailkit_chroot_app_sections_txt'] = 'When empty, uses Jailkit chroo $wb['tooltip_jailkit_chroot_app_programs_txt'] = 'When empty, uses Jailkit chroot applications from Server Config'; $wb['delete_unused_jailkit_txt'] = 'Delete unused jailkit chroot'; $wb['tooltip_delete_unused_jailkit_txt'] = 'Delete the jailkit chroot environment when there are no shell users or cron jobs which require it.'; +$wb['ssl_options_hidden_txt'] = 'The SSL certificate options are hidden because Let\'s Encrypt is enabled.'; 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 e0b6a596e5..f43bef55b5 100644 --- a/interface/web/sites/lib/lang/pl_web_vhost_domain.lng +++ b/interface/web/sites/lib/lang/pl_web_vhost_domain.lng @@ -196,3 +196,4 @@ $wb['tooltip_jailkit_chroot_app_sections_txt'] = 'When empty, uses Jailkit chroo $wb['tooltip_jailkit_chroot_app_programs_txt'] = 'When empty, uses Jailkit chroot applications from Server Config'; $wb['delete_unused_jailkit_txt'] = 'Delete unused jailkit chroot'; $wb['tooltip_delete_unused_jailkit_txt'] = 'Delete the jailkit chroot environment when there are no shell users or cron jobs which require it.'; +$wb['ssl_options_hidden_txt'] = 'The SSL certificate options are hidden because Let\'s Encrypt is enabled.'; 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 58a256f652..2bd6ed1b94 100644 --- a/interface/web/sites/lib/lang/pt_web_vhost_domain.lng +++ b/interface/web/sites/lib/lang/pt_web_vhost_domain.lng @@ -196,3 +196,4 @@ $wb['tooltip_jailkit_chroot_app_sections_txt'] = 'When empty, uses Jailkit chroo $wb['tooltip_jailkit_chroot_app_programs_txt'] = 'When empty, uses Jailkit chroot applications from Server Config'; $wb['delete_unused_jailkit_txt'] = 'Delete unused jailkit chroot'; $wb['tooltip_delete_unused_jailkit_txt'] = 'Delete the jailkit chroot environment when there are no shell users or cron jobs which require it.'; +$wb['ssl_options_hidden_txt'] = 'The SSL certificate options are hidden because Let\'s Encrypt is enabled.'; 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 9554f4643f..76818f7078 100644 --- a/interface/web/sites/lib/lang/ro_web_vhost_domain.lng +++ b/interface/web/sites/lib/lang/ro_web_vhost_domain.lng @@ -196,3 +196,4 @@ $wb['tooltip_jailkit_chroot_app_sections_txt'] = 'When empty, uses Jailkit chroo $wb['tooltip_jailkit_chroot_app_programs_txt'] = 'When empty, uses Jailkit chroot applications from Server Config'; $wb['delete_unused_jailkit_txt'] = 'Delete unused jailkit chroot'; $wb['tooltip_delete_unused_jailkit_txt'] = 'Delete the jailkit chroot environment when there are no shell users or cron jobs which require it.'; +$wb['ssl_options_hidden_txt'] = 'The SSL certificate options are hidden because Let\'s Encrypt is enabled.'; 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 538b329fb4..668813cc2b 100644 --- a/interface/web/sites/lib/lang/ru_web_vhost_domain.lng +++ b/interface/web/sites/lib/lang/ru_web_vhost_domain.lng @@ -196,3 +196,4 @@ $wb['tooltip_jailkit_chroot_app_sections_txt'] = 'When empty, uses Jailkit chroo $wb['tooltip_jailkit_chroot_app_programs_txt'] = 'When empty, uses Jailkit chroot applications from Server Config'; $wb['delete_unused_jailkit_txt'] = 'Delete unused jailkit chroot'; $wb['tooltip_delete_unused_jailkit_txt'] = 'Delete the jailkit chroot environment when there are no shell users or cron jobs which require it.'; +$wb['ssl_options_hidden_txt'] = 'The SSL certificate options are hidden because Let\'s Encrypt is enabled.'; 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 af1a6f1b9e..8ce4c56516 100644 --- a/interface/web/sites/lib/lang/se_web_vhost_domain.lng +++ b/interface/web/sites/lib/lang/se_web_vhost_domain.lng @@ -196,3 +196,4 @@ $wb['tooltip_jailkit_chroot_app_sections_txt'] = 'When empty, uses Jailkit chroo $wb['tooltip_jailkit_chroot_app_programs_txt'] = 'When empty, uses Jailkit chroot applications from Server Config'; $wb['delete_unused_jailkit_txt'] = 'Delete unused jailkit chroot'; $wb['tooltip_delete_unused_jailkit_txt'] = 'Delete the jailkit chroot environment when there are no shell users or cron jobs which require it.'; +$wb['ssl_options_hidden_txt'] = 'The SSL certificate options are hidden because Let\'s Encrypt is enabled.'; 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 e2cfa27c0f..93736fd80b 100644 --- a/interface/web/sites/lib/lang/sk_web_vhost_domain.lng +++ b/interface/web/sites/lib/lang/sk_web_vhost_domain.lng @@ -196,3 +196,4 @@ $wb['tooltip_jailkit_chroot_app_sections_txt'] = 'When empty, uses Jailkit chroo $wb['tooltip_jailkit_chroot_app_programs_txt'] = 'When empty, uses Jailkit chroot applications from Server Config'; $wb['delete_unused_jailkit_txt'] = 'Delete unused jailkit chroot'; $wb['tooltip_delete_unused_jailkit_txt'] = 'Delete the jailkit chroot environment when there are no shell users or cron jobs which require it.'; +$wb['ssl_options_hidden_txt'] = 'The SSL certificate options are hidden because Let\'s Encrypt is enabled.'; 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 6b7fe3793e..66c0c68757 100644 --- a/interface/web/sites/lib/lang/tr_web_vhost_domain.lng +++ b/interface/web/sites/lib/lang/tr_web_vhost_domain.lng @@ -198,3 +198,4 @@ $wb['tooltip_jailkit_chroot_app_sections_txt'] = 'When empty, uses Jailkit chroo $wb['tooltip_jailkit_chroot_app_programs_txt'] = 'When empty, uses Jailkit chroot applications from Server Config'; $wb['delete_unused_jailkit_txt'] = 'Delete unused jailkit chroot'; $wb['tooltip_delete_unused_jailkit_txt'] = 'Delete the jailkit chroot environment when there are no shell users or cron jobs which require it.'; +$wb['ssl_options_hidden_txt'] = 'The SSL certificate options are hidden because Let\'s Encrypt is enabled.'; diff --git a/interface/web/sites/templates/web_vhost_domain_ssl.htm b/interface/web/sites/templates/web_vhost_domain_ssl.htm index 686b5e67fd..736f5ca5ca 100644 --- a/interface/web/sites/templates/web_vhost_domain_ssl.htm +++ b/interface/web/sites/templates/web_vhost_domain_ssl.htm @@ -10,7 +10,7 @@ - + + +
+ {tmpl_var name='ssl_options_hidden_txt'} +
+
diff --git a/interface/web/sites/web_vhost_domain_edit.php b/interface/web/sites/web_vhost_domain_edit.php index 9e65f91062..9b1117fb2b 100644 --- a/interface/web/sites/web_vhost_domain_edit.php +++ b/interface/web/sites/web_vhost_domain_edit.php @@ -755,6 +755,7 @@ class page_action extends tform_actions { if(intval($tmp_sys_group['client_id']) > 0) $tmp_client = $app->db->queryOneRecord("SELECT * FROM client WHERE client_id = ?", intval($tmp_sys_group['client_id'])); if(is_array($tmp_client) && !empty($tmp_client) && trim($this->dataRecord['ssl_organisation']) == '' && trim($this->dataRecord['ssl_locality']) == '' && trim($this->dataRecord['ssl_state']) == '' && trim($this->dataRecord['ssl_organisation_unit']) == '') $app->tpl->setVar("show_helper_links", true); $app->tpl->setVar('is_ssl_enabled', $tmp_web['ssl']); + $app->tpl->setVar('is_le_enabled', $tmp_web['ssl_letsencrypt']); } $sys_config = $app->getconf->get_global_config('misc'); -- GitLab From 74f042e1b6127786028b5ebb4d878b374fe75a14 Mon Sep 17 00:00:00 2001 From: thom Date: Tue, 6 Oct 2020 19:58:06 +0200 Subject: [PATCH 008/300] Use correct path for AWStats (#4993) --- install/dist/conf/centos72.conf.php | 3 +++ install/dist/conf/centos80.conf.php | 3 +++ 2 files changed, 6 insertions(+) diff --git a/install/dist/conf/centos72.conf.php b/install/dist/conf/centos72.conf.php index 221cc5d7c4..8bb2ca5239 100644 --- a/install/dist/conf/centos72.conf.php +++ b/install/dist/conf/centos72.conf.php @@ -96,6 +96,9 @@ $conf['web']['apps_vhost_servername'] = ''; $conf['web']['apps_vhost_user'] = 'ispapps'; $conf['web']['apps_vhost_group'] = 'ispapps'; +//* AWStats settings +$conf['awstats']['pl'] = '/usr/share/awstats/wwwroot/cgi-bin/awstats.pl'; + //* Fastcgi $conf['fastcgi']['fastcgi_phpini_path'] = '/etc/'; $conf['fastcgi']['fastcgi_starter_path'] = '/var/www/php-fcgi-scripts/[system_user]/'; diff --git a/install/dist/conf/centos80.conf.php b/install/dist/conf/centos80.conf.php index 04257d4dfe..0411fb9ce5 100644 --- a/install/dist/conf/centos80.conf.php +++ b/install/dist/conf/centos80.conf.php @@ -96,6 +96,9 @@ $conf['web']['apps_vhost_servername'] = ''; $conf['web']['apps_vhost_user'] = 'ispapps'; $conf['web']['apps_vhost_group'] = 'ispapps'; +//* AWStats settings +$conf['awstats']['pl'] = '/usr/share/awstats/wwwroot/cgi-bin/awstats.pl'; + //* Fastcgi $conf['fastcgi']['fastcgi_phpini_path'] = '/etc/'; $conf['fastcgi']['fastcgi_starter_path'] = '/var/www/php-fcgi-scripts/[system_user]/'; -- GitLab From 25d018cf06cb3f845aba494f750f6fbf2b0fb215 Mon Sep 17 00:00:00 2001 From: thom Date: Tue, 6 Oct 2020 20:04:19 +0200 Subject: [PATCH 009/300] Make retrieving subdomain zones possible and allow 63 char TLDs (#4522 and #3500) --- interface/lib/classes/remote.d/dns.inc.php | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/interface/lib/classes/remote.d/dns.inc.php b/interface/lib/classes/remote.d/dns.inc.php index 3129c6a3a2..b65dd63c8d 100644 --- a/interface/lib/classes/remote.d/dns.inc.php +++ b/interface/lib/classes/remote.d/dns.inc.php @@ -249,7 +249,7 @@ class remoting_dns extends remoting { return false; } - if(!preg_match('/^[a-z0-9][a-z0-9\-]+[a-z0-9](\.[a-z]{2,4})+$/i', $origin)){ + if(!preg_match('/^[\w\.\-]{2,64}\.[a-zA-Z0-9\-]{2,63}$/', $origin)){ throw new SoapFault('no_domain_found', 'Invalid domain name.'); return false; } -- GitLab From 150a818602d8cb96ee2c59c88ef1918e0f3f639b Mon Sep 17 00:00:00 2001 From: thom Date: Tue, 6 Oct 2020 21:00:16 +0200 Subject: [PATCH 010/300] Friendly labels for redirect types (#4987) --- interface/web/sites/form/web_childdomain.tform.php | 2 +- interface/web/sites/form/web_vhost_domain.tform.php | 2 +- interface/web/sites/lib/lang/ar_web_aliasdomain.lng | 4 ++++ interface/web/sites/lib/lang/ar_web_childdomain.lng | 4 ++++ interface/web/sites/lib/lang/ar_web_domain.lng | 4 ++++ interface/web/sites/lib/lang/ar_web_subdomain.lng | 4 ++++ interface/web/sites/lib/lang/ar_web_vhost_domain.lng | 4 ++++ interface/web/sites/lib/lang/ar_web_vhost_subdomain.lng | 4 ++++ interface/web/sites/lib/lang/bg_web_aliasdomain.lng | 4 ++++ interface/web/sites/lib/lang/bg_web_childdomain.lng | 4 ++++ interface/web/sites/lib/lang/bg_web_domain.lng | 4 ++++ interface/web/sites/lib/lang/bg_web_subdomain.lng | 4 ++++ interface/web/sites/lib/lang/bg_web_vhost_domain.lng | 4 ++++ interface/web/sites/lib/lang/bg_web_vhost_subdomain.lng | 4 ++++ interface/web/sites/lib/lang/br_web_aliasdomain.lng | 4 ++++ interface/web/sites/lib/lang/br_web_childdomain.lng | 4 ++++ interface/web/sites/lib/lang/br_web_domain.lng | 4 ++++ interface/web/sites/lib/lang/br_web_subdomain.lng | 4 ++++ interface/web/sites/lib/lang/br_web_vhost_domain.lng | 4 ++++ interface/web/sites/lib/lang/br_web_vhost_subdomain.lng | 4 ++++ interface/web/sites/lib/lang/ca_web_aliasdomain.lng | 4 ++++ interface/web/sites/lib/lang/ca_web_childdomain.lng | 4 ++++ interface/web/sites/lib/lang/ca_web_domain.lng | 4 ++++ interface/web/sites/lib/lang/ca_web_subdomain.lng | 4 ++++ interface/web/sites/lib/lang/ca_web_vhost_domain.lng | 4 ++++ interface/web/sites/lib/lang/ca_web_vhost_subdomain.lng | 4 ++++ interface/web/sites/lib/lang/cz_web_aliasdomain.lng | 4 ++++ interface/web/sites/lib/lang/cz_web_childdomain.lng | 4 ++++ interface/web/sites/lib/lang/cz_web_domain.lng | 4 ++++ interface/web/sites/lib/lang/cz_web_subdomain.lng | 4 ++++ interface/web/sites/lib/lang/cz_web_vhost_domain.lng | 4 ++++ interface/web/sites/lib/lang/cz_web_vhost_subdomain.lng | 4 ++++ interface/web/sites/lib/lang/de_web_aliasdomain.lng | 4 ++++ interface/web/sites/lib/lang/de_web_childdomain.lng | 4 ++++ interface/web/sites/lib/lang/de_web_domain.lng | 4 ++++ interface/web/sites/lib/lang/de_web_subdomain.lng | 4 ++++ interface/web/sites/lib/lang/de_web_vhost_domain.lng | 4 ++++ interface/web/sites/lib/lang/de_web_vhost_subdomain.lng | 4 ++++ interface/web/sites/lib/lang/dk_web_aliasdomain.lng | 4 ++++ interface/web/sites/lib/lang/dk_web_childdomain.lng | 4 ++++ interface/web/sites/lib/lang/dk_web_domain.lng | 4 ++++ interface/web/sites/lib/lang/dk_web_subdomain.lng | 4 ++++ interface/web/sites/lib/lang/dk_web_vhost_domain.lng | 4 ++++ interface/web/sites/lib/lang/dk_web_vhost_subdomain.lng | 4 ++++ interface/web/sites/lib/lang/el_web_aliasdomain.lng | 4 ++++ interface/web/sites/lib/lang/el_web_childdomain.lng | 4 ++++ interface/web/sites/lib/lang/el_web_domain.lng | 4 ++++ interface/web/sites/lib/lang/el_web_subdomain.lng | 4 ++++ interface/web/sites/lib/lang/el_web_vhost_domain.lng | 4 ++++ interface/web/sites/lib/lang/el_web_vhost_subdomain.lng | 4 ++++ interface/web/sites/lib/lang/en_web_aliasdomain.lng | 4 ++++ interface/web/sites/lib/lang/en_web_childdomain.lng | 4 ++++ interface/web/sites/lib/lang/en_web_domain.lng | 6 +++++- interface/web/sites/lib/lang/en_web_subdomain.lng | 4 ++++ interface/web/sites/lib/lang/en_web_vhost_domain.lng | 4 ++++ interface/web/sites/lib/lang/en_web_vhost_subdomain.lng | 4 ++++ interface/web/sites/lib/lang/es_web_aliasdomain.lng | 4 ++++ interface/web/sites/lib/lang/es_web_childdomain.lng | 4 ++++ interface/web/sites/lib/lang/es_web_domain.lng | 4 ++++ interface/web/sites/lib/lang/es_web_subdomain.lng | 4 ++++ interface/web/sites/lib/lang/es_web_vhost_domain.lng | 4 ++++ interface/web/sites/lib/lang/es_web_vhost_subdomain.lng | 4 ++++ interface/web/sites/lib/lang/fi_web_aliasdomain.lng | 4 ++++ interface/web/sites/lib/lang/fi_web_childdomain.lng | 4 ++++ interface/web/sites/lib/lang/fi_web_domain.lng | 4 ++++ interface/web/sites/lib/lang/fi_web_subdomain.lng | 4 ++++ interface/web/sites/lib/lang/fi_web_vhost_domain.lng | 4 ++++ interface/web/sites/lib/lang/fi_web_vhost_subdomain.lng | 4 ++++ interface/web/sites/lib/lang/fr_web_aliasdomain.lng | 4 ++++ interface/web/sites/lib/lang/fr_web_childdomain.lng | 4 ++++ interface/web/sites/lib/lang/fr_web_domain.lng | 4 ++++ interface/web/sites/lib/lang/fr_web_subdomain.lng | 4 ++++ interface/web/sites/lib/lang/fr_web_vhost_domain.lng | 4 ++++ interface/web/sites/lib/lang/fr_web_vhost_subdomain.lng | 4 ++++ interface/web/sites/lib/lang/hr_web_aliasdomain.lng | 4 ++++ interface/web/sites/lib/lang/hr_web_childdomain.lng | 4 ++++ interface/web/sites/lib/lang/hr_web_domain.lng | 4 ++++ interface/web/sites/lib/lang/hr_web_subdomain.lng | 4 ++++ interface/web/sites/lib/lang/hr_web_vhost_domain.lng | 4 ++++ interface/web/sites/lib/lang/hr_web_vhost_subdomain.lng | 4 ++++ interface/web/sites/lib/lang/hu_web_aliasdomain.lng | 4 ++++ interface/web/sites/lib/lang/hu_web_childdomain.lng | 4 ++++ interface/web/sites/lib/lang/hu_web_domain.lng | 4 ++++ interface/web/sites/lib/lang/hu_web_subdomain.lng | 4 ++++ interface/web/sites/lib/lang/hu_web_vhost_domain.lng | 4 ++++ interface/web/sites/lib/lang/hu_web_vhost_subdomain.lng | 4 ++++ interface/web/sites/lib/lang/id_web_aliasdomain.lng | 4 ++++ interface/web/sites/lib/lang/id_web_childdomain.lng | 4 ++++ interface/web/sites/lib/lang/id_web_domain.lng | 4 ++++ interface/web/sites/lib/lang/id_web_subdomain.lng | 4 ++++ interface/web/sites/lib/lang/id_web_vhost_domain.lng | 4 ++++ interface/web/sites/lib/lang/id_web_vhost_subdomain.lng | 4 ++++ interface/web/sites/lib/lang/it_web_aliasdomain.lng | 4 ++++ interface/web/sites/lib/lang/it_web_childdomain.lng | 4 ++++ interface/web/sites/lib/lang/it_web_domain.lng | 4 ++++ interface/web/sites/lib/lang/it_web_subdomain.lng | 4 ++++ interface/web/sites/lib/lang/it_web_vhost_domain.lng | 4 ++++ interface/web/sites/lib/lang/it_web_vhost_subdomain.lng | 4 ++++ interface/web/sites/lib/lang/ja_web_aliasdomain.lng | 4 ++++ interface/web/sites/lib/lang/ja_web_childdomain.lng | 4 ++++ interface/web/sites/lib/lang/ja_web_domain.lng | 4 ++++ interface/web/sites/lib/lang/ja_web_subdomain.lng | 4 ++++ interface/web/sites/lib/lang/ja_web_vhost_domain.lng | 4 ++++ interface/web/sites/lib/lang/ja_web_vhost_subdomain.lng | 4 ++++ interface/web/sites/lib/lang/nl_web_aliasdomain.lng | 4 ++++ interface/web/sites/lib/lang/nl_web_childdomain.lng | 4 ++++ interface/web/sites/lib/lang/nl_web_domain.lng | 4 ++++ interface/web/sites/lib/lang/nl_web_subdomain.lng | 4 ++++ interface/web/sites/lib/lang/nl_web_vhost_domain.lng | 4 ++++ interface/web/sites/lib/lang/nl_web_vhost_subdomain.lng | 4 ++++ interface/web/sites/lib/lang/pl_web_aliasdomain.lng | 4 ++++ interface/web/sites/lib/lang/pl_web_childdomain.lng | 4 ++++ interface/web/sites/lib/lang/pl_web_domain.lng | 4 ++++ interface/web/sites/lib/lang/pl_web_subdomain.lng | 4 ++++ interface/web/sites/lib/lang/pl_web_vhost_domain.lng | 4 ++++ interface/web/sites/lib/lang/pl_web_vhost_subdomain.lng | 4 ++++ interface/web/sites/lib/lang/pt_web_aliasdomain.lng | 4 ++++ interface/web/sites/lib/lang/pt_web_childdomain.lng | 4 ++++ interface/web/sites/lib/lang/pt_web_domain.lng | 4 ++++ interface/web/sites/lib/lang/pt_web_subdomain.lng | 4 ++++ interface/web/sites/lib/lang/pt_web_vhost_domain.lng | 4 ++++ interface/web/sites/lib/lang/pt_web_vhost_subdomain.lng | 4 ++++ interface/web/sites/lib/lang/ro_web_aliasdomain.lng | 4 ++++ interface/web/sites/lib/lang/ro_web_childdomain.lng | 4 ++++ interface/web/sites/lib/lang/ro_web_domain.lng | 4 ++++ interface/web/sites/lib/lang/ro_web_subdomain.lng | 4 ++++ interface/web/sites/lib/lang/ro_web_vhost_domain.lng | 4 ++++ interface/web/sites/lib/lang/ro_web_vhost_subdomain.lng | 4 ++++ interface/web/sites/lib/lang/ru_web_aliasdomain.lng | 4 ++++ interface/web/sites/lib/lang/ru_web_childdomain.lng | 4 ++++ interface/web/sites/lib/lang/ru_web_domain.lng | 4 ++++ interface/web/sites/lib/lang/ru_web_subdomain.lng | 4 ++++ interface/web/sites/lib/lang/ru_web_vhost_domain.lng | 4 ++++ interface/web/sites/lib/lang/ru_web_vhost_subdomain.lng | 4 ++++ interface/web/sites/lib/lang/se_web_aliasdomain.lng | 4 ++++ interface/web/sites/lib/lang/se_web_childdomain.lng | 4 ++++ interface/web/sites/lib/lang/se_web_domain.lng | 4 ++++ interface/web/sites/lib/lang/se_web_subdomain.lng | 4 ++++ interface/web/sites/lib/lang/se_web_vhost_domain.lng | 4 ++++ interface/web/sites/lib/lang/se_web_vhost_subdomain.lng | 4 ++++ interface/web/sites/lib/lang/sk_web_aliasdomain.lng | 4 ++++ interface/web/sites/lib/lang/sk_web_childdomain.lng | 4 ++++ interface/web/sites/lib/lang/sk_web_domain.lng | 4 ++++ interface/web/sites/lib/lang/sk_web_subdomain.lng | 4 ++++ interface/web/sites/lib/lang/sk_web_vhost_domain.lng | 4 ++++ interface/web/sites/lib/lang/sk_web_vhost_subdomain.lng | 4 ++++ interface/web/sites/lib/lang/tr_web_aliasdomain.lng | 4 ++++ interface/web/sites/lib/lang/tr_web_childdomain.lng | 4 ++++ interface/web/sites/lib/lang/tr_web_domain.lng | 4 ++++ interface/web/sites/lib/lang/tr_web_subdomain.lng | 4 ++++ interface/web/sites/lib/lang/tr_web_vhost_domain.lng | 4 ++++ interface/web/sites/lib/lang/tr_web_vhost_subdomain.lng | 4 ++++ 152 files changed, 603 insertions(+), 3 deletions(-) diff --git a/interface/web/sites/form/web_childdomain.tform.php b/interface/web/sites/form/web_childdomain.tform.php index 01132a75dc..6d4f96e437 100644 --- a/interface/web/sites/form/web_childdomain.tform.php +++ b/interface/web/sites/form/web_childdomain.tform.php @@ -119,7 +119,7 @@ $form["tabs"]['domain'] = array ( 'datatype' => 'VARCHAR', 'formtype' => 'SELECT', 'default' => 'y', - 'value' => array('' => 'no_redirect_txt', 'no' => 'no_flag_txt', 'R' => 'R', 'L' => 'L', 'R,L' => 'R,L', 'R=301,L' => 'R=301,L', 'last' => 'last', 'break' => 'break', 'redirect' => 'redirect', 'permanent' => 'permanent', 'proxy' => 'proxy') + 'value' => array('' => 'no_redirect_txt', 'no' => 'no_flag_txt', 'R' => 'r_redirect_txt', 'L' => 'l_redirect_txt', 'R,L' => 'r_l_redirect_txt', 'R=301,L' => 'r_301_l_redirect_txt', 'last' => 'last', 'break' => 'break', 'redirect' => 'redirect', 'permanent' => 'permanent', 'proxy' => 'proxy') ), 'redirect_path' => array ( 'datatype' => 'VARCHAR', diff --git a/interface/web/sites/form/web_vhost_domain.tform.php b/interface/web/sites/form/web_vhost_domain.tform.php index f5bca55eea..ef365259b8 100644 --- a/interface/web/sites/form/web_vhost_domain.tform.php +++ b/interface/web/sites/form/web_vhost_domain.tform.php @@ -397,7 +397,7 @@ $form["tabs"]['redirect'] = array ( 'datatype' => 'VARCHAR', 'formtype' => 'SELECT', 'default' => '', - 'value' => array('' => 'no_redirect_txt', 'no' => 'no_flag_txt', 'R' => 'R', 'L' => 'L', 'R,L' => 'R,L', 'R=301,L' => 'R=301,L', 'last' => 'last', 'break' => 'break', 'redirect' => 'redirect', 'permanent' => 'permanent', 'proxy' => 'proxy') + 'value' => array('' => 'no_redirect_txt', 'no' => 'no_flag_txt', 'R' => 'r_redirect_txt', 'L' => 'l_redirect_txt', 'R,L' => 'r_l_redirect_txt', 'R=301,L' => 'r_301_l_redirect_txt', 'last' => 'last', 'break' => 'break', 'redirect' => 'redirect', 'permanent' => 'permanent', 'proxy' => 'proxy') ), 'redirect_path' => array ( 'datatype' => 'VARCHAR', diff --git a/interface/web/sites/lib/lang/ar_web_aliasdomain.lng b/interface/web/sites/lib/lang/ar_web_aliasdomain.lng index de094c3086..0a2d659ab4 100644 --- a/interface/web/sites/lib/lang/ar_web_aliasdomain.lng +++ b/interface/web/sites/lib/lang/ar_web_aliasdomain.lng @@ -18,6 +18,10 @@ $wb['web_folder_error_regex'] = 'Invalid folder entered. Please do not enter a s $wb['type_txt'] = 'Type'; $wb['parent_domain_id_txt'] = 'Parent Website'; $wb['redirect_type_txt'] = 'Redirect Type'; +$wb['r_redirect_txt'] = 'R (Temporary redirect)'; +$wb['l_redirect_txt'] = 'L (Last redirect rule)'; +$wb['r_l_redirect_txt'] = 'R,L (Temporary redirect + last rule)'; +$wb['r_301_l_redirect_txt'] = 'R=301,L (Permanent redirect + last rule)'; $wb['redirect_path_txt'] = 'Redirect Path'; $wb['active_txt'] = 'Active'; $wb['document_root_txt'] = 'Documentroot'; diff --git a/interface/web/sites/lib/lang/ar_web_childdomain.lng b/interface/web/sites/lib/lang/ar_web_childdomain.lng index ac527cfc06..525aab760d 100644 --- a/interface/web/sites/lib/lang/ar_web_childdomain.lng +++ b/interface/web/sites/lib/lang/ar_web_childdomain.lng @@ -13,6 +13,10 @@ $wb['domain_txt'] = 'Domain'; $wb['type_txt'] = 'Type'; $wb['parent_domain_id_txt'] = 'Parent Website'; $wb['redirect_type_txt'] = 'Redirect Type'; +$wb['r_redirect_txt'] = 'R (Temporary redirect)'; +$wb['l_redirect_txt'] = 'L (Last redirect rule)'; +$wb['r_l_redirect_txt'] = 'R,L (Temporary redirect + last rule)'; +$wb['r_301_l_redirect_txt'] = 'R=301,L (Permanent redirect + last rule)'; $wb['redirect_path_txt'] = 'Redirect Path'; $wb['active_txt'] = 'Active'; $wb['document_root_txt'] = 'Documentroot'; diff --git a/interface/web/sites/lib/lang/ar_web_domain.lng b/interface/web/sites/lib/lang/ar_web_domain.lng index 24e21f60cf..de91cfa039 100644 --- a/interface/web/sites/lib/lang/ar_web_domain.lng +++ b/interface/web/sites/lib/lang/ar_web_domain.lng @@ -14,6 +14,10 @@ $wb['domain_txt'] = 'Domain'; $wb['type_txt'] = 'Type'; $wb['parent_domain_id_txt'] = 'Parent Website'; $wb['redirect_type_txt'] = 'Redirect Type'; +$wb['r_redirect_txt'] = 'R (Temporary redirect)'; +$wb['l_redirect_txt'] = 'L (Last redirect rule)'; +$wb['r_l_redirect_txt'] = 'R,L (Temporary redirect + last rule)'; +$wb['r_301_l_redirect_txt'] = 'R=301,L (Permanent redirect + last rule)'; $wb['redirect_path_txt'] = 'Redirect Path'; $wb['active_txt'] = 'Active'; $wb['document_root_txt'] = 'Documentroot'; diff --git a/interface/web/sites/lib/lang/ar_web_subdomain.lng b/interface/web/sites/lib/lang/ar_web_subdomain.lng index 7d0e55e3a1..22bd9033c0 100644 --- a/interface/web/sites/lib/lang/ar_web_subdomain.lng +++ b/interface/web/sites/lib/lang/ar_web_subdomain.lng @@ -13,6 +13,10 @@ $wb['domain_txt'] = 'Domain'; $wb['type_txt'] = 'Type'; $wb['parent_domain_id_txt'] = 'Parent Website'; $wb['redirect_type_txt'] = 'Redirect Type'; +$wb['r_redirect_txt'] = 'R (Temporary redirect)'; +$wb['l_redirect_txt'] = 'L (Last redirect rule)'; +$wb['r_l_redirect_txt'] = 'R,L (Temporary redirect + last rule)'; +$wb['r_301_l_redirect_txt'] = 'R=301,L (Permanent redirect + last rule)'; $wb['redirect_path_txt'] = 'Redirect Path'; $wb['active_txt'] = 'Active'; $wb['document_root_txt'] = 'Documentroot'; 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 2fd132c9e7..743975c735 100644 --- a/interface/web/sites/lib/lang/ar_web_vhost_domain.lng +++ b/interface/web/sites/lib/lang/ar_web_vhost_domain.lng @@ -14,6 +14,10 @@ $wb['domain_txt'] = 'Domain'; $wb['type_txt'] = 'Type'; $wb['parent_domain_id_txt'] = 'Parent Website'; $wb['redirect_type_txt'] = 'Redirect Type'; +$wb['r_redirect_txt'] = 'R (Temporary redirect)'; +$wb['l_redirect_txt'] = 'L (Last redirect rule)'; +$wb['r_l_redirect_txt'] = 'R,L (Temporary redirect + last rule)'; +$wb['r_301_l_redirect_txt'] = 'R=301,L (Permanent redirect + last rule)'; $wb['redirect_path_txt'] = 'Redirect Path'; $wb['active_txt'] = 'Active'; $wb['document_root_txt'] = 'Document Root'; diff --git a/interface/web/sites/lib/lang/ar_web_vhost_subdomain.lng b/interface/web/sites/lib/lang/ar_web_vhost_subdomain.lng index 47b9e1aff2..13e1558aa6 100644 --- a/interface/web/sites/lib/lang/ar_web_vhost_subdomain.lng +++ b/interface/web/sites/lib/lang/ar_web_vhost_subdomain.lng @@ -22,6 +22,10 @@ $wb['host_txt'] = 'Hostname'; $wb['web_folder_error_regex'] = 'Invalid folder entered. Please do not enter a slash.'; $wb['type_txt'] = 'Type'; $wb['redirect_type_txt'] = 'Redirect Type'; +$wb['r_redirect_txt'] = 'R (Temporary redirect)'; +$wb['l_redirect_txt'] = 'L (Last redirect rule)'; +$wb['r_l_redirect_txt'] = 'R,L (Temporary redirect + last rule)'; +$wb['r_301_l_redirect_txt'] = 'R=301,L (Permanent redirect + last rule)'; $wb['redirect_path_txt'] = 'Redirect Path'; $wb['active_txt'] = 'Active'; $wb['document_root_txt'] = 'Documentroot'; diff --git a/interface/web/sites/lib/lang/bg_web_aliasdomain.lng b/interface/web/sites/lib/lang/bg_web_aliasdomain.lng index de094c3086..0a2d659ab4 100644 --- a/interface/web/sites/lib/lang/bg_web_aliasdomain.lng +++ b/interface/web/sites/lib/lang/bg_web_aliasdomain.lng @@ -18,6 +18,10 @@ $wb['web_folder_error_regex'] = 'Invalid folder entered. Please do not enter a s $wb['type_txt'] = 'Type'; $wb['parent_domain_id_txt'] = 'Parent Website'; $wb['redirect_type_txt'] = 'Redirect Type'; +$wb['r_redirect_txt'] = 'R (Temporary redirect)'; +$wb['l_redirect_txt'] = 'L (Last redirect rule)'; +$wb['r_l_redirect_txt'] = 'R,L (Temporary redirect + last rule)'; +$wb['r_301_l_redirect_txt'] = 'R=301,L (Permanent redirect + last rule)'; $wb['redirect_path_txt'] = 'Redirect Path'; $wb['active_txt'] = 'Active'; $wb['document_root_txt'] = 'Documentroot'; diff --git a/interface/web/sites/lib/lang/bg_web_childdomain.lng b/interface/web/sites/lib/lang/bg_web_childdomain.lng index 730e802e40..9287b16d8d 100644 --- a/interface/web/sites/lib/lang/bg_web_childdomain.lng +++ b/interface/web/sites/lib/lang/bg_web_childdomain.lng @@ -13,6 +13,10 @@ $wb['domain_txt'] = 'Домейн'; $wb['type_txt'] = 'Тип'; $wb['parent_domain_id_txt'] = 'Parent Website'; $wb['redirect_type_txt'] = 'Redirect Type'; +$wb['r_redirect_txt'] = 'R (Temporary redirect)'; +$wb['l_redirect_txt'] = 'L (Last redirect rule)'; +$wb['r_l_redirect_txt'] = 'R,L (Temporary redirect + last rule)'; +$wb['r_301_l_redirect_txt'] = 'R=301,L (Permanent redirect + last rule)'; $wb['redirect_path_txt'] = 'Redirect Path'; $wb['active_txt'] = 'Активен'; $wb['document_root_txt'] = 'Documentroot'; diff --git a/interface/web/sites/lib/lang/bg_web_domain.lng b/interface/web/sites/lib/lang/bg_web_domain.lng index e5fde7b07a..9e5f9c608a 100644 --- a/interface/web/sites/lib/lang/bg_web_domain.lng +++ b/interface/web/sites/lib/lang/bg_web_domain.lng @@ -13,6 +13,10 @@ $wb['domain_txt'] = 'Домейн'; $wb['type_txt'] = 'Тип'; $wb['parent_domain_id_txt'] = 'Parent Website'; $wb['redirect_type_txt'] = 'Redirect Type'; +$wb['r_redirect_txt'] = 'R (Temporary redirect)'; +$wb['l_redirect_txt'] = 'L (Last redirect rule)'; +$wb['r_l_redirect_txt'] = 'R,L (Temporary redirect + last rule)'; +$wb['r_301_l_redirect_txt'] = 'R=301,L (Permanent redirect + last rule)'; $wb['redirect_path_txt'] = 'Redirect Path'; $wb['active_txt'] = 'Активен'; $wb['document_root_txt'] = 'Documentroot'; diff --git a/interface/web/sites/lib/lang/bg_web_subdomain.lng b/interface/web/sites/lib/lang/bg_web_subdomain.lng index 371a19cba5..9a1ba3b288 100644 --- a/interface/web/sites/lib/lang/bg_web_subdomain.lng +++ b/interface/web/sites/lib/lang/bg_web_subdomain.lng @@ -13,6 +13,10 @@ $wb['domain_txt'] = 'Домейн'; $wb['type_txt'] = 'Тип'; $wb['parent_domain_id_txt'] = 'Parent Website'; $wb['redirect_type_txt'] = 'Redirect Type'; +$wb['r_redirect_txt'] = 'R (Temporary redirect)'; +$wb['l_redirect_txt'] = 'L (Last redirect rule)'; +$wb['r_l_redirect_txt'] = 'R,L (Temporary redirect + last rule)'; +$wb['r_301_l_redirect_txt'] = 'R=301,L (Permanent redirect + last rule)'; $wb['redirect_path_txt'] = 'Redirect Path'; $wb['active_txt'] = 'Активен'; $wb['document_root_txt'] = 'Documentroot'; 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 573fe63a45..a574765fb3 100644 --- a/interface/web/sites/lib/lang/bg_web_vhost_domain.lng +++ b/interface/web/sites/lib/lang/bg_web_vhost_domain.lng @@ -13,6 +13,10 @@ $wb['domain_txt'] = 'Домейн'; $wb['type_txt'] = 'Тип'; $wb['parent_domain_id_txt'] = 'Parent Website'; $wb['redirect_type_txt'] = 'Redirect Type'; +$wb['r_redirect_txt'] = 'R (Temporary redirect)'; +$wb['l_redirect_txt'] = 'L (Last redirect rule)'; +$wb['r_l_redirect_txt'] = 'R,L (Temporary redirect + last rule)'; +$wb['r_301_l_redirect_txt'] = 'R=301,L (Permanent redirect + last rule)'; $wb['redirect_path_txt'] = 'Redirect Path'; $wb['active_txt'] = 'Активен'; $wb['document_root_txt'] = 'Document Root'; diff --git a/interface/web/sites/lib/lang/bg_web_vhost_subdomain.lng b/interface/web/sites/lib/lang/bg_web_vhost_subdomain.lng index 47b9e1aff2..13e1558aa6 100644 --- a/interface/web/sites/lib/lang/bg_web_vhost_subdomain.lng +++ b/interface/web/sites/lib/lang/bg_web_vhost_subdomain.lng @@ -22,6 +22,10 @@ $wb['host_txt'] = 'Hostname'; $wb['web_folder_error_regex'] = 'Invalid folder entered. Please do not enter a slash.'; $wb['type_txt'] = 'Type'; $wb['redirect_type_txt'] = 'Redirect Type'; +$wb['r_redirect_txt'] = 'R (Temporary redirect)'; +$wb['l_redirect_txt'] = 'L (Last redirect rule)'; +$wb['r_l_redirect_txt'] = 'R,L (Temporary redirect + last rule)'; +$wb['r_301_l_redirect_txt'] = 'R=301,L (Permanent redirect + last rule)'; $wb['redirect_path_txt'] = 'Redirect Path'; $wb['active_txt'] = 'Active'; $wb['document_root_txt'] = 'Documentroot'; diff --git a/interface/web/sites/lib/lang/br_web_aliasdomain.lng b/interface/web/sites/lib/lang/br_web_aliasdomain.lng index a996b897cf..0654ea4329 100644 --- a/interface/web/sites/lib/lang/br_web_aliasdomain.lng +++ b/interface/web/sites/lib/lang/br_web_aliasdomain.lng @@ -18,6 +18,10 @@ $wb['web_folder_error_regex'] = 'Pasta web é inválida. Por favor não utilize $wb['type_txt'] = 'Tipo'; $wb['parent_domain_id_txt'] = 'Site Pai'; $wb['redirect_type_txt'] = 'Tipo de redirecionamento'; +$wb['r_redirect_txt'] = 'R (Temporary redirect)'; +$wb['l_redirect_txt'] = 'L (Last redirect rule)'; +$wb['r_l_redirect_txt'] = 'R,L (Temporary redirect + last rule)'; +$wb['r_301_l_redirect_txt'] = 'R=301,L (Permanent redirect + last rule)'; $wb['redirect_path_txt'] = 'Caminho para o redirecionamento'; $wb['active_txt'] = 'Ativo'; $wb['document_root_txt'] = 'Documentroot'; diff --git a/interface/web/sites/lib/lang/br_web_childdomain.lng b/interface/web/sites/lib/lang/br_web_childdomain.lng index 67b8f6f732..982c25cbe3 100644 --- a/interface/web/sites/lib/lang/br_web_childdomain.lng +++ b/interface/web/sites/lib/lang/br_web_childdomain.lng @@ -13,6 +13,10 @@ $wb['domain_txt'] = 'Domínio'; $wb['type_txt'] = 'Tipo'; $wb['parent_domain_id_txt'] = 'Site Pai'; $wb['redirect_type_txt'] = 'Tipo de redirecionamento'; +$wb['r_redirect_txt'] = 'R (Temporary redirect)'; +$wb['l_redirect_txt'] = 'L (Last redirect rule)'; +$wb['r_l_redirect_txt'] = 'R,L (Temporary redirect + last rule)'; +$wb['r_301_l_redirect_txt'] = 'R=301,L (Permanent redirect + last rule)'; $wb['redirect_path_txt'] = 'Caminho para o redirecionamento'; $wb['active_txt'] = 'Ativo'; $wb['document_root_txt'] = 'Documentroot'; diff --git a/interface/web/sites/lib/lang/br_web_domain.lng b/interface/web/sites/lib/lang/br_web_domain.lng index bf23ab8089..76b35cf533 100644 --- a/interface/web/sites/lib/lang/br_web_domain.lng +++ b/interface/web/sites/lib/lang/br_web_domain.lng @@ -18,6 +18,10 @@ $wb['web_folder_error_regex'] = 'Pasta web é inválida. Por favor não utilize $wb['type_txt'] = 'Tipo'; $wb['parent_domain_id_txt'] = 'Site Pai'; $wb['redirect_type_txt'] = 'Tipo de redirecionamento'; +$wb['r_redirect_txt'] = 'R (Temporary redirect)'; +$wb['l_redirect_txt'] = 'L (Last redirect rule)'; +$wb['r_l_redirect_txt'] = 'R,L (Temporary redirect + last rule)'; +$wb['r_301_l_redirect_txt'] = 'R=301,L (Permanent redirect + last rule)'; $wb['redirect_path_txt'] = 'Caminho para o redirecionamento'; $wb['active_txt'] = 'Ativo'; $wb['document_root_txt'] = 'Documentroot'; diff --git a/interface/web/sites/lib/lang/br_web_subdomain.lng b/interface/web/sites/lib/lang/br_web_subdomain.lng index abe7883027..e8fca3e048 100644 --- a/interface/web/sites/lib/lang/br_web_subdomain.lng +++ b/interface/web/sites/lib/lang/br_web_subdomain.lng @@ -13,6 +13,10 @@ $wb['domain_txt'] = 'Domínio'; $wb['type_txt'] = 'Tipo'; $wb['parent_domain_id_txt'] = 'Site Pai'; $wb['redirect_type_txt'] = 'Tipo de redirecionamento'; +$wb['r_redirect_txt'] = 'R (Temporary redirect)'; +$wb['l_redirect_txt'] = 'L (Last redirect rule)'; +$wb['r_l_redirect_txt'] = 'R,L (Temporary redirect + last rule)'; +$wb['r_301_l_redirect_txt'] = 'R=301,L (Permanent redirect + last rule)'; $wb['redirect_path_txt'] = 'Caminho para o redirecionamento'; $wb['active_txt'] = 'Ativo'; $wb['document_root_txt'] = 'Documentroot'; 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 835ceeae4d..e9457617f8 100644 --- a/interface/web/sites/lib/lang/br_web_vhost_domain.lng +++ b/interface/web/sites/lib/lang/br_web_vhost_domain.lng @@ -18,6 +18,10 @@ $wb['web_folder_error_regex'] = 'Pasta web é inválida. Por favor não utilize $wb['type_txt'] = 'Tipo'; $wb['parent_domain_id_txt'] = 'Site Pai'; $wb['redirect_type_txt'] = 'Tipo de redirecionamento'; +$wb['r_redirect_txt'] = 'R (Temporary redirect)'; +$wb['l_redirect_txt'] = 'L (Last redirect rule)'; +$wb['r_l_redirect_txt'] = 'R,L (Temporary redirect + last rule)'; +$wb['r_301_l_redirect_txt'] = 'R=301,L (Permanent redirect + last rule)'; $wb['redirect_path_txt'] = 'Caminho para o redirecionamento'; $wb['active_txt'] = 'Ativo'; $wb['document_root_txt'] = 'Document-root'; 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 90558b0af7..5d90aa1b25 100644 --- a/interface/web/sites/lib/lang/br_web_vhost_subdomain.lng +++ b/interface/web/sites/lib/lang/br_web_vhost_subdomain.lng @@ -23,6 +23,10 @@ $wb['web_folder_error_regex'] = 'Pasta web é inválida. Por favor não utilize $wb['type_txt'] = 'Tipo'; $wb['parent_domain_id_txt'] = 'Site Pai'; $wb['redirect_type_txt'] = 'Tipo de redirecionamento'; +$wb['r_redirect_txt'] = 'R (Temporary redirect)'; +$wb['l_redirect_txt'] = 'L (Last redirect rule)'; +$wb['r_l_redirect_txt'] = 'R,L (Temporary redirect + last rule)'; +$wb['r_301_l_redirect_txt'] = 'R=301,L (Permanent redirect + last rule)'; $wb['redirect_path_txt'] = 'Caminho para o redirecionamento'; $wb['active_txt'] = 'Ativo'; $wb['document_root_txt'] = 'Documentroot'; diff --git a/interface/web/sites/lib/lang/ca_web_aliasdomain.lng b/interface/web/sites/lib/lang/ca_web_aliasdomain.lng index f604bb84a9..300827df24 100644 --- a/interface/web/sites/lib/lang/ca_web_aliasdomain.lng +++ b/interface/web/sites/lib/lang/ca_web_aliasdomain.lng @@ -18,6 +18,10 @@ $wb['web_folder_error_regex'] = 'Dossier invalide. Ne saisissez pas de ./ (slash $wb['type_txt'] = 'Type'; $wb['parent_domain_id_txt'] = 'Site Web parent'; $wb['redirect_type_txt'] = 'Type de redirection'; +$wb['r_redirect_txt'] = 'R (Temporary redirect)'; +$wb['l_redirect_txt'] = 'L (Last redirect rule)'; +$wb['r_l_redirect_txt'] = 'R,L (Temporary redirect + last rule)'; +$wb['r_301_l_redirect_txt'] = 'R=301,L (Permanent redirect + last rule)'; $wb['redirect_path_txt'] = 'Chemin de redirection'; $wb['active_txt'] = 'Actif'; $wb['document_root_txt'] = 'Dossier racine'; diff --git a/interface/web/sites/lib/lang/ca_web_childdomain.lng b/interface/web/sites/lib/lang/ca_web_childdomain.lng index ce3fde0ace..2ef375ccb1 100644 --- a/interface/web/sites/lib/lang/ca_web_childdomain.lng +++ b/interface/web/sites/lib/lang/ca_web_childdomain.lng @@ -13,6 +13,10 @@ $wb['domain_txt'] = 'Domain'; $wb['type_txt'] = 'Type'; $wb['parent_domain_id_txt'] = 'Parent Website'; $wb['redirect_type_txt'] = 'Redirect Type'; +$wb['r_redirect_txt'] = 'R (Temporary redirect)'; +$wb['l_redirect_txt'] = 'L (Last redirect rule)'; +$wb['r_l_redirect_txt'] = 'R,L (Temporary redirect + last rule)'; +$wb['r_301_l_redirect_txt'] = 'R=301,L (Permanent redirect + last rule)'; $wb['redirect_path_txt'] = 'Redirect Path'; $wb['active_txt'] = 'Active'; $wb['document_root_txt'] = 'Documentroot'; diff --git a/interface/web/sites/lib/lang/ca_web_domain.lng b/interface/web/sites/lib/lang/ca_web_domain.lng index 780d3f899e..99c79954d6 100644 --- a/interface/web/sites/lib/lang/ca_web_domain.lng +++ b/interface/web/sites/lib/lang/ca_web_domain.lng @@ -13,6 +13,10 @@ $wb['domain_txt'] = 'Domaine'; $wb['type_txt'] = 'Type'; $wb['parent_domain_id_txt'] = 'Site web parent'; $wb['redirect_type_txt'] = 'Type de redirection'; +$wb['r_redirect_txt'] = 'R (Temporary redirect)'; +$wb['l_redirect_txt'] = 'L (Last redirect rule)'; +$wb['r_l_redirect_txt'] = 'R,L (Temporary redirect + last rule)'; +$wb['r_301_l_redirect_txt'] = 'R=301,L (Permanent redirect + last rule)'; $wb['redirect_path_txt'] = 'Chemin de redirection'; $wb['active_txt'] = 'Actif'; $wb['document_root_txt'] = 'Racine du document'; diff --git a/interface/web/sites/lib/lang/ca_web_subdomain.lng b/interface/web/sites/lib/lang/ca_web_subdomain.lng index 44a6c822f4..4b97842bf3 100644 --- a/interface/web/sites/lib/lang/ca_web_subdomain.lng +++ b/interface/web/sites/lib/lang/ca_web_subdomain.lng @@ -13,6 +13,10 @@ $wb['domain_txt'] = 'Domaine'; $wb['type_txt'] = 'Type'; $wb['parent_domain_id_txt'] = 'Site web parent'; $wb['redirect_type_txt'] = 'Type de redirection'; +$wb['r_redirect_txt'] = 'R (Temporary redirect)'; +$wb['l_redirect_txt'] = 'L (Last redirect rule)'; +$wb['r_l_redirect_txt'] = 'R,L (Temporary redirect + last rule)'; +$wb['r_301_l_redirect_txt'] = 'R=301,L (Permanent redirect + last rule)'; $wb['redirect_path_txt'] = 'Chemin de redirection'; $wb['active_txt'] = 'Actif'; $wb['document_root_txt'] = 'Racine du document'; 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 65c21fd2dd..7eef0f38dd 100644 --- a/interface/web/sites/lib/lang/ca_web_vhost_domain.lng +++ b/interface/web/sites/lib/lang/ca_web_vhost_domain.lng @@ -18,6 +18,10 @@ $wb['web_folder_error_regex'] = 'Invalid folder entered. Please do not enter a s $wb['type_txt'] = 'Type'; $wb['parent_domain_id_txt'] = 'Parent Website'; $wb['redirect_type_txt'] = 'Redirect Type'; +$wb['r_redirect_txt'] = 'R (Temporary redirect)'; +$wb['l_redirect_txt'] = 'L (Last redirect rule)'; +$wb['r_l_redirect_txt'] = 'R,L (Temporary redirect + last rule)'; +$wb['r_301_l_redirect_txt'] = 'R=301,L (Permanent redirect + last rule)'; $wb['redirect_path_txt'] = 'Redirect Path'; $wb['active_txt'] = 'Active'; $wb['document_root_txt'] = 'Document Root'; diff --git a/interface/web/sites/lib/lang/ca_web_vhost_subdomain.lng b/interface/web/sites/lib/lang/ca_web_vhost_subdomain.lng index e59ff9496f..c5ef06416a 100644 --- a/interface/web/sites/lib/lang/ca_web_vhost_subdomain.lng +++ b/interface/web/sites/lib/lang/ca_web_vhost_subdomain.lng @@ -22,6 +22,10 @@ $wb['host_txt'] = 'Hostname'; $wb['web_folder_error_regex'] = 'Invalid folder entered. Please do not enter a slash.'; $wb['type_txt'] = 'Type'; $wb['redirect_type_txt'] = 'Redirect Type'; +$wb['r_redirect_txt'] = 'R (Temporary redirect)'; +$wb['l_redirect_txt'] = 'L (Last redirect rule)'; +$wb['r_l_redirect_txt'] = 'R,L (Temporary redirect + last rule)'; +$wb['r_301_l_redirect_txt'] = 'R=301,L (Permanent redirect + last rule)'; $wb['redirect_path_txt'] = 'Redirect Path'; $wb['active_txt'] = 'Active'; $wb['document_root_txt'] = 'Documentroot'; diff --git a/interface/web/sites/lib/lang/cz_web_aliasdomain.lng b/interface/web/sites/lib/lang/cz_web_aliasdomain.lng index 8231f198e2..633f0d9462 100644 --- a/interface/web/sites/lib/lang/cz_web_aliasdomain.lng +++ b/interface/web/sites/lib/lang/cz_web_aliasdomain.lng @@ -18,6 +18,10 @@ $wb['web_folder_error_regex'] = 'Invalid folder entered. Please do not enter a s $wb['type_txt'] = 'Typ'; $wb['parent_domain_id_txt'] = 'Rodičovské webové stránky'; $wb['redirect_type_txt'] = 'Typ přesměrování'; +$wb['r_redirect_txt'] = 'R (Temporary redirect)'; +$wb['l_redirect_txt'] = 'L (Last redirect rule)'; +$wb['r_l_redirect_txt'] = 'R,L (Temporary redirect + last rule)'; +$wb['r_301_l_redirect_txt'] = 'R=301,L (Permanent redirect + last rule)'; $wb['redirect_path_txt'] = 'Cesta přesměrování'; $wb['active_txt'] = 'Aktivní'; $wb['document_root_txt'] = 'Documentroot'; diff --git a/interface/web/sites/lib/lang/cz_web_childdomain.lng b/interface/web/sites/lib/lang/cz_web_childdomain.lng index c2befac393..e00f0facfd 100644 --- a/interface/web/sites/lib/lang/cz_web_childdomain.lng +++ b/interface/web/sites/lib/lang/cz_web_childdomain.lng @@ -18,6 +18,10 @@ $wb['web_folder_error_regex'] = 'Invalid folder entered. Please do not enter a s $wb['type_txt'] = 'Typ'; $wb['parent_domain_id_txt'] = 'Rodičovské webové stránky'; $wb['redirect_type_txt'] = 'Typ přesměrování'; +$wb['r_redirect_txt'] = 'R (Temporary redirect)'; +$wb['l_redirect_txt'] = 'L (Last redirect rule)'; +$wb['r_l_redirect_txt'] = 'R,L (Temporary redirect + last rule)'; +$wb['r_301_l_redirect_txt'] = 'R=301,L (Permanent redirect + last rule)'; $wb['redirect_path_txt'] = 'Cesta přesměrování'; $wb['active_txt'] = 'Aktivní'; $wb['document_root_txt'] = 'Kořenový adresář dokumentů'; diff --git a/interface/web/sites/lib/lang/cz_web_domain.lng b/interface/web/sites/lib/lang/cz_web_domain.lng index eb500239df..5ae091394c 100644 --- a/interface/web/sites/lib/lang/cz_web_domain.lng +++ b/interface/web/sites/lib/lang/cz_web_domain.lng @@ -14,6 +14,10 @@ $wb['domain_txt'] = 'Doména'; $wb['type_txt'] = 'Typ'; $wb['parent_domain_id_txt'] = 'Rodičovská webová stránka'; $wb['redirect_type_txt'] = 'Typ přesměrování'; +$wb['r_redirect_txt'] = 'R (Temporary redirect)'; +$wb['l_redirect_txt'] = 'L (Last redirect rule)'; +$wb['r_l_redirect_txt'] = 'R,L (Temporary redirect + last rule)'; +$wb['r_301_l_redirect_txt'] = 'R=301,L (Permanent redirect + last rule)'; $wb['redirect_path_txt'] = 'Cesta přesměrování'; $wb['active_txt'] = 'Aktivní'; $wb['document_root_txt'] = 'Kořenový adresář dokumentů'; diff --git a/interface/web/sites/lib/lang/cz_web_subdomain.lng b/interface/web/sites/lib/lang/cz_web_subdomain.lng index 208f0c5599..1bea3aa5da 100644 --- a/interface/web/sites/lib/lang/cz_web_subdomain.lng +++ b/interface/web/sites/lib/lang/cz_web_subdomain.lng @@ -13,6 +13,10 @@ $wb['domain_txt'] = 'Doména'; $wb['type_txt'] = 'Typ'; $wb['parent_domain_id_txt'] = 'Rodičovská web stránka'; $wb['redirect_type_txt'] = 'Typ přesměrování'; +$wb['r_redirect_txt'] = 'R (Temporary redirect)'; +$wb['l_redirect_txt'] = 'L (Last redirect rule)'; +$wb['r_l_redirect_txt'] = 'R,L (Temporary redirect + last rule)'; +$wb['r_301_l_redirect_txt'] = 'R=301,L (Permanent redirect + last rule)'; $wb['redirect_path_txt'] = 'Cesta přesměrování'; $wb['active_txt'] = 'Aktivní'; $wb['document_root_txt'] = 'Kořenový adresář dokumentů'; 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 5d3caf5c90..1135080be6 100644 --- a/interface/web/sites/lib/lang/cz_web_vhost_domain.lng +++ b/interface/web/sites/lib/lang/cz_web_vhost_domain.lng @@ -21,6 +21,10 @@ $wb['type_txt'] = 'Verze'; $wb['host_txt'] = 'Název hostitele'; $wb['web_folder_error_regex'] = 'Invalid folder entered. Please do not enter a slash.'; $wb['redirect_type_txt'] = 'Typ přesměrování'; +$wb['r_redirect_txt'] = 'R (Temporary redirect)'; +$wb['l_redirect_txt'] = 'L (Last redirect rule)'; +$wb['r_l_redirect_txt'] = 'R,L (Temporary redirect + last rule)'; +$wb['r_301_l_redirect_txt'] = 'R=301,L (Permanent redirect + last rule)'; $wb['redirect_path_txt'] = 'Cesta přesměrování'; $wb['active_txt'] = 'Aktivní'; $wb['document_root_txt'] = 'Document Root'; 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 2b13a2626b..7a2374d6dd 100644 --- a/interface/web/sites/lib/lang/cz_web_vhost_subdomain.lng +++ b/interface/web/sites/lib/lang/cz_web_vhost_subdomain.lng @@ -22,6 +22,10 @@ $wb['host_txt'] = 'Název hostitele'; $wb['web_folder_error_regex'] = 'Invalid folder entered. Please do not enter a slash.'; $wb['type_txt'] = 'Verze'; $wb['redirect_type_txt'] = 'Typ přesměrování'; +$wb['r_redirect_txt'] = 'R (Temporary redirect)'; +$wb['l_redirect_txt'] = 'L (Last redirect rule)'; +$wb['r_l_redirect_txt'] = 'R,L (Temporary redirect + last rule)'; +$wb['r_301_l_redirect_txt'] = 'R=301,L (Permanent redirect + last rule)'; $wb['redirect_path_txt'] = 'Cesta přesměrování'; $wb['active_txt'] = 'Aktivní'; $wb['document_root_txt'] = 'Documentroot'; diff --git a/interface/web/sites/lib/lang/de_web_aliasdomain.lng b/interface/web/sites/lib/lang/de_web_aliasdomain.lng index d177a3bdc2..9a073c533f 100644 --- a/interface/web/sites/lib/lang/de_web_aliasdomain.lng +++ b/interface/web/sites/lib/lang/de_web_aliasdomain.lng @@ -18,6 +18,10 @@ $wb['web_folder_error_regex'] = 'Ungültige Ordnerangabe. Bitte geben Sie keinen $wb['type_txt'] = 'Typ'; $wb['parent_domain_id_txt'] = 'Hauptwebseite'; $wb['redirect_type_txt'] = 'Weiterleitungstyp'; +$wb['r_redirect_txt'] = 'R (Temporary redirect)'; +$wb['l_redirect_txt'] = 'L (Last redirect rule)'; +$wb['r_l_redirect_txt'] = 'R,L (Temporary redirect + last rule)'; +$wb['r_301_l_redirect_txt'] = 'R=301,L (Permanent redirect + last rule)'; $wb['redirect_path_txt'] = 'Weiterleitungsziel'; $wb['active_txt'] = 'Aktiv'; $wb['document_root_txt'] = 'Documentroot'; diff --git a/interface/web/sites/lib/lang/de_web_childdomain.lng b/interface/web/sites/lib/lang/de_web_childdomain.lng index 7e2b6d274f..28b33f291c 100644 --- a/interface/web/sites/lib/lang/de_web_childdomain.lng +++ b/interface/web/sites/lib/lang/de_web_childdomain.lng @@ -13,6 +13,10 @@ $wb['domain_txt'] = 'Domain'; $wb['type_txt'] = 'Typ'; $wb['parent_domain_id_txt'] = 'Zugehörige Webseite'; $wb['redirect_type_txt'] = 'Weiterleitungstyp'; +$wb['r_redirect_txt'] = 'R (Temporary redirect)'; +$wb['l_redirect_txt'] = 'L (Last redirect rule)'; +$wb['r_l_redirect_txt'] = 'R,L (Temporary redirect + last rule)'; +$wb['r_301_l_redirect_txt'] = 'R=301,L (Permanent redirect + last rule)'; $wb['redirect_path_txt'] = 'Weiterleitungsziel'; $wb['active_txt'] = 'Aktiv'; $wb['document_root_txt'] = 'Documentroot'; diff --git a/interface/web/sites/lib/lang/de_web_domain.lng b/interface/web/sites/lib/lang/de_web_domain.lng index 867ea6a851..7c41fe99e1 100644 --- a/interface/web/sites/lib/lang/de_web_domain.lng +++ b/interface/web/sites/lib/lang/de_web_domain.lng @@ -15,6 +15,10 @@ $wb['type_txt'] = 'Typ'; $wb['parent_domain_id_txt'] = 'Zugehörige Webseite'; $wb['web_folder_error_regex'] = 'Ungültige Verzeichnisangabe, bitte keinen / eingeben.'; $wb['redirect_type_txt'] = 'Weiterleitungstyp'; +$wb['r_redirect_txt'] = 'R (Temporary redirect)'; +$wb['l_redirect_txt'] = 'L (Last redirect rule)'; +$wb['r_l_redirect_txt'] = 'R,L (Temporary redirect + last rule)'; +$wb['r_301_l_redirect_txt'] = 'R=301,L (Permanent redirect + last rule)'; $wb['redirect_path_txt'] = 'Weiterleitungspfad'; $wb['active_txt'] = 'Aktiv'; $wb['document_root_txt'] = 'Documentroot'; diff --git a/interface/web/sites/lib/lang/de_web_subdomain.lng b/interface/web/sites/lib/lang/de_web_subdomain.lng index 7dcf2c19d8..030d43a905 100644 --- a/interface/web/sites/lib/lang/de_web_subdomain.lng +++ b/interface/web/sites/lib/lang/de_web_subdomain.lng @@ -13,6 +13,10 @@ $wb['domain_txt'] = 'Domain'; $wb['type_txt'] = 'Typ'; $wb['parent_domain_id_txt'] = 'Zugehörige Webseite'; $wb['redirect_type_txt'] = 'Weiterleitungstyp'; +$wb['r_redirect_txt'] = 'R (Temporary redirect)'; +$wb['l_redirect_txt'] = 'L (Last redirect rule)'; +$wb['r_l_redirect_txt'] = 'R,L (Temporary redirect + last rule)'; +$wb['r_301_l_redirect_txt'] = 'R=301,L (Permanent redirect + last rule)'; $wb['redirect_path_txt'] = 'Weiterleitungsziel'; $wb['active_txt'] = 'Aktiv'; $wb['document_root_txt'] = 'Documentroot'; 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 3b13009ab7..27424cc9d0 100644 --- a/interface/web/sites/lib/lang/de_web_vhost_domain.lng +++ b/interface/web/sites/lib/lang/de_web_vhost_domain.lng @@ -15,6 +15,10 @@ $wb['type_txt'] = 'Typ'; $wb['parent_domain_id_txt'] = 'Zugehörige Webseite'; $wb['web_folder_error_regex'] = 'Ungültige Verzeichnisangabe, bitte keinen / eingeben.'; $wb['redirect_type_txt'] = 'Weiterleitungstyp'; +$wb['r_redirect_txt'] = 'R (Temporary redirect)'; +$wb['l_redirect_txt'] = 'L (Last redirect rule)'; +$wb['r_l_redirect_txt'] = 'R,L (Temporary redirect + last rule)'; +$wb['r_301_l_redirect_txt'] = 'R=301,L (Permanent redirect + last rule)'; $wb['redirect_path_txt'] = 'Weiterleitungspfad'; $wb['active_txt'] = 'Aktiv'; $wb['document_root_txt'] = 'Document Root'; diff --git a/interface/web/sites/lib/lang/de_web_vhost_subdomain.lng b/interface/web/sites/lib/lang/de_web_vhost_subdomain.lng index 31002b7a17..5941e822e4 100644 --- a/interface/web/sites/lib/lang/de_web_vhost_subdomain.lng +++ b/interface/web/sites/lib/lang/de_web_vhost_subdomain.lng @@ -19,6 +19,10 @@ $wb['host_txt'] = 'Host'; $wb['type_txt'] = 'Typ'; $wb['web_folder_error_regex'] = 'Ungültige Ordnerangabe, bitte keinen / eingeben.'; $wb['redirect_type_txt'] = 'Redirect-Typ'; +$wb['r_redirect_txt'] = 'R (Temporary redirect)'; +$wb['l_redirect_txt'] = 'L (Last redirect rule)'; +$wb['r_l_redirect_txt'] = 'R,L (Temporary redirect + last rule)'; +$wb['r_301_l_redirect_txt'] = 'R=301,L (Permanent redirect + last rule)'; $wb['redirect_path_txt'] = 'Redirect-Pfad'; $wb['active_txt'] = 'Aktiv'; $wb['document_root_txt'] = 'Documentroot'; diff --git a/interface/web/sites/lib/lang/dk_web_aliasdomain.lng b/interface/web/sites/lib/lang/dk_web_aliasdomain.lng index d1174a2fbf..c667758550 100644 --- a/interface/web/sites/lib/lang/dk_web_aliasdomain.lng +++ b/interface/web/sites/lib/lang/dk_web_aliasdomain.lng @@ -18,6 +18,10 @@ $wb['web_folder_error_regex'] = 'Ugyldig mappe indtastet. Indtast ikke en skrås $wb['type_txt'] = 'Type'; $wb['parent_domain_id_txt'] = 'Øvre Webside'; $wb['redirect_type_txt'] = 'Omdiriger Type'; +$wb['r_redirect_txt'] = 'R (Temporary redirect)'; +$wb['l_redirect_txt'] = 'L (Last redirect rule)'; +$wb['r_l_redirect_txt'] = 'R,L (Temporary redirect + last rule)'; +$wb['r_301_l_redirect_txt'] = 'R=301,L (Permanent redirect + last rule)'; $wb['redirect_path_txt'] = 'Omdiriger Sti'; $wb['active_txt'] = 'Aktiv'; $wb['document_root_txt'] = 'Dokumentrod'; diff --git a/interface/web/sites/lib/lang/dk_web_childdomain.lng b/interface/web/sites/lib/lang/dk_web_childdomain.lng index ce3fde0ace..2ef375ccb1 100644 --- a/interface/web/sites/lib/lang/dk_web_childdomain.lng +++ b/interface/web/sites/lib/lang/dk_web_childdomain.lng @@ -13,6 +13,10 @@ $wb['domain_txt'] = 'Domain'; $wb['type_txt'] = 'Type'; $wb['parent_domain_id_txt'] = 'Parent Website'; $wb['redirect_type_txt'] = 'Redirect Type'; +$wb['r_redirect_txt'] = 'R (Temporary redirect)'; +$wb['l_redirect_txt'] = 'L (Last redirect rule)'; +$wb['r_l_redirect_txt'] = 'R,L (Temporary redirect + last rule)'; +$wb['r_301_l_redirect_txt'] = 'R=301,L (Permanent redirect + last rule)'; $wb['redirect_path_txt'] = 'Redirect Path'; $wb['active_txt'] = 'Active'; $wb['document_root_txt'] = 'Documentroot'; diff --git a/interface/web/sites/lib/lang/dk_web_domain.lng b/interface/web/sites/lib/lang/dk_web_domain.lng index de29ea9dea..36d6d945c1 100644 --- a/interface/web/sites/lib/lang/dk_web_domain.lng +++ b/interface/web/sites/lib/lang/dk_web_domain.lng @@ -18,6 +18,10 @@ $wb['web_folder_error_regex'] = 'Ugyldigt folder entered. Please do not enter a $wb['type_txt'] = 'Type'; $wb['parent_domain_id_txt'] = 'Parent Webside'; $wb['redirect_type_txt'] = 'Omdiriger Type'; +$wb['r_redirect_txt'] = 'R (Temporary redirect)'; +$wb['l_redirect_txt'] = 'L (Last redirect rule)'; +$wb['r_l_redirect_txt'] = 'R,L (Temporary redirect + last rule)'; +$wb['r_301_l_redirect_txt'] = 'R=301,L (Permanent redirect + last rule)'; $wb['redirect_path_txt'] = 'Omdiriger Path'; $wb['active_txt'] = 'Aktiv'; $wb['document_root_txt'] = 'Documentroot'; diff --git a/interface/web/sites/lib/lang/dk_web_subdomain.lng b/interface/web/sites/lib/lang/dk_web_subdomain.lng index ad8b881718..74d9155dcf 100644 --- a/interface/web/sites/lib/lang/dk_web_subdomain.lng +++ b/interface/web/sites/lib/lang/dk_web_subdomain.lng @@ -13,6 +13,10 @@ $wb['domain_txt'] = 'Domæne'; $wb['type_txt'] = 'Type'; $wb['parent_domain_id_txt'] = 'Parent Webside'; $wb['redirect_type_txt'] = 'Omdiriger Type'; +$wb['r_redirect_txt'] = 'R (Temporary redirect)'; +$wb['l_redirect_txt'] = 'L (Last redirect rule)'; +$wb['r_l_redirect_txt'] = 'R,L (Temporary redirect + last rule)'; +$wb['r_301_l_redirect_txt'] = 'R=301,L (Permanent redirect + last rule)'; $wb['redirect_path_txt'] = 'Omdiriger Path'; $wb['active_txt'] = 'Aktiv'; $wb['document_root_txt'] = 'Documentroot'; 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 7721691a60..a45cc33e60 100644 --- a/interface/web/sites/lib/lang/dk_web_vhost_domain.lng +++ b/interface/web/sites/lib/lang/dk_web_vhost_domain.lng @@ -18,6 +18,10 @@ $wb['web_folder_error_regex'] = 'Invalid folder entered. Please do not enter a s $wb['type_txt'] = 'Type'; $wb['parent_domain_id_txt'] = 'Parent Website'; $wb['redirect_type_txt'] = 'Redirect Type'; +$wb['r_redirect_txt'] = 'R (Temporary redirect)'; +$wb['l_redirect_txt'] = 'L (Last redirect rule)'; +$wb['r_l_redirect_txt'] = 'R,L (Temporary redirect + last rule)'; +$wb['r_301_l_redirect_txt'] = 'R=301,L (Permanent redirect + last rule)'; $wb['redirect_path_txt'] = 'Redirect Path'; $wb['active_txt'] = 'Active'; $wb['document_root_txt'] = 'Document Root'; diff --git a/interface/web/sites/lib/lang/dk_web_vhost_subdomain.lng b/interface/web/sites/lib/lang/dk_web_vhost_subdomain.lng index 5ee456f019..48e1542a6e 100644 --- a/interface/web/sites/lib/lang/dk_web_vhost_subdomain.lng +++ b/interface/web/sites/lib/lang/dk_web_vhost_subdomain.lng @@ -22,6 +22,10 @@ $wb['host_txt'] = 'Værtsnavn'; $wb['web_folder_error_regex'] = 'Ugyldigt folder entered. Please do not enter a slash.'; $wb['type_txt'] = 'Type'; $wb['redirect_type_txt'] = 'Omdiriger Type'; +$wb['r_redirect_txt'] = 'R (Temporary redirect)'; +$wb['l_redirect_txt'] = 'L (Last redirect rule)'; +$wb['r_l_redirect_txt'] = 'R,L (Temporary redirect + last rule)'; +$wb['r_301_l_redirect_txt'] = 'R=301,L (Permanent redirect + last rule)'; $wb['redirect_path_txt'] = 'Omdiriger Path'; $wb['active_txt'] = 'Aktiv'; $wb['document_root_txt'] = 'Documentroot'; diff --git a/interface/web/sites/lib/lang/el_web_aliasdomain.lng b/interface/web/sites/lib/lang/el_web_aliasdomain.lng index de094c3086..0a2d659ab4 100644 --- a/interface/web/sites/lib/lang/el_web_aliasdomain.lng +++ b/interface/web/sites/lib/lang/el_web_aliasdomain.lng @@ -18,6 +18,10 @@ $wb['web_folder_error_regex'] = 'Invalid folder entered. Please do not enter a s $wb['type_txt'] = 'Type'; $wb['parent_domain_id_txt'] = 'Parent Website'; $wb['redirect_type_txt'] = 'Redirect Type'; +$wb['r_redirect_txt'] = 'R (Temporary redirect)'; +$wb['l_redirect_txt'] = 'L (Last redirect rule)'; +$wb['r_l_redirect_txt'] = 'R,L (Temporary redirect + last rule)'; +$wb['r_301_l_redirect_txt'] = 'R=301,L (Permanent redirect + last rule)'; $wb['redirect_path_txt'] = 'Redirect Path'; $wb['active_txt'] = 'Active'; $wb['document_root_txt'] = 'Documentroot'; diff --git a/interface/web/sites/lib/lang/el_web_childdomain.lng b/interface/web/sites/lib/lang/el_web_childdomain.lng index 91d235178c..1a867eb93a 100644 --- a/interface/web/sites/lib/lang/el_web_childdomain.lng +++ b/interface/web/sites/lib/lang/el_web_childdomain.lng @@ -16,6 +16,10 @@ $wb['server_id_txt'] = 'Server'; $wb['type_txt'] = 'Τύπος'; $wb['parent_domain_id_txt'] = 'Γονικό Website'; $wb['redirect_type_txt'] = 'Τύπος ανακατεύθυνσης'; +$wb['r_redirect_txt'] = 'R (Temporary redirect)'; +$wb['l_redirect_txt'] = 'L (Last redirect rule)'; +$wb['r_l_redirect_txt'] = 'R,L (Temporary redirect + last rule)'; +$wb['r_301_l_redirect_txt'] = 'R=301,L (Permanent redirect + last rule)'; $wb['redirect_path_txt'] = 'Διαδρομή ανακατεύθυνσης'; $wb['active_txt'] = 'Ενεργή'; $wb['document_root_txt'] = 'Ριζικός φάκελος'; diff --git a/interface/web/sites/lib/lang/el_web_domain.lng b/interface/web/sites/lib/lang/el_web_domain.lng index 34294a2470..d5104c5e14 100644 --- a/interface/web/sites/lib/lang/el_web_domain.lng +++ b/interface/web/sites/lib/lang/el_web_domain.lng @@ -16,6 +16,10 @@ $wb['domain_txt'] = 'Domain'; $wb['type_txt'] = 'Τύπος'; $wb['parent_domain_id_txt'] = 'Γονικό Website'; $wb['redirect_type_txt'] = 'Τύπος Ανακατεύθυνσης'; +$wb['r_redirect_txt'] = 'R (Temporary redirect)'; +$wb['l_redirect_txt'] = 'L (Last redirect rule)'; +$wb['r_l_redirect_txt'] = 'R,L (Temporary redirect + last rule)'; +$wb['r_301_l_redirect_txt'] = 'R=301,L (Permanent redirect + last rule)'; $wb['redirect_path_txt'] = 'Διαδρομή Ανακατεύθυνσης'; $wb['active_txt'] = 'Ενεργό'; $wb['document_root_txt'] = 'Documentroot'; diff --git a/interface/web/sites/lib/lang/el_web_subdomain.lng b/interface/web/sites/lib/lang/el_web_subdomain.lng index e668979c93..051e0ab258 100644 --- a/interface/web/sites/lib/lang/el_web_subdomain.lng +++ b/interface/web/sites/lib/lang/el_web_subdomain.lng @@ -13,6 +13,10 @@ $wb['domain_txt'] = 'Domain'; $wb['type_txt'] = 'Τύπος'; $wb['parent_domain_id_txt'] = 'Γονικό Website'; $wb['redirect_type_txt'] = 'Τύπος ανακατεύθυνσης'; +$wb['r_redirect_txt'] = 'R (Temporary redirect)'; +$wb['l_redirect_txt'] = 'L (Last redirect rule)'; +$wb['r_l_redirect_txt'] = 'R,L (Temporary redirect + last rule)'; +$wb['r_301_l_redirect_txt'] = 'R=301,L (Permanent redirect + last rule)'; $wb['redirect_path_txt'] = 'Διαδρομή ανακατεύθυνσης'; $wb['active_txt'] = 'Ενεργή'; $wb['document_root_txt'] = 'Ριζικός φάκελος'; 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 8628dff841..9a326e5d3b 100644 --- a/interface/web/sites/lib/lang/el_web_vhost_domain.lng +++ b/interface/web/sites/lib/lang/el_web_vhost_domain.lng @@ -16,6 +16,10 @@ $wb['domain_txt'] = 'Domain'; $wb['type_txt'] = 'Τύπος'; $wb['parent_domain_id_txt'] = 'Γονικό Website'; $wb['redirect_type_txt'] = 'Τύπος Ανακατεύθυνσης'; +$wb['r_redirect_txt'] = 'R (Temporary redirect)'; +$wb['l_redirect_txt'] = 'L (Last redirect rule)'; +$wb['r_l_redirect_txt'] = 'R,L (Temporary redirect + last rule)'; +$wb['r_301_l_redirect_txt'] = 'R=301,L (Permanent redirect + last rule)'; $wb['redirect_path_txt'] = 'Διαδρομή Ανακατεύθυνσης'; $wb['active_txt'] = 'Ενεργό'; $wb['document_root_txt'] = 'Document Root'; diff --git a/interface/web/sites/lib/lang/el_web_vhost_subdomain.lng b/interface/web/sites/lib/lang/el_web_vhost_subdomain.lng index 47b9e1aff2..13e1558aa6 100644 --- a/interface/web/sites/lib/lang/el_web_vhost_subdomain.lng +++ b/interface/web/sites/lib/lang/el_web_vhost_subdomain.lng @@ -22,6 +22,10 @@ $wb['host_txt'] = 'Hostname'; $wb['web_folder_error_regex'] = 'Invalid folder entered. Please do not enter a slash.'; $wb['type_txt'] = 'Type'; $wb['redirect_type_txt'] = 'Redirect Type'; +$wb['r_redirect_txt'] = 'R (Temporary redirect)'; +$wb['l_redirect_txt'] = 'L (Last redirect rule)'; +$wb['r_l_redirect_txt'] = 'R,L (Temporary redirect + last rule)'; +$wb['r_301_l_redirect_txt'] = 'R=301,L (Permanent redirect + last rule)'; $wb['redirect_path_txt'] = 'Redirect Path'; $wb['active_txt'] = 'Active'; $wb['document_root_txt'] = 'Documentroot'; diff --git a/interface/web/sites/lib/lang/en_web_aliasdomain.lng b/interface/web/sites/lib/lang/en_web_aliasdomain.lng index de094c3086..0a2d659ab4 100644 --- a/interface/web/sites/lib/lang/en_web_aliasdomain.lng +++ b/interface/web/sites/lib/lang/en_web_aliasdomain.lng @@ -18,6 +18,10 @@ $wb['web_folder_error_regex'] = 'Invalid folder entered. Please do not enter a s $wb['type_txt'] = 'Type'; $wb['parent_domain_id_txt'] = 'Parent Website'; $wb['redirect_type_txt'] = 'Redirect Type'; +$wb['r_redirect_txt'] = 'R (Temporary redirect)'; +$wb['l_redirect_txt'] = 'L (Last redirect rule)'; +$wb['r_l_redirect_txt'] = 'R,L (Temporary redirect + last rule)'; +$wb['r_301_l_redirect_txt'] = 'R=301,L (Permanent redirect + last rule)'; $wb['redirect_path_txt'] = 'Redirect Path'; $wb['active_txt'] = 'Active'; $wb['document_root_txt'] = 'Documentroot'; diff --git a/interface/web/sites/lib/lang/en_web_childdomain.lng b/interface/web/sites/lib/lang/en_web_childdomain.lng index 584913df44..a420777d64 100644 --- a/interface/web/sites/lib/lang/en_web_childdomain.lng +++ b/interface/web/sites/lib/lang/en_web_childdomain.lng @@ -13,6 +13,10 @@ $wb['domain_txt'] = 'Domain'; $wb['type_txt'] = 'Type'; $wb['parent_domain_id_txt'] = 'Parent Website'; $wb['redirect_type_txt'] = 'Redirect Type'; +$wb['r_redirect_txt'] = 'R (Temporary redirect)'; +$wb['l_redirect_txt'] = 'L (Last redirect rule)'; +$wb['r_l_redirect_txt'] = 'R,L (Temporary redirect + last rule)'; +$wb['r_301_l_redirect_txt'] = 'R=301,L (Permanent redirect + last rule)'; $wb['redirect_path_txt'] = 'Redirect Path'; $wb['active_txt'] = 'Active'; $wb['document_root_txt'] = 'Documentroot'; diff --git a/interface/web/sites/lib/lang/en_web_domain.lng b/interface/web/sites/lib/lang/en_web_domain.lng index 6e1c16124f..7204a89fdc 100644 --- a/interface/web/sites/lib/lang/en_web_domain.lng +++ b/interface/web/sites/lib/lang/en_web_domain.lng @@ -18,6 +18,10 @@ $wb['web_folder_error_regex'] = 'Invalid folder entered. Please do not enter a s $wb['type_txt'] = 'Type'; $wb['parent_domain_id_txt'] = 'Parent Website'; $wb['redirect_type_txt'] = 'Redirect Type'; +$wb['r_redirect_txt'] = 'R (Temporary redirect)'; +$wb['l_redirect_txt'] = 'L (Last redirect rule)'; +$wb['r_l_redirect_txt'] = 'R,L (Temporary redirect + last rule)'; +$wb['r_301_l_redirect_txt'] = 'R=301,L (Permanent redirect + last rule)'; $wb['redirect_path_txt'] = 'Redirect Path'; $wb['active_txt'] = 'Active'; $wb['document_root_txt'] = 'Documentroot'; @@ -134,4 +138,4 @@ $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:'; -?> \ No newline at end of file +?> diff --git a/interface/web/sites/lib/lang/en_web_subdomain.lng b/interface/web/sites/lib/lang/en_web_subdomain.lng index 1591efb4b9..8a794c150b 100644 --- a/interface/web/sites/lib/lang/en_web_subdomain.lng +++ b/interface/web/sites/lib/lang/en_web_subdomain.lng @@ -13,6 +13,10 @@ $wb['domain_txt'] = 'Domain'; $wb['type_txt'] = 'Type'; $wb['parent_domain_id_txt'] = 'Parent Website'; $wb['redirect_type_txt'] = 'Redirect Type'; +$wb['r_redirect_txt'] = 'R (Temporary redirect)'; +$wb['l_redirect_txt'] = 'L (Last redirect rule)'; +$wb['r_l_redirect_txt'] = 'R,L (Temporary redirect + last rule)'; +$wb['r_301_l_redirect_txt'] = 'R=301,L (Permanent redirect + last rule)'; $wb['redirect_path_txt'] = 'Redirect Path'; $wb['active_txt'] = 'Active'; $wb['document_root_txt'] = 'Documentroot'; 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 f633076dbb..e5476b84e6 100644 --- a/interface/web/sites/lib/lang/en_web_vhost_domain.lng +++ b/interface/web/sites/lib/lang/en_web_vhost_domain.lng @@ -18,6 +18,10 @@ $wb['web_folder_error_regex'] = 'Invalid folder entered. Please do not enter a s $wb['type_txt'] = 'Type'; $wb['parent_domain_id_txt'] = 'Parent Website'; $wb['redirect_type_txt'] = 'Redirect Type'; +$wb['r_redirect_txt'] = 'R (Temporary redirect)'; +$wb['l_redirect_txt'] = 'L (Last redirect rule)'; +$wb['r_l_redirect_txt'] = 'R,L (Temporary redirect + last rule)'; +$wb['r_301_l_redirect_txt'] = 'R=301,L (Permanent redirect + last rule)'; $wb['redirect_path_txt'] = 'Redirect Path'; $wb['active_txt'] = 'Active'; $wb['document_root_txt'] = 'Documentroot'; diff --git a/interface/web/sites/lib/lang/en_web_vhost_subdomain.lng b/interface/web/sites/lib/lang/en_web_vhost_subdomain.lng index 73ed3b86e7..512a8169fc 100644 --- a/interface/web/sites/lib/lang/en_web_vhost_subdomain.lng +++ b/interface/web/sites/lib/lang/en_web_vhost_subdomain.lng @@ -23,6 +23,10 @@ $wb['web_folder_error_regex'] = 'Invalid folder entered. Please do not enter a s $wb['type_txt'] = 'Type'; $wb['parent_domain_id_txt'] = 'Parent Website'; $wb['redirect_type_txt'] = 'Redirect Type'; +$wb['r_redirect_txt'] = 'R (Temporary redirect)'; +$wb['l_redirect_txt'] = 'L (Last redirect rule)'; +$wb['r_l_redirect_txt'] = 'R,L (Temporary redirect + last rule)'; +$wb['r_301_l_redirect_txt'] = 'R=301,L (Permanent redirect + last rule)'; $wb['redirect_path_txt'] = 'Redirect Path'; $wb['active_txt'] = 'Active'; $wb['document_root_txt'] = 'Documentroot'; diff --git a/interface/web/sites/lib/lang/es_web_aliasdomain.lng b/interface/web/sites/lib/lang/es_web_aliasdomain.lng index de094c3086..0a2d659ab4 100644 --- a/interface/web/sites/lib/lang/es_web_aliasdomain.lng +++ b/interface/web/sites/lib/lang/es_web_aliasdomain.lng @@ -18,6 +18,10 @@ $wb['web_folder_error_regex'] = 'Invalid folder entered. Please do not enter a s $wb['type_txt'] = 'Type'; $wb['parent_domain_id_txt'] = 'Parent Website'; $wb['redirect_type_txt'] = 'Redirect Type'; +$wb['r_redirect_txt'] = 'R (Temporary redirect)'; +$wb['l_redirect_txt'] = 'L (Last redirect rule)'; +$wb['r_l_redirect_txt'] = 'R,L (Temporary redirect + last rule)'; +$wb['r_301_l_redirect_txt'] = 'R=301,L (Permanent redirect + last rule)'; $wb['redirect_path_txt'] = 'Redirect Path'; $wb['active_txt'] = 'Active'; $wb['document_root_txt'] = 'Documentroot'; diff --git a/interface/web/sites/lib/lang/es_web_childdomain.lng b/interface/web/sites/lib/lang/es_web_childdomain.lng index fb4d5ee995..dff0fa5828 100644 --- a/interface/web/sites/lib/lang/es_web_childdomain.lng +++ b/interface/web/sites/lib/lang/es_web_childdomain.lng @@ -13,6 +13,10 @@ $wb['domain_txt'] = 'Dominio'; $wb['type_txt'] = 'Tipo'; $wb['parent_domain_id_txt'] = 'Sitio web padre'; $wb['redirect_type_txt'] = 'Tipo de redirección'; +$wb['r_redirect_txt'] = 'R (Temporary redirect)'; +$wb['l_redirect_txt'] = 'L (Last redirect rule)'; +$wb['r_l_redirect_txt'] = 'R,L (Temporary redirect + last rule)'; +$wb['r_301_l_redirect_txt'] = 'R=301,L (Permanent redirect + last rule)'; $wb['redirect_path_txt'] = 'Ruta de redirección'; $wb['active_txt'] = 'Activar'; $wb['document_root_txt'] = 'DocumentRoot'; diff --git a/interface/web/sites/lib/lang/es_web_domain.lng b/interface/web/sites/lib/lang/es_web_domain.lng index dd3aaebcde..44e8ea9eaa 100644 --- a/interface/web/sites/lib/lang/es_web_domain.lng +++ b/interface/web/sites/lib/lang/es_web_domain.lng @@ -16,6 +16,10 @@ $wb['domain_txt'] = 'Dominio'; $wb['type_txt'] = 'Tipo'; $wb['parent_domain_id_txt'] = 'Sitio web padre'; $wb['redirect_type_txt'] = 'Tipo redirección'; +$wb['r_redirect_txt'] = 'R (Temporary redirect)'; +$wb['l_redirect_txt'] = 'L (Last redirect rule)'; +$wb['r_l_redirect_txt'] = 'R,L (Temporary redirect + last rule)'; +$wb['r_301_l_redirect_txt'] = 'R=301,L (Permanent redirect + last rule)'; $wb['redirect_path_txt'] = 'Ruta redirección'; $wb['active_txt'] = 'Activar'; $wb['document_root_txt'] = 'Documentroot'; diff --git a/interface/web/sites/lib/lang/es_web_subdomain.lng b/interface/web/sites/lib/lang/es_web_subdomain.lng index 6def83f3fd..351ee96baf 100644 --- a/interface/web/sites/lib/lang/es_web_subdomain.lng +++ b/interface/web/sites/lib/lang/es_web_subdomain.lng @@ -13,6 +13,10 @@ $wb['domain_txt'] = 'Dominio'; $wb['type_txt'] = 'Tipo'; $wb['parent_domain_id_txt'] = 'Sitio web padre'; $wb['redirect_type_txt'] = 'Tipo de redirección'; +$wb['r_redirect_txt'] = 'R (Temporary redirect)'; +$wb['l_redirect_txt'] = 'L (Last redirect rule)'; +$wb['r_l_redirect_txt'] = 'R,L (Temporary redirect + last rule)'; +$wb['r_301_l_redirect_txt'] = 'R=301,L (Permanent redirect + last rule)'; $wb['redirect_path_txt'] = 'Ruta de redirección'; $wb['active_txt'] = 'Activar'; $wb['document_root_txt'] = 'DocumentRoot'; 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 e9d49604f2..943d896c5e 100644 --- a/interface/web/sites/lib/lang/es_web_vhost_domain.lng +++ b/interface/web/sites/lib/lang/es_web_vhost_domain.lng @@ -16,6 +16,10 @@ $wb['domain_txt'] = 'Dominio'; $wb['type_txt'] = 'Tipo'; $wb['parent_domain_id_txt'] = 'Sitio web padre'; $wb['redirect_type_txt'] = 'Tipo de redirección'; +$wb['r_redirect_txt'] = 'R (Temporary redirect)'; +$wb['l_redirect_txt'] = 'L (Last redirect rule)'; +$wb['r_l_redirect_txt'] = 'R,L (Temporary redirect + last rule)'; +$wb['r_301_l_redirect_txt'] = 'R=301,L (Permanent redirect + last rule)'; $wb['redirect_path_txt'] = 'Ruta de redirección'; $wb['active_txt'] = 'Activar'; $wb['document_root_txt'] = 'Document Root'; diff --git a/interface/web/sites/lib/lang/es_web_vhost_subdomain.lng b/interface/web/sites/lib/lang/es_web_vhost_subdomain.lng index 47b9e1aff2..13e1558aa6 100644 --- a/interface/web/sites/lib/lang/es_web_vhost_subdomain.lng +++ b/interface/web/sites/lib/lang/es_web_vhost_subdomain.lng @@ -22,6 +22,10 @@ $wb['host_txt'] = 'Hostname'; $wb['web_folder_error_regex'] = 'Invalid folder entered. Please do not enter a slash.'; $wb['type_txt'] = 'Type'; $wb['redirect_type_txt'] = 'Redirect Type'; +$wb['r_redirect_txt'] = 'R (Temporary redirect)'; +$wb['l_redirect_txt'] = 'L (Last redirect rule)'; +$wb['r_l_redirect_txt'] = 'R,L (Temporary redirect + last rule)'; +$wb['r_301_l_redirect_txt'] = 'R=301,L (Permanent redirect + last rule)'; $wb['redirect_path_txt'] = 'Redirect Path'; $wb['active_txt'] = 'Active'; $wb['document_root_txt'] = 'Documentroot'; diff --git a/interface/web/sites/lib/lang/fi_web_aliasdomain.lng b/interface/web/sites/lib/lang/fi_web_aliasdomain.lng index de094c3086..0a2d659ab4 100644 --- a/interface/web/sites/lib/lang/fi_web_aliasdomain.lng +++ b/interface/web/sites/lib/lang/fi_web_aliasdomain.lng @@ -18,6 +18,10 @@ $wb['web_folder_error_regex'] = 'Invalid folder entered. Please do not enter a s $wb['type_txt'] = 'Type'; $wb['parent_domain_id_txt'] = 'Parent Website'; $wb['redirect_type_txt'] = 'Redirect Type'; +$wb['r_redirect_txt'] = 'R (Temporary redirect)'; +$wb['l_redirect_txt'] = 'L (Last redirect rule)'; +$wb['r_l_redirect_txt'] = 'R,L (Temporary redirect + last rule)'; +$wb['r_301_l_redirect_txt'] = 'R=301,L (Permanent redirect + last rule)'; $wb['redirect_path_txt'] = 'Redirect Path'; $wb['active_txt'] = 'Active'; $wb['document_root_txt'] = 'Documentroot'; diff --git a/interface/web/sites/lib/lang/fi_web_childdomain.lng b/interface/web/sites/lib/lang/fi_web_childdomain.lng index 070d2266ad..b076c1db93 100644 --- a/interface/web/sites/lib/lang/fi_web_childdomain.lng +++ b/interface/web/sites/lib/lang/fi_web_childdomain.lng @@ -13,6 +13,10 @@ $wb['domain_txt'] = 'Verkkotunnus'; $wb['type_txt'] = 'Tyyppi'; $wb['parent_domain_id_txt'] = 'Pääsivu'; $wb['redirect_type_txt'] = 'Edelleenohjauksen tyyppi'; +$wb['r_redirect_txt'] = 'R (Temporary redirect)'; +$wb['l_redirect_txt'] = 'L (Last redirect rule)'; +$wb['r_l_redirect_txt'] = 'R,L (Temporary redirect + last rule)'; +$wb['r_301_l_redirect_txt'] = 'R=301,L (Permanent redirect + last rule)'; $wb['redirect_path_txt'] = 'Edelleenohjausosoite'; $wb['active_txt'] = 'Käytössä'; $wb['document_root_txt'] = 'Dokumentikansio'; diff --git a/interface/web/sites/lib/lang/fi_web_domain.lng b/interface/web/sites/lib/lang/fi_web_domain.lng index 3ed5eea10c..88dcdedf87 100644 --- a/interface/web/sites/lib/lang/fi_web_domain.lng +++ b/interface/web/sites/lib/lang/fi_web_domain.lng @@ -13,6 +13,10 @@ $wb['domain_txt'] = 'Verkkotunnus'; $wb['type_txt'] = 'Tyyppi'; $wb['parent_domain_id_txt'] = 'Pääsivusto'; $wb['redirect_type_txt'] = 'Edelleenohjauksen tyyppi'; +$wb['r_redirect_txt'] = 'R (Temporary redirect)'; +$wb['l_redirect_txt'] = 'L (Last redirect rule)'; +$wb['r_l_redirect_txt'] = 'R,L (Temporary redirect + last rule)'; +$wb['r_301_l_redirect_txt'] = 'R=301,L (Permanent redirect + last rule)'; $wb['redirect_path_txt'] = 'Edelleenohjausosoite'; $wb['active_txt'] = 'Käytössä'; $wb['document_root_txt'] = 'Dokumenttikansio'; diff --git a/interface/web/sites/lib/lang/fi_web_subdomain.lng b/interface/web/sites/lib/lang/fi_web_subdomain.lng index 8889bd62a3..cb60b1692a 100644 --- a/interface/web/sites/lib/lang/fi_web_subdomain.lng +++ b/interface/web/sites/lib/lang/fi_web_subdomain.lng @@ -13,6 +13,10 @@ $wb['domain_txt'] = 'Verkkotunnus'; $wb['type_txt'] = 'Tyyppi'; $wb['parent_domain_id_txt'] = 'Pääsivu'; $wb['redirect_type_txt'] = 'Edelleenohjauksen tyyppi'; +$wb['r_redirect_txt'] = 'R (Temporary redirect)'; +$wb['l_redirect_txt'] = 'L (Last redirect rule)'; +$wb['r_l_redirect_txt'] = 'R,L (Temporary redirect + last rule)'; +$wb['r_301_l_redirect_txt'] = 'R=301,L (Permanent redirect + last rule)'; $wb['redirect_path_txt'] = 'Edelleenohjausosoite'; $wb['active_txt'] = 'Käytössä'; $wb['document_root_txt'] = 'Dokumentikansio'; 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 b0ede66c4d..e699c446ff 100644 --- a/interface/web/sites/lib/lang/fi_web_vhost_domain.lng +++ b/interface/web/sites/lib/lang/fi_web_vhost_domain.lng @@ -13,6 +13,10 @@ $wb['domain_txt'] = 'Verkkotunnus'; $wb['type_txt'] = 'Tyyppi'; $wb['parent_domain_id_txt'] = 'Pääsivusto'; $wb['redirect_type_txt'] = 'Edelleenohjauksen tyyppi'; +$wb['r_redirect_txt'] = 'R (Temporary redirect)'; +$wb['l_redirect_txt'] = 'L (Last redirect rule)'; +$wb['r_l_redirect_txt'] = 'R,L (Temporary redirect + last rule)'; +$wb['r_301_l_redirect_txt'] = 'R=301,L (Permanent redirect + last rule)'; $wb['redirect_path_txt'] = 'Edelleenohjausosoite'; $wb['active_txt'] = 'Käytössä'; $wb['document_root_txt'] = 'Document Root'; diff --git a/interface/web/sites/lib/lang/fi_web_vhost_subdomain.lng b/interface/web/sites/lib/lang/fi_web_vhost_subdomain.lng index 47b9e1aff2..13e1558aa6 100644 --- a/interface/web/sites/lib/lang/fi_web_vhost_subdomain.lng +++ b/interface/web/sites/lib/lang/fi_web_vhost_subdomain.lng @@ -22,6 +22,10 @@ $wb['host_txt'] = 'Hostname'; $wb['web_folder_error_regex'] = 'Invalid folder entered. Please do not enter a slash.'; $wb['type_txt'] = 'Type'; $wb['redirect_type_txt'] = 'Redirect Type'; +$wb['r_redirect_txt'] = 'R (Temporary redirect)'; +$wb['l_redirect_txt'] = 'L (Last redirect rule)'; +$wb['r_l_redirect_txt'] = 'R,L (Temporary redirect + last rule)'; +$wb['r_301_l_redirect_txt'] = 'R=301,L (Permanent redirect + last rule)'; $wb['redirect_path_txt'] = 'Redirect Path'; $wb['active_txt'] = 'Active'; $wb['document_root_txt'] = 'Documentroot'; diff --git a/interface/web/sites/lib/lang/fr_web_aliasdomain.lng b/interface/web/sites/lib/lang/fr_web_aliasdomain.lng index 6d301b64f6..08cd4223ec 100644 --- a/interface/web/sites/lib/lang/fr_web_aliasdomain.lng +++ b/interface/web/sites/lib/lang/fr_web_aliasdomain.lng @@ -18,6 +18,10 @@ $wb['web_folder_error_regex'] = 'Dossier invalide. Ne saisissez pas de ./ (slash $wb['type_txt'] = 'Type'; $wb['parent_domain_id_txt'] = 'Site Web parent'; $wb['redirect_type_txt'] = 'Type de redirection'; +$wb['r_redirect_txt'] = 'R (Temporary redirect)'; +$wb['l_redirect_txt'] = 'L (Last redirect rule)'; +$wb['r_l_redirect_txt'] = 'R,L (Temporary redirect + last rule)'; +$wb['r_301_l_redirect_txt'] = 'R=301,L (Permanent redirect + last rule)'; $wb['redirect_path_txt'] = 'Chemin de redirection'; $wb['active_txt'] = 'Actif'; $wb['document_root_txt'] = 'Dossier racine'; diff --git a/interface/web/sites/lib/lang/fr_web_childdomain.lng b/interface/web/sites/lib/lang/fr_web_childdomain.lng index 5a8cdcb0a1..8edd20a834 100644 --- a/interface/web/sites/lib/lang/fr_web_childdomain.lng +++ b/interface/web/sites/lib/lang/fr_web_childdomain.lng @@ -13,6 +13,10 @@ $wb['domain_txt'] = 'Domaine'; $wb['type_txt'] = 'Type'; $wb['parent_domain_id_txt'] = 'Site web parent'; $wb['redirect_type_txt'] = 'Type de redirection'; +$wb['r_redirect_txt'] = 'R (Temporary redirect)'; +$wb['l_redirect_txt'] = 'L (Last redirect rule)'; +$wb['r_l_redirect_txt'] = 'R,L (Temporary redirect + last rule)'; +$wb['r_301_l_redirect_txt'] = 'R=301,L (Permanent redirect + last rule)'; $wb['redirect_path_txt'] = 'Chemin de redirection'; $wb['active_txt'] = 'Actif'; $wb['document_root_txt'] = 'Racine du document'; diff --git a/interface/web/sites/lib/lang/fr_web_domain.lng b/interface/web/sites/lib/lang/fr_web_domain.lng index d5fcbc37c6..c7ae07c1e4 100644 --- a/interface/web/sites/lib/lang/fr_web_domain.lng +++ b/interface/web/sites/lib/lang/fr_web_domain.lng @@ -13,6 +13,10 @@ $wb['domain_txt'] = 'Domaine'; $wb['type_txt'] = 'Type'; $wb['parent_domain_id_txt'] = 'Site web parent'; $wb['redirect_type_txt'] = 'Type de redirection'; +$wb['r_redirect_txt'] = 'R (Temporary redirect)'; +$wb['l_redirect_txt'] = 'L (Last redirect rule)'; +$wb['r_l_redirect_txt'] = 'R,L (Temporary redirect + last rule)'; +$wb['r_301_l_redirect_txt'] = 'R=301,L (Permanent redirect + last rule)'; $wb['redirect_path_txt'] = 'Chemin de redirection'; $wb['active_txt'] = 'Actif'; $wb['document_root_txt'] = 'Racine du document'; diff --git a/interface/web/sites/lib/lang/fr_web_subdomain.lng b/interface/web/sites/lib/lang/fr_web_subdomain.lng index d57818e2d5..286ae826e6 100644 --- a/interface/web/sites/lib/lang/fr_web_subdomain.lng +++ b/interface/web/sites/lib/lang/fr_web_subdomain.lng @@ -13,6 +13,10 @@ $wb['domain_txt'] = 'Domaine'; $wb['type_txt'] = 'Type'; $wb['parent_domain_id_txt'] = 'Site web parent'; $wb['redirect_type_txt'] = 'Type de redirection'; +$wb['r_redirect_txt'] = 'R (Temporary redirect)'; +$wb['l_redirect_txt'] = 'L (Last redirect rule)'; +$wb['r_l_redirect_txt'] = 'R,L (Temporary redirect + last rule)'; +$wb['r_301_l_redirect_txt'] = 'R=301,L (Permanent redirect + last rule)'; $wb['redirect_path_txt'] = 'Chemin de redirection'; $wb['active_txt'] = 'Actif'; $wb['document_root_txt'] = 'Racine du document'; 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 c43f5c97d5..b52822b6c0 100644 --- a/interface/web/sites/lib/lang/fr_web_vhost_domain.lng +++ b/interface/web/sites/lib/lang/fr_web_vhost_domain.lng @@ -13,6 +13,10 @@ $wb['domain_txt'] = 'Domaine'; $wb['type_txt'] = 'Type'; $wb['parent_domain_id_txt'] = 'Site web parent'; $wb['redirect_type_txt'] = 'Type de redirection'; +$wb['r_redirect_txt'] = 'R (Temporary redirect)'; +$wb['l_redirect_txt'] = 'L (Last redirect rule)'; +$wb['r_l_redirect_txt'] = 'R,L (Temporary redirect + last rule)'; +$wb['r_301_l_redirect_txt'] = 'R=301,L (Permanent redirect + last rule)'; $wb['redirect_path_txt'] = 'Chemin de redirection'; $wb['active_txt'] = 'Actif'; $wb['document_root_txt'] = 'Document Root'; diff --git a/interface/web/sites/lib/lang/fr_web_vhost_subdomain.lng b/interface/web/sites/lib/lang/fr_web_vhost_subdomain.lng index 433f4d029b..7b8245d717 100644 --- a/interface/web/sites/lib/lang/fr_web_vhost_subdomain.lng +++ b/interface/web/sites/lib/lang/fr_web_vhost_subdomain.lng @@ -22,6 +22,10 @@ $wb['host_txt'] = 'Hostname'; $wb['web_folder_error_regex'] = 'Invalid folder entered. Please do not enter a slash.'; $wb['type_txt'] = 'Type'; $wb['redirect_type_txt'] = 'Redirect Type'; +$wb['r_redirect_txt'] = 'R (Temporary redirect)'; +$wb['l_redirect_txt'] = 'L (Last redirect rule)'; +$wb['r_l_redirect_txt'] = 'R,L (Temporary redirect + last rule)'; +$wb['r_301_l_redirect_txt'] = 'R=301,L (Permanent redirect + last rule)'; $wb['redirect_path_txt'] = 'Redirect Path'; $wb['active_txt'] = 'Active'; $wb['document_root_txt'] = 'Documentroot'; diff --git a/interface/web/sites/lib/lang/hr_web_aliasdomain.lng b/interface/web/sites/lib/lang/hr_web_aliasdomain.lng index 6caba05f81..94cab0a276 100644 --- a/interface/web/sites/lib/lang/hr_web_aliasdomain.lng +++ b/interface/web/sites/lib/lang/hr_web_aliasdomain.lng @@ -18,6 +18,10 @@ $wb['web_folder_error_regex'] = 'Neispravan direktorij. Nemojte koristiti slash. $wb['type_txt'] = 'Vrsta'; $wb['parent_domain_id_txt'] = 'Glavna web stranica'; $wb['redirect_type_txt'] = 'Vrsta redirekcije'; +$wb['r_redirect_txt'] = 'R (Temporary redirect)'; +$wb['l_redirect_txt'] = 'L (Last redirect rule)'; +$wb['r_l_redirect_txt'] = 'R,L (Temporary redirect + last rule)'; +$wb['r_301_l_redirect_txt'] = 'R=301,L (Permanent redirect + last rule)'; $wb['redirect_path_txt'] = 'Putanja redirekcije'; $wb['active_txt'] = 'Aktivno'; $wb['document_root_txt'] = 'Documentroot'; diff --git a/interface/web/sites/lib/lang/hr_web_childdomain.lng b/interface/web/sites/lib/lang/hr_web_childdomain.lng index 760fe40724..55e11b2511 100644 --- a/interface/web/sites/lib/lang/hr_web_childdomain.lng +++ b/interface/web/sites/lib/lang/hr_web_childdomain.lng @@ -13,6 +13,10 @@ $wb['domain_txt'] = 'Domena'; $wb['type_txt'] = 'Vrsta'; $wb['parent_domain_id_txt'] = 'Početna web stranica'; $wb['redirect_type_txt'] = 'Vrsta redirekcije'; +$wb['r_redirect_txt'] = 'R (Temporary redirect)'; +$wb['l_redirect_txt'] = 'L (Last redirect rule)'; +$wb['r_l_redirect_txt'] = 'R,L (Temporary redirect + last rule)'; +$wb['r_301_l_redirect_txt'] = 'R=301,L (Permanent redirect + last rule)'; $wb['redirect_path_txt'] = 'Redirekcijska putanja'; $wb['active_txt'] = 'Aktivno'; $wb['document_root_txt'] = 'Documentroot'; diff --git a/interface/web/sites/lib/lang/hr_web_domain.lng b/interface/web/sites/lib/lang/hr_web_domain.lng index a73bb164dd..9159a99b78 100644 --- a/interface/web/sites/lib/lang/hr_web_domain.lng +++ b/interface/web/sites/lib/lang/hr_web_domain.lng @@ -16,6 +16,10 @@ $wb['domain_txt'] = 'Domena'; $wb['type_txt'] = 'Vrsta'; $wb['parent_domain_id_txt'] = 'Glavna web stranica'; $wb['redirect_type_txt'] = 'Vrsta redirekcije'; +$wb['r_redirect_txt'] = 'R (Temporary redirect)'; +$wb['l_redirect_txt'] = 'L (Last redirect rule)'; +$wb['r_l_redirect_txt'] = 'R,L (Temporary redirect + last rule)'; +$wb['r_301_l_redirect_txt'] = 'R=301,L (Permanent redirect + last rule)'; $wb['redirect_path_txt'] = 'Redirect Path'; $wb['active_txt'] = 'Aktivno'; $wb['document_root_txt'] = 'Početni direktorij'; diff --git a/interface/web/sites/lib/lang/hr_web_subdomain.lng b/interface/web/sites/lib/lang/hr_web_subdomain.lng index 76fb2901d9..3f450a540b 100644 --- a/interface/web/sites/lib/lang/hr_web_subdomain.lng +++ b/interface/web/sites/lib/lang/hr_web_subdomain.lng @@ -13,6 +13,10 @@ $wb['domain_txt'] = 'Domena'; $wb['type_txt'] = 'Vrsta'; $wb['parent_domain_id_txt'] = 'Početna web stranica'; $wb['redirect_type_txt'] = 'Vrsta redirekcije'; +$wb['r_redirect_txt'] = 'R (Temporary redirect)'; +$wb['l_redirect_txt'] = 'L (Last redirect rule)'; +$wb['r_l_redirect_txt'] = 'R,L (Temporary redirect + last rule)'; +$wb['r_301_l_redirect_txt'] = 'R=301,L (Permanent redirect + last rule)'; $wb['redirect_path_txt'] = 'Redirekcijska putanja'; $wb['active_txt'] = 'Aktivno'; $wb['document_root_txt'] = 'Documentroot'; 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 1645ef8eb5..e14b1ac826 100644 --- a/interface/web/sites/lib/lang/hr_web_vhost_domain.lng +++ b/interface/web/sites/lib/lang/hr_web_vhost_domain.lng @@ -16,6 +16,10 @@ $wb['domain_txt'] = 'Domena'; $wb['type_txt'] = 'Vrsta'; $wb['parent_domain_id_txt'] = 'Glavna web stranica'; $wb['redirect_type_txt'] = 'Vrsta redirekcije'; +$wb['r_redirect_txt'] = 'R (Temporary redirect)'; +$wb['l_redirect_txt'] = 'L (Last redirect rule)'; +$wb['r_l_redirect_txt'] = 'R,L (Temporary redirect + last rule)'; +$wb['r_301_l_redirect_txt'] = 'R=301,L (Permanent redirect + last rule)'; $wb['redirect_path_txt'] = 'Redirect Path'; $wb['active_txt'] = 'Aktivno'; $wb['document_root_txt'] = 'Document Root'; diff --git a/interface/web/sites/lib/lang/hr_web_vhost_subdomain.lng b/interface/web/sites/lib/lang/hr_web_vhost_subdomain.lng index 6463732d3b..c3167cc892 100644 --- a/interface/web/sites/lib/lang/hr_web_vhost_subdomain.lng +++ b/interface/web/sites/lib/lang/hr_web_vhost_subdomain.lng @@ -22,6 +22,10 @@ $wb['host_txt'] = 'Hostname'; $wb['web_folder_error_regex'] = 'Neispravan direktorij. Nemojte koristiti slash.'; $wb['type_txt'] = 'Vrsta'; $wb['redirect_type_txt'] = 'Vrsta redirekcije'; +$wb['r_redirect_txt'] = 'R (Temporary redirect)'; +$wb['l_redirect_txt'] = 'L (Last redirect rule)'; +$wb['r_l_redirect_txt'] = 'R,L (Temporary redirect + last rule)'; +$wb['r_301_l_redirect_txt'] = 'R=301,L (Permanent redirect + last rule)'; $wb['redirect_path_txt'] = 'Redirekcijska putanja'; $wb['active_txt'] = 'Aktivno'; $wb['document_root_txt'] = 'Početna putanja (documentroot)'; diff --git a/interface/web/sites/lib/lang/hu_web_aliasdomain.lng b/interface/web/sites/lib/lang/hu_web_aliasdomain.lng index de094c3086..0a2d659ab4 100644 --- a/interface/web/sites/lib/lang/hu_web_aliasdomain.lng +++ b/interface/web/sites/lib/lang/hu_web_aliasdomain.lng @@ -18,6 +18,10 @@ $wb['web_folder_error_regex'] = 'Invalid folder entered. Please do not enter a s $wb['type_txt'] = 'Type'; $wb['parent_domain_id_txt'] = 'Parent Website'; $wb['redirect_type_txt'] = 'Redirect Type'; +$wb['r_redirect_txt'] = 'R (Temporary redirect)'; +$wb['l_redirect_txt'] = 'L (Last redirect rule)'; +$wb['r_l_redirect_txt'] = 'R,L (Temporary redirect + last rule)'; +$wb['r_301_l_redirect_txt'] = 'R=301,L (Permanent redirect + last rule)'; $wb['redirect_path_txt'] = 'Redirect Path'; $wb['active_txt'] = 'Active'; $wb['document_root_txt'] = 'Documentroot'; diff --git a/interface/web/sites/lib/lang/hu_web_childdomain.lng b/interface/web/sites/lib/lang/hu_web_childdomain.lng index 31c87e6851..cca02071af 100644 --- a/interface/web/sites/lib/lang/hu_web_childdomain.lng +++ b/interface/web/sites/lib/lang/hu_web_childdomain.lng @@ -13,6 +13,10 @@ $wb['domain_txt'] = 'Domain'; $wb['type_txt'] = 'Típus'; $wb['parent_domain_id_txt'] = 'Szülő webhely'; $wb['redirect_type_txt'] = 'Átirányítás típusa'; +$wb['r_redirect_txt'] = 'R (Temporary redirect)'; +$wb['l_redirect_txt'] = 'L (Last redirect rule)'; +$wb['r_l_redirect_txt'] = 'R,L (Temporary redirect + last rule)'; +$wb['r_301_l_redirect_txt'] = 'R=301,L (Permanent redirect + last rule)'; $wb['redirect_path_txt'] = 'Az Átirányitás útvonala'; $wb['active_txt'] = 'Aktív'; $wb['document_root_txt'] = 'Documentroot'; diff --git a/interface/web/sites/lib/lang/hu_web_domain.lng b/interface/web/sites/lib/lang/hu_web_domain.lng index f229a4f42f..679de0f22d 100644 --- a/interface/web/sites/lib/lang/hu_web_domain.lng +++ b/interface/web/sites/lib/lang/hu_web_domain.lng @@ -13,6 +13,10 @@ $wb['domain_txt'] = 'Domain'; $wb['type_txt'] = 'Tipus'; $wb['parent_domain_id_txt'] = 'Szülő Weboldal'; $wb['redirect_type_txt'] = 'Átirányítás tipusa'; +$wb['r_redirect_txt'] = 'R (Temporary redirect)'; +$wb['l_redirect_txt'] = 'L (Last redirect rule)'; +$wb['r_l_redirect_txt'] = 'R,L (Temporary redirect + last rule)'; +$wb['r_301_l_redirect_txt'] = 'R=301,L (Permanent redirect + last rule)'; $wb['redirect_path_txt'] = 'Átirányítás útvonal'; $wb['active_txt'] = 'Aktív'; $wb['document_root_txt'] = 'Documentroot'; diff --git a/interface/web/sites/lib/lang/hu_web_subdomain.lng b/interface/web/sites/lib/lang/hu_web_subdomain.lng index 15fd85e9b6..4c200e15af 100644 --- a/interface/web/sites/lib/lang/hu_web_subdomain.lng +++ b/interface/web/sites/lib/lang/hu_web_subdomain.lng @@ -13,6 +13,10 @@ $wb['domain_txt'] = 'Domain'; $wb['type_txt'] = 'Típus'; $wb['parent_domain_id_txt'] = 'Szülő webhely'; $wb['redirect_type_txt'] = 'Átirányítás típusa'; +$wb['r_redirect_txt'] = 'R (Temporary redirect)'; +$wb['l_redirect_txt'] = 'L (Last redirect rule)'; +$wb['r_l_redirect_txt'] = 'R,L (Temporary redirect + last rule)'; +$wb['r_301_l_redirect_txt'] = 'R=301,L (Permanent redirect + last rule)'; $wb['redirect_path_txt'] = 'Az Átirányitás útvonala'; $wb['active_txt'] = 'Aktív'; $wb['document_root_txt'] = 'Documentroot'; 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 32a65e6502..d9a35c8663 100644 --- a/interface/web/sites/lib/lang/hu_web_vhost_domain.lng +++ b/interface/web/sites/lib/lang/hu_web_vhost_domain.lng @@ -13,6 +13,10 @@ $wb['domain_txt'] = 'Domain'; $wb['type_txt'] = 'Tipus'; $wb['parent_domain_id_txt'] = 'Szülő Weboldal'; $wb['redirect_type_txt'] = 'Átirányítás tipusa'; +$wb['r_redirect_txt'] = 'R (Temporary redirect)'; +$wb['l_redirect_txt'] = 'L (Last redirect rule)'; +$wb['r_l_redirect_txt'] = 'R,L (Temporary redirect + last rule)'; +$wb['r_301_l_redirect_txt'] = 'R=301,L (Permanent redirect + last rule)'; $wb['redirect_path_txt'] = 'Átirányítás útvonal'; $wb['active_txt'] = 'Aktív'; $wb['document_root_txt'] = 'Document Root'; diff --git a/interface/web/sites/lib/lang/hu_web_vhost_subdomain.lng b/interface/web/sites/lib/lang/hu_web_vhost_subdomain.lng index 47b9e1aff2..13e1558aa6 100644 --- a/interface/web/sites/lib/lang/hu_web_vhost_subdomain.lng +++ b/interface/web/sites/lib/lang/hu_web_vhost_subdomain.lng @@ -22,6 +22,10 @@ $wb['host_txt'] = 'Hostname'; $wb['web_folder_error_regex'] = 'Invalid folder entered. Please do not enter a slash.'; $wb['type_txt'] = 'Type'; $wb['redirect_type_txt'] = 'Redirect Type'; +$wb['r_redirect_txt'] = 'R (Temporary redirect)'; +$wb['l_redirect_txt'] = 'L (Last redirect rule)'; +$wb['r_l_redirect_txt'] = 'R,L (Temporary redirect + last rule)'; +$wb['r_301_l_redirect_txt'] = 'R=301,L (Permanent redirect + last rule)'; $wb['redirect_path_txt'] = 'Redirect Path'; $wb['active_txt'] = 'Active'; $wb['document_root_txt'] = 'Documentroot'; diff --git a/interface/web/sites/lib/lang/id_web_aliasdomain.lng b/interface/web/sites/lib/lang/id_web_aliasdomain.lng index de094c3086..0a2d659ab4 100644 --- a/interface/web/sites/lib/lang/id_web_aliasdomain.lng +++ b/interface/web/sites/lib/lang/id_web_aliasdomain.lng @@ -18,6 +18,10 @@ $wb['web_folder_error_regex'] = 'Invalid folder entered. Please do not enter a s $wb['type_txt'] = 'Type'; $wb['parent_domain_id_txt'] = 'Parent Website'; $wb['redirect_type_txt'] = 'Redirect Type'; +$wb['r_redirect_txt'] = 'R (Temporary redirect)'; +$wb['l_redirect_txt'] = 'L (Last redirect rule)'; +$wb['r_l_redirect_txt'] = 'R,L (Temporary redirect + last rule)'; +$wb['r_301_l_redirect_txt'] = 'R=301,L (Permanent redirect + last rule)'; $wb['redirect_path_txt'] = 'Redirect Path'; $wb['active_txt'] = 'Active'; $wb['document_root_txt'] = 'Documentroot'; diff --git a/interface/web/sites/lib/lang/id_web_childdomain.lng b/interface/web/sites/lib/lang/id_web_childdomain.lng index 071bb54f66..b6b77f038a 100644 --- a/interface/web/sites/lib/lang/id_web_childdomain.lng +++ b/interface/web/sites/lib/lang/id_web_childdomain.lng @@ -13,6 +13,10 @@ $wb['domain_txt'] = 'Domain'; $wb['type_txt'] = 'Tipe'; $wb['parent_domain_id_txt'] = 'Situs Web Induk'; $wb['redirect_type_txt'] = 'Tipe Pengalihan'; +$wb['r_redirect_txt'] = 'R (Temporary redirect)'; +$wb['l_redirect_txt'] = 'L (Last redirect rule)'; +$wb['r_l_redirect_txt'] = 'R,L (Temporary redirect + last rule)'; +$wb['r_301_l_redirect_txt'] = 'R=301,L (Permanent redirect + last rule)'; $wb['redirect_path_txt'] = 'Path Pengalihan'; $wb['active_txt'] = 'Aktif'; $wb['document_root_txt'] = 'Root Dokumen'; diff --git a/interface/web/sites/lib/lang/id_web_domain.lng b/interface/web/sites/lib/lang/id_web_domain.lng index 19a9edafb9..e50dd6c771 100644 --- a/interface/web/sites/lib/lang/id_web_domain.lng +++ b/interface/web/sites/lib/lang/id_web_domain.lng @@ -14,6 +14,10 @@ $wb['domain_txt'] = 'Domain'; $wb['type_txt'] = 'Tipe'; $wb['parent_domain_id_txt'] = 'Situs Web Induk'; $wb['redirect_type_txt'] = 'Tipe Pengalihan'; +$wb['r_redirect_txt'] = 'R (Temporary redirect)'; +$wb['l_redirect_txt'] = 'L (Last redirect rule)'; +$wb['r_l_redirect_txt'] = 'R,L (Temporary redirect + last rule)'; +$wb['r_301_l_redirect_txt'] = 'R=301,L (Permanent redirect + last rule)'; $wb['redirect_path_txt'] = 'Path Pengalihan'; $wb['active_txt'] = 'Aktif'; $wb['document_root_txt'] = 'Root Dokumen'; diff --git a/interface/web/sites/lib/lang/id_web_subdomain.lng b/interface/web/sites/lib/lang/id_web_subdomain.lng index 7c7f6f717d..04ef922b42 100644 --- a/interface/web/sites/lib/lang/id_web_subdomain.lng +++ b/interface/web/sites/lib/lang/id_web_subdomain.lng @@ -13,6 +13,10 @@ $wb['domain_txt'] = 'Domain'; $wb['type_txt'] = 'Tipe'; $wb['parent_domain_id_txt'] = 'Situs Web Induk'; $wb['redirect_type_txt'] = 'Tipe Pengalihan'; +$wb['r_redirect_txt'] = 'R (Temporary redirect)'; +$wb['l_redirect_txt'] = 'L (Last redirect rule)'; +$wb['r_l_redirect_txt'] = 'R,L (Temporary redirect + last rule)'; +$wb['r_301_l_redirect_txt'] = 'R=301,L (Permanent redirect + last rule)'; $wb['redirect_path_txt'] = 'Path Pengalihan'; $wb['active_txt'] = 'Aktif'; $wb['document_root_txt'] = 'Root Dokumen'; 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 4bc0395328..f63d628971 100644 --- a/interface/web/sites/lib/lang/id_web_vhost_domain.lng +++ b/interface/web/sites/lib/lang/id_web_vhost_domain.lng @@ -14,6 +14,10 @@ $wb['domain_txt'] = 'Domain'; $wb['type_txt'] = 'Tipe'; $wb['parent_domain_id_txt'] = 'Situs Web Induk'; $wb['redirect_type_txt'] = 'Tipe Pengalihan'; +$wb['r_redirect_txt'] = 'R (Temporary redirect)'; +$wb['l_redirect_txt'] = 'L (Last redirect rule)'; +$wb['r_l_redirect_txt'] = 'R,L (Temporary redirect + last rule)'; +$wb['r_301_l_redirect_txt'] = 'R=301,L (Permanent redirect + last rule)'; $wb['redirect_path_txt'] = 'Path Pengalihan'; $wb['active_txt'] = 'Aktif'; $wb['document_root_txt'] = 'Document Root'; diff --git a/interface/web/sites/lib/lang/id_web_vhost_subdomain.lng b/interface/web/sites/lib/lang/id_web_vhost_subdomain.lng index 47b9e1aff2..13e1558aa6 100644 --- a/interface/web/sites/lib/lang/id_web_vhost_subdomain.lng +++ b/interface/web/sites/lib/lang/id_web_vhost_subdomain.lng @@ -22,6 +22,10 @@ $wb['host_txt'] = 'Hostname'; $wb['web_folder_error_regex'] = 'Invalid folder entered. Please do not enter a slash.'; $wb['type_txt'] = 'Type'; $wb['redirect_type_txt'] = 'Redirect Type'; +$wb['r_redirect_txt'] = 'R (Temporary redirect)'; +$wb['l_redirect_txt'] = 'L (Last redirect rule)'; +$wb['r_l_redirect_txt'] = 'R,L (Temporary redirect + last rule)'; +$wb['r_301_l_redirect_txt'] = 'R=301,L (Permanent redirect + last rule)'; $wb['redirect_path_txt'] = 'Redirect Path'; $wb['active_txt'] = 'Active'; $wb['document_root_txt'] = 'Documentroot'; diff --git a/interface/web/sites/lib/lang/it_web_aliasdomain.lng b/interface/web/sites/lib/lang/it_web_aliasdomain.lng index cd6950e25d..ee30db96a0 100644 --- a/interface/web/sites/lib/lang/it_web_aliasdomain.lng +++ b/interface/web/sites/lib/lang/it_web_aliasdomain.lng @@ -18,6 +18,10 @@ $wb['web_folder_error_regex'] = 'Percorso inserito non valido. Non inserire slas $wb['type_txt'] = 'Tipo'; $wb['parent_domain_id_txt'] = 'Sito Parent'; $wb['redirect_type_txt'] = 'Tipo di Redirect'; +$wb['r_redirect_txt'] = 'R (Temporary redirect)'; +$wb['l_redirect_txt'] = 'L (Last redirect rule)'; +$wb['r_l_redirect_txt'] = 'R,L (Temporary redirect + last rule)'; +$wb['r_301_l_redirect_txt'] = 'R=301,L (Permanent redirect + last rule)'; $wb['redirect_path_txt'] = 'Redirect Path'; $wb['active_txt'] = 'Attivo'; $wb['document_root_txt'] = 'Cartella del sito'; diff --git a/interface/web/sites/lib/lang/it_web_childdomain.lng b/interface/web/sites/lib/lang/it_web_childdomain.lng index 4f38645962..ed48eae876 100644 --- a/interface/web/sites/lib/lang/it_web_childdomain.lng +++ b/interface/web/sites/lib/lang/it_web_childdomain.lng @@ -13,6 +13,10 @@ $wb['domain_txt'] = 'Dominio'; $wb['type_txt'] = 'Tipo'; $wb['parent_domain_id_txt'] = 'Parent Website'; $wb['redirect_type_txt'] = 'Tipo Redirect'; +$wb['r_redirect_txt'] = 'R (Temporary redirect)'; +$wb['l_redirect_txt'] = 'L (Last redirect rule)'; +$wb['r_l_redirect_txt'] = 'R,L (Temporary redirect + last rule)'; +$wb['r_301_l_redirect_txt'] = 'R=301,L (Permanent redirect + last rule)'; $wb['redirect_path_txt'] = 'Percorso Redirect'; $wb['active_txt'] = 'Attivo'; $wb['document_root_txt'] = 'Documentroot'; diff --git a/interface/web/sites/lib/lang/it_web_domain.lng b/interface/web/sites/lib/lang/it_web_domain.lng index a4551002c0..b05f2a1557 100644 --- a/interface/web/sites/lib/lang/it_web_domain.lng +++ b/interface/web/sites/lib/lang/it_web_domain.lng @@ -13,6 +13,10 @@ $wb['domain_txt'] = 'Dominio'; $wb['type_txt'] = 'Tipo'; $wb['parent_domain_id_txt'] = 'Sito Web di riferimento'; $wb['redirect_type_txt'] = 'Tipo Reinderizzamento'; +$wb['r_redirect_txt'] = 'R (Temporary redirect)'; +$wb['l_redirect_txt'] = 'L (Last redirect rule)'; +$wb['r_l_redirect_txt'] = 'R,L (Temporary redirect + last rule)'; +$wb['r_301_l_redirect_txt'] = 'R=301,L (Permanent redirect + last rule)'; $wb['redirect_path_txt'] = 'Percorso Reinderizzamento'; $wb['active_txt'] = 'Attivo'; $wb['document_root_txt'] = 'Documentroot'; diff --git a/interface/web/sites/lib/lang/it_web_subdomain.lng b/interface/web/sites/lib/lang/it_web_subdomain.lng index 0b751623e3..e3438eaf75 100644 --- a/interface/web/sites/lib/lang/it_web_subdomain.lng +++ b/interface/web/sites/lib/lang/it_web_subdomain.lng @@ -13,6 +13,10 @@ $wb['domain_txt'] = 'Dominio'; $wb['type_txt'] = 'Tipo'; $wb['parent_domain_id_txt'] = 'Parent Website'; $wb['redirect_type_txt'] = 'Tipo Redirect'; +$wb['r_redirect_txt'] = 'R (Temporary redirect)'; +$wb['l_redirect_txt'] = 'L (Last redirect rule)'; +$wb['r_l_redirect_txt'] = 'R,L (Temporary redirect + last rule)'; +$wb['r_301_l_redirect_txt'] = 'R=301,L (Permanent redirect + last rule)'; $wb['redirect_path_txt'] = 'Percorso Redirect'; $wb['active_txt'] = 'Attivo'; $wb['document_root_txt'] = 'Documentroot'; 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 3d1e16fe2e..34f41cde4a 100644 --- a/interface/web/sites/lib/lang/it_web_vhost_domain.lng +++ b/interface/web/sites/lib/lang/it_web_vhost_domain.lng @@ -13,6 +13,10 @@ $wb['domain_txt'] = 'Dominio'; $wb['type_txt'] = 'Tipo'; $wb['parent_domain_id_txt'] = 'Parent Website'; $wb['redirect_type_txt'] = 'Tipo Redirect'; +$wb['r_redirect_txt'] = 'R (Temporary redirect)'; +$wb['l_redirect_txt'] = 'L (Last redirect rule)'; +$wb['r_l_redirect_txt'] = 'R,L (Temporary redirect + last rule)'; +$wb['r_301_l_redirect_txt'] = 'R=301,L (Permanent redirect + last rule)'; $wb['redirect_path_txt'] = 'Percorso Redirect'; $wb['active_txt'] = 'Attivo'; $wb['document_root_txt'] = 'Document Root'; diff --git a/interface/web/sites/lib/lang/it_web_vhost_subdomain.lng b/interface/web/sites/lib/lang/it_web_vhost_subdomain.lng index 117145e22c..f391fc1473 100644 --- a/interface/web/sites/lib/lang/it_web_vhost_subdomain.lng +++ b/interface/web/sites/lib/lang/it_web_vhost_subdomain.lng @@ -22,6 +22,10 @@ $wb['host_txt'] = 'Nome Host'; $wb['web_folder_error_regex'] = 'Cartella inserita non valida. Per favore non inserire uno slash.'; $wb['type_txt'] = 'Tipo'; $wb['redirect_type_txt'] = 'Tipo reinderizzamento'; +$wb['r_redirect_txt'] = 'R (Temporary redirect)'; +$wb['l_redirect_txt'] = 'L (Last redirect rule)'; +$wb['r_l_redirect_txt'] = 'R,L (Temporary redirect + last rule)'; +$wb['r_301_l_redirect_txt'] = 'R=301,L (Permanent redirect + last rule)'; $wb['redirect_path_txt'] = 'Percorso Reinderizzamento'; $wb['active_txt'] = 'Attivo'; $wb['document_root_txt'] = 'Documentroot'; diff --git a/interface/web/sites/lib/lang/ja_web_aliasdomain.lng b/interface/web/sites/lib/lang/ja_web_aliasdomain.lng index de094c3086..0a2d659ab4 100644 --- a/interface/web/sites/lib/lang/ja_web_aliasdomain.lng +++ b/interface/web/sites/lib/lang/ja_web_aliasdomain.lng @@ -18,6 +18,10 @@ $wb['web_folder_error_regex'] = 'Invalid folder entered. Please do not enter a s $wb['type_txt'] = 'Type'; $wb['parent_domain_id_txt'] = 'Parent Website'; $wb['redirect_type_txt'] = 'Redirect Type'; +$wb['r_redirect_txt'] = 'R (Temporary redirect)'; +$wb['l_redirect_txt'] = 'L (Last redirect rule)'; +$wb['r_l_redirect_txt'] = 'R,L (Temporary redirect + last rule)'; +$wb['r_301_l_redirect_txt'] = 'R=301,L (Permanent redirect + last rule)'; $wb['redirect_path_txt'] = 'Redirect Path'; $wb['active_txt'] = 'Active'; $wb['document_root_txt'] = 'Documentroot'; diff --git a/interface/web/sites/lib/lang/ja_web_childdomain.lng b/interface/web/sites/lib/lang/ja_web_childdomain.lng index 4773557212..6126b7eb78 100644 --- a/interface/web/sites/lib/lang/ja_web_childdomain.lng +++ b/interface/web/sites/lib/lang/ja_web_childdomain.lng @@ -13,6 +13,10 @@ $wb['domain_txt'] = 'ドメイン'; $wb['type_txt'] = '種別'; $wb['parent_domain_id_txt'] = 'Parent Website'; $wb['redirect_type_txt'] = 'リダイレクトの方式'; +$wb['r_redirect_txt'] = 'R (Temporary redirect)'; +$wb['l_redirect_txt'] = 'L (Last redirect rule)'; +$wb['r_l_redirect_txt'] = 'R,L (Temporary redirect + last rule)'; +$wb['r_301_l_redirect_txt'] = 'R=301,L (Permanent redirect + last rule)'; $wb['redirect_path_txt'] = 'リダイレクト先'; $wb['active_txt'] = '有効'; $wb['document_root_txt'] = 'ドキュメントルート'; diff --git a/interface/web/sites/lib/lang/ja_web_domain.lng b/interface/web/sites/lib/lang/ja_web_domain.lng index bbc5a1f883..bcfc527c7c 100644 --- a/interface/web/sites/lib/lang/ja_web_domain.lng +++ b/interface/web/sites/lib/lang/ja_web_domain.lng @@ -13,6 +13,10 @@ $wb['domain_txt'] = 'ドメイン'; $wb['type_txt'] = '種別'; $wb['parent_domain_id_txt'] = 'Parent Website'; $wb['redirect_type_txt'] = 'リダイレクトの方式'; +$wb['r_redirect_txt'] = 'R (Temporary redirect)'; +$wb['l_redirect_txt'] = 'L (Last redirect rule)'; +$wb['r_l_redirect_txt'] = 'R,L (Temporary redirect + last rule)'; +$wb['r_301_l_redirect_txt'] = 'R=301,L (Permanent redirect + last rule)'; $wb['redirect_path_txt'] = 'リダイレクト先'; $wb['active_txt'] = '有効'; $wb['document_root_txt'] = 'ドキュメントルート'; diff --git a/interface/web/sites/lib/lang/ja_web_subdomain.lng b/interface/web/sites/lib/lang/ja_web_subdomain.lng index 1478b3c657..f01d5414e7 100644 --- a/interface/web/sites/lib/lang/ja_web_subdomain.lng +++ b/interface/web/sites/lib/lang/ja_web_subdomain.lng @@ -13,6 +13,10 @@ $wb['domain_txt'] = 'ドメイン'; $wb['type_txt'] = '種別'; $wb['parent_domain_id_txt'] = 'Parent Website'; $wb['redirect_type_txt'] = 'リダイレクトの方式'; +$wb['r_redirect_txt'] = 'R (Temporary redirect)'; +$wb['l_redirect_txt'] = 'L (Last redirect rule)'; +$wb['r_l_redirect_txt'] = 'R,L (Temporary redirect + last rule)'; +$wb['r_301_l_redirect_txt'] = 'R=301,L (Permanent redirect + last rule)'; $wb['redirect_path_txt'] = 'リダイレクト先'; $wb['active_txt'] = '有効'; $wb['document_root_txt'] = 'ドキュメントルート'; 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 3ca7f658f5..211bee025c 100644 --- a/interface/web/sites/lib/lang/ja_web_vhost_domain.lng +++ b/interface/web/sites/lib/lang/ja_web_vhost_domain.lng @@ -13,6 +13,10 @@ $wb['domain_txt'] = 'ドメイン'; $wb['type_txt'] = '種別'; $wb['parent_domain_id_txt'] = 'Parent Website'; $wb['redirect_type_txt'] = 'リダイレクトの方式'; +$wb['r_redirect_txt'] = 'R (Temporary redirect)'; +$wb['l_redirect_txt'] = 'L (Last redirect rule)'; +$wb['r_l_redirect_txt'] = 'R,L (Temporary redirect + last rule)'; +$wb['r_301_l_redirect_txt'] = 'R=301,L (Permanent redirect + last rule)'; $wb['redirect_path_txt'] = 'リダイレクト先'; $wb['active_txt'] = '有効'; $wb['document_root_txt'] = 'Document Root'; diff --git a/interface/web/sites/lib/lang/ja_web_vhost_subdomain.lng b/interface/web/sites/lib/lang/ja_web_vhost_subdomain.lng index 47b9e1aff2..13e1558aa6 100644 --- a/interface/web/sites/lib/lang/ja_web_vhost_subdomain.lng +++ b/interface/web/sites/lib/lang/ja_web_vhost_subdomain.lng @@ -22,6 +22,10 @@ $wb['host_txt'] = 'Hostname'; $wb['web_folder_error_regex'] = 'Invalid folder entered. Please do not enter a slash.'; $wb['type_txt'] = 'Type'; $wb['redirect_type_txt'] = 'Redirect Type'; +$wb['r_redirect_txt'] = 'R (Temporary redirect)'; +$wb['l_redirect_txt'] = 'L (Last redirect rule)'; +$wb['r_l_redirect_txt'] = 'R,L (Temporary redirect + last rule)'; +$wb['r_301_l_redirect_txt'] = 'R=301,L (Permanent redirect + last rule)'; $wb['redirect_path_txt'] = 'Redirect Path'; $wb['active_txt'] = 'Active'; $wb['document_root_txt'] = 'Documentroot'; diff --git a/interface/web/sites/lib/lang/nl_web_aliasdomain.lng b/interface/web/sites/lib/lang/nl_web_aliasdomain.lng index de094c3086..0a2d659ab4 100644 --- a/interface/web/sites/lib/lang/nl_web_aliasdomain.lng +++ b/interface/web/sites/lib/lang/nl_web_aliasdomain.lng @@ -18,6 +18,10 @@ $wb['web_folder_error_regex'] = 'Invalid folder entered. Please do not enter a s $wb['type_txt'] = 'Type'; $wb['parent_domain_id_txt'] = 'Parent Website'; $wb['redirect_type_txt'] = 'Redirect Type'; +$wb['r_redirect_txt'] = 'R (Temporary redirect)'; +$wb['l_redirect_txt'] = 'L (Last redirect rule)'; +$wb['r_l_redirect_txt'] = 'R,L (Temporary redirect + last rule)'; +$wb['r_301_l_redirect_txt'] = 'R=301,L (Permanent redirect + last rule)'; $wb['redirect_path_txt'] = 'Redirect Path'; $wb['active_txt'] = 'Active'; $wb['document_root_txt'] = 'Documentroot'; diff --git a/interface/web/sites/lib/lang/nl_web_childdomain.lng b/interface/web/sites/lib/lang/nl_web_childdomain.lng index 2f2b897f02..1f3e69e46a 100644 --- a/interface/web/sites/lib/lang/nl_web_childdomain.lng +++ b/interface/web/sites/lib/lang/nl_web_childdomain.lng @@ -13,6 +13,10 @@ $wb['domain_txt'] = 'Domein'; $wb['type_txt'] = 'Type'; $wb['parent_domain_id_txt'] = 'Parent website'; $wb['redirect_type_txt'] = 'Redirect type'; +$wb['r_redirect_txt'] = 'R (Temporary redirect)'; +$wb['l_redirect_txt'] = 'L (Last redirect rule)'; +$wb['r_l_redirect_txt'] = 'R,L (Temporary redirect + last rule)'; +$wb['r_301_l_redirect_txt'] = 'R=301,L (Permanent redirect + last rule)'; $wb['redirect_path_txt'] = 'Redirect pad'; $wb['active_txt'] = 'Actief'; $wb['document_root_txt'] = 'Documentroot'; diff --git a/interface/web/sites/lib/lang/nl_web_domain.lng b/interface/web/sites/lib/lang/nl_web_domain.lng index bba9afd810..80ff5f9284 100644 --- a/interface/web/sites/lib/lang/nl_web_domain.lng +++ b/interface/web/sites/lib/lang/nl_web_domain.lng @@ -16,6 +16,10 @@ $wb['domain_txt'] = 'Domein'; $wb['type_txt'] = 'Type'; $wb['parent_domain_id_txt'] = 'Parent website'; $wb['redirect_type_txt'] = 'Redirect type'; +$wb['r_redirect_txt'] = 'R (Temporary redirect)'; +$wb['l_redirect_txt'] = 'L (Last redirect rule)'; +$wb['r_l_redirect_txt'] = 'R,L (Temporary redirect + last rule)'; +$wb['r_301_l_redirect_txt'] = 'R=301,L (Permanent redirect + last rule)'; $wb['redirect_path_txt'] = 'Redirect pad'; $wb['active_txt'] = 'Actief'; $wb['document_root_txt'] = 'Documentroot'; diff --git a/interface/web/sites/lib/lang/nl_web_subdomain.lng b/interface/web/sites/lib/lang/nl_web_subdomain.lng index 8245760ede..3e7dec1bb9 100644 --- a/interface/web/sites/lib/lang/nl_web_subdomain.lng +++ b/interface/web/sites/lib/lang/nl_web_subdomain.lng @@ -13,6 +13,10 @@ $wb['domain_txt'] = 'Domein'; $wb['type_txt'] = 'Type'; $wb['parent_domain_id_txt'] = 'Parent website'; $wb['redirect_type_txt'] = 'Redirect type'; +$wb['r_redirect_txt'] = 'R (Temporary redirect)'; +$wb['l_redirect_txt'] = 'L (Last redirect rule)'; +$wb['r_l_redirect_txt'] = 'R,L (Temporary redirect + last rule)'; +$wb['r_301_l_redirect_txt'] = 'R=301,L (Permanent redirect + last rule)'; $wb['redirect_path_txt'] = 'Redirect pad'; $wb['active_txt'] = 'Actief'; $wb['document_root_txt'] = 'Documentroot'; 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 afe2da94b8..d5ab513f7d 100644 --- a/interface/web/sites/lib/lang/nl_web_vhost_domain.lng +++ b/interface/web/sites/lib/lang/nl_web_vhost_domain.lng @@ -16,6 +16,10 @@ $wb['domain_txt'] = 'Domein'; $wb['type_txt'] = 'Type'; $wb['parent_domain_id_txt'] = 'Parent website'; $wb['redirect_type_txt'] = 'Redirect type'; +$wb['r_redirect_txt'] = 'R (Temporary redirect)'; +$wb['l_redirect_txt'] = 'L (Last redirect rule)'; +$wb['r_l_redirect_txt'] = 'R,L (Temporary redirect + last rule)'; +$wb['r_301_l_redirect_txt'] = 'R=301,L (Permanent redirect + last rule)'; $wb['redirect_path_txt'] = 'Redirect pad'; $wb['active_txt'] = 'Actief'; $wb['document_root_txt'] = 'Document Root'; diff --git a/interface/web/sites/lib/lang/nl_web_vhost_subdomain.lng b/interface/web/sites/lib/lang/nl_web_vhost_subdomain.lng index 47b9e1aff2..13e1558aa6 100644 --- a/interface/web/sites/lib/lang/nl_web_vhost_subdomain.lng +++ b/interface/web/sites/lib/lang/nl_web_vhost_subdomain.lng @@ -22,6 +22,10 @@ $wb['host_txt'] = 'Hostname'; $wb['web_folder_error_regex'] = 'Invalid folder entered. Please do not enter a slash.'; $wb['type_txt'] = 'Type'; $wb['redirect_type_txt'] = 'Redirect Type'; +$wb['r_redirect_txt'] = 'R (Temporary redirect)'; +$wb['l_redirect_txt'] = 'L (Last redirect rule)'; +$wb['r_l_redirect_txt'] = 'R,L (Temporary redirect + last rule)'; +$wb['r_301_l_redirect_txt'] = 'R=301,L (Permanent redirect + last rule)'; $wb['redirect_path_txt'] = 'Redirect Path'; $wb['active_txt'] = 'Active'; $wb['document_root_txt'] = 'Documentroot'; diff --git a/interface/web/sites/lib/lang/pl_web_aliasdomain.lng b/interface/web/sites/lib/lang/pl_web_aliasdomain.lng index 5aa998be20..f7a846c7ff 100644 --- a/interface/web/sites/lib/lang/pl_web_aliasdomain.lng +++ b/interface/web/sites/lib/lang/pl_web_aliasdomain.lng @@ -18,6 +18,10 @@ $wb['web_folder_error_regex'] = 'Wpisano nieprawidłowy folder. Proszę nie wpis $wb['type_txt'] = 'Rodzaj'; $wb['parent_domain_id_txt'] = 'Strona macierzysta'; $wb['redirect_type_txt'] = 'Rodzaj przekierowania'; +$wb['r_redirect_txt'] = 'R (Temporary redirect)'; +$wb['l_redirect_txt'] = 'L (Last redirect rule)'; +$wb['r_l_redirect_txt'] = 'R,L (Temporary redirect + last rule)'; +$wb['r_301_l_redirect_txt'] = 'R=301,L (Permanent redirect + last rule)'; $wb['redirect_path_txt'] = 'Ścieżka przekierowania'; $wb['active_txt'] = 'Aktywny'; $wb['document_root_txt'] = 'Document root'; diff --git a/interface/web/sites/lib/lang/pl_web_childdomain.lng b/interface/web/sites/lib/lang/pl_web_childdomain.lng index 5000369d19..983b690d43 100644 --- a/interface/web/sites/lib/lang/pl_web_childdomain.lng +++ b/interface/web/sites/lib/lang/pl_web_childdomain.lng @@ -13,6 +13,10 @@ $wb['domain_txt'] = 'Domena'; $wb['type_txt'] = 'Typ'; $wb['parent_domain_id_txt'] = 'Macierzysta strona www'; $wb['redirect_type_txt'] = 'Typ przekierowania'; +$wb['r_redirect_txt'] = 'R (Temporary redirect)'; +$wb['l_redirect_txt'] = 'L (Last redirect rule)'; +$wb['r_l_redirect_txt'] = 'R,L (Temporary redirect + last rule)'; +$wb['r_301_l_redirect_txt'] = 'R=301,L (Permanent redirect + last rule)'; $wb['redirect_path_txt'] = 'Ścieżka przekierowania'; $wb['active_txt'] = 'Aktywny'; $wb['document_root_txt'] = 'Główny katalog'; diff --git a/interface/web/sites/lib/lang/pl_web_domain.lng b/interface/web/sites/lib/lang/pl_web_domain.lng index 2aabd34099..fdcbbb38bc 100644 --- a/interface/web/sites/lib/lang/pl_web_domain.lng +++ b/interface/web/sites/lib/lang/pl_web_domain.lng @@ -13,6 +13,10 @@ $wb['domain_txt'] = 'Domena'; $wb['type_txt'] = 'Typ'; $wb['parent_domain_id_txt'] = 'Macierzysta strona www'; $wb['redirect_type_txt'] = 'Rodzaj przekierowania'; +$wb['r_redirect_txt'] = 'R (Temporary redirect)'; +$wb['l_redirect_txt'] = 'L (Last redirect rule)'; +$wb['r_l_redirect_txt'] = 'R,L (Temporary redirect + last rule)'; +$wb['r_301_l_redirect_txt'] = 'R=301,L (Permanent redirect + last rule)'; $wb['redirect_path_txt'] = 'Ścieżka przekierowania'; $wb['active_txt'] = 'Aktywny'; $wb['document_root_txt'] = 'Katalog strony'; diff --git a/interface/web/sites/lib/lang/pl_web_subdomain.lng b/interface/web/sites/lib/lang/pl_web_subdomain.lng index 491b38d036..1cee4adca0 100644 --- a/interface/web/sites/lib/lang/pl_web_subdomain.lng +++ b/interface/web/sites/lib/lang/pl_web_subdomain.lng @@ -13,6 +13,10 @@ $wb['domain_txt'] = 'Domena'; $wb['type_txt'] = 'Typ'; $wb['parent_domain_id_txt'] = 'Macierzysta strona www'; $wb['redirect_type_txt'] = 'Typ przekierowania'; +$wb['r_redirect_txt'] = 'R (Temporary redirect)'; +$wb['l_redirect_txt'] = 'L (Last redirect rule)'; +$wb['r_l_redirect_txt'] = 'R,L (Temporary redirect + last rule)'; +$wb['r_301_l_redirect_txt'] = 'R=301,L (Permanent redirect + last rule)'; $wb['redirect_path_txt'] = 'Ścieżka przekierowania'; $wb['active_txt'] = 'Aktywny'; $wb['document_root_txt'] = 'Główny katalog'; 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 e0b6a596e5..64530f5615 100644 --- a/interface/web/sites/lib/lang/pl_web_vhost_domain.lng +++ b/interface/web/sites/lib/lang/pl_web_vhost_domain.lng @@ -13,6 +13,10 @@ $wb['domain_txt'] = 'Domena'; $wb['type_txt'] = 'Typ'; $wb['parent_domain_id_txt'] = 'Macierzysta strona www'; $wb['redirect_type_txt'] = 'Rodzaj przekierowania'; +$wb['r_redirect_txt'] = 'R (Temporary redirect)'; +$wb['l_redirect_txt'] = 'L (Last redirect rule)'; +$wb['r_l_redirect_txt'] = 'R,L (Temporary redirect + last rule)'; +$wb['r_301_l_redirect_txt'] = 'R=301,L (Permanent redirect + last rule)'; $wb['redirect_path_txt'] = 'Ścieżka przekierowania'; $wb['active_txt'] = 'Aktywny'; $wb['document_root_txt'] = 'Document Root'; diff --git a/interface/web/sites/lib/lang/pl_web_vhost_subdomain.lng b/interface/web/sites/lib/lang/pl_web_vhost_subdomain.lng index 63de4b9a64..300ce3080a 100644 --- a/interface/web/sites/lib/lang/pl_web_vhost_subdomain.lng +++ b/interface/web/sites/lib/lang/pl_web_vhost_subdomain.lng @@ -22,6 +22,10 @@ $wb['host_txt'] = 'Nazwa hosta'; $wb['web_folder_error_regex'] = 'Wpisano nieprawidłowy folder. Proszę nie dopisywać znaku slash: / '; $wb['type_txt'] = 'Rodzaj'; $wb['redirect_type_txt'] = 'Rodzaj przekierowania'; +$wb['r_redirect_txt'] = 'R (Temporary redirect)'; +$wb['l_redirect_txt'] = 'L (Last redirect rule)'; +$wb['r_l_redirect_txt'] = 'R,L (Temporary redirect + last rule)'; +$wb['r_301_l_redirect_txt'] = 'R=301,L (Permanent redirect + last rule)'; $wb['redirect_path_txt'] = 'Ścieżka przekierowania'; $wb['active_txt'] = 'Aktywny'; $wb['document_root_txt'] = 'Document root'; diff --git a/interface/web/sites/lib/lang/pt_web_aliasdomain.lng b/interface/web/sites/lib/lang/pt_web_aliasdomain.lng index de094c3086..0a2d659ab4 100644 --- a/interface/web/sites/lib/lang/pt_web_aliasdomain.lng +++ b/interface/web/sites/lib/lang/pt_web_aliasdomain.lng @@ -18,6 +18,10 @@ $wb['web_folder_error_regex'] = 'Invalid folder entered. Please do not enter a s $wb['type_txt'] = 'Type'; $wb['parent_domain_id_txt'] = 'Parent Website'; $wb['redirect_type_txt'] = 'Redirect Type'; +$wb['r_redirect_txt'] = 'R (Temporary redirect)'; +$wb['l_redirect_txt'] = 'L (Last redirect rule)'; +$wb['r_l_redirect_txt'] = 'R,L (Temporary redirect + last rule)'; +$wb['r_301_l_redirect_txt'] = 'R=301,L (Permanent redirect + last rule)'; $wb['redirect_path_txt'] = 'Redirect Path'; $wb['active_txt'] = 'Active'; $wb['document_root_txt'] = 'Documentroot'; diff --git a/interface/web/sites/lib/lang/pt_web_childdomain.lng b/interface/web/sites/lib/lang/pt_web_childdomain.lng index 56f715f7e2..92470d9609 100644 --- a/interface/web/sites/lib/lang/pt_web_childdomain.lng +++ b/interface/web/sites/lib/lang/pt_web_childdomain.lng @@ -13,6 +13,10 @@ $wb['domain_txt'] = 'Domínio'; $wb['type_txt'] = 'Tipo'; $wb['parent_domain_id_txt'] = 'Site Parente'; $wb['redirect_type_txt'] = 'Tipo do Redireccionamento'; +$wb['r_redirect_txt'] = 'R (Temporary redirect)'; +$wb['l_redirect_txt'] = 'L (Last redirect rule)'; +$wb['r_l_redirect_txt'] = 'R,L (Temporary redirect + last rule)'; +$wb['r_301_l_redirect_txt'] = 'R=301,L (Permanent redirect + last rule)'; $wb['redirect_path_txt'] = 'Pasta do Redireccionamento'; $wb['active_txt'] = 'Activo'; $wb['document_root_txt'] = 'Documentroot'; diff --git a/interface/web/sites/lib/lang/pt_web_domain.lng b/interface/web/sites/lib/lang/pt_web_domain.lng index 74ca235a26..609cd92411 100644 --- a/interface/web/sites/lib/lang/pt_web_domain.lng +++ b/interface/web/sites/lib/lang/pt_web_domain.lng @@ -13,6 +13,10 @@ $wb['domain_txt'] = 'Domínio'; $wb['type_txt'] = 'Tipo'; $wb['parent_domain_id_txt'] = 'Site Parente'; $wb['redirect_type_txt'] = 'Tipo Redireccionamento'; +$wb['r_redirect_txt'] = 'R (Temporary redirect)'; +$wb['l_redirect_txt'] = 'L (Last redirect rule)'; +$wb['r_l_redirect_txt'] = 'R,L (Temporary redirect + last rule)'; +$wb['r_301_l_redirect_txt'] = 'R=301,L (Permanent redirect + last rule)'; $wb['redirect_path_txt'] = 'Pasta de redireccionamento'; $wb['active_txt'] = 'Activo'; $wb['document_root_txt'] = 'Documentroot'; diff --git a/interface/web/sites/lib/lang/pt_web_subdomain.lng b/interface/web/sites/lib/lang/pt_web_subdomain.lng index b705643f2a..823654e7e3 100644 --- a/interface/web/sites/lib/lang/pt_web_subdomain.lng +++ b/interface/web/sites/lib/lang/pt_web_subdomain.lng @@ -13,6 +13,10 @@ $wb['domain_txt'] = 'Domínio'; $wb['type_txt'] = 'Tipo'; $wb['parent_domain_id_txt'] = 'Site Parente'; $wb['redirect_type_txt'] = 'Tipo do Redireccionamento'; +$wb['r_redirect_txt'] = 'R (Temporary redirect)'; +$wb['l_redirect_txt'] = 'L (Last redirect rule)'; +$wb['r_l_redirect_txt'] = 'R,L (Temporary redirect + last rule)'; +$wb['r_301_l_redirect_txt'] = 'R=301,L (Permanent redirect + last rule)'; $wb['redirect_path_txt'] = 'Pasta do Redireccionamento'; $wb['active_txt'] = 'Activo'; $wb['document_root_txt'] = 'Documentroot'; 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 58a256f652..a5cfa9876d 100644 --- a/interface/web/sites/lib/lang/pt_web_vhost_domain.lng +++ b/interface/web/sites/lib/lang/pt_web_vhost_domain.lng @@ -13,6 +13,10 @@ $wb['domain_txt'] = 'Domínio'; $wb['type_txt'] = 'Tipo'; $wb['parent_domain_id_txt'] = 'Site Parente'; $wb['redirect_type_txt'] = 'Tipo Redireccionamento'; +$wb['r_redirect_txt'] = 'R (Temporary redirect)'; +$wb['l_redirect_txt'] = 'L (Last redirect rule)'; +$wb['r_l_redirect_txt'] = 'R,L (Temporary redirect + last rule)'; +$wb['r_301_l_redirect_txt'] = 'R=301,L (Permanent redirect + last rule)'; $wb['redirect_path_txt'] = 'Pasta de redireccionamento'; $wb['active_txt'] = 'Activo'; $wb['document_root_txt'] = 'Document Root'; diff --git a/interface/web/sites/lib/lang/pt_web_vhost_subdomain.lng b/interface/web/sites/lib/lang/pt_web_vhost_subdomain.lng index 47b9e1aff2..13e1558aa6 100644 --- a/interface/web/sites/lib/lang/pt_web_vhost_subdomain.lng +++ b/interface/web/sites/lib/lang/pt_web_vhost_subdomain.lng @@ -22,6 +22,10 @@ $wb['host_txt'] = 'Hostname'; $wb['web_folder_error_regex'] = 'Invalid folder entered. Please do not enter a slash.'; $wb['type_txt'] = 'Type'; $wb['redirect_type_txt'] = 'Redirect Type'; +$wb['r_redirect_txt'] = 'R (Temporary redirect)'; +$wb['l_redirect_txt'] = 'L (Last redirect rule)'; +$wb['r_l_redirect_txt'] = 'R,L (Temporary redirect + last rule)'; +$wb['r_301_l_redirect_txt'] = 'R=301,L (Permanent redirect + last rule)'; $wb['redirect_path_txt'] = 'Redirect Path'; $wb['active_txt'] = 'Active'; $wb['document_root_txt'] = 'Documentroot'; diff --git a/interface/web/sites/lib/lang/ro_web_aliasdomain.lng b/interface/web/sites/lib/lang/ro_web_aliasdomain.lng index de094c3086..0a2d659ab4 100644 --- a/interface/web/sites/lib/lang/ro_web_aliasdomain.lng +++ b/interface/web/sites/lib/lang/ro_web_aliasdomain.lng @@ -18,6 +18,10 @@ $wb['web_folder_error_regex'] = 'Invalid folder entered. Please do not enter a s $wb['type_txt'] = 'Type'; $wb['parent_domain_id_txt'] = 'Parent Website'; $wb['redirect_type_txt'] = 'Redirect Type'; +$wb['r_redirect_txt'] = 'R (Temporary redirect)'; +$wb['l_redirect_txt'] = 'L (Last redirect rule)'; +$wb['r_l_redirect_txt'] = 'R,L (Temporary redirect + last rule)'; +$wb['r_301_l_redirect_txt'] = 'R=301,L (Permanent redirect + last rule)'; $wb['redirect_path_txt'] = 'Redirect Path'; $wb['active_txt'] = 'Active'; $wb['document_root_txt'] = 'Documentroot'; diff --git a/interface/web/sites/lib/lang/ro_web_childdomain.lng b/interface/web/sites/lib/lang/ro_web_childdomain.lng index 93d642308f..ed01c5c28e 100644 --- a/interface/web/sites/lib/lang/ro_web_childdomain.lng +++ b/interface/web/sites/lib/lang/ro_web_childdomain.lng @@ -13,6 +13,10 @@ $wb['domain_txt'] = 'Domain'; $wb['type_txt'] = 'Type'; $wb['parent_domain_id_txt'] = 'Parent Website'; $wb['redirect_type_txt'] = 'Redirect Type'; +$wb['r_redirect_txt'] = 'R (Temporary redirect)'; +$wb['l_redirect_txt'] = 'L (Last redirect rule)'; +$wb['r_l_redirect_txt'] = 'R,L (Temporary redirect + last rule)'; +$wb['r_301_l_redirect_txt'] = 'R=301,L (Permanent redirect + last rule)'; $wb['redirect_path_txt'] = 'Redirect Path'; $wb['active_txt'] = 'Active'; $wb['document_root_txt'] = 'Documentroot'; diff --git a/interface/web/sites/lib/lang/ro_web_domain.lng b/interface/web/sites/lib/lang/ro_web_domain.lng index a0f7b6fe41..b1b2197f6b 100644 --- a/interface/web/sites/lib/lang/ro_web_domain.lng +++ b/interface/web/sites/lib/lang/ro_web_domain.lng @@ -13,6 +13,10 @@ $wb['domain_txt'] = 'Domain'; $wb['type_txt'] = 'Tip'; $wb['parent_domain_id_txt'] = 'Parinte Website'; $wb['redirect_type_txt'] = 'Redirect Tip'; +$wb['r_redirect_txt'] = 'R (Temporary redirect)'; +$wb['l_redirect_txt'] = 'L (Last redirect rule)'; +$wb['r_l_redirect_txt'] = 'R,L (Temporary redirect + last rule)'; +$wb['r_301_l_redirect_txt'] = 'R=301,L (Permanent redirect + last rule)'; $wb['redirect_path_txt'] = 'Redirect Path'; $wb['active_txt'] = 'Active'; $wb['document_root_txt'] = 'Documentroot'; diff --git a/interface/web/sites/lib/lang/ro_web_subdomain.lng b/interface/web/sites/lib/lang/ro_web_subdomain.lng index 83e036c6bd..fa21fc624a 100644 --- a/interface/web/sites/lib/lang/ro_web_subdomain.lng +++ b/interface/web/sites/lib/lang/ro_web_subdomain.lng @@ -13,6 +13,10 @@ $wb['domain_txt'] = 'Domain'; $wb['type_txt'] = 'Type'; $wb['parent_domain_id_txt'] = 'Parent Website'; $wb['redirect_type_txt'] = 'Redirect Type'; +$wb['r_redirect_txt'] = 'R (Temporary redirect)'; +$wb['l_redirect_txt'] = 'L (Last redirect rule)'; +$wb['r_l_redirect_txt'] = 'R,L (Temporary redirect + last rule)'; +$wb['r_301_l_redirect_txt'] = 'R=301,L (Permanent redirect + last rule)'; $wb['redirect_path_txt'] = 'Redirect Path'; $wb['active_txt'] = 'Active'; $wb['document_root_txt'] = 'Documentroot'; 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 9554f4643f..d4e46c8016 100644 --- a/interface/web/sites/lib/lang/ro_web_vhost_domain.lng +++ b/interface/web/sites/lib/lang/ro_web_vhost_domain.lng @@ -13,6 +13,10 @@ $wb['domain_txt'] = 'Domain'; $wb['type_txt'] = 'Tip'; $wb['parent_domain_id_txt'] = 'Parinte Website'; $wb['redirect_type_txt'] = 'Redirect Tip'; +$wb['r_redirect_txt'] = 'R (Temporary redirect)'; +$wb['l_redirect_txt'] = 'L (Last redirect rule)'; +$wb['r_l_redirect_txt'] = 'R,L (Temporary redirect + last rule)'; +$wb['r_301_l_redirect_txt'] = 'R=301,L (Permanent redirect + last rule)'; $wb['redirect_path_txt'] = 'Redirect Path'; $wb['active_txt'] = 'Active'; $wb['document_root_txt'] = 'Document Root'; diff --git a/interface/web/sites/lib/lang/ro_web_vhost_subdomain.lng b/interface/web/sites/lib/lang/ro_web_vhost_subdomain.lng index 47b9e1aff2..13e1558aa6 100644 --- a/interface/web/sites/lib/lang/ro_web_vhost_subdomain.lng +++ b/interface/web/sites/lib/lang/ro_web_vhost_subdomain.lng @@ -22,6 +22,10 @@ $wb['host_txt'] = 'Hostname'; $wb['web_folder_error_regex'] = 'Invalid folder entered. Please do not enter a slash.'; $wb['type_txt'] = 'Type'; $wb['redirect_type_txt'] = 'Redirect Type'; +$wb['r_redirect_txt'] = 'R (Temporary redirect)'; +$wb['l_redirect_txt'] = 'L (Last redirect rule)'; +$wb['r_l_redirect_txt'] = 'R,L (Temporary redirect + last rule)'; +$wb['r_301_l_redirect_txt'] = 'R=301,L (Permanent redirect + last rule)'; $wb['redirect_path_txt'] = 'Redirect Path'; $wb['active_txt'] = 'Active'; $wb['document_root_txt'] = 'Documentroot'; diff --git a/interface/web/sites/lib/lang/ru_web_aliasdomain.lng b/interface/web/sites/lib/lang/ru_web_aliasdomain.lng index 9b59281c2f..5f2f052aa1 100644 --- a/interface/web/sites/lib/lang/ru_web_aliasdomain.lng +++ b/interface/web/sites/lib/lang/ru_web_aliasdomain.lng @@ -18,6 +18,10 @@ $wb['web_folder_error_regex'] = 'Неверный ввод папки. Пожа $wb['type_txt'] = 'Тип'; $wb['parent_domain_id_txt'] = 'Родительский Web-сайт'; $wb['redirect_type_txt'] = 'Тип редиректа'; +$wb['r_redirect_txt'] = 'R (Temporary redirect)'; +$wb['l_redirect_txt'] = 'L (Last redirect rule)'; +$wb['r_l_redirect_txt'] = 'R,L (Temporary redirect + last rule)'; +$wb['r_301_l_redirect_txt'] = 'R=301,L (Permanent redirect + last rule)'; $wb['redirect_path_txt'] = 'Путь редиректа'; $wb['active_txt'] = 'Активно'; $wb['document_root_txt'] = 'Documentroot'; diff --git a/interface/web/sites/lib/lang/ru_web_childdomain.lng b/interface/web/sites/lib/lang/ru_web_childdomain.lng index a5c5b4e55b..fed47ffc8f 100644 --- a/interface/web/sites/lib/lang/ru_web_childdomain.lng +++ b/interface/web/sites/lib/lang/ru_web_childdomain.lng @@ -13,6 +13,10 @@ $wb['domain_txt'] = 'Домен'; $wb['type_txt'] = 'Тип'; $wb['parent_domain_id_txt'] = 'Родительский Web-сайт'; $wb['redirect_type_txt'] = 'Тип редиректа'; +$wb['r_redirect_txt'] = 'R (Temporary redirect)'; +$wb['l_redirect_txt'] = 'L (Last redirect rule)'; +$wb['r_l_redirect_txt'] = 'R,L (Temporary redirect + last rule)'; +$wb['r_301_l_redirect_txt'] = 'R=301,L (Permanent redirect + last rule)'; $wb['redirect_path_txt'] = 'Путь редиректа'; $wb['active_txt'] = 'Активно'; $wb['document_root_txt'] = 'Documentroot'; diff --git a/interface/web/sites/lib/lang/ru_web_domain.lng b/interface/web/sites/lib/lang/ru_web_domain.lng index be1e39e8a8..829df57658 100644 --- a/interface/web/sites/lib/lang/ru_web_domain.lng +++ b/interface/web/sites/lib/lang/ru_web_domain.lng @@ -13,6 +13,10 @@ $wb['domain_txt'] = 'Домен'; $wb['type_txt'] = 'Тип'; $wb['parent_domain_id_txt'] = 'Дочерний Web-сайт'; $wb['redirect_type_txt'] = 'Тип редиректа'; +$wb['r_redirect_txt'] = 'R (Temporary redirect)'; +$wb['l_redirect_txt'] = 'L (Last redirect rule)'; +$wb['r_l_redirect_txt'] = 'R,L (Temporary redirect + last rule)'; +$wb['r_301_l_redirect_txt'] = 'R=301,L (Permanent redirect + last rule)'; $wb['redirect_path_txt'] = 'Путь редиректа'; $wb['active_txt'] = 'Активно'; $wb['document_root_txt'] = 'Documentroot'; diff --git a/interface/web/sites/lib/lang/ru_web_subdomain.lng b/interface/web/sites/lib/lang/ru_web_subdomain.lng index 6efdee1ab7..9ad6da9728 100644 --- a/interface/web/sites/lib/lang/ru_web_subdomain.lng +++ b/interface/web/sites/lib/lang/ru_web_subdomain.lng @@ -13,6 +13,10 @@ $wb['domain_txt'] = 'Домен'; $wb['type_txt'] = 'Тип'; $wb['parent_domain_id_txt'] = 'Родительский Web-сайт'; $wb['redirect_type_txt'] = 'Тип редиректа'; +$wb['r_redirect_txt'] = 'R (Temporary redirect)'; +$wb['l_redirect_txt'] = 'L (Last redirect rule)'; +$wb['r_l_redirect_txt'] = 'R,L (Temporary redirect + last rule)'; +$wb['r_301_l_redirect_txt'] = 'R=301,L (Permanent redirect + last rule)'; $wb['redirect_path_txt'] = 'Путь редиректа'; $wb['active_txt'] = 'Активно'; $wb['document_root_txt'] = 'Documentroot'; 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 538b329fb4..a57188cf95 100644 --- a/interface/web/sites/lib/lang/ru_web_vhost_domain.lng +++ b/interface/web/sites/lib/lang/ru_web_vhost_domain.lng @@ -13,6 +13,10 @@ $wb['domain_txt'] = 'Домен'; $wb['type_txt'] = 'Тип'; $wb['parent_domain_id_txt'] = 'Дочерний Web-сайт'; $wb['redirect_type_txt'] = 'Тип редиректа'; +$wb['r_redirect_txt'] = 'R (Temporary redirect)'; +$wb['l_redirect_txt'] = 'L (Last redirect rule)'; +$wb['r_l_redirect_txt'] = 'R,L (Temporary redirect + last rule)'; +$wb['r_301_l_redirect_txt'] = 'R=301,L (Permanent redirect + last rule)'; $wb['redirect_path_txt'] = 'Путь редиректа'; $wb['active_txt'] = 'Активно'; $wb['document_root_txt'] = 'Document Root'; diff --git a/interface/web/sites/lib/lang/ru_web_vhost_subdomain.lng b/interface/web/sites/lib/lang/ru_web_vhost_subdomain.lng index a679065ce6..d459fcd076 100644 --- a/interface/web/sites/lib/lang/ru_web_vhost_subdomain.lng +++ b/interface/web/sites/lib/lang/ru_web_vhost_subdomain.lng @@ -22,6 +22,10 @@ $wb['host_txt'] = 'Хост'; $wb['web_folder_error_regex'] = 'Неверный ввод папки. Пожалуйста, не вводите слеш.'; $wb['type_txt'] = 'Тип'; $wb['redirect_type_txt'] = 'Тип редиректа'; +$wb['r_redirect_txt'] = 'R (Temporary redirect)'; +$wb['l_redirect_txt'] = 'L (Last redirect rule)'; +$wb['r_l_redirect_txt'] = 'R,L (Temporary redirect + last rule)'; +$wb['r_301_l_redirect_txt'] = 'R=301,L (Permanent redirect + last rule)'; $wb['redirect_path_txt'] = 'Путь редиректа'; $wb['active_txt'] = 'Активно'; $wb['document_root_txt'] = 'Documentroot'; diff --git a/interface/web/sites/lib/lang/se_web_aliasdomain.lng b/interface/web/sites/lib/lang/se_web_aliasdomain.lng index de094c3086..0a2d659ab4 100644 --- a/interface/web/sites/lib/lang/se_web_aliasdomain.lng +++ b/interface/web/sites/lib/lang/se_web_aliasdomain.lng @@ -18,6 +18,10 @@ $wb['web_folder_error_regex'] = 'Invalid folder entered. Please do not enter a s $wb['type_txt'] = 'Type'; $wb['parent_domain_id_txt'] = 'Parent Website'; $wb['redirect_type_txt'] = 'Redirect Type'; +$wb['r_redirect_txt'] = 'R (Temporary redirect)'; +$wb['l_redirect_txt'] = 'L (Last redirect rule)'; +$wb['r_l_redirect_txt'] = 'R,L (Temporary redirect + last rule)'; +$wb['r_301_l_redirect_txt'] = 'R=301,L (Permanent redirect + last rule)'; $wb['redirect_path_txt'] = 'Redirect Path'; $wb['active_txt'] = 'Active'; $wb['document_root_txt'] = 'Documentroot'; diff --git a/interface/web/sites/lib/lang/se_web_childdomain.lng b/interface/web/sites/lib/lang/se_web_childdomain.lng index e0d6e42476..5a94d73986 100644 --- a/interface/web/sites/lib/lang/se_web_childdomain.lng +++ b/interface/web/sites/lib/lang/se_web_childdomain.lng @@ -13,6 +13,10 @@ $wb['domain_txt'] = 'Domain'; $wb['type_txt'] = 'Type'; $wb['parent_domain_id_txt'] = 'Parent Website'; $wb['redirect_type_txt'] = 'Redirect Type'; +$wb['r_redirect_txt'] = 'R (Temporary redirect)'; +$wb['l_redirect_txt'] = 'L (Last redirect rule)'; +$wb['r_l_redirect_txt'] = 'R,L (Temporary redirect + last rule)'; +$wb['r_301_l_redirect_txt'] = 'R=301,L (Permanent redirect + last rule)'; $wb['redirect_path_txt'] = 'Redirect Path'; $wb['active_txt'] = 'Active'; $wb['document_root_txt'] = 'Documentroot'; diff --git a/interface/web/sites/lib/lang/se_web_domain.lng b/interface/web/sites/lib/lang/se_web_domain.lng index 511a4bca81..0599c35692 100644 --- a/interface/web/sites/lib/lang/se_web_domain.lng +++ b/interface/web/sites/lib/lang/se_web_domain.lng @@ -13,6 +13,10 @@ $wb['domain_txt'] = 'Domän'; $wb['type_txt'] = 'Typ'; $wb['parent_domain_id_txt'] = 'Föräldrawebbsida'; $wb['redirect_type_txt'] = 'Omdirigeringstyp'; +$wb['r_redirect_txt'] = 'R (Temporary redirect)'; +$wb['l_redirect_txt'] = 'L (Last redirect rule)'; +$wb['r_l_redirect_txt'] = 'R,L (Temporary redirect + last rule)'; +$wb['r_301_l_redirect_txt'] = 'R=301,L (Permanent redirect + last rule)'; $wb['redirect_path_txt'] = 'Omdirigeringssökväg'; $wb['active_txt'] = 'Aktiv'; $wb['document_root_txt'] = 'Dokumentroot'; diff --git a/interface/web/sites/lib/lang/se_web_subdomain.lng b/interface/web/sites/lib/lang/se_web_subdomain.lng index 578755cf26..76ccd26105 100644 --- a/interface/web/sites/lib/lang/se_web_subdomain.lng +++ b/interface/web/sites/lib/lang/se_web_subdomain.lng @@ -13,6 +13,10 @@ $wb['domain_txt'] = 'Domän'; $wb['type_txt'] = 'Typ'; $wb['parent_domain_id_txt'] = 'Föräldrawebbsida'; $wb['redirect_type_txt'] = 'Omdirigeringstyp'; +$wb['r_redirect_txt'] = 'R (Temporary redirect)'; +$wb['l_redirect_txt'] = 'L (Last redirect rule)'; +$wb['r_l_redirect_txt'] = 'R,L (Temporary redirect + last rule)'; +$wb['r_301_l_redirect_txt'] = 'R=301,L (Permanent redirect + last rule)'; $wb['redirect_path_txt'] = 'Omdirigeringssökväg'; $wb['active_txt'] = 'Aktiv'; $wb['document_root_txt'] = 'Dokumentroot'; 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 af1a6f1b9e..f08d66dce1 100644 --- a/interface/web/sites/lib/lang/se_web_vhost_domain.lng +++ b/interface/web/sites/lib/lang/se_web_vhost_domain.lng @@ -13,6 +13,10 @@ $wb['domain_txt'] = 'Domän'; $wb['type_txt'] = 'Typ'; $wb['parent_domain_id_txt'] = 'Föräldrawebbsida'; $wb['redirect_type_txt'] = 'Omdirigeringstyp'; +$wb['r_redirect_txt'] = 'R (Temporary redirect)'; +$wb['l_redirect_txt'] = 'L (Last redirect rule)'; +$wb['r_l_redirect_txt'] = 'R,L (Temporary redirect + last rule)'; +$wb['r_301_l_redirect_txt'] = 'R=301,L (Permanent redirect + last rule)'; $wb['redirect_path_txt'] = 'Omdirigeringssökväg'; $wb['active_txt'] = 'Aktiv'; $wb['document_root_txt'] = 'Document Root'; diff --git a/interface/web/sites/lib/lang/se_web_vhost_subdomain.lng b/interface/web/sites/lib/lang/se_web_vhost_subdomain.lng index 47b9e1aff2..13e1558aa6 100644 --- a/interface/web/sites/lib/lang/se_web_vhost_subdomain.lng +++ b/interface/web/sites/lib/lang/se_web_vhost_subdomain.lng @@ -22,6 +22,10 @@ $wb['host_txt'] = 'Hostname'; $wb['web_folder_error_regex'] = 'Invalid folder entered. Please do not enter a slash.'; $wb['type_txt'] = 'Type'; $wb['redirect_type_txt'] = 'Redirect Type'; +$wb['r_redirect_txt'] = 'R (Temporary redirect)'; +$wb['l_redirect_txt'] = 'L (Last redirect rule)'; +$wb['r_l_redirect_txt'] = 'R,L (Temporary redirect + last rule)'; +$wb['r_301_l_redirect_txt'] = 'R=301,L (Permanent redirect + last rule)'; $wb['redirect_path_txt'] = 'Redirect Path'; $wb['active_txt'] = 'Active'; $wb['document_root_txt'] = 'Documentroot'; diff --git a/interface/web/sites/lib/lang/sk_web_aliasdomain.lng b/interface/web/sites/lib/lang/sk_web_aliasdomain.lng index de094c3086..0a2d659ab4 100644 --- a/interface/web/sites/lib/lang/sk_web_aliasdomain.lng +++ b/interface/web/sites/lib/lang/sk_web_aliasdomain.lng @@ -18,6 +18,10 @@ $wb['web_folder_error_regex'] = 'Invalid folder entered. Please do not enter a s $wb['type_txt'] = 'Type'; $wb['parent_domain_id_txt'] = 'Parent Website'; $wb['redirect_type_txt'] = 'Redirect Type'; +$wb['r_redirect_txt'] = 'R (Temporary redirect)'; +$wb['l_redirect_txt'] = 'L (Last redirect rule)'; +$wb['r_l_redirect_txt'] = 'R,L (Temporary redirect + last rule)'; +$wb['r_301_l_redirect_txt'] = 'R=301,L (Permanent redirect + last rule)'; $wb['redirect_path_txt'] = 'Redirect Path'; $wb['active_txt'] = 'Active'; $wb['document_root_txt'] = 'Documentroot'; diff --git a/interface/web/sites/lib/lang/sk_web_childdomain.lng b/interface/web/sites/lib/lang/sk_web_childdomain.lng index 3d9a68638c..dd97981e5c 100644 --- a/interface/web/sites/lib/lang/sk_web_childdomain.lng +++ b/interface/web/sites/lib/lang/sk_web_childdomain.lng @@ -13,6 +13,10 @@ $wb['domain_txt'] = 'Doména'; $wb['type_txt'] = 'Typ'; $wb['parent_domain_id_txt'] = 'Materská webová stránka'; $wb['redirect_type_txt'] = 'Typ presmerovanie'; +$wb['r_redirect_txt'] = 'R (Temporary redirect)'; +$wb['l_redirect_txt'] = 'L (Last redirect rule)'; +$wb['r_l_redirect_txt'] = 'R,L (Temporary redirect + last rule)'; +$wb['r_301_l_redirect_txt'] = 'R=301,L (Permanent redirect + last rule)'; $wb['redirect_path_txt'] = 'Cesta presmerovania'; $wb['active_txt'] = 'Aktívne'; $wb['document_root_txt'] = 'DocumentRoot'; diff --git a/interface/web/sites/lib/lang/sk_web_domain.lng b/interface/web/sites/lib/lang/sk_web_domain.lng index c4ba44a51e..dbb58ff397 100644 --- a/interface/web/sites/lib/lang/sk_web_domain.lng +++ b/interface/web/sites/lib/lang/sk_web_domain.lng @@ -13,6 +13,10 @@ $wb['domain_txt'] = 'Doména'; $wb['type_txt'] = 'Typ'; $wb['parent_domain_id_txt'] = 'Parent Website'; $wb['redirect_type_txt'] = 'Redirect Type'; +$wb['r_redirect_txt'] = 'R (Temporary redirect)'; +$wb['l_redirect_txt'] = 'L (Last redirect rule)'; +$wb['r_l_redirect_txt'] = 'R,L (Temporary redirect + last rule)'; +$wb['r_301_l_redirect_txt'] = 'R=301,L (Permanent redirect + last rule)'; $wb['redirect_path_txt'] = 'Redirect Path'; $wb['active_txt'] = 'Aktívne'; $wb['document_root_txt'] = 'DocumentRoot'; diff --git a/interface/web/sites/lib/lang/sk_web_subdomain.lng b/interface/web/sites/lib/lang/sk_web_subdomain.lng index 1fb1ec65d0..651938eebd 100644 --- a/interface/web/sites/lib/lang/sk_web_subdomain.lng +++ b/interface/web/sites/lib/lang/sk_web_subdomain.lng @@ -13,6 +13,10 @@ $wb['domain_txt'] = 'Doména'; $wb['type_txt'] = 'Typ'; $wb['parent_domain_id_txt'] = 'Materská webová stránka'; $wb['redirect_type_txt'] = 'Typ presmerovanie'; +$wb['r_redirect_txt'] = 'R (Temporary redirect)'; +$wb['l_redirect_txt'] = 'L (Last redirect rule)'; +$wb['r_l_redirect_txt'] = 'R,L (Temporary redirect + last rule)'; +$wb['r_301_l_redirect_txt'] = 'R=301,L (Permanent redirect + last rule)'; $wb['redirect_path_txt'] = 'Cesta presmerovania'; $wb['active_txt'] = 'Aktívne'; $wb['document_root_txt'] = 'DocumentRoot'; 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 e2cfa27c0f..c9eb66987a 100644 --- a/interface/web/sites/lib/lang/sk_web_vhost_domain.lng +++ b/interface/web/sites/lib/lang/sk_web_vhost_domain.lng @@ -13,6 +13,10 @@ $wb['domain_txt'] = 'Doména'; $wb['type_txt'] = 'Typ'; $wb['parent_domain_id_txt'] = 'Parent Website'; $wb['redirect_type_txt'] = 'Redirect Type'; +$wb['r_redirect_txt'] = 'R (Temporary redirect)'; +$wb['l_redirect_txt'] = 'L (Last redirect rule)'; +$wb['r_l_redirect_txt'] = 'R,L (Temporary redirect + last rule)'; +$wb['r_301_l_redirect_txt'] = 'R=301,L (Permanent redirect + last rule)'; $wb['redirect_path_txt'] = 'Redirect Path'; $wb['active_txt'] = 'Aktívne'; $wb['document_root_txt'] = 'Document Root'; diff --git a/interface/web/sites/lib/lang/sk_web_vhost_subdomain.lng b/interface/web/sites/lib/lang/sk_web_vhost_subdomain.lng index 47b9e1aff2..13e1558aa6 100644 --- a/interface/web/sites/lib/lang/sk_web_vhost_subdomain.lng +++ b/interface/web/sites/lib/lang/sk_web_vhost_subdomain.lng @@ -22,6 +22,10 @@ $wb['host_txt'] = 'Hostname'; $wb['web_folder_error_regex'] = 'Invalid folder entered. Please do not enter a slash.'; $wb['type_txt'] = 'Type'; $wb['redirect_type_txt'] = 'Redirect Type'; +$wb['r_redirect_txt'] = 'R (Temporary redirect)'; +$wb['l_redirect_txt'] = 'L (Last redirect rule)'; +$wb['r_l_redirect_txt'] = 'R,L (Temporary redirect + last rule)'; +$wb['r_301_l_redirect_txt'] = 'R=301,L (Permanent redirect + last rule)'; $wb['redirect_path_txt'] = 'Redirect Path'; $wb['active_txt'] = 'Active'; $wb['document_root_txt'] = 'Documentroot'; diff --git a/interface/web/sites/lib/lang/tr_web_aliasdomain.lng b/interface/web/sites/lib/lang/tr_web_aliasdomain.lng index 015f10d2fc..cc7b8b70df 100644 --- a/interface/web/sites/lib/lang/tr_web_aliasdomain.lng +++ b/interface/web/sites/lib/lang/tr_web_aliasdomain.lng @@ -18,6 +18,10 @@ $wb['web_folder_error_regex'] = 'Yazdığınız klasör geçersiz. / karakterini $wb['type_txt'] = 'Tür'; $wb['parent_domain_id_txt'] = 'Üst Web Sitesi'; $wb['redirect_type_txt'] = 'Yönlendirme Türü'; +$wb['r_redirect_txt'] = 'R (Temporary redirect)'; +$wb['l_redirect_txt'] = 'L (Last redirect rule)'; +$wb['r_l_redirect_txt'] = 'R,L (Temporary redirect + last rule)'; +$wb['r_301_l_redirect_txt'] = 'R=301,L (Permanent redirect + last rule)'; $wb['redirect_path_txt'] = 'Yönlendirme Yolu'; $wb['active_txt'] = 'Etkin'; $wb['document_root_txt'] = 'Kök Klasör'; diff --git a/interface/web/sites/lib/lang/tr_web_childdomain.lng b/interface/web/sites/lib/lang/tr_web_childdomain.lng index 1e8693389c..f396a3cfb0 100644 --- a/interface/web/sites/lib/lang/tr_web_childdomain.lng +++ b/interface/web/sites/lib/lang/tr_web_childdomain.lng @@ -13,6 +13,10 @@ $wb['domain_txt'] = 'Etki Alanı'; $wb['type_txt'] = 'Tür'; $wb['parent_domain_id_txt'] = 'Ana Web Sitesi'; $wb['redirect_type_txt'] = 'Yönlendirme Türü'; +$wb['r_redirect_txt'] = 'R (Temporary redirect)'; +$wb['l_redirect_txt'] = 'L (Last redirect rule)'; +$wb['r_l_redirect_txt'] = 'R,L (Temporary redirect + last rule)'; +$wb['r_301_l_redirect_txt'] = 'R=301,L (Permanent redirect + last rule)'; $wb['redirect_path_txt'] = 'Yönlendirme Yolu'; $wb['active_txt'] = 'Etkin'; $wb['document_root_txt'] = 'Belge Kök Klasörü'; diff --git a/interface/web/sites/lib/lang/tr_web_domain.lng b/interface/web/sites/lib/lang/tr_web_domain.lng index 7ebba4cd71..f1f4a19938 100644 --- a/interface/web/sites/lib/lang/tr_web_domain.lng +++ b/interface/web/sites/lib/lang/tr_web_domain.lng @@ -18,6 +18,10 @@ $wb['web_folder_error_regex'] = 'Yazdığınız klasör geçersiz. Lütfen böl $wb['type_txt'] = 'Tür'; $wb['parent_domain_id_txt'] = 'Üst Web Sitesi'; $wb['redirect_type_txt'] = 'Yönlendirme Türü'; +$wb['r_redirect_txt'] = 'R (Temporary redirect)'; +$wb['l_redirect_txt'] = 'L (Last redirect rule)'; +$wb['r_l_redirect_txt'] = 'R,L (Temporary redirect + last rule)'; +$wb['r_301_l_redirect_txt'] = 'R=301,L (Permanent redirect + last rule)'; $wb['redirect_path_txt'] = 'Yönlendirme Yolu'; $wb['active_txt'] = 'Etkin'; $wb['document_root_txt'] = 'Kök Klasör'; diff --git a/interface/web/sites/lib/lang/tr_web_subdomain.lng b/interface/web/sites/lib/lang/tr_web_subdomain.lng index 5b703e3a32..24763f307b 100644 --- a/interface/web/sites/lib/lang/tr_web_subdomain.lng +++ b/interface/web/sites/lib/lang/tr_web_subdomain.lng @@ -13,6 +13,10 @@ $wb['domain_txt'] = 'Etki Alanı'; $wb['type_txt'] = 'Tür'; $wb['parent_domain_id_txt'] = 'Üst Web Sitesi'; $wb['redirect_type_txt'] = 'Yönlendirme Türü'; +$wb['r_redirect_txt'] = 'R (Temporary redirect)'; +$wb['l_redirect_txt'] = 'L (Last redirect rule)'; +$wb['r_l_redirect_txt'] = 'R,L (Temporary redirect + last rule)'; +$wb['r_301_l_redirect_txt'] = 'R=301,L (Permanent redirect + last rule)'; $wb['redirect_path_txt'] = 'Yönlendirme Yolu'; $wb['active_txt'] = 'Etkin'; $wb['document_root_txt'] = 'Kök Klasör'; 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 6b7fe3793e..4561970e90 100644 --- a/interface/web/sites/lib/lang/tr_web_vhost_domain.lng +++ b/interface/web/sites/lib/lang/tr_web_vhost_domain.lng @@ -18,6 +18,10 @@ $wb['web_folder_error_regex'] = 'Yazdığınız klasör geçersiz. Lütfen / kar $wb['type_txt'] = 'Tür'; $wb['parent_domain_id_txt'] = 'Üst Web Sitesi'; $wb['redirect_type_txt'] = 'Yönlendirme Türü'; +$wb['r_redirect_txt'] = 'R (Temporary redirect)'; +$wb['l_redirect_txt'] = 'L (Last redirect rule)'; +$wb['r_l_redirect_txt'] = 'R,L (Temporary redirect + last rule)'; +$wb['r_301_l_redirect_txt'] = 'R=301,L (Permanent redirect + last rule)'; $wb['redirect_path_txt'] = 'Yönlendirme Yolu'; $wb['active_txt'] = 'Etkin'; $wb['document_root_txt'] = 'Kök Klasör'; 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 e5f47865d4..8fb06e2802 100644 --- a/interface/web/sites/lib/lang/tr_web_vhost_subdomain.lng +++ b/interface/web/sites/lib/lang/tr_web_vhost_subdomain.lng @@ -23,6 +23,10 @@ $wb['web_folder_error_regex'] = 'Yazılan klasör geçersiz. Lütfen / karakteri $wb['type_txt'] = 'Tür'; $wb['parent_domain_id_txt'] = 'Üst Web Sitesi'; $wb['redirect_type_txt'] = 'Yönlendirme Türü'; +$wb['r_redirect_txt'] = 'R (Temporary redirect)'; +$wb['l_redirect_txt'] = 'L (Last redirect rule)'; +$wb['r_l_redirect_txt'] = 'R,L (Temporary redirect + last rule)'; +$wb['r_301_l_redirect_txt'] = 'R=301,L (Permanent redirect + last rule)'; $wb['redirect_path_txt'] = 'Yönlendirme Yolu'; $wb['active_txt'] = 'Etkin'; $wb['document_root_txt'] = 'Kök Klasör'; -- GitLab From 048d0cc508dc4a52859ec4e7b4d7651947ab8c1c Mon Sep 17 00:00:00 2001 From: thom Date: Tue, 6 Oct 2020 21:05:48 +0200 Subject: [PATCH 011/300] Fix wrong content location (#5808) --- interface/web/sites/templates/web_vhost_domain_admin_list.htm | 2 +- interface/web/sites/templates/web_vhost_domain_list.htm | 2 +- 2 files changed, 2 insertions(+), 2 deletions(-) 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 85458f7329..74849d548d 100644 --- a/interface/web/sites/templates/web_vhost_domain_admin_list.htm +++ b/interface/web/sites/templates/web_vhost_domain_admin_list.htm @@ -42,7 +42,7 @@ {tmpl_var name="active"} {tmpl_var name="sys_groupid"} {tmpl_var name="server_id"} - {tmpl_var name="parent_domain_id"} + {tmpl_var name="parent_domain_id"} {tmpl_var name="domain"} diff --git a/interface/web/sites/templates/web_vhost_domain_list.htm b/interface/web/sites/templates/web_vhost_domain_list.htm index 3726a707f4..e3db359f31 100644 --- a/interface/web/sites/templates/web_vhost_domain_list.htm +++ b/interface/web/sites/templates/web_vhost_domain_list.htm @@ -56,7 +56,7 @@ {tmpl_var name="domain_id"} {tmpl_var name="active"} {tmpl_var name="server_id"} - {tmpl_var name="parent_domain_id"} + {tmpl_var name="parent_domain_id"} {tmpl_var name="domain"} -- GitLab From 4e9dfce8159c4d1a554d13dc78bc2fc630502dc6 Mon Sep 17 00:00:00 2001 From: thom Date: Tue, 6 Oct 2020 21:22:42 +0200 Subject: [PATCH 012/300] Do not allow DB quota = 0 when db quota client limit > 0 (#4355) --- interface/web/sites/database_edit.php | 11 ++++++++--- interface/web/sites/lib/lang/ar_database.lng | 1 + interface/web/sites/lib/lang/bg_database.lng | 1 + interface/web/sites/lib/lang/br_database.lng | 1 + interface/web/sites/lib/lang/ca_database.lng | 1 + interface/web/sites/lib/lang/cz_database.lng | 1 + interface/web/sites/lib/lang/de_database.lng | 1 + interface/web/sites/lib/lang/dk_database.lng | 1 + interface/web/sites/lib/lang/el_database.lng | 1 + interface/web/sites/lib/lang/en_database.lng | 1 + interface/web/sites/lib/lang/es_database.lng | 1 + interface/web/sites/lib/lang/fi_database.lng | 1 + interface/web/sites/lib/lang/fr_database.lng | 1 + interface/web/sites/lib/lang/hr_database.lng | 1 + interface/web/sites/lib/lang/hu_database.lng | 1 + interface/web/sites/lib/lang/id_database.lng | 1 + interface/web/sites/lib/lang/it_database.lng | 1 + interface/web/sites/lib/lang/ja_database.lng | 1 + interface/web/sites/lib/lang/nl_database.lng | 1 + interface/web/sites/lib/lang/pl_database.lng | 1 + interface/web/sites/lib/lang/pt_database.lng | 1 + interface/web/sites/lib/lang/ro_database.lng | 1 + interface/web/sites/lib/lang/ru_database.lng | 1 + interface/web/sites/lib/lang/se_database.lng | 1 + interface/web/sites/lib/lang/sk_database.lng | 1 + interface/web/sites/lib/lang/tr_database.lng | 1 + 26 files changed, 33 insertions(+), 3 deletions(-) diff --git a/interface/web/sites/database_edit.php b/interface/web/sites/database_edit.php index 22f3302c6c..279ccbaf95 100644 --- a/interface/web/sites/database_edit.php +++ b/interface/web/sites/database_edit.php @@ -211,6 +211,11 @@ class page_action extends tform_actions { unset($global_config); unset($dbname_prefix); } + + //* ensure that quota value is not 0 when quota is set for client + if($client['limit_database_quota'] > 0 && isset($_POST["database_quota"]) && $_POST["database_quota"] == 0) { + $app->tform->errorMessage .= $app->tform->lng("limit_database_quota_not_0_txt")."
"; + } if($client['parent_client_id'] > 0) { // Get the limits of the reseller @@ -357,7 +362,7 @@ class page_action extends tform_actions { if($tmp['server_id'] && $tmp['server_id'] != $this->dataRecord['server_id']) { // we need remote access rights for this server, so get it's ip address $server_config = $app->getconf->get_server_config($tmp['server_id'], 'server'); - + // Add default remote_ips from Main Configuration. $remote_ips = explode(",", $global_config['default_remote_dbserver']); if (!in_array($server_config['ip_address'], $default_remote_db)) { $remote_ips[] = $server_config['ip_address']; } @@ -380,7 +385,7 @@ class page_action extends tform_actions { } } } - + if ($app->tform->errorMessage == '') { // force update of the used database user if($this->dataRecord['database_user_id']) { @@ -442,7 +447,7 @@ class page_action extends tform_actions { if($tmp['server_id'] && $tmp['server_id'] != $this->dataRecord['server_id']) { // we need remote access rights for this server, so get it's ip address $server_config = $app->getconf->get_server_config($tmp['server_id'], 'server'); - + // Add default remote_ips from Main Configuration. $remote_ips = explode(",", $global_config['default_remote_dbserver']); if (!in_array($server_config['ip_address'], $default_remote_db)) { $remote_ips[] = $server_config['ip_address']; } diff --git a/interface/web/sites/lib/lang/ar_database.lng b/interface/web/sites/lib/lang/ar_database.lng index bfd17a693c..f081f1dce8 100644 --- a/interface/web/sites/lib/lang/ar_database.lng +++ b/interface/web/sites/lib/lang/ar_database.lng @@ -46,4 +46,5 @@ $wb['database_user_missing_txt'] = 'Please select a database user for this datab $wb['limit_database_quota_txt'] = 'Database quota'; $wb['limit_database_quota_error_notint'] = 'The database quota limit must be a number.'; $wb['limit_database_quota_free_txt'] = 'Max. available DB quota '; +$wb['limit_database_quota_not_0_txt']= 'Database quota can not be 0'; ?> diff --git a/interface/web/sites/lib/lang/bg_database.lng b/interface/web/sites/lib/lang/bg_database.lng index a6afea58ba..675bbdd8c9 100644 --- a/interface/web/sites/lib/lang/bg_database.lng +++ b/interface/web/sites/lib/lang/bg_database.lng @@ -46,4 +46,5 @@ $wb['database_user_missing_txt'] = 'Please select a database user for this datab $wb['limit_database_quota_txt'] = 'Database quota'; $wb['limit_database_quota_error_notint'] = 'The database quota limit must be a number.'; $wb['limit_database_quota_free_txt'] = 'Max. available DB quota '; +$wb['limit_database_quota_not_0_txt']= 'Database quota can not be 0'; ?> diff --git a/interface/web/sites/lib/lang/br_database.lng b/interface/web/sites/lib/lang/br_database.lng index 3690ee9cf8..2e5fcd72e5 100644 --- a/interface/web/sites/lib/lang/br_database.lng +++ b/interface/web/sites/lib/lang/br_database.lng @@ -46,4 +46,5 @@ $wb['globalsearch_suggestions_text_txt'] = 'Sugestões'; $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'; +$wb['limit_database_quota_not_0_txt']= 'Database quota can not be 0'; ?> diff --git a/interface/web/sites/lib/lang/ca_database.lng b/interface/web/sites/lib/lang/ca_database.lng index 9905e65d00..5a49db5f75 100644 --- a/interface/web/sites/lib/lang/ca_database.lng +++ b/interface/web/sites/lib/lang/ca_database.lng @@ -46,4 +46,5 @@ $wb['database_user_missing_txt'] = 'Please select a database user for this datab $wb['limit_database_quota_txt'] = 'Database quota'; $wb['limit_database_quota_error_notint'] = 'The database quota limit must be a number.'; $wb['limit_database_quota_free_txt'] = 'Max. available DB quota '; +$wb['limit_database_quota_not_0_txt']= 'Database quota can not be 0'; ?> diff --git a/interface/web/sites/lib/lang/cz_database.lng b/interface/web/sites/lib/lang/cz_database.lng index edb031a1d3..931360d8ca 100644 --- a/interface/web/sites/lib/lang/cz_database.lng +++ b/interface/web/sites/lib/lang/cz_database.lng @@ -46,4 +46,5 @@ $wb['database_user_missing_txt'] = 'Prosím vyberte uživatele databáze pro tut $wb['limit_database_quota_txt'] = 'Kvóta databáze'; $wb['limit_database_quota_error_notint'] = 'Limit databázové kvóty musí být číslo.'; $wb['limit_database_quota_free_txt'] = 'Max. dostupná DB kvóta je '; +$wb['limit_database_quota_not_0_txt']= 'Database quota can not be 0'; ?> diff --git a/interface/web/sites/lib/lang/de_database.lng b/interface/web/sites/lib/lang/de_database.lng index 891306c485..9f7a102ca3 100644 --- a/interface/web/sites/lib/lang/de_database.lng +++ b/interface/web/sites/lib/lang/de_database.lng @@ -46,4 +46,5 @@ $wb['globalsearch_suggestions_text_txt'] = 'Vorschläge'; $wb['limit_database_quota_txt'] = 'Database quota'; $wb['limit_database_quota_error_notint'] = 'The database quota limit must be a number.'; $wb['limit_database_quota_free_txt'] = 'Max. available DB quota '; +$wb['limit_database_quota_not_0_txt']= 'Database quota can not be 0'; ?> diff --git a/interface/web/sites/lib/lang/dk_database.lng b/interface/web/sites/lib/lang/dk_database.lng index e788a05687..70ac3b45dd 100644 --- a/interface/web/sites/lib/lang/dk_database.lng +++ b/interface/web/sites/lib/lang/dk_database.lng @@ -46,4 +46,5 @@ $wb['globalsearch_suggestions_text_txt'] = 'Forslag'; $wb['limit_database_quota_txt'] = 'Database quota'; $wb['limit_database_quota_error_notint'] = 'The database quota limit must be a number.'; $wb['limit_database_quota_free_txt'] = 'Max. available DB quota '; +$wb['limit_database_quota_not_0_txt']= 'Database quota can not be 0'; ?> diff --git a/interface/web/sites/lib/lang/el_database.lng b/interface/web/sites/lib/lang/el_database.lng index d64c194412..d3c1555a7c 100644 --- a/interface/web/sites/lib/lang/el_database.lng +++ b/interface/web/sites/lib/lang/el_database.lng @@ -46,4 +46,5 @@ $wb['database_user_missing_txt'] = 'Please select a database user for this datab $wb['limit_database_quota_txt'] = 'Database quota'; $wb['limit_database_quota_error_notint'] = 'The database quota limit must be a number.'; $wb['limit_database_quota_free_txt'] = 'Max. available DB quota '; +$wb['limit_database_quota_not_0_txt']= 'Database quota can not be 0'; ?> diff --git a/interface/web/sites/lib/lang/en_database.lng b/interface/web/sites/lib/lang/en_database.lng index b094d45ade..4c3e653873 100644 --- a/interface/web/sites/lib/lang/en_database.lng +++ b/interface/web/sites/lib/lang/en_database.lng @@ -46,4 +46,5 @@ $wb['globalsearch_suggestions_text_txt'] = 'Suggestions'; $wb['limit_database_quota_txt'] = 'Database quota'; $wb['limit_database_quota_error_notint'] = 'The database quota limit must be a number.'; $wb['limit_database_quota_free_txt']='Max. available DB quota '; +$wb['limit_database_quota_not_0_txt']= 'Database quota can not be 0'; ?> diff --git a/interface/web/sites/lib/lang/es_database.lng b/interface/web/sites/lib/lang/es_database.lng index 95c021c157..512d297da0 100644 --- a/interface/web/sites/lib/lang/es_database.lng +++ b/interface/web/sites/lib/lang/es_database.lng @@ -46,4 +46,5 @@ $wb['select_dbuser_txt'] = 'Seleccionar usuario de base de datos'; $wb['select_site_txt'] = '- Seleccionar sitio -'; $wb['server_id_txt'] = 'Servidor'; $wb['type_txt'] = 'Tipo'; +$wb['limit_database_quota_not_0_txt']= 'Database quota can not be 0'; ?> diff --git a/interface/web/sites/lib/lang/fi_database.lng b/interface/web/sites/lib/lang/fi_database.lng index 846bb40f41..397cdbf031 100644 --- a/interface/web/sites/lib/lang/fi_database.lng +++ b/interface/web/sites/lib/lang/fi_database.lng @@ -46,4 +46,5 @@ $wb['database_user_missing_txt'] = 'Please select a database user for this datab $wb['limit_database_quota_txt'] = 'Database quota'; $wb['limit_database_quota_error_notint'] = 'The database quota limit must be a number.'; $wb['limit_database_quota_free_txt'] = 'Max. available DB quota '; +$wb['limit_database_quota_not_0_txt']= 'Database quota can not be 0'; ?> diff --git a/interface/web/sites/lib/lang/fr_database.lng b/interface/web/sites/lib/lang/fr_database.lng index 50dc4851e0..77e1d561cb 100644 --- a/interface/web/sites/lib/lang/fr_database.lng +++ b/interface/web/sites/lib/lang/fr_database.lng @@ -46,4 +46,5 @@ $wb['database_user_missing_txt'] = 'Please select a database user for this datab $wb['limit_database_quota_txt'] = 'Database quota'; $wb['limit_database_quota_error_notint'] = 'The database quota limit must be a number.'; $wb['limit_database_quota_free_txt'] = 'Max. available DB quota '; +$wb['limit_database_quota_not_0_txt']= 'Database quota can not be 0'; ?> diff --git a/interface/web/sites/lib/lang/hr_database.lng b/interface/web/sites/lib/lang/hr_database.lng index 1afaa78e87..f1c7d0db2e 100644 --- a/interface/web/sites/lib/lang/hr_database.lng +++ b/interface/web/sites/lib/lang/hr_database.lng @@ -46,4 +46,5 @@ $wb['database_user_missing_txt'] = 'Please select a database user for this datab $wb['limit_database_quota_txt'] = 'Database quota'; $wb['limit_database_quota_error_notint'] = 'The database quota limit must be a number.'; $wb['limit_database_quota_free_txt'] = 'Max. available DB quota '; +$wb['limit_database_quota_not_0_txt']= 'Database quota can not be 0'; ?> diff --git a/interface/web/sites/lib/lang/hu_database.lng b/interface/web/sites/lib/lang/hu_database.lng index 9cbb6398d0..cb27357b97 100644 --- a/interface/web/sites/lib/lang/hu_database.lng +++ b/interface/web/sites/lib/lang/hu_database.lng @@ -46,4 +46,5 @@ $wb['database_user_missing_txt'] = 'Please select a database user for this datab $wb['limit_database_quota_txt'] = 'Database quota'; $wb['limit_database_quota_error_notint'] = 'The database quota limit must be a number.'; $wb['limit_database_quota_free_txt'] = 'Max. available DB quota '; +$wb['limit_database_quota_not_0_txt']= 'Database quota can not be 0'; ?> diff --git a/interface/web/sites/lib/lang/id_database.lng b/interface/web/sites/lib/lang/id_database.lng index bea0128d05..90d3833217 100644 --- a/interface/web/sites/lib/lang/id_database.lng +++ b/interface/web/sites/lib/lang/id_database.lng @@ -46,4 +46,5 @@ $wb['database_user_missing_txt'] = 'Please select a database user for this datab $wb['limit_database_quota_txt'] = 'Database quota'; $wb['limit_database_quota_error_notint'] = 'The database quota limit must be a number.'; $wb['limit_database_quota_free_txt'] = 'Max. available DB quota '; +$wb['limit_database_quota_not_0_txt']= 'Database quota can not be 0'; ?> diff --git a/interface/web/sites/lib/lang/it_database.lng b/interface/web/sites/lib/lang/it_database.lng index 7ee6a1e216..007daaa002 100644 --- a/interface/web/sites/lib/lang/it_database.lng +++ b/interface/web/sites/lib/lang/it_database.lng @@ -46,4 +46,5 @@ $wb['database_user_missing_txt'] = 'Per favore selezionare un utente per questo $wb['limit_database_quota_txt'] = 'Database quota'; $wb['limit_database_quota_error_notint'] = 'The database quota limit must be a number.'; $wb['limit_database_quota_free_txt'] = 'Max. available DB quota '; +$wb['limit_database_quota_not_0_txt']= 'Database quota can not be 0'; ?> diff --git a/interface/web/sites/lib/lang/ja_database.lng b/interface/web/sites/lib/lang/ja_database.lng index bfd17a693c..f081f1dce8 100644 --- a/interface/web/sites/lib/lang/ja_database.lng +++ b/interface/web/sites/lib/lang/ja_database.lng @@ -46,4 +46,5 @@ $wb['database_user_missing_txt'] = 'Please select a database user for this datab $wb['limit_database_quota_txt'] = 'Database quota'; $wb['limit_database_quota_error_notint'] = 'The database quota limit must be a number.'; $wb['limit_database_quota_free_txt'] = 'Max. available DB quota '; +$wb['limit_database_quota_not_0_txt']= 'Database quota can not be 0'; ?> diff --git a/interface/web/sites/lib/lang/nl_database.lng b/interface/web/sites/lib/lang/nl_database.lng index 9cbf52692c..d9bbfb0693 100644 --- a/interface/web/sites/lib/lang/nl_database.lng +++ b/interface/web/sites/lib/lang/nl_database.lng @@ -46,4 +46,5 @@ $wb['database_user_missing_txt'] = 'Please select a database user for this datab $wb['limit_database_quota_txt'] = 'Database quota'; $wb['limit_database_quota_error_notint'] = 'The database quota limit must be a number.'; $wb['limit_database_quota_free_txt'] = 'Max. available DB quota '; +$wb['limit_database_quota_not_0_txt']= 'Database quota can not be 0'; ?> diff --git a/interface/web/sites/lib/lang/pl_database.lng b/interface/web/sites/lib/lang/pl_database.lng index b38029e7f9..57294f0a40 100644 --- a/interface/web/sites/lib/lang/pl_database.lng +++ b/interface/web/sites/lib/lang/pl_database.lng @@ -46,4 +46,5 @@ $wb['globalsearch_suggestions_text_txt'] = 'Sugestie'; $wb['limit_database_quota_txt'] = 'Database quota'; $wb['limit_database_quota_error_notint'] = 'The database quota limit must be a number.'; $wb['limit_database_quota_free_txt'] = 'Max. available DB quota '; +$wb['limit_database_quota_not_0_txt']= 'Database quota can not be 0'; ?> diff --git a/interface/web/sites/lib/lang/pt_database.lng b/interface/web/sites/lib/lang/pt_database.lng index e43e7f6b31..9da316d039 100644 --- a/interface/web/sites/lib/lang/pt_database.lng +++ b/interface/web/sites/lib/lang/pt_database.lng @@ -46,4 +46,5 @@ $wb['database_user_missing_txt'] = 'Please select a database user for this datab $wb['limit_database_quota_txt'] = 'Database quota'; $wb['limit_database_quota_error_notint'] = 'The database quota limit must be a number.'; $wb['limit_database_quota_free_txt'] = 'Max. available DB quota '; +$wb['limit_database_quota_not_0_txt']= 'Database quota can not be 0'; ?> diff --git a/interface/web/sites/lib/lang/ro_database.lng b/interface/web/sites/lib/lang/ro_database.lng index 48acc975c2..73f2b3eb63 100644 --- a/interface/web/sites/lib/lang/ro_database.lng +++ b/interface/web/sites/lib/lang/ro_database.lng @@ -46,4 +46,5 @@ $wb['database_user_missing_txt'] = 'Please select a database user for this datab $wb['limit_database_quota_txt'] = 'Database quota'; $wb['limit_database_quota_error_notint'] = 'The database quota limit must be a number.'; $wb['limit_database_quota_free_txt'] = 'Max. available DB quota '; +$wb['limit_database_quota_not_0_txt']= 'Database quota can not be 0'; ?> diff --git a/interface/web/sites/lib/lang/ru_database.lng b/interface/web/sites/lib/lang/ru_database.lng index 0f5eaf3180..478be40597 100644 --- a/interface/web/sites/lib/lang/ru_database.lng +++ b/interface/web/sites/lib/lang/ru_database.lng @@ -46,4 +46,5 @@ $wb['database_user_missing_txt'] = 'Пожалуйста, выберите по $wb['limit_database_quota_txt'] = 'Квота базы данных'; $wb['limit_database_quota_error_notint'] = 'Лимит квоты базы данных должен быть числом.'; $wb['limit_database_quota_free_txt'] = 'Макс. доступная квота базы данных.'; +$wb['limit_database_quota_not_0_txt']= 'Database quota can not be 0'; ?> diff --git a/interface/web/sites/lib/lang/se_database.lng b/interface/web/sites/lib/lang/se_database.lng index e93c07cfc7..bf3f3fabfe 100644 --- a/interface/web/sites/lib/lang/se_database.lng +++ b/interface/web/sites/lib/lang/se_database.lng @@ -46,4 +46,5 @@ $wb['database_user_missing_txt'] = 'Vänligen välj en databasanvändare för de $wb['limit_database_quota_txt'] = 'Database quota'; $wb['limit_database_quota_error_notint'] = 'The database quota limit must be a number.'; $wb['limit_database_quota_free_txt'] = 'Max. available DB quota '; +$wb['limit_database_quota_not_0_txt']= 'Database quota can not be 0'; ?> diff --git a/interface/web/sites/lib/lang/sk_database.lng b/interface/web/sites/lib/lang/sk_database.lng index 7776a5b460..7b8b53f2ab 100644 --- a/interface/web/sites/lib/lang/sk_database.lng +++ b/interface/web/sites/lib/lang/sk_database.lng @@ -46,4 +46,5 @@ $wb['database_user_missing_txt'] = 'Please select a database user for this datab $wb['limit_database_quota_txt'] = 'Database quota'; $wb['limit_database_quota_error_notint'] = 'The database quota limit must be a number.'; $wb['limit_database_quota_free_txt'] = 'Max. available DB quota '; +$wb['limit_database_quota_not_0_txt']= 'Database quota can not be 0'; ?> diff --git a/interface/web/sites/lib/lang/tr_database.lng b/interface/web/sites/lib/lang/tr_database.lng index f443bbb620..9f8d200e43 100644 --- a/interface/web/sites/lib/lang/tr_database.lng +++ b/interface/web/sites/lib/lang/tr_database.lng @@ -46,4 +46,5 @@ $wb['globalsearch_suggestions_text_txt'] = 'Öneriler'; $wb['limit_database_quota_txt'] = 'Veritabanı Kotası'; $wb['limit_database_quota_error_notint'] = 'Veritabanı kotası bir sayı olmalıdır'; $wb['limit_database_quota_free_txt'] = 'Kullanılabilecek en fazla veritabanı kotası'; +$wb['limit_database_quota_not_0_txt']= 'Database quota can not be 0'; ?> -- GitLab From b07e42942fab7de324ee0ddf4b38b36cafcffaa9 Mon Sep 17 00:00:00 2001 From: thom Date: Wed, 7 Oct 2020 14:53:11 +0200 Subject: [PATCH 013/300] Make disabling webs on overtraffic optional (#3937) --- install/tpl/server.ini.master | 1 + interface/web/admin/form/server_config.tform.php | 6 ++++++ interface/web/admin/lib/lang/ar_server_config.lng | 1 + interface/web/admin/lib/lang/bg_server_config.lng | 1 + interface/web/admin/lib/lang/br_server_config.lng | 1 + interface/web/admin/lib/lang/ca_server_config.lng | 1 + interface/web/admin/lib/lang/cz_server_config.lng | 1 + interface/web/admin/lib/lang/de_server_config.lng | 1 + interface/web/admin/lib/lang/dk_server_config.lng | 1 + interface/web/admin/lib/lang/el_server_config.lng | 1 + interface/web/admin/lib/lang/en_server_config.lng | 1 + interface/web/admin/lib/lang/es_server_config.lng | 1 + interface/web/admin/lib/lang/fi_server_config.lng | 1 + interface/web/admin/lib/lang/fr_server_config.lng | 1 + interface/web/admin/lib/lang/hr_server_config.lng | 1 + interface/web/admin/lib/lang/hu_server_config.lng | 1 + interface/web/admin/lib/lang/id_server_config.lng | 1 + interface/web/admin/lib/lang/it_server_config.lng | 1 + interface/web/admin/lib/lang/ja_server_config.lng | 1 + interface/web/admin/lib/lang/nl_server_config.lng | 1 + interface/web/admin/lib/lang/pl_server_config.lng | 1 + interface/web/admin/lib/lang/pt_server_config.lng | 1 + interface/web/admin/lib/lang/ro_server_config.lng | 1 + interface/web/admin/lib/lang/ru_server_config.lng | 1 + interface/web/admin/lib/lang/se_server_config.lng | 1 + interface/web/admin/lib/lang/sk_server_config.lng | 1 + interface/web/admin/lib/lang/tr_server_config.lng | 1 + interface/web/admin/templates/server_config_web_edit.htm | 6 ++++++ server/lib/classes/cron.d/300-quota_notify.inc.php | 8 +++++--- 29 files changed, 43 insertions(+), 3 deletions(-) diff --git a/install/tpl/server.ini.master b/install/tpl/server.ini.master index 4d65fe934f..175617605a 100644 --- a/install/tpl/server.ini.master +++ b/install/tpl/server.ini.master @@ -112,6 +112,7 @@ connect_userid_to_webid=n connect_userid_to_webid_start=10000 web_folder_protection=y php_ini_check_minutes=1 +overtraffic_disable_web=y overquota_notify_admin=y overquota_notify_client=y overquota_notify_freq=7 diff --git a/interface/web/admin/form/server_config.tform.php b/interface/web/admin/form/server_config.tform.php index 6ecda7872f..b25785c283 100644 --- a/interface/web/admin/form/server_config.tform.php +++ b/interface/web/admin/form/server_config.tform.php @@ -1015,6 +1015,12 @@ $form["tabs"]['web'] = array( 'default' => 'y', 'value' => array(0 => 'n', 1 => 'y') ), + 'overtraffic_disable_web' => array( + 'datatype' => 'VARCHAR', + 'formtype' => 'CHECKBOX', + 'default' => 'y', + 'value' => array(0 => 'n', 1 => 'y') + ), 'overquota_notify_admin' => array( 'datatype' => 'VARCHAR', 'formtype' => 'CHECKBOX', diff --git a/interface/web/admin/lib/lang/ar_server_config.lng b/interface/web/admin/lib/lang/ar_server_config.lng index ad648de1c6..b95b3567e6 100644 --- a/interface/web/admin/lib/lang/ar_server_config.lng +++ b/interface/web/admin/lib/lang/ar_server_config.lng @@ -191,6 +191,7 @@ $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['overtraffic_disable_web_txt'] = 'Disable websites that exceed traffic limit'; $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'; diff --git a/interface/web/admin/lib/lang/bg_server_config.lng b/interface/web/admin/lib/lang/bg_server_config.lng index b2b655eca2..fcd34e7292 100644 --- a/interface/web/admin/lib/lang/bg_server_config.lng +++ b/interface/web/admin/lib/lang/bg_server_config.lng @@ -191,6 +191,7 @@ $wb['website_autoalias_txt'] = 'Website auto alias'; $wb['website_autoalias_note_txt'] = 'Placeholders:'; $wb['overtraffic_notify_admin_txt'] = 'Send overtraffic notification to admin'; $wb['overtraffic_notify_client_txt'] = 'Send overtraffic notification to client'; +$wb['overtraffic_disable_web_txt'] = 'Disable websites that exceed traffic limit'; $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'; diff --git a/interface/web/admin/lib/lang/br_server_config.lng b/interface/web/admin/lib/lang/br_server_config.lng index a598861731..390612d166 100644 --- a/interface/web/admin/lib/lang/br_server_config.lng +++ b/interface/web/admin/lib/lang/br_server_config.lng @@ -198,6 +198,7 @@ $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 tráfego excedido para o administrador'; $wb['overtraffic_notify_client_txt'] = 'Enviar notificação de tráfego excedido para o cliente'; +$wb['overtraffic_disable_web_txt'] = 'Disable websites that exceed traffic limit'; $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'; diff --git a/interface/web/admin/lib/lang/ca_server_config.lng b/interface/web/admin/lib/lang/ca_server_config.lng index e4e663e01a..2e02e31c6b 100644 --- a/interface/web/admin/lib/lang/ca_server_config.lng +++ b/interface/web/admin/lib/lang/ca_server_config.lng @@ -194,6 +194,7 @@ $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['overtraffic_disable_web_txt'] = 'Disable websites that exceed traffic limit'; $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'; diff --git a/interface/web/admin/lib/lang/cz_server_config.lng b/interface/web/admin/lib/lang/cz_server_config.lng index 76a37e86f0..ea8d6dd731 100644 --- a/interface/web/admin/lib/lang/cz_server_config.lng +++ b/interface/web/admin/lib/lang/cz_server_config.lng @@ -177,6 +177,7 @@ $wb['enable_ip_wildcard_txt'] = 'Aktivovat IP wildcard (*)'; $wb['web_folder_protection_txt'] = 'Make web folders immutable (extended attributes)'; $wb['overtraffic_notify_admin_txt'] = 'Při překročení limitu přenesených dat, poslat oznámení adminovi'; $wb['overtraffic_notify_client_txt'] = 'Při překročení limitu přenesených dat, poslat oznámení klientovi'; +$wb['overtraffic_disable_web_txt'] = 'Disable websites that exceed traffic limit'; $wb['rbl_error_regex'] = 'Please specify valid RBL hostnames.'; $wb['overquota_notify_admin_txt'] = 'Poslat varování o překročení nebo vyčerpání kvót adminovi'; $wb['overquota_notify_client_txt'] = 'Poslat varování o překročení nebo vyčerpání kvót klientovi'; diff --git a/interface/web/admin/lib/lang/de_server_config.lng b/interface/web/admin/lib/lang/de_server_config.lng index bc6225745f..e287b9a622 100644 --- a/interface/web/admin/lib/lang/de_server_config.lng +++ b/interface/web/admin/lib/lang/de_server_config.lng @@ -197,6 +197,7 @@ $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['overtraffic_disable_web_txt'] = 'Disable websites that exceed traffic limit'; $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'; diff --git a/interface/web/admin/lib/lang/dk_server_config.lng b/interface/web/admin/lib/lang/dk_server_config.lng index dda39b38a6..77a29251d5 100644 --- a/interface/web/admin/lib/lang/dk_server_config.lng +++ b/interface/web/admin/lib/lang/dk_server_config.lng @@ -180,6 +180,7 @@ $wb['enable_ip_wildcard_txt'] = 'Enable IP wildcard (*)'; $wb['web_folder_protection_txt'] = 'Gør web mapper immume (udvidede attributter)'; $wb['overtraffic_notify_admin_txt'] = 'Send over-trafik meddelelse til admin'; $wb['overtraffic_notify_client_txt'] = 'Send over-trafik meddelelse til kunde'; +$wb['overtraffic_disable_web_txt'] = 'Disable websites that exceed traffic limit'; $wb['rbl_error_regex'] = 'Angiv gyldige RBL værtsnavne.'; $wb['overquota_notify_admin_txt'] = 'Send kvote advarsler til admin'; $wb['overquota_notify_client_txt'] = 'Send kvote advarsler til kunde'; diff --git a/interface/web/admin/lib/lang/el_server_config.lng b/interface/web/admin/lib/lang/el_server_config.lng index 9dfadedc5d..0913624503 100644 --- a/interface/web/admin/lib/lang/el_server_config.lng +++ b/interface/web/admin/lib/lang/el_server_config.lng @@ -191,6 +191,7 @@ $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['overtraffic_disable_web_txt'] = 'Disable websites that exceed traffic limit'; $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'; diff --git a/interface/web/admin/lib/lang/en_server_config.lng b/interface/web/admin/lib/lang/en_server_config.lng index e609a339d5..3df6f02dfb 100644 --- a/interface/web/admin/lib/lang/en_server_config.lng +++ b/interface/web/admin/lib/lang/en_server_config.lng @@ -204,6 +204,7 @@ $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['overtraffic_disable_web_txt'] = 'Disable websites that exceed traffic limit'; $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'; diff --git a/interface/web/admin/lib/lang/es_server_config.lng b/interface/web/admin/lib/lang/es_server_config.lng index 7f3289a583..fadf3180c0 100644 --- a/interface/web/admin/lib/lang/es_server_config.lng +++ b/interface/web/admin/lib/lang/es_server_config.lng @@ -228,6 +228,7 @@ $wb['php_open_basedir_error_regex'] = 'El open_basedir para PHP es inválido.'; $wb['php_open_basedir_txt'] = 'open_basedir para PHP'; $wb['php_settings_txt'] = 'Opciones de PHP'; $wb['pop3_imap_daemon_txt'] = 'Servicio POP3/IMAP'; +$wb['overtraffic_disable_web_txt'] = 'Disable websites that exceed traffic limit'; $wb['rbl_error_regex'] = 'Por favor especifique nombres de host RBL válidos.'; $wb['realtime_blackhole_list_note_txt'] = '(Separe las listas RBL con una coma)'; $wb['realtime_blackhole_list_txt'] = 'Lista de filtrado en tiempo real'; diff --git a/interface/web/admin/lib/lang/fi_server_config.lng b/interface/web/admin/lib/lang/fi_server_config.lng index 7ab81469b7..ec974d3249 100644 --- a/interface/web/admin/lib/lang/fi_server_config.lng +++ b/interface/web/admin/lib/lang/fi_server_config.lng @@ -191,6 +191,7 @@ $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['overtraffic_disable_web_txt'] = 'Disable websites that exceed traffic limit'; $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'; diff --git a/interface/web/admin/lib/lang/fr_server_config.lng b/interface/web/admin/lib/lang/fr_server_config.lng index 0924bd4a41..a413c4214d 100644 --- a/interface/web/admin/lib/lang/fr_server_config.lng +++ b/interface/web/admin/lib/lang/fr_server_config.lng @@ -179,6 +179,7 @@ $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['overtraffic_disable_web_txt'] = 'Disable websites that exceed traffic limit'; $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'; diff --git a/interface/web/admin/lib/lang/hr_server_config.lng b/interface/web/admin/lib/lang/hr_server_config.lng index 97b74e15f9..4eb3574d45 100644 --- a/interface/web/admin/lib/lang/hr_server_config.lng +++ b/interface/web/admin/lib/lang/hr_server_config.lng @@ -191,6 +191,7 @@ $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['overtraffic_disable_web_txt'] = 'Disable websites that exceed traffic limit'; $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'; diff --git a/interface/web/admin/lib/lang/hu_server_config.lng b/interface/web/admin/lib/lang/hu_server_config.lng index 22a0725992..73f0181f3d 100644 --- a/interface/web/admin/lib/lang/hu_server_config.lng +++ b/interface/web/admin/lib/lang/hu_server_config.lng @@ -191,6 +191,7 @@ $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['overtraffic_disable_web_txt'] = 'Disable websites that exceed traffic limit'; $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'; diff --git a/interface/web/admin/lib/lang/id_server_config.lng b/interface/web/admin/lib/lang/id_server_config.lng index 48627dd614..3555ba3288 100644 --- a/interface/web/admin/lib/lang/id_server_config.lng +++ b/interface/web/admin/lib/lang/id_server_config.lng @@ -191,6 +191,7 @@ $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['overtraffic_disable_web_txt'] = 'Disable websites that exceed traffic limit'; $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'; diff --git a/interface/web/admin/lib/lang/it_server_config.lng b/interface/web/admin/lib/lang/it_server_config.lng index a2e824450b..39b7161ddf 100644 --- a/interface/web/admin/lib/lang/it_server_config.lng +++ b/interface/web/admin/lib/lang/it_server_config.lng @@ -179,6 +179,7 @@ $wb['enable_ip_wildcard_txt'] = 'Abilita IP wildcard (*)'; $wb['web_folder_protection_txt'] = 'Imposta cartelle sito in moaniera non modificabile (attributi estesi)'; $wb['overtraffic_notify_admin_txt'] = 'Trasmetti notifiche superamento traffico ad admin'; $wb['overtraffic_notify_client_txt'] = 'Trasmetti notifiche superamento traffico al cliente'; +$wb['overtraffic_disable_web_txt'] = 'Disable websites that exceed traffic limit'; $wb['rbl_error_regex'] = 'Per cortesia specificare nomi host RBL validi.'; $wb['overquota_notify_admin_txt'] = 'Trasmetti allarmi quota ad admin'; $wb['overquota_notify_client_txt'] = 'Trasmetti allarmi quota al cliente'; diff --git a/interface/web/admin/lib/lang/ja_server_config.lng b/interface/web/admin/lib/lang/ja_server_config.lng index 135c7ef51e..a50922639c 100644 --- a/interface/web/admin/lib/lang/ja_server_config.lng +++ b/interface/web/admin/lib/lang/ja_server_config.lng @@ -191,6 +191,7 @@ $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['overtraffic_disable_web_txt'] = 'Disable websites that exceed traffic limit'; $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'; diff --git a/interface/web/admin/lib/lang/nl_server_config.lng b/interface/web/admin/lib/lang/nl_server_config.lng index 29bed0ec44..9ef50bb6c1 100644 --- a/interface/web/admin/lib/lang/nl_server_config.lng +++ b/interface/web/admin/lib/lang/nl_server_config.lng @@ -191,6 +191,7 @@ $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['overtraffic_disable_web_txt'] = 'Disable websites that exceed traffic limit'; $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'; diff --git a/interface/web/admin/lib/lang/pl_server_config.lng b/interface/web/admin/lib/lang/pl_server_config.lng index 524018773f..af839bb2e3 100644 --- a/interface/web/admin/lib/lang/pl_server_config.lng +++ b/interface/web/admin/lib/lang/pl_server_config.lng @@ -191,6 +191,7 @@ $wb['enable_ip_wildcard_txt'] = 'Enable IP wildcard (*)'; $wb['web_folder_protection_txt'] = 'Make web folders immutable (extended attributes)'; $wb['overtraffic_notify_admin_txt'] = 'Prześlij informacje o przekroczeniu transferu do admina'; $wb['overtraffic_notify_client_txt'] = 'Prześlij informacje o przekroczeniu transferu do klienta'; +$wb['overtraffic_disable_web_txt'] = 'Disable websites that exceed traffic limit'; $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'; diff --git a/interface/web/admin/lib/lang/pt_server_config.lng b/interface/web/admin/lib/lang/pt_server_config.lng index bf3ae9f8c2..6b581c8593 100644 --- a/interface/web/admin/lib/lang/pt_server_config.lng +++ b/interface/web/admin/lib/lang/pt_server_config.lng @@ -191,6 +191,7 @@ $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['overtraffic_disable_web_txt'] = 'Disable websites that exceed traffic limit'; $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'; diff --git a/interface/web/admin/lib/lang/ro_server_config.lng b/interface/web/admin/lib/lang/ro_server_config.lng index 5b5294daba..e15c99fb67 100644 --- a/interface/web/admin/lib/lang/ro_server_config.lng +++ b/interface/web/admin/lib/lang/ro_server_config.lng @@ -191,6 +191,7 @@ $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['overtraffic_disable_web_txt'] = 'Disable websites that exceed traffic limit'; $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'; diff --git a/interface/web/admin/lib/lang/ru_server_config.lng b/interface/web/admin/lib/lang/ru_server_config.lng index 6499caa292..3465d2120d 100644 --- a/interface/web/admin/lib/lang/ru_server_config.lng +++ b/interface/web/admin/lib/lang/ru_server_config.lng @@ -191,6 +191,7 @@ $wb['enable_ip_wildcard_txt'] = 'Включить IP подстановочны $wb['web_folder_protection_txt'] = 'Сделать веб-папки неизменяемыми (расширенные атрибуты)'; $wb['overtraffic_notify_admin_txt'] = 'Присылать уведомление трафика администратору'; $wb['overtraffic_notify_client_txt'] = 'Присылать уведомление трафика клиенту'; +$wb['overtraffic_disable_web_txt'] = 'Disable websites that exceed traffic limit'; $wb['rbl_error_regex'] = 'Пожалуйста, укажите действительные имена хостов RBL.'; $wb['overquota_notify_admin_txt'] = 'Присылать предупреждения квоты администратору'; $wb['overquota_notify_client_txt'] = 'Присылать предупреждения квоты клиенту'; diff --git a/interface/web/admin/lib/lang/se_server_config.lng b/interface/web/admin/lib/lang/se_server_config.lng index cedb605b78..9bbbcc80ac 100644 --- a/interface/web/admin/lib/lang/se_server_config.lng +++ b/interface/web/admin/lib/lang/se_server_config.lng @@ -191,6 +191,7 @@ $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['overtraffic_disable_web_txt'] = 'Disable websites that exceed traffic limit'; $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'; diff --git a/interface/web/admin/lib/lang/sk_server_config.lng b/interface/web/admin/lib/lang/sk_server_config.lng index bacb2e02ad..1b96cf57ad 100644 --- a/interface/web/admin/lib/lang/sk_server_config.lng +++ b/interface/web/admin/lib/lang/sk_server_config.lng @@ -191,6 +191,7 @@ $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['overtraffic_disable_web_txt'] = 'Disable websites that exceed traffic limit'; $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'; diff --git a/interface/web/admin/lib/lang/tr_server_config.lng b/interface/web/admin/lib/lang/tr_server_config.lng index f925618721..84210ce9b8 100644 --- a/interface/web/admin/lib/lang/tr_server_config.lng +++ b/interface/web/admin/lib/lang/tr_server_config.lng @@ -198,6 +198,7 @@ $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'] = 'Trafik Aşımı Bildirimi Yöneticiye Gönderilsin'; $wb['overtraffic_notify_client_txt'] = 'Trafik Aşımı Bildirimi Müşteriye Gönderilsin'; +$wb['overtraffic_disable_web_txt'] = 'Disable websites that exceed traffic limit'; $wb['rbl_error_regex'] = 'Lütfen geçerli RBL sunucu adları yazın.'; $wb['overquota_notify_admin_txt'] = 'Kota Uyarıları Yöneticiye Gönderilsin'; $wb['overquota_notify_client_txt'] = 'Kota Uyarıları Müşteriye Gönderilsin'; diff --git a/interface/web/admin/templates/server_config_web_edit.htm b/interface/web/admin/templates/server_config_web_edit.htm index f98226c104..ca1d54344c 100644 --- a/interface/web/admin/templates/server_config_web_edit.htm +++ b/interface/web/admin/templates/server_config_web_edit.htm @@ -138,6 +138,12 @@
{tmpl_var name='overtraffic_notify_client'}
+ +
+ +
+ {tmpl_var name='overtraffic_disable_web'} +
diff --git a/server/lib/classes/cron.d/300-quota_notify.inc.php b/server/lib/classes/cron.d/300-quota_notify.inc.php index 2a12f6fd3f..ad18f17c9b 100644 --- a/server/lib/classes/cron.d/300-quota_notify.inc.php +++ b/server/lib/classes/cron.d/300-quota_notify.inc.php @@ -81,9 +81,11 @@ class cronjob_quota_notify extends cronjob { $web_traffic = round($tmp['total_traffic_bytes']/1024/1024); if($web_traffic_quota > 0 && $web_traffic > $web_traffic_quota) { - $app->dbmaster->datalogUpdate('web_domain', array("traffic_quota_lock" => 'y', "active" => 'n'), 'domain_id', $rec['domain_id']); - $app->log('Traffic quota for '.$rec['domain'].' exceeded. Disabling website.', LOGLEVEL_DEBUG); - + //* Lock website + if ($web_config['overtraffic_disable_web'] == 'y') { + $app->dbmaster->datalogUpdate('web_domain', array("traffic_quota_lock" => 'y', "active" => 'n'), 'domain_id', $rec['domain_id']); + $app->log('Traffic quota for '.$rec['domain'].' exceeded. Disabling website.', LOGLEVEL_DEBUG); + } //* Send traffic notifications if($rec['traffic_quota_lock'] != 'y' && ($web_config['overtraffic_notify_admin'] == 'y' || $web_config['overtraffic_notify_client'] == 'y')) { -- GitLab From 54987a9ce57f4186940c2e00422cf10b3b0ff8c7 Mon Sep 17 00:00:00 2001 From: Michael Seevogel Date: Wed, 7 Oct 2020 15:35:05 +0200 Subject: [PATCH 014/300] try to detect the correct OpenSSL version and activate TLS 1.3 if available for Nginx systems --- server/conf/nginx_vhost.conf.master | 7 +- .../100-monitor_needs_restarting.inc.php | 243 ++++++++++++++++++ server/lib/classes/system.inc.php | 21 ++ server/plugins-available/nginx_plugin.inc.php | 4 + 4 files changed, 274 insertions(+), 1 deletion(-) create mode 100644 server/lib/classes/cron.d/100-monitor_needs_restarting.inc.php diff --git a/server/conf/nginx_vhost.conf.master b/server/conf/nginx_vhost.conf.master index bfa94f8fb3..f6addcc44d 100644 --- a/server/conf/nginx_vhost.conf.master +++ b/server/conf/nginx_vhost.conf.master @@ -18,7 +18,12 @@ server { listen : ssl proxy_protocol; - ssl_protocols TLSv1.2; + + +ssl_protocols TLSv1.3 TLSv1.2; + +ssl_protocols TLSv1.2; + # ssl_ciphers 'ECDHE-ECDSA-CHACHA20-POLY1305:ECDHE-RSA-CHACHA20-POLY1305:ECDHE-ECDSA-AES128-GCM-SHA256:ECDHE-RSA-AES128-GCM-SHA256:ECDHE-ECDSA-AES256-GCM-SHA384:ECDHE-RSA-AES256-GCM-SHA384:DHE-RSA-AES128-GCM-SHA256:DHE-RSA-AES256-GCM-SHA384:ECDHE-ECDSA-AES128-SHA256:ECDHE-RSA-AES128-SHA256:ECDHE-ECDSA-AES128-SHA:ECDHE-RSA-AES256-SHA384:ECDHE-RSA-AES128-SHA:ECDHE-ECDSA-AES256-SHA384:ECDHE-ECDSA-AES256-SHA:ECDHE-RSA-AES256-SHA:DHE-RSA-AES128-SHA256:DHE-RSA-AES128-SHA:DHE-RSA-AES256-SHA256:DHE-RSA-AES256-SHA:ECDHE-ECDSA-DES-CBC3-SHA:ECDHE-RSA-DES-CBC3-SHA:EDH-RSA-DES-CBC3-SHA:AES128-GCM-SHA256:AES256-GCM-SHA384:AES128-SHA256:AES256-SHA256:AES128-SHA:AES256-SHA:DES-CBC3-SHA:!DSS'; # ssl_prefer_server_ciphers on; diff --git a/server/lib/classes/cron.d/100-monitor_needs_restarting.inc.php b/server/lib/classes/cron.d/100-monitor_needs_restarting.inc.php new file mode 100644 index 0000000000..cab5f68edb --- /dev/null +++ b/server/lib/classes/cron.d/100-monitor_needs_restarting.inc.php @@ -0,0 +1,243 @@ +uses('getconf'); + $server_config = $app->getconf->get_server_config($conf['server_id'], 'server'); + if($server_config['monitor_system_updates'] == 'n') return; + + /* used for all monitor cronjobs */ + $app->load('monitor_tools'); + $this->_tools = new monitor_tools(); + /* end global section for monitor cronjobs */ + + /* the id of the server as int */ + $server_id = intval($conf['server_id']); + + /** The type of the data */ + + + $type = 'system_update'; + + /* This monitoring is only available on Debian or Ubuntu */ + if (file_exists('/etc/debian_version')) { + + /* + * first update the "apt database" + */ + shell_exec('while fuser /var/lib/apt/lists/lock >/dev/null 2>&1 ; do sleep 2; done; apt-get update'); + + /* + * Then test the upgrade. + * if there is any output, then there is a needed update + */ + $aptData = shell_exec('while fuser /var/lib/dpkg/lock >/dev/null 2>&1 || fuser /var/lib/apt/lists/lock >/dev/null 2>&1 ; do sleep 2; done; apt-get -s -qq dist-upgrade'); + if ($aptData == '') { + /* There is nothing to update! */ + $state = 'ok'; + } else { + /* + * There is something to update! this is in most cases not critical, so we can + * do a system-update once a month or so... + */ + $state = 'info'; + } + + /* + * Fetch the output + */ + $data['output'] = $aptData; + } elseif (file_exists('/etc/gentoo-release')) { + + /* + * first update the portage tree + */ + + // In keeping with gentoo's rsync policy, don't update to frequently (every four hours - taken from http://www.gentoo.org/doc/en/source_mirrors.xml) + $do_update = true; + if (file_exists('/usr/portage/metadata/timestamp.chk')) { + $datetime = file_get_contents('/usr/portage/metadata/timestamp.chk'); + $datetime = trim($datetime); + + $dstamp = strtotime($datetime); + if ($dstamp) { + $checkat = $dstamp + 14400; // + 4hours + if (mktime() < $checkat) { + $do_update = false; + } + } + } + + if ($do_update) { + shell_exec('emerge --sync --quiet'); + } + + /* + * Then test the upgrade. + * if there is any output, then there is a needed update + */ + $emergeData = shell_exec('glsa-check -t affected'); + if ($emergeData == '') { + /* There is nothing to update! */ + $state = 'ok'; + $data['output'] = 'No unapplied GLSA\'s found on the system.'; + } else { + /* There is something to update! */ + $state = 'info'; + $data['output'] = shell_exec('glsa-check -pv --nocolor affected 2>/dev/null'); + } + } elseif (file_exists('/etc/SuSE-release')) { + + /* + * update and find the upgrade. + * if there is any output, then there is a needed update + */ + $aptData = shell_exec('zypper -q lu'); + if ($aptData == '') { + /* There is nothing to update! */ + $state = 'ok'; + } else { + /* + * There is something to update! this is in most cases not critical, so we can + * do a system-update once a month or so... + */ + $state = 'info'; + } + + /* + * Fetch the output + */ + $data['output'] = shell_exec('zypper lu'); + + } elseif(file_exists('/etc/redhat-release')) { + /* + * update and find the upgrade. + * if there is any output, then there is a needed update + */ + + /* try to figure out the default package manager first */ + if(file_exists('/usr/bin/dnf') && (is_link('/usr/bin/yum'))) { + $rhPkgMgr = 'dnf'; + } elseif(file_exists('/usr/bin/dnf') && (!file_exists('/usr/bin/yum'))) { + $rhPkgMgr = 'dnf'; + } else { + $rhPkgMgr = 'yum'; + } + + $aptData = shell_exec($rhPkgMgr. ' -q list updates'); + + if ($aptData == '') { + /* There is nothing to update! */ + $state = 'ok'; + } else { + /* + * There is something to update! this is in most cases not critical, so we can + * do a system-update once a month or so... + */ + $state = 'info'; + } + + /* + * Fetch the output + */ + + $data['output'] = shell_exec($rhPkgMgr. ' -q list updates'); + + } else { + /* + * It is not Debian/Ubuntu, so there is no data and no state + * + * no_state, NOT unknown, because "unknown" is shown as state + * inside the GUI. no_state is hidden. + * + * We have to write NO DATA inside the DB, because the GUI + * could not know, if there is any dat, or not... + */ + $state = 'no_state'; + $data['output'] = ''; + } + + $res = array(); + $res['server_id'] = $server_id; + $res['type'] = $type; + $res['data'] = $data; + $res['state'] = $state; + + //* Ensure that output is encoded so that it does not break the serialize + //$res['data']['output'] = htmlentities($res['data']['output']); + $res['data']['output'] = htmlentities($res['data']['output'], ENT_QUOTES, 'UTF-8'); + + /* + * Insert the data into the database + */ + $sql = 'REPLACE INTO monitor_data (server_id, type, created, data, state) ' . + 'VALUES (?, ?, UNIX_TIMESTAMP(), ?, ?)'; + $app->dbmaster->query($sql, $res['server_id'], $res['type'], serialize($res['data']), $res['state']); + + /* The new data is written, now we can delete the old one */ + $this->_tools->delOldRecords($res['type'], $res['server_id']); + + parent::onRunJob(); + } + + /* this function is optional if it contains no custom code */ + public function onAfterRun() { + global $app; + + parent::onAfterRun(); + } + +} + +?> diff --git a/server/lib/classes/system.inc.php b/server/lib/classes/system.inc.php index 32afb9943c..bcaef1f2c4 100644 --- a/server/lib/classes/system.inc.php +++ b/server/lib/classes/system.inc.php @@ -2087,6 +2087,27 @@ class system{ } } + function getopensslversion($get_minor = false) { + global $app; + if($this->is_installed('openssl')) $cmd = 'openssl version'; + else { + $app->log("Could not check OpenSSL version, openssl not found.", LOGLEVEL_DEBUG); + return '1.0.1'; + } + exec($cmd, $output, $return_var); + if($return_var != 0 || !$output[0]) { + $app->log("Could not check OpenSSL version, openssl did not return any data.", LOGLEVEL_WARN); + return '1.0.1'; + } + if(preg_match('/OpenSSL\s*(\d+)(\.(\d+)(\.(\d+))*)?(\D|$)/i', $output[0], $matches)) { + return $matches[1] . (isset($matches[3]) ? '.' . $matches[3] : '') . (isset($matches[5]) && $get_minor == true ? '.' . $matches[5] : ''); + } else { + $app->log("Could not check OpenSSL version, did not find version string in openssl output.", LOGLEVEL_WARN); + return '1.0.1'; + } + + } + function getapacheversion($get_minor = false) { global $app; diff --git a/server/plugins-available/nginx_plugin.inc.php b/server/plugins-available/nginx_plugin.inc.php index c361d3f62f..bdc2c0e276 100644 --- a/server/plugins-available/nginx_plugin.inc.php +++ b/server/plugins-available/nginx_plugin.inc.php @@ -1621,6 +1621,10 @@ class nginx_plugin { // set logging variable $vhost_data['logging'] = $web_config['logging']; + $app->log("Found OpenSSL version: " . $app->system->getopensslversion($get_minor = true), LOGLEVEL_DEBUG); + + $vhost_data['openssl_version'] = $app->system->getopensslversion($get_minor = true); + $tpl->setVar($vhost_data); $server_alias = array(); -- GitLab From 541b7f0f47a2f597c57be8189d0f633837a39d26 Mon Sep 17 00:00:00 2001 From: Michael Seevogel Date: Wed, 7 Oct 2020 15:36:07 +0200 Subject: [PATCH 015/300] removed leftovers --- .../100-monitor_needs_restarting.inc.php | 243 ------------------ 1 file changed, 243 deletions(-) delete mode 100644 server/lib/classes/cron.d/100-monitor_needs_restarting.inc.php diff --git a/server/lib/classes/cron.d/100-monitor_needs_restarting.inc.php b/server/lib/classes/cron.d/100-monitor_needs_restarting.inc.php deleted file mode 100644 index cab5f68edb..0000000000 --- a/server/lib/classes/cron.d/100-monitor_needs_restarting.inc.php +++ /dev/null @@ -1,243 +0,0 @@ -uses('getconf'); - $server_config = $app->getconf->get_server_config($conf['server_id'], 'server'); - if($server_config['monitor_system_updates'] == 'n') return; - - /* used for all monitor cronjobs */ - $app->load('monitor_tools'); - $this->_tools = new monitor_tools(); - /* end global section for monitor cronjobs */ - - /* the id of the server as int */ - $server_id = intval($conf['server_id']); - - /** The type of the data */ - - - $type = 'system_update'; - - /* This monitoring is only available on Debian or Ubuntu */ - if (file_exists('/etc/debian_version')) { - - /* - * first update the "apt database" - */ - shell_exec('while fuser /var/lib/apt/lists/lock >/dev/null 2>&1 ; do sleep 2; done; apt-get update'); - - /* - * Then test the upgrade. - * if there is any output, then there is a needed update - */ - $aptData = shell_exec('while fuser /var/lib/dpkg/lock >/dev/null 2>&1 || fuser /var/lib/apt/lists/lock >/dev/null 2>&1 ; do sleep 2; done; apt-get -s -qq dist-upgrade'); - if ($aptData == '') { - /* There is nothing to update! */ - $state = 'ok'; - } else { - /* - * There is something to update! this is in most cases not critical, so we can - * do a system-update once a month or so... - */ - $state = 'info'; - } - - /* - * Fetch the output - */ - $data['output'] = $aptData; - } elseif (file_exists('/etc/gentoo-release')) { - - /* - * first update the portage tree - */ - - // In keeping with gentoo's rsync policy, don't update to frequently (every four hours - taken from http://www.gentoo.org/doc/en/source_mirrors.xml) - $do_update = true; - if (file_exists('/usr/portage/metadata/timestamp.chk')) { - $datetime = file_get_contents('/usr/portage/metadata/timestamp.chk'); - $datetime = trim($datetime); - - $dstamp = strtotime($datetime); - if ($dstamp) { - $checkat = $dstamp + 14400; // + 4hours - if (mktime() < $checkat) { - $do_update = false; - } - } - } - - if ($do_update) { - shell_exec('emerge --sync --quiet'); - } - - /* - * Then test the upgrade. - * if there is any output, then there is a needed update - */ - $emergeData = shell_exec('glsa-check -t affected'); - if ($emergeData == '') { - /* There is nothing to update! */ - $state = 'ok'; - $data['output'] = 'No unapplied GLSA\'s found on the system.'; - } else { - /* There is something to update! */ - $state = 'info'; - $data['output'] = shell_exec('glsa-check -pv --nocolor affected 2>/dev/null'); - } - } elseif (file_exists('/etc/SuSE-release')) { - - /* - * update and find the upgrade. - * if there is any output, then there is a needed update - */ - $aptData = shell_exec('zypper -q lu'); - if ($aptData == '') { - /* There is nothing to update! */ - $state = 'ok'; - } else { - /* - * There is something to update! this is in most cases not critical, so we can - * do a system-update once a month or so... - */ - $state = 'info'; - } - - /* - * Fetch the output - */ - $data['output'] = shell_exec('zypper lu'); - - } elseif(file_exists('/etc/redhat-release')) { - /* - * update and find the upgrade. - * if there is any output, then there is a needed update - */ - - /* try to figure out the default package manager first */ - if(file_exists('/usr/bin/dnf') && (is_link('/usr/bin/yum'))) { - $rhPkgMgr = 'dnf'; - } elseif(file_exists('/usr/bin/dnf') && (!file_exists('/usr/bin/yum'))) { - $rhPkgMgr = 'dnf'; - } else { - $rhPkgMgr = 'yum'; - } - - $aptData = shell_exec($rhPkgMgr. ' -q list updates'); - - if ($aptData == '') { - /* There is nothing to update! */ - $state = 'ok'; - } else { - /* - * There is something to update! this is in most cases not critical, so we can - * do a system-update once a month or so... - */ - $state = 'info'; - } - - /* - * Fetch the output - */ - - $data['output'] = shell_exec($rhPkgMgr. ' -q list updates'); - - } else { - /* - * It is not Debian/Ubuntu, so there is no data and no state - * - * no_state, NOT unknown, because "unknown" is shown as state - * inside the GUI. no_state is hidden. - * - * We have to write NO DATA inside the DB, because the GUI - * could not know, if there is any dat, or not... - */ - $state = 'no_state'; - $data['output'] = ''; - } - - $res = array(); - $res['server_id'] = $server_id; - $res['type'] = $type; - $res['data'] = $data; - $res['state'] = $state; - - //* Ensure that output is encoded so that it does not break the serialize - //$res['data']['output'] = htmlentities($res['data']['output']); - $res['data']['output'] = htmlentities($res['data']['output'], ENT_QUOTES, 'UTF-8'); - - /* - * Insert the data into the database - */ - $sql = 'REPLACE INTO monitor_data (server_id, type, created, data, state) ' . - 'VALUES (?, ?, UNIX_TIMESTAMP(), ?, ?)'; - $app->dbmaster->query($sql, $res['server_id'], $res['type'], serialize($res['data']), $res['state']); - - /* The new data is written, now we can delete the old one */ - $this->_tools->delOldRecords($res['type'], $res['server_id']); - - parent::onRunJob(); - } - - /* this function is optional if it contains no custom code */ - public function onAfterRun() { - global $app; - - parent::onAfterRun(); - } - -} - -?> -- GitLab From 9ffe21723f6ed3d7e0511d713cd35ddf700efadc Mon Sep 17 00:00:00 2001 From: Michael Seevogel Date: Wed, 7 Oct 2020 19:34:32 +0200 Subject: [PATCH 016/300] added extra checks for TLS 1.3 availability --- server/conf/nginx_vhost.conf.master | 8 +++-- server/lib/classes/system.inc.php | 29 +++++++++++++++++-- server/plugins-available/nginx_plugin.inc.php | 19 ++++++++++-- 3 files changed, 48 insertions(+), 8 deletions(-) diff --git a/server/conf/nginx_vhost.conf.master b/server/conf/nginx_vhost.conf.master index f6addcc44d..1752b83ab5 100644 --- a/server/conf/nginx_vhost.conf.master +++ b/server/conf/nginx_vhost.conf.master @@ -19,10 +19,12 @@ server { - -ssl_protocols TLSv1.3 TLSv1.2; + + + ssl_protocols TLSv1.3 TLSv1.2; -ssl_protocols TLSv1.2; + + ssl_protocols TLSv1.2; # ssl_ciphers 'ECDHE-ECDSA-CHACHA20-POLY1305:ECDHE-RSA-CHACHA20-POLY1305:ECDHE-ECDSA-AES128-GCM-SHA256:ECDHE-RSA-AES128-GCM-SHA256:ECDHE-ECDSA-AES256-GCM-SHA384:ECDHE-RSA-AES256-GCM-SHA384:DHE-RSA-AES128-GCM-SHA256:DHE-RSA-AES256-GCM-SHA384:ECDHE-ECDSA-AES128-SHA256:ECDHE-RSA-AES128-SHA256:ECDHE-ECDSA-AES128-SHA:ECDHE-RSA-AES256-SHA384:ECDHE-RSA-AES128-SHA:ECDHE-ECDSA-AES256-SHA384:ECDHE-ECDSA-AES256-SHA:ECDHE-RSA-AES256-SHA:DHE-RSA-AES128-SHA256:DHE-RSA-AES128-SHA:DHE-RSA-AES256-SHA256:DHE-RSA-AES256-SHA:ECDHE-ECDSA-DES-CBC3-SHA:ECDHE-RSA-DES-CBC3-SHA:EDH-RSA-DES-CBC3-SHA:AES128-GCM-SHA256:AES256-GCM-SHA384:AES128-SHA256:AES256-SHA256:AES128-SHA:AES256-SHA:DES-CBC3-SHA:!DSS'; # ssl_prefer_server_ciphers on; diff --git a/server/lib/classes/system.inc.php b/server/lib/classes/system.inc.php index bcaef1f2c4..b592211dd5 100644 --- a/server/lib/classes/system.inc.php +++ b/server/lib/classes/system.inc.php @@ -2094,7 +2094,8 @@ class system{ $app->log("Could not check OpenSSL version, openssl not found.", LOGLEVEL_DEBUG); return '1.0.1'; } - exec($cmd, $output, $return_var); + + exec($cmd, $output, $return_var); if($return_var != 0 || !$output[0]) { $app->log("Could not check OpenSSL version, openssl did not return any data.", LOGLEVEL_WARN); return '1.0.1'; @@ -2106,7 +2107,31 @@ class system{ return '1.0.1'; } - } + } + + function getnginxversion($get_minor = false) { + global $app; + + if($this->is_installed('nginx')) $cmd = 'nginx -v 2>&1'; + else { + $app->log("Could not check Nginx version, nginx not found.", LOGLEVEL_DEBUG); + return false; + } + + exec($cmd, $output, $return_var); + + if($return_var != 0 || !$output[0]) { + $app->log("Could not check Nginx version, nginx did not return any data.", LOGLEVEL_WARN); + return false; + } + + if(preg_match('/nginx version: nginx\/\s*(\d+)(\.(\d+)(\.(\d+))*)?(\D|$)/i', $output[0], $matches)) { + return $matches[1] . (isset($matches[3]) ? '.' . $matches[3] : '') . (isset($matches[5]) && $get_minor == true ? '.' . $matches[5] : ''); + } else { + $app->log("Could not check Nginx version, did not find version string in nginx output.", LOGLEVEL_WARN); + return false; + } + } function getapacheversion($get_minor = false) { global $app; diff --git a/server/plugins-available/nginx_plugin.inc.php b/server/plugins-available/nginx_plugin.inc.php index bdc2c0e276..5439efeb2f 100644 --- a/server/plugins-available/nginx_plugin.inc.php +++ b/server/plugins-available/nginx_plugin.inc.php @@ -1621,10 +1621,23 @@ class nginx_plugin { // set logging variable $vhost_data['logging'] = $web_config['logging']; - $app->log("Found OpenSSL version: " . $app->system->getopensslversion($get_minor = true), LOGLEVEL_DEBUG); + // check if OpenSSL and Nginx supports TLS 1.3 + //$app->log("Found OpenSSL version: " . $app->system->getopensslversion($get_minor = true), LOGLEVEL_DEBUG); + $nginx_version = $app->system->getnginxversion(true); + $openssl_version = $app->system->getopensslversion(true); - $vhost_data['openssl_version'] = $app->system->getopensslversion($get_minor = true); - + $app->system->exec_safe('nginx -V 2>&1', $output, $return_var); + + if(preg_match('/built with OpenSSL\s*(\d+)(\.(\d+)(\.(\d+))*)?(\D|$)/i', $output[0], $matches)) { + $nginx_openssl_ver = $matches[1] . (isset($matches[3]) ? '.' . $matches[3] : '') . (isset($matches[5]) ? '.' . $matches[5] : ''); + } + + if(version_compare($app->system->getopensslversion(true), $nginx_openssl_ver, '>=')) { + if((version_compare($app->system->getnginxversion(true), '1.13.0', '>=') && version_compare($app->system->getopensslversion(true), '1.1.1', '>='))) { + $app->log('Enable TLS 1.3 for: '.$domain, LOGLEVEL_DEBUG); + $vhost_data['tls13_available'] = $app->system->getopensslversion(true); + } + } $tpl->setVar($vhost_data); $server_alias = array(); -- GitLab From 57c1e8591237dbb452f2c152d8ae1254ffda8ace Mon Sep 17 00:00:00 2001 From: Herman van Rink Date: Fri, 20 Dec 2019 17:05:20 +0100 Subject: [PATCH 017/300] Dutch for parent_client_id_txt --- interface/web/client/lib/lang/nl_client.lng | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/interface/web/client/lib/lang/nl_client.lng b/interface/web/client/lib/lang/nl_client.lng index 586f773bc6..cd9f6e1742 100644 --- a/interface/web/client/lib/lang/nl_client.lng +++ b/interface/web/client/lib/lang/nl_client.lng @@ -154,7 +154,7 @@ $wb['gender_m_txt'] = 'Mr.'; $wb['gender_f_txt'] = 'Ms.'; $wb['added_by_txt'] = 'Added by'; $wb['added_date_txt'] = 'Added date'; -$wb['parent_client_id_txt'] = 'Client of reseller'; +$wb['parent_client_id_txt'] = 'Client van reseller'; $wb['none_txt'] = 'none'; $wb['email_error_empty'] = 'Email is empty'; $wb['xmpp_limits_txt'] = 'XMPP Limits'; -- GitLab From d58f5b64bfa648910b764b9112528b9fe9459025 Mon Sep 17 00:00:00 2001 From: Herman van Rink Date: Thu, 16 Jul 2020 14:44:10 +0200 Subject: [PATCH 018/300] Add noscript message to main page --- interface/web/themes/default/templates/main.tpl.htm | 1 + 1 file changed, 1 insertion(+) diff --git a/interface/web/themes/default/templates/main.tpl.htm b/interface/web/themes/default/templates/main.tpl.htm index 39622548aa..a6da294582 100644 --- a/interface/web/themes/default/templates/main.tpl.htm +++ b/interface/web/themes/default/templates/main.tpl.htm @@ -102,6 +102,7 @@
+
-- GitLab From dd965fcdd135ac1e66d2497ac89d3e115827e46b Mon Sep 17 00:00:00 2001 From: Herman van Rink Date: Fri, 17 Jul 2020 08:49:47 +0200 Subject: [PATCH 019/300] Remove stale HTML from tools index page Was only cousing a white box to be visible, no content. --- interface/web/tools/templates/index.htm | 16 ---------------- 1 file changed, 16 deletions(-) diff --git a/interface/web/tools/templates/index.htm b/interface/web/tools/templates/index.htm index 951c43b564..9b184791ef 100644 --- a/interface/web/tools/templates/index.htm +++ b/interface/web/tools/templates/index.htm @@ -3,19 +3,3 @@

-
- -
- -

 

- - - - - -
-   -
-
- -
\ No newline at end of file -- GitLab From b28e2cfb8fe1ad5d5c95f611ceac3428f011b91c Mon Sep 17 00:00:00 2001 From: Herman van Rink Date: Wed, 26 Aug 2020 11:26:44 +0200 Subject: [PATCH 020/300] Match layout of CHECKBOXARRAY for new and edit. On the new form it was a mess with all checkboxed in a row, on edit it was a nice list. Especially visible on the Remote user form. --- interface/lib/classes/tform_base.inc.php | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/interface/lib/classes/tform_base.inc.php b/interface/lib/classes/tform_base.inc.php index 91a855872c..a26722a804 100644 --- a/interface/lib/classes/tform_base.inc.php +++ b/interface/lib/classes/tform_base.inc.php @@ -697,7 +697,7 @@ class tform_base { if(trim($tvl) == trim($k)) $checked = ' CHECKED'; } // $out .= "\r\n"; - $out .= "  \r\n"; + $out .= "
\r\n"; $elementNo++; } } -- GitLab From 6c2c59e5d37d1a77a5406af40fec5141f21cf389 Mon Sep 17 00:00:00 2001 From: Herman van Rink Date: Mon, 28 Sep 2020 14:25:02 +0200 Subject: [PATCH 021/300] Monitor MySQL on the configured port, not always on 3306 --- server/lib/classes/monitor_tools.inc.php | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/server/lib/classes/monitor_tools.inc.php b/server/lib/classes/monitor_tools.inc.php index 31e36836d5..6e91cb42ce 100644 --- a/server/lib/classes/monitor_tools.inc.php +++ b/server/lib/classes/monitor_tools.inc.php @@ -460,7 +460,7 @@ class monitor_tools { /* Monitor MySQL Server */ $data['mysqlserver'] = -1; // unknown - not needed if ($services['db_server'] == 1) { - if ($this->_checkTcp('localhost', 3306)) { + if ($this->_checkTcp($conf['db_host'], $conf['db_port'])) { $data['mysqlserver'] = 1; } else { $data['mysqlserver'] = 0; -- GitLab From dd22c2e5f893dac1fbb0afb04cd3ca808dfb07c4 Mon Sep 17 00:00:00 2001 From: Herman van Rink Date: Wed, 7 Oct 2020 22:11:21 +0200 Subject: [PATCH 022/300] Fix DNS record list sorting, fixes #4431 --- interface/web/dns/templates/dns_a_list.htm | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/interface/web/dns/templates/dns_a_list.htm b/interface/web/dns/templates/dns_a_list.htm index e3e5486763..3c877ead26 100644 --- a/interface/web/dns/templates/dns_a_list.htm +++ b/interface/web/dns/templates/dns_a_list.htm @@ -62,7 +62,7 @@ - + -- GitLab From 4f8639b5934286acf8ba4724b3ac0f1afd00e934 Mon Sep 17 00:00:00 2001 From: Herman van Rink Date: Thu, 8 Oct 2020 14:57:27 +0200 Subject: [PATCH 023/300] Apply autofocus to ajax loaded pages --- interface/web/dns/templates/dns_a_edit.htm | 2 +- interface/web/mail/templates/mail_aliasdomain_edit.htm | 2 +- interface/web/mail/templates/mail_user_mailbox_edit.htm | 2 +- interface/web/themes/default/assets/javascripts/ispconfig.js | 3 +++ 4 files changed, 6 insertions(+), 3 deletions(-) diff --git a/interface/web/dns/templates/dns_a_edit.htm b/interface/web/dns/templates/dns_a_edit.htm index 0754bf9395..592999de7e 100644 --- a/interface/web/dns/templates/dns_a_edit.htm +++ b/interface/web/dns/templates/dns_a_edit.htm @@ -1,6 +1,6 @@
-

{tmpl_var name='name_hint_txt'}

+

{tmpl_var name='name_hint_txt'}

diff --git a/interface/web/mail/templates/mail_aliasdomain_edit.htm b/interface/web/mail/templates/mail_aliasdomain_edit.htm index a18ff0e3db..8413ff3f8f 100644 --- a/interface/web/mail/templates/mail_aliasdomain_edit.htm +++ b/interface/web/mail/templates/mail_aliasdomain_edit.htm @@ -1,6 +1,6 @@
-
{tmpl_var name='source_domain'}
diff --git a/interface/web/mail/templates/mail_user_mailbox_edit.htm b/interface/web/mail/templates/mail_user_mailbox_edit.htm index cd7ffcf0b6..170ab15db0 100644 --- a/interface/web/mail/templates/mail_user_mailbox_edit.htm +++ b/interface/web/mail/templates/mail_user_mailbox_edit.htm @@ -1,6 +1,6 @@
-
  {tmpl_var name='name_optional_txt'} +
  {tmpl_var name='name_optional_txt'}
diff --git a/interface/web/themes/default/assets/javascripts/ispconfig.js b/interface/web/themes/default/assets/javascripts/ispconfig.js index 26cfb0a9e4..c634ff7fb2 100644 --- a/interface/web/themes/default/assets/javascripts/ispconfig.js +++ b/interface/web/themes/default/assets/javascripts/ispconfig.js @@ -137,6 +137,9 @@ var ISPConfig = { }); $('[data-toggle="tooltip"]').tooltip({ }); + + $('input[autofocus]').focus(); + // grab all password fields and set the readonly prop to prevent password managers to fill in new password $('input[type="password"]').each(function() { $(this).prop('readonly', true) -- GitLab From 39fb8b09d76a9cf52a782b9692a49f69284898cf Mon Sep 17 00:00:00 2001 From: Herman van Rink Date: Fri, 9 Oct 2020 14:38:05 +0200 Subject: [PATCH 024/300] Optional configure CHECKBOXARRAY to be inline or one per line, default inline --- interface/lib/classes/tform_base.inc.php | 16 ++++++++++++++-- interface/web/admin/form/remote_user.tform.php | 1 + 2 files changed, 15 insertions(+), 2 deletions(-) diff --git a/interface/lib/classes/tform_base.inc.php b/interface/lib/classes/tform_base.inc.php index a26722a804..0a35a67b22 100644 --- a/interface/lib/classes/tform_base.inc.php +++ b/interface/lib/classes/tform_base.inc.php @@ -560,7 +560,13 @@ class tform_base { if(trim($tvl) == trim($k)) $checked = ' CHECKED'; } // $out .= "\r\n"; - $out .= "
\r\n"; + $out .= ""; + if (isset($field['render_inline']) && $field['render_inline'] == 'n') { + $out .= "
\r\n"; + } + else { + $out .= " \r\n"; + } $elementNo++; } } @@ -697,7 +703,13 @@ class tform_base { if(trim($tvl) == trim($k)) $checked = ' CHECKED'; } // $out .= "\r\n"; - $out .= "
\r\n"; + $out .= ""; + if (isset($field['render_inline']) && $field['render_inline'] == 'n') { + $out .= "
\r\n"; + } + else { + $out .= " \r\n"; + } $elementNo++; } } diff --git a/interface/web/admin/form/remote_user.tform.php b/interface/web/admin/form/remote_user.tform.php index 9263266a27..6e351730c2 100644 --- a/interface/web/admin/form/remote_user.tform.php +++ b/interface/web/admin/form/remote_user.tform.php @@ -146,6 +146,7 @@ $form["tabs"]['remote_user'] = array ( 'separator' => ';', 'width' => '', 'maxlength' => '', + 'render_inline' => 'n', 'rows' => '5', 'cols' => '30' ) -- GitLab From 5ccd7f22da3caf105909ee8ce729e313be1a2b6b Mon Sep 17 00:00:00 2001 From: Pascal Dreissen Date: Tue, 13 Oct 2020 10:08:30 +0200 Subject: [PATCH 025/300] Backport !744 Dashboard enhancements / quota view enhancements using bootstrap progressbars --- interface/web/dashboard/dashboard.php | 12 +- interface/web/dashboard/dashlets/limits.php | 432 +++++++++--------- interface/web/dashboard/dashlets/quota.php | 1 + .../dashlets/templates/databasequota.htm | 52 +-- .../dashboard/dashlets/templates/limits.htm | 50 +- .../dashlets/templates/mailquota.htm | 56 +-- .../dashboard/dashlets/templates/quota.htm | 54 ++- .../dashboard/lib/lang/en_dashlet_limits.lng | 1 + .../dashboard/lib/lang/nl_dashlet_limits.lng | 1 + .../web/mail/list/user_quota_stats.list.php | 2 +- .../mail/templates/user_quota_stats_list.htm | 129 ++++-- .../web/sites/aps_meta_packages/empty.dir | 1 - interface/web/sites/database_quota_stats.php | 1 + .../lib/lang/en_user_quota_stats_list.lng | 1 + .../lib/lang/en_web_sites_stats_list.lng | 3 +- .../lib/lang/nl_user_quota_stats_list.lng | 1 + .../lib/lang/nl_web_sites_stats_list.lng | 2 + .../web/sites/list/user_quota_stats.list.php | 2 +- .../web/sites/list/web_sites_stats.list.php | 2 +- .../templates/database_quota_stats_list.htm | 7 +- .../sites/templates/user_quota_stats_list.htm | 13 +- interface/web/sites/user_quota_stats.php | 13 + interface/web/sites/web_sites_stats.php | 5 + .../default/assets/stylesheets/ispconfig.css | 20 +- 24 files changed, 482 insertions(+), 379 deletions(-) delete mode 100644 interface/web/sites/aps_meta_packages/empty.dir diff --git a/interface/web/dashboard/dashboard.php b/interface/web/dashboard/dashboard.php index 005c364aa5..d8adccd15e 100644 --- a/interface/web/dashboard/dashboard.php +++ b/interface/web/dashboard/dashboard.php @@ -160,10 +160,14 @@ $dashlet_list = array(); $handle = @opendir(ISPC_WEB_PATH.'/dashboard/dashlets'); while ($file = @readdir($handle)) { if ($file != '.' && $file != '..' && !is_dir(ISPC_WEB_PATH.'/dashboard/dashlets/'.$file)) { - $dashlet_name = substr($file, 0, -4); - $dashlet_class = 'dashlet_'.$dashlet_name; - include_once ISPC_WEB_PATH.'/dashboard/dashlets/'.$file; - $dashlet_list[$dashlet_name] = new $dashlet_class; + $splitfilename = explode('.', $file); + $file_extension = pathinfo($file)['extension']; + if ($file_extension === 'php') { // only allow .php files + $dashlet_name = substr($file, 0, -4); + $dashlet_class = 'dashlet_'.$dashlet_name; + include_once ISPC_WEB_PATH.'/dashboard/dashlets/'.$file; + $dashlet_list[$dashlet_name] = new $dashlet_class; + } } } diff --git a/interface/web/dashboard/dashlets/limits.php b/interface/web/dashboard/dashlets/limits.php index 62cd2db358..a299bbcaf3 100644 --- a/interface/web/dashboard/dashlets/limits.php +++ b/interface/web/dashboard/dashlets/limits.php @@ -1,217 +1,221 @@ 'limit_mailquota', - 'db_table' => 'mail_user', - 'db_where' => 'quota > 0', /* Count only posive value of quota, negative value -1 is unlimited */ - 'q_type' => 'quota'); - - $limits[] = array('field' => 'limit_maildomain', - 'db_table' => 'mail_domain', - 'db_where' => ''); - - $limits[] = array('field' => 'limit_mailmailinglist', - 'db_table' => 'mail_mailinglist', - 'db_where' => ''); - - $limits[] = array('field' => 'limit_mailbox', - 'db_table' => 'mail_user', - 'db_where' => ''); - - $limits[] = array('field' => 'limit_mailalias', - 'db_table' => 'mail_forwarding', - 'db_where' => "type = 'alias'"); - - $limits[] = array('field' => 'limit_mailaliasdomain', - 'db_table' => 'mail_forwarding', - 'db_where' => "type = 'aliasdomain'"); - - $limits[] = array('field' => 'limit_mailforward', - 'db_table' => 'mail_forwarding', - 'db_where' => "type = 'forward'"); - - $limits[] = array('field' => 'limit_mailcatchall', - 'db_table' => 'mail_forwarding', - 'db_where' => "type = 'catchall'"); - - $limits[] = array('field' => 'limit_mailrouting', - 'db_table' => 'mail_transport', - 'db_where' => ""); - - $limits[] = array('field' => 'limit_mailfilter', - 'db_table' => 'mail_user_filter', - 'db_where' => ""); - - $limits[] = array('field' => 'limit_fetchmail', - 'db_table' => 'mail_get', - 'db_where' => ""); - - $limits[] = array('field' => 'limit_spamfilter_wblist', - 'db_table' => 'spamfilter_wblist', - 'db_where' => ""); - - $limits[] = array('field' => 'limit_spamfilter_user', - 'db_table' => 'spamfilter_users', - 'db_where' => ""); - - $limits[] = array('field' => 'limit_spamfilter_policy', - 'db_table' => 'spamfilter_policy', - 'db_where' => ""); - - $limits[] = array('field' => 'limit_web_quota', - 'db_table' => 'web_domain', - 'db_where' => 'hd_quota > 0', /* Count only posive value of quota, negative value -1 is unlimited */ - 'q_type' => 'hd_quota'); - - $limits[] = array('field' => 'limit_web_domain', - 'db_table' => 'web_domain', - 'db_where' => "type = 'vhost'"); - - $limits[] = array('field' => 'limit_web_subdomain', - 'db_table' => 'web_domain', - 'db_where' => "(type = 'subdomain' OR type = 'vhostsubdomain')"); - - $limits[] = array('field' => 'limit_web_aliasdomain', - 'db_table' => 'web_domain', - 'db_where' => "(type = 'alias' OR type = 'vhostalias')"); - - $limits[] = array('field' => 'limit_ftp_user', - 'db_table' => 'ftp_user', - 'db_where' => ""); - - $limits[] = array('field' => 'limit_shell_user', - 'db_table' => 'shell_user', - 'db_where' => ""); - - $limits[] = array('field' => 'limit_dns_zone', - 'db_table' => 'dns_soa', - 'db_where' => ""); - - $limits[] = array('field' => 'limit_dns_slave_zone', - 'db_table' => 'dns_slave', - 'db_where' => ""); - - $limits[] = array('field' => 'limit_dns_record', - 'db_table' => 'dns_rr', - 'db_where' => ""); - - $limits[] = array('field' => 'limit_database_quota', - 'db_table' => 'web_database', - 'db_where' => 'database_quota > 0', /* Count only posive value of quota, negative value -1 is unlimited */ - 'q_type' => 'database_quota'); - - $limits[] = array('field' => 'limit_database', - 'db_table' => 'web_database', - 'db_where' => ""); - - $limits[] = array('field' => 'limit_cron', - 'db_table' => 'cron', - 'db_where' => ""); - - $limits[] = array('field' => 'limit_client', - 'db_table' => 'client', - 'db_where' => ""); - - $limits[] = array('field' => 'limit_domain', - 'db_table' => 'domain', - 'db_where' => ""); - - - //* Loading Template - $app->uses('tpl,tform'); - - $tpl = new tpl; - $tpl->newTemplate("dashlets/templates/limits.htm"); - - $wb = array(); - $lng_file = 'lib/lang/'.$_SESSION['s']['language'].'_dashlet_limits.lng'; - if(is_file($lng_file)) include $lng_file; - $tpl->setVar($wb); - - if($app->auth->is_admin()) { - $user_is_admin = true; - } else { - $user_is_admin = false; - } - $tpl->setVar('is_admin', $user_is_admin); - - if($user_is_admin == false) { - $client_group_id = $app->functions->intval($_SESSION["s"]["user"]["default_group"]); - $client = $app->db->queryOneRecord("SELECT * FROM sys_group, client WHERE sys_group.client_id = client.client_id and sys_group.groupid = ?", $client_group_id); - } - - $rows = array(); - foreach($limits as $limit) { - $field = $limit['field']; - if($user_is_admin) { - $value = $wb['unlimited_txt']; - } else { - $value = $client[$field]; - } - if($value != 0 || $value == $wb['unlimited_txt']) { - $value_formatted = ($value == '-1')?$wb['unlimited_txt']:$value; - if($limit['q_type']!=''){ - $usage = $this->_get_assigned_quota($limit) . " MB"; - $value_formatted = ($value == '-1')?$wb['unlimited_txt']:$value . " MB"; - } - else $usage = $this->_get_limit_usage($limit); - $percentage = ($value == '-1' || $value == 0 ? 0 : round(100 * $usage / $value)); - $rows[] = array('field' => $field, - 'field_txt' => $wb[$field.'_txt'], - 'value' => $value_formatted, - 'value_raw' => $value, - 'usage' => $usage, - 'usage_raw' => $usage, - 'percentage' => $percentage); - } - } - $rows = $app->functions->htmlentities($rows); - $tpl->setLoop('rows', $rows); - - - return $tpl->grab(); - - } - - function _get_limit_usage($limit) { - global $app; - - $sql = "SELECT count(sys_userid) as number FROM ?? WHERE "; - if($limit['db_where'] != '') $sql .= $limit['db_where']." AND "; - $sql .= $app->tform->getAuthSQL('r'); - $rec = $app->db->queryOneRecord($sql, $limit['db_table']); - return $rec['number']; - - } - - function _get_assigned_quota($limit) { - global $app; - - $sql = "SELECT sum(??) as number FROM ?? WHERE "; - if($limit['db_where'] != '') $sql .= $limit['db_where']." AND "; - $sql .= $app->tform->getAuthSQL('r'); - $rec = $app->db->queryOneRecord($sql, $limit['q_type'], $limit['db_table']); - if($limit['db_table']=='mail_user') $quotaMB = $rec['number'] / 1048576; // Mail quota is in bytes, must be converted to MB - else $quotaMB = $rec['number']; - return $quotaMB; - - } - +class dashlet_limits +{ + public function show() + { + global $app, $conf; + + $limits = array(); + + /* Limits to be shown*/ + + $limits[] = array('field' => 'limit_mailquota', + 'db_table' => 'mail_user', + 'db_where' => 'quota > 0', /* Count only posive value of quota, negative value -1 is unlimited */ + 'q_type' => 'quota'); + + $limits[] = array('field' => 'limit_maildomain', + 'db_table' => 'mail_domain', + 'db_where' => ''); + + $limits[] = array('field' => 'limit_mailmailinglist', + 'db_table' => 'mail_mailinglist', + 'db_where' => ''); + + $limits[] = array('field' => 'limit_mailbox', + 'db_table' => 'mail_user', + 'db_where' => ''); + + $limits[] = array('field' => 'limit_mailalias', + 'db_table' => 'mail_forwarding', + 'db_where' => "type = 'alias'"); + + $limits[] = array('field' => 'limit_mailaliasdomain', + 'db_table' => 'mail_forwarding', + 'db_where' => "type = 'aliasdomain'"); + + $limits[] = array('field' => 'limit_mailforward', + 'db_table' => 'mail_forwarding', + 'db_where' => "type = 'forward'"); + + $limits[] = array('field' => 'limit_mailcatchall', + 'db_table' => 'mail_forwarding', + 'db_where' => "type = 'catchall'"); + + $limits[] = array('field' => 'limit_mailrouting', + 'db_table' => 'mail_transport', + 'db_where' => ""); + + $limits[] = array('field' => 'limit_mailfilter', + 'db_table' => 'mail_user_filter', + 'db_where' => ""); + + $limits[] = array('field' => 'limit_fetchmail', + 'db_table' => 'mail_get', + 'db_where' => ""); + + $limits[] = array('field' => 'limit_spamfilter_wblist', + 'db_table' => 'spamfilter_wblist', + 'db_where' => ""); + + $limits[] = array('field' => 'limit_spamfilter_user', + 'db_table' => 'spamfilter_users', + 'db_where' => ""); + + $limits[] = array('field' => 'limit_spamfilter_policy', + 'db_table' => 'spamfilter_policy', + 'db_where' => ""); + + $limits[] = array('field' => 'limit_web_quota', + 'db_table' => 'web_domain', + 'db_where' => 'hd_quota > 0', /* Count only posive value of quota, negative value -1 is unlimited */ + 'q_type' => 'hd_quota'); + + $limits[] = array('field' => 'limit_web_domain', + 'db_table' => 'web_domain', + 'db_where' => "type = 'vhost'"); + + $limits[] = array('field' => 'limit_web_subdomain', + 'db_table' => 'web_domain', + 'db_where' => "(type = 'subdomain' OR type = 'vhostsubdomain')"); + + $limits[] = array('field' => 'limit_web_aliasdomain', + 'db_table' => 'web_domain', + 'db_where' => "(type = 'alias' OR type = 'vhostalias')"); + + $limits[] = array('field' => 'limit_ftp_user', + 'db_table' => 'ftp_user', + 'db_where' => ""); + + $limits[] = array('field' => 'limit_shell_user', + 'db_table' => 'shell_user', + 'db_where' => ""); + + $limits[] = array('field' => 'limit_dns_zone', + 'db_table' => 'dns_soa', + 'db_where' => ""); + + $limits[] = array('field' => 'limit_dns_slave_zone', + 'db_table' => 'dns_slave', + 'db_where' => ""); + + $limits[] = array('field' => 'limit_dns_record', + 'db_table' => 'dns_rr', + 'db_where' => ""); + + $limits[] = array('field' => 'limit_database_quota', + 'db_table' => 'web_database', + 'db_where' => 'database_quota > 0', /* Count only posive value of quota, negative value -1 is unlimited */ + 'q_type' => 'database_quota'); + + $limits[] = array('field' => 'limit_database', + 'db_table' => 'web_database', + 'db_where' => ""); + + $limits[] = array('field' => 'limit_cron', + 'db_table' => 'cron', + 'db_where' => ""); + + $limits[] = array('field' => 'limit_client', + 'db_table' => 'client', + 'db_where' => ""); + + $limits[] = array('field' => 'limit_domain', + 'db_table' => 'domain', + 'db_where' => ""); + + + //* Loading Template + $app->uses('tpl,tform'); + + $tpl = new tpl; + $tpl->newTemplate("dashlets/templates/limits.htm"); + + $wb = array(); + $lng_file = 'lib/lang/'.$_SESSION['s']['language'].'_dashlet_limits.lng'; + if (is_file($lng_file)) { + include $lng_file; + } + $tpl->setVar($wb); + + if ($app->auth->is_admin()) { + $user_is_admin = true; + } else { + $user_is_admin = false; + } + $tpl->setVar('is_admin', $user_is_admin); + + if ($user_is_admin == false) { + $client_group_id = $app->functions->intval($_SESSION["s"]["user"]["default_group"]); + $client = $app->db->queryOneRecord("SELECT * FROM sys_group, client WHERE sys_group.client_id = client.client_id and sys_group.groupid = ?", $client_group_id); + } + + $rows = array(); + foreach ($limits as $limit) { + $field = $limit['field']; + if ($user_is_admin) { + $value = $wb['unlimited_txt']; + } else { + $value = $client[$field]; + } + if ($value != 0 || $value == $wb['unlimited_txt']) { + $value_formatted = ($value == '-1')?$wb['unlimited_txt']:$value; + if ($limit['q_type']!='') { + $usage = $this->_get_assigned_quota($limit) . " MB"; + $value_formatted = ($value == '-1')?$wb['unlimited_txt']:$value . " MB"; + } else { + $usage = $this->_get_limit_usage($limit); + } + $percentage = ($value == '-1' || $value == 0 ? -1 : round(100 * $usage / $value)); + $progressbar = $percentage > 100 ? 100 : $percentage; + $rows[] = array('field' => $field, + 'field_txt' => $wb[$field.'_txt'], + 'value' => $value_formatted, + 'value_raw' => $value, + 'usage' => $usage, + 'usage_raw' => $usage, + 'percentage' => $percentage, + 'progressbar' => $progressbar + ); + } + } + $rows = $app->functions->htmlentities($rows); + $tpl->setLoop('rows', $rows); + + + return $tpl->grab(); + } + + public function _get_limit_usage($limit) + { + global $app; + + $sql = "SELECT count(sys_userid) as number FROM ?? WHERE "; + if ($limit['db_where'] != '') { + $sql .= $limit['db_where']." AND "; + } + $sql .= $app->tform->getAuthSQL('r'); + $rec = $app->db->queryOneRecord($sql, $limit['db_table']); + return $rec['number']; + } + + public function _get_assigned_quota($limit) + { + global $app; + + $sql = "SELECT sum(??) as number FROM ?? WHERE "; + if ($limit['db_where'] != '') { + $sql .= $limit['db_where']." AND "; + } + $sql .= $app->tform->getAuthSQL('r'); + $rec = $app->db->queryOneRecord($sql, $limit['q_type'], $limit['db_table']); + if ($limit['db_table']=='mail_user') { + $quotaMB = $rec['number'] / 1048576; + } // Mail quota is in bytes, must be converted to MB + else { + $quotaMB = $rec['number']; + } + return $quotaMB; + } } - - - - - - - - -?> diff --git a/interface/web/dashboard/dashlets/quota.php b/interface/web/dashboard/dashlets/quota.php index f1c46051d1..d0b1be998f 100644 --- a/interface/web/dashboard/dashlets/quota.php +++ b/interface/web/dashboard/dashlets/quota.php @@ -31,6 +31,7 @@ class dashlet_quota { if(is_array($sites) && !empty($sites)){ foreach($sites as &$site) { $site['domain'] = $app->functions->idn_decode($site['domain']); + $site['progressbar'] = $site['hd_quota']; } unset($site); diff --git a/interface/web/dashboard/dashlets/templates/databasequota.htm b/interface/web/dashboard/dashlets/templates/databasequota.htm index 46db3cc6b8..7cfd10b095 100644 --- a/interface/web/dashboard/dashlets/templates/databasequota.htm +++ b/interface/web/dashboard/dashlets/templates/databasequota.htm @@ -1,28 +1,28 @@ -
- - - +
+
{tmpl_var name='databasequota_txt'}
+ + + + + + + + + + - - - + + + + {tmpl_if name="database_quota" op="!=" value="unlimited"}{/tmpl_if} - - - - - - - - - - - -
{tmpl_var name='databasequota_txt'}
{tmpl_var name='database_txt'}{tmpl_var name='used_txt'}{tmpl_var name='quota_txt'}
{tmpl_var name='database_txt'}{tmpl_var name='used_txt'}{tmpl_var name='quota_txt'}{tmpl_var name='database_name'}{tmpl_var name='used'}{tmpl_var name='database_quota'} +
+
{tmpl_var name="used_percentage"}% + {tmpl_var name='used'} {tmpl_var name='of_txt'} {tmpl_var name='database_quota'} +
+
+
{tmpl_var name='database_name'}{tmpl_var name='used'}{tmpl_var name='database_quota'} -
-
- {tmpl_var name='used'} {tmpl_var name='of_txt'} {tmpl_var name='database_quota'} -
-
-
-
\ No newline at end of file + + + +
diff --git a/interface/web/dashboard/dashlets/templates/limits.htm b/interface/web/dashboard/dashlets/templates/limits.htm index cc98f78e8c..d4144ee562 100644 --- a/interface/web/dashboard/dashlets/templates/limits.htm +++ b/interface/web/dashboard/dashlets/templates/limits.htm @@ -1,26 +1,34 @@ -
- +
+
- - - - - - - - - - + + + - + + + + + + + {tmpl_if name="progressbar" op="!=" value="-1"} + + {/tmpl_if} + + -
{tmpl_var name='limits_txt'}
  
{tmpl_var name='field_txt'}{tmpl_var name='usage'} {tmpl_var name='of_txt'} {tmpl_var name='value'} -
-
- {tmpl_var name='usage'} {tmpl_var name='of_txt'} {tmpl_var name='value'} -
-
-
   
{tmpl_var name='field_txt'}{tmpl_var name='usage'} {tmpl_var name='of_txt'} {tmpl_var name='value'} +
+
+ {tmpl_var name="percentage"}% + {tmpl_var name='usage'} {tmpl_var name='of_txt'} {tmpl_var + name='value'} +
+
+
-
+ +
\ No newline at end of file diff --git a/interface/web/dashboard/dashlets/templates/mailquota.htm b/interface/web/dashboard/dashlets/templates/mailquota.htm index 3573ef1ab9..91349d2af4 100644 --- a/interface/web/dashboard/dashlets/templates/mailquota.htm +++ b/interface/web/dashboard/dashlets/templates/mailquota.htm @@ -1,30 +1,30 @@ -
- - - +
+
{tmpl_var name='mailquota_txt'}
+ + + + + + + + + + + - - - - + + + + + {tmpl_if name="quota" op="!=" value="unlimited"}{tmpl_else}{/tmpl_if} - - - - - - - - - - - - -
{tmpl_var name='mailquota_txt'}
{tmpl_var name='email_txt'}{tmpl_var name='name_txt'}{tmpl_var name='used_txt'}{tmpl_var name='quota_txt'}
{tmpl_var name='email_txt'}{tmpl_var name='name_txt'}{tmpl_var name='used_txt'}{tmpl_var name='quota_txt'}{tmpl_var name='email'}{tmpl_var name='name'}{tmpl_var name='used'}{tmpl_var name='quota'} +
+
{tmpl_var name="used_percentage"}% + {tmpl_var name='used'} {tmpl_var name='of_txt'} {tmpl_var name='quota'} +
+
+
{tmpl_var name='email'}{tmpl_var name='name'}{tmpl_var name='used'}{tmpl_var name='quota'} -
-
- {tmpl_var name='used'} {tmpl_var name='of_txt'} {tmpl_var name='quota'} -
-
-
-
\ No newline at end of file + + + +
\ No newline at end of file diff --git a/interface/web/dashboard/dashlets/templates/quota.htm b/interface/web/dashboard/dashlets/templates/quota.htm index 4152ee074d..48435149b4 100644 --- a/interface/web/dashboard/dashlets/templates/quota.htm +++ b/interface/web/dashboard/dashlets/templates/quota.htm @@ -1,30 +1,34 @@ -
- +
+
- - - - - - - - - - - - - - + + + + - + + + + + + + + + {tmpl_if name="progressbar" op="!=" value="-1"}{tmpl_else}{/tmpl_if} + + -
{tmpl_var name='quota_txt'}
{tmpl_var name='domain_txt'}{tmpl_var name='used_txt'}{tmpl_var name='soft_txt'}{tmpl_var name='hard_txt'}
{tmpl_var name='domain'}{tmpl_var name='used'}{tmpl_var name='soft'}{tmpl_var name='hard'} -
-
- {tmpl_var name='used'} {tmpl_var name='of_txt'} {tmpl_var name='soft'} -
-
-
{tmpl_var name='domain_txt'}{tmpl_var name='used_txt'}{tmpl_var name='soft_txt'}{tmpl_var name='hard_txt'}
{tmpl_var name='domain'}{tmpl_var name='used'}{tmpl_var name='soft'}{tmpl_var name='hard'} +
+
{tmpl_var name="used_percentage"}% + {tmpl_var name='used'} {tmpl_var name='of_txt'} {tmpl_var + name='soft'} +
+
+
-
+ +
\ No newline at end of file diff --git a/interface/web/dashboard/lib/lang/en_dashlet_limits.lng b/interface/web/dashboard/lib/lang/en_dashlet_limits.lng index 337228a497..2e3bb8c086 100644 --- a/interface/web/dashboard/lib/lang/en_dashlet_limits.lng +++ b/interface/web/dashboard/lib/lang/en_dashlet_limits.lng @@ -30,4 +30,5 @@ $wb['limit_domain_txt'] = 'Number of Domains'; $wb['limit_mailquota_txt'] = 'Assigned mailbox quota'; $wb['limit_web_quota_txt'] = 'Assigned web quota'; $wb['limit_database_quota_txt'] = 'Assigned database quota'; +$wb['unlimited_txt'] = 'Unlimited'; ?> diff --git a/interface/web/dashboard/lib/lang/nl_dashlet_limits.lng b/interface/web/dashboard/lib/lang/nl_dashlet_limits.lng index 35a2b9e0be..10bb89a3ea 100644 --- a/interface/web/dashboard/lib/lang/nl_dashlet_limits.lng +++ b/interface/web/dashboard/lib/lang/nl_dashlet_limits.lng @@ -30,4 +30,5 @@ $wb['limit_domain_txt'] = 'Aantal domeinen'; $wb['limit_mailquota_txt'] = 'Assigned mailbox quota'; $wb['limit_web_quota_txt'] = 'Assigned web quota'; $wb['limit_database_quota_txt'] = 'Assigned database quota'; +$wb['unlimited_txt'] = 'Ongelimiteerd'; ?> diff --git a/interface/web/mail/list/user_quota_stats.list.php b/interface/web/mail/list/user_quota_stats.list.php index 1ba9fc6702..b6a380ede2 100644 --- a/interface/web/mail/list/user_quota_stats.list.php +++ b/interface/web/mail/list/user_quota_stats.list.php @@ -41,7 +41,7 @@ $liste["paging_tpl"] = "templates/paging.tpl.htm"; $liste["auth"] = "yes"; // mark columns for php sorting (no real mySQL columns) -$liste["phpsort"] = array('used', 'percentage'); +$liste["phpsort"] = array('used_sort', 'soft_sort', 'hard_sort', 'files', 'percentage_sort'); /***************************************************** * Suchfelder diff --git a/interface/web/mail/templates/user_quota_stats_list.htm b/interface/web/mail/templates/user_quota_stats_list.htm index 99690d6a33..58a374eabd 100644 --- a/interface/web/mail/templates/user_quota_stats_list.htm +++ b/interface/web/mail/templates/user_quota_stats_list.htm @@ -1,54 +1,87 @@ -

-
- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
{tmpl_var name='search_limit'}
    - -
{tmpl_var name="email"}{tmpl_var name="name"}{tmpl_var name="used"}{tmpl_var name="quota"}{tmpl_var name="percentage"}
{tmpl_var name='globalsearch_noresults_text_txt'}
+

+ +

+
+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+ + + + + + + + + + {tmpl_var name='search_limit'}
+     + +
{tmpl_var + name="email"}{tmpl_var + name="name"}{tmpl_var + name="used"}{tmpl_var + name="quota"} + {tmpl_if name="progressbar" op="!=" value="-1"}
+
+ {tmpl_var name="percentage"}
+
{/tmpl_if} +
{tmpl_var name='globalsearch_noresults_text_txt'}
+ +
-
+
\ No newline at end of file diff --git a/interface/web/sites/aps_meta_packages/empty.dir b/interface/web/sites/aps_meta_packages/empty.dir deleted file mode 100644 index 95ba9ef37c..0000000000 --- a/interface/web/sites/aps_meta_packages/empty.dir +++ /dev/null @@ -1 +0,0 @@ -This empty directory is needed by ISPConfig. diff --git a/interface/web/sites/database_quota_stats.php b/interface/web/sites/database_quota_stats.php index 03431a6ded..df17928e36 100644 --- a/interface/web/sites/database_quota_stats.php +++ b/interface/web/sites/database_quota_stats.php @@ -74,6 +74,7 @@ class list_action extends listform_actions { if($rec['quota'] <= 0){ $rec['quota'] = $app->lng('unlimited_txt'); $rec['percentage'] = ''; + $rec['progressbar'] = -1; } else { if ($rec['used'] > 0 ) $rec['percentage'] = round(100 * intval($rec['used']) / ( intval($rec['quota'])*1024*1024) ).'%'; $rec['quota'] .= ' MB'; diff --git a/interface/web/sites/lib/lang/en_user_quota_stats_list.lng b/interface/web/sites/lib/lang/en_user_quota_stats_list.lng index f30409f600..bb0fd47b7d 100644 --- a/interface/web/sites/lib/lang/en_user_quota_stats_list.lng +++ b/interface/web/sites/lib/lang/en_user_quota_stats_list.lng @@ -6,4 +6,5 @@ $wb['used_txt'] = 'Used space'; $wb['hard_txt'] = 'Hard limit'; $wb['soft_txt'] = 'Soft limit'; $wb['files_txt'] = 'Single files'; +$wb['percentage_txt'] = 'Used %'; ?> \ No newline at end of file diff --git a/interface/web/sites/lib/lang/en_web_sites_stats_list.lng b/interface/web/sites/lib/lang/en_web_sites_stats_list.lng index 04eaf1f752..4c66bc29ea 100644 --- a/interface/web/sites/lib/lang/en_web_sites_stats_list.lng +++ b/interface/web/sites/lib/lang/en_web_sites_stats_list.lng @@ -6,4 +6,5 @@ $wb['last_month_txt'] = 'Last month'; $wb['this_year_txt'] = 'This year'; $wb['last_year_txt'] = 'Last year'; $wb['sum_txt'] = 'Sum'; -?> \ No newline at end of file +$wb['percentage_txt'] = 'In use %'; +$wb['quota_txt'] = 'Quota'; diff --git a/interface/web/sites/lib/lang/nl_user_quota_stats_list.lng b/interface/web/sites/lib/lang/nl_user_quota_stats_list.lng index 64a5a0753e..03045ce872 100644 --- a/interface/web/sites/lib/lang/nl_user_quota_stats_list.lng +++ b/interface/web/sites/lib/lang/nl_user_quota_stats_list.lng @@ -6,4 +6,5 @@ $wb['used_txt'] = 'Gebruikte ruimte'; $wb['hard_txt'] = 'Harde limiet'; $wb['soft_txt'] = 'Zachte limiet'; $wb['files_txt'] = 'Aantal bestanden'; +$wb['percentage_txt'] = 'Percentage'; ?> diff --git a/interface/web/sites/lib/lang/nl_web_sites_stats_list.lng b/interface/web/sites/lib/lang/nl_web_sites_stats_list.lng index c25d743da6..fa5568418c 100644 --- a/interface/web/sites/lib/lang/nl_web_sites_stats_list.lng +++ b/interface/web/sites/lib/lang/nl_web_sites_stats_list.lng @@ -6,4 +6,6 @@ $wb['last_month_txt'] = 'Vorige maand'; $wb['this_year_txt'] = 'Dit jaar'; $wb['last_year_txt'] = 'Vorig jaar'; $wb['sum_txt'] = 'Som'; +$wb['percentage_txt'] = 'In gebruik %'; +$wb['quota_txt'] = 'Quota'; ?> diff --git a/interface/web/sites/list/user_quota_stats.list.php b/interface/web/sites/list/user_quota_stats.list.php index 52f54cf953..8d7f356fac 100644 --- a/interface/web/sites/list/user_quota_stats.list.php +++ b/interface/web/sites/list/user_quota_stats.list.php @@ -43,7 +43,7 @@ $liste["paging_tpl"] = "templates/paging.tpl.htm"; $liste["auth"] = "yes"; // mark columns for php sorting (no real mySQL columns) -$liste["phpsort"] = array('used', 'soft', 'hard', 'files'); +$liste["phpsort"] = array('system_user_sort', 'used', 'soft', 'hard', 'files', 'percentage'); /***************************************************** diff --git a/interface/web/sites/list/web_sites_stats.list.php b/interface/web/sites/list/web_sites_stats.list.php index af7ce9effb..37cb4e59a3 100644 --- a/interface/web/sites/list/web_sites_stats.list.php +++ b/interface/web/sites/list/web_sites_stats.list.php @@ -43,7 +43,7 @@ $liste["paging_tpl"] = "templates/paging.tpl.htm"; $liste["auth"] = "yes"; // mark columns for php sorting (no real mySQL columns) -$liste["phpsort"] = array('this_month', 'last_month', 'this_year', 'last_year'); +$liste["phpsort"] = array('this_month', 'last_month', 'this_year', 'last_year', 'percentage', 'quota_sort'); /***************************************************** * Suchfelder diff --git a/interface/web/sites/templates/database_quota_stats_list.htm b/interface/web/sites/templates/database_quota_stats_list.htm index 81a76762be..9982e6e601 100644 --- a/interface/web/sites/templates/database_quota_stats_list.htm +++ b/interface/web/sites/templates/database_quota_stats_list.htm @@ -36,8 +36,11 @@
{tmpl_var name="client"} {tmpl_var name="used"} {tmpl_var name="quota"} - {tmpl_var name="percentage"} - + {tmpl_if name="progressbar" op="!=" value="-1"}
+
{tmpl_var name="percentage"}
+
{/tmpl_if} + + diff --git a/interface/web/sites/templates/user_quota_stats_list.htm b/interface/web/sites/templates/user_quota_stats_list.htm index 704edafd87..f5a6c0fd77 100644 --- a/interface/web/sites/templates/user_quota_stats_list.htm +++ b/interface/web/sites/templates/user_quota_stats_list.htm @@ -8,12 +8,13 @@ - - + + + @@ -23,6 +24,7 @@ + @@ -31,13 +33,16 @@ - + - + + diff --git a/interface/web/sites/user_quota_stats.php b/interface/web/sites/user_quota_stats.php index 8c641eede9..d54732e62e 100644 --- a/interface/web/sites/user_quota_stats.php +++ b/interface/web/sites/user_quota_stats.php @@ -56,7 +56,20 @@ class list_action extends listform_actions { $rec['used'] = $rec['used'][1]; } } + /** + * progres bar variables + * soft value consists of null / array and raw value bug ? + */ + $soft = is_array($rec['soft']) || $rec['soft'] === null ? 0 : $rec['soft']; + $rec['percentage'] = $soft != 0 ? round(($rec['used']/$soft)*100) : '-1'; + $rec['progressbar'] = $rec['percentage'] > 100 ? 100 : $rec['percentage']; $rec['used_sort'] = $rec['used']; + /** + * Get digits from system_user for numeric sort + */ + preg_match('/(?P\d+)/',$rec['system_user'],$system_user_digits); + $rec['system_user_sort'] = $system_user_digits['digits']; + if (!is_numeric($rec['soft'])) $rec['soft']=$rec['soft'][1]; if (!is_numeric($rec['hard'])) $rec['hard']=$rec['hard'][1]; if (!is_numeric($rec['files'])) $rec['files']=$rec['files'][1]; diff --git a/interface/web/sites/web_sites_stats.php b/interface/web/sites/web_sites_stats.php index 488bf0363d..cabdf08bec 100644 --- a/interface/web/sites/web_sites_stats.php +++ b/interface/web/sites/web_sites_stats.php @@ -64,6 +64,11 @@ class list_action extends listform_actions { $rec['last_year'] = $app->functions->formatBytes($tmp_rec['t']); $this->sum_last_year += $tmp_rec['t']; + $rec['percentage'] = $rec['traffic_quota'] == '-1' ? -1 : round((($rec['this_month_sort']/($rec['traffic_quota']*1024*1024))*100)); + $rec['progressbar'] = $rec['percentage'] > 100 ? 100 : $rec['percentage']; + $rec['quota_sort'] = $rec['traffic_quota']; + $rec['quota'] = $rec['traffic_quota'] == '-1' ? 'unlimited' : $app->functions->formatBytes($rec['traffic_quota']*1024*1024); + //* The variable "id" contains always the index variable $rec['id'] = $rec[$this->idx_key]; diff --git a/interface/web/themes/default/assets/stylesheets/ispconfig.css b/interface/web/themes/default/assets/stylesheets/ispconfig.css index 2c04ee849a..d3b3506642 100644 --- a/interface/web/themes/default/assets/stylesheets/ispconfig.css +++ b/interface/web/themes/default/assets/stylesheets/ispconfig.css @@ -280,8 +280,16 @@ body { .progress { display: inline-block; margin-bottom: 0; - width: 150px; - height: 10px; } + width: 100%; + height: 20px; + background-color: #ababab; + font-weight: bold; +} + +.progress-bar-danger, .progress-bar-warning, .progress-bar-success { + text-align: center; + color: white; +} p.fieldset-legend { display: none; } @@ -793,6 +801,14 @@ span.notification_text { font-family: inherit; color: white; } +span.company_name { + font-weight: bold; +} + +span.tmp_account_name { + font-size: 0.9em; +} + .finediff { font-family: monospace; } -- GitLab From 15bdfc52c4f27cc33e790028ed39de17c839ed4b Mon Sep 17 00:00:00 2001 From: Pascal Dreissen Date: Tue, 13 Oct 2020 10:13:15 +0200 Subject: [PATCH 026/300] inadvertently removed file, rollback --- interface/web/sites/aps_meta_packages/empty.dir | 1 + 1 file changed, 1 insertion(+) create mode 100644 interface/web/sites/aps_meta_packages/empty.dir diff --git a/interface/web/sites/aps_meta_packages/empty.dir b/interface/web/sites/aps_meta_packages/empty.dir new file mode 100644 index 0000000000..95ba9ef37c --- /dev/null +++ b/interface/web/sites/aps_meta_packages/empty.dir @@ -0,0 +1 @@ +This empty directory is needed by ISPConfig. -- GitLab From 0fa67c4154268cdf2ed16db2204989aa4968d751 Mon Sep 17 00:00:00 2001 From: Michael Seevogel Date: Tue, 13 Oct 2020 14:16:15 +0200 Subject: [PATCH 027/300] updated Nginx OpenSSL version detection --- server/plugins-available/nginx_plugin.inc.php | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/server/plugins-available/nginx_plugin.inc.php b/server/plugins-available/nginx_plugin.inc.php index 5439efeb2f..d76ef1849a 100644 --- a/server/plugins-available/nginx_plugin.inc.php +++ b/server/plugins-available/nginx_plugin.inc.php @@ -1622,15 +1622,14 @@ class nginx_plugin { $vhost_data['logging'] = $web_config['logging']; // check if OpenSSL and Nginx supports TLS 1.3 - //$app->log("Found OpenSSL version: " . $app->system->getopensslversion($get_minor = true), LOGLEVEL_DEBUG); $nginx_version = $app->system->getnginxversion(true); $openssl_version = $app->system->getopensslversion(true); - $app->system->exec_safe('nginx -V 2>&1', $output, $return_var); + $output = $app->system->exec_safe('nginx -V 2>&1'); if(preg_match('/built with OpenSSL\s*(\d+)(\.(\d+)(\.(\d+))*)?(\D|$)/i', $output[0], $matches)) { $nginx_openssl_ver = $matches[1] . (isset($matches[3]) ? '.' . $matches[3] : '') . (isset($matches[5]) ? '.' . $matches[5] : ''); - } + } if(version_compare($app->system->getopensslversion(true), $nginx_openssl_ver, '>=')) { if((version_compare($app->system->getnginxversion(true), '1.13.0', '>=') && version_compare($app->system->getopensslversion(true), '1.1.1', '>='))) { @@ -1638,6 +1637,7 @@ class nginx_plugin { $vhost_data['tls13_available'] = $app->system->getopensslversion(true); } } + $tpl->setVar($vhost_data); $server_alias = array(); -- GitLab From 5f20b27a40ceb3a749078179262283c7db9aaeb9 Mon Sep 17 00:00:00 2001 From: thom Date: Wed, 14 Oct 2020 15:29:44 +0200 Subject: [PATCH 028/300] Open existing DMARC record instead of new one if one exists (#5821) --- interface/web/dns/dns_dmarc_edit.php | 26 +++++++++++++------------- 1 file changed, 13 insertions(+), 13 deletions(-) diff --git a/interface/web/dns/dns_dmarc_edit.php b/interface/web/dns/dns_dmarc_edit.php index 6b720c0f38..8b6f3a97b1 100644 --- a/interface/web/dns/dns_dmarc_edit.php +++ b/interface/web/dns/dns_dmarc_edit.php @@ -88,13 +88,13 @@ class page_action extends tform_actions { $dmarc_sp = 'same'; //* check for an existing dmarc-record - $sql = "SELECT data, active FROM dns_rr WHERE data LIKE 'v=DMARC1%' AND zone = ? AND name = ? AND " . $app->tform->getAuthSQL('r'); - $rec = $app->db->queryOneRecord($sql, $zone, '_dmarc.'.$domain_name.'.'); - if ( isset($rec) && !empty($rec) ) { + $sql = "SELECT data, active FROM dns_rr WHERE data LIKE 'v=DMARC1%' AND zone = ? AND name LIKE ? AND " . $app->tform->getAuthSQL('r'); + $rec = $app->db->queryOneRecord($sql, $zone, '_dmarc%'); + if (isset($rec) && !empty($rec) ) { $this->id = 1; $old_data = strtolower($rec['data']); $app->tpl->setVar("data", $old_data, true); - if ($rec['active'] == 'Y') $app->tpl->setVar("active", "CHECKED"); else $app->tpl->setVar("active", "UNCHECKED"); + //if ($rec['active'] == 'Y') $app->tpl->setVar("active", "CHECKED"); else $app->tpl->setVar("active", "UNCHECKED"); $dmarc_rua = ''; $dmarc_ruf = ''; $dmac_rf = ''; @@ -120,13 +120,13 @@ class page_action extends tform_actions { if (preg_match("/^pct=/", $part)) $dmarc_pct = str_replace('pct=', '', $part); if (preg_match("/^ri=/", $part)) $dmarc_ri = str_replace('ri=', '', $part); } - } + } //set html-values $app->tpl->setVar('domain', $domain_name, true); //create dmarc-policy-list - $dmarc_policy_value = array( + $dmarc_policy_value = array( 'none' => 'dmarc_policy_none_txt', 'quarantine' => 'dmarc_policy_quarantine_txt', 'reject' => 'dmarc_policy_reject_txt', @@ -152,7 +152,7 @@ class page_action extends tform_actions { unset($temp); //create dmarc-adkim-list - $dmarc_adkim_value = array( + $dmarc_adkim_value = array( 'r' => 'dmarc_adkim_r_txt', 's' => 'dmarc_adkim_s_txt', ); @@ -164,7 +164,7 @@ class page_action extends tform_actions { $app->tpl->setVar('dmarc_adkim', $dmarc_adkim_list); //create dmarc-aspf-list - $dmarc_aspf_value = array( + $dmarc_aspf_value = array( 'r' => 'dmarc_aspf_r_txt', 's' => 'dmarc_aspf_s_txt', ); @@ -183,7 +183,7 @@ class page_action extends tform_actions { $app->tpl->setVar("dmarc_ri", $dmarc_ri, true); //create dmarc-sp-list - $dmarc_sp_value = array( + $dmarc_sp_value = array( 'same' => 'dmarc_sp_same_txt', 'none' => 'dmarc_sp_none_txt', 'quarantine' => 'dmarc_sp_quarantine_txt', @@ -251,7 +251,7 @@ class page_action extends tform_actions { $this->dataRecord['dmarc_pct'] = $app->functions->intval($this->dataRecord['dmarc_pct']); if ($this->dataRecord['dmarc_pct'] < 0) $this->dataRecord['dmarc_pct'] = 0; if ($this->dataRecord['dmarc_pct'] > 100) $this->dataRecord['dmarc_pct'] = 100; - + //create dmarc-record $dmarc_record[] = 'p='.$this->dataRecord['dmarc_policy']; @@ -270,7 +270,7 @@ class page_action extends tform_actions { unset ($dmarc_rua); unset($temp); } - + if (!empty($this->dataRecord['dmarc_ruf'])) { $dmarc_ruf = explode(' ', $this->dataRecord['dmarc_ruf']); $dmarc_ruf = array_filter($dmarc_ruf); @@ -286,7 +286,7 @@ class page_action extends tform_actions { unset ($dmarc_ruf); unset($temp); } - + $fo_rec = array(); if (isset($this->dataRecord['dmarc_fo0'])) $fo_rec[] = '0'; if (isset($this->dataRecord['dmarc_fo1'])) $fo_rec[] = '1'; @@ -328,7 +328,7 @@ class page_action extends tform_actions { $this->dataRecord['name'] = '_dmarc.' . $soa['origin']; if (isset($this->dataRecord['active'])) $this->dataRecord['active'] = 'Y'; - + // Set the server ID of the rr record to the same server ID as the parent record. $this->dataRecord["server_id"] = $soa["server_id"]; -- GitLab From fab7432197fa5d47e6be3daae141065ca0d9e41a Mon Sep 17 00:00:00 2001 From: Jesse Norell Date: Thu, 15 Oct 2020 16:16:15 -0600 Subject: [PATCH 029/300] fix jk_update regex and more symlink cleanup --- server/lib/classes/system.inc.php | 68 +++++++++++++++++++++++++++++-- 1 file changed, 64 insertions(+), 4 deletions(-) diff --git a/server/lib/classes/system.inc.php b/server/lib/classes/system.inc.php index 32afb9943c..45eb9d213f 100644 --- a/server/lib/classes/system.inc.php +++ b/server/lib/classes/system.inc.php @@ -1031,6 +1031,61 @@ class system{ } } + function remove_recursive_symlinks($path, $chroot_basedir='', $recursive=false) { + global $app; + + if ($path != '/') { + $path = rtrim($path, '/'); + } + if (strlen($chroot_basedir) > 0) { + if (!is_dir($chroot_basedir)) { + $app->log("remove_recursive_symlink: invalid chroot basedir: $chroot_basedir", LOGLEVEL_DEBUG); + return false; + } + if (!(substr($path, 0, strlen($chroot_basedir)) === $chroot_basedir)) { + $app->log("remove_recursive_symlink: path $path is not below chroot basedir $chroot_basedir", LOGLEVEL_DEBUG); + return false; + } + if ($chroot_basedir != '/') { + $chroot_basedir = rtrim($chroot_basedir, '/'); + } + } + if (is_dir($path)) { + $objects = array_diff(scandir($path), array('.', '..')); + foreach ($objects as $object) { + if (is_dir("$path/$object") && $recursive) { + $this->remove_recursive_symlinks("$path/$object", $chroot_basedir, $recursive); + } elseif (is_link("$path/$object")) { + $realpath = realpath("$path/$object"); + if (strlen($chroot_basedir) > 0 ) { + $root_path = substr("$path/$object", strlen($chroot_basedir)); + if ($root_path && $realpath == $root_path) { + $app->log("removing recursive symlink $path/$object", LOGLEVEL_DEBUG); + unlink ("$path/$object"); + } + } + if ($realpath = "" || $realpath == "$path/$object") { + $app->log("removing recursive symlink $path/$object", LOGLEVEL_DEBUG); + unlink ("$path/$object"); + } + } + } + } elseif (is_link("$path")) { + $realpath = realpath($path); + if (strlen($chroot_basedir) > 0 ) { + $root_path = substr($path, strlen($chroot_basedir)); + if ($root_path && $realpath == $root_path) { + $app->log("removing recursive symlink $path", LOGLEVEL_DEBUG); + unlink ($path); + } + } + if ($realpath = "" || $realpath == $path) { + $app->log("removing recursive symlink $path", LOGLEVEL_DEBUG); + unlink ($path); + } + } + } + function checkpath($path) { $path = trim($path); //* We allow only absolute paths @@ -2485,6 +2540,7 @@ $app->log("update_jailkit_chroot called for $home_dir with options ".print_r($op } $this->remove_broken_symlinks($jail_dir, true); + $this->remove_recursive_symlinks($jail_dir, $home_dir, true); // save list of hardlinked files if (!(in_array('hardlink', $opts) || in_array('allow_hardlink', $options))) { @@ -2531,18 +2587,22 @@ $app->log('jk_update returned: '.print_r($this->_last_exec_out, true), LOGLEVEL_ foreach ($this->_last_exec_out as $line) { # jk_update sample output: # skip /var/www/clients/client1/web1/opt/ - if (substr( $line, 0, 4 ) === "skip") { + # removing outdated file /var/www/clients/client15/web19/usr/bin/host + # removing deprecated directory /var/www/clients/client15/web19/usr/lib/x86_64-linux-gnu/libtasn1.so.6.5.3 + # Creating symlink /var/www/clients/client15/web19/lib/x86_64-linux-gnu/libicudata.so.65 to libicudata.so.65.1 + # Copying /usr/bin/mysql to /var/www/clients/client15/web19/usr/bin/mysql + if (preg_match('@^(skip|removing (outdated|deprecated)|Creating|Copying)@', $line)) { continue; } # jk_update sample output: # ERROR: failed to remove deprecated directory /var/www/clients/client1/web10/usr/lib/x86_64-linux-gnu/libGeoIP.so.1.6.9 - if (preg_match('@^(?:[^ ]+){6}(?:.+)('.preg_quote($home_dir, '@').'.+)@', $line, $matches)) { + if (preg_match('@^(?:[^ ]+ ){6}(?:.+)('.preg_quote($home_dir, '@').'.+)@', $line, $matches)) { # remove deprecated files that jk_update failed to remove - if (is_file($matches[1])) { + if (is_file($matches[1]) || is_link($matches[1])) { $app->log("update_jailkit_chroot: removing deprecated file which jk_update failed to remove: ".$matches[1], LOGLEVEL_DEBUG); unlink($matches[1]); - } elseif (is_dir($matches[1])) { + } elseif (is_dir($matches[1]) && !is_link($matches[1])) { $app->log("update_jailkit_chroot: removing deprecated directory which jk_update failed to remove: ".$matches[1], LOGLEVEL_DEBUG); $this->rmdir($matches[1], true); } else { -- GitLab From f051762b78b6a9ab82980f93fdde063316ff1d87 Mon Sep 17 00:00:00 2001 From: Till Brehm Date: Fri, 16 Oct 2020 10:56:24 +0200 Subject: [PATCH 030/300] Update auth.inc.php --- interface/lib/classes/auth.inc.php | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/interface/lib/classes/auth.inc.php b/interface/lib/classes/auth.inc.php index d5dcfd1fe4..a69d43da2e 100644 --- a/interface/lib/classes/auth.inc.php +++ b/interface/lib/classes/auth.inc.php @@ -58,7 +58,7 @@ class auth { $userid = $app->functions->intval($userid); $client = $app->db->queryOneRecord("SELECT client.limit_client FROM sys_user, client WHERE sys_user.userid = ? AND sys_user.client_id = client.client_id", $userid); - if($client['limit_client'] != 0) { + if(is_array($client) && $client['limit_client'] != 0) { return true; } else { return false; -- GitLab From 323d670b35da08115d6ab9558cf3aa79f0064bbf Mon Sep 17 00:00:00 2001 From: thom Date: Fri, 16 Oct 2020 10:57:31 +0200 Subject: [PATCH 031/300] Fix column amount (#5827) --- .../web/client/templates/clients_list.htm | 12 ++++++------ .../sites/templates/database_admin_list.htm | 10 +++++----- .../templates/database_user_admin_list.htm | 18 ++++++++---------- 3 files changed, 19 insertions(+), 21 deletions(-) diff --git a/interface/web/client/templates/clients_list.htm b/interface/web/client/templates/clients_list.htm index 2ffd7dfa78..21ad0c7bc9 100644 --- a/interface/web/client/templates/clients_list.htm +++ b/interface/web/client/templates/clients_list.htm @@ -5,12 +5,12 @@

{tmpl_var name="toolsarea_head_txt"}

- + - - - + + +

{tmpl_var name='search_limit'}
      
{tmpl_var name="domain"}{tmpl_var name="domain"} {tmpl_var name="system_user"} {tmpl_var name="used"} {tmpl_var name="soft"} {tmpl_var name="hard"} {tmpl_var name="files"}{tmpl_if name="progressbar" op="!=" value="-1"}
+
{tmpl_var name="percentage"}%
+
{/tmpl_if}
@@ -74,13 +74,13 @@ - + - +
{tmpl_var name='globalsearch_noresults_text_txt'}{tmpl_var name='globalsearch_noresults_text_txt'}
diff --git a/interface/web/sites/templates/database_admin_list.htm b/interface/web/sites/templates/database_admin_list.htm index 724027ca91..08c4447fab 100644 --- a/interface/web/sites/templates/database_admin_list.htm +++ b/interface/web/sites/templates/database_admin_list.htm @@ -4,12 +4,12 @@

{tmpl_var name="toolsarea_head_txt"}

- + - - - + + +

@@ -67,7 +67,7 @@ - + diff --git a/interface/web/sites/templates/database_user_admin_list.htm b/interface/web/sites/templates/database_user_admin_list.htm index 0b7eb1be09..821dc13abe 100644 --- a/interface/web/sites/templates/database_user_admin_list.htm +++ b/interface/web/sites/templates/database_user_admin_list.htm @@ -5,12 +5,12 @@

{tmpl_var name="toolsarea_head_txt"}

- + - - - + + +

{tmpl_var name='globalsearch_noresults_text_txt'}{tmpl_var name='globalsearch_noresults_text_txt'}
@@ -22,7 +22,7 @@ - + @@ -30,7 +30,7 @@ - + - + - +
{tmpl_var name="database_user"}{tmpl_var name="sys_groupid"}{tmpl_var name="sys_groupid"} @@ -39,16 +39,14 @@
{tmpl_var name='globalsearch_noresults_text_txt'}{tmpl_var name='globalsearch_noresults_text_txt'}
- - \ No newline at end of file -- GitLab From 98381e6158dd7c39a3c9b38a0d586c569542053b Mon Sep 17 00:00:00 2001 From: thom Date: Fri, 16 Oct 2020 11:09:10 +0200 Subject: [PATCH 032/300] Add missing translation for datalog status server ip (#5716) --- interface/lib/lang/ar.lng | 3 +++ interface/lib/lang/bg.lng | 3 +++ interface/lib/lang/br.lng | 3 +++ interface/lib/lang/ca.lng | 3 +++ interface/lib/lang/cz.lng | 3 +++ interface/lib/lang/de.lng | 3 +++ interface/lib/lang/dk.lng | 3 +++ interface/lib/lang/el.lng | 3 +++ interface/lib/lang/en.lng | 3 +++ interface/lib/lang/es.lng | 3 +++ interface/lib/lang/fi.lng | 3 +++ interface/lib/lang/fr.lng | 3 +++ interface/lib/lang/hr.lng | 3 +++ interface/lib/lang/hu.lng | 3 +++ interface/lib/lang/id.lng | 3 +++ interface/lib/lang/it.lng | 3 +++ interface/lib/lang/ja.lng | 3 +++ interface/lib/lang/nl.lng | 3 +++ interface/lib/lang/pl.lng | 3 +++ interface/lib/lang/pt.lng | 3 +++ interface/lib/lang/ro.lng | 3 +++ interface/lib/lang/ru.lng | 3 +++ interface/lib/lang/se.lng | 3 +++ interface/lib/lang/sk.lng | 3 +++ interface/lib/lang/tr.lng | 3 +++ 25 files changed, 75 insertions(+) diff --git a/interface/lib/lang/ar.lng b/interface/lib/lang/ar.lng index 1d577862b7..2763f8e82b 100644 --- a/interface/lib/lang/ar.lng +++ b/interface/lib/lang/ar.lng @@ -119,6 +119,9 @@ $wb['datalog_status_u_server'] = 'Update server settings'; $wb['datalog_status_d_server'] = 'Delete server'; $wb['datalog_status_i_cron'] = 'Create cron job'; $wb['datalog_status_u_cron'] = 'Update cron job'; +$wb['datalog_status_i_server_ip'] = 'Add server IP'; +$wb['datalog_status_u_server_ip'] = 'Update server IP'; +$wb['datalog_status_d_server_ip'] = 'Delete server IP'; $wb['datalog_status_d_cron'] = 'Delete cron job'; $wb['datalog_status_i_mail_get'] = 'Create mail fetcher account'; $wb['datalog_status_u_mail_get'] = 'Update mail fetcher account'; diff --git a/interface/lib/lang/bg.lng b/interface/lib/lang/bg.lng index 36a7f7081f..94dfaa8ad1 100644 --- a/interface/lib/lang/bg.lng +++ b/interface/lib/lang/bg.lng @@ -119,6 +119,9 @@ $wb['datalog_status_u_server'] = 'Update server settings'; $wb['datalog_status_d_server'] = 'Delete server'; $wb['datalog_status_i_cron'] = 'Създай автоматична задача'; $wb['datalog_status_u_cron'] = 'Обнови автоматична задача'; +$wb['datalog_status_i_server_ip'] = 'Add server IP'; +$wb['datalog_status_u_server_ip'] = 'Update server IP'; +$wb['datalog_status_d_server_ip'] = 'Delete server IP'; $wb['datalog_status_d_cron'] = 'Изтрий автоматична задача'; $wb['datalog_status_i_mail_get'] = 'Създай имейл акаунт за извличане на поща'; $wb['datalog_status_u_mail_get'] = 'Обнови имейл акаунт за извличане на поща'; diff --git a/interface/lib/lang/br.lng b/interface/lib/lang/br.lng index a236cd5f81..92507a6a7c 100644 --- a/interface/lib/lang/br.lng +++ b/interface/lib/lang/br.lng @@ -122,6 +122,9 @@ $wb['datalog_status_u_server'] = 'Update server settings'; $wb['datalog_status_d_server'] = 'Delete server'; $wb['datalog_status_i_cron'] = 'Adicionar tarefa no cron'; $wb['datalog_status_u_cron'] = 'Atualizar tarefa no cron'; +$wb['datalog_status_i_server_ip'] = 'Add server IP'; +$wb['datalog_status_u_server_ip'] = 'Update server IP'; +$wb['datalog_status_d_server_ip'] = 'Delete server IP'; $wb['datalog_status_d_cron'] = 'Remover tarefa no cron'; $wb['datalog_status_i_mail_get'] = 'Adicionar conta de busca de e-mail'; $wb['datalog_status_u_mail_get'] = 'Atualizar conta de busca de e-mail'; diff --git a/interface/lib/lang/ca.lng b/interface/lib/lang/ca.lng index 123748fd0d..c57185fd10 100644 --- a/interface/lib/lang/ca.lng +++ b/interface/lib/lang/ca.lng @@ -122,6 +122,9 @@ $wb['datalog_status_u_server'] = 'Update server settings'; $wb['datalog_status_d_server'] = 'Delete server'; $wb['datalog_status_i_cron'] = 'Créer une tâche cron'; $wb['datalog_status_u_cron'] = 'Modifier une tâche cron'; +$wb['datalog_status_i_server_ip'] = 'Add server IP'; +$wb['datalog_status_u_server_ip'] = 'Update server IP'; +$wb['datalog_status_d_server_ip'] = 'Delete server IP'; $wb['datalog_status_d_cron'] = 'Supprimer une tâche cron'; $wb['datalog_status_i_mail_get'] = 'Créer un compte mail récupérateur'; $wb['datalog_status_u_mail_get'] = 'Modifier un compte mail récupérateur'; diff --git a/interface/lib/lang/cz.lng b/interface/lib/lang/cz.lng index 28e76397b4..a3c2fe440c 100644 --- a/interface/lib/lang/cz.lng +++ b/interface/lib/lang/cz.lng @@ -122,6 +122,9 @@ $wb['datalog_status_u_server'] = 'Update server settings'; $wb['datalog_status_d_server'] = 'Delete server'; $wb['datalog_status_i_cron'] = 'Vytvoření shell uživatele'; $wb['datalog_status_u_cron'] = 'Aktualizace nastavení shell uživatele'; +$wb['datalog_status_i_server_ip'] = 'Add server IP'; +$wb['datalog_status_u_server_ip'] = 'Update server IP'; +$wb['datalog_status_d_server_ip'] = 'Delete server IP'; $wb['datalog_status_d_cron'] = 'Odstranění shell uživatele'; $wb['datalog_status_i_mail_get'] = 'Vytvoření účtu pro získávání externí e-mailové pošty'; $wb['datalog_status_u_mail_get'] = 'Aktualizace nastavení účtu pro získávání externí e-mailové pošty'; diff --git a/interface/lib/lang/de.lng b/interface/lib/lang/de.lng index 22c33380fe..11a5e21a5d 100644 --- a/interface/lib/lang/de.lng +++ b/interface/lib/lang/de.lng @@ -123,6 +123,9 @@ $wb['datalog_status_u_server'] = 'Update server settings'; $wb['datalog_status_d_server'] = 'Delete server'; $wb['datalog_status_i_cron'] = 'Cronjob anlegen'; $wb['datalog_status_u_cron'] = 'Cronjob ändern'; +$wb['datalog_status_i_server_ip'] = 'Add server IP'; +$wb['datalog_status_u_server_ip'] = 'Update server IP'; +$wb['datalog_status_d_server_ip'] = 'Delete server IP'; $wb['datalog_status_d_cron'] = 'Cronjob löschen'; $wb['datalog_status_i_mail_get'] = 'E-Mailabruf anlegen'; $wb['datalog_status_u_mail_get'] = 'E-Mailabruf ändern'; diff --git a/interface/lib/lang/dk.lng b/interface/lib/lang/dk.lng index 0ffea486c2..9d09f1dc8d 100644 --- a/interface/lib/lang/dk.lng +++ b/interface/lib/lang/dk.lng @@ -122,6 +122,9 @@ $wb['datalog_status_u_server'] = 'Update server settings'; $wb['datalog_status_d_server'] = 'Delete server'; $wb['datalog_status_i_cron'] = 'Opret cron job'; $wb['datalog_status_u_cron'] = 'Opdater cron job'; +$wb['datalog_status_i_server_ip'] = 'Add server IP'; +$wb['datalog_status_u_server_ip'] = 'Update server IP'; +$wb['datalog_status_d_server_ip'] = 'Delete server IP'; $wb['datalog_status_d_cron'] = 'Slet cron job'; $wb['datalog_status_i_mail_get'] = 'Opret mail-hentnings konto'; $wb['datalog_status_u_mail_get'] = 'Opdater mail-hentnings konto'; diff --git a/interface/lib/lang/el.lng b/interface/lib/lang/el.lng index b0c6507e27..31829d5f93 100644 --- a/interface/lib/lang/el.lng +++ b/interface/lib/lang/el.lng @@ -119,6 +119,9 @@ $wb['datalog_status_u_server'] = 'Update server settings'; $wb['datalog_status_d_server'] = 'Delete server'; $wb['datalog_status_i_cron'] = 'Create cron job'; $wb['datalog_status_u_cron'] = 'Update cron job'; +$wb['datalog_status_i_server_ip'] = 'Add server IP'; +$wb['datalog_status_u_server_ip'] = 'Update server IP'; +$wb['datalog_status_d_server_ip'] = 'Delete server IP'; $wb['datalog_status_d_cron'] = 'Delete cron job'; $wb['datalog_status_i_mail_get'] = 'Create mail fetcher account'; $wb['datalog_status_u_mail_get'] = 'Update mail fetcher account'; diff --git a/interface/lib/lang/en.lng b/interface/lib/lang/en.lng index 904e7e30e4..dbffc95b8c 100644 --- a/interface/lib/lang/en.lng +++ b/interface/lib/lang/en.lng @@ -123,6 +123,9 @@ $wb['datalog_status_u_server'] = 'Update server settings'; $wb['datalog_status_d_server'] = 'Delete server'; $wb['datalog_status_i_cron'] = 'Create cron job'; $wb['datalog_status_u_cron'] = 'Update cron job'; +$wb['datalog_status_i_server_ip'] = 'Add server IP'; +$wb['datalog_status_u_server_ip'] = 'Update server IP'; +$wb['datalog_status_d_server_ip'] = 'Delete server IP'; $wb['datalog_status_d_cron'] = 'Delete cron job'; $wb['datalog_status_i_mail_get'] = 'Create mail fetcher account'; $wb['datalog_status_u_mail_get'] = 'Update mail fetcher account'; diff --git a/interface/lib/lang/es.lng b/interface/lib/lang/es.lng index 5af12b6ddd..3a421e7af5 100644 --- a/interface/lib/lang/es.lng +++ b/interface/lib/lang/es.lng @@ -122,6 +122,9 @@ $wb['datalog_status_u_server'] = 'Update server settings'; $wb['datalog_status_d_server'] = 'Delete server'; $wb['datalog_status_i_cron'] = 'Añadir cron job'; $wb['datalog_status_u_cron'] = 'Actualizar cron job'; +$wb['datalog_status_i_server_ip'] = 'Add server IP'; +$wb['datalog_status_u_server_ip'] = 'Update server IP'; +$wb['datalog_status_d_server_ip'] = 'Delete server IP'; $wb['datalog_status_d_cron'] = 'Borrar cron job'; $wb['datalog_status_i_mail_get'] = 'Añadir cuenta de rescatador de correo'; $wb['datalog_status_u_mail_get'] = 'Actualizar cuenta de rescatador de correo'; diff --git a/interface/lib/lang/fi.lng b/interface/lib/lang/fi.lng index c399b497f2..f6648e88c6 100644 --- a/interface/lib/lang/fi.lng +++ b/interface/lib/lang/fi.lng @@ -119,6 +119,9 @@ $wb['datalog_status_u_server'] = 'Update server settings'; $wb['datalog_status_d_server'] = 'Delete server'; $wb['datalog_status_i_cron'] = 'Create cron job'; $wb['datalog_status_u_cron'] = 'Update cron job'; +$wb['datalog_status_i_server_ip'] = 'Add server IP'; +$wb['datalog_status_u_server_ip'] = 'Update server IP'; +$wb['datalog_status_d_server_ip'] = 'Delete server IP'; $wb['datalog_status_d_cron'] = 'Delete cron job'; $wb['datalog_status_i_mail_get'] = 'Create mail fetcher account'; $wb['datalog_status_u_mail_get'] = 'Update mail fetcher account'; diff --git a/interface/lib/lang/fr.lng b/interface/lib/lang/fr.lng index 8017f43742..15e8294e0c 100644 --- a/interface/lib/lang/fr.lng +++ b/interface/lib/lang/fr.lng @@ -122,6 +122,9 @@ $wb['datalog_status_u_server'] = 'Update server settings'; $wb['datalog_status_d_server'] = 'Delete server'; $wb['datalog_status_i_cron'] = 'Créer une tâche cron'; $wb['datalog_status_u_cron'] = 'Modifier une tâche cron'; +$wb['datalog_status_i_server_ip'] = 'Add server IP'; +$wb['datalog_status_u_server_ip'] = 'Update server IP'; +$wb['datalog_status_d_server_ip'] = 'Delete server IP'; $wb['datalog_status_d_cron'] = 'Supprimer une tâche cron'; $wb['datalog_status_i_mail_get'] = 'Créer un compte mail récupérateur'; $wb['datalog_status_u_mail_get'] = 'Modifier un compte mail récupérateur'; diff --git a/interface/lib/lang/hr.lng b/interface/lib/lang/hr.lng index 52d78a6b94..fdb09cbff5 100644 --- a/interface/lib/lang/hr.lng +++ b/interface/lib/lang/hr.lng @@ -119,6 +119,9 @@ $wb['datalog_status_u_server'] = 'Update server settings'; $wb['datalog_status_d_server'] = 'Delete server'; $wb['datalog_status_i_cron'] = 'Kreiraj cron zadatak'; $wb['datalog_status_u_cron'] = 'Podesi cron zadatak'; +$wb['datalog_status_i_server_ip'] = 'Add server IP'; +$wb['datalog_status_u_server_ip'] = 'Update server IP'; +$wb['datalog_status_d_server_ip'] = 'Delete server IP'; $wb['datalog_status_d_cron'] = 'Obriši cron zadatak'; $wb['datalog_status_i_mail_get'] = 'Kreiraj mail fetcher račun'; $wb['datalog_status_u_mail_get'] = 'Podesi mail fetcher račun'; diff --git a/interface/lib/lang/hu.lng b/interface/lib/lang/hu.lng index 3893db1174..8e65d4c974 100644 --- a/interface/lib/lang/hu.lng +++ b/interface/lib/lang/hu.lng @@ -119,6 +119,9 @@ $wb['datalog_status_u_server'] = 'Update server settings'; $wb['datalog_status_d_server'] = 'Delete server'; $wb['datalog_status_i_cron'] = 'Create cron job'; $wb['datalog_status_u_cron'] = 'Update cron job'; +$wb['datalog_status_i_server_ip'] = 'Add server IP'; +$wb['datalog_status_u_server_ip'] = 'Update server IP'; +$wb['datalog_status_d_server_ip'] = 'Delete server IP'; $wb['datalog_status_d_cron'] = 'Delete cron job'; $wb['datalog_status_i_mail_get'] = 'Create mail fetcher account'; $wb['datalog_status_u_mail_get'] = 'Update mail fetcher account'; diff --git a/interface/lib/lang/id.lng b/interface/lib/lang/id.lng index 42e95be1fc..693ca49015 100644 --- a/interface/lib/lang/id.lng +++ b/interface/lib/lang/id.lng @@ -119,6 +119,9 @@ $wb['datalog_status_u_server'] = 'Update server settings'; $wb['datalog_status_d_server'] = 'Delete server'; $wb['datalog_status_i_cron'] = 'Create cron job'; $wb['datalog_status_u_cron'] = 'Update cron job'; +$wb['datalog_status_i_server_ip'] = 'Add server IP'; +$wb['datalog_status_u_server_ip'] = 'Update server IP'; +$wb['datalog_status_d_server_ip'] = 'Delete server IP'; $wb['datalog_status_d_cron'] = 'Delete cron job'; $wb['datalog_status_i_mail_get'] = 'Create mail fetcher account'; $wb['datalog_status_u_mail_get'] = 'Update mail fetcher account'; diff --git a/interface/lib/lang/it.lng b/interface/lib/lang/it.lng index 1924c2a1d3..1333cc907f 100644 --- a/interface/lib/lang/it.lng +++ b/interface/lib/lang/it.lng @@ -118,6 +118,9 @@ $wb['datalog_status_u_server'] = 'Update server settings'; $wb['datalog_status_d_server'] = 'Delete server'; $wb['datalog_status_i_cron'] = 'Crea cron job'; $wb['datalog_status_u_cron'] = 'Aggiorna cron job'; +$wb['datalog_status_i_server_ip'] = 'Add server IP'; +$wb['datalog_status_u_server_ip'] = 'Update server IP'; +$wb['datalog_status_d_server_ip'] = 'Delete server IP'; $wb['datalog_status_d_cron'] = 'Elimina cron job'; $wb['datalog_status_i_mail_mailinglist'] = 'Crea mailing list'; $wb['datalog_status_u_mail_mailinglist'] = 'Aggiorna mailing list'; diff --git a/interface/lib/lang/ja.lng b/interface/lib/lang/ja.lng index 6cd1393ba3..2d24f9a1f7 100644 --- a/interface/lib/lang/ja.lng +++ b/interface/lib/lang/ja.lng @@ -119,6 +119,9 @@ $wb['datalog_status_u_server'] = 'Update server settings'; $wb['datalog_status_d_server'] = 'Delete server'; $wb['datalog_status_i_cron'] = 'Create cron job'; $wb['datalog_status_u_cron'] = 'Update cron job'; +$wb['datalog_status_i_server_ip'] = 'Add server IP'; +$wb['datalog_status_u_server_ip'] = 'Update server IP'; +$wb['datalog_status_d_server_ip'] = 'Delete server IP'; $wb['datalog_status_d_cron'] = 'Delete cron job'; $wb['datalog_status_i_mail_get'] = 'Create mail fetcher account'; $wb['datalog_status_u_mail_get'] = 'Update mail fetcher account'; diff --git a/interface/lib/lang/nl.lng b/interface/lib/lang/nl.lng index 5335efa2e6..3af436ca48 100644 --- a/interface/lib/lang/nl.lng +++ b/interface/lib/lang/nl.lng @@ -119,6 +119,9 @@ $wb['datalog_status_u_server'] = 'Update server settings'; $wb['datalog_status_d_server'] = 'Delete server'; $wb['datalog_status_i_cron'] = 'Aanmaken cron job'; $wb['datalog_status_u_cron'] = 'Bijwerken cron job'; +$wb['datalog_status_i_server_ip'] = 'Add server IP'; +$wb['datalog_status_u_server_ip'] = 'Update server IP'; +$wb['datalog_status_d_server_ip'] = 'Delete server IP'; $wb['datalog_status_d_cron'] = 'Verwijderen cron job'; $wb['datalog_status_i_mail_get'] = 'Create mail fetcher account'; $wb['datalog_status_u_mail_get'] = 'Update mail fetcher account'; diff --git a/interface/lib/lang/pl.lng b/interface/lib/lang/pl.lng index b790794b5b..4a1cd0384e 100644 --- a/interface/lib/lang/pl.lng +++ b/interface/lib/lang/pl.lng @@ -122,6 +122,9 @@ $wb['datalog_status_u_server'] = 'Update server settings'; $wb['datalog_status_d_server'] = 'Delete server'; $wb['datalog_status_i_cron'] = 'Utwórz zadanie Cron'; $wb['datalog_status_u_cron'] = 'Edytuj zadanie Cron'; +$wb['datalog_status_i_server_ip'] = 'Add server IP'; +$wb['datalog_status_u_server_ip'] = 'Update server IP'; +$wb['datalog_status_d_server_ip'] = 'Delete server IP'; $wb['datalog_status_d_cron'] = 'Usuń zadanie Cron'; $wb['datalog_status_i_mail_get'] = 'Utwórz konto mail fetcher'; $wb['datalog_status_u_mail_get'] = 'Edytuj konto mail fetcher'; diff --git a/interface/lib/lang/pt.lng b/interface/lib/lang/pt.lng index c958450329..86d4442c42 100644 --- a/interface/lib/lang/pt.lng +++ b/interface/lib/lang/pt.lng @@ -119,6 +119,9 @@ $wb['datalog_status_u_server'] = 'Update server settings'; $wb['datalog_status_d_server'] = 'Delete server'; $wb['datalog_status_i_cron'] = 'Create cron job'; $wb['datalog_status_u_cron'] = 'Update cron job'; +$wb['datalog_status_i_server_ip'] = 'Add server IP'; +$wb['datalog_status_u_server_ip'] = 'Update server IP'; +$wb['datalog_status_d_server_ip'] = 'Delete server IP'; $wb['datalog_status_d_cron'] = 'Delete cron job'; $wb['datalog_status_i_mail_get'] = 'Create mail fetcher account'; $wb['datalog_status_u_mail_get'] = 'Update mail fetcher account'; diff --git a/interface/lib/lang/ro.lng b/interface/lib/lang/ro.lng index 6cc88b6c4d..4f032832eb 100644 --- a/interface/lib/lang/ro.lng +++ b/interface/lib/lang/ro.lng @@ -119,6 +119,9 @@ $wb['datalog_status_u_server'] = 'Update server settings'; $wb['datalog_status_d_server'] = 'Delete server'; $wb['datalog_status_i_cron'] = 'Create cron job'; $wb['datalog_status_u_cron'] = 'Update cron job'; +$wb['datalog_status_i_server_ip'] = 'Add server IP'; +$wb['datalog_status_u_server_ip'] = 'Update server IP'; +$wb['datalog_status_d_server_ip'] = 'Delete server IP'; $wb['datalog_status_d_cron'] = 'Delete cron job'; $wb['datalog_status_i_mail_get'] = 'Create mail fetcher account'; $wb['datalog_status_u_mail_get'] = 'Update mail fetcher account'; diff --git a/interface/lib/lang/ru.lng b/interface/lib/lang/ru.lng index f886c4168a..2d18c9f628 100644 --- a/interface/lib/lang/ru.lng +++ b/interface/lib/lang/ru.lng @@ -119,6 +119,9 @@ $wb['datalog_status_u_server'] = 'Update server settings'; $wb['datalog_status_d_server'] = 'Delete server'; $wb['datalog_status_i_cron'] = 'Создать задание Пданировщика задач'; $wb['datalog_status_u_cron'] = 'Обновить задание Пданировщика задач'; +$wb['datalog_status_i_server_ip'] = 'Add server IP'; +$wb['datalog_status_u_server_ip'] = 'Update server IP'; +$wb['datalog_status_d_server_ip'] = 'Delete server IP'; $wb['datalog_status_d_cron'] = 'Удалить задание Пданировщика задач'; $wb['datalog_status_i_mail_get'] = 'Создать аккаунт сборщика почты'; $wb['datalog_status_u_mail_get'] = 'Обновить аккаунт сборщика почты'; diff --git a/interface/lib/lang/se.lng b/interface/lib/lang/se.lng index d134ce898b..5e8b3c7123 100644 --- a/interface/lib/lang/se.lng +++ b/interface/lib/lang/se.lng @@ -119,6 +119,9 @@ $wb['datalog_status_u_server'] = 'Update server settings'; $wb['datalog_status_d_server'] = 'Delete server'; $wb['datalog_status_i_cron'] = 'Skapa cron-jobb'; $wb['datalog_status_u_cron'] = 'Uppdatera cron-jobb'; +$wb['datalog_status_i_server_ip'] = 'Add server IP'; +$wb['datalog_status_u_server_ip'] = 'Update server IP'; +$wb['datalog_status_d_server_ip'] = 'Delete server IP'; $wb['datalog_status_d_cron'] = 'Radera cron-jobb'; $wb['datalog_status_i_mail_get'] = 'Skapa eposthämtarkonto'; $wb['datalog_status_u_mail_get'] = 'Uppdatera eposthämtarkonto'; diff --git a/interface/lib/lang/sk.lng b/interface/lib/lang/sk.lng index 232a383d97..cab3ea1f8f 100644 --- a/interface/lib/lang/sk.lng +++ b/interface/lib/lang/sk.lng @@ -119,6 +119,9 @@ $wb['datalog_status_u_server'] = 'Update server settings'; $wb['datalog_status_d_server'] = 'Delete server'; $wb['datalog_status_i_cron'] = 'Create cron job'; $wb['datalog_status_u_cron'] = 'Update cron job'; +$wb['datalog_status_i_server_ip'] = 'Add server IP'; +$wb['datalog_status_u_server_ip'] = 'Update server IP'; +$wb['datalog_status_d_server_ip'] = 'Delete server IP'; $wb['datalog_status_d_cron'] = 'Delete cron job'; $wb['datalog_status_i_mail_get'] = 'Create mail fetcher account'; $wb['datalog_status_u_mail_get'] = 'Update mail fetcher account'; diff --git a/interface/lib/lang/tr.lng b/interface/lib/lang/tr.lng index c87cb26af6..041c8d7103 100644 --- a/interface/lib/lang/tr.lng +++ b/interface/lib/lang/tr.lng @@ -123,6 +123,9 @@ $wb['datalog_status_u_server'] = 'Update server settings'; $wb['datalog_status_d_server'] = 'Delete server'; $wb['datalog_status_i_cron'] = 'Zamanlanmış Görev Ekle'; $wb['datalog_status_u_cron'] = 'Zamanlanmış Görevi Güncelle'; +$wb['datalog_status_i_server_ip'] = 'Add server IP'; +$wb['datalog_status_u_server_ip'] = 'Update server IP'; +$wb['datalog_status_d_server_ip'] = 'Delete server IP'; $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'; -- GitLab From e0d7bcfc2b98a4a5049a802658e4ce1c4f789ce0 Mon Sep 17 00:00:00 2001 From: Jesse Norell Date: Fri, 16 Oct 2020 15:18:15 -0600 Subject: [PATCH 033/300] exclude web_folder of subdomain/aliasdomain in jailkit cleanup --- .../cron.d/600-jailkit_maintenance.inc.php | 18 +++++-- server/lib/classes/system.inc.php | 47 +++++++++++++------ .../plugins-available/apache2_plugin.inc.php | 20 +++++++- .../cron_jailkit_plugin.inc.php | 13 ++++- server/plugins-available/nginx_plugin.inc.php | 20 +++++++- .../shelluser_jailkit_plugin.inc.php | 15 +++++- 6 files changed, 106 insertions(+), 27 deletions(-) diff --git a/server/lib/classes/cron.d/600-jailkit_maintenance.inc.php b/server/lib/classes/cron.d/600-jailkit_maintenance.inc.php index 3ddea13e99..9916b72e57 100644 --- a/server/lib/classes/cron.d/600-jailkit_maintenance.inc.php +++ b/server/lib/classes/cron.d/600-jailkit_maintenance.inc.php @@ -58,12 +58,12 @@ class cronjob_jailkit_maintenance extends cronjob { $jailkit_config = $app->getconf->get_server_config($conf['server_id'], 'jailkit'); if (isset($this->jailkit_config) && isset($this->jailkit_config['jailkit_hardlinks'])) { if ($this->jailkit_config['jailkit_hardlinks'] == 'yes') { - $update_options = array('hardlink'); + $options = array('hardlink'); } elseif ($this->jailkit_config['jailkit_hardlinks'] == 'no') { - $update_options = array(); + $options = array(); } } else { - $update_options = array('allow_hardlink'); + $options = array('allow_hardlink'); } // limit the number of jails we update at one time according to time of day @@ -86,6 +86,14 @@ class cronjob_jailkit_maintenance extends cronjob { // check for any cron job using this jail $cron_inuse = $app->db->queryOneRecord('SELECT id FROM `cron` WHERE `parent_domain_id` = ? AND `type` = ? AND `server_id` = ?', $rec['domain_id'], 'chrooted', $conf['server_id']); + $records2 = $app->db->queryAllRecords('SELECT web_folder FROM `web_domain` WHERE `parent_domain_id` = ? AND `document_root` = ? AND web_folder != \'\' AND web_folder IS NOT NULL AND `server_id` = ?', $rec['domain_id'], $rec['document_root'], $conf['server_id']); + foreach ($records2 as $record2) { + if ($record2['web_folder'] == NULL || $record2['web_folder'] == '') { + continue; + } + $options[] = 'skip='.$record2['web_folder']; + } + if ($shell_user_inuse || $cron_inuse || $rec['php_fpm_chroot'] == 'y' || $rec['delete_unused_jailkit'] != 'y') { $sections = $jailkit_config['jailkit_chroot_app_sections']; if (isset($rec['jailkit_chroot_app_sections']) && $rec['jailkit_chroot_app_sections'] != '') { @@ -104,7 +112,7 @@ class cronjob_jailkit_maintenance extends cronjob { if ($update_hash != $rec['last_jailkit_hash']) { $app->system->web_folder_protection($rec['document_root'], false); - $app->system->update_jailkit_chroot($rec['document_root'], $sections, $programs, $update_options); + $app->system->update_jailkit_chroot($rec['document_root'], $sections, $programs, $options); $app->system->web_folder_protection($rec['document_root'], true); $app->db->query("UPDATE `web_domain` SET `last_jailkit_update` = NOW(), `last_jailkit_hash` = ? WHERE `document_root` = ?", $update_hash, $rec['document_root']); } else { @@ -114,7 +122,7 @@ class cronjob_jailkit_maintenance extends cronjob { //$app->log('Removing unused jail: '.$rec['document_root'], LOGLEVEL_DEBUG); print 'Removing unused jail: '.$rec['document_root']."\n"; $app->system->web_folder_protection($rec['document_root'], false); - $app->system->delete_jailkit_chroot($rec['document_root']); + $app->system->delete_jailkit_chroot($rec['document_root'], $options); $app->system->web_folder_protection($rec['document_root'], true); $app->db->query("UPDATE `web_domain` SET `last_jailkit_update` = NOW(), `last_jailkit_hash` = NULL WHERE `document_root` = ?", $rec['document_root']); diff --git a/server/lib/classes/system.inc.php b/server/lib/classes/system.inc.php index 45eb9d213f..8bfcf54bec 100644 --- a/server/lib/classes/system.inc.php +++ b/server/lib/classes/system.inc.php @@ -2485,9 +2485,23 @@ $app->log("update_jailkit_chroot called for $home_dir with options ".print_r($op return false; } + $jailkit_directories = array( + 'bin', + 'dev', + 'etc', + 'lib', + 'lib32', + 'lib64', + 'opt', + 'sys', + 'usr', + 'var', + ); + $opts = array(); $jk_update_args = ''; $jk_cp_args = ''; + $skips = ''; foreach ($options as $opt) { switch ($opt) { case '-k': @@ -2501,6 +2515,12 @@ $app->log("update_jailkit_chroot called for $home_dir with options ".print_r($op $opts[] = 'force'; $jk_cp_args .= ' -f'; break; + default: + if (preg_match('@^skip[ =]/?(.+)$@', $opt, $matches) ) { + $jailkit_directories = $app->functions->array_unset_by_value($jailkit_directories, $matches[1]); + $skips .= ' --skip=/'.escapeshellarg($matches[1]); + } + break; } } @@ -2508,20 +2528,6 @@ $app->log("update_jailkit_chroot called for $home_dir with options ".print_r($op $this->chown($home_dir, 'root'); $this->chgrp($home_dir, 'root'); - $jailkit_directories = array( - 'bin', - 'dev', - 'etc', - 'lib', - 'lib32', - 'lib64', - 'opt', - 'sys', - 'usr', - 'var', - ); - - $skips = ''; $multiple_links = array(); foreach ($jailkit_directories as $dir) { $root_dir = '/'.$dir; @@ -2693,9 +2699,10 @@ $app->log("update_jailkit_chroot: removing deprecated directory which jk_update return true; } - public function delete_jailkit_chroot($home_dir) { + public function delete_jailkit_chroot($home_dir, $options = array()) { global $app; +$app->log("delete_jailkit_chroot called for $home_dir with options ".print_r($options, true), LOGLEVEL_DEBUG); $app->uses('ini_parser'); // Disallow operating on root directory @@ -2723,6 +2730,16 @@ $app->log("update_jailkit_chroot: removing deprecated directory which jk_update 'run', # not used by jailkit, but added for cleanup ); + foreach ($options as $opt) { + switch ($opt) { + default: + if (preg_match('@^skip[ =]/?(.+)$@', $opt, $matches) ) { + $jailkit_directories = $app->functions->array_unset_by_value($jailkit_directories, $matches[1]); + } + break; + } + } + $removed = ''; foreach ($jailkit_directories as $dir) { $jail_dir = rtrim($home_dir, '/') . '/'.$dir; diff --git a/server/plugins-available/apache2_plugin.inc.php b/server/plugins-available/apache2_plugin.inc.php index 103cfef339..cc4bea9f60 100644 --- a/server/plugins-available/apache2_plugin.inc.php +++ b/server/plugins-available/apache2_plugin.inc.php @@ -831,6 +831,11 @@ class apache2_plugin { $programs = $jailkit_config['jailkit_chroot_app_programs'] . ' ' . $jailkit_config['jailkit_chroot_cron_programs']; + $records = $app->db->queryAllRecords('SELECT web_folder FROM `web_domain` WHERE `parent_domain_id` = ? AND `document_root` = ? AND web_folder != \'\' AND web_folder IS NOT NULL AND `server_id` = ?', $data['new']['domain_id'], $data['new']['document_root'], $conf['server_id']); + foreach ($records as $record) { + $options[] = 'skip='.$record['web_folder']; + } + // don't update if last_jailkit_hash is the same $tmp = $app->db->queryOneRecord('SELECT `last_jailkit_hash` FROM web_domain WHERE domain_id = ?', $data['new']['parent_domain_id']); if ($update_hash != $tmp['last_jailkit_hash']) { @@ -3683,7 +3688,7 @@ class apache2_plugin { function _setup_jailkit_chroot() { - global $app; + global $app, $conf; $app->uses('system'); @@ -3746,6 +3751,11 @@ class apache2_plugin { return; } + $records = $app->db->queryAllRecords('SELECT web_folder FROM `web_domain` WHERE `parent_domain_id` = ? AND `document_root` = ? AND web_folder != \'\' AND web_folder IS NOT NULL AND `server_id` = ?', $this->website['domain_id'], $this->website['document_root'], $conf['server_id']); + foreach ($records as $record) { + $options[] = 'skip='.$record['web_folder']; + } + $app->system->update_jailkit_chroot($this->website['document_root'], $sections, $programs, $options); } @@ -3824,7 +3834,13 @@ class apache2_plugin { return; } - $app->system->delete_jailkit_chroot($parent_domain['document_root']); + $options = array(); + $records = $app->db->queryAllRecords('SELECT web_folder FROM `web_domain` WHERE `parent_domain_id` = ? AND `document_root` = ? AND web_folder != \'\' AND web_folder IS NOT NULL AND `server_id` = ?', $parent_domain_id, $parent_domain['document_root'], $conf['server_id']); + foreach ($records as $record) { + $options[] = 'skip='.$record['web_folder']; + } + + $app->system->delete_jailkit_chroot($parent_domain['document_root'], $options); // this gets last_jailkit_update out of sync with master db, but that is ok, // as it is only used as a timestamp to moderate the frequency of updating on the slaves diff --git a/server/plugins-available/cron_jailkit_plugin.inc.php b/server/plugins-available/cron_jailkit_plugin.inc.php index deb6211f0e..a186a12886 100644 --- a/server/plugins-available/cron_jailkit_plugin.inc.php +++ b/server/plugins-available/cron_jailkit_plugin.inc.php @@ -296,6 +296,11 @@ class cron_jailkit_plugin { return; } + $records = $app->db->queryAllRecords('SELECT web_folder FROM `web_domain` WHERE `parent_domain_id` = ? AND `document_root` = ? AND web_folder != \'\' AND web_folder IS NOT NULL AND `server_id` = ?', $this->parent_domain['domain_id'], $this->parent_domain['document_root'], $conf['server_id']); + foreach ($records as $record) { + $options[] = 'skip='.$record['web_folder']; + } + $app->system->update_jailkit_chroot($this->parent_domain['document_root'], $sections, $programs, $options); } @@ -392,7 +397,13 @@ class cron_jailkit_plugin { return; } - $app->system->delete_jailkit_chroot($parent_domain['document_root']); + $options = array(); + $records = $app->db->queryAllRecords('SELECT web_folder FROM `web_domain` WHERE `parent_domain_id` = ? AND `document_root` = ? AND web_folder != \'\' AND web_folder IS NOT NULL AND `server_id` = ?', $parent_domain_id, $parent_domain['document_root'], $conf['server_id']); + foreach ($records as $record) { + $options[] = 'skip='.$record['web_folder']; + } + + $app->system->delete_jailkit_chroot($parent_domain['document_root'], $options); // this gets last_jailkit_update out of sync with master db, but that is ok, // as it is only used as a timestamp to moderate the frequency of updating on the slaves diff --git a/server/plugins-available/nginx_plugin.inc.php b/server/plugins-available/nginx_plugin.inc.php index c361d3f62f..3b82c111e2 100644 --- a/server/plugins-available/nginx_plugin.inc.php +++ b/server/plugins-available/nginx_plugin.inc.php @@ -669,6 +669,11 @@ class nginx_plugin { $programs = $jailkit_config['jailkit_chroot_app_programs'] . ' ' . $jailkit_config['jailkit_chroot_cron_programs']; + $records = $app->db->queryAllRecords('SELECT web_folder FROM `web_domain` WHERE `parent_domain_id` = ? AND `document_root` = ? AND web_folder != \'\' AND web_folder IS NOT NULL AND `server_id` = ?', $data['new']['domain_id'], $data['new']['document_root'], $conf['server_id']); + foreach ($records as $record) { + $options[] = 'skip='.$record['web_folder']; + } + // don't update if last_jailkit_hash is the same $tmp = $app->db->queryOneRecord('SELECT `last_jailkit_hash` FROM web_domain WHERE domain_id = ?', $data['new']['parent_domain_id']); if ($update_hash != $tmp['last_jailkit_hash']) { @@ -3450,7 +3455,7 @@ class nginx_plugin { function _setup_jailkit_chroot() { - global $app; + global $app, $conf; $app->uses('system'); @@ -3513,6 +3518,11 @@ class nginx_plugin { return; } + $records = $app->db->queryAllRecords('SELECT web_folder FROM `web_domain` WHERE `parent_domain_id` = ? AND `document_root` = ? AND web_folder != \'\' AND web_folder IS NOT NULL AND `server_id` = ?', $this->website['domain_id'], $this->website['document_root'], $conf['server_id']); + foreach ($records as $record) { + $options[] = 'skip='.$record['web_folder']; + } + $app->system->update_jailkit_chroot($this->website['document_root'], $sections, $programs, $options); } @@ -3590,7 +3600,13 @@ class nginx_plugin { return; } - $app->system->delete_jailkit_chroot($parent_domain['document_root']); + $options = array(); + $records = $app->db->queryAllRecords('SELECT web_folder FROM `web_domain` WHERE `parent_domain_id` = ? AND `document_root` = ? AND web_folder != \'\' AND web_folder IS NOT NULL AND `server_id` = ?', $parent_domain_id, $parent_domain['document_root'], $conf['server_id']); + foreach ($records as $record) { + $options[] = 'skip='.$record['web_folder']; + } + + $app->system->delete_jailkit_chroot($parent_domain['document_root'], $options); // this gets last_jailkit_update out of sync with master db, but that is ok, // as it is only used as a timestamp to moderate the frequency of updating on the slaves diff --git a/server/plugins-available/shelluser_jailkit_plugin.inc.php b/server/plugins-available/shelluser_jailkit_plugin.inc.php index 7c003e4468..3f8d94d2a7 100755 --- a/server/plugins-available/shelluser_jailkit_plugin.inc.php +++ b/server/plugins-available/shelluser_jailkit_plugin.inc.php @@ -286,7 +286,7 @@ class shelluser_jailkit_plugin { function _setup_jailkit_chroot() { - global $app; + global $app, $conf; if (isset($this->jailkit_config) && isset($this->jailkit_config['jailkit_hardlinks'])) { if ($this->jailkit_config['jailkit_hardlinks'] == 'yes') { @@ -356,6 +356,11 @@ class shelluser_jailkit_plugin { return; } + $records = $app->db->queryAllRecords('SELECT web_folder FROM `web_domain` WHERE `parent_domain_id` = ? AND `document_root` = ? AND web_folder != \'\' AND web_folder IS NOT NULL AND `server_id` = ?', $this->data['new']['parent_domain_id'], $this->data['new']['dir'], $conf['server_id']); + foreach ($records as $record) { + $options[] = 'skip='.$record['web_folder']; + } + $app->system->update_jailkit_chroot($this->data['new']['dir'], $sections, $programs, $options); } @@ -621,7 +626,13 @@ class shelluser_jailkit_plugin { return; } - $app->system->delete_jailkit_chroot($parent_domain['document_root']); + $options = array(); + $records = $app->db->queryAllRecords('SELECT web_folder FROM `web_domain` WHERE `parent_domain_id` = ? AND `document_root` = ? AND web_folder != \'\' AND web_folder IS NOT NULL AND `server_id` = ?', $parent_domain_id, $parent_domain['document_root'], $conf['server_id']); + foreach ($records as $record) { + $options[] = 'skip='.$record['web_folder']; + } + + $app->system->delete_jailkit_chroot($parent_domain['document_root'], $options); // this gets last_jailkit_update out of sync with master db, but that is ok, // as it is only used as a timestamp to moderate the frequency of updating on the slaves -- GitLab From a648820abb95875779a02363e4671a8ffb51dfa4 Mon Sep 17 00:00:00 2001 From: Jesse Norell Date: Fri, 16 Oct 2020 16:59:47 -0600 Subject: [PATCH 034/300] leading/trailing whitespace tries to add empty jailkit section/program --- server/lib/classes/system.inc.php | 6 ++++++ 1 file changed, 6 insertions(+) diff --git a/server/lib/classes/system.inc.php b/server/lib/classes/system.inc.php index 8bfcf54bec..697c925d18 100644 --- a/server/lib/classes/system.inc.php +++ b/server/lib/classes/system.inc.php @@ -2369,6 +2369,9 @@ class system{ # /etc/jailkit/jk_init.ini is the default path, probably not needed? $program_args .= ' -c /etc/jailkit/jk_init.ini -j ?'; foreach($app_sections as $app_section) { + if ($app_section == '') { + continue; + } # should check that section exists with jk_init --list ? $program_args .= ' ' . escapeshellarg($app_section); } @@ -2448,6 +2451,9 @@ class system{ $bad_paths = array(); foreach($programs as $prog) { + if ($prog == '') { + continue; + } foreach ($blacklisted_paths_regex as $re) { if (preg_match($re, $prog, $matches)) { $bad_paths[] = $matches[0]; -- GitLab From 4fcfc36c3e672194cf790a01cf0cd0f1fb6cd673 Mon Sep 17 00:00:00 2001 From: thom Date: Sun, 18 Oct 2020 20:45:29 +0200 Subject: [PATCH 035/300] Use version number for ISPConfig stylesheet (#5832) --- interface/web/themes/default/templates/main.tpl.htm | 2 +- interface/web/themes/default/templates/main_login.tpl.htm | 2 +- 2 files changed, 2 insertions(+), 2 deletions(-) diff --git a/interface/web/themes/default/templates/main.tpl.htm b/interface/web/themes/default/templates/main.tpl.htm index 39622548aa..421fcdedec 100644 --- a/interface/web/themes/default/templates/main.tpl.htm +++ b/interface/web/themes/default/templates/main.tpl.htm @@ -22,7 +22,7 @@ /assets/stylesheets/bootstrap.min.css' /> /assets/stylesheets/fonts.min.css' /> - /assets/stylesheets/ispconfig.css' /> + /assets/stylesheets/ispconfig.css?ver=3.2' /> /assets/stylesheets/pushy.min.css' /> /assets/stylesheets/bootstrap-datetimepicker.min.css' /> /assets/stylesheets/responsive.min.css' /> diff --git a/interface/web/themes/default/templates/main_login.tpl.htm b/interface/web/themes/default/templates/main_login.tpl.htm index c52e9071f2..12e67456cb 100644 --- a/interface/web/themes/default/templates/main_login.tpl.htm +++ b/interface/web/themes/default/templates/main_login.tpl.htm @@ -21,7 +21,7 @@ /assets/stylesheets/bootstrap.min.css' /> /assets/stylesheets/fonts.min.css' /> - /assets/stylesheets/ispconfig.css' /> + /assets/stylesheets/ispconfig.css?ver=3.2' /> /assets/stylesheets/pushy.min.css' /> /assets/stylesheets/bootstrap-datetimepicker.min.css' /> /assets/stylesheets/responsive.min.css' /> -- GitLab From bad60d94d123b973089cd54ac82dd63a457ef719 Mon Sep 17 00:00:00 2001 From: thom Date: Sun, 18 Oct 2020 20:54:03 +0200 Subject: [PATCH 036/300] Don't hide SSL options, only show info message (see discussion on !1240) --- interface/web/sites/lib/lang/ar_web_vhost_domain.lng | 2 +- interface/web/sites/lib/lang/bg_web_vhost_domain.lng | 2 +- interface/web/sites/lib/lang/br_web_vhost_domain.lng | 2 +- interface/web/sites/lib/lang/ca_web_vhost_domain.lng | 2 +- interface/web/sites/lib/lang/cz_web_vhost_domain.lng | 2 +- interface/web/sites/lib/lang/de_web_vhost_domain.lng | 2 +- interface/web/sites/lib/lang/dk_web_vhost_domain.lng | 2 +- interface/web/sites/lib/lang/el_web_vhost_domain.lng | 2 +- interface/web/sites/lib/lang/en_web_vhost_domain.lng | 2 +- interface/web/sites/lib/lang/es_web_vhost_domain.lng | 2 +- interface/web/sites/lib/lang/fi_web_vhost_domain.lng | 2 +- interface/web/sites/lib/lang/fr_web_vhost_domain.lng | 2 +- interface/web/sites/lib/lang/hr_web_vhost_domain.lng | 2 +- interface/web/sites/lib/lang/hu_web_vhost_domain.lng | 2 +- interface/web/sites/lib/lang/id_web_vhost_domain.lng | 2 +- interface/web/sites/lib/lang/it_web_vhost_domain.lng | 2 +- interface/web/sites/lib/lang/ja_web_vhost_domain.lng | 2 +- interface/web/sites/lib/lang/nl_web_vhost_domain.lng | 2 +- interface/web/sites/lib/lang/pl_web_vhost_domain.lng | 2 +- interface/web/sites/lib/lang/pt_web_vhost_domain.lng | 2 +- interface/web/sites/lib/lang/ro_web_vhost_domain.lng | 2 +- interface/web/sites/lib/lang/ru_web_vhost_domain.lng | 2 +- interface/web/sites/lib/lang/se_web_vhost_domain.lng | 2 +- interface/web/sites/lib/lang/sk_web_vhost_domain.lng | 2 +- interface/web/sites/lib/lang/tr_web_vhost_domain.lng | 2 +- .../web/sites/templates/web_vhost_domain_ssl.htm | 12 ++++++------ 26 files changed, 31 insertions(+), 31 deletions(-) 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 9e6ecf1031..5ca536673c 100644 --- a/interface/web/sites/lib/lang/ar_web_vhost_domain.lng +++ b/interface/web/sites/lib/lang/ar_web_vhost_domain.lng @@ -196,4 +196,4 @@ $wb['tooltip_jailkit_chroot_app_sections_txt'] = 'When empty, uses Jailkit chroo $wb['tooltip_jailkit_chroot_app_programs_txt'] = 'When empty, uses Jailkit chroot applications from Server Config'; $wb['delete_unused_jailkit_txt'] = 'Delete unused jailkit chroot'; $wb['tooltip_delete_unused_jailkit_txt'] = 'Delete the jailkit chroot environment when there are no shell users or cron jobs which require it.'; -$wb['ssl_options_hidden_txt'] = 'The SSL certificate options are hidden because Let\'s Encrypt is enabled.'; +$wb['ssl_options_not_for_le_txt'] = 'Let\'s Encrypt is enabled. These options are for non-Let\s Encrypt certificates.'; 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 1ec9cfc8da..4ae5a79c99 100644 --- a/interface/web/sites/lib/lang/bg_web_vhost_domain.lng +++ b/interface/web/sites/lib/lang/bg_web_vhost_domain.lng @@ -196,4 +196,4 @@ $wb['tooltip_jailkit_chroot_app_sections_txt'] = 'When empty, uses Jailkit chroo $wb['tooltip_jailkit_chroot_app_programs_txt'] = 'When empty, uses Jailkit chroot applications from Server Config'; $wb['delete_unused_jailkit_txt'] = 'Delete unused jailkit chroot'; $wb['tooltip_delete_unused_jailkit_txt'] = 'Delete the jailkit chroot environment when there are no shell users or cron jobs which require it.'; -$wb['ssl_options_hidden_txt'] = 'The SSL certificate options are hidden because Let\'s Encrypt is enabled.'; +$wb['ssl_options_not_for_le_txt'] = 'Let\'s Encrypt is enabled. These options are for non-Let\s Encrypt certificates.'; 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 aa51b046f7..1349a8aa8e 100644 --- a/interface/web/sites/lib/lang/br_web_vhost_domain.lng +++ b/interface/web/sites/lib/lang/br_web_vhost_domain.lng @@ -201,4 +201,4 @@ $wb['tooltip_jailkit_chroot_app_sections_txt'] = 'When empty, uses Jailkit chroo $wb['tooltip_jailkit_chroot_app_programs_txt'] = 'When empty, uses Jailkit chroot applications from Server Config'; $wb['delete_unused_jailkit_txt'] = 'Delete unused jailkit chroot'; $wb['tooltip_delete_unused_jailkit_txt'] = 'Delete the jailkit chroot environment when there are no shell users or cron jobs which require it.'; -$wb['ssl_options_hidden_txt'] = 'The SSL certificate options are hidden because Let\'s Encrypt is enabled.'; +$wb['ssl_options_not_for_le_txt'] = 'Let\'s Encrypt is enabled. These options are for non-Let\s Encrypt certificates.'; 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 e53dea6f5e..2a71efa5d7 100644 --- a/interface/web/sites/lib/lang/ca_web_vhost_domain.lng +++ b/interface/web/sites/lib/lang/ca_web_vhost_domain.lng @@ -196,4 +196,4 @@ $wb['tooltip_jailkit_chroot_app_sections_txt'] = 'When empty, uses Jailkit chroo $wb['tooltip_jailkit_chroot_app_programs_txt'] = 'When empty, uses Jailkit chroot applications from Server Config'; $wb['delete_unused_jailkit_txt'] = 'Delete unused jailkit chroot'; $wb['tooltip_delete_unused_jailkit_txt'] = 'Delete the jailkit chroot environment when there are no shell users or cron jobs which require it.'; -$wb['ssl_options_hidden_txt'] = 'The SSL certificate options are hidden because Let\'s Encrypt is enabled.'; +$wb['ssl_options_not_for_le_txt'] = 'Let\'s Encrypt is enabled. These options are for non-Let\s Encrypt certificates.'; 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 8f26a1f281..b110bcf0c9 100644 --- a/interface/web/sites/lib/lang/cz_web_vhost_domain.lng +++ b/interface/web/sites/lib/lang/cz_web_vhost_domain.lng @@ -196,4 +196,4 @@ $wb['tooltip_jailkit_chroot_app_sections_txt'] = 'When empty, uses Jailkit chroo $wb['tooltip_jailkit_chroot_app_programs_txt'] = 'When empty, uses Jailkit chroot applications from Server Config'; $wb['delete_unused_jailkit_txt'] = 'Delete unused jailkit chroot'; $wb['tooltip_delete_unused_jailkit_txt'] = 'Delete the jailkit chroot environment when there are no shell users or cron jobs which require it.'; -$wb['ssl_options_hidden_txt'] = 'The SSL certificate options are hidden because Let\'s Encrypt is enabled.'; +$wb['ssl_options_not_for_le_txt'] = 'Let\'s Encrypt is enabled. These options are for non-Let\s Encrypt certificates.'; 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 96a9cd2ab4..eb33549a1e 100644 --- a/interface/web/sites/lib/lang/de_web_vhost_domain.lng +++ b/interface/web/sites/lib/lang/de_web_vhost_domain.lng @@ -196,4 +196,4 @@ $wb['tooltip_jailkit_chroot_app_sections_txt'] = 'When empty, uses Jailkit chroo $wb['tooltip_jailkit_chroot_app_programs_txt'] = 'When empty, uses Jailkit chroot applications from Server Config'; $wb['delete_unused_jailkit_txt'] = 'Delete unused jailkit chroot'; $wb['tooltip_delete_unused_jailkit_txt'] = 'Delete the jailkit chroot environment when there are no shell users or cron jobs which require it.'; -$wb['ssl_options_hidden_txt'] = 'The SSL certificate options are hidden because Let\'s Encrypt is enabled.'; +$wb['ssl_options_not_for_le_txt'] = 'Let\'s Encrypt is enabled. These options are for non-Let\s Encrypt certificates.'; 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 85eba59b87..4c60f19c5f 100644 --- a/interface/web/sites/lib/lang/dk_web_vhost_domain.lng +++ b/interface/web/sites/lib/lang/dk_web_vhost_domain.lng @@ -196,4 +196,4 @@ $wb['tooltip_jailkit_chroot_app_sections_txt'] = 'When empty, uses Jailkit chroo $wb['tooltip_jailkit_chroot_app_programs_txt'] = 'When empty, uses Jailkit chroot applications from Server Config'; $wb['delete_unused_jailkit_txt'] = 'Delete unused jailkit chroot'; $wb['tooltip_delete_unused_jailkit_txt'] = 'Delete the jailkit chroot environment when there are no shell users or cron jobs which require it.'; -$wb['ssl_options_hidden_txt'] = 'The SSL certificate options are hidden because Let\'s Encrypt is enabled.'; +$wb['ssl_options_not_for_le_txt'] = 'Let\'s Encrypt is enabled. These options are for non-Let\s Encrypt certificates.'; 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 5fb605f665..a0f50eb4ca 100644 --- a/interface/web/sites/lib/lang/el_web_vhost_domain.lng +++ b/interface/web/sites/lib/lang/el_web_vhost_domain.lng @@ -196,4 +196,4 @@ $wb['tooltip_jailkit_chroot_app_sections_txt'] = 'When empty, uses Jailkit chroo $wb['tooltip_jailkit_chroot_app_programs_txt'] = 'When empty, uses Jailkit chroot applications from Server Config'; $wb['delete_unused_jailkit_txt'] = 'Delete unused jailkit chroot'; $wb['tooltip_delete_unused_jailkit_txt'] = 'Delete the jailkit chroot environment when there are no shell users or cron jobs which require it.'; -$wb['ssl_options_hidden_txt'] = 'The SSL certificate options are hidden because Let\'s Encrypt is enabled.'; +$wb['ssl_options_not_for_le_txt'] = 'Let\'s Encrypt is enabled. These options are for non-Let\s Encrypt certificates.'; 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 64dc34eb2f..f6946835e1 100644 --- a/interface/web/sites/lib/lang/en_web_vhost_domain.lng +++ b/interface/web/sites/lib/lang/en_web_vhost_domain.lng @@ -201,4 +201,4 @@ $wb['tooltip_jailkit_chroot_app_sections_txt'] = 'When empty, uses Jailkit chroo $wb['tooltip_jailkit_chroot_app_programs_txt'] = 'When empty, uses Jailkit chroot applications from Server Config'; $wb['delete_unused_jailkit_txt'] = 'Delete unused jailkit chroot'; $wb['tooltip_delete_unused_jailkit_txt'] = 'Delete the jailkit chroot environment when there are no shell users or cron jobs which require it.'; -$wb['ssl_options_hidden_txt'] = 'The SSL certificate options are hidden because Let\'s Encrypt is enabled.'; +$wb['ssl_options_not_for_le_txt'] = 'Let\'s Encrypt is enabled. These options are for non-Let\s Encrypt certificates.'; 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 01657cfc76..a4acf72e9c 100644 --- a/interface/web/sites/lib/lang/es_web_vhost_domain.lng +++ b/interface/web/sites/lib/lang/es_web_vhost_domain.lng @@ -196,4 +196,4 @@ $wb['tooltip_jailkit_chroot_app_sections_txt'] = 'When empty, uses Jailkit chroo $wb['tooltip_jailkit_chroot_app_programs_txt'] = 'When empty, uses Jailkit chroot applications from Server Config'; $wb['delete_unused_jailkit_txt'] = 'Delete unused jailkit chroot'; $wb['tooltip_delete_unused_jailkit_txt'] = 'Delete the jailkit chroot environment when there are no shell users or cron jobs which require it.'; -$wb['ssl_options_hidden_txt'] = 'The SSL certificate options are hidden because Let\'s Encrypt is enabled.'; +$wb['ssl_options_not_for_le_txt'] = 'Let\'s Encrypt is enabled. These options are for non-Let\s Encrypt certificates.'; 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 28febb070f..977df8656e 100644 --- a/interface/web/sites/lib/lang/fi_web_vhost_domain.lng +++ b/interface/web/sites/lib/lang/fi_web_vhost_domain.lng @@ -196,4 +196,4 @@ $wb['tooltip_jailkit_chroot_app_sections_txt'] = 'When empty, uses Jailkit chroo $wb['tooltip_jailkit_chroot_app_programs_txt'] = 'When empty, uses Jailkit chroot applications from Server Config'; $wb['delete_unused_jailkit_txt'] = 'Delete unused jailkit chroot'; $wb['tooltip_delete_unused_jailkit_txt'] = 'Delete the jailkit chroot environment when there are no shell users or cron jobs which require it.'; -$wb['ssl_options_hidden_txt'] = 'The SSL certificate options are hidden because Let\'s Encrypt is enabled.'; +$wb['ssl_options_not_for_le_txt'] = 'Let\'s Encrypt is enabled. These options are for non-Let\s Encrypt certificates.'; 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 fbd25b6b62..c32ac2d5b4 100644 --- a/interface/web/sites/lib/lang/fr_web_vhost_domain.lng +++ b/interface/web/sites/lib/lang/fr_web_vhost_domain.lng @@ -196,4 +196,4 @@ $wb['tooltip_jailkit_chroot_app_sections_txt'] = 'When empty, uses Jailkit chroo $wb['tooltip_jailkit_chroot_app_programs_txt'] = 'When empty, uses Jailkit chroot applications from Server Config'; $wb['delete_unused_jailkit_txt'] = 'Delete unused jailkit chroot'; $wb['tooltip_delete_unused_jailkit_txt'] = 'Delete the jailkit chroot environment when there are no shell users or cron jobs which require it.'; -$wb['ssl_options_hidden_txt'] = 'The SSL certificate options are hidden because Let\'s Encrypt is enabled.'; +$wb['ssl_options_not_for_le_txt'] = 'Let\'s Encrypt is enabled. These options are for non-Let\s Encrypt certificates.'; 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 82d3fe44b5..a9b171cafa 100644 --- a/interface/web/sites/lib/lang/hr_web_vhost_domain.lng +++ b/interface/web/sites/lib/lang/hr_web_vhost_domain.lng @@ -196,4 +196,4 @@ $wb['tooltip_jailkit_chroot_app_sections_txt'] = 'When empty, uses Jailkit chroo $wb['tooltip_jailkit_chroot_app_programs_txt'] = 'When empty, uses Jailkit chroot applications from Server Config'; $wb['delete_unused_jailkit_txt'] = 'Delete unused jailkit chroot'; $wb['tooltip_delete_unused_jailkit_txt'] = 'Delete the jailkit chroot environment when there are no shell users or cron jobs which require it.'; -$wb['ssl_options_hidden_txt'] = 'The SSL certificate options are hidden because Let\'s Encrypt is enabled.'; +$wb['ssl_options_not_for_le_txt'] = 'Let\'s Encrypt is enabled. These options are for non-Let\s Encrypt certificates.'; 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 9026d7175f..2935fd493c 100644 --- a/interface/web/sites/lib/lang/hu_web_vhost_domain.lng +++ b/interface/web/sites/lib/lang/hu_web_vhost_domain.lng @@ -196,4 +196,4 @@ $wb['tooltip_jailkit_chroot_app_sections_txt'] = 'When empty, uses Jailkit chroo $wb['tooltip_jailkit_chroot_app_programs_txt'] = 'When empty, uses Jailkit chroot applications from Server Config'; $wb['delete_unused_jailkit_txt'] = 'Delete unused jailkit chroot'; $wb['tooltip_delete_unused_jailkit_txt'] = 'Delete the jailkit chroot environment when there are no shell users or cron jobs which require it.'; -$wb['ssl_options_hidden_txt'] = 'The SSL certificate options are hidden because Let\'s Encrypt is enabled.'; +$wb['ssl_options_not_for_le_txt'] = 'Let\'s Encrypt is enabled. These options are for non-Let\s Encrypt certificates.'; 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 da5a174bb1..6e691c5464 100644 --- a/interface/web/sites/lib/lang/id_web_vhost_domain.lng +++ b/interface/web/sites/lib/lang/id_web_vhost_domain.lng @@ -196,4 +196,4 @@ $wb['tooltip_jailkit_chroot_app_sections_txt'] = 'When empty, uses Jailkit chroo $wb['tooltip_jailkit_chroot_app_programs_txt'] = 'When empty, uses Jailkit chroot applications from Server Config'; $wb['delete_unused_jailkit_txt'] = 'Delete unused jailkit chroot'; $wb['tooltip_delete_unused_jailkit_txt'] = 'Delete the jailkit chroot environment when there are no shell users or cron jobs which require it.'; -$wb['ssl_options_hidden_txt'] = 'The SSL certificate options are hidden because Let\'s Encrypt is enabled.'; +$wb['ssl_options_not_for_le_txt'] = 'Let\'s Encrypt is enabled. These options are for non-Let\s Encrypt certificates.'; 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 ff34ccbd57..f8993ab528 100644 --- a/interface/web/sites/lib/lang/it_web_vhost_domain.lng +++ b/interface/web/sites/lib/lang/it_web_vhost_domain.lng @@ -196,4 +196,4 @@ $wb['tooltip_jailkit_chroot_app_sections_txt'] = 'When empty, uses Jailkit chroo $wb['tooltip_jailkit_chroot_app_programs_txt'] = 'When empty, uses Jailkit chroot applications from Server Config'; $wb['delete_unused_jailkit_txt'] = 'Delete unused jailkit chroot'; $wb['tooltip_delete_unused_jailkit_txt'] = 'Delete the jailkit chroot environment when there are no shell users or cron jobs which require it.'; -$wb['ssl_options_hidden_txt'] = 'The SSL certificate options are hidden because Let\'s Encrypt is enabled.'; +$wb['ssl_options_not_for_le_txt'] = 'Let\'s Encrypt is enabled. These options are for non-Let\s Encrypt certificates.'; 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 e10ad8825f..89a3112f3c 100644 --- a/interface/web/sites/lib/lang/ja_web_vhost_domain.lng +++ b/interface/web/sites/lib/lang/ja_web_vhost_domain.lng @@ -196,4 +196,4 @@ $wb['tooltip_jailkit_chroot_app_sections_txt'] = 'When empty, uses Jailkit chroo $wb['tooltip_jailkit_chroot_app_programs_txt'] = 'When empty, uses Jailkit chroot applications from Server Config'; $wb['delete_unused_jailkit_txt'] = 'Delete unused jailkit chroot'; $wb['tooltip_delete_unused_jailkit_txt'] = 'Delete the jailkit chroot environment when there are no shell users or cron jobs which require it.'; -$wb['ssl_options_hidden_txt'] = 'The SSL certificate options are hidden because Let\'s Encrypt is enabled.'; +$wb['ssl_options_not_for_le_txt'] = 'Let\'s Encrypt is enabled. These options are for non-Let\s Encrypt certificates.'; 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 d47674bc17..2a2f7d0995 100644 --- a/interface/web/sites/lib/lang/nl_web_vhost_domain.lng +++ b/interface/web/sites/lib/lang/nl_web_vhost_domain.lng @@ -196,4 +196,4 @@ $wb['tooltip_jailkit_chroot_app_sections_txt'] = 'When empty, uses Jailkit chroo $wb['tooltip_jailkit_chroot_app_programs_txt'] = 'When empty, uses Jailkit chroot applications from Server Config'; $wb['delete_unused_jailkit_txt'] = 'Delete unused jailkit chroot'; $wb['tooltip_delete_unused_jailkit_txt'] = 'Delete the jailkit chroot environment when there are no shell users or cron jobs which require it.'; -$wb['ssl_options_hidden_txt'] = 'The SSL certificate options are hidden because Let\'s Encrypt is enabled.'; +$wb['ssl_options_not_for_le_txt'] = 'Let\'s Encrypt is enabled. These options are for non-Let\s Encrypt certificates.'; 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 f43bef55b5..8e9c8377b4 100644 --- a/interface/web/sites/lib/lang/pl_web_vhost_domain.lng +++ b/interface/web/sites/lib/lang/pl_web_vhost_domain.lng @@ -196,4 +196,4 @@ $wb['tooltip_jailkit_chroot_app_sections_txt'] = 'When empty, uses Jailkit chroo $wb['tooltip_jailkit_chroot_app_programs_txt'] = 'When empty, uses Jailkit chroot applications from Server Config'; $wb['delete_unused_jailkit_txt'] = 'Delete unused jailkit chroot'; $wb['tooltip_delete_unused_jailkit_txt'] = 'Delete the jailkit chroot environment when there are no shell users or cron jobs which require it.'; -$wb['ssl_options_hidden_txt'] = 'The SSL certificate options are hidden because Let\'s Encrypt is enabled.'; +$wb['ssl_options_not_for_le_txt'] = 'Let\'s Encrypt is enabled. These options are for non-Let\s Encrypt certificates.'; 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 2bd6ed1b94..71caace22a 100644 --- a/interface/web/sites/lib/lang/pt_web_vhost_domain.lng +++ b/interface/web/sites/lib/lang/pt_web_vhost_domain.lng @@ -196,4 +196,4 @@ $wb['tooltip_jailkit_chroot_app_sections_txt'] = 'When empty, uses Jailkit chroo $wb['tooltip_jailkit_chroot_app_programs_txt'] = 'When empty, uses Jailkit chroot applications from Server Config'; $wb['delete_unused_jailkit_txt'] = 'Delete unused jailkit chroot'; $wb['tooltip_delete_unused_jailkit_txt'] = 'Delete the jailkit chroot environment when there are no shell users or cron jobs which require it.'; -$wb['ssl_options_hidden_txt'] = 'The SSL certificate options are hidden because Let\'s Encrypt is enabled.'; +$wb['ssl_options_not_for_le_txt'] = 'Let\'s Encrypt is enabled. These options are for non-Let\s Encrypt certificates.'; 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 76818f7078..e708c07f34 100644 --- a/interface/web/sites/lib/lang/ro_web_vhost_domain.lng +++ b/interface/web/sites/lib/lang/ro_web_vhost_domain.lng @@ -196,4 +196,4 @@ $wb['tooltip_jailkit_chroot_app_sections_txt'] = 'When empty, uses Jailkit chroo $wb['tooltip_jailkit_chroot_app_programs_txt'] = 'When empty, uses Jailkit chroot applications from Server Config'; $wb['delete_unused_jailkit_txt'] = 'Delete unused jailkit chroot'; $wb['tooltip_delete_unused_jailkit_txt'] = 'Delete the jailkit chroot environment when there are no shell users or cron jobs which require it.'; -$wb['ssl_options_hidden_txt'] = 'The SSL certificate options are hidden because Let\'s Encrypt is enabled.'; +$wb['ssl_options_not_for_le_txt'] = 'Let\'s Encrypt is enabled. These options are for non-Let\s Encrypt certificates.'; 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 668813cc2b..9ef7d45b6b 100644 --- a/interface/web/sites/lib/lang/ru_web_vhost_domain.lng +++ b/interface/web/sites/lib/lang/ru_web_vhost_domain.lng @@ -196,4 +196,4 @@ $wb['tooltip_jailkit_chroot_app_sections_txt'] = 'When empty, uses Jailkit chroo $wb['tooltip_jailkit_chroot_app_programs_txt'] = 'When empty, uses Jailkit chroot applications from Server Config'; $wb['delete_unused_jailkit_txt'] = 'Delete unused jailkit chroot'; $wb['tooltip_delete_unused_jailkit_txt'] = 'Delete the jailkit chroot environment when there are no shell users or cron jobs which require it.'; -$wb['ssl_options_hidden_txt'] = 'The SSL certificate options are hidden because Let\'s Encrypt is enabled.'; +$wb['ssl_options_not_for_le_txt'] = 'Let\'s Encrypt is enabled. These options are for non-Let\s Encrypt certificates.'; 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 8ce4c56516..bd574bf937 100644 --- a/interface/web/sites/lib/lang/se_web_vhost_domain.lng +++ b/interface/web/sites/lib/lang/se_web_vhost_domain.lng @@ -196,4 +196,4 @@ $wb['tooltip_jailkit_chroot_app_sections_txt'] = 'When empty, uses Jailkit chroo $wb['tooltip_jailkit_chroot_app_programs_txt'] = 'When empty, uses Jailkit chroot applications from Server Config'; $wb['delete_unused_jailkit_txt'] = 'Delete unused jailkit chroot'; $wb['tooltip_delete_unused_jailkit_txt'] = 'Delete the jailkit chroot environment when there are no shell users or cron jobs which require it.'; -$wb['ssl_options_hidden_txt'] = 'The SSL certificate options are hidden because Let\'s Encrypt is enabled.'; +$wb['ssl_options_not_for_le_txt'] = 'Let\'s Encrypt is enabled. These options are for non-Let\s Encrypt certificates.'; 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 93736fd80b..d0ee49489c 100644 --- a/interface/web/sites/lib/lang/sk_web_vhost_domain.lng +++ b/interface/web/sites/lib/lang/sk_web_vhost_domain.lng @@ -196,4 +196,4 @@ $wb['tooltip_jailkit_chroot_app_sections_txt'] = 'When empty, uses Jailkit chroo $wb['tooltip_jailkit_chroot_app_programs_txt'] = 'When empty, uses Jailkit chroot applications from Server Config'; $wb['delete_unused_jailkit_txt'] = 'Delete unused jailkit chroot'; $wb['tooltip_delete_unused_jailkit_txt'] = 'Delete the jailkit chroot environment when there are no shell users or cron jobs which require it.'; -$wb['ssl_options_hidden_txt'] = 'The SSL certificate options are hidden because Let\'s Encrypt is enabled.'; +$wb['ssl_options_not_for_le_txt'] = 'Let\'s Encrypt is enabled. These options are for non-Let\s Encrypt certificates.'; 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 66c0c68757..4fd8c25485 100644 --- a/interface/web/sites/lib/lang/tr_web_vhost_domain.lng +++ b/interface/web/sites/lib/lang/tr_web_vhost_domain.lng @@ -198,4 +198,4 @@ $wb['tooltip_jailkit_chroot_app_sections_txt'] = 'When empty, uses Jailkit chroo $wb['tooltip_jailkit_chroot_app_programs_txt'] = 'When empty, uses Jailkit chroot applications from Server Config'; $wb['delete_unused_jailkit_txt'] = 'Delete unused jailkit chroot'; $wb['tooltip_delete_unused_jailkit_txt'] = 'Delete the jailkit chroot environment when there are no shell users or cron jobs which require it.'; -$wb['ssl_options_hidden_txt'] = 'The SSL certificate options are hidden because Let\'s Encrypt is enabled.'; +$wb['ssl_options_not_for_le_txt'] = 'Let\'s Encrypt is enabled. These options are for non-Let\s Encrypt certificates.'; diff --git a/interface/web/sites/templates/web_vhost_domain_ssl.htm b/interface/web/sites/templates/web_vhost_domain_ssl.htm index 736f5ca5ca..882040abaa 100644 --- a/interface/web/sites/templates/web_vhost_domain_ssl.htm +++ b/interface/web/sites/templates/web_vhost_domain_ssl.htm @@ -10,7 +10,12 @@
- + +
+ {tmpl_var name='ssl_options_not_for_le_txt'} +
+
+ - -
- {tmpl_var name='ssl_options_hidden_txt'} -
-
-- GitLab From f318b9b4155dc916cd59658c043eec4f059227e4 Mon Sep 17 00:00:00 2001 From: thom Date: Sun, 18 Oct 2020 21:07:18 +0200 Subject: [PATCH 037/300] Make help messages menu hideable (#5829) --- install/tpl/system.ini.master | 3 +++ interface/web/help/lib/module.conf.php | 23 +++++++++++++---------- 2 files changed, 16 insertions(+), 10 deletions(-) diff --git a/install/tpl/system.ini.master b/install/tpl/system.ini.master index c42966a01c..a08796ce5a 100644 --- a/install/tpl/system.ini.master +++ b/install/tpl/system.ini.master @@ -4,6 +4,9 @@ [client] +[help] +show_support_messages=n + [dns] [mail] diff --git a/interface/web/help/lib/module.conf.php b/interface/web/help/lib/module.conf.php index bee099d1ba..bc78cf6dde 100644 --- a/interface/web/help/lib/module.conf.php +++ b/interface/web/help/lib/module.conf.php @@ -25,27 +25,30 @@ $module['tab_width'] = ''; //*** Menu Definition ***************************************** +// read web config +$app->uses('getconf'); +$global_config = $app->getconf->get_global_config('help'); +if($global_config['show_support_messages'] == 'y') { + //* make sure that the items array is empty + $items = array(); -//* make sure that the items array is empty -$items = array(); - -//* Add a menu item with the label 'Send message' -$items[] = array( 'title' => 'Send message', + //* Add a menu item with the label 'Send message' + $items[] = array( 'title' => 'Send message', 'target' => 'content', 'link' => 'help/support_message_edit.php', 'html_id' => 'help_message_send'); -//* Add a menu item with the label 'View messages' -$items[] = array( 'title' => 'View messages', + //* Add a menu item with the label 'View messages' + $items[] = array( 'title' => 'View messages', 'target' => 'content', 'link' => 'help/support_message_list.php', 'html_id' => 'help_message_list'); - -//* Add the menu items defined above to a menu section labeled 'Support' -$module['nav'][] = array( 'title' => 'Support', + //* Add the menu items defined above to a menu section labeled 'Support' + $module['nav'][] = array( 'title' => 'Support', 'open' => 1, 'items' => $items); +} //* the FAQ menu section $itemsfaq = array(); -- GitLab From a6d8ffd289d820cb80dc4c8e2d2e0d3e6364fa73 Mon Sep 17 00:00:00 2001 From: thom Date: Sun, 18 Oct 2020 21:55:30 +0200 Subject: [PATCH 038/300] Fix syntax error --- interface/web/help/lib/module.conf.php | 9 ++------- 1 file changed, 2 insertions(+), 7 deletions(-) diff --git a/interface/web/help/lib/module.conf.php b/interface/web/help/lib/module.conf.php index bc78cf6dde..7ef63baa03 100644 --- a/interface/web/help/lib/module.conf.php +++ b/interface/web/help/lib/module.conf.php @@ -65,8 +65,7 @@ if($_SESSION['s']['user']['typ'] == 'admin') { 'open' => 1, 'items' => $itemsfaq); } -else - { //* the user +else { //* the user $sql = "SELECT * FROM help_faq_sections"; $res = $app->db->queryAllRecords($sql); //* all the content sections @@ -80,7 +79,7 @@ else $module['nav'][] = array( 'title' => 'FAQ', 'open' => 1, 'items' => $itemsfaq); - } + } } //* -- end of the FAQ menu section @@ -101,9 +100,5 @@ if($_SESSION['s']['user']['typ'] == 'admin') { $module['nav'][] = array( 'title' => 'About ISPConfig', 'open' => 1, 'items' => $items); - } - - - ?> -- GitLab From b064dd93d04b95f338578991a0edd7b41e4ac3ac Mon Sep 17 00:00:00 2001 From: thom Date: Mon, 19 Oct 2020 10:17:38 +0200 Subject: [PATCH 039/300] Put more info into LE message (#5692) --- interface/web/sites/lib/lang/ar_web_vhost_domain.lng | 2 +- interface/web/sites/lib/lang/bg_web_vhost_domain.lng | 2 +- interface/web/sites/lib/lang/br_web_vhost_domain.lng | 2 +- interface/web/sites/lib/lang/ca_web_vhost_domain.lng | 2 +- interface/web/sites/lib/lang/cz_web_vhost_domain.lng | 2 +- interface/web/sites/lib/lang/de_web_vhost_domain.lng | 2 +- interface/web/sites/lib/lang/dk_web_vhost_domain.lng | 2 +- interface/web/sites/lib/lang/el_web_vhost_domain.lng | 2 +- interface/web/sites/lib/lang/en_web_vhost_domain.lng | 2 +- interface/web/sites/lib/lang/es_web_vhost_domain.lng | 2 +- interface/web/sites/lib/lang/fi_web_vhost_domain.lng | 2 +- interface/web/sites/lib/lang/fr_web_vhost_domain.lng | 2 +- interface/web/sites/lib/lang/hr_web_vhost_domain.lng | 2 +- interface/web/sites/lib/lang/hu_web_vhost_domain.lng | 2 +- interface/web/sites/lib/lang/id_web_vhost_domain.lng | 2 +- interface/web/sites/lib/lang/it_web_vhost_domain.lng | 2 +- interface/web/sites/lib/lang/ja_web_vhost_domain.lng | 2 +- interface/web/sites/lib/lang/nl_web_vhost_domain.lng | 2 +- interface/web/sites/lib/lang/pl_web_vhost_domain.lng | 2 +- interface/web/sites/lib/lang/pt_web_vhost_domain.lng | 2 +- interface/web/sites/lib/lang/ro_web_vhost_domain.lng | 2 +- interface/web/sites/lib/lang/ru_web_vhost_domain.lng | 2 +- interface/web/sites/lib/lang/se_web_vhost_domain.lng | 2 +- interface/web/sites/lib/lang/sk_web_vhost_domain.lng | 2 +- interface/web/sites/lib/lang/tr_web_vhost_domain.lng | 2 +- 25 files changed, 25 insertions(+), 25 deletions(-) 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 5ca536673c..d4ace1e034 100644 --- a/interface/web/sites/lib/lang/ar_web_vhost_domain.lng +++ b/interface/web/sites/lib/lang/ar_web_vhost_domain.lng @@ -196,4 +196,4 @@ $wb['tooltip_jailkit_chroot_app_sections_txt'] = 'When empty, uses Jailkit chroo $wb['tooltip_jailkit_chroot_app_programs_txt'] = 'When empty, uses Jailkit chroot applications from Server Config'; $wb['delete_unused_jailkit_txt'] = 'Delete unused jailkit chroot'; $wb['tooltip_delete_unused_jailkit_txt'] = 'Delete the jailkit chroot environment when there are no shell users or cron jobs which require it.'; -$wb['ssl_options_not_for_le_txt'] = 'Let\'s Encrypt is enabled. These options are for non-Let\s Encrypt certificates.'; +$wb['ssl_options_not_for_le_txt'] = 'You have Let\'s Encrypt certificates enabled for this website. Please be aware that all options on this page apply to non-Let\'s Encrypt certificates only. Remember to uncheck Let\'s Encrypt on the main tab if you want to switch to a different certificate.'; 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 4ae5a79c99..e6aeba5add 100644 --- a/interface/web/sites/lib/lang/bg_web_vhost_domain.lng +++ b/interface/web/sites/lib/lang/bg_web_vhost_domain.lng @@ -196,4 +196,4 @@ $wb['tooltip_jailkit_chroot_app_sections_txt'] = 'When empty, uses Jailkit chroo $wb['tooltip_jailkit_chroot_app_programs_txt'] = 'When empty, uses Jailkit chroot applications from Server Config'; $wb['delete_unused_jailkit_txt'] = 'Delete unused jailkit chroot'; $wb['tooltip_delete_unused_jailkit_txt'] = 'Delete the jailkit chroot environment when there are no shell users or cron jobs which require it.'; -$wb['ssl_options_not_for_le_txt'] = 'Let\'s Encrypt is enabled. These options are for non-Let\s Encrypt certificates.'; +$wb['ssl_options_not_for_le_txt'] = 'You have Let\'s Encrypt certificates enabled for this website. Please be aware that all options on this page apply to non-Let\'s Encrypt certificates only. Remember to uncheck Let\'s Encrypt on the main tab if you want to switch to a different certificate.'; 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 1349a8aa8e..924f64bd2a 100644 --- a/interface/web/sites/lib/lang/br_web_vhost_domain.lng +++ b/interface/web/sites/lib/lang/br_web_vhost_domain.lng @@ -201,4 +201,4 @@ $wb['tooltip_jailkit_chroot_app_sections_txt'] = 'When empty, uses Jailkit chroo $wb['tooltip_jailkit_chroot_app_programs_txt'] = 'When empty, uses Jailkit chroot applications from Server Config'; $wb['delete_unused_jailkit_txt'] = 'Delete unused jailkit chroot'; $wb['tooltip_delete_unused_jailkit_txt'] = 'Delete the jailkit chroot environment when there are no shell users or cron jobs which require it.'; -$wb['ssl_options_not_for_le_txt'] = 'Let\'s Encrypt is enabled. These options are for non-Let\s Encrypt certificates.'; +$wb['ssl_options_not_for_le_txt'] = 'You have Let\'s Encrypt certificates enabled for this website. Please be aware that all options on this page apply to non-Let\'s Encrypt certificates only. Remember to uncheck Let\'s Encrypt on the main tab if you want to switch to a different certificate.'; 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 2a71efa5d7..d779fb8245 100644 --- a/interface/web/sites/lib/lang/ca_web_vhost_domain.lng +++ b/interface/web/sites/lib/lang/ca_web_vhost_domain.lng @@ -196,4 +196,4 @@ $wb['tooltip_jailkit_chroot_app_sections_txt'] = 'When empty, uses Jailkit chroo $wb['tooltip_jailkit_chroot_app_programs_txt'] = 'When empty, uses Jailkit chroot applications from Server Config'; $wb['delete_unused_jailkit_txt'] = 'Delete unused jailkit chroot'; $wb['tooltip_delete_unused_jailkit_txt'] = 'Delete the jailkit chroot environment when there are no shell users or cron jobs which require it.'; -$wb['ssl_options_not_for_le_txt'] = 'Let\'s Encrypt is enabled. These options are for non-Let\s Encrypt certificates.'; +$wb['ssl_options_not_for_le_txt'] = 'You have Let\'s Encrypt certificates enabled for this website. Please be aware that all options on this page apply to non-Let\'s Encrypt certificates only. Remember to uncheck Let\'s Encrypt on the main tab if you want to switch to a different certificate.'; 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 b110bcf0c9..2ef9fab117 100644 --- a/interface/web/sites/lib/lang/cz_web_vhost_domain.lng +++ b/interface/web/sites/lib/lang/cz_web_vhost_domain.lng @@ -196,4 +196,4 @@ $wb['tooltip_jailkit_chroot_app_sections_txt'] = 'When empty, uses Jailkit chroo $wb['tooltip_jailkit_chroot_app_programs_txt'] = 'When empty, uses Jailkit chroot applications from Server Config'; $wb['delete_unused_jailkit_txt'] = 'Delete unused jailkit chroot'; $wb['tooltip_delete_unused_jailkit_txt'] = 'Delete the jailkit chroot environment when there are no shell users or cron jobs which require it.'; -$wb['ssl_options_not_for_le_txt'] = 'Let\'s Encrypt is enabled. These options are for non-Let\s Encrypt certificates.'; +$wb['ssl_options_not_for_le_txt'] = 'You have Let\'s Encrypt certificates enabled for this website. Please be aware that all options on this page apply to non-Let\'s Encrypt certificates only. Remember to uncheck Let\'s Encrypt on the main tab if you want to switch to a different certificate.'; 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 eb33549a1e..8f801b972e 100644 --- a/interface/web/sites/lib/lang/de_web_vhost_domain.lng +++ b/interface/web/sites/lib/lang/de_web_vhost_domain.lng @@ -196,4 +196,4 @@ $wb['tooltip_jailkit_chroot_app_sections_txt'] = 'When empty, uses Jailkit chroo $wb['tooltip_jailkit_chroot_app_programs_txt'] = 'When empty, uses Jailkit chroot applications from Server Config'; $wb['delete_unused_jailkit_txt'] = 'Delete unused jailkit chroot'; $wb['tooltip_delete_unused_jailkit_txt'] = 'Delete the jailkit chroot environment when there are no shell users or cron jobs which require it.'; -$wb['ssl_options_not_for_le_txt'] = 'Let\'s Encrypt is enabled. These options are for non-Let\s Encrypt certificates.'; +$wb['ssl_options_not_for_le_txt'] = 'You have Let\'s Encrypt certificates enabled for this website. Please be aware that all options on this page apply to non-Let\'s Encrypt certificates only. Remember to uncheck Let\'s Encrypt on the main tab if you want to switch to a different certificate.'; 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 4c60f19c5f..09a7f9171d 100644 --- a/interface/web/sites/lib/lang/dk_web_vhost_domain.lng +++ b/interface/web/sites/lib/lang/dk_web_vhost_domain.lng @@ -196,4 +196,4 @@ $wb['tooltip_jailkit_chroot_app_sections_txt'] = 'When empty, uses Jailkit chroo $wb['tooltip_jailkit_chroot_app_programs_txt'] = 'When empty, uses Jailkit chroot applications from Server Config'; $wb['delete_unused_jailkit_txt'] = 'Delete unused jailkit chroot'; $wb['tooltip_delete_unused_jailkit_txt'] = 'Delete the jailkit chroot environment when there are no shell users or cron jobs which require it.'; -$wb['ssl_options_not_for_le_txt'] = 'Let\'s Encrypt is enabled. These options are for non-Let\s Encrypt certificates.'; +$wb['ssl_options_not_for_le_txt'] = 'You have Let\'s Encrypt certificates enabled for this website. Please be aware that all options on this page apply to non-Let\'s Encrypt certificates only. Remember to uncheck Let\'s Encrypt on the main tab if you want to switch to a different certificate.'; 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 a0f50eb4ca..60ad0ec439 100644 --- a/interface/web/sites/lib/lang/el_web_vhost_domain.lng +++ b/interface/web/sites/lib/lang/el_web_vhost_domain.lng @@ -196,4 +196,4 @@ $wb['tooltip_jailkit_chroot_app_sections_txt'] = 'When empty, uses Jailkit chroo $wb['tooltip_jailkit_chroot_app_programs_txt'] = 'When empty, uses Jailkit chroot applications from Server Config'; $wb['delete_unused_jailkit_txt'] = 'Delete unused jailkit chroot'; $wb['tooltip_delete_unused_jailkit_txt'] = 'Delete the jailkit chroot environment when there are no shell users or cron jobs which require it.'; -$wb['ssl_options_not_for_le_txt'] = 'Let\'s Encrypt is enabled. These options are for non-Let\s Encrypt certificates.'; +$wb['ssl_options_not_for_le_txt'] = 'You have Let\'s Encrypt certificates enabled for this website. Please be aware that all options on this page apply to non-Let\'s Encrypt certificates only. Remember to uncheck Let\'s Encrypt on the main tab if you want to switch to a different certificate.'; 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 f6946835e1..5ef0174d67 100644 --- a/interface/web/sites/lib/lang/en_web_vhost_domain.lng +++ b/interface/web/sites/lib/lang/en_web_vhost_domain.lng @@ -201,4 +201,4 @@ $wb['tooltip_jailkit_chroot_app_sections_txt'] = 'When empty, uses Jailkit chroo $wb['tooltip_jailkit_chroot_app_programs_txt'] = 'When empty, uses Jailkit chroot applications from Server Config'; $wb['delete_unused_jailkit_txt'] = 'Delete unused jailkit chroot'; $wb['tooltip_delete_unused_jailkit_txt'] = 'Delete the jailkit chroot environment when there are no shell users or cron jobs which require it.'; -$wb['ssl_options_not_for_le_txt'] = 'Let\'s Encrypt is enabled. These options are for non-Let\s Encrypt certificates.'; +$wb['ssl_options_not_for_le_txt'] = 'You have Let\'s Encrypt certificates enabled for this website. Please be aware that all options on this page apply to non-Let\'s Encrypt certificates only. Remember to uncheck Let\'s Encrypt on the main tab if you want to switch to a different certificate.'; 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 a4acf72e9c..496cdb585f 100644 --- a/interface/web/sites/lib/lang/es_web_vhost_domain.lng +++ b/interface/web/sites/lib/lang/es_web_vhost_domain.lng @@ -196,4 +196,4 @@ $wb['tooltip_jailkit_chroot_app_sections_txt'] = 'When empty, uses Jailkit chroo $wb['tooltip_jailkit_chroot_app_programs_txt'] = 'When empty, uses Jailkit chroot applications from Server Config'; $wb['delete_unused_jailkit_txt'] = 'Delete unused jailkit chroot'; $wb['tooltip_delete_unused_jailkit_txt'] = 'Delete the jailkit chroot environment when there are no shell users or cron jobs which require it.'; -$wb['ssl_options_not_for_le_txt'] = 'Let\'s Encrypt is enabled. These options are for non-Let\s Encrypt certificates.'; +$wb['ssl_options_not_for_le_txt'] = 'You have Let\'s Encrypt certificates enabled for this website. Please be aware that all options on this page apply to non-Let\'s Encrypt certificates only. Remember to uncheck Let\'s Encrypt on the main tab if you want to switch to a different certificate.'; 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 977df8656e..8b11a51a2d 100644 --- a/interface/web/sites/lib/lang/fi_web_vhost_domain.lng +++ b/interface/web/sites/lib/lang/fi_web_vhost_domain.lng @@ -196,4 +196,4 @@ $wb['tooltip_jailkit_chroot_app_sections_txt'] = 'When empty, uses Jailkit chroo $wb['tooltip_jailkit_chroot_app_programs_txt'] = 'When empty, uses Jailkit chroot applications from Server Config'; $wb['delete_unused_jailkit_txt'] = 'Delete unused jailkit chroot'; $wb['tooltip_delete_unused_jailkit_txt'] = 'Delete the jailkit chroot environment when there are no shell users or cron jobs which require it.'; -$wb['ssl_options_not_for_le_txt'] = 'Let\'s Encrypt is enabled. These options are for non-Let\s Encrypt certificates.'; +$wb['ssl_options_not_for_le_txt'] = 'You have Let\'s Encrypt certificates enabled for this website. Please be aware that all options on this page apply to non-Let\'s Encrypt certificates only. Remember to uncheck Let\'s Encrypt on the main tab if you want to switch to a different certificate.'; 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 c32ac2d5b4..82445b491d 100644 --- a/interface/web/sites/lib/lang/fr_web_vhost_domain.lng +++ b/interface/web/sites/lib/lang/fr_web_vhost_domain.lng @@ -196,4 +196,4 @@ $wb['tooltip_jailkit_chroot_app_sections_txt'] = 'When empty, uses Jailkit chroo $wb['tooltip_jailkit_chroot_app_programs_txt'] = 'When empty, uses Jailkit chroot applications from Server Config'; $wb['delete_unused_jailkit_txt'] = 'Delete unused jailkit chroot'; $wb['tooltip_delete_unused_jailkit_txt'] = 'Delete the jailkit chroot environment when there are no shell users or cron jobs which require it.'; -$wb['ssl_options_not_for_le_txt'] = 'Let\'s Encrypt is enabled. These options are for non-Let\s Encrypt certificates.'; +$wb['ssl_options_not_for_le_txt'] = 'You have Let\'s Encrypt certificates enabled for this website. Please be aware that all options on this page apply to non-Let\'s Encrypt certificates only. Remember to uncheck Let\'s Encrypt on the main tab if you want to switch to a different certificate.'; 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 a9b171cafa..bec894db0d 100644 --- a/interface/web/sites/lib/lang/hr_web_vhost_domain.lng +++ b/interface/web/sites/lib/lang/hr_web_vhost_domain.lng @@ -196,4 +196,4 @@ $wb['tooltip_jailkit_chroot_app_sections_txt'] = 'When empty, uses Jailkit chroo $wb['tooltip_jailkit_chroot_app_programs_txt'] = 'When empty, uses Jailkit chroot applications from Server Config'; $wb['delete_unused_jailkit_txt'] = 'Delete unused jailkit chroot'; $wb['tooltip_delete_unused_jailkit_txt'] = 'Delete the jailkit chroot environment when there are no shell users or cron jobs which require it.'; -$wb['ssl_options_not_for_le_txt'] = 'Let\'s Encrypt is enabled. These options are for non-Let\s Encrypt certificates.'; +$wb['ssl_options_not_for_le_txt'] = 'You have Let\'s Encrypt certificates enabled for this website. Please be aware that all options on this page apply to non-Let\'s Encrypt certificates only. Remember to uncheck Let\'s Encrypt on the main tab if you want to switch to a different certificate.'; 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 2935fd493c..4346edfdb7 100644 --- a/interface/web/sites/lib/lang/hu_web_vhost_domain.lng +++ b/interface/web/sites/lib/lang/hu_web_vhost_domain.lng @@ -196,4 +196,4 @@ $wb['tooltip_jailkit_chroot_app_sections_txt'] = 'When empty, uses Jailkit chroo $wb['tooltip_jailkit_chroot_app_programs_txt'] = 'When empty, uses Jailkit chroot applications from Server Config'; $wb['delete_unused_jailkit_txt'] = 'Delete unused jailkit chroot'; $wb['tooltip_delete_unused_jailkit_txt'] = 'Delete the jailkit chroot environment when there are no shell users or cron jobs which require it.'; -$wb['ssl_options_not_for_le_txt'] = 'Let\'s Encrypt is enabled. These options are for non-Let\s Encrypt certificates.'; +$wb['ssl_options_not_for_le_txt'] = 'You have Let\'s Encrypt certificates enabled for this website. Please be aware that all options on this page apply to non-Let\'s Encrypt certificates only. Remember to uncheck Let\'s Encrypt on the main tab if you want to switch to a different certificate.'; 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 6e691c5464..e4dc666b77 100644 --- a/interface/web/sites/lib/lang/id_web_vhost_domain.lng +++ b/interface/web/sites/lib/lang/id_web_vhost_domain.lng @@ -196,4 +196,4 @@ $wb['tooltip_jailkit_chroot_app_sections_txt'] = 'When empty, uses Jailkit chroo $wb['tooltip_jailkit_chroot_app_programs_txt'] = 'When empty, uses Jailkit chroot applications from Server Config'; $wb['delete_unused_jailkit_txt'] = 'Delete unused jailkit chroot'; $wb['tooltip_delete_unused_jailkit_txt'] = 'Delete the jailkit chroot environment when there are no shell users or cron jobs which require it.'; -$wb['ssl_options_not_for_le_txt'] = 'Let\'s Encrypt is enabled. These options are for non-Let\s Encrypt certificates.'; +$wb['ssl_options_not_for_le_txt'] = 'You have Let\'s Encrypt certificates enabled for this website. Please be aware that all options on this page apply to non-Let\'s Encrypt certificates only. Remember to uncheck Let\'s Encrypt on the main tab if you want to switch to a different certificate.'; 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 f8993ab528..f563badf20 100644 --- a/interface/web/sites/lib/lang/it_web_vhost_domain.lng +++ b/interface/web/sites/lib/lang/it_web_vhost_domain.lng @@ -196,4 +196,4 @@ $wb['tooltip_jailkit_chroot_app_sections_txt'] = 'When empty, uses Jailkit chroo $wb['tooltip_jailkit_chroot_app_programs_txt'] = 'When empty, uses Jailkit chroot applications from Server Config'; $wb['delete_unused_jailkit_txt'] = 'Delete unused jailkit chroot'; $wb['tooltip_delete_unused_jailkit_txt'] = 'Delete the jailkit chroot environment when there are no shell users or cron jobs which require it.'; -$wb['ssl_options_not_for_le_txt'] = 'Let\'s Encrypt is enabled. These options are for non-Let\s Encrypt certificates.'; +$wb['ssl_options_not_for_le_txt'] = 'You have Let\'s Encrypt certificates enabled for this website. Please be aware that all options on this page apply to non-Let\'s Encrypt certificates only. Remember to uncheck Let\'s Encrypt on the main tab if you want to switch to a different certificate.'; 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 89a3112f3c..33d7c40d03 100644 --- a/interface/web/sites/lib/lang/ja_web_vhost_domain.lng +++ b/interface/web/sites/lib/lang/ja_web_vhost_domain.lng @@ -196,4 +196,4 @@ $wb['tooltip_jailkit_chroot_app_sections_txt'] = 'When empty, uses Jailkit chroo $wb['tooltip_jailkit_chroot_app_programs_txt'] = 'When empty, uses Jailkit chroot applications from Server Config'; $wb['delete_unused_jailkit_txt'] = 'Delete unused jailkit chroot'; $wb['tooltip_delete_unused_jailkit_txt'] = 'Delete the jailkit chroot environment when there are no shell users or cron jobs which require it.'; -$wb['ssl_options_not_for_le_txt'] = 'Let\'s Encrypt is enabled. These options are for non-Let\s Encrypt certificates.'; +$wb['ssl_options_not_for_le_txt'] = 'You have Let\'s Encrypt certificates enabled for this website. Please be aware that all options on this page apply to non-Let\'s Encrypt certificates only. Remember to uncheck Let\'s Encrypt on the main tab if you want to switch to a different certificate.'; 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 2a2f7d0995..3458deaf83 100644 --- a/interface/web/sites/lib/lang/nl_web_vhost_domain.lng +++ b/interface/web/sites/lib/lang/nl_web_vhost_domain.lng @@ -196,4 +196,4 @@ $wb['tooltip_jailkit_chroot_app_sections_txt'] = 'When empty, uses Jailkit chroo $wb['tooltip_jailkit_chroot_app_programs_txt'] = 'When empty, uses Jailkit chroot applications from Server Config'; $wb['delete_unused_jailkit_txt'] = 'Delete unused jailkit chroot'; $wb['tooltip_delete_unused_jailkit_txt'] = 'Delete the jailkit chroot environment when there are no shell users or cron jobs which require it.'; -$wb['ssl_options_not_for_le_txt'] = 'Let\'s Encrypt is enabled. These options are for non-Let\s Encrypt certificates.'; +$wb['ssl_options_not_for_le_txt'] = 'You have Let\'s Encrypt certificates enabled for this website. Please be aware that all options on this page apply to non-Let\'s Encrypt certificates only. Remember to uncheck Let\'s Encrypt on the main tab if you want to switch to a different certificate.'; 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 8e9c8377b4..1f3b969a41 100644 --- a/interface/web/sites/lib/lang/pl_web_vhost_domain.lng +++ b/interface/web/sites/lib/lang/pl_web_vhost_domain.lng @@ -196,4 +196,4 @@ $wb['tooltip_jailkit_chroot_app_sections_txt'] = 'When empty, uses Jailkit chroo $wb['tooltip_jailkit_chroot_app_programs_txt'] = 'When empty, uses Jailkit chroot applications from Server Config'; $wb['delete_unused_jailkit_txt'] = 'Delete unused jailkit chroot'; $wb['tooltip_delete_unused_jailkit_txt'] = 'Delete the jailkit chroot environment when there are no shell users or cron jobs which require it.'; -$wb['ssl_options_not_for_le_txt'] = 'Let\'s Encrypt is enabled. These options are for non-Let\s Encrypt certificates.'; +$wb['ssl_options_not_for_le_txt'] = 'You have Let\'s Encrypt certificates enabled for this website. Please be aware that all options on this page apply to non-Let\'s Encrypt certificates only. Remember to uncheck Let\'s Encrypt on the main tab if you want to switch to a different certificate.'; 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 71caace22a..72168a5ffc 100644 --- a/interface/web/sites/lib/lang/pt_web_vhost_domain.lng +++ b/interface/web/sites/lib/lang/pt_web_vhost_domain.lng @@ -196,4 +196,4 @@ $wb['tooltip_jailkit_chroot_app_sections_txt'] = 'When empty, uses Jailkit chroo $wb['tooltip_jailkit_chroot_app_programs_txt'] = 'When empty, uses Jailkit chroot applications from Server Config'; $wb['delete_unused_jailkit_txt'] = 'Delete unused jailkit chroot'; $wb['tooltip_delete_unused_jailkit_txt'] = 'Delete the jailkit chroot environment when there are no shell users or cron jobs which require it.'; -$wb['ssl_options_not_for_le_txt'] = 'Let\'s Encrypt is enabled. These options are for non-Let\s Encrypt certificates.'; +$wb['ssl_options_not_for_le_txt'] = 'You have Let\'s Encrypt certificates enabled for this website. Please be aware that all options on this page apply to non-Let\'s Encrypt certificates only. Remember to uncheck Let\'s Encrypt on the main tab if you want to switch to a different certificate.'; 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 e708c07f34..032294872c 100644 --- a/interface/web/sites/lib/lang/ro_web_vhost_domain.lng +++ b/interface/web/sites/lib/lang/ro_web_vhost_domain.lng @@ -196,4 +196,4 @@ $wb['tooltip_jailkit_chroot_app_sections_txt'] = 'When empty, uses Jailkit chroo $wb['tooltip_jailkit_chroot_app_programs_txt'] = 'When empty, uses Jailkit chroot applications from Server Config'; $wb['delete_unused_jailkit_txt'] = 'Delete unused jailkit chroot'; $wb['tooltip_delete_unused_jailkit_txt'] = 'Delete the jailkit chroot environment when there are no shell users or cron jobs which require it.'; -$wb['ssl_options_not_for_le_txt'] = 'Let\'s Encrypt is enabled. These options are for non-Let\s Encrypt certificates.'; +$wb['ssl_options_not_for_le_txt'] = 'You have Let\'s Encrypt certificates enabled for this website. Please be aware that all options on this page apply to non-Let\'s Encrypt certificates only. Remember to uncheck Let\'s Encrypt on the main tab if you want to switch to a different certificate.'; 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 9ef7d45b6b..ee9983e5cb 100644 --- a/interface/web/sites/lib/lang/ru_web_vhost_domain.lng +++ b/interface/web/sites/lib/lang/ru_web_vhost_domain.lng @@ -196,4 +196,4 @@ $wb['tooltip_jailkit_chroot_app_sections_txt'] = 'When empty, uses Jailkit chroo $wb['tooltip_jailkit_chroot_app_programs_txt'] = 'When empty, uses Jailkit chroot applications from Server Config'; $wb['delete_unused_jailkit_txt'] = 'Delete unused jailkit chroot'; $wb['tooltip_delete_unused_jailkit_txt'] = 'Delete the jailkit chroot environment when there are no shell users or cron jobs which require it.'; -$wb['ssl_options_not_for_le_txt'] = 'Let\'s Encrypt is enabled. These options are for non-Let\s Encrypt certificates.'; +$wb['ssl_options_not_for_le_txt'] = 'You have Let\'s Encrypt certificates enabled for this website. Please be aware that all options on this page apply to non-Let\'s Encrypt certificates only. Remember to uncheck Let\'s Encrypt on the main tab if you want to switch to a different certificate.'; 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 bd574bf937..6044897e67 100644 --- a/interface/web/sites/lib/lang/se_web_vhost_domain.lng +++ b/interface/web/sites/lib/lang/se_web_vhost_domain.lng @@ -196,4 +196,4 @@ $wb['tooltip_jailkit_chroot_app_sections_txt'] = 'When empty, uses Jailkit chroo $wb['tooltip_jailkit_chroot_app_programs_txt'] = 'When empty, uses Jailkit chroot applications from Server Config'; $wb['delete_unused_jailkit_txt'] = 'Delete unused jailkit chroot'; $wb['tooltip_delete_unused_jailkit_txt'] = 'Delete the jailkit chroot environment when there are no shell users or cron jobs which require it.'; -$wb['ssl_options_not_for_le_txt'] = 'Let\'s Encrypt is enabled. These options are for non-Let\s Encrypt certificates.'; +$wb['ssl_options_not_for_le_txt'] = 'You have Let\'s Encrypt certificates enabled for this website. Please be aware that all options on this page apply to non-Let\'s Encrypt certificates only. Remember to uncheck Let\'s Encrypt on the main tab if you want to switch to a different certificate.'; 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 d0ee49489c..22c31430dc 100644 --- a/interface/web/sites/lib/lang/sk_web_vhost_domain.lng +++ b/interface/web/sites/lib/lang/sk_web_vhost_domain.lng @@ -196,4 +196,4 @@ $wb['tooltip_jailkit_chroot_app_sections_txt'] = 'When empty, uses Jailkit chroo $wb['tooltip_jailkit_chroot_app_programs_txt'] = 'When empty, uses Jailkit chroot applications from Server Config'; $wb['delete_unused_jailkit_txt'] = 'Delete unused jailkit chroot'; $wb['tooltip_delete_unused_jailkit_txt'] = 'Delete the jailkit chroot environment when there are no shell users or cron jobs which require it.'; -$wb['ssl_options_not_for_le_txt'] = 'Let\'s Encrypt is enabled. These options are for non-Let\s Encrypt certificates.'; +$wb['ssl_options_not_for_le_txt'] = 'You have Let\'s Encrypt certificates enabled for this website. Please be aware that all options on this page apply to non-Let\'s Encrypt certificates only. Remember to uncheck Let\'s Encrypt on the main tab if you want to switch to a different certificate.'; 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 4fd8c25485..5cf90358c3 100644 --- a/interface/web/sites/lib/lang/tr_web_vhost_domain.lng +++ b/interface/web/sites/lib/lang/tr_web_vhost_domain.lng @@ -198,4 +198,4 @@ $wb['tooltip_jailkit_chroot_app_sections_txt'] = 'When empty, uses Jailkit chroo $wb['tooltip_jailkit_chroot_app_programs_txt'] = 'When empty, uses Jailkit chroot applications from Server Config'; $wb['delete_unused_jailkit_txt'] = 'Delete unused jailkit chroot'; $wb['tooltip_delete_unused_jailkit_txt'] = 'Delete the jailkit chroot environment when there are no shell users or cron jobs which require it.'; -$wb['ssl_options_not_for_le_txt'] = 'Let\'s Encrypt is enabled. These options are for non-Let\s Encrypt certificates.'; +$wb['ssl_options_not_for_le_txt'] = 'You have Let\'s Encrypt certificates enabled for this website. Please be aware that all options on this page apply to non-Let\'s Encrypt certificates only. Remember to uncheck Let\'s Encrypt on the main tab if you want to switch to a different certificate.'; -- GitLab From b7d4d29159d20e1e51aa9f6d2532f18f055ffd0f Mon Sep 17 00:00:00 2001 From: thom Date: Mon, 19 Oct 2020 12:57:01 +0200 Subject: [PATCH 040/300] Show hostname in log warning emails (#4156) --- server/lib/app.inc.php | 17 +++++++++++------ 1 file changed, 11 insertions(+), 6 deletions(-) diff --git a/server/lib/app.inc.php b/server/lib/app.inc.php index ec8b1668d1..e0e8c85db2 100644 --- a/server/lib/app.inc.php +++ b/server/lib/app.inc.php @@ -88,18 +88,18 @@ class app { trigger_error('Undefined property ' . $name . ' of class app', E_USER_WARNING); } } - + function setCaller($caller) { $this->_calling_script = $caller; } - + function getCaller() { return $this->_calling_script; } - + function forceErrorExit($errmsg = 'undefined') { global $conf; - + if($this->_calling_script == 'server') { @unlink($conf['temppath'] . $conf['fs_div'] . '.ispconfig_lock'); } @@ -202,9 +202,14 @@ class app { } // if if(isset($conf['admin_notify_priority']) && $priority >= $conf['admin_notify_priority'] && $conf['admin_mail'] != '') { + if($conf['hostname'] != 'localhost' && $conf['hostname'] != '') { + $hostname = $conf['hostname']; + } else { + $hostname = exec('hostname -f'); + } // send notification to admin - $mailBody = $log_msg; - $mailSubject = substr($log_msg, 0, 50).'...'; + $mailBody = $hostname . " - " . $log_msg; + $mailSubject = substr("[" . $hostname . "]" . " " . $log_msg, 0, 70).'...'; $mailHeaders = "MIME-Version: 1.0" . "\n"; $mailHeaders .= "Content-type: text/plain; charset=utf-8" . "\n"; $mailHeaders .= "Content-Transfer-Encoding: 8bit" . "\n"; -- GitLab From 5ab1840750b0dc858930c2e7da7d39ac7dd27965 Mon Sep 17 00:00:00 2001 From: Jesse Norell Date: Mon, 19 Oct 2020 09:09:46 -0600 Subject: [PATCH 041/300] log if web folder is skipped for update/delete --- server/lib/classes/system.inc.php | 8 ++++++++ 1 file changed, 8 insertions(+) diff --git a/server/lib/classes/system.inc.php b/server/lib/classes/system.inc.php index 697c925d18..20bdd08bc7 100644 --- a/server/lib/classes/system.inc.php +++ b/server/lib/classes/system.inc.php @@ -2523,6 +2523,10 @@ $app->log("update_jailkit_chroot called for $home_dir with options ".print_r($op break; default: if (preg_match('@^skip[ =]/?(.+)$@', $opt, $matches) ) { + if (in_array($matches[1], $jailkit_directories)) { + $app->log("update_jailkit_chroot: skipping update of jailkit directory $home_dir/".$matches[1] + . "; if this is in use as a web folder, it is insecure and should be fixed.", LOGLEVEL_WARN); + } $jailkit_directories = $app->functions->array_unset_by_value($jailkit_directories, $matches[1]); $skips .= ' --skip=/'.escapeshellarg($matches[1]); } @@ -2740,6 +2744,10 @@ $app->log("delete_jailkit_chroot called for $home_dir with options ".print_r($op switch ($opt) { default: if (preg_match('@^skip[ =]/?(.+)$@', $opt, $matches) ) { + if (in_array($matches[1], $jailkit_directories)) { + $app->log("delete_jailkit_chroot: skipping removal of jailkit directory .$home_dir/".$matches[1] + . "; if this is in use as a web folder, it is insecure and should be fixed.", LOGLEVEL_WARN); + } $jailkit_directories = $app->functions->array_unset_by_value($jailkit_directories, $matches[1]); } break; -- GitLab From 8562f69bef26f84e7238a324c65c11e2ac53b2b9 Mon Sep 17 00:00:00 2001 From: thom Date: Mon, 19 Oct 2020 22:28:08 +0200 Subject: [PATCH 042/300] Automatically check SSL checkbox when LE is selected (#5837) --- interface/web/client/templates/client_edit_limits.htm | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/interface/web/client/templates/client_edit_limits.htm b/interface/web/client/templates/client_edit_limits.htm index db0b370804..bdaf10dedb 100644 --- a/interface/web/client/templates/client_edit_limits.htm +++ b/interface/web/client/templates/client_edit_limits.htm @@ -131,7 +131,7 @@
-
+
{tmpl_var name='limit_ssl_letsencrypt'}
-- GitLab From adc3f6e3811f2c8800a120f749738b6ca1dde7a2 Mon Sep 17 00:00:00 2001 From: Marius Burkard Date: Tue, 20 Oct 2020 13:27:59 +0200 Subject: [PATCH 043/300] - added ciphers for tlsv1/1.1, fixes #5839 --- install/tpl/debian_postfix.conf.master | 4 ++-- install/tpl/fedora_postfix.conf.master | 4 ++-- install/tpl/gentoo_postfix.conf.master | 4 ++-- install/tpl/opensuse_postfix.conf.master | 4 ++-- 4 files changed, 8 insertions(+), 8 deletions(-) diff --git a/install/tpl/debian_postfix.conf.master b/install/tpl/debian_postfix.conf.master index 87ce6fc662..b75232e6e4 100644 --- a/install/tpl/debian_postfix.conf.master +++ b/install/tpl/debian_postfix.conf.master @@ -47,8 +47,8 @@ smtp_tls_protocols = !SSLv2,!SSLv3 smtpd_tls_exclude_ciphers = RC4, aNULL smtp_tls_exclude_ciphers = RC4, aNULL smtpd_tls_mandatory_ciphers = medium -tls_medium_cipherlist = ECDHE-ECDSA-AES128-GCM-SHA256:ECDHE-RSA-AES128-GCM-SHA256:ECDHE-ECDSA-AES256-GCM-SHA384:ECDHE-RSA-AES256-GCM-SHA384:ECDHE-ECDSA-CHACHA20-POLY1305:ECDHE-RSA-CHACHA20-POLY1305:DHE-RSA-AES128-GCM-SHA256:DHE-RSA-AES256-GCM-SHA384 -tls_preempt_cipherlist = no +tls_medium_cipherlist = ECDHE-ECDSA-AES128-GCM-SHA256:ECDHE-RSA-AES128-GCM-SHA256:ECDHE-ECDSA-AES256-GCM-SHA384:ECDHE-RSA-AES256-GCM-SHA384:ECDHE-ECDSA-CHACHA20-POLY1305:ECDHE-RSA-CHACHA20-POLY1305:DHE-RSA-AES128-GCM-SHA256:DHE-RSA-AES256-GCM-SHA384:DHE-RSA-CHACHA20-POLY1305:ECDHE-ECDSA-AES128-SHA256:ECDHE-RSA-AES128-SHA256:ECDHE-ECDSA-AES128-SHA:ECDHE-RSA-AES128-SHA:ECDHE-ECDSA-AES256-SHA384:ECDHE-RSA-AES256-SHA384:ECDHE-ECDSA-AES256-SHA:ECDHE-RSA-AES256-SHA:DHE-RSA-AES128-SHA256:DHE-RSA-AES256-SHA256:AES128-GCM-SHA256:AES256-GCM-SHA384:AES128-SHA256:AES256-SHA256:AES128-SHA:AES256-SHA:DES-CBC3-SHA +tls_preempt_cipherlist = yes address_verify_negative_refresh_time=60s # needed for postfix < 3.3 when using reject_unverified_recipient (lmtp): enable_original_recipient = yes diff --git a/install/tpl/fedora_postfix.conf.master b/install/tpl/fedora_postfix.conf.master index 8caed7b0c8..70f07182ac 100644 --- a/install/tpl/fedora_postfix.conf.master +++ b/install/tpl/fedora_postfix.conf.master @@ -43,8 +43,8 @@ smtp_tls_protocols = !SSLv2,!SSLv3 smtpd_tls_exclude_ciphers = RC4, aNULL smtp_tls_exclude_ciphers = RC4, aNULL smtpd_tls_mandatory_ciphers = medium -tls_medium_cipherlist = ECDHE-ECDSA-AES128-GCM-SHA256:ECDHE-RSA-AES128-GCM-SHA256:ECDHE-ECDSA-AES256-GCM-SHA384:ECDHE-RSA-AES256-GCM-SHA384:ECDHE-ECDSA-CHACHA20-POLY1305:ECDHE-RSA-CHACHA20-POLY1305:DHE-RSA-AES128-GCM-SHA256:DHE-RSA-AES256-GCM-SHA384 -tls_preempt_cipherlist = no +tls_medium_cipherlist = ECDHE-ECDSA-AES128-GCM-SHA256:ECDHE-RSA-AES128-GCM-SHA256:ECDHE-ECDSA-AES256-GCM-SHA384:ECDHE-RSA-AES256-GCM-SHA384:ECDHE-ECDSA-CHACHA20-POLY1305:ECDHE-RSA-CHACHA20-POLY1305:DHE-RSA-AES128-GCM-SHA256:DHE-RSA-AES256-GCM-SHA384:DHE-RSA-CHACHA20-POLY1305:ECDHE-ECDSA-AES128-SHA256:ECDHE-RSA-AES128-SHA256:ECDHE-ECDSA-AES128-SHA:ECDHE-RSA-AES128-SHA:ECDHE-ECDSA-AES256-SHA384:ECDHE-RSA-AES256-SHA384:ECDHE-ECDSA-AES256-SHA:ECDHE-RSA-AES256-SHA:DHE-RSA-AES128-SHA256:DHE-RSA-AES256-SHA256:AES128-GCM-SHA256:AES256-GCM-SHA384:AES128-SHA256:AES256-SHA256:AES128-SHA:AES256-SHA:DES-CBC3-SHA +tls_preempt_cipherlist = yes address_verify_negative_refresh_time=60s # needed for postfix < 3.3 when using reject_unverified_recipient (lmtp): enable_original_recipient = yes diff --git a/install/tpl/gentoo_postfix.conf.master b/install/tpl/gentoo_postfix.conf.master index 605344bd74..c7e1a06db2 100644 --- a/install/tpl/gentoo_postfix.conf.master +++ b/install/tpl/gentoo_postfix.conf.master @@ -42,8 +42,8 @@ smtp_tls_protocols = !SSLv2,!SSLv3 smtpd_tls_exclude_ciphers = RC4, aNULL smtp_tls_exclude_ciphers = RC4, aNULL smtpd_tls_mandatory_ciphers = medium -tls_medium_cipherlist = ECDHE-ECDSA-AES128-GCM-SHA256:ECDHE-RSA-AES128-GCM-SHA256:ECDHE-ECDSA-AES256-GCM-SHA384:ECDHE-RSA-AES256-GCM-SHA384:ECDHE-ECDSA-CHACHA20-POLY1305:ECDHE-RSA-CHACHA20-POLY1305:DHE-RSA-AES128-GCM-SHA256:DHE-RSA-AES256-GCM-SHA384 -tls_preempt_cipherlist = no +tls_medium_cipherlist = ECDHE-ECDSA-AES128-GCM-SHA256:ECDHE-RSA-AES128-GCM-SHA256:ECDHE-ECDSA-AES256-GCM-SHA384:ECDHE-RSA-AES256-GCM-SHA384:ECDHE-ECDSA-CHACHA20-POLY1305:ECDHE-RSA-CHACHA20-POLY1305:DHE-RSA-AES128-GCM-SHA256:DHE-RSA-AES256-GCM-SHA384:DHE-RSA-CHACHA20-POLY1305:ECDHE-ECDSA-AES128-SHA256:ECDHE-RSA-AES128-SHA256:ECDHE-ECDSA-AES128-SHA:ECDHE-RSA-AES128-SHA:ECDHE-ECDSA-AES256-SHA384:ECDHE-RSA-AES256-SHA384:ECDHE-ECDSA-AES256-SHA:ECDHE-RSA-AES256-SHA:DHE-RSA-AES128-SHA256:DHE-RSA-AES256-SHA256:AES128-GCM-SHA256:AES256-GCM-SHA384:AES128-SHA256:AES256-SHA256:AES128-SHA:AES256-SHA:DES-CBC3-SHA +tls_preempt_cipherlist = yes address_verify_negative_refresh_time=60s # needed for postfix < 3.3 when using reject_unverified_recipient (lmtp): enable_original_recipient = yes diff --git a/install/tpl/opensuse_postfix.conf.master b/install/tpl/opensuse_postfix.conf.master index 4cb46786a3..44c643a2bf 100644 --- a/install/tpl/opensuse_postfix.conf.master +++ b/install/tpl/opensuse_postfix.conf.master @@ -45,8 +45,8 @@ smtp_tls_protocols = !SSLv2,!SSLv3 smtpd_tls_exclude_ciphers = RC4, aNULL smtp_tls_exclude_ciphers = RC4, aNULL smtpd_tls_mandatory_ciphers = medium -tls_medium_cipherlist = ECDHE-ECDSA-AES128-GCM-SHA256:ECDHE-RSA-AES128-GCM-SHA256:ECDHE-ECDSA-AES256-GCM-SHA384:ECDHE-RSA-AES256-GCM-SHA384:ECDHE-ECDSA-CHACHA20-POLY1305:ECDHE-RSA-CHACHA20-POLY1305:DHE-RSA-AES128-GCM-SHA256:DHE-RSA-AES256-GCM-SHA384 -tls_preempt_cipherlist = no +tls_medium_cipherlist = ECDHE-ECDSA-AES128-GCM-SHA256:ECDHE-RSA-AES128-GCM-SHA256:ECDHE-ECDSA-AES256-GCM-SHA384:ECDHE-RSA-AES256-GCM-SHA384:ECDHE-ECDSA-CHACHA20-POLY1305:ECDHE-RSA-CHACHA20-POLY1305:DHE-RSA-AES128-GCM-SHA256:DHE-RSA-AES256-GCM-SHA384:DHE-RSA-CHACHA20-POLY1305:ECDHE-ECDSA-AES128-SHA256:ECDHE-RSA-AES128-SHA256:ECDHE-ECDSA-AES128-SHA:ECDHE-RSA-AES128-SHA:ECDHE-ECDSA-AES256-SHA384:ECDHE-RSA-AES256-SHA384:ECDHE-ECDSA-AES256-SHA:ECDHE-RSA-AES256-SHA:DHE-RSA-AES128-SHA256:DHE-RSA-AES256-SHA256:AES128-GCM-SHA256:AES256-GCM-SHA384:AES128-SHA256:AES256-SHA256:AES128-SHA:AES256-SHA:DES-CBC3-SHA +tls_preempt_cipherlist = yes address_verify_negative_refresh_time=60s # needed for postfix < 3.3 when using reject_unverified_recipient (lmtp): enable_original_recipient = yes -- GitLab From ff895d959a0d80bf2ce504760f785ac00ae7a6b2 Mon Sep 17 00:00:00 2001 From: thom Date: Tue, 20 Oct 2020 14:40:09 +0200 Subject: [PATCH 044/300] Automatically check SSL checkbox when LE is selected (#5837) --- interface/web/client/templates/client_edit_limits.htm | 2 +- .../web/client/templates/client_template_edit_limits.htm | 6 +++--- interface/web/client/templates/reseller_edit_limits.htm | 6 +++--- 3 files changed, 7 insertions(+), 7 deletions(-) diff --git a/interface/web/client/templates/client_edit_limits.htm b/interface/web/client/templates/client_edit_limits.htm index bdaf10dedb..1f0a855eef 100644 --- a/interface/web/client/templates/client_edit_limits.htm +++ b/interface/web/client/templates/client_edit_limits.htm @@ -125,7 +125,7 @@
-
+
{tmpl_var name='limit_ssl'}
diff --git a/interface/web/client/templates/client_template_edit_limits.htm b/interface/web/client/templates/client_template_edit_limits.htm index a3e4b63e9a..005db0724a 100644 --- a/interface/web/client/templates/client_template_edit_limits.htm +++ b/interface/web/client/templates/client_template_edit_limits.htm @@ -82,13 +82,13 @@
-
+
{tmpl_var name='limit_ssl'}
-
+
{tmpl_var name='limit_ssl_letsencrypt'}
@@ -318,7 +318,7 @@
- +
diff --git a/interface/web/client/templates/reseller_edit_limits.htm b/interface/web/client/templates/reseller_edit_limits.htm index c0a25939df..e1e69d4a14 100644 --- a/interface/web/client/templates/reseller_edit_limits.htm +++ b/interface/web/client/templates/reseller_edit_limits.htm @@ -127,13 +127,13 @@
-
+
{tmpl_var name='limit_ssl'}
-
+
{tmpl_var name='limit_ssl_letsencrypt'}
@@ -362,7 +362,7 @@
- +
-- GitLab From 14297267b4f6f57ab38240c7645ed49828ebb6db Mon Sep 17 00:00:00 2001 From: Michael Seevogel Date: Tue, 20 Oct 2020 17:12:21 +0200 Subject: [PATCH 045/300] trimmed the code since it seems to be enough to provide TLS 1.3 when Nginx was linked against OpenSSL 1.1.1 at build time --- server/plugins-available/nginx_plugin.inc.php | 11 +++-------- 1 file changed, 3 insertions(+), 8 deletions(-) diff --git a/server/plugins-available/nginx_plugin.inc.php b/server/plugins-available/nginx_plugin.inc.php index d76ef1849a..6182c676a6 100644 --- a/server/plugins-available/nginx_plugin.inc.php +++ b/server/plugins-available/nginx_plugin.inc.php @@ -1622,20 +1622,15 @@ class nginx_plugin { $vhost_data['logging'] = $web_config['logging']; // check if OpenSSL and Nginx supports TLS 1.3 - $nginx_version = $app->system->getnginxversion(true); - $openssl_version = $app->system->getopensslversion(true); - $output = $app->system->exec_safe('nginx -V 2>&1'); if(preg_match('/built with OpenSSL\s*(\d+)(\.(\d+)(\.(\d+))*)?(\D|$)/i', $output[0], $matches)) { $nginx_openssl_ver = $matches[1] . (isset($matches[3]) ? '.' . $matches[3] : '') . (isset($matches[5]) ? '.' . $matches[5] : ''); } - if(version_compare($app->system->getopensslversion(true), $nginx_openssl_ver, '>=')) { - if((version_compare($app->system->getnginxversion(true), '1.13.0', '>=') && version_compare($app->system->getopensslversion(true), '1.1.1', '>='))) { - $app->log('Enable TLS 1.3 for: '.$domain, LOGLEVEL_DEBUG); - $vhost_data['tls13_available'] = $app->system->getopensslversion(true); - } + if((version_compare($app->system->getnginxversion(true), '1.13.0', '>=') && version_compare($nginx_openssl_ver, '1.1.1', '>='))) { + $app->log('Enable TLS 1.3 for: '.$domain, LOGLEVEL_DEBUG); + $vhost_data['tls13_available'] = $nginx_openssl_ver; } $tpl->setVar($vhost_data); -- GitLab From d07b2ad07e622059e399a29f03da9dae8c8a030c Mon Sep 17 00:00:00 2001 From: Michael Seevogel Date: Tue, 20 Oct 2020 17:21:04 +0200 Subject: [PATCH 046/300] modified comment --- 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 6182c676a6..8ecee93321 100644 --- a/server/plugins-available/nginx_plugin.inc.php +++ b/server/plugins-available/nginx_plugin.inc.php @@ -1621,7 +1621,7 @@ class nginx_plugin { // set logging variable $vhost_data['logging'] = $web_config['logging']; - // check if OpenSSL and Nginx supports TLS 1.3 + // Provide TLS 1.3 support if Nginx is >= 1.13.0 and when it was linked against OpenSSL(>=1.1.1) at build time. $output = $app->system->exec_safe('nginx -V 2>&1'); if(preg_match('/built with OpenSSL\s*(\d+)(\.(\d+)(\.(\d+))*)?(\D|$)/i', $output[0], $matches)) { -- GitLab From 3b3762f52cef782889c0443282bb8621d5d18ad3 Mon Sep 17 00:00:00 2001 From: Michael Seevogel Date: Tue, 20 Oct 2020 17:50:56 +0200 Subject: [PATCH 047/300] adjusted Nginx TLS 1.3 naming and switched to true if TLS 1.3 is supported --- server/conf/nginx_vhost.conf.master | 2 +- server/plugins-available/nginx_plugin.inc.php | 4 ++-- 2 files changed, 3 insertions(+), 3 deletions(-) diff --git a/server/conf/nginx_vhost.conf.master b/server/conf/nginx_vhost.conf.master index 3bf65bd341..57dffe1369 100644 --- a/server/conf/nginx_vhost.conf.master +++ b/server/conf/nginx_vhost.conf.master @@ -19,7 +19,7 @@ server {
- + ssl_protocols TLSv1.3 TLSv1.2; diff --git a/server/plugins-available/nginx_plugin.inc.php b/server/plugins-available/nginx_plugin.inc.php index 8ecee93321..fc2088fefb 100644 --- a/server/plugins-available/nginx_plugin.inc.php +++ b/server/plugins-available/nginx_plugin.inc.php @@ -1621,7 +1621,7 @@ class nginx_plugin { // set logging variable $vhost_data['logging'] = $web_config['logging']; - // Provide TLS 1.3 support if Nginx is >= 1.13.0 and when it was linked against OpenSSL(>=1.1.1) at build time. + // Provide TLS 1.3 support if Nginx version is >= 1.13.0 and when it was linked against OpenSSL(>=1.1.1) at build time. $output = $app->system->exec_safe('nginx -V 2>&1'); if(preg_match('/built with OpenSSL\s*(\d+)(\.(\d+)(\.(\d+))*)?(\D|$)/i', $output[0], $matches)) { @@ -1630,7 +1630,7 @@ class nginx_plugin { if((version_compare($app->system->getnginxversion(true), '1.13.0', '>=') && version_compare($nginx_openssl_ver, '1.1.1', '>='))) { $app->log('Enable TLS 1.3 for: '.$domain, LOGLEVEL_DEBUG); - $vhost_data['tls13_available'] = $nginx_openssl_ver; + $vhost_data['tls1.3_supported'] = 'y'; } $tpl->setVar($vhost_data); -- GitLab From 07eb3ef8cc1d764109b09bbb426a0a4964aacbf3 Mon Sep 17 00:00:00 2001 From: Marius Burkard Date: Tue, 20 Oct 2020 21:10:25 +0200 Subject: [PATCH 048/300] - pass all arguments to updater in ispconfig_update.sh, fixes #5828 --- server/scripts/ispconfig_update.sh | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/server/scripts/ispconfig_update.sh b/server/scripts/ispconfig_update.sh index fc34506634..bc7e0ef754 100644 --- a/server/scripts/ispconfig_update.sh +++ b/server/scripts/ispconfig_update.sh @@ -20,7 +20,7 @@ then then cp -p ${n} ${n}.exec chmod +x ${n}.exec - exec ${n}.exec + exec ${n}.exec "$@" else # clean up tmp .exec file if [ "$(basename ${0})" == "ispconfig_update.sh.exec" ]; then @@ -31,7 +31,7 @@ then -d disable_classes= \ -d disable_functions= \ -d open_basedir= \ - /usr/local/ispconfig/server/scripts/ispconfig_update.php + /usr/local/ispconfig/server/scripts/ispconfig_update.php "$@" fi fi -- GitLab From d528b3e08db1518a04895478f4b2cd5e710116c3 Mon Sep 17 00:00:00 2001 From: Marius Burkard Date: Wed, 21 Oct 2020 12:12:25 +0200 Subject: [PATCH 049/300] Revert "Merge branch '1804-welcome-email' into 'stable-3.1'" This reverts merge request !1076 --- install/tpl/system.ini.master | 1 - server/plugins-available/mail_plugin.inc.php | 144 +++++++++--------- .../plugins-available/mailman_plugin.inc.php | 15 +- 3 files changed, 77 insertions(+), 83 deletions(-) diff --git a/install/tpl/system.ini.master b/install/tpl/system.ini.master index c42966a01c..928068a6e1 100644 --- a/install/tpl/system.ini.master +++ b/install/tpl/system.ini.master @@ -16,7 +16,6 @@ webmail_url=/webmail dkim_path=/var/lib/amavis/dkim smtp_enabled=y smtp_host=localhost -enable_welcome_mail=y [monitor] diff --git a/server/plugins-available/mail_plugin.inc.php b/server/plugins-available/mail_plugin.inc.php index c584b68215..4d5ac826d3 100644 --- a/server/plugins-available/mail_plugin.inc.php +++ b/server/plugins-available/mail_plugin.inc.php @@ -135,7 +135,7 @@ class mail_plugin { $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"]); - + $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"]); @@ -149,26 +149,26 @@ class mail_plugin { $app->log('Created Directory: '.$maildomain_path, LOGLEVEL_DEBUG); $maildomain_path .= '/Maildir'; } - + //* 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']); $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)) { - + $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)) $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')) { $app->system->maildirmake($maildomain_path, $user, 'Sent', $group); } @@ -181,11 +181,11 @@ class mail_plugin { if(!is_dir($data['new']['maildir'].'/.Junk')) { $app->system->maildirmake($maildomain_path, $user, 'Junk', $group); } - + // Set permissions now recursive $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) { @@ -195,63 +195,61 @@ class mail_plugin { } } - $global_config = $app->getconf->get_global_config('mail'); - if($global_config['enable_welcome_mail'] == 'y') { - //* Send the welcome email message - $tmp = explode('@', $data["new"]["email"]); - $domain = $tmp[1]; - unset($tmp); - $html = false; - if(file_exists($conf['rootpath'].'/conf-custom/mail/welcome_email_'.$domain.'.html')) { - $lines = file($conf['rootpath'].'/conf-custom/mail/welcome_email_'.$domain.'.html'); - $html = true; - } elseif(file_exists($conf['rootpath'].'/conf-custom/mail/welcome_email_'.$conf['language'].'.html')) { - $lines = file($conf['rootpath'].'/conf-custom/mail/welcome_email_'.$conf['language'].'.html'); - $html = true; - } elseif(file_exists($conf['rootpath'].'/conf-custom/mail/welcome_email_'.$domain.'.txt')) { - $lines = file($conf['rootpath'].'/conf-custom/mail/welcome_email_'.$domain.'.txt'); - } elseif(file_exists($conf['rootpath'].'/conf-custom/mail/welcome_email_'.$conf['language'].'.txt')) { - $lines = file($conf['rootpath'].'/conf-custom/mail/welcome_email_'.$conf['language'].'.txt'); - } elseif(file_exists($conf['rootpath'].'/conf-custom/mail/welcome_email_en.txt')) { - $lines = file($conf['rootpath'].'/conf-custom/mail/welcome_email_en.txt'); - } elseif(file_exists($conf['rootpath'].'/conf/mail/welcome_email_'.$conf['language'].'.txt')) { - $lines = file($conf['rootpath'].'/conf/mail/welcome_email_'.$conf['language'].'.txt'); - } else { - $lines = file($conf['rootpath'].'/conf/mail/welcome_email_en.txt'); - } - - //* Get from address - $parts = explode(':', trim($lines[0])); - unset($parts[0]); - $welcome_mail_from = implode(':', $parts); - unset($lines[0]); - - //* Get subject - $parts = explode(':', trim($lines[1])); - unset($parts[0]); - $welcome_mail_subject = implode(':', $parts); - unset($lines[1]); - - //* Get message - $welcome_mail_message = trim(implode($lines)); - unset($tmp); - - $mailHeaders = "MIME-Version: 1.0" . "\n"; - if($html) { - $mailHeaders .= "Content-Type: text/html; charset=utf-8" . "\n"; - $mailHeaders .= "Content-Transfer-Encoding: quoted-printable" . "\n"; - } else { - $mailHeaders .= "Content-Type: text/plain; charset=utf-8" . "\n"; - $mailHeaders .= "Content-Transfer-Encoding: 8bit" . "\n"; - } - $mailHeaders .= "From: $welcome_mail_from" . "\n"; - $mailHeaders .= "Reply-To: $welcome_mail_from" . "\n"; - $mailTarget = $data["new"]["email"]; - $mailSubject = "=?utf-8?B?".base64_encode($welcome_mail_subject)."?="; + //* Send the welcome email message + $tmp = explode('@', $data["new"]["email"]); + $domain = $tmp[1]; + unset($tmp); + $html = false; + if(file_exists($conf['rootpath'].'/conf-custom/mail/welcome_email_'.$domain.'.html')) { + $lines = file($conf['rootpath'].'/conf-custom/mail/welcome_email_'.$domain.'.html'); + $html = true; + } elseif(file_exists($conf['rootpath'].'/conf-custom/mail/welcome_email_'.$conf['language'].'.html')) { + $lines = file($conf['rootpath'].'/conf-custom/mail/welcome_email_'.$conf['language'].'.html'); + $html = true; + } elseif(file_exists($conf['rootpath'].'/conf-custom/mail/welcome_email_'.$domain.'.txt')) { + $lines = file($conf['rootpath'].'/conf-custom/mail/welcome_email_'.$domain.'.txt'); + } elseif(file_exists($conf['rootpath'].'/conf-custom/mail/welcome_email_'.$conf['language'].'.txt')) { + $lines = file($conf['rootpath'].'/conf-custom/mail/welcome_email_'.$conf['language'].'.txt'); + } elseif(file_exists($conf['rootpath'].'/conf-custom/mail/welcome_email_en.txt')) { + $lines = file($conf['rootpath'].'/conf-custom/mail/welcome_email_en.txt'); + } elseif(file_exists($conf['rootpath'].'/conf/mail/welcome_email_'.$conf['language'].'.txt')) { + $lines = file($conf['rootpath'].'/conf/mail/welcome_email_'.$conf['language'].'.txt'); + } else { + $lines = file($conf['rootpath'].'/conf/mail/welcome_email_en.txt'); + } - //* Send the welcome email only on the "master" mail server to avoid duplicate emails - if($conf['mirror_server_id'] == 0) mail($mailTarget, $mailSubject, $welcome_mail_message, $mailHeaders); + //* Get from address + $parts = explode(':', trim($lines[0])); + unset($parts[0]); + $welcome_mail_from = implode(':', $parts); + unset($lines[0]); + + //* Get subject + $parts = explode(':', trim($lines[1])); + unset($parts[0]); + $welcome_mail_subject = implode(':', $parts); + unset($lines[1]); + + //* Get message + $welcome_mail_message = trim(implode($lines)); + unset($tmp); + + $mailHeaders = "MIME-Version: 1.0" . "\n"; + if($html) { + $mailHeaders .= "Content-Type: text/html; charset=utf-8" . "\n"; + $mailHeaders .= "Content-Transfer-Encoding: quoted-printable" . "\n"; + } else { + $mailHeaders .= "Content-Type: text/plain; charset=utf-8" . "\n"; + $mailHeaders .= "Content-Transfer-Encoding: 8bit" . "\n"; } + $mailHeaders .= "From: $welcome_mail_from" . "\n"; + $mailHeaders .= "Reply-To: $welcome_mail_from" . "\n"; + $mailTarget = $data["new"]["email"]; + $mailSubject = "=?utf-8?B?".base64_encode($welcome_mail_subject)."?="; + + //* Send the welcome email only on the "master" mail server to avoid duplicate emails + if($conf['mirror_server_id'] == 0) mail($mailTarget, $mailSubject, $welcome_mail_message, $mailHeaders); + } function user_update($event_name, $data) { @@ -263,7 +261,7 @@ class mail_plugin { // Maildir-Format must not be changed on this way !! $data['new']['maildir_format'] = $data['old']['maildir_format']; - + $maildomain_path = $data['new']['maildir']; $tmp_basepath = $data['new']['maildir']; $tmp_basepath_parts = explode('/', $tmp_basepath); @@ -317,7 +315,7 @@ class mail_plugin { $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')) { $app->system->exec_safe("su -c 'doveadm mailbox create -u ? INBOX'", $data["new"]["email"]); @@ -325,7 +323,7 @@ class mail_plugin { $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"]); - + $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"]); @@ -340,18 +338,18 @@ class mail_plugin { $app->log('Created Directory: '.$base_path, LOGLEVEL_DEBUG); $maildomain_path .= '/Maildir'; } - + //* 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']); $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')) { $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) { @@ -363,7 +361,7 @@ class mail_plugin { } } } - + if(!is_dir($data['new']['maildir'].'/.Sent')) { $app->system->maildirmake($maildomain_path, $user, 'Sent', $group); } @@ -376,11 +374,11 @@ class mail_plugin { if(!is_dir($data['new']['maildir'].'/.Junk')) { $app->system->maildirmake($maildomain_path, $user, 'Junk', $group); } - + // Set permissions now recursive $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'])) { @@ -472,7 +470,7 @@ class mail_plugin { } else { $app->log('Possible security violation when deleting the mail domain mailfilter directory: '.$old_maildomain_path, LOGLEVEL_ERROR); } - + //* Delete the mail-backups $server_config = $app->getconf->get_server_config($conf['server_id'], 'server'); $backup_dir = $server_config['backup_dir']; diff --git a/server/plugins-available/mailman_plugin.inc.php b/server/plugins-available/mailman_plugin.inc.php index da033b80cc..e6251aedf1 100644 --- a/server/plugins-available/mailman_plugin.inc.php +++ b/server/plugins-available/mailman_plugin.inc.php @@ -71,12 +71,9 @@ class mailman_plugin { function insert($event_name, $data) { global $app, $conf; - $global_config = $app->getconf->get_global_config('mail'); - $opt_quiet = ($global_config['enable_welcome_mail'] == 'n') ? "-q" : ""; - $this->update_config(); - $pid = $app->system->exec_safe("nohup /usr/lib/mailman/bin/newlist ? -u ? -e ? ? ? ? >/dev/null 2>&1 & echo $!;", $opt_quiet, $data["new"]["domain"], $data["new"]["domain"], $data["new"]["listname"], $data["new"]["email"], $data["new"]["password"]); + $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 { @@ -90,9 +87,9 @@ class mailman_plugin { } if(is_file('/var/lib/mailman/data/virtual-mailman')) exec('postmap /var/lib/mailman/data/virtual-mailman'); if(is_file('/var/lib/mailman/data/transport-mailman')) exec('postmap /var/lib/mailman/data/transport-mailman'); - + exec('nohup '.$conf['init_scripts'] . '/' . 'mailman reload >/dev/null 2>&1 &'); - + // Fix list URL $app->system->exec_safe('/usr/sbin/withlist -l -r fix_url ?', $data["new"]["listname"]); @@ -103,7 +100,7 @@ class mailman_plugin { // The purpose of this plugin is to rewrite the main.cf file function update($event_name, $data) { global $app, $conf; - + $this->update_config(); if($data["new"]["password"] != $data["old"]["password"] && $data["new"]["password"] != '') { @@ -111,7 +108,7 @@ class mailman_plugin { 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']); } - + if(is_file('/var/lib/mailman/data/virtual-mailman')) exec('postmap /var/lib/mailman/data/virtual-mailman'); if(is_file('/var/lib/mailman/data/transport-mailman')) exec('postmap /var/lib/mailman/data/transport-mailman'); } @@ -124,7 +121,7 @@ class mailman_plugin { $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 &'); - + if(is_file('/var/lib/mailman/data/virtual-mailman')) exec('postmap /var/lib/mailman/data/virtual-mailman'); if(is_file('/var/lib/mailman/data/transport-mailman')) exec('postmap /var/lib/mailman/data/transport-mailman'); -- GitLab From 5f9d045630c8b52dd294970c22b2e30e529bf504 Mon Sep 17 00:00:00 2001 From: Jesse Norell Date: Wed, 21 Oct 2020 12:35:54 -0600 Subject: [PATCH 050/300] fix stray semicolons --- server/scripts/letsencrypt_post_hook.sh | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/server/scripts/letsencrypt_post_hook.sh b/server/scripts/letsencrypt_post_hook.sh index 27d593196c..5b97fd80da 100644 --- a/server/scripts/letsencrypt_post_hook.sh +++ b/server/scripts/letsencrypt_post_hook.sh @@ -28,7 +28,7 @@ if which yum &> /dev/null 2>&1 ; then firewall-cmd --zone=public --permanent --remove-service=http firewall-cmd --reload # If using UFW - else; if [ rpm -q ufw ]; then ufw --force enable && ufw deny http; fi + elif [ rpm -q ufw ]; then ufw --force enable && ufw deny http fi # For Debian, Ubuntu or derivatives elif apt-get -v >/dev/null 2>&1 ; then @@ -36,10 +36,10 @@ elif apt-get -v >/dev/null 2>&1 ; then if [ $(dpkg-query -W -f='${Status}' nginx 2>/dev/null | grep -c "ok installed") -eq 1 ]; then service nginx start elif [ $(dpkg-query -W -f='${Status}' apache2 2>/dev/null | grep -c "ok installed") -eq 1 ]; then service apache2 start # If using UFW - else; if [ $(dpkg-query -W -f='${Status}' ufw 2>/dev/null | grep -c "ok installed") -eq 1 ]; then ufw --force enable && ufw deny http; fi + elif [ $(dpkg-query -W -f='${Status}' ufw 2>/dev/null | grep -c "ok installed") -eq 1 ]; then ufw --force enable && ufw deny http fi # Try iptables as a final attempt else iptables -D INPUT -p tcp --dport 80 -j ACCEPT service iptables save -fi \ No newline at end of file +fi -- GitLab From fdc23556529351b55b5c9a040e5113bf204cf999 Mon Sep 17 00:00:00 2001 From: Jesse Norell Date: Wed, 21 Oct 2020 14:28:05 -0600 Subject: [PATCH 051/300] letsencrypt hooks use iptables, not firewall scripts --- server/scripts/letsencrypt_post_hook.sh | 43 +++++++++++++++-------- server/scripts/letsencrypt_pre_hook.sh | 45 ++++++++++++++++--------- 2 files changed, 59 insertions(+), 29 deletions(-) diff --git a/server/scripts/letsencrypt_post_hook.sh b/server/scripts/letsencrypt_post_hook.sh index 5b97fd80da..caef1e2d21 100644 --- a/server/scripts/letsencrypt_post_hook.sh +++ b/server/scripts/letsencrypt_post_hook.sh @@ -12,34 +12,49 @@ ## If you need a custom hook file, create a file with the same name in ## /usr/local/ispconfig/server/conf-custom/scripts/ +## +## End the file with 'return 124' to signal that this script should not terminate. +## +## Eg. you can override the ispc_letsencrypt_firewall_disable() function then 'return 124' +## to customize the firewall setup. if [ -e "/usr/local/ispconfig/server/conf-custom/scripts/letsencrypt_post_hook.sh" ] ; then - . /usr/local/ispconfig/server/conf-custom/scripts/letsencrypt_post_hook.sh && exit 0 || exit 1; + . /usr/local/ispconfig/server/conf-custom/scripts/letsencrypt_post_hook.sh + ret=$? + if [ $ret != 124 ]; then exit $ret; fi fi -# You can add support to other firewall +declare -F ispc_letsencrypt_firewall_disable &>/dev/null || ispc_letsencrypt_firewall_disable() { + # delete 'ispc-letsencrypt' chain + iptables -D INPUT -p tcp --dport 80 -j ispc-letsencrypt + iptables -F ispc-letsencrypt + iptables -X ispc-letsencrypt +} + +ispc_letsencrypt_firewall_disable + # For RHEL, Centos or derivatives if which yum &> /dev/null 2>&1 ; then # Check if web server software is installed, start it if any if [ rpm -q nginx ]; then service nginx start elif [ rpm -q httpd ]; then service httpd start - # If using firewalld - elif [ rpm -q firewalld ] && [ `firewall-cmd --state` = running ]; then - firewall-cmd --zone=public --permanent --remove-service=http - firewall-cmd --reload - # If using UFW - elif [ rpm -q ufw ]; then ufw --force enable && ufw deny http +# # If using firewalld +# elif [ rpm -q firewalld ] && [ `firewall-cmd --state` = running ]; then +# firewall-cmd --zone=public --permanent --remove-service=http +# firewall-cmd --reload +# # If using UFW +# elif [ rpm -q ufw ]; then ufw --force enable && ufw deny http fi # For Debian, Ubuntu or derivatives elif apt-get -v >/dev/null 2>&1 ; then # Check if web server software is installed, stop it if any if [ $(dpkg-query -W -f='${Status}' nginx 2>/dev/null | grep -c "ok installed") -eq 1 ]; then service nginx start elif [ $(dpkg-query -W -f='${Status}' apache2 2>/dev/null | grep -c "ok installed") -eq 1 ]; then service apache2 start - # If using UFW - elif [ $(dpkg-query -W -f='${Status}' ufw 2>/dev/null | grep -c "ok installed") -eq 1 ]; then ufw --force enable && ufw deny http +# # If using UFW +# elif [ $(dpkg-query -W -f='${Status}' ufw 2>/dev/null | grep -c "ok installed") -eq 1 ]; then ufw --force enable && ufw deny http fi -# Try iptables as a final attempt -else - iptables -D INPUT -p tcp --dport 80 -j ACCEPT - service iptables save +## Try iptables as a final attempt +#else +# iptables -D INPUT -p tcp --dport 80 -j ACCEPT +# service iptables save fi diff --git a/server/scripts/letsencrypt_pre_hook.sh b/server/scripts/letsencrypt_pre_hook.sh index 60964a86d4..41aa018430 100644 --- a/server/scripts/letsencrypt_pre_hook.sh +++ b/server/scripts/letsencrypt_pre_hook.sh @@ -12,35 +12,50 @@ ## If you need a custom hook file, create a file with the same name in ## /usr/local/ispconfig/server/conf-custom/scripts/ +## +## End the file with 'return 124' to signal that this script should not terminate. +## +## Eg. you can override the ispc_letsencrypt_firewall_enable() function then 'return 124' +## to customize the firewall setup. if [ -e "/usr/local/ispconfig/server/conf-custom/scripts/letsencrypt_pre_hook.sh" ] ; then - . /usr/local/ispconfig/server/conf-custom/scripts/letsencrypt_pre_hook.sh && exit 0 || exit 1 ; + . /usr/local/ispconfig/server/conf-custom/scripts/letsencrypt_pre_hook.sh + ret=$? + if [ $ret != 124 ]; then exit $ret; fi fi -# You can add support to other firewall +declare -F ispc_letsencrypt_firewall_enable &>/dev/null || ispc_letsencrypt_firewall_enable() { + # create 'ispc-letsencrypt' chain with ACCEPT policy and send port 80 there + iptables -N ispc-letsencrypt + iptables -I ispc-letsencrypt -p tcp --dport 80 -j ACCEPT + iptables -A ispc-letsencrypt -j RETURN + iptables -I INPUT -p tcp --dport 80 -j ispc-letsencrypt +} + +ispc_letsencrypt_firewall_enable # For RHEL, Centos or derivatives if which yum &> /dev/null 2>&1 ; then # Check if web server software is installed, stop it if any if [ rpm -q nginx ]; then service nginx stop; fi if [ rpm -q httpd ]; then service httpd stop; fi - # If using firewalld - if [ rpm -q firewalld ] && [ `firewall-cmd --state` = running ]; then - firewall-cmd --zone=public --permanent --add-service=http - firewall-cmd --reload - fi - # If using UFW - if [ rpm -q ufw ]; then ufw --force enable && ufw allow http; fi +# # If using firewalld +# if [ rpm -q firewalld ] && [ `firewall-cmd --state` = running ]; then +# firewall-cmd --zone=public --permanent --add-service=http +# firewall-cmd --reload +# fi +# # If using UFW +# if [ rpm -q ufw ]; then ufw --force enable && ufw allow http; fi # For Debian, Ubuntu or derivatives elif apt-get -v >/dev/null 2>&1 ; then # Check if web server software is installed, stop it if any if [ $(dpkg-query -W -f='${Status}' nginx 2>/dev/null | grep -c "ok installed") -eq 1 ]; then service nginx stop; fi if [ $(dpkg-query -W -f='${Status}' apache2 2>/dev/null | grep -c "ok installed") -eq 1 ]; then service apache2 stop; fi - # If using UFW - if [ $(dpkg-query -W -f='${Status}' ufw 2>/dev/null | grep -c "ok installed") -eq 1 ]; then ufw --force enable && ufw allow http; fi +# # If using UFW +# if [ $(dpkg-query -W -f='${Status}' ufw 2>/dev/null | grep -c "ok installed") -eq 1 ]; then ufw --force enable && ufw allow http; fi -# Try iptables as a final attempt -else - iptables -I INPUT -p tcp --dport 80 -j ACCEPT - service iptables save +## Try iptables as a final attempt +#else +# iptables -I INPUT -p tcp --dport 80 -j ACCEPT +# service iptables save fi -- GitLab From d2d3013193069e908d4180a59fff46c275d97b37 Mon Sep 17 00:00:00 2001 From: Jesse Norell Date: Wed, 21 Oct 2020 14:35:03 -0600 Subject: [PATCH 052/300] add new fields to example ispc-import-csv-email.php --- remoting_client/examples/ispc-import-csv-email.php | 2 ++ 1 file changed, 2 insertions(+) diff --git a/remoting_client/examples/ispc-import-csv-email.php b/remoting_client/examples/ispc-import-csv-email.php index 407ba1635c..4b22c98c2c 100644 --- a/remoting_client/examples/ispc-import-csv-email.php +++ b/remoting_client/examples/ispc-import-csv-email.php @@ -227,6 +227,8 @@ foreach ( $csv as $record ) { 'autoresponder_start_date' => date( 'Y-m-d H:i:s' ), 'autoresponder_end_date' => date( '2024-m-d H:i:s' ), 'autoresponder_text' => $record['autoresponder_text'], + 'purge_trash_days' => 0, + 'purge_junk_days' => 0, 'move_junk' => ( preg_match( '/^y/i', $record['move_junk'] ) ? 'y' : 'n' ), 'custom_mailfilter' => "", 'postfix' => 'y', -- GitLab From 25f192948d8c8634189bb4b19334d4c33f09233f Mon Sep 17 00:00:00 2001 From: thom Date: Thu, 22 Oct 2020 10:34:43 +0200 Subject: [PATCH 053/300] Don't change /etc/hosts on mirrors (#4917) --- .../network_settings_plugin.inc.php | 30 +++++++++---------- 1 file changed, 15 insertions(+), 15 deletions(-) diff --git a/server/plugins-available/network_settings_plugin.inc.php b/server/plugins-available/network_settings_plugin.inc.php index 1ed12f3a1c..6a34cc20d7 100644 --- a/server/plugins-available/network_settings_plugin.inc.php +++ b/server/plugins-available/network_settings_plugin.inc.php @@ -249,55 +249,55 @@ class network_settings_plugin { $app->log('Network configuration disabled in server settings.', LOGLEVEL_DEBUG); } } - + //* Configure hostname - if($event_name == 'server_update' && $data['mirrored'] == false) { - + if($event_name == 'server_update' && $conf['mirror_server_id'] == 0) { + //* get old server config $tmp = $app->ini_parser->parse_ini_string(stripslashes($data['old']['config'])); $old_server_config = $tmp['server']; unset($tmp); - + $new_hostname = trim($server_config['hostname']); $old_hostname = trim($old_server_config['hostname']); - + if($new_hostname != '' && $old_hostname != $new_hostname) { - + if(is_file('/etc/hostname')) { $app->system->file_put_contents('/etc/hostname',$new_hostname); $app->log('Changed /etc/hostname to '.$new_hostname, LOGLEVEL_DEBUG); } - + if(is_file('/etc/mailname')) { $app->system->file_put_contents('/etc/mailname',$new_hostname); $app->log('Changed /etc/mailname to '.$new_hostname, LOGLEVEL_DEBUG); } - + $postconf_commands = array( 'myhostname = '.$new_hostname, 'mydestination = '.$new_hostname.', localhost, localhost.localdomain' ); - + //* Executing the postconf commands foreach($postconf_commands as $cmd) { $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); - + //* change /etc/hosts $hosts = file_get_contents('/etc/hosts'); $hosts = str_replace($old_hostname,$new_hostname,$hosts); $app->system->file_put_contents('/etc/hosts',$hosts); - + exec($app->system->getinitcommand('postfix', 'restart').' 2>&1'); exec($app->system->getinitcommand('networking', 'restart').' 2>&1'); - + } - + } - + } -- GitLab From 30328bcefeb1731f061cfb44f1ee048d4948a3e9 Mon Sep 17 00:00:00 2001 From: thom Date: Thu, 22 Oct 2020 10:43:32 +0200 Subject: [PATCH 054/300] Fix typo (#5845) --- interface/web/robots.txt | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/interface/web/robots.txt b/interface/web/robots.txt index 4e0bfc5496..1f53798bb4 100644 --- a/interface/web/robots.txt +++ b/interface/web/robots.txt @@ -1,2 +1,2 @@ -User-Agent: * -Disallow: / \ No newline at end of file +User-agent: * +Disallow: / -- GitLab From 6c47c69c55b2e5f5b6037ca9f4aebb3ce1fb147b Mon Sep 17 00:00:00 2001 From: Florian Schaal Date: Thu, 22 Oct 2020 14:44:27 +0200 Subject: [PATCH 055/300] show more lines for mail and lets encrypt log --- server/lib/classes/cron.d/100-monitor_letsencrypt_log.inc.php | 2 +- server/lib/classes/cron.d/100-monitor_mail_log.inc.php | 2 +- server/lib/classes/monitor_tools.inc.php | 4 ++-- 3 files changed, 4 insertions(+), 4 deletions(-) diff --git a/server/lib/classes/cron.d/100-monitor_letsencrypt_log.inc.php b/server/lib/classes/cron.d/100-monitor_letsencrypt_log.inc.php index 401dcd1e55..166628114c 100644 --- a/server/lib/classes/cron.d/100-monitor_letsencrypt_log.inc.php +++ b/server/lib/classes/cron.d/100-monitor_letsencrypt_log.inc.php @@ -65,7 +65,7 @@ class cronjob_monitor_letsencrypt_log extends cronjob { $type = 'log_letsencrypt'; /* Get the data of the log */ - $data = $this->_tools->_getLogData($type); + $data = $this->_tools->_getLogData($type, 500); /* * actually this info has no state. diff --git a/server/lib/classes/cron.d/100-monitor_mail_log.inc.php b/server/lib/classes/cron.d/100-monitor_mail_log.inc.php index 5c41105d3c..e7562f6bf1 100644 --- a/server/lib/classes/cron.d/100-monitor_mail_log.inc.php +++ b/server/lib/classes/cron.d/100-monitor_mail_log.inc.php @@ -67,7 +67,7 @@ class cronjob_monitor_mail_log extends cronjob { $type = 'log_mail'; /* Get the data of the log */ - $data = $this->_tools->_getLogData($type); + $data = $this->_tools->_getLogData($type, 500); /* * actually this info has no state. diff --git a/server/lib/classes/monitor_tools.inc.php b/server/lib/classes/monitor_tools.inc.php index 31e36836d5..8f7f9652c7 100644 --- a/server/lib/classes/monitor_tools.inc.php +++ b/server/lib/classes/monitor_tools.inc.php @@ -488,7 +488,7 @@ class monitor_tools { return $res; } - public function _getLogData($log) { + public function _getLogData($log, $max_lines = 100) { global $conf; $dist = ''; @@ -645,7 +645,7 @@ class monitor_tools { } else { $log = ''; if (is_readable($logfile)) { - $fd = popen('tail -n 100 ' . escapeshellarg($logfile), 'r'); + $fd = popen('tail -n '.intval($max_lines).' ' . escapeshellarg($logfile), 'r'); if ($fd) { while (!feof($fd)) { $log .= fgets($fd, 4096); -- GitLab From d164182c3dd864c8e2409ae761a6fd07ecd65a23 Mon Sep 17 00:00:00 2001 From: Jesse Norell Date: Thu, 22 Oct 2020 13:37:06 -0600 Subject: [PATCH 056/300] fix rbl list updates --- .../postfix_server_plugin.inc.php | 44 ++++++++++--------- 1 file changed, 24 insertions(+), 20 deletions(-) diff --git a/server/plugins-available/postfix_server_plugin.inc.php b/server/plugins-available/postfix_server_plugin.inc.php index 21a6a404ea..23373a1de0 100644 --- a/server/plugins-available/postfix_server_plugin.inc.php +++ b/server/plugins-available/postfix_server_plugin.inc.php @@ -110,36 +110,40 @@ class postfix_server_plugin { } if($mail_config['realtime_blackhole_list'] != $old_ini_data['mail']['realtime_blackhole_list']) { - $rbl_updated = false; - $rbl_hosts = trim(preg_replace('/\s+/', '', $mail_config['realtime_blackhole_list'])); - if($rbl_hosts != ''){ - $rbl_hosts = explode(",", $rbl_hosts); - } + # reject_rbl_client is now in smtpd_client_restrictions, remove here: $options = preg_split("/,\s*/", exec("postconf -h smtpd_recipient_restrictions")); $new_options = array(); foreach ($options as $key => $value) { $value = trim($value); if ($value == '') continue; - if (!preg_match('/reject_rbl_client/', $value)) { - $new_options[] = $value; - } else { - if(is_array($rbl_hosts) && !empty($rbl_hosts) && !$rbl_updated){ - $rbl_updated = true; - foreach ($rbl_hosts as $key2 => $value2) { - $value2 = trim($value2); - if($value2 != '') $new_options[] = "reject_rbl_client ".$value2; - } - } - } + if (preg_match('/^reject_rbl_client/', $value)) continue; + $new_options[] = $value; } - //* first time add rbl-list - if (!$rbl_updated && is_array($rbl_hosts) && !empty($rbl_hosts)) { + $app->system->exec_safe("postconf -e ?", 'smtpd_recipient_restrictions = '.implode(", ", $new_options)); + + $rbl_options = array(); + $rbl_hosts = trim(preg_replace('/\s+/', '', $mail_config['realtime_blackhole_list'])); + if($rbl_hosts != ''){ + $rbl_hosts = explode(",", $rbl_hosts); foreach ($rbl_hosts as $key => $value) { $value = trim($value); - if($value != '') $new_options[] = "reject_rbl_client ".$value; + if($value != '') $rbl_options[] = "reject_rbl_client ".$value; } } - $app->system->exec_safe("postconf -e ?", 'smtpd_recipient_restrictions = '.implode(", ", $new_options)); + + $options = preg_split("/,\s*/", exec("postconf -h smtpd_client_restrictions")); + $new_options = array(); + foreach ($options as $key => $value) { + $value = trim($value); + if ($value == '') continue; + if (preg_match('/^reject_rbl_client/', $value)) continue; + $new_options[] = $value; + if (preg_match('/^permit_mynetworks/', $value)) { + $new_options = array_merge($new_options, $rbl_options); + $rbl_options = array(); // so we don't ever array_merge twice + } + } + $app->system->exec_safe("postconf -e ?", 'smtpd_client_restrictions = '.implode(", ", $new_options)); } if ($mail_config['reject_sender_login_mismatch'] != $old_ini_data['mail']['reject_sender_login_mismatch']) { -- GitLab From 45391bb94d1d9687b6d3eff54a3a93ef7548f403 Mon Sep 17 00:00:00 2001 From: Marius Burkard Date: Thu, 22 Oct 2020 22:13:40 +0200 Subject: [PATCH 057/300] Update server_services_plugin.inc.php --- server/plugins-available/server_services_plugin.inc.php | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/server/plugins-available/server_services_plugin.inc.php b/server/plugins-available/server_services_plugin.inc.php index 29710a7285..c3eb78f194 100644 --- a/server/plugins-available/server_services_plugin.inc.php +++ b/server/plugins-available/server_services_plugin.inc.php @@ -42,7 +42,7 @@ class server_services_plugin { var $courier_plugins = array('maildrop_plugin'); var $dovecot_plugins = array('maildeliver_plugin'); - var $web_plugins = array('aps_plugin', 'cron_plugin', 'cron_jailkit_plugin', 'ftpuser_base_plugin', 'shelluser_base_plugin', 'shelluser_jailkit_plugin', 'webserver_plugin'); + var $web_plugins = array('cron_plugin', 'cron_jailkit_plugin', 'ftpuser_base_plugin', 'shelluser_base_plugin', 'shelluser_jailkit_plugin', 'webserver_plugin'); var $apache_plugins = array('apache2_plugin'); var $nginx_plugins = array('nginx_plugin', 'nginx_reverseproxy_plugin'); -- GitLab From e26fe25b89a2d0962b90196c258415942a945e4d Mon Sep 17 00:00:00 2001 From: thom Date: Thu, 22 Oct 2020 22:20:46 +0200 Subject: [PATCH 058/300] Make help messages menu hideable (#5829) --- install/tpl/system.ini.master | 4 +--- interface/web/admin/form/system_config.tform.php | 6 ++++++ interface/web/admin/lib/lang/ar_system_config.lng | 1 + interface/web/admin/lib/lang/bg_system_config.lng | 1 + interface/web/admin/lib/lang/br_system_config.lng | 1 + interface/web/admin/lib/lang/ca_system_config.lng | 1 + interface/web/admin/lib/lang/cz_system_config.lng | 1 + interface/web/admin/lib/lang/de_system_config.lng | 1 + interface/web/admin/lib/lang/dk_system_config.lng | 1 + interface/web/admin/lib/lang/el_system_config.lng | 1 + interface/web/admin/lib/lang/en_system_config.lng | 1 + interface/web/admin/lib/lang/es_system_config.lng | 1 + interface/web/admin/lib/lang/fi_system_config.lng | 1 + interface/web/admin/lib/lang/fr_system_config.lng | 1 + interface/web/admin/lib/lang/hr_system_config.lng | 1 + interface/web/admin/lib/lang/hu_system_config.lng | 1 + interface/web/admin/lib/lang/id_system_config.lng | 1 + interface/web/admin/lib/lang/it_system_config.lng | 1 + interface/web/admin/lib/lang/ja_system_config.lng | 1 + interface/web/admin/lib/lang/nl_system_config.lng | 1 + interface/web/admin/lib/lang/pl_system_config.lng | 1 + interface/web/admin/lib/lang/pt_system_config.lng | 1 + interface/web/admin/lib/lang/ro_system_config.lng | 1 + interface/web/admin/lib/lang/ru_system_config.lng | 1 + interface/web/admin/lib/lang/se_system_config.lng | 1 + interface/web/admin/lib/lang/sk_system_config.lng | 1 + interface/web/admin/lib/lang/tr_system_config.lng | 1 + interface/web/admin/templates/system_config_misc_edit.htm | 6 ++++++ interface/web/help/lib/module.conf.php | 2 +- 29 files changed, 39 insertions(+), 4 deletions(-) diff --git a/install/tpl/system.ini.master b/install/tpl/system.ini.master index a08796ce5a..69ca6bab74 100644 --- a/install/tpl/system.ini.master +++ b/install/tpl/system.ini.master @@ -4,9 +4,6 @@ [client] -[help] -show_support_messages=n - [dns] [mail] @@ -59,6 +56,7 @@ tab_change_discard=n tab_change_warning=n use_loadindicator=y use_combobox=y +show_support_messages=y maintenance_mode=n maintenance_mode_exclude_ips= admin_dashlets_left= diff --git a/interface/web/admin/form/system_config.tform.php b/interface/web/admin/form/system_config.tform.php index 6b9b59b5e4..530a0452ce 100644 --- a/interface/web/admin/form/system_config.tform.php +++ b/interface/web/admin/form/system_config.tform.php @@ -619,6 +619,12 @@ $form["tabs"]['misc'] = array ( 'default' => 'y', 'value' => array(0 => 'n', 1 => 'y') ), + 'show_support_messages' => array ( + 'datatype' => 'VARCHAR', + 'formtype' => 'CHECKBOX', + 'default' => 'y', + 'value' => array(0 => 'n', 1 => 'y') + ), 'maintenance_mode' => array ( 'datatype' => 'VARCHAR', 'formtype' => 'CHECKBOX', diff --git a/interface/web/admin/lib/lang/ar_system_config.lng b/interface/web/admin/lib/lang/ar_system_config.lng index a5d245f16b..e6df413bbe 100644 --- a/interface/web/admin/lib/lang/ar_system_config.lng +++ b/interface/web/admin/lib/lang/ar_system_config.lng @@ -99,4 +99,5 @@ $wb['btn_save_txt'] = 'Save'; $wb['btn_cancel_txt'] = 'Cancel'; $wb['web_php_options_txt'] = 'PHP Handler (Apache only)'; $wb['client_protection_txt'] = 'Client protection'; +$wb['show_support_messages_txt'] = 'Show message function in help module'; ?> diff --git a/interface/web/admin/lib/lang/bg_system_config.lng b/interface/web/admin/lib/lang/bg_system_config.lng index fa9cdbf48d..301f5fe1b7 100644 --- a/interface/web/admin/lib/lang/bg_system_config.lng +++ b/interface/web/admin/lib/lang/bg_system_config.lng @@ -99,4 +99,5 @@ $wb['btn_save_txt'] = 'Save'; $wb['btn_cancel_txt'] = 'Cancel'; $wb['web_php_options_txt'] = 'PHP Handler (Apache only)'; $wb['client_protection_txt'] = 'Client protection'; +$wb['show_support_messages_txt'] = 'Show message function in help module'; ?> diff --git a/interface/web/admin/lib/lang/br_system_config.lng b/interface/web/admin/lib/lang/br_system_config.lng index fba3b5a07c..01962d3309 100644 --- a/interface/web/admin/lib/lang/br_system_config.lng +++ b/interface/web/admin/lib/lang/br_system_config.lng @@ -99,4 +99,5 @@ $wb['btn_save_txt'] = 'Salvar'; $wb['btn_cancel_txt'] = 'Cancelar'; $wb['web_php_options_txt'] = 'Manipulador do php (Somente apache)'; $wb['client_protection_txt'] = 'Client protection'; +$wb['show_support_messages_txt'] = 'Show message function in help module'; ?> diff --git a/interface/web/admin/lib/lang/ca_system_config.lng b/interface/web/admin/lib/lang/ca_system_config.lng index ef64d68998..507dfb750f 100644 --- a/interface/web/admin/lib/lang/ca_system_config.lng +++ b/interface/web/admin/lib/lang/ca_system_config.lng @@ -99,4 +99,5 @@ $wb['btn_save_txt'] = 'Save'; $wb['btn_cancel_txt'] = 'Cancel'; $wb['web_php_options_txt'] = 'PHP Handler (Apache only)'; $wb['client_protection_txt'] = 'Client protection'; +$wb['show_support_messages_txt'] = 'Show message function in help module'; ?> diff --git a/interface/web/admin/lib/lang/cz_system_config.lng b/interface/web/admin/lib/lang/cz_system_config.lng index ea10785750..182bfd326b 100644 --- a/interface/web/admin/lib/lang/cz_system_config.lng +++ b/interface/web/admin/lib/lang/cz_system_config.lng @@ -99,4 +99,5 @@ $wb['btn_save_txt'] = 'Uložit'; $wb['btn_cancel_txt'] = 'Zrušit'; $wb['web_php_options_txt'] = 'PHP Handler (Apache only)'; $wb['client_protection_txt'] = 'Client protection'; +$wb['show_support_messages_txt'] = 'Show message function in help module'; ?> diff --git a/interface/web/admin/lib/lang/de_system_config.lng b/interface/web/admin/lib/lang/de_system_config.lng index e80de10943..3b48e220ee 100644 --- a/interface/web/admin/lib/lang/de_system_config.lng +++ b/interface/web/admin/lib/lang/de_system_config.lng @@ -103,4 +103,5 @@ $wb['btn_save_txt'] = 'Speichern'; $wb['btn_cancel_txt'] = 'Abbrechen'; $wb['web_php_options_txt'] = 'PHP Handler (Nur Apache)'; $wb['client_protection_txt'] = 'Client protection'; +$wb['show_support_messages_txt'] = 'Show message function in help module'; ?> diff --git a/interface/web/admin/lib/lang/dk_system_config.lng b/interface/web/admin/lib/lang/dk_system_config.lng index 5327d86209..5a0696020a 100644 --- a/interface/web/admin/lib/lang/dk_system_config.lng +++ b/interface/web/admin/lib/lang/dk_system_config.lng @@ -99,4 +99,5 @@ $wb['btn_save_txt'] = 'Save'; $wb['btn_cancel_txt'] = 'Cancel'; $wb['web_php_options_txt'] = 'PHP Handler (Apache only)'; $wb['client_protection_txt'] = 'Client protection'; +$wb['show_support_messages_txt'] = 'Show message function in help module'; ?> diff --git a/interface/web/admin/lib/lang/el_system_config.lng b/interface/web/admin/lib/lang/el_system_config.lng index 5bb6b4a312..35c0d99344 100644 --- a/interface/web/admin/lib/lang/el_system_config.lng +++ b/interface/web/admin/lib/lang/el_system_config.lng @@ -99,4 +99,5 @@ $wb['btn_save_txt'] = 'Save'; $wb['btn_cancel_txt'] = 'Cancel'; $wb['web_php_options_txt'] = 'PHP Handler (Apache only)'; $wb['client_protection_txt'] = 'Client protection'; +$wb['show_support_messages_txt'] = 'Show message function in help module'; ?> diff --git a/interface/web/admin/lib/lang/en_system_config.lng b/interface/web/admin/lib/lang/en_system_config.lng index 489ddbd32c..d81128a269 100644 --- a/interface/web/admin/lib/lang/en_system_config.lng +++ b/interface/web/admin/lib/lang/en_system_config.lng @@ -103,4 +103,5 @@ $wb['btn_save_txt'] = 'Save'; $wb['btn_cancel_txt'] = 'Cancel'; $wb['web_php_options_txt'] = 'PHP Handler (Apache only)'; $wb['client_protection_txt'] = 'Client protection'; +$wb['show_support_messages_txt'] = 'Show message function in help module'; ?> diff --git a/interface/web/admin/lib/lang/es_system_config.lng b/interface/web/admin/lib/lang/es_system_config.lng index f77377c2d0..8c87391a9b 100644 --- a/interface/web/admin/lib/lang/es_system_config.lng +++ b/interface/web/admin/lib/lang/es_system_config.lng @@ -99,4 +99,5 @@ $wb['btn_save_txt'] = 'Save'; $wb['btn_cancel_txt'] = 'Cancel'; $wb['web_php_options_txt'] = 'PHP Handler (Apache only)'; $wb['client_protection_txt'] = 'Client protection'; +$wb['show_support_messages_txt'] = 'Show message function in help module'; ?> diff --git a/interface/web/admin/lib/lang/fi_system_config.lng b/interface/web/admin/lib/lang/fi_system_config.lng index d35125456d..a1c94dfc62 100644 --- a/interface/web/admin/lib/lang/fi_system_config.lng +++ b/interface/web/admin/lib/lang/fi_system_config.lng @@ -99,4 +99,5 @@ $wb['btn_save_txt'] = 'Save'; $wb['btn_cancel_txt'] = 'Cancel'; $wb['web_php_options_txt'] = 'PHP Handler (Apache only)'; $wb['client_protection_txt'] = 'Client protection'; +$wb['show_support_messages_txt'] = 'Show message function in help module'; ?> diff --git a/interface/web/admin/lib/lang/fr_system_config.lng b/interface/web/admin/lib/lang/fr_system_config.lng index acbe607c74..be3b771570 100644 --- a/interface/web/admin/lib/lang/fr_system_config.lng +++ b/interface/web/admin/lib/lang/fr_system_config.lng @@ -99,4 +99,5 @@ $wb['btn_save_txt'] = 'Save'; $wb['btn_cancel_txt'] = 'Cancel'; $wb['web_php_options_txt'] = 'PHP Handler (Apache only)'; $wb['client_protection_txt'] = 'Client protection'; +$wb['show_support_messages_txt'] = 'Show message function in help module'; ?> diff --git a/interface/web/admin/lib/lang/hr_system_config.lng b/interface/web/admin/lib/lang/hr_system_config.lng index a1a63e88dc..ef6c311473 100644 --- a/interface/web/admin/lib/lang/hr_system_config.lng +++ b/interface/web/admin/lib/lang/hr_system_config.lng @@ -99,4 +99,5 @@ $wb['btn_save_txt'] = 'Save'; $wb['btn_cancel_txt'] = 'Cancel'; $wb['web_php_options_txt'] = 'PHP Handler (Apache only)'; $wb['client_protection_txt'] = 'Client protection'; +$wb['show_support_messages_txt'] = 'Show message function in help module'; ?> diff --git a/interface/web/admin/lib/lang/hu_system_config.lng b/interface/web/admin/lib/lang/hu_system_config.lng index 65f673941f..32e4e4ac36 100644 --- a/interface/web/admin/lib/lang/hu_system_config.lng +++ b/interface/web/admin/lib/lang/hu_system_config.lng @@ -99,4 +99,5 @@ $wb['btn_save_txt'] = 'Save'; $wb['btn_cancel_txt'] = 'Cancel'; $wb['web_php_options_txt'] = 'PHP Handler (Apache only)'; $wb['client_protection_txt'] = 'Client protection'; +$wb['show_support_messages_txt'] = 'Show message function in help module'; ?> diff --git a/interface/web/admin/lib/lang/id_system_config.lng b/interface/web/admin/lib/lang/id_system_config.lng index 357ce174e6..bc618f8481 100644 --- a/interface/web/admin/lib/lang/id_system_config.lng +++ b/interface/web/admin/lib/lang/id_system_config.lng @@ -99,4 +99,5 @@ $wb['btn_save_txt'] = 'Save'; $wb['btn_cancel_txt'] = 'Cancel'; $wb['web_php_options_txt'] = 'PHP Handler (Apache only)'; $wb['client_protection_txt'] = 'Client protection'; +$wb['show_support_messages_txt'] = 'Show message function in help module'; ?> diff --git a/interface/web/admin/lib/lang/it_system_config.lng b/interface/web/admin/lib/lang/it_system_config.lng index 5d7cd32633..4268f5a47e 100644 --- a/interface/web/admin/lib/lang/it_system_config.lng +++ b/interface/web/admin/lib/lang/it_system_config.lng @@ -99,4 +99,5 @@ $wb['btn_save_txt'] = 'Save'; $wb['btn_cancel_txt'] = 'Cancel'; $wb['web_php_options_txt'] = 'PHP Handler (Apache only)'; $wb['client_protection_txt'] = 'Client protection'; +$wb['show_support_messages_txt'] = 'Show message function in help module'; ?> diff --git a/interface/web/admin/lib/lang/ja_system_config.lng b/interface/web/admin/lib/lang/ja_system_config.lng index 1887b69910..d9a7441cf1 100644 --- a/interface/web/admin/lib/lang/ja_system_config.lng +++ b/interface/web/admin/lib/lang/ja_system_config.lng @@ -99,4 +99,5 @@ $wb['btn_save_txt'] = 'Save'; $wb['btn_cancel_txt'] = 'Cancel'; $wb['web_php_options_txt'] = 'PHP Handler (Apache only)'; $wb['client_protection_txt'] = 'Client protection'; +$wb['show_support_messages_txt'] = 'Show message function in help module'; ?> diff --git a/interface/web/admin/lib/lang/nl_system_config.lng b/interface/web/admin/lib/lang/nl_system_config.lng index d5cd9e5c37..a6c7303477 100644 --- a/interface/web/admin/lib/lang/nl_system_config.lng +++ b/interface/web/admin/lib/lang/nl_system_config.lng @@ -99,4 +99,5 @@ $wb['btn_save_txt'] = 'Save'; $wb['btn_cancel_txt'] = 'Cancel'; $wb['web_php_options_txt'] = 'PHP Handler (Apache only)'; $wb['client_protection_txt'] = 'Client protection'; +$wb['show_support_messages_txt'] = 'Show message function in help module'; ?> diff --git a/interface/web/admin/lib/lang/pl_system_config.lng b/interface/web/admin/lib/lang/pl_system_config.lng index ace1b37973..c15c4d2756 100644 --- a/interface/web/admin/lib/lang/pl_system_config.lng +++ b/interface/web/admin/lib/lang/pl_system_config.lng @@ -99,4 +99,5 @@ $wb['btn_save_txt'] = 'Save'; $wb['btn_cancel_txt'] = 'Cancel'; $wb['web_php_options_txt'] = 'PHP Handler (Apache only)'; $wb['client_protection_txt'] = 'Client protection'; +$wb['show_support_messages_txt'] = 'Show message function in help module'; ?> diff --git a/interface/web/admin/lib/lang/pt_system_config.lng b/interface/web/admin/lib/lang/pt_system_config.lng index 6738dec45f..efc557257a 100644 --- a/interface/web/admin/lib/lang/pt_system_config.lng +++ b/interface/web/admin/lib/lang/pt_system_config.lng @@ -99,4 +99,5 @@ $wb['btn_save_txt'] = 'Save'; $wb['btn_cancel_txt'] = 'Cancel'; $wb['web_php_options_txt'] = 'PHP Handler (Apache only)'; $wb['client_protection_txt'] = 'Client protection'; +$wb['show_support_messages_txt'] = 'Show message function in help module'; ?> diff --git a/interface/web/admin/lib/lang/ro_system_config.lng b/interface/web/admin/lib/lang/ro_system_config.lng index c4a82405c9..e8ebe587ad 100644 --- a/interface/web/admin/lib/lang/ro_system_config.lng +++ b/interface/web/admin/lib/lang/ro_system_config.lng @@ -99,4 +99,5 @@ $wb['btn_save_txt'] = 'Save'; $wb['btn_cancel_txt'] = 'Cancel'; $wb['web_php_options_txt'] = 'PHP Handler (Apache only)'; $wb['client_protection_txt'] = 'Client protection'; +$wb['show_support_messages_txt'] = 'Show message function in help module'; ?> diff --git a/interface/web/admin/lib/lang/ru_system_config.lng b/interface/web/admin/lib/lang/ru_system_config.lng index 4dc033721c..b90d51e6f3 100644 --- a/interface/web/admin/lib/lang/ru_system_config.lng +++ b/interface/web/admin/lib/lang/ru_system_config.lng @@ -99,4 +99,5 @@ $wb['btn_save_txt'] = 'Save'; $wb['btn_cancel_txt'] = 'Cancel'; $wb['web_php_options_txt'] = 'PHP Handler (Apache only)'; $wb['client_protection_txt'] = 'Client protection'; +$wb['show_support_messages_txt'] = 'Show message function in help module'; ?> diff --git a/interface/web/admin/lib/lang/se_system_config.lng b/interface/web/admin/lib/lang/se_system_config.lng index b6d1768e00..fc150f53c6 100644 --- a/interface/web/admin/lib/lang/se_system_config.lng +++ b/interface/web/admin/lib/lang/se_system_config.lng @@ -99,4 +99,5 @@ $wb['btn_save_txt'] = 'Save'; $wb['btn_cancel_txt'] = 'Cancel'; $wb['web_php_options_txt'] = 'PHP Handler (Apache only)'; $wb['client_protection_txt'] = 'Client protection'; +$wb['show_support_messages_txt'] = 'Show message function in help module'; ?> diff --git a/interface/web/admin/lib/lang/sk_system_config.lng b/interface/web/admin/lib/lang/sk_system_config.lng index db488f2228..35ef9e370e 100644 --- a/interface/web/admin/lib/lang/sk_system_config.lng +++ b/interface/web/admin/lib/lang/sk_system_config.lng @@ -99,4 +99,5 @@ $wb['btn_save_txt'] = 'Save'; $wb['btn_cancel_txt'] = 'Cancel'; $wb['web_php_options_txt'] = 'PHP Handler (Apache only)'; $wb['client_protection_txt'] = 'Client protection'; +$wb['show_support_messages_txt'] = 'Show message function in help module'; ?> diff --git a/interface/web/admin/lib/lang/tr_system_config.lng b/interface/web/admin/lib/lang/tr_system_config.lng index 64d81b2c69..f83a226a0b 100644 --- a/interface/web/admin/lib/lang/tr_system_config.lng +++ b/interface/web/admin/lib/lang/tr_system_config.lng @@ -102,4 +102,5 @@ $wb['btn_save_txt'] = 'Save'; $wb['btn_cancel_txt'] = 'Cancel'; $wb['web_php_options_txt'] = 'PHP Handler (Apache only)'; $wb['client_protection_txt'] = 'Client protection'; +$wb['show_support_messages_txt'] = 'Show message function in help module'; ?> diff --git a/interface/web/admin/templates/system_config_misc_edit.htm b/interface/web/admin/templates/system_config_misc_edit.htm index ea8386c224..9d40dae5fc 100644 --- a/interface/web/admin/templates/system_config_misc_edit.htm +++ b/interface/web/admin/templates/system_config_misc_edit.htm @@ -84,6 +84,12 @@ {tmpl_var name='use_combobox'}
{tmpl_var name='f5_to_reload_js_txt'} +
+ +
+ {tmpl_var name='show_support_messages'} +
+
diff --git a/interface/web/help/lib/module.conf.php b/interface/web/help/lib/module.conf.php index 7ef63baa03..559ac3b4ff 100644 --- a/interface/web/help/lib/module.conf.php +++ b/interface/web/help/lib/module.conf.php @@ -27,7 +27,7 @@ $module['tab_width'] = ''; //*** Menu Definition ***************************************** // read web config $app->uses('getconf'); -$global_config = $app->getconf->get_global_config('help'); +$global_config = $app->getconf->get_global_config('misc'); if($global_config['show_support_messages'] == 'y') { //* make sure that the items array is empty $items = array(); -- GitLab From d5a0f240289c78b3c066af7c5fc0086d4850004c Mon Sep 17 00:00:00 2001 From: Jesse Norell Date: Thu, 22 Oct 2020 12:03:41 -0600 Subject: [PATCH 059/300] check for conf-custom templates during update --- install/lib/update.lib.php | 47 ++++++++++++++++++++++++++++++++++++++ install/update.php | 10 ++++---- 2 files changed, 53 insertions(+), 4 deletions(-) diff --git a/install/lib/update.lib.php b/install/lib/update.lib.php index 4dcb31cff1..a28de0b798 100644 --- a/install/lib/update.lib.php +++ b/install/lib/update.lib.php @@ -459,4 +459,51 @@ function check_service_config_state($servicename, $detected_value) { } else return $current_state; } +/** + * Check for existing conf-custom templates and offer to rename them. + */ +function checkAndRenameCustomTemplates($default_prompt='no') { + global $inst; + $ret = true; + + $default_prompt = ($default_prompt == 'yes') ? 'yes' : 'no'; + + $template_directories = array( + '/usr/local/ispconfig/server/conf-custom', + '/usr/local/ispconfig/server/conf-custom/install', + ); + + $found_templates = array(); + foreach ($template_directories as $dir) { + if (!is_dir($dir)) { continue; } + $output = array(); + exec("find $dir -maxdepth 1 -name \*.master", $output); + foreach ($output as $f) { + if (is_file(trim($f))) { + $found_templates[] = trim($f); + } + } + } + + if (count($found_templates) > 0) { + echo "The following custom templates were found:\n\n"; + echo implode("\n", $found_templates) . "\n\n"; + + $answer = $inst->simple_query('Do you want to rename these conf-custom templates now so the default templates are used?', array('yes', 'no'), $default_prompt, 'rename_custom_templates'); + if (strtolower($answer) == 'yes') { + $date=date('-Y-m-d_H-i'); + foreach ($found_templates as $f) { + if (!rename($f, $f.$date)) { + echo "Error renaming template $f\n"; + $ret = false; + } + } + } else { + $ret = null; + } + } + + return $ret; +} + ?> diff --git a/install/update.php b/install/update.php index 685d52892f..c15678486f 100644 --- a/install/update.php +++ b/install/update.php @@ -370,6 +370,8 @@ $reconfigure_services_answer = $inst->simple_query('Reconfigure Services?', arra if($reconfigure_services_answer == 'yes' || $reconfigure_services_answer == 'selected') { + checkAndRenameCustomTemplates(); + if($conf['services']['mail']) { //** Configure postfix @@ -483,10 +485,10 @@ if($reconfigure_services_answer == 'yes' || $reconfigure_services_answer == 'sel } - if($conf['services']['xmpp'] && $inst->reconfigure_app('XMPP', $reconfigure_services_answer)) { - //** Configure Metronome XMPP - $inst->configure_xmpp('dont-create-certs'); - } + if($conf['services']['xmpp'] && $inst->reconfigure_app('XMPP', $reconfigure_services_answer)) { + //** Configure Metronome XMPP + $inst->configure_xmpp('dont-create-certs'); + } if($conf['services']['firewall'] && $inst->reconfigure_app('Firewall', $reconfigure_services_answer)) { if($conf['ufw']['installed'] == true) { -- GitLab From ab74ee2f66d4403bf3bb35bc9271c3e240719791 Mon Sep 17 00:00:00 2001 From: Jesse Norell Date: Thu, 22 Oct 2020 14:44:55 -0600 Subject: [PATCH 060/300] filenames via glob() --- install/lib/update.lib.php | 8 +++----- 1 file changed, 3 insertions(+), 5 deletions(-) diff --git a/install/lib/update.lib.php b/install/lib/update.lib.php index a28de0b798..6d67472fdd 100644 --- a/install/lib/update.lib.php +++ b/install/lib/update.lib.php @@ -476,11 +476,9 @@ function checkAndRenameCustomTemplates($default_prompt='no') { $found_templates = array(); foreach ($template_directories as $dir) { if (!is_dir($dir)) { continue; } - $output = array(); - exec("find $dir -maxdepth 1 -name \*.master", $output); - foreach ($output as $f) { - if (is_file(trim($f))) { - $found_templates[] = trim($f); + foreach (glob("$dir/*.master") as $f) { + if (is_file($f)) { + $found_templates[] = $f; } } } -- GitLab From a89b0e9392c843f7c5e3c1a768d043bd6fd72860 Mon Sep 17 00:00:00 2001 From: Jesse Norell Date: Thu, 22 Oct 2020 13:37:06 -0600 Subject: [PATCH 061/300] fix rbl list updates --- .../postfix_server_plugin.inc.php | 44 ++++++++++--------- 1 file changed, 24 insertions(+), 20 deletions(-) diff --git a/server/plugins-available/postfix_server_plugin.inc.php b/server/plugins-available/postfix_server_plugin.inc.php index 21a6a404ea..23373a1de0 100644 --- a/server/plugins-available/postfix_server_plugin.inc.php +++ b/server/plugins-available/postfix_server_plugin.inc.php @@ -110,36 +110,40 @@ class postfix_server_plugin { } if($mail_config['realtime_blackhole_list'] != $old_ini_data['mail']['realtime_blackhole_list']) { - $rbl_updated = false; - $rbl_hosts = trim(preg_replace('/\s+/', '', $mail_config['realtime_blackhole_list'])); - if($rbl_hosts != ''){ - $rbl_hosts = explode(",", $rbl_hosts); - } + # reject_rbl_client is now in smtpd_client_restrictions, remove here: $options = preg_split("/,\s*/", exec("postconf -h smtpd_recipient_restrictions")); $new_options = array(); foreach ($options as $key => $value) { $value = trim($value); if ($value == '') continue; - if (!preg_match('/reject_rbl_client/', $value)) { - $new_options[] = $value; - } else { - if(is_array($rbl_hosts) && !empty($rbl_hosts) && !$rbl_updated){ - $rbl_updated = true; - foreach ($rbl_hosts as $key2 => $value2) { - $value2 = trim($value2); - if($value2 != '') $new_options[] = "reject_rbl_client ".$value2; - } - } - } + if (preg_match('/^reject_rbl_client/', $value)) continue; + $new_options[] = $value; } - //* first time add rbl-list - if (!$rbl_updated && is_array($rbl_hosts) && !empty($rbl_hosts)) { + $app->system->exec_safe("postconf -e ?", 'smtpd_recipient_restrictions = '.implode(", ", $new_options)); + + $rbl_options = array(); + $rbl_hosts = trim(preg_replace('/\s+/', '', $mail_config['realtime_blackhole_list'])); + if($rbl_hosts != ''){ + $rbl_hosts = explode(",", $rbl_hosts); foreach ($rbl_hosts as $key => $value) { $value = trim($value); - if($value != '') $new_options[] = "reject_rbl_client ".$value; + if($value != '') $rbl_options[] = "reject_rbl_client ".$value; } } - $app->system->exec_safe("postconf -e ?", 'smtpd_recipient_restrictions = '.implode(", ", $new_options)); + + $options = preg_split("/,\s*/", exec("postconf -h smtpd_client_restrictions")); + $new_options = array(); + foreach ($options as $key => $value) { + $value = trim($value); + if ($value == '') continue; + if (preg_match('/^reject_rbl_client/', $value)) continue; + $new_options[] = $value; + if (preg_match('/^permit_mynetworks/', $value)) { + $new_options = array_merge($new_options, $rbl_options); + $rbl_options = array(); // so we don't ever array_merge twice + } + } + $app->system->exec_safe("postconf -e ?", 'smtpd_client_restrictions = '.implode(", ", $new_options)); } if ($mail_config['reject_sender_login_mismatch'] != $old_ini_data['mail']['reject_sender_login_mismatch']) { -- GitLab From 8dc4ce14f1a90f0b88c5a27702566519f2e237f3 Mon Sep 17 00:00:00 2001 From: Jesse Norell Date: Thu, 22 Oct 2020 15:15:59 -0600 Subject: [PATCH 062/300] remove stale "running" cronjobs --- server/lib/classes/cronjob.inc.php | 7 +++++++ 1 file changed, 7 insertions(+) diff --git a/server/lib/classes/cronjob.inc.php b/server/lib/classes/cronjob.inc.php index 27bc7038cf..61d45749a8 100644 --- a/server/lib/classes/cronjob.inc.php +++ b/server/lib/classes/cronjob.inc.php @@ -99,6 +99,13 @@ class cronjob { if($conf['log_priority'] <= LOGLEVEL_DEBUG) print "Called onPrepare() for class " . get_class($this) . "\n"; // check the run time and values for this job + // remove stale cronjobs + $data = $app->db->queryAllRecords("SELECT `last_run` FROM `sys_cron` WHERE `name` = ? AND (`last_run` IS NOT NULL AND `last_run` < DATE_SUB(NOW(), INTERVAL 24 HOUR)) AND `running` = 1", get_class($this)); + foreach ($data as $rec) { + if($conf['log_priority'] <= LOGLEVEL_WARN) print "Removing stale sys_cron entry for ".get_class($this)." (last run ".$rec['last_run'].")\n"; + $app->db->query("DELETE FROM `sys_cron` WHERE `name` = ? AND `last_run` = ? AND `running` = 1", $rec['name'], $rec['last_run']); + } + // get previous run data $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) { -- GitLab From b3e8b00928a92fdc41349328922a8cb3fa84c864 Mon Sep 17 00:00:00 2001 From: Florian Schaal Date: Fri, 23 Oct 2020 06:40:23 +0200 Subject: [PATCH 063/300] re-add server/lib/classes/letsencrypt.inc.php --- server/lib/classes/letsencrypt.inc.php | 545 +++++++++++++++++++++++++ 1 file changed, 545 insertions(+) create mode 100644 server/lib/classes/letsencrypt.inc.php diff --git a/server/lib/classes/letsencrypt.inc.php b/server/lib/classes/letsencrypt.inc.php new file mode 100644 index 0000000000..3923954e10 --- /dev/null +++ b/server/lib/classes/letsencrypt.inc.php @@ -0,0 +1,545 @@ +get_acme_script(); + + $cmd = ''; + // generate cli format + foreach($domains as $domain) { + $cmd .= (string) " -d " . $domain; + } + + 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 --always-force-new-domain-key --keylength 4096; 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()) . ' --log ' . escapeshellarg($conf['ispconfig_log_dir'].'/acme.log') . '; 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; + + $dir = opendir($this->renew_config_path); + if(!$dir) return false; + + $path_scores = array(); + + $main_domain = reset($domains); + sort($domains); + $min_diff = false; + + while($file = readdir($dir)) { + if($file === '.' || $file === '..' || substr($file, -5) !== '.conf') continue; + $file_path = $this->renew_config_path . '/' . $file; + if(!is_file($file_path) || !is_readable($file_path)) continue; + + $fp = fopen($file_path, 'r'); + if(!$fp) continue; + + $path_scores[$file_path] = array( + 'domains' => array(), + 'diff' => 0, + 'has_main_domain' => false, + 'cert_paths' => array( + 'cert' => '', + 'privkey' => '', + 'chain' => '', + 'fullchain' => '' + ) + ); + $in_list = false; + while(!feof($fp) && $line = fgets($fp)) { + $line = trim($line); + if($line === '') continue; + elseif(!$in_list) { + if($line == '[[webroot_map]]') $in_list = true; + + $tmp = explode('=', $line, 2); + if(count($tmp) != 2) continue; + $key = trim($tmp[0]); + if($key == 'cert' || $key == 'privkey' || $key == 'chain' || $key == 'fullchain') { + $path_scores[$file_path]['cert_paths'][$key] = trim($tmp[1]); + } + + continue; + } + + $tmp = explode('=', $line, 2); + if(count($tmp) != 2) continue; + + $domain = trim($tmp[0]); + if($domain == $main_domain) $path_scores[$file_path]['has_main_domain'] = true; + $path_scores[$file_path]['domains'][] = $domain; + } + fclose($fp); + + sort($path_scores[$file_path]['domains']); + if(count(array_intersect($domains, $path_scores[$file_path]['domains'])) < 1) { + $path_scores[$file_path]['diff'] = false; + } else { + // give higher diff value to missing domains than to those that are too much in there + $path_scores[$file_path]['diff'] = (count(array_diff($domains, $path_scores[$file_path]['domains'])) * 1.5) + count(array_diff($path_scores[$file_path]['domains'], $domains)); + } + + if($min_diff === false || $path_scores[$file_path]['diff'] < $min_diff) $min_diff = $path_scores[$file_path]['diff']; + } + closedir($dir); + + if($min_diff === false) return false; + + $cert_paths = false; + $used_path = false; + foreach($path_scores as $path => $data) { + if($data['diff'] === $min_diff) { + $used_path = $path; + $cert_paths = $data['cert_paths']; + if($data['has_main_domain'] == true) break; + } + } + + $app->log("Let's Encrypt Cert config path is: " . ($used_path ? $used_path : "not found") . ".", LOGLEVEL_DEBUG); + + return $cert_paths; + } + + private function get_ssl_domain($data) { + 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) === '*.') { + // wildcard domain not yet supported by letsencrypt! + $app->log('Wildcard domains not yet supported by letsencrypt, so changing ' . $domain . ' to ' . substr($domain, 2), LOGLEVEL_WARN); + $domain = substr($domain, 2); + } + } + + return $domain; + } + + public function get_website_certificate_paths($data) { + $ssl_dir = $data['new']['document_root'].'/ssl'; + $domain = $this->get_ssl_domain($data); + + $cert_paths = array( + 'domain' => $domain, + 'key' => $ssl_dir.'/'.$domain.'.key', + 'key2' => $ssl_dir.'/'.$domain.'.key.org', + 'csr' => $ssl_dir.'/'.$domain.'.csr', + 'crt' => $ssl_dir.'/'.$domain.'.crt', + 'bundle' => $ssl_dir.'/'.$domain.'.bundle' + ); + + if($data['new']['ssl'] == 'y' && $data['new']['ssl_letsencrypt'] == 'y') { + $cert_paths = array( + 'domain' => $domain, + 'key' => $ssl_dir.'/'.$domain.'-le.key', + 'key2' => $ssl_dir.'/'.$domain.'-le.key.org', + 'crt' => $ssl_dir.'/'.$domain.'-le.crt', + 'bundle' => $ssl_dir.'/'.$domain.'-le.bundle' + ); + } + + return $cert_paths; + } + + public function request_certificates($data, $server_type = 'apache') { + global $app, $conf; + + $app->uses('getconf'); + $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']; + $crt_file = $tmp['crt']; + $bundle_file = $tmp['bundle']; + + // default values + $temp_domains = array($domain); + $cli_domain_arg = ''; + $subdomains = null; + $aliasdomains = null; + + //* be sure to have good domain + if(substr($domain,0,4) != 'www.' && ($data['new']['subdomain'] == "www" || $data['new']['subdomain'] == "*")) { + $temp_domains[] = "www." . $domain; + } + + //* then, add subdomain if we have + $subdomains = $app->db->queryAllRecords('SELECT domain FROM web_domain WHERE parent_domain_id = '.intval($data['new']['domain_id'])." AND active = 'y' AND type = 'subdomain' AND ssl_letsencrypt_exclude != 'y'"); + if(is_array($subdomains)) { + foreach($subdomains as $subdomain) { + $temp_domains[] = $subdomain['domain']; + } + } + + //* then, add alias domain if we have + $aliasdomains = $app->db->queryAllRecords('SELECT domain,subdomain FROM web_domain WHERE parent_domain_id = '.intval($data['new']['domain_id'])." AND active = 'y' AND type = 'alias' AND ssl_letsencrypt_exclude != 'y'"); + if(is_array($aliasdomains)) { + foreach($aliasdomains as $aliasdomain) { + $temp_domains[] = $aliasdomain['domain']; + if(isset($aliasdomain['subdomain']) && substr($aliasdomain['domain'],0,4) != 'www.' && ($aliasdomain['subdomain'] == "www" OR $aliasdomain['subdomain'] == "*")) { + $temp_domains[] = "www." . $aliasdomain['domain']; + } + } + } + + // prevent duplicate + $temp_domains = array_unique($temp_domains); + + // check if domains are reachable to avoid letsencrypt verification errors + $le_rnd_file = uniqid('le-') . '.txt'; + $le_rnd_hash = md5(uniqid('le-', true)); + if(!is_dir('/usr/local/ispconfig/interface/acme/.well-known/acme-challenge/')) { + $app->system->mkdir('/usr/local/ispconfig/interface/acme/.well-known/acme-challenge/', false, 0755, true); + } + file_put_contents('/usr/local/ispconfig/interface/acme/.well-known/acme-challenge/' . $le_rnd_file, $le_rnd_hash); + + $le_domains = array(); + foreach($temp_domains as $temp_domain) { + if((isset($web_config['skip_le_check']) && $web_config['skip_le_check'] == 'y') || (isset($server_config['migration_mode']) && $server_config['migration_mode'] == 'y')) { + $le_domains[] = $temp_domain; + } else { + $le_hash_check = trim(@file_get_contents('http://' . $temp_domain . '/.well-known/acme-challenge/' . $le_rnd_file)); + if($le_hash_check == $le_rnd_hash) { + $le_domains[] = $temp_domain; + $app->log("Verified domain " . $temp_domain . " should be reachable for letsencrypt.", LOGLEVEL_DEBUG); + } else { + $app->log("Could not verify domain " . $temp_domain . ", so excluding it from letsencrypt request.", LOGLEVEL_WARN); + } + } + } + $temp_domains = $le_domains; + unset($le_domains); + @unlink('/usr/local/ispconfig/interface/acme/.well-known/acme-challenge/' . $le_rnd_file); + + $le_domain_count = count($temp_domains); + if($le_domain_count > 100) { + $temp_domains = array_slice($temp_domains, 0, 100); + $app->log("There were " . $le_domain_count . " domains in the domain list. LE only supports 100, so we strip the rest.", LOGLEVEL_WARN); + } + + // unset useless data + unset($subdomains); + unset($aliasdomains); + + $this->certbot_use_certcommand = false; + $letsencrypt_cmd = ''; + $allow_return_codes = null; + if($use_acme) { + $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); + } + + $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); + + $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($this->certbot_use_certcommand === true && $letsencrypt_cmd) { + $cli_domain_arg = ''; + // generate cli format + foreach($temp_domains as $temp_domain) { + $cli_domain_arg .= (string) " --domains " . $temp_domain; + } + + + $letsencrypt_cmd = $this->get_certbot_script() . " 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); + + 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', '>=')) { + $crt_tmp_file = $le_files['fullchain']; + } else { + $crt_tmp_file = $le_files['cert']; + } + + $key_tmp_file = $le_files['privkey']; + $bundle_tmp_file = $le_files['chain']; + + if(!$success) { + // error issuing cert + $app->log('Let\'s Encrypt SSL Cert for: ' . $domain . ' could not be issued.', LOGLEVEL_WARN); + $app->log($letsencrypt_cmd, LOGLEVEL_WARN); + + // if cert already exists, dont remove it. Ex. expired/misstyped/noDnsYet alias domain, api down... + if(!file_exists($crt_tmp_file)) { + return false; + } + } + + //* check is been correctly created + if(file_exists($crt_tmp_file)) { + $app->log("Let's Encrypt Cert file: $crt_tmp_file exists.", LOGLEVEL_DEBUG); + $date = date("YmdHis"); + + //* TODO: check if is a symlink, if target same keep it, either remove it + if(is_file($key_file)) { + $app->system->copy($key_file, $key_file.'.old.'.$date); + $app->system->chmod($key_file.'.old.'.$date, 0400); + $app->system->unlink($key_file); + } + + if(@is_link($key_file)) $app->system->unlink($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); + $app->system->chmod($crt_file.'.old.'.$date, 0400); + $app->system->unlink($crt_file); + } + + if(@is_link($crt_file)) $app->system->unlink($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); + $app->system->chmod($bundle_file.'.old.'.$date, 0400); + $app->system->unlink($bundle_file); + } + + if(@is_link($bundle_file)) $app->system->unlink($bundle_file); + if(@file_exists($bundle_tmp_file)) $app->system->exec_safe("ln -s ? ?", $bundle_tmp_file, $bundle_file); + + return true; + } else { + $app->log("Let's Encrypt Cert file: $crt_tmp_file does not exist.", LOGLEVEL_DEBUG); + return false; + } + } +} -- GitLab From 4c72e3bc03904843bb5ae3c8b9b6024821d172c4 Mon Sep 17 00:00:00 2001 From: Marius Burkard Date: Fri, 23 Oct 2020 09:35:02 +0200 Subject: [PATCH 064/300] Cipher suite should be configured globally, SSL Protocols are already defined in line 80. --- server/conf/vhost.conf.master | 2 -- 1 file changed, 2 deletions(-) diff --git a/server/conf/vhost.conf.master b/server/conf/vhost.conf.master index aafb3fcb5a..023b726291 100644 --- a/server/conf/vhost.conf.master +++ b/server/conf/vhost.conf.master @@ -53,8 +53,6 @@ Protocols h2 http/1.1 - SSLProtocol All -SSLv2 -SSLv3 -TLSv1 -TLSv1.1 - SSLCipherSuite 'EECDH+ECDSA+AESGCM EECDH+aRSA+AESGCM EECDH+ECDSA+SHA384 EECDH+ECDSA+SHA256 EECDH+aRSA+SHA384 EECDH+aRSA+SHA256 EECDH+aRSA+RC4 EECDH EDH+aRSA !RC4 !aNULL !eNULL !LOW !3DES !MD5 !EXP !PSK !SRP !DSS' -- GitLab From 159f582011a437d284136928c2446fc62863b2cc Mon Sep 17 00:00:00 2001 From: Marius Burkard Date: Fri, 23 Oct 2020 09:44:45 +0200 Subject: [PATCH 065/300] Add Alias to make sure a global /mail alias does not interfere with ISPConfig UI --- install/dist/tpl/gentoo/apache_ispconfig.vhost.master | 2 ++ install/tpl/apache_ispconfig.vhost.master | 2 ++ 2 files changed, 4 insertions(+) diff --git a/install/dist/tpl/gentoo/apache_ispconfig.vhost.master b/install/dist/tpl/gentoo/apache_ispconfig.vhost.master index 20e7b3b684..01b3b383d5 100644 --- a/install/dist/tpl/gentoo/apache_ispconfig.vhost.master +++ b/install/dist/tpl/gentoo/apache_ispconfig.vhost.master @@ -12,6 +12,8 @@ ServerAdmin webmaster@localhost + Alias /mail /var/www/ispconfig/mail + DocumentRoot /var/www/ispconfig/ SuexecUserGroup ispconfig ispconfig diff --git a/install/tpl/apache_ispconfig.vhost.master b/install/tpl/apache_ispconfig.vhost.master index cc177f5c48..0d12694f7a 100644 --- a/install/tpl/apache_ispconfig.vhost.master +++ b/install/tpl/apache_ispconfig.vhost.master @@ -9,6 +9,8 @@ NameVirtualHost *: > ServerAdmin webmaster@localhost + Alias /mail /var/www/ispconfig/mail + SetHandler None -- GitLab From 989f0d0c754730f3d65ea3ddfe537c5cede9753d Mon Sep 17 00:00:00 2001 From: Marius Burkard Date: Fri, 23 Oct 2020 11:22:48 +0200 Subject: [PATCH 066/300] Update server/lib/classes/cron.d/100-monitor_database_size.inc.php --- server/lib/classes/cron.d/100-monitor_database_size.inc.php | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/server/lib/classes/cron.d/100-monitor_database_size.inc.php b/server/lib/classes/cron.d/100-monitor_database_size.inc.php index b5025ca4ca..3f0abed709 100644 --- a/server/lib/classes/cron.d/100-monitor_database_size.inc.php +++ b/server/lib/classes/cron.d/100-monitor_database_size.inc.php @@ -78,7 +78,7 @@ class cronjob_monitor_database_size extends cronjob { $state = 'ok'; /** Fetch the data of all databases into an array */ - $databases = $app->db->queryAllRecords("SELECT database_id, database_name, sys_groupid, database_quota, quota_exceeded FROM web_database WHERE server_id = ? GROUP BY sys_groupid, database_name ASC", $server_id); + $databases = $app->db->queryAllRecords("SELECT database_id, database_name, sys_groupid, database_quota, quota_exceeded FROM web_database WHERE server_id = ? ORDER BY sys_groupid, database_name ASC", $server_id); if(is_array($databases) && !empty($databases)) { -- GitLab From 36a1ba92741613a4280cd08a03094d6ebaaa49b2 Mon Sep 17 00:00:00 2001 From: Marius Burkard Date: Fri, 23 Oct 2020 13:48:17 +0200 Subject: [PATCH 067/300] Apply 1 suggestion(s) to 1 file(s) --- interface/web/dns/dns_dmarc_edit.php | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/interface/web/dns/dns_dmarc_edit.php b/interface/web/dns/dns_dmarc_edit.php index 8b6f3a97b1..b2d07b0a9e 100644 --- a/interface/web/dns/dns_dmarc_edit.php +++ b/interface/web/dns/dns_dmarc_edit.php @@ -88,8 +88,8 @@ class page_action extends tform_actions { $dmarc_sp = 'same'; //* check for an existing dmarc-record - $sql = "SELECT data, active FROM dns_rr WHERE data LIKE 'v=DMARC1%' AND zone = ? AND name LIKE ? AND " . $app->tform->getAuthSQL('r'); - $rec = $app->db->queryOneRecord($sql, $zone, '_dmarc%'); + $sql = "SELECT data, active FROM dns_rr WHERE data LIKE 'v=DMARC1%' AND zone = ? AND name LIKE ? AND " . $app->tform->getAuthSQL('r') . " ORDER BY (name = ?) DESC"; + $rec = $app->db->queryOneRecord($sql, $zone, '_dmarc%', '_dmarc.'.$domain_name.'.'); if (isset($rec) && !empty($rec) ) { $this->id = 1; $old_data = strtolower($rec['data']); -- GitLab From 82762809af977be0a52fb2f6843b43ca042f0df0 Mon Sep 17 00:00:00 2001 From: Marius Burkard Date: Fri, 23 Oct 2020 13:58:54 +0200 Subject: [PATCH 068/300] Apply 1 suggestion(s) to 1 file(s) --- server/lib/classes/system.inc.php | 1 + 1 file changed, 1 insertion(+) diff --git a/server/lib/classes/system.inc.php b/server/lib/classes/system.inc.php index 20bdd08bc7..b19cc1d566 100644 --- a/server/lib/classes/system.inc.php +++ b/server/lib/classes/system.inc.php @@ -2744,6 +2744,7 @@ $app->log("delete_jailkit_chroot called for $home_dir with options ".print_r($op switch ($opt) { default: if (preg_match('@^skip[ =]/?(.+)$@', $opt, $matches) ) { + $matches[1] = ltrim($matches[1], '/'); if (in_array($matches[1], $jailkit_directories)) { $app->log("delete_jailkit_chroot: skipping removal of jailkit directory .$home_dir/".$matches[1] . "; if this is in use as a web folder, it is insecure and should be fixed.", LOGLEVEL_WARN); -- GitLab From a0796838815f5a7084501b9b2cdd68c0333b11fb Mon Sep 17 00:00:00 2001 From: Marius Burkard Date: Fri, 23 Oct 2020 14:12:36 +0200 Subject: [PATCH 069/300] Add slash to allowed characters for mail filter target --- interface/web/mail/form/mail_user_filter.tform.php | 2 +- interface/web/mailuser/form/mail_user_filter.tform.php | 2 +- 2 files changed, 2 insertions(+), 2 deletions(-) diff --git a/interface/web/mail/form/mail_user_filter.tform.php b/interface/web/mail/form/mail_user_filter.tform.php index 0b10799163..1e5980af2d 100644 --- a/interface/web/mail/form/mail_user_filter.tform.php +++ b/interface/web/mail/form/mail_user_filter.tform.php @@ -121,7 +121,7 @@ $form["tabs"]['filter'] = array ( 'datatype' => 'VARCHAR', 'formtype' => 'TEXT', 'validators' => array ( 0 => array ( 'type' => 'REGEX', - 'regex' => '/^[\p{Latin}0-9\.\-\_\ \&]{0,100}$/u', + 'regex' => '/^[\p{Latin}0-9\.\-\_\ \&\/]{0,100}$/u', 'errmsg'=> 'target_error_regex'), ), 'default' => '', diff --git a/interface/web/mailuser/form/mail_user_filter.tform.php b/interface/web/mailuser/form/mail_user_filter.tform.php index 0f454fa6f7..ec693fff36 100644 --- a/interface/web/mailuser/form/mail_user_filter.tform.php +++ b/interface/web/mailuser/form/mail_user_filter.tform.php @@ -122,7 +122,7 @@ $form["tabs"]['filter'] = array ( 'datatype' => 'VARCHAR', 'formtype' => 'TEXT', 'validators' => array ( 0 => array ( 'type' => 'REGEX', - 'regex' => '/^[\p{Latin}0-9\.\-\_\ \&]{0,100}$/u', + 'regex' => '/^[\p{Latin}0-9\.\-\_\ \&\/]{0,100}$/u', 'errmsg'=> 'target_error_regex'), ), 'default' => '', -- GitLab From 4d173628499ef30f7ab33543dc4ddae46f4ed602 Mon Sep 17 00:00:00 2001 From: thom Date: Fri, 23 Oct 2020 16:17:04 +0200 Subject: [PATCH 070/300] Allow setting dnssec_wanted in wizard template (#5856) --- interface/web/dns/dns_wizard.php | 8 ++++++-- 1 file changed, 6 insertions(+), 2 deletions(-) diff --git a/interface/web/dns/dns_wizard.php b/interface/web/dns/dns_wizard.php index b2320dc6bf..4aa0644020 100644 --- a/interface/web/dns/dns_wizard.php +++ b/interface/web/dns/dns_wizard.php @@ -323,7 +323,9 @@ if($_POST['create'] == 1) { if($_POST['ns1'] != '') $tpl_content = str_replace('{NS1}', $_POST['ns1'], $tpl_content); if($_POST['ns2'] != '') $tpl_content = str_replace('{NS2}', $_POST['ns2'], $tpl_content); if($_POST['email'] != '') $tpl_content = str_replace('{EMAIL}', $_POST['email'], $tpl_content); - $enable_dnssec = (($_POST['dnssec'] == 'Y') ? 'Y' : 'N'); + // $enable_dnssec = (($_POST['dnssec'] == 'Y') ? 'Y' : 'N'); + // if(isset($_POST['dnssec'])) $vars['dnssec_wanted'] = 'Y'; + if(isset($_POST['dnssec'])) $tpl_content = str_replace('[ZONE]', '[ZONE]'."\n".'dnssec_wanted=Y', $tpl_content); if(isset($_POST['dkim']) && preg_match('/^[\w\.\-\/]{2,255}\.[a-zA-Z0-9\-]{2,63}[\.]{0,1}$/', $_POST['domain'])) { $sql = $app->db->queryOneRecord("SELECT dkim_public, dkim_selector FROM mail_domain WHERE domain = ? AND dkim = 'y' AND ".$app->tform->getAuthSQL('r'), $_POST['domain']); $public_key = $sql['dkim_public']; @@ -339,6 +341,7 @@ if($_POST['create'] == 1) { $section = ''; $vars = array(); $vars['xfer']=''; + $vars['dnssec_wanted']=''; $vars['dnssec_algo']='ECDSAP256SHA256'; $dns_rr = array(); foreach($tpl_rows as $row) { @@ -399,6 +402,7 @@ if($_POST['create'] == 1) { $xfer = $vars['xfer']; $also_notify = $vars['also_notify']; $update_acl = $vars['update_acl']; + $dnssec_wanted = $vars['dnssec_wanted']; $dnssec_algo = $vars['dnssec_algo']; $serial = $app->validate_dns->increase_serial(0); @@ -422,7 +426,7 @@ if($_POST['create'] == 1) { "xfer" => $xfer, "also_notify" => $also_notify, "update_acl" => $update_acl, - "dnssec_wanted" => $enable_dnssec, + "dnssec_wanted" => $dnssec_wanted, "dnssec_algo" => $dnssec_algo ); $dns_soa_id = $app->db->datalogInsert('dns_soa', $insert_data, 'id'); -- GitLab From 9b6d055fada50eb5dede9854e1f976336c54a67b Mon Sep 17 00:00:00 2001 From: thom Date: Fri, 23 Oct 2020 16:20:10 +0200 Subject: [PATCH 071/300] Save zone instead of save record for new zone save btn --- interface/web/dns/lib/lang/ar_dns_wizard.lng | 2 +- interface/web/dns/lib/lang/dk_dns_wizard.lng | 2 +- interface/web/dns/lib/lang/en_dns_wizard.lng | 2 +- interface/web/dns/lib/lang/se_dns_wizard.lng | 2 +- 4 files changed, 4 insertions(+), 4 deletions(-) diff --git a/interface/web/dns/lib/lang/ar_dns_wizard.lng b/interface/web/dns/lib/lang/ar_dns_wizard.lng index 800477dbe9..1c416ebddd 100644 --- a/interface/web/dns/lib/lang/ar_dns_wizard.lng +++ b/interface/web/dns/lib/lang/ar_dns_wizard.lng @@ -2,7 +2,7 @@ $wb['template_id_txt'] = 'Template'; $wb['server_id_txt'] = 'Server'; $wb['client_txt'] = 'Client'; -$wb['btn_save_txt'] = 'Create DNS Record'; +$wb['btn_save_txt'] = 'Create new DNS zone'; $wb['btn_cancel_txt'] = 'Cancel'; $wb['domain_txt'] = 'Domain'; $wb['email_txt'] = 'Email'; diff --git a/interface/web/dns/lib/lang/dk_dns_wizard.lng b/interface/web/dns/lib/lang/dk_dns_wizard.lng index 0448db2d8c..7eff253537 100644 --- a/interface/web/dns/lib/lang/dk_dns_wizard.lng +++ b/interface/web/dns/lib/lang/dk_dns_wizard.lng @@ -5,7 +5,7 @@ $wb['dns_zone_txt'] = 'DNS Zone'; $wb['template_id_txt'] = 'Skabelon'; $wb['server_id_txt'] = 'Server'; $wb['client_txt'] = 'Kunde'; -$wb['btn_save_txt'] = 'Create DNS-Record'; +$wb['btn_save_txt'] = 'Create new DNS zone'; $wb['btn_cancel_txt'] = 'Annullere'; $wb['domain_txt'] = 'Domæne'; $wb['email_txt'] = 'E-mail'; diff --git a/interface/web/dns/lib/lang/en_dns_wizard.lng b/interface/web/dns/lib/lang/en_dns_wizard.lng index 2f771fcb01..1acad286e5 100644 --- a/interface/web/dns/lib/lang/en_dns_wizard.lng +++ b/interface/web/dns/lib/lang/en_dns_wizard.lng @@ -5,7 +5,7 @@ $wb['dns_zone_txt'] = 'DNS Zone'; $wb['template_id_txt'] = 'Template'; $wb['server_id_txt'] = 'Server'; $wb['client_txt'] = 'Client'; -$wb['btn_save_txt'] = 'Create DNS-Record'; +$wb['btn_save_txt'] = 'Create new DNS zone'; $wb['btn_cancel_txt'] = 'Cancel'; $wb['domain_txt'] = 'Domain'; $wb['email_txt'] = 'Email'; diff --git a/interface/web/dns/lib/lang/se_dns_wizard.lng b/interface/web/dns/lib/lang/se_dns_wizard.lng index 800477dbe9..1c416ebddd 100644 --- a/interface/web/dns/lib/lang/se_dns_wizard.lng +++ b/interface/web/dns/lib/lang/se_dns_wizard.lng @@ -2,7 +2,7 @@ $wb['template_id_txt'] = 'Template'; $wb['server_id_txt'] = 'Server'; $wb['client_txt'] = 'Client'; -$wb['btn_save_txt'] = 'Create DNS Record'; +$wb['btn_save_txt'] = 'Create new DNS zone'; $wb['btn_cancel_txt'] = 'Cancel'; $wb['domain_txt'] = 'Domain'; $wb['email_txt'] = 'Email'; -- GitLab From d81a38a77d46614da63b6ae8d903b04c35306d13 Mon Sep 17 00:00:00 2001 From: thom Date: Fri, 23 Oct 2020 16:55:03 +0200 Subject: [PATCH 072/300] Move Allowed SSH authentication from Main Config -> Misc to Main Config -> Sites (#5850) --- install/tpl/system.ini.master | 2 +- interface/web/admin/form/system_config.tform.php | 12 ++++++------ .../web/admin/templates/system_config_misc_edit.htm | 7 ------- .../web/admin/templates/system_config_sites_edit.htm | 7 +++++++ interface/web/sites/shell_user_edit.php | 6 +++--- 5 files changed, 17 insertions(+), 17 deletions(-) diff --git a/install/tpl/system.ini.master b/install/tpl/system.ini.master index e2465a4a4b..c2fed82d7b 100644 --- a/install/tpl/system.ini.master +++ b/install/tpl/system.ini.master @@ -36,6 +36,7 @@ reseller_can_use_options=n web_php_options=no,fast-cgi,mod,php-fpm show_aps_menu=n client_protection=y +ssh_authentication=ssh_authentication_password_key [tools] @@ -71,4 +72,3 @@ session_timeout=0 session_allow_endless=0 min_password_length=8 min_password_strength=3 -ssh_authentication= diff --git a/interface/web/admin/form/system_config.tform.php b/interface/web/admin/form/system_config.tform.php index 530a0452ce..2c7ed66f73 100644 --- a/interface/web/admin/form/system_config.tform.php +++ b/interface/web/admin/form/system_config.tform.php @@ -235,6 +235,12 @@ $form["tabs"]['sites'] = array ( 'separator' => ',', 'value' => array('no' => 'Disabled', 'fast-cgi' => 'Fast-CGI', 'cgi' => 'CGI', 'mod' => 'Mod-PHP', 'suphp' => 'SuPHP', 'php-fpm' => 'PHP-FPM', 'hhvm' => 'HHVM') ), + 'ssh_authentication' => array( + 'datatype' => 'VARCHAR', + 'formtype' => 'SELECT', + 'default' => 'ssh_authentication_password_key', + 'value' => array('' => 'ssh_authentication_password_key', 'password' => 'ssh_authentication_password', 'key' => 'ssh_authentication_key') + ) //################################# // END Datatable fields //################################# @@ -772,12 +778,6 @@ $form["tabs"]['misc'] = array ( 'formtype' => 'SELECT', 'default' => '', 'value' => array('' => 'None', '1' => 'strength_1', '2' => 'strength_2', '3' => 'strength_3', '4' => 'strength_4', '5' => 'strength_5') - ), - 'ssh_authentication' => array( - 'datatype' => 'VARCHAR', - 'formtype' => 'SELECT', - 'default' => '', - 'value' => array('' => 'ssh_authentication_password_key', 'password' => 'ssh_authentication_password', 'key' => 'ssh_authentication_key') ) //################################# // END Datatable fields diff --git a/interface/web/admin/templates/system_config_misc_edit.htm b/interface/web/admin/templates/system_config_misc_edit.htm index 9d40dae5fc..5c57eeb9a6 100644 --- a/interface/web/admin/templates/system_config_misc_edit.htm +++ b/interface/web/admin/templates/system_config_misc_edit.htm @@ -123,13 +123,6 @@
-
- -
-
-
diff --git a/interface/web/admin/templates/system_config_sites_edit.htm b/interface/web/admin/templates/system_config_sites_edit.htm index c84b50e6b8..b261cfdab1 100644 --- a/interface/web/admin/templates/system_config_sites_edit.htm +++ b/interface/web/admin/templates/system_config_sites_edit.htm @@ -90,6 +90,13 @@
+
+ +
+
+
diff --git a/interface/web/sites/shell_user_edit.php b/interface/web/sites/shell_user_edit.php index 055676ad95..cb6aa3024c 100644 --- a/interface/web/sites/shell_user_edit.php +++ b/interface/web/sites/shell_user_edit.php @@ -97,7 +97,7 @@ class page_action extends tform_actions { $app->tpl->setVar("edit_disabled", 0); } - $app->tpl->setVar('ssh_authentication', $system_config['misc']['ssh_authentication']); + $app->tpl->setVar('ssh_authentication', $system_config['sites']['ssh_authentication']); parent::onShowEnd(); } @@ -151,7 +151,7 @@ class page_action extends tform_actions { } } unset($blacklist); - + if($app->functions->is_allowed_user(trim(strtolower($this->dataRecord['username']))) == false) $app->tform->errorMessage .= $app->tform->lng('username_not_allowed_txt'); /* @@ -181,7 +181,7 @@ class page_action extends tform_actions { $dir = $web["document_root"]; $uid = $web["system_user"]; $gid = $web["system_group"]; - + // Check system user and group if($app->functions->is_allowed_user($uid) == false || $app->functions->is_allowed_group($gid) == false) { $app->error($app->tform->lng('invalid_system_user_or_group_txt')); -- GitLab From acca0944d160de117966d68249f4e8f604a0bf2f Mon Sep 17 00:00:00 2001 From: thom Date: Fri, 23 Oct 2020 16:56:30 +0200 Subject: [PATCH 073/300] Default for ssh_authentication should be empty (#5850) --- install/tpl/system.ini.master | 2 +- interface/web/admin/form/system_config.tform.php | 2 +- 2 files changed, 2 insertions(+), 2 deletions(-) diff --git a/install/tpl/system.ini.master b/install/tpl/system.ini.master index c2fed82d7b..bbd78e6b3a 100644 --- a/install/tpl/system.ini.master +++ b/install/tpl/system.ini.master @@ -36,7 +36,7 @@ reseller_can_use_options=n web_php_options=no,fast-cgi,mod,php-fpm show_aps_menu=n client_protection=y -ssh_authentication=ssh_authentication_password_key +ssh_authentication= [tools] diff --git a/interface/web/admin/form/system_config.tform.php b/interface/web/admin/form/system_config.tform.php index 2c7ed66f73..2e62900fd9 100644 --- a/interface/web/admin/form/system_config.tform.php +++ b/interface/web/admin/form/system_config.tform.php @@ -238,7 +238,7 @@ $form["tabs"]['sites'] = array ( 'ssh_authentication' => array( 'datatype' => 'VARCHAR', 'formtype' => 'SELECT', - 'default' => 'ssh_authentication_password_key', + 'default' => '', 'value' => array('' => 'ssh_authentication_password_key', 'password' => 'ssh_authentication_password', 'key' => 'ssh_authentication_key') ) //################################# -- GitLab From 137ba9a885be5f268d74f95b5859c44ad782da3c Mon Sep 17 00:00:00 2001 From: thom Date: Fri, 23 Oct 2020 18:07:33 +0200 Subject: [PATCH 074/300] Send overtraffic warning only when web is not disabled (#3937) --- server/conf/mail/web_traffic_notification_warn_en.txt | 8 ++++++++ server/conf/mail/web_traffic_notification_warn_nl.txt | 8 ++++++++ server/lib/classes/cron.d/300-quota_notify.inc.php | 10 +++++++++- 3 files changed, 25 insertions(+), 1 deletion(-) create mode 100644 server/conf/mail/web_traffic_notification_warn_en.txt create mode 100644 server/conf/mail/web_traffic_notification_warn_nl.txt diff --git a/server/conf/mail/web_traffic_notification_warn_en.txt b/server/conf/mail/web_traffic_notification_warn_en.txt new file mode 100644 index 0000000000..f69d906dab --- /dev/null +++ b/server/conf/mail/web_traffic_notification_warn_en.txt @@ -0,0 +1,8 @@ +MIME-Version: 1.0 +Content-type: text/plain; charset=utf-8 +Content-Transfer-Encoding: 8bit +From: {admin_mail} +Reply-To: {admin_mail} +Subject: Website traffic notification + +The website {domain} is over traffic. diff --git a/server/conf/mail/web_traffic_notification_warn_nl.txt b/server/conf/mail/web_traffic_notification_warn_nl.txt new file mode 100644 index 0000000000..02d9a03c2f --- /dev/null +++ b/server/conf/mail/web_traffic_notification_warn_nl.txt @@ -0,0 +1,8 @@ +MIME-Version: 1.0 +Content-type: text/plain; charset=utf-8 +Content-Transfer-Encoding: 8bit +From: {admin_mail} +Reply-To: {admin_mail} +Subject: Webverkeerslimiet bereikt + +De website {domain} heeft het verkeerslimiet voor deze maand bereikt. diff --git a/server/lib/classes/cron.d/300-quota_notify.inc.php b/server/lib/classes/cron.d/300-quota_notify.inc.php index ad18f17c9b..bd6a410309 100644 --- a/server/lib/classes/cron.d/300-quota_notify.inc.php +++ b/server/lib/classes/cron.d/300-quota_notify.inc.php @@ -86,6 +86,9 @@ class cronjob_quota_notify extends cronjob { $app->dbmaster->datalogUpdate('web_domain', array("traffic_quota_lock" => 'y', "active" => 'n'), 'domain_id', $rec['domain_id']); $app->log('Traffic quota for '.$rec['domain'].' exceeded. Disabling website.', LOGLEVEL_DEBUG); } + else { + $app->log('Traffic quota for '.$rec['domain'].' exceeded.', LOGLEVEL_DEBUG); + } //* Send traffic notifications if($rec['traffic_quota_lock'] != 'y' && ($web_config['overtraffic_notify_admin'] == 'y' || $web_config['overtraffic_notify_client'] == 'y')) { @@ -111,7 +114,12 @@ class cronjob_quota_notify extends cronjob { } } - $this->_tools->send_notification_email('web_traffic_notification', $placeholders, $recipients); + if ($web_config['overtraffic_disable_web'] == 'y') { + $this->_tools->send_notification_email('web_traffic_notification', $placeholders, $recipients); + } + else { + $this->_tools->send_notification_email('web_traffic_notification_warn', $placeholders, $recipients); + } } } else { -- GitLab From 9d8bd6fc838c053e9015a1cf706647a709ee6788 Mon Sep 17 00:00:00 2001 From: Marius Burkard Date: Fri, 23 Oct 2020 19:35:56 +0200 Subject: [PATCH 075/300] - added allowed characters to error msg --- interface/web/mail/lib/lang/ar_mail_user_filter.lng | 2 +- interface/web/mail/lib/lang/bg_mail_user_filter.lng | 2 +- interface/web/mail/lib/lang/ca_mail_user_filter.lng | 2 +- interface/web/mail/lib/lang/cz_mail_user_filter.lng | 2 +- interface/web/mail/lib/lang/de_mail_user_filter.lng | 2 +- interface/web/mail/lib/lang/dk_mail_user_filter.lng | 2 +- interface/web/mail/lib/lang/el_mail_user_filter.lng | 2 +- interface/web/mail/lib/lang/en_mail_user_filter.lng | 2 +- interface/web/mail/lib/lang/es_mail_user_filter.lng | 2 +- interface/web/mail/lib/lang/fi_mail_user_filter.lng | 2 +- interface/web/mail/lib/lang/fr_mail_user_filter.lng | 2 +- interface/web/mail/lib/lang/hr_mail_user_filter.lng | 2 +- interface/web/mail/lib/lang/hu_mail_user_filter.lng | 2 +- interface/web/mail/lib/lang/id_mail_user_filter.lng | 2 +- interface/web/mail/lib/lang/it_mail_user_filter.lng | 2 +- interface/web/mail/lib/lang/ja_mail_user_filter.lng | 2 +- interface/web/mail/lib/lang/nl_mail_user_filter.lng | 2 +- interface/web/mail/lib/lang/pl_mail_user_filter.lng | 2 +- interface/web/mail/lib/lang/ro_mail_user_filter.lng | 2 +- interface/web/mail/lib/lang/se_mail_user_filter.lng | 2 +- interface/web/mail/lib/lang/sk_mail_user_filter.lng | 2 +- interface/web/mail/lib/lang/tr_mail_user_filter.lng | 2 +- interface/web/mailuser/lib/lang/ar_mail_user_filter.lng | 2 +- interface/web/mailuser/lib/lang/bg_mail_user_filter.lng | 2 +- interface/web/mailuser/lib/lang/ca_mail_user_filter.lng | 2 +- interface/web/mailuser/lib/lang/cz_mail_user_filter.lng | 2 +- interface/web/mailuser/lib/lang/de_mail_user_filter.lng | 2 +- interface/web/mailuser/lib/lang/dk_mail_user_filter.lng | 2 +- interface/web/mailuser/lib/lang/el_mail_user_filter.lng | 2 +- interface/web/mailuser/lib/lang/en_mail_user_filter.lng | 2 +- interface/web/mailuser/lib/lang/es_mail_user_filter.lng | 2 +- interface/web/mailuser/lib/lang/fi_mail_user_filter.lng | 2 +- interface/web/mailuser/lib/lang/fr_mail_user_filter.lng | 2 +- interface/web/mailuser/lib/lang/hr_mail_user_filter.lng | 2 +- interface/web/mailuser/lib/lang/hu_mail_user_filter.lng | 2 +- interface/web/mailuser/lib/lang/id_mail_user_filter.lng | 2 +- interface/web/mailuser/lib/lang/it_mail_user_filter.lng | 2 +- interface/web/mailuser/lib/lang/ja_mail_user_filter.lng | 2 +- interface/web/mailuser/lib/lang/nl_mail_user_filter.lng | 2 +- interface/web/mailuser/lib/lang/pl_mail_user_filter.lng | 2 +- interface/web/mailuser/lib/lang/pt_mail_user_filter.lng | 2 +- interface/web/mailuser/lib/lang/ro_mail_user_filter.lng | 2 +- interface/web/mailuser/lib/lang/se_mail_user_filter.lng | 2 +- interface/web/mailuser/lib/lang/sk_mail_user_filter.lng | 2 +- interface/web/mailuser/lib/lang/tr_mail_user_filter.lng | 2 +- 45 files changed, 45 insertions(+), 45 deletions(-) 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 bed377b2f6..b813c0e82e 100644 --- a/interface/web/mail/lib/lang/ar_mail_user_filter.lng +++ b/interface/web/mail/lib/lang/ar_mail_user_filter.lng @@ -6,7 +6,7 @@ $wb['active_txt'] = 'Active'; $wb['rulename_error_empty'] = 'Name is empty.'; $wb['searchterm_is_empty'] = 'Search term is empty.'; $wb['source_txt'] = 'Source'; -$wb['target_error_regex'] = 'The target may only contain these characters: a-z, 0-9, -, ., _, and {space}'; +$wb['target_error_regex'] = 'The target may only contain these characters: a-z, 0-9, -, ., _, &, /, and {space}'; $wb['limit_mailfilter_txt'] = 'The max. number of mailfilters is reached.'; $wb['subject_txt'] = 'Subject'; $wb['from_txt'] = 'From'; diff --git a/interface/web/mail/lib/lang/bg_mail_user_filter.lng b/interface/web/mail/lib/lang/bg_mail_user_filter.lng index ed7d137db0..2480794e6c 100644 --- a/interface/web/mail/lib/lang/bg_mail_user_filter.lng +++ b/interface/web/mail/lib/lang/bg_mail_user_filter.lng @@ -6,7 +6,7 @@ $wb['active_txt'] = 'Активен'; $wb['rulename_error_empty'] = 'Name is empty.'; $wb['searchterm_is_empty'] = 'Search term is empty.'; $wb['source_txt'] = 'Source'; -$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/ca_mail_user_filter.lng b/interface/web/mail/lib/lang/ca_mail_user_filter.lng index 3aaa7f1665..861e72bf8a 100644 --- a/interface/web/mail/lib/lang/ca_mail_user_filter.lng +++ b/interface/web/mail/lib/lang/ca_mail_user_filter.lng @@ -6,7 +6,7 @@ $wb['active_txt'] = 'Actif'; $wb['rulename_error_empty'] = 'Le nom est vide.'; $wb['searchterm_is_empty'] = 'Le terme recherché est vide.'; $wb['source_txt'] = 'Source'; -$wb['target_error_regex'] = 'La cible ne peut contenir que ces caractères : a-z, 0-9, -, ., _, et {espace}'; +$wb['target_error_regex'] = 'La cible ne peut contenir que ces caractères : a-z, 0-9, -, ., _, &, /, et {espace}'; $wb['limit_mailfilter_txt'] = 'Le nombre max de filtres courriel est atteint.'; $wb['subject_txt'] = 'Sujet'; $wb['from_txt'] = 'De'; diff --git a/interface/web/mail/lib/lang/cz_mail_user_filter.lng b/interface/web/mail/lib/lang/cz_mail_user_filter.lng index 3d56a9b839..156807f711 100644 --- a/interface/web/mail/lib/lang/cz_mail_user_filter.lng +++ b/interface/web/mail/lib/lang/cz_mail_user_filter.lng @@ -6,7 +6,7 @@ $wb['active_txt'] = 'Aktivní'; $wb['rulename_error_empty'] = 'Název je prázdný.'; $wb['searchterm_is_empty'] = 'Vyhledávací řádek je prázdný.'; $wb['source_txt'] = 'Zdroj'; -$wb['target_error_regex'] = 'Cíl může obsahovat jen tyto znaky: a-z, 0-9, -, ., _, a {mezeru}'; +$wb['target_error_regex'] = 'Cíl může obsahovat jen tyto znaky: a-z, 0-9, -, ., _, &, /, a {mezeru}'; $wb['limit_mailfilter_txt'] = 'Byl dosažen max. počet e-mailový filtrovacích pravidel.'; $wb['subject_txt'] = 'Předmět'; $wb['from_txt'] = 'Odesílatel'; diff --git a/interface/web/mail/lib/lang/de_mail_user_filter.lng b/interface/web/mail/lib/lang/de_mail_user_filter.lng index 579a867e98..ab9dafd84b 100644 --- a/interface/web/mail/lib/lang/de_mail_user_filter.lng +++ b/interface/web/mail/lib/lang/de_mail_user_filter.lng @@ -6,7 +6,7 @@ $wb['active_txt'] = 'Aktiv'; $wb['rulename_error_empty'] = 'Name ist leer.'; $wb['searchterm_is_empty'] = 'Suchbegriff ist leer.'; $wb['source_txt'] = 'Quelle'; -$wb['target_error_regex'] = 'Das Ziel beinhaltet wahrscheinlich diese Zeichen: a-z, 0-9, -, ., _, und {raum}'; +$wb['target_error_regex'] = 'Das Ziel beinhaltet wahrscheinlich diese Zeichen: a-z, 0-9, -, ., _, &, /, und {raum}'; $wb['limit_mailfilter_txt'] = 'Die maximale Anzahl an E-Mail Filtern für Ihr Konto wurde erreicht.'; $wb['subject_txt'] = 'Betreff'; $wb['from_txt'] = 'Von'; 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 8da1a24201..2c10563877 100644 --- a/interface/web/mail/lib/lang/dk_mail_user_filter.lng +++ b/interface/web/mail/lib/lang/dk_mail_user_filter.lng @@ -6,7 +6,7 @@ $wb['active_txt'] = 'Aktiv'; $wb['rulename_error_empty'] = 'Navn er tomt.'; $wb['searchterm_is_empty'] = 'Søgetermer er tomme.'; $wb['source_txt'] = 'Kilde'; -$wb['target_error_regex'] = 'Målet må kun indeholde disse tegn: a-z, 0-9, -, ., _, og {space}'; +$wb['target_error_regex'] = 'Målet må kun indeholde disse tegn: a-z, 0-9, -, ., _, &, /, og {space}'; $wb['limit_mailfilter_txt'] = 'Max. antal af mailfiltere er nået.'; $wb['subject_txt'] = 'Emne'; $wb['from_txt'] = 'Fra'; diff --git a/interface/web/mail/lib/lang/el_mail_user_filter.lng b/interface/web/mail/lib/lang/el_mail_user_filter.lng index c3c232362e..913105e63d 100644 --- a/interface/web/mail/lib/lang/el_mail_user_filter.lng +++ b/interface/web/mail/lib/lang/el_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'] = 'Έχετε φτάσει το μέγιστο πλήθος των φίλτρων mail.'; $wb['subject_txt'] = 'Θέμα'; $wb['from_txt'] = 'Από'; 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 af9c8665cd..744ce29c5b 100644 --- a/interface/web/mail/lib/lang/en_mail_user_filter.lng +++ b/interface/web/mail/lib/lang/en_mail_user_filter.lng @@ -6,7 +6,7 @@ $wb['active_txt'] = 'Active'; $wb['rulename_error_empty'] = 'Name is empty.'; $wb['searchterm_is_empty'] = 'Search term is empty.'; $wb['source_txt'] = 'Source'; -$wb['target_error_regex'] = 'The target may only contain these characters: a-z, 0-9, -, ., _, and {space}'; +$wb['target_error_regex'] = 'The target may only contain these characters: a-z, 0-9, -, ., _, &, /, and {space}'; $wb['limit_mailfilter_txt'] = 'The max. number of mailfilters is reached.'; $wb['subject_txt'] = 'Subject'; $wb['from_txt'] = 'From'; 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 4e50fbceff..488cd6836c 100644 --- a/interface/web/mail/lib/lang/es_mail_user_filter.lng +++ b/interface/web/mail/lib/lang/es_mail_user_filter.lng @@ -23,7 +23,7 @@ $wb['size_under_txt'] = 'Tamaño del correo inferior a (KB)'; $wb['source_txt'] = 'Origen'; $wb['stop_txt'] = 'Detener'; $wb['subject_txt'] = 'Asunto'; -$wb['target_error_regex'] = 'El destino solo puede contener los siguientes caracteres: a-z, 0-9, -, ., _, y {espacio}'; +$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'; 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 5315bc6f1e..814c92e892 100644 --- a/interface/web/mail/lib/lang/fi_mail_user_filter.lng +++ b/interface/web/mail/lib/lang/fi_mail_user_filter.lng @@ -6,7 +6,7 @@ $wb['active_txt'] = 'Käytössä'; $wb['rulename_error_empty'] = 'Säännön nimi on tyhjä.'; $wb['searchterm_is_empty'] = 'Hakusana on tyhjä.'; $wb['source_txt'] = 'Lähde'; -$wb['target_error_regex'] = 'Kohde voi sisältää vain merkkejä a-z, 0-9, -, ., _, ja {välilyönti}'; +$wb['target_error_regex'] = 'Kohde voi sisältää vain merkkejä a-z, 0-9, -, ., _, &, /, ja {välilyönti}'; $wb['limit_mailfilter_txt'] = 'The max. number of mailfilters is reached.'; $wb['subject_txt'] = 'Subject'; $wb['from_txt'] = 'From'; 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 324d6f3c78..3f8908c64d 100644 --- a/interface/web/mail/lib/lang/fr_mail_user_filter.lng +++ b/interface/web/mail/lib/lang/fr_mail_user_filter.lng @@ -6,7 +6,7 @@ $wb['active_txt'] = 'Actif'; $wb['rulename_error_empty'] = 'Le nom est vide.'; $wb['searchterm_is_empty'] = 'Le terme recherché est vide.'; $wb['source_txt'] = 'Source'; -$wb['target_error_regex'] = 'La cible ne peut contenir que ces caractères : a-z, 0-9, -, ., _, et {espace}'; +$wb['target_error_regex'] = 'La cible ne peut contenir que ces caractères : a-z, 0-9, -, ., _, &, /, et {espace}'; $wb['limit_mailfilter_txt'] = 'Le nombre max de filtres e-mail est atteint.'; $wb['subject_txt'] = 'Sujet'; $wb['from_txt'] = 'De'; diff --git a/interface/web/mail/lib/lang/hr_mail_user_filter.lng b/interface/web/mail/lib/lang/hr_mail_user_filter.lng index 55e46fab91..2aac4da39d 100644 --- a/interface/web/mail/lib/lang/hr_mail_user_filter.lng +++ b/interface/web/mail/lib/lang/hr_mail_user_filter.lng @@ -6,7 +6,7 @@ $wb['active_txt'] = 'Aktivno'; $wb['rulename_error_empty'] = 'Naziv je prazan.'; $wb['searchterm_is_empty'] = 'Traženi pojam je prazan.'; $wb['source_txt'] = 'Izvor'; -$wb['target_error_regex'] = 'Folder može sadržavati samo ove znakove: a-z, 0-9, -, ., _, i {space}'; +$wb['target_error_regex'] = 'Folder može sadržavati samo ove znakove: a-z, 0-9, -, ., _, &, /, i {space}'; $wb['limit_mailfilter_txt'] = 'Iskorišten je maksimalni broj mail filtera.'; $wb['subject_txt'] = 'Naslov'; $wb['from_txt'] = 'Pošiljatelj'; diff --git a/interface/web/mail/lib/lang/hu_mail_user_filter.lng b/interface/web/mail/lib/lang/hu_mail_user_filter.lng index 8b39c062a6..2ef88e5270 100644 --- a/interface/web/mail/lib/lang/hu_mail_user_filter.lng +++ b/interface/web/mail/lib/lang/hu_mail_user_filter.lng @@ -15,7 +15,7 @@ $wb['is_txt'] = 'Is'; $wb['begins_with_txt'] = 'Begins with'; $wb['ends_with_txt'] = 'Ends with'; $wb['regex_txt'] = 'Matches Regex'; -$wb['target_error_regex'] = 'The target may only contain these characters: a-z, 0-9, -, ., _, and {space}'; +$wb['target_error_regex'] = 'The target may only contain these characters: a-z, 0-9, -, ., _, &, /, and {space}'; $wb['limit_mailfilter_txt'] = 'The max. number of mailfilters is reached.'; $wb['delete_txt'] = 'Delete'; $wb['move_stop_txt'] = 'Move to'; 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 2a8ec29b45..3ac704bffc 100644 --- a/interface/web/mail/lib/lang/id_mail_user_filter.lng +++ b/interface/web/mail/lib/lang/id_mail_user_filter.lng @@ -6,7 +6,7 @@ $wb['active_txt'] = 'Aktif'; $wb['rulename_error_empty'] = 'Nama kosong.'; $wb['searchterm_is_empty'] = 'Lema pencarian kosong.'; $wb['source_txt'] = 'Sumber'; -$wb['target_error_regex'] = 'Target hanya boleh berisi karakter berikut ini: a-z, 0-9, -, ., _, dan {space}'; +$wb['target_error_regex'] = 'Target hanya boleh berisi karakter berikut ini: a-z, 0-9, -, ., _, &, /, dan {space}'; $wb['limit_mailfilter_txt'] = 'The max. number of mailfilters is reached.'; $wb['subject_txt'] = 'Subject'; $wb['from_txt'] = 'From'; diff --git a/interface/web/mail/lib/lang/it_mail_user_filter.lng b/interface/web/mail/lib/lang/it_mail_user_filter.lng index 131b7ff6b5..1287b716ff 100644 --- a/interface/web/mail/lib/lang/it_mail_user_filter.lng +++ b/interface/web/mail/lib/lang/it_mail_user_filter.lng @@ -6,7 +6,7 @@ $wb['active_txt'] = 'Attivo'; $wb['rulename_error_empty'] = 'Nome vuoto.'; $wb['searchterm_is_empty'] = 'Termine ricerca vuoto.'; $wb['source_txt'] = 'Origine'; -$wb['target_error_regex'] = 'The target may only contain these characters: a-z, 0-9, -, ., _, and {space}'; +$wb['target_error_regex'] = 'The target may only contain these characters: a-z, 0-9, -, ., _, &, /, and {space}'; $wb['limit_mailfilter_txt'] = 'The max. number of mailfilters is reached.'; $wb['subject_txt'] = 'Oggetto'; $wb['from_txt'] = 'Da'; 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 7354c40265..95d29f8390 100644 --- a/interface/web/mail/lib/lang/ja_mail_user_filter.lng +++ b/interface/web/mail/lib/lang/ja_mail_user_filter.lng @@ -6,7 +6,7 @@ $wb['active_txt'] = '有効'; $wb['rulename_error_empty'] = 'Name is empty.'; $wb['searchterm_is_empty'] = 'Search term is empty.'; $wb['source_txt'] = 'Source'; -$wb['target_error_regex'] = 'The target may only contain these characters: a-z, 0-9, -, ., _, and {space}'; +$wb['target_error_regex'] = 'The target may only contain these characters: a-z, 0-9, -, ., _, &, /, and {space}'; $wb['limit_mailfilter_txt'] = 'The max. number of mailfilters is reached.'; $wb['subject_txt'] = 'Subject'; $wb['from_txt'] = 'From'; diff --git a/interface/web/mail/lib/lang/nl_mail_user_filter.lng b/interface/web/mail/lib/lang/nl_mail_user_filter.lng index 99dd91b58c..0d92403282 100644 --- a/interface/web/mail/lib/lang/nl_mail_user_filter.lng +++ b/interface/web/mail/lib/lang/nl_mail_user_filter.lng @@ -6,7 +6,7 @@ $wb['active_txt'] = 'Actief'; $wb['rulename_error_empty'] = 'Naam is niet ingvuld.'; $wb['searchterm_is_empty'] = 'Zoekterm is niet ingvuld.'; $wb['source_txt'] = 'Bron'; -$wb['target_error_regex'] = 'Het doel mag alleen de volgende karakters bevatten: a-z, 0-9, -, ., _, en {spatie}'; +$wb['target_error_regex'] = 'Het doel mag alleen de volgende karakters bevatten: a-z, 0-9, -, ., _, &, /, en {spatie}'; $wb['limit_mailfilter_txt'] = 'Het max. aantal e-mail filters voor uw account is bereikt.'; $wb['subject_txt'] = 'Onderwerp'; $wb['from_txt'] = 'Afzender'; diff --git a/interface/web/mail/lib/lang/pl_mail_user_filter.lng b/interface/web/mail/lib/lang/pl_mail_user_filter.lng index 6c86f3e52a..5fbb7c5448 100644 --- a/interface/web/mail/lib/lang/pl_mail_user_filter.lng +++ b/interface/web/mail/lib/lang/pl_mail_user_filter.lng @@ -6,7 +6,7 @@ $wb['active_txt'] = 'Aktywny'; $wb['rulename_error_empty'] = 'Nazwa jest pusta.'; $wb['searchterm_is_empty'] = 'Szukany termin jest pusty.'; $wb['source_txt'] = 'Źródło'; -$wb['target_error_regex'] = 'Cel może zawierać tylko następujące znaki: a-z, 0-9, -, ., _, oraz {spacja}'; +$wb['target_error_regex'] = 'Cel może zawierać tylko następujące znaki: a-z, 0-9, -, ., _, &, /, oraz {spacja}'; $wb['limit_mailfilter_txt'] = 'Maks. ilość filtrów email jest przekroczona.'; $wb['subject_txt'] = 'Temat'; $wb['from_txt'] = 'Od'; 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 3ca08e982a..208e705141 100644 --- a/interface/web/mail/lib/lang/ro_mail_user_filter.lng +++ b/interface/web/mail/lib/lang/ro_mail_user_filter.lng @@ -6,7 +6,7 @@ $wb['active_txt'] = 'Active'; $wb['rulename_error_empty'] = 'Nume e gol'; $wb['searchterm_is_empty'] = 'Cautare termeni e gol'; $wb['source_txt'] = 'Sursa'; -$wb['target_error_regex'] = 'The target may only contain these characters: a-z, 0-9, -, ., _, and {space}'; +$wb['target_error_regex'] = 'The target may only contain these characters: a-z, 0-9, -, ., _, &, /, and {space}'; $wb['limit_mailfilter_txt'] = 'The max. number of mailfilters is reached.'; $wb['subject_txt'] = 'Subject'; $wb['from_txt'] = 'From'; diff --git a/interface/web/mail/lib/lang/se_mail_user_filter.lng b/interface/web/mail/lib/lang/se_mail_user_filter.lng index f8c2a61546..6b6c6fce65 100644 --- a/interface/web/mail/lib/lang/se_mail_user_filter.lng +++ b/interface/web/mail/lib/lang/se_mail_user_filter.lng @@ -6,7 +6,7 @@ $wb['active_txt'] = 'Aktiv'; $wb['rulename_error_empty'] = 'Namnfältet är tomt.'; $wb['searchterm_is_empty'] = 'Söktermen är tomt.'; $wb['source_txt'] = 'Källa'; -$wb['target_error_regex'] = 'Målet får endast innehålla dessa tecken: a-z, 0-9, -, ., _, och {mellanslag}'; +$wb['target_error_regex'] = 'Målet får endast innehålla dessa tecken: a-z, 0-9, -, ., _, &, /, och {mellanslag}'; $wb['limit_mailfilter_txt'] = 'Det maximala antalet epostfilter är uppnått.'; $wb['subject_txt'] = 'Ämne'; $wb['from_txt'] = 'Från'; 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 966161ed3f..2cf40b5b47 100644 --- a/interface/web/mail/lib/lang/sk_mail_user_filter.lng +++ b/interface/web/mail/lib/lang/sk_mail_user_filter.lng @@ -6,7 +6,7 @@ $wb['active_txt'] = 'Aktívny'; $wb['rulename_error_empty'] = 'Meno je prázdne'; $wb['searchterm_is_empty'] = 'Hľadaný výraz je prázdny.'; $wb['source_txt'] = 'Zdroj'; -$wb['target_error_regex'] = 'The target may only contain these characters: a-z, 0-9, -, ., _, and {space}'; +$wb['target_error_regex'] = 'The target may only contain these characters: a-z, 0-9, -, ., _, &, /, and {space}'; $wb['limit_mailfilter_txt'] = 'The max. number of mailfilters is reached.'; $wb['subject_txt'] = 'Subject'; $wb['from_txt'] = 'From'; 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 816174445b..6c58539923 100644 --- a/interface/web/mail/lib/lang/tr_mail_user_filter.lng +++ b/interface/web/mail/lib/lang/tr_mail_user_filter.lng @@ -6,7 +6,7 @@ $wb['active_txt'] = 'Etkin'; $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['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 e-posta süzgeci sayısına ulaştınız.'; $wb['subject_txt'] = 'Konu'; $wb['from_txt'] = 'Kimden'; 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 0df6e0b75b..dd1f22c976 100644 --- a/interface/web/mailuser/lib/lang/ar_mail_user_filter.lng +++ b/interface/web/mailuser/lib/lang/ar_mail_user_filter.lng @@ -6,7 +6,7 @@ $wb['active_txt'] = 'Active'; $wb['rulename_error_empty'] = 'Name is empty.'; $wb['searchterm_is_empty'] = 'Search term is empty.'; $wb['source_txt'] = 'Source'; -$wb['target_error_regex'] = 'The target may only contain these characters: a-z, 0-9, -, ., _, and {space}'; +$wb['target_error_regex'] = 'The target may only contain these characters: a-z, 0-9, -, ., _, &, /, and {space}'; $wb['limit_mailfilter_txt'] = 'The max. number of mailfilters is reached.'; $wb['subject_txt'] = 'Subject'; $wb['from_txt'] = 'From'; 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 0df6e0b75b..dd1f22c976 100644 --- a/interface/web/mailuser/lib/lang/bg_mail_user_filter.lng +++ b/interface/web/mailuser/lib/lang/bg_mail_user_filter.lng @@ -6,7 +6,7 @@ $wb['active_txt'] = 'Active'; $wb['rulename_error_empty'] = 'Name is empty.'; $wb['searchterm_is_empty'] = 'Search term is empty.'; $wb['source_txt'] = 'Source'; -$wb['target_error_regex'] = 'The target may only contain these characters: a-z, 0-9, -, ., _, and {space}'; +$wb['target_error_regex'] = 'The target may only contain these characters: a-z, 0-9, -, ., _, &, /, and {space}'; $wb['limit_mailfilter_txt'] = 'The max. number of mailfilters is reached.'; $wb['subject_txt'] = 'Subject'; $wb['from_txt'] = 'From'; 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 0df6e0b75b..dd1f22c976 100644 --- a/interface/web/mailuser/lib/lang/ca_mail_user_filter.lng +++ b/interface/web/mailuser/lib/lang/ca_mail_user_filter.lng @@ -6,7 +6,7 @@ $wb['active_txt'] = 'Active'; $wb['rulename_error_empty'] = 'Name is empty.'; $wb['searchterm_is_empty'] = 'Search term is empty.'; $wb['source_txt'] = 'Source'; -$wb['target_error_regex'] = 'The target may only contain these characters: a-z, 0-9, -, ., _, and {space}'; +$wb['target_error_regex'] = 'The target may only contain these characters: a-z, 0-9, -, ., _, &, /, and {space}'; $wb['limit_mailfilter_txt'] = 'The max. number of mailfilters is reached.'; $wb['subject_txt'] = 'Subject'; $wb['from_txt'] = 'From'; diff --git a/interface/web/mailuser/lib/lang/cz_mail_user_filter.lng b/interface/web/mailuser/lib/lang/cz_mail_user_filter.lng index 010427341e..341cf3674a 100644 --- a/interface/web/mailuser/lib/lang/cz_mail_user_filter.lng +++ b/interface/web/mailuser/lib/lang/cz_mail_user_filter.lng @@ -6,7 +6,7 @@ $wb['active_txt'] = 'Aktivní'; $wb['rulename_error_empty'] = 'Název pravidla je prázdný.'; $wb['searchterm_is_empty'] = 'Hledaný výraz je prázdný.'; $wb['source_txt'] = 'Zdroj'; -$wb['target_error_regex'] = 'Cíl může obsahovat jen tyto znaky: a-z, 0-9, -, ., _, a {mezeru}'; +$wb['target_error_regex'] = 'Cíl může obsahovat jen tyto znaky: a-z, 0-9, -, ., _, &, /, a {mezeru}'; $wb['limit_mailfilter_txt'] = 'Byl dosažen max. počet e-mailový filtrovacích pravidel.'; $wb['subject_txt'] = 'Předmět'; $wb['from_txt'] = 'Odesílatel'; diff --git a/interface/web/mailuser/lib/lang/de_mail_user_filter.lng b/interface/web/mailuser/lib/lang/de_mail_user_filter.lng index 5c7d5c20d0..73e98770fd 100644 --- a/interface/web/mailuser/lib/lang/de_mail_user_filter.lng +++ b/interface/web/mailuser/lib/lang/de_mail_user_filter.lng @@ -6,7 +6,7 @@ $wb['active_txt'] = 'Aktiv'; $wb['rulename_error_empty'] = 'Name ist leer.'; $wb['searchterm_is_empty'] = 'Suchbegriff ist leer.'; $wb['source_txt'] = 'Quelle'; -$wb['target_error_regex'] = 'Das Ziel darf nur die folgenden Zeichen enthalten: a-z, 0-9, -, ., _, und {space}'; +$wb['target_error_regex'] = 'Das Ziel darf nur die folgenden Zeichen enthalten: a-z, 0-9, -, ., _, &, /, und {space}'; $wb['limit_mailfilter_txt'] = 'Die max. Anzahl an E-Mailfiltern ist erreicht.'; $wb['mailbox_filter_txt'] = 'E-Mailfilter'; $wb['subject_txt'] = 'Betreff'; 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 e2325c6902..3842fa9eb3 100644 --- a/interface/web/mailuser/lib/lang/dk_mail_user_filter.lng +++ b/interface/web/mailuser/lib/lang/dk_mail_user_filter.lng @@ -6,7 +6,7 @@ $wb['active_txt'] = 'Aktiv'; $wb['rulename_error_empty'] = 'Navn er tomt.'; $wb['searchterm_is_empty'] = 'Søgetermer er tomt.'; $wb['source_txt'] = 'Kilde'; -$wb['target_error_regex'] = 'Målet må kun indeholde disse tegn: a-z, 0-9, -, ., _, og {space}'; +$wb['target_error_regex'] = 'Målet må kun indeholde disse tegn: a-z, 0-9, -, ., _, &, /, og {space}'; $wb['limit_mailfilter_txt'] = 'Max. antal af mailfiltere er nået.'; $wb['subject_txt'] = 'Emne'; $wb['from_txt'] = 'Fra'; 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 0df6e0b75b..dd1f22c976 100644 --- a/interface/web/mailuser/lib/lang/el_mail_user_filter.lng +++ b/interface/web/mailuser/lib/lang/el_mail_user_filter.lng @@ -6,7 +6,7 @@ $wb['active_txt'] = 'Active'; $wb['rulename_error_empty'] = 'Name is empty.'; $wb['searchterm_is_empty'] = 'Search term is empty.'; $wb['source_txt'] = 'Source'; -$wb['target_error_regex'] = 'The target may only contain these characters: a-z, 0-9, -, ., _, and {space}'; +$wb['target_error_regex'] = 'The target may only contain these characters: a-z, 0-9, -, ., _, &, /, and {space}'; $wb['limit_mailfilter_txt'] = 'The max. number of mailfilters is reached.'; $wb['subject_txt'] = 'Subject'; $wb['from_txt'] = 'From'; 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 d49b4635c4..5ac082d47b 100644 --- a/interface/web/mailuser/lib/lang/en_mail_user_filter.lng +++ b/interface/web/mailuser/lib/lang/en_mail_user_filter.lng @@ -6,7 +6,7 @@ $wb['active_txt'] = 'Active'; $wb['rulename_error_empty'] = 'Name is empty.'; $wb['searchterm_is_empty'] = 'Search term is empty.'; $wb['source_txt'] = 'Source'; -$wb['target_error_regex'] = 'The target may only contain these characters: a-z, 0-9, -, ., _, and {space}'; +$wb['target_error_regex'] = 'The target may only contain these characters: a-z, 0-9, -, ., _, &, /, and {space}'; $wb['limit_mailfilter_txt'] = 'The max. number of mailfilters is reached.'; $wb['mailbox_filter_txt'] = 'Mailbox filter'; $wb['subject_txt'] = 'Subject'; 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 3485ea4601..fefbd095a1 100644 --- a/interface/web/mailuser/lib/lang/es_mail_user_filter.lng +++ b/interface/web/mailuser/lib/lang/es_mail_user_filter.lng @@ -15,7 +15,7 @@ $wb['rulename_txt'] = 'Nombre'; $wb['searchterm_is_empty'] = 'El término de búsqueda está vacío.'; $wb['source_txt'] = 'Origen'; $wb['subject_txt'] = 'Asunto'; -$wb['target_error_regex'] = 'La carpeta solo debe contener estos caracteres: a-z, 0-9, -, ., _, y {espacio}'; +$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'; 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 0df6e0b75b..dd1f22c976 100644 --- a/interface/web/mailuser/lib/lang/fi_mail_user_filter.lng +++ b/interface/web/mailuser/lib/lang/fi_mail_user_filter.lng @@ -6,7 +6,7 @@ $wb['active_txt'] = 'Active'; $wb['rulename_error_empty'] = 'Name is empty.'; $wb['searchterm_is_empty'] = 'Search term is empty.'; $wb['source_txt'] = 'Source'; -$wb['target_error_regex'] = 'The target may only contain these characters: a-z, 0-9, -, ., _, and {space}'; +$wb['target_error_regex'] = 'The target may only contain these characters: a-z, 0-9, -, ., _, &, /, and {space}'; $wb['limit_mailfilter_txt'] = 'The max. number of mailfilters is reached.'; $wb['subject_txt'] = 'Subject'; $wb['from_txt'] = 'From'; diff --git a/interface/web/mailuser/lib/lang/fr_mail_user_filter.lng b/interface/web/mailuser/lib/lang/fr_mail_user_filter.lng index d2b513b155..5ef1ed1af1 100644 --- a/interface/web/mailuser/lib/lang/fr_mail_user_filter.lng +++ b/interface/web/mailuser/lib/lang/fr_mail_user_filter.lng @@ -6,7 +6,7 @@ $wb['active_txt'] = 'Actif'; $wb['rulename_error_empty'] = 'Le nom est vide.'; $wb['searchterm_is_empty'] = 'Le terme recherché est vide.'; $wb['source_txt'] = 'Source'; -$wb['target_error_regex'] = 'La cible ne peut contenir que les caratères suivants : a-z, 0-9, -, ., _, et {espace}'; +$wb['target_error_regex'] = 'La cible ne peut contenir que les caratères suivants : a-z, 0-9, -, ., _, &, /, et {espace}'; $wb['limit_mailfilter_txt'] = 'Le nombre maximum de filtre e-mail a été atteint.'; $wb['subject_txt'] = 'Objet'; $wb['from_txt'] = 'De'; diff --git a/interface/web/mailuser/lib/lang/hr_mail_user_filter.lng b/interface/web/mailuser/lib/lang/hr_mail_user_filter.lng index dfb58bd3d2..a4c45b40dc 100644 --- a/interface/web/mailuser/lib/lang/hr_mail_user_filter.lng +++ b/interface/web/mailuser/lib/lang/hr_mail_user_filter.lng @@ -6,7 +6,7 @@ $wb['active_txt'] = 'Aktivno'; $wb['rulename_error_empty'] = 'Naziv je prazan.'; $wb['searchterm_is_empty'] = 'Traženi pojam je prazan.'; $wb['source_txt'] = 'Izvor'; -$wb['target_error_regex'] = 'Odredište može sadržavati samo ove znakove: a-z, 0-9, -, ., _, i {space}'; +$wb['target_error_regex'] = 'Odredište može sadržavati samo ove znakove: a-z, 0-9, -, ., _, &, /, i {space}'; $wb['limit_mailfilter_txt'] = 'Iskoristili ste maksimalan broj mail filtera.'; $wb['subject_txt'] = 'Naslov'; $wb['from_txt'] = 'Od'; 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 0df6e0b75b..dd1f22c976 100644 --- a/interface/web/mailuser/lib/lang/hu_mail_user_filter.lng +++ b/interface/web/mailuser/lib/lang/hu_mail_user_filter.lng @@ -6,7 +6,7 @@ $wb['active_txt'] = 'Active'; $wb['rulename_error_empty'] = 'Name is empty.'; $wb['searchterm_is_empty'] = 'Search term is empty.'; $wb['source_txt'] = 'Source'; -$wb['target_error_regex'] = 'The target may only contain these characters: a-z, 0-9, -, ., _, and {space}'; +$wb['target_error_regex'] = 'The target may only contain these characters: a-z, 0-9, -, ., _, &, /, and {space}'; $wb['limit_mailfilter_txt'] = 'The max. number of mailfilters is reached.'; $wb['subject_txt'] = 'Subject'; $wb['from_txt'] = 'From'; 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 0df6e0b75b..dd1f22c976 100644 --- a/interface/web/mailuser/lib/lang/id_mail_user_filter.lng +++ b/interface/web/mailuser/lib/lang/id_mail_user_filter.lng @@ -6,7 +6,7 @@ $wb['active_txt'] = 'Active'; $wb['rulename_error_empty'] = 'Name is empty.'; $wb['searchterm_is_empty'] = 'Search term is empty.'; $wb['source_txt'] = 'Source'; -$wb['target_error_regex'] = 'The target may only contain these characters: a-z, 0-9, -, ., _, and {space}'; +$wb['target_error_regex'] = 'The target may only contain these characters: a-z, 0-9, -, ., _, &, /, and {space}'; $wb['limit_mailfilter_txt'] = 'The max. number of mailfilters is reached.'; $wb['subject_txt'] = 'Subject'; $wb['from_txt'] = 'From'; diff --git a/interface/web/mailuser/lib/lang/it_mail_user_filter.lng b/interface/web/mailuser/lib/lang/it_mail_user_filter.lng index a0b9e360c2..77f47f1c4c 100644 --- a/interface/web/mailuser/lib/lang/it_mail_user_filter.lng +++ b/interface/web/mailuser/lib/lang/it_mail_user_filter.lng @@ -6,7 +6,7 @@ $wb['active_txt'] = 'Attivo'; $wb['rulename_error_empty'] = 'Nome vuoto.'; $wb['searchterm_is_empty'] = 'Termine di ricerca vuoto.'; $wb['source_txt'] = 'Sorgente'; -$wb['target_error_regex'] = 'Il target può contenere solo i seguenti caratteri: a-z, 0-9, -, ., _, e {space}'; +$wb['target_error_regex'] = 'Il target può contenere solo i seguenti caratteri: a-z, 0-9, -, ., _, &, /, e {space}'; $wb['limit_mailfilter_txt'] = 'Numero filtri mail raggiunto.'; $wb['subject_txt'] = 'Soggetto'; $wb['from_txt'] = 'Da'; 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 0df6e0b75b..dd1f22c976 100644 --- a/interface/web/mailuser/lib/lang/ja_mail_user_filter.lng +++ b/interface/web/mailuser/lib/lang/ja_mail_user_filter.lng @@ -6,7 +6,7 @@ $wb['active_txt'] = 'Active'; $wb['rulename_error_empty'] = 'Name is empty.'; $wb['searchterm_is_empty'] = 'Search term is empty.'; $wb['source_txt'] = 'Source'; -$wb['target_error_regex'] = 'The target may only contain these characters: a-z, 0-9, -, ., _, and {space}'; +$wb['target_error_regex'] = 'The target may only contain these characters: a-z, 0-9, -, ., _, &, /, and {space}'; $wb['limit_mailfilter_txt'] = 'The max. number of mailfilters is reached.'; $wb['subject_txt'] = 'Subject'; $wb['from_txt'] = 'From'; diff --git a/interface/web/mailuser/lib/lang/nl_mail_user_filter.lng b/interface/web/mailuser/lib/lang/nl_mail_user_filter.lng index 35ec72f5ae..c734fd5ef6 100644 --- a/interface/web/mailuser/lib/lang/nl_mail_user_filter.lng +++ b/interface/web/mailuser/lib/lang/nl_mail_user_filter.lng @@ -6,7 +6,7 @@ $wb['active_txt'] = 'Actief'; $wb['rulename_error_empty'] = 'Naam is niet ingevuld.'; $wb['searchterm_is_empty'] = 'Zoekterm is niet ingvuld.'; $wb['source_txt'] = 'Bron'; -$wb['target_error_regex'] = 'Het doel mag alleen de volgende karakters bevatten: a-z, 0-9, -, ., _, en {spatie}'; +$wb['target_error_regex'] = 'Het doel mag alleen de volgende karakters bevatten: a-z, 0-9, -, ., _, &, /, en {spatie}'; $wb['limit_mailfilter_txt'] = 'Het max. aantal e-mail filters voor uw account is bereikt.'; $wb['subject_txt'] = 'Onderwerp'; $wb['from_txt'] = 'Afzender'; 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 0df6e0b75b..dd1f22c976 100644 --- a/interface/web/mailuser/lib/lang/pl_mail_user_filter.lng +++ b/interface/web/mailuser/lib/lang/pl_mail_user_filter.lng @@ -6,7 +6,7 @@ $wb['active_txt'] = 'Active'; $wb['rulename_error_empty'] = 'Name is empty.'; $wb['searchterm_is_empty'] = 'Search term is empty.'; $wb['source_txt'] = 'Source'; -$wb['target_error_regex'] = 'The target may only contain these characters: a-z, 0-9, -, ., _, and {space}'; +$wb['target_error_regex'] = 'The target may only contain these characters: a-z, 0-9, -, ., _, &, /, and {space}'; $wb['limit_mailfilter_txt'] = 'The max. number of mailfilters is reached.'; $wb['subject_txt'] = 'Subject'; $wb['from_txt'] = 'From'; 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 0df6e0b75b..dd1f22c976 100644 --- a/interface/web/mailuser/lib/lang/pt_mail_user_filter.lng +++ b/interface/web/mailuser/lib/lang/pt_mail_user_filter.lng @@ -6,7 +6,7 @@ $wb['active_txt'] = 'Active'; $wb['rulename_error_empty'] = 'Name is empty.'; $wb['searchterm_is_empty'] = 'Search term is empty.'; $wb['source_txt'] = 'Source'; -$wb['target_error_regex'] = 'The target may only contain these characters: a-z, 0-9, -, ., _, and {space}'; +$wb['target_error_regex'] = 'The target may only contain these characters: a-z, 0-9, -, ., _, &, /, and {space}'; $wb['limit_mailfilter_txt'] = 'The max. number of mailfilters is reached.'; $wb['subject_txt'] = 'Subject'; $wb['from_txt'] = 'From'; 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 0df6e0b75b..dd1f22c976 100644 --- a/interface/web/mailuser/lib/lang/ro_mail_user_filter.lng +++ b/interface/web/mailuser/lib/lang/ro_mail_user_filter.lng @@ -6,7 +6,7 @@ $wb['active_txt'] = 'Active'; $wb['rulename_error_empty'] = 'Name is empty.'; $wb['searchterm_is_empty'] = 'Search term is empty.'; $wb['source_txt'] = 'Source'; -$wb['target_error_regex'] = 'The target may only contain these characters: a-z, 0-9, -, ., _, and {space}'; +$wb['target_error_regex'] = 'The target may only contain these characters: a-z, 0-9, -, ., _, &, /, and {space}'; $wb['limit_mailfilter_txt'] = 'The max. number of mailfilters is reached.'; $wb['subject_txt'] = 'Subject'; $wb['from_txt'] = 'From'; diff --git a/interface/web/mailuser/lib/lang/se_mail_user_filter.lng b/interface/web/mailuser/lib/lang/se_mail_user_filter.lng index 4f7e093d77..6c8b92d5bd 100644 --- a/interface/web/mailuser/lib/lang/se_mail_user_filter.lng +++ b/interface/web/mailuser/lib/lang/se_mail_user_filter.lng @@ -6,7 +6,7 @@ $wb['active_txt'] = 'Aktiv'; $wb['rulename_error_empty'] = 'Namnfältet är tomt.'; $wb['searchterm_is_empty'] = 'Sökfältet är tomt.'; $wb['source_txt'] = 'Källa'; -$wb['target_error_regex'] = 'Målet får endast innehålla dessa tecken: a-z, 0-9, -, ., _,och {mellanslag}'; +$wb['target_error_regex'] = 'Målet får endast innehålla dessa tecken: a-z, 0-9, -, ., _, &, /,och {mellanslag}'; $wb['limit_mailfilter_txt'] = 'Det maximala antalet epostfilter är uppnått.'; $wb['subject_txt'] = 'Ämne'; $wb['from_txt'] = 'Från'; 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 0df6e0b75b..dd1f22c976 100644 --- a/interface/web/mailuser/lib/lang/sk_mail_user_filter.lng +++ b/interface/web/mailuser/lib/lang/sk_mail_user_filter.lng @@ -6,7 +6,7 @@ $wb['active_txt'] = 'Active'; $wb['rulename_error_empty'] = 'Name is empty.'; $wb['searchterm_is_empty'] = 'Search term is empty.'; $wb['source_txt'] = 'Source'; -$wb['target_error_regex'] = 'The target may only contain these characters: a-z, 0-9, -, ., _, and {space}'; +$wb['target_error_regex'] = 'The target may only contain these characters: a-z, 0-9, -, ., _, &, /, and {space}'; $wb['limit_mailfilter_txt'] = 'The max. number of mailfilters is reached.'; $wb['subject_txt'] = 'Subject'; $wb['from_txt'] = 'From'; diff --git a/interface/web/mailuser/lib/lang/tr_mail_user_filter.lng b/interface/web/mailuser/lib/lang/tr_mail_user_filter.lng index b59a4afbab..533deef2d8 100644 --- a/interface/web/mailuser/lib/lang/tr_mail_user_filter.lng +++ b/interface/web/mailuser/lib/lang/tr_mail_user_filter.lng @@ -6,7 +6,7 @@ $wb['active_txt'] = 'Etkin'; $wb['rulename_error_empty'] = 'Ad boş olamaz.'; $wb['searchterm_is_empty'] = 'Arama ifadesi 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['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 önemsiz ileti süzgeci sayısı sınırına ulaştınız.'; $wb['subject_txt'] = 'Konu'; $wb['from_txt'] = 'Kimden'; -- GitLab From 28cddc374cb0a73057f5c402ae30f837c97d95dd Mon Sep 17 00:00:00 2001 From: Marius Burkard Date: Fri, 23 Oct 2020 19:36:51 +0200 Subject: [PATCH 076/300] Apply 1 suggestion(s) to 1 file(s) --- interface/web/mail/lib/lang/de_mail_user_filter.lng | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/interface/web/mail/lib/lang/de_mail_user_filter.lng b/interface/web/mail/lib/lang/de_mail_user_filter.lng index ab9dafd84b..13be430c80 100644 --- a/interface/web/mail/lib/lang/de_mail_user_filter.lng +++ b/interface/web/mail/lib/lang/de_mail_user_filter.lng @@ -6,7 +6,7 @@ $wb['active_txt'] = 'Aktiv'; $wb['rulename_error_empty'] = 'Name ist leer.'; $wb['searchterm_is_empty'] = 'Suchbegriff ist leer.'; $wb['source_txt'] = 'Quelle'; -$wb['target_error_regex'] = 'Das Ziel beinhaltet wahrscheinlich diese Zeichen: a-z, 0-9, -, ., _, &, /, und {raum}'; +$wb['target_error_regex'] = 'Das Ziel beinhaltet wahrscheinlich diese Zeichen: a-z, 0-9, -, ., _, &, /, und {space}'; $wb['limit_mailfilter_txt'] = 'Die maximale Anzahl an E-Mail Filtern für Ihr Konto wurde erreicht.'; $wb['subject_txt'] = 'Betreff'; $wb['from_txt'] = 'Von'; -- GitLab From 868e4d4fc0b464fcf0e230bb5f2cc7b91b7089e1 Mon Sep 17 00:00:00 2001 From: thom Date: Fri, 23 Oct 2020 20:22:03 +0200 Subject: [PATCH 077/300] Add option to re-enable APS (#5859) --- interface/web/admin/form/system_config.tform.php | 6 ++++++ interface/web/admin/lib/lang/ar_system_config.lng | 3 +++ interface/web/admin/lib/lang/bg_system_config.lng | 3 +++ interface/web/admin/lib/lang/br_system_config.lng | 3 +++ interface/web/admin/lib/lang/ca_system_config.lng | 3 +++ interface/web/admin/lib/lang/cz_system_config.lng | 3 +++ interface/web/admin/lib/lang/de_system_config.lng | 3 +++ interface/web/admin/lib/lang/dk_system_config.lng | 3 +++ interface/web/admin/lib/lang/el_system_config.lng | 3 +++ interface/web/admin/lib/lang/en_system_config.lng | 3 +++ interface/web/admin/lib/lang/es_system_config.lng | 3 +++ interface/web/admin/lib/lang/fi_system_config.lng | 3 +++ interface/web/admin/lib/lang/fr_system_config.lng | 3 +++ interface/web/admin/lib/lang/hr_system_config.lng | 3 +++ interface/web/admin/lib/lang/hu_system_config.lng | 3 +++ interface/web/admin/lib/lang/id_system_config.lng | 3 +++ interface/web/admin/lib/lang/it_system_config.lng | 3 +++ interface/web/admin/lib/lang/ja_system_config.lng | 3 +++ interface/web/admin/lib/lang/nl_system_config.lng | 3 +++ interface/web/admin/lib/lang/pl_system_config.lng | 3 +++ interface/web/admin/lib/lang/pt_system_config.lng | 3 +++ interface/web/admin/lib/lang/ro_system_config.lng | 3 +++ interface/web/admin/lib/lang/ru_system_config.lng | 3 +++ interface/web/admin/lib/lang/se_system_config.lng | 3 +++ interface/web/admin/lib/lang/sk_system_config.lng | 3 +++ interface/web/admin/lib/lang/tr_system_config.lng | 3 +++ interface/web/admin/templates/system_config_sites_edit.htm | 6 ++++++ 27 files changed, 87 insertions(+) diff --git a/interface/web/admin/form/system_config.tform.php b/interface/web/admin/form/system_config.tform.php index 2e62900fd9..bbfb921e9a 100644 --- a/interface/web/admin/form/system_config.tform.php +++ b/interface/web/admin/form/system_config.tform.php @@ -184,6 +184,12 @@ $form["tabs"]['sites'] = array ( 'default' => 'n', 'value' => array(0 => 'n', 1 => 'y') ), + 'show_aps_menu' => array ( + 'datatype' => 'VARCHAR', + 'formtype' => 'CHECKBOX', + 'default' => 'n', + 'value' => array(0 => 'n', 1 => 'y') + ), 'default_webserver' => array ( 'datatype' => 'INTEGER', 'formtype' => 'SELECT', diff --git a/interface/web/admin/lib/lang/ar_system_config.lng b/interface/web/admin/lib/lang/ar_system_config.lng index e6df413bbe..7d3df7fbf8 100644 --- a/interface/web/admin/lib/lang/ar_system_config.lng +++ b/interface/web/admin/lib/lang/ar_system_config.lng @@ -100,4 +100,7 @@ $wb['btn_cancel_txt'] = 'Cancel'; $wb['web_php_options_txt'] = 'PHP Handler (Apache only)'; $wb['client_protection_txt'] = 'Client protection'; $wb['show_support_messages_txt'] = 'Show message function in help module'; +$wb['show_aps_menu_txt'] = 'Show APS menu'; +$wb['show_aps_menu_note_txt'] = 'APS will be removed from the panel in the near future.'; +$wb['show_aps_menu_note_url_txt'] = 'Click here for more information.'; ?> diff --git a/interface/web/admin/lib/lang/bg_system_config.lng b/interface/web/admin/lib/lang/bg_system_config.lng index 301f5fe1b7..f99465e1b6 100644 --- a/interface/web/admin/lib/lang/bg_system_config.lng +++ b/interface/web/admin/lib/lang/bg_system_config.lng @@ -100,4 +100,7 @@ $wb['btn_cancel_txt'] = 'Cancel'; $wb['web_php_options_txt'] = 'PHP Handler (Apache only)'; $wb['client_protection_txt'] = 'Client protection'; $wb['show_support_messages_txt'] = 'Show message function in help module'; +$wb['show_aps_menu_txt'] = 'Show APS menu'; +$wb['show_aps_menu_note_txt'] = 'APS will be removed from the panel in the near future.'; +$wb['show_aps_menu_note_url_txt'] = 'Click here for more information.'; ?> diff --git a/interface/web/admin/lib/lang/br_system_config.lng b/interface/web/admin/lib/lang/br_system_config.lng index 01962d3309..b74f29df08 100644 --- a/interface/web/admin/lib/lang/br_system_config.lng +++ b/interface/web/admin/lib/lang/br_system_config.lng @@ -100,4 +100,7 @@ $wb['btn_cancel_txt'] = 'Cancelar'; $wb['web_php_options_txt'] = 'Manipulador do php (Somente apache)'; $wb['client_protection_txt'] = 'Client protection'; $wb['show_support_messages_txt'] = 'Show message function in help module'; +$wb['show_aps_menu_txt'] = 'Show APS menu'; +$wb['show_aps_menu_note_txt'] = 'APS will be removed from the panel in the near future.'; +$wb['show_aps_menu_note_url_txt'] = 'Click here for more information.'; ?> diff --git a/interface/web/admin/lib/lang/ca_system_config.lng b/interface/web/admin/lib/lang/ca_system_config.lng index 507dfb750f..d8bc0e2d48 100644 --- a/interface/web/admin/lib/lang/ca_system_config.lng +++ b/interface/web/admin/lib/lang/ca_system_config.lng @@ -100,4 +100,7 @@ $wb['btn_cancel_txt'] = 'Cancel'; $wb['web_php_options_txt'] = 'PHP Handler (Apache only)'; $wb['client_protection_txt'] = 'Client protection'; $wb['show_support_messages_txt'] = 'Show message function in help module'; +$wb['show_aps_menu_txt'] = 'Show APS menu'; +$wb['show_aps_menu_note_txt'] = 'APS will be removed from the panel in the near future.'; +$wb['show_aps_menu_note_url_txt'] = 'Click here for more information.'; ?> diff --git a/interface/web/admin/lib/lang/cz_system_config.lng b/interface/web/admin/lib/lang/cz_system_config.lng index 182bfd326b..e0bbb2b691 100644 --- a/interface/web/admin/lib/lang/cz_system_config.lng +++ b/interface/web/admin/lib/lang/cz_system_config.lng @@ -100,4 +100,7 @@ $wb['btn_cancel_txt'] = 'Zrušit'; $wb['web_php_options_txt'] = 'PHP Handler (Apache only)'; $wb['client_protection_txt'] = 'Client protection'; $wb['show_support_messages_txt'] = 'Show message function in help module'; +$wb['show_aps_menu_txt'] = 'Show APS menu'; +$wb['show_aps_menu_note_txt'] = 'APS will be removed from the panel in the near future.'; +$wb['show_aps_menu_note_url_txt'] = 'Click here for more information.'; ?> diff --git a/interface/web/admin/lib/lang/de_system_config.lng b/interface/web/admin/lib/lang/de_system_config.lng index 3b48e220ee..40e29e7415 100644 --- a/interface/web/admin/lib/lang/de_system_config.lng +++ b/interface/web/admin/lib/lang/de_system_config.lng @@ -104,4 +104,7 @@ $wb['btn_cancel_txt'] = 'Abbrechen'; $wb['web_php_options_txt'] = 'PHP Handler (Nur Apache)'; $wb['client_protection_txt'] = 'Client protection'; $wb['show_support_messages_txt'] = 'Show message function in help module'; +$wb['show_aps_menu_txt'] = 'Show APS menu'; +$wb['show_aps_menu_note_txt'] = 'APS will be removed from the panel in the near future.'; +$wb['show_aps_menu_note_url_txt'] = 'Click here for more information.'; ?> diff --git a/interface/web/admin/lib/lang/dk_system_config.lng b/interface/web/admin/lib/lang/dk_system_config.lng index 5a0696020a..eb96004421 100644 --- a/interface/web/admin/lib/lang/dk_system_config.lng +++ b/interface/web/admin/lib/lang/dk_system_config.lng @@ -100,4 +100,7 @@ $wb['btn_cancel_txt'] = 'Cancel'; $wb['web_php_options_txt'] = 'PHP Handler (Apache only)'; $wb['client_protection_txt'] = 'Client protection'; $wb['show_support_messages_txt'] = 'Show message function in help module'; +$wb['show_aps_menu_txt'] = 'Show APS menu'; +$wb['show_aps_menu_note_txt'] = 'APS will be removed from the panel in the near future.'; +$wb['show_aps_menu_note_url_txt'] = 'Click here for more information.'; ?> diff --git a/interface/web/admin/lib/lang/el_system_config.lng b/interface/web/admin/lib/lang/el_system_config.lng index 35c0d99344..68e10e37fc 100644 --- a/interface/web/admin/lib/lang/el_system_config.lng +++ b/interface/web/admin/lib/lang/el_system_config.lng @@ -100,4 +100,7 @@ $wb['btn_cancel_txt'] = 'Cancel'; $wb['web_php_options_txt'] = 'PHP Handler (Apache only)'; $wb['client_protection_txt'] = 'Client protection'; $wb['show_support_messages_txt'] = 'Show message function in help module'; +$wb['show_aps_menu_txt'] = 'Show APS menu'; +$wb['show_aps_menu_note_txt'] = 'APS will be removed from the panel in the near future.'; +$wb['show_aps_menu_note_url_txt'] = 'Click here for more information.'; ?> diff --git a/interface/web/admin/lib/lang/en_system_config.lng b/interface/web/admin/lib/lang/en_system_config.lng index d81128a269..4493913fb0 100644 --- a/interface/web/admin/lib/lang/en_system_config.lng +++ b/interface/web/admin/lib/lang/en_system_config.lng @@ -104,4 +104,7 @@ $wb['btn_cancel_txt'] = 'Cancel'; $wb['web_php_options_txt'] = 'PHP Handler (Apache only)'; $wb['client_protection_txt'] = 'Client protection'; $wb['show_support_messages_txt'] = 'Show message function in help module'; +$wb['show_aps_menu_txt'] = 'Show APS menu'; +$wb['show_aps_menu_note_txt'] = 'APS will be removed from the panel in the near future.'; +$wb['show_aps_menu_note_url_txt'] = 'Click here for more information.'; ?> diff --git a/interface/web/admin/lib/lang/es_system_config.lng b/interface/web/admin/lib/lang/es_system_config.lng index 8c87391a9b..a001999dd4 100644 --- a/interface/web/admin/lib/lang/es_system_config.lng +++ b/interface/web/admin/lib/lang/es_system_config.lng @@ -100,4 +100,7 @@ $wb['btn_cancel_txt'] = 'Cancel'; $wb['web_php_options_txt'] = 'PHP Handler (Apache only)'; $wb['client_protection_txt'] = 'Client protection'; $wb['show_support_messages_txt'] = 'Show message function in help module'; +$wb['show_aps_menu_txt'] = 'Show APS menu'; +$wb['show_aps_menu_note_txt'] = 'APS will be removed from the panel in the near future.'; +$wb['show_aps_menu_note_url_txt'] = 'Click here for more information.'; ?> diff --git a/interface/web/admin/lib/lang/fi_system_config.lng b/interface/web/admin/lib/lang/fi_system_config.lng index a1c94dfc62..eb7863fd53 100644 --- a/interface/web/admin/lib/lang/fi_system_config.lng +++ b/interface/web/admin/lib/lang/fi_system_config.lng @@ -100,4 +100,7 @@ $wb['btn_cancel_txt'] = 'Cancel'; $wb['web_php_options_txt'] = 'PHP Handler (Apache only)'; $wb['client_protection_txt'] = 'Client protection'; $wb['show_support_messages_txt'] = 'Show message function in help module'; +$wb['show_aps_menu_txt'] = 'Show APS menu'; +$wb['show_aps_menu_note_txt'] = 'APS will be removed from the panel in the near future.'; +$wb['show_aps_menu_note_url_txt'] = 'Click here for more information.'; ?> diff --git a/interface/web/admin/lib/lang/fr_system_config.lng b/interface/web/admin/lib/lang/fr_system_config.lng index be3b771570..cfecf8e27f 100644 --- a/interface/web/admin/lib/lang/fr_system_config.lng +++ b/interface/web/admin/lib/lang/fr_system_config.lng @@ -100,4 +100,7 @@ $wb['btn_cancel_txt'] = 'Cancel'; $wb['web_php_options_txt'] = 'PHP Handler (Apache only)'; $wb['client_protection_txt'] = 'Client protection'; $wb['show_support_messages_txt'] = 'Show message function in help module'; +$wb['show_aps_menu_txt'] = 'Show APS menu'; +$wb['show_aps_menu_note_txt'] = 'APS will be removed from the panel in the near future.'; +$wb['show_aps_menu_note_url_txt'] = 'Click here for more information.'; ?> diff --git a/interface/web/admin/lib/lang/hr_system_config.lng b/interface/web/admin/lib/lang/hr_system_config.lng index ef6c311473..3f6486ae53 100644 --- a/interface/web/admin/lib/lang/hr_system_config.lng +++ b/interface/web/admin/lib/lang/hr_system_config.lng @@ -100,4 +100,7 @@ $wb['btn_cancel_txt'] = 'Cancel'; $wb['web_php_options_txt'] = 'PHP Handler (Apache only)'; $wb['client_protection_txt'] = 'Client protection'; $wb['show_support_messages_txt'] = 'Show message function in help module'; +$wb['show_aps_menu_txt'] = 'Show APS menu'; +$wb['show_aps_menu_note_txt'] = 'APS will be removed from the panel in the near future.'; +$wb['show_aps_menu_note_url_txt'] = 'Click here for more information.'; ?> diff --git a/interface/web/admin/lib/lang/hu_system_config.lng b/interface/web/admin/lib/lang/hu_system_config.lng index 32e4e4ac36..6b1a29ee46 100644 --- a/interface/web/admin/lib/lang/hu_system_config.lng +++ b/interface/web/admin/lib/lang/hu_system_config.lng @@ -100,4 +100,7 @@ $wb['btn_cancel_txt'] = 'Cancel'; $wb['web_php_options_txt'] = 'PHP Handler (Apache only)'; $wb['client_protection_txt'] = 'Client protection'; $wb['show_support_messages_txt'] = 'Show message function in help module'; +$wb['show_aps_menu_txt'] = 'Show APS menu'; +$wb['show_aps_menu_note_txt'] = 'APS will be removed from the panel in the near future.'; +$wb['show_aps_menu_note_url_txt'] = 'Click here for more information.'; ?> diff --git a/interface/web/admin/lib/lang/id_system_config.lng b/interface/web/admin/lib/lang/id_system_config.lng index bc618f8481..f034f9bd76 100644 --- a/interface/web/admin/lib/lang/id_system_config.lng +++ b/interface/web/admin/lib/lang/id_system_config.lng @@ -100,4 +100,7 @@ $wb['btn_cancel_txt'] = 'Cancel'; $wb['web_php_options_txt'] = 'PHP Handler (Apache only)'; $wb['client_protection_txt'] = 'Client protection'; $wb['show_support_messages_txt'] = 'Show message function in help module'; +$wb['show_aps_menu_txt'] = 'Show APS menu'; +$wb['show_aps_menu_note_txt'] = 'APS will be removed from the panel in the near future.'; +$wb['show_aps_menu_note_url_txt'] = 'Click here for more information.'; ?> diff --git a/interface/web/admin/lib/lang/it_system_config.lng b/interface/web/admin/lib/lang/it_system_config.lng index 4268f5a47e..42f878a54d 100644 --- a/interface/web/admin/lib/lang/it_system_config.lng +++ b/interface/web/admin/lib/lang/it_system_config.lng @@ -100,4 +100,7 @@ $wb['btn_cancel_txt'] = 'Cancel'; $wb['web_php_options_txt'] = 'PHP Handler (Apache only)'; $wb['client_protection_txt'] = 'Client protection'; $wb['show_support_messages_txt'] = 'Show message function in help module'; +$wb['show_aps_menu_txt'] = 'Show APS menu'; +$wb['show_aps_menu_note_txt'] = 'APS will be removed from the panel in the near future.'; +$wb['show_aps_menu_note_url_txt'] = 'Click here for more information.'; ?> diff --git a/interface/web/admin/lib/lang/ja_system_config.lng b/interface/web/admin/lib/lang/ja_system_config.lng index d9a7441cf1..f50ffb5114 100644 --- a/interface/web/admin/lib/lang/ja_system_config.lng +++ b/interface/web/admin/lib/lang/ja_system_config.lng @@ -100,4 +100,7 @@ $wb['btn_cancel_txt'] = 'Cancel'; $wb['web_php_options_txt'] = 'PHP Handler (Apache only)'; $wb['client_protection_txt'] = 'Client protection'; $wb['show_support_messages_txt'] = 'Show message function in help module'; +$wb['show_aps_menu_txt'] = 'Show APS menu'; +$wb['show_aps_menu_note_txt'] = 'APS will be removed from the panel in the near future.'; +$wb['show_aps_menu_note_url_txt'] = 'Click here for more information.'; ?> diff --git a/interface/web/admin/lib/lang/nl_system_config.lng b/interface/web/admin/lib/lang/nl_system_config.lng index a6c7303477..4078be986e 100644 --- a/interface/web/admin/lib/lang/nl_system_config.lng +++ b/interface/web/admin/lib/lang/nl_system_config.lng @@ -100,4 +100,7 @@ $wb['btn_cancel_txt'] = 'Cancel'; $wb['web_php_options_txt'] = 'PHP Handler (Apache only)'; $wb['client_protection_txt'] = 'Client protection'; $wb['show_support_messages_txt'] = 'Show message function in help module'; +$wb['show_aps_menu_txt'] = 'Show APS menu'; +$wb['show_aps_menu_note_txt'] = 'APS will be removed from the panel in the near future.'; +$wb['show_aps_menu_note_url_txt'] = 'Click here for more information.'; ?> diff --git a/interface/web/admin/lib/lang/pl_system_config.lng b/interface/web/admin/lib/lang/pl_system_config.lng index c15c4d2756..c94313bdcb 100644 --- a/interface/web/admin/lib/lang/pl_system_config.lng +++ b/interface/web/admin/lib/lang/pl_system_config.lng @@ -100,4 +100,7 @@ $wb['btn_cancel_txt'] = 'Cancel'; $wb['web_php_options_txt'] = 'PHP Handler (Apache only)'; $wb['client_protection_txt'] = 'Client protection'; $wb['show_support_messages_txt'] = 'Show message function in help module'; +$wb['show_aps_menu_txt'] = 'Show APS menu'; +$wb['show_aps_menu_note_txt'] = 'APS will be removed from the panel in the near future.'; +$wb['show_aps_menu_note_url_txt'] = 'Click here for more information.'; ?> diff --git a/interface/web/admin/lib/lang/pt_system_config.lng b/interface/web/admin/lib/lang/pt_system_config.lng index efc557257a..39e4dc93f2 100644 --- a/interface/web/admin/lib/lang/pt_system_config.lng +++ b/interface/web/admin/lib/lang/pt_system_config.lng @@ -100,4 +100,7 @@ $wb['btn_cancel_txt'] = 'Cancel'; $wb['web_php_options_txt'] = 'PHP Handler (Apache only)'; $wb['client_protection_txt'] = 'Client protection'; $wb['show_support_messages_txt'] = 'Show message function in help module'; +$wb['show_aps_menu_txt'] = 'Show APS menu'; +$wb['show_aps_menu_note_txt'] = 'APS will be removed from the panel in the near future.'; +$wb['show_aps_menu_note_url_txt'] = 'Click here for more information.'; ?> diff --git a/interface/web/admin/lib/lang/ro_system_config.lng b/interface/web/admin/lib/lang/ro_system_config.lng index e8ebe587ad..2b819a013e 100644 --- a/interface/web/admin/lib/lang/ro_system_config.lng +++ b/interface/web/admin/lib/lang/ro_system_config.lng @@ -100,4 +100,7 @@ $wb['btn_cancel_txt'] = 'Cancel'; $wb['web_php_options_txt'] = 'PHP Handler (Apache only)'; $wb['client_protection_txt'] = 'Client protection'; $wb['show_support_messages_txt'] = 'Show message function in help module'; +$wb['show_aps_menu_txt'] = 'Show APS menu'; +$wb['show_aps_menu_note_txt'] = 'APS will be removed from the panel in the near future.'; +$wb['show_aps_menu_note_url_txt'] = 'Click here for more information.'; ?> diff --git a/interface/web/admin/lib/lang/ru_system_config.lng b/interface/web/admin/lib/lang/ru_system_config.lng index b90d51e6f3..3aee07ff2e 100644 --- a/interface/web/admin/lib/lang/ru_system_config.lng +++ b/interface/web/admin/lib/lang/ru_system_config.lng @@ -100,4 +100,7 @@ $wb['btn_cancel_txt'] = 'Cancel'; $wb['web_php_options_txt'] = 'PHP Handler (Apache only)'; $wb['client_protection_txt'] = 'Client protection'; $wb['show_support_messages_txt'] = 'Show message function in help module'; +$wb['show_aps_menu_txt'] = 'Show APS menu'; +$wb['show_aps_menu_note_txt'] = 'APS will be removed from the panel in the near future.'; +$wb['show_aps_menu_note_url_txt'] = 'Click here for more information.'; ?> diff --git a/interface/web/admin/lib/lang/se_system_config.lng b/interface/web/admin/lib/lang/se_system_config.lng index fc150f53c6..d075f87509 100644 --- a/interface/web/admin/lib/lang/se_system_config.lng +++ b/interface/web/admin/lib/lang/se_system_config.lng @@ -100,4 +100,7 @@ $wb['btn_cancel_txt'] = 'Cancel'; $wb['web_php_options_txt'] = 'PHP Handler (Apache only)'; $wb['client_protection_txt'] = 'Client protection'; $wb['show_support_messages_txt'] = 'Show message function in help module'; +$wb['show_aps_menu_txt'] = 'Show APS menu'; +$wb['show_aps_menu_note_txt'] = 'APS will be removed from the panel in the near future.'; +$wb['show_aps_menu_note_url_txt'] = 'Click here for more information.'; ?> diff --git a/interface/web/admin/lib/lang/sk_system_config.lng b/interface/web/admin/lib/lang/sk_system_config.lng index 35ef9e370e..ef4cc3fef9 100644 --- a/interface/web/admin/lib/lang/sk_system_config.lng +++ b/interface/web/admin/lib/lang/sk_system_config.lng @@ -100,4 +100,7 @@ $wb['btn_cancel_txt'] = 'Cancel'; $wb['web_php_options_txt'] = 'PHP Handler (Apache only)'; $wb['client_protection_txt'] = 'Client protection'; $wb['show_support_messages_txt'] = 'Show message function in help module'; +$wb['show_aps_menu_txt'] = 'Show APS menu'; +$wb['show_aps_menu_note_txt'] = 'APS will be removed from the panel in the near future.'; +$wb['show_aps_menu_note_url_txt'] = 'Click here for more information.'; ?> diff --git a/interface/web/admin/lib/lang/tr_system_config.lng b/interface/web/admin/lib/lang/tr_system_config.lng index f83a226a0b..3bb9c82b0a 100644 --- a/interface/web/admin/lib/lang/tr_system_config.lng +++ b/interface/web/admin/lib/lang/tr_system_config.lng @@ -103,4 +103,7 @@ $wb['btn_cancel_txt'] = 'Cancel'; $wb['web_php_options_txt'] = 'PHP Handler (Apache only)'; $wb['client_protection_txt'] = 'Client protection'; $wb['show_support_messages_txt'] = 'Show message function in help module'; +$wb['show_aps_menu_txt'] = 'Show APS menu'; +$wb['show_aps_menu_note_txt'] = 'APS will be removed from the panel in the near future.'; +$wb['show_aps_menu_note_url_txt'] = 'Click here for more information.'; ?> diff --git a/interface/web/admin/templates/system_config_sites_edit.htm b/interface/web/admin/templates/system_config_sites_edit.htm index b261cfdab1..c0db318d01 100644 --- a/interface/web/admin/templates/system_config_sites_edit.htm +++ b/interface/web/admin/templates/system_config_sites_edit.htm @@ -61,6 +61,12 @@
{tmpl_var name='reseller_can_use_options'}
+
+
+ +
+ {tmpl_var name='show_aps_menu'} {tmpl_var name='show_aps_menu_note_txt'} {tmpl_var name='show_aps_menu_note_url_txt'} +
-- GitLab From 3d5186ffe68a588b59bc84d0a5ecc0f4f1c3a9fe Mon Sep 17 00:00:00 2001 From: thom Date: Sat, 24 Oct 2020 00:47:05 +0200 Subject: [PATCH 078/300] Show DNS config errors on records tab (#5860) --- interface/web/dns/templates/dns_a_list.htm | 11 +++++++++++ interface/web/dns/templates/dns_soa_edit.htm | 7 ------- 2 files changed, 11 insertions(+), 7 deletions(-) diff --git a/interface/web/dns/templates/dns_a_list.htm b/interface/web/dns/templates/dns_a_list.htm index e3e5486763..f17e1f804d 100644 --- a/interface/web/dns/templates/dns_a_list.htm +++ b/interface/web/dns/templates/dns_a_list.htm @@ -1,3 +1,14 @@ + +
+

+ +

+
{tmpl_var name='config_error_tstamp'} : 
+
{tmpl_var name='config_error_msg'}
+
+

+
+
diff --git a/interface/web/dns/templates/dns_soa_edit.htm b/interface/web/dns/templates/dns_soa_edit.htm index 2859913f86..97f3385030 100644 --- a/interface/web/dns/templates/dns_soa_edit.htm +++ b/interface/web/dns/templates/dns_soa_edit.htm @@ -1,11 +1,4 @@ -

-- GitLab From c5ceae2328671647f49329354d53a5ce8dd18725 Mon Sep 17 00:00:00 2001 From: Herman van Rink Date: Sat, 24 Oct 2020 21:45:53 +0200 Subject: [PATCH 079/300] Load the company name to show in the HTML title tag, fixes #5864 --- interface/web/login/password_reset.php | 5 ++++- 1 file changed, 4 insertions(+), 1 deletion(-) diff --git a/interface/web/login/password_reset.php b/interface/web/login/password_reset.php index f14548dd91..9a2541bba0 100644 --- a/interface/web/login/password_reset.php +++ b/interface/web/login/password_reset.php @@ -179,7 +179,10 @@ $app->tpl->setVar('base64_logo_height', $logo_dimensions[1].'px'); $app->tpl->setVar('base64_logo_txt', $base64_logo_txt); // Title -$app->tpl->setVar('company_name', $sys_config['company_name']. ' :: '); +$sys_config = $app->getconf->get_global_config('misc'); +if (!empty($sys_config['company_name'])) { + $app->tpl->setVar('company_name', $sys_config['company_name']. ' :: '); +} $app->tpl_defaults(); $app->tpl->pparse(); -- GitLab From a1be781f5dcd11e23456fd9c3a35157c37ae6478 Mon Sep 17 00:00:00 2001 From: Daniel Jagszent Date: Tue, 27 Oct 2020 01:16:48 +0100 Subject: [PATCH 080/300] nginx vhost conf: disable authentication for error pages --- server/conf/nginx_vhost.conf.master | 8 ++++++++ 1 file changed, 8 insertions(+) diff --git a/server/conf/nginx_vhost.conf.master b/server/conf/nginx_vhost.conf.master index 57dffe1369..51ca7dfb69 100644 --- a/server/conf/nginx_vhost.conf.master +++ b/server/conf/nginx_vhost.conf.master @@ -102,34 +102,42 @@ server { location = /error/400.html { internal; + auth_basic off; } location = /error/401.html { internal; + auth_basic off; } location = /error/403.html { internal; + auth_basic off; } location = /error/404.html { internal; + auth_basic off; } location = /error/405.html { internal; + auth_basic off; } location = /error/500.html { internal; + auth_basic off; } location = /error/502.html { internal; + auth_basic off; } location = /error/503.html { internal; + auth_basic off; } -- GitLab From 610af7e289abb19aa66554c65351e417b9d4248c Mon Sep 17 00:00:00 2001 From: Jesse Norell Date: Tue, 27 Oct 2020 19:26:46 +0100 Subject: [PATCH 081/300] jailkit: include /usr/share/npm in [node] jail --- install/tpl/jk_init.ini.master | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/install/tpl/jk_init.ini.master b/install/tpl/jk_init.ini.master index 0f62aac9ef..b84aab95b6 100644 --- a/install/tpl/jk_init.ini.master +++ b/install/tpl/jk_init.ini.master @@ -173,7 +173,7 @@ includesections = php, uidbasics, netbasics [node] comment = NodeJS -paths = npm, node, nodejs, /usr/lib/nodejs, /usr/share/node-mime, /usr/lib/node_modules, /usr/local/lib/nodejs, /usr/local/lib/node_modules, elmi-to-json, /usr/local/bin/elmi-to-json +paths = npm, node, nodejs, /usr/lib/nodejs, /usr/share/npm, /usr/share/node-mime, /usr/lib/node_modules, /usr/local/lib/nodejs, /usr/local/lib/node_modules, elmi-to-json, /usr/local/bin/elmi-to-json [env] comment = /usr/bin/env for environment variables -- GitLab From 29ff27e4d894a148bce388ef9aee6febf13bd1d4 Mon Sep 17 00:00:00 2001 From: Thom Pol Date: Thu, 29 Oct 2020 16:00:11 +0100 Subject: [PATCH 082/300] Remove double translation (#5884) --- interface/web/admin/lib/lang/de_system_config.lng | 4 ---- 1 file changed, 4 deletions(-) diff --git a/interface/web/admin/lib/lang/de_system_config.lng b/interface/web/admin/lib/lang/de_system_config.lng index e80de10943..36ed7295d2 100644 --- a/interface/web/admin/lib/lang/de_system_config.lng +++ b/interface/web/admin/lib/lang/de_system_config.lng @@ -74,10 +74,6 @@ $wb['session_allow_endless_txt'] = '"Eingeloggt bleiben" aktivieren'; $wb['No'] = 'Nein'; $wb['min_password_length_txt'] = 'Minimale Passwortlänge'; $wb['min_password_strength_txt'] = 'Minimale Passwortstärke'; -$wb['ssh_authentication_txt'] = 'Allowed SSH authentication'; -$wb['ssh_authentication_password_key'] = 'Password & Key'; -$wb['ssh_authentication_password'] = 'Password'; -$wb['ssh_authentication_key'] = 'Key'; $wb['ssh_authentication_txt'] = 'Erlaubte SSH Authentifizierung'; $wb['ssh_authentication_password_key'] = 'Passwort & Schlüssel'; $wb['ssh_authentication_password'] = 'Passwort'; -- GitLab From 7df25000a373399d7b6cc4d0d0830cc57a906b46 Mon Sep 17 00:00:00 2001 From: Herman van Rink Date: Fri, 30 Oct 2020 20:47:50 +0100 Subject: [PATCH 083/300] Disable install_ispconfig_interface when no webserver is present --- install/update.php | 6 +++++- 1 file changed, 5 insertions(+), 1 deletion(-) diff --git a/install/update.php b/install/update.php index c15678486f..4043647d8e 100644 --- a/install/update.php +++ b/install/update.php @@ -361,9 +361,13 @@ if($conf['mysql']['master_slave_setup'] == 'y') { if($conf['apache']['installed'] == true){ if(!is_file($conf['apache']['vhost_conf_dir'].'/ispconfig.vhost')) $inst->install_ispconfig_interface = false; } -if($conf['nginx']['installed'] == true){ +elseif($conf['nginx']['installed'] == true){ if(!is_file($conf['nginx']['vhost_conf_dir'].'/ispconfig.vhost')) $inst->install_ispconfig_interface = false; } +else { + // If neither webserver is installed then this can't be the server that hosts the ispconfig interface. + $inst->install_ispconfig_interface = false; +} //** Shall the services be reconfigured during update $reconfigure_services_answer = $inst->simple_query('Reconfigure Services?', array('yes', 'no', 'selected'), 'yes','reconfigure_services'); -- GitLab From fa5ed54a59accce2167ecebcef7d34dcd777de9c Mon Sep 17 00:00:00 2001 From: Jon Reese Date: Fri, 30 Oct 2020 22:34:00 +0100 Subject: [PATCH 084/300] test for crontab instead of cron ref: ispconfig/ispconfig3#5885 --- 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 e3821b5c14..bcef5577f4 100644 --- a/install/lib/installer_base.lib.php +++ b/install/lib/installer_base.lib.php @@ -192,7 +192,7 @@ class installer_base { // 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(is_installed('crontab')) $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; } -- GitLab From cfd412ee1e1aa949205d8899533f94761eabb6c2 Mon Sep 17 00:00:00 2001 From: Jon Reese Date: Fri, 30 Oct 2020 22:38:34 +0100 Subject: [PATCH 085/300] detect crontab early with friendly fail ref: ispconfig/ispconfig3#5885 --- install/install.php | 10 ++++++---- 1 file changed, 6 insertions(+), 4 deletions(-) diff --git a/install/install.php b/install/install.php index 121e3a13cc..0df226ee10 100644 --- a/install/install.php +++ b/install/install.php @@ -172,6 +172,11 @@ if(is_dir('/usr/local/ispconfig')) { //** Detect the installed applications $inst->find_installed_apps(); +//* crontab required by ISPConfig +if(!$conf['cron']['installed']) { + die("crontab not found; please install a compatible cron daemon before ISPConfig\n\n"); +} + //** Select the language and set default timezone $conf['language'] = $inst->simple_query('Select language', array('en', 'de'), 'en','language'); $conf['timezone'] = get_system_timezone(); @@ -607,10 +612,7 @@ $inst->configure_dbserver(); //* Configure ISPConfig swriteln('Installing ISPConfig crontab'); -if($conf['cron']['installed']) { - swriteln('Installing ISPConfig crontab'); - $inst->install_crontab(); -} else swriteln('[ERROR] Cron not found'); +$inst->install_crontab(); swriteln('Detect IP addresses'); $inst->detect_ips(); -- GitLab From b0ea7a6730ea5cbd07e774ca2d71ba5d3d2d2967 Mon Sep 17 00:00:00 2001 From: Dominik Date: Mon, 2 Nov 2020 10:47:33 +0100 Subject: [PATCH 086/300] Fix bug with Array-String in postfix main.cf --- server/plugins-available/postfix_server_plugin.inc.php | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/server/plugins-available/postfix_server_plugin.inc.php b/server/plugins-available/postfix_server_plugin.inc.php index 23373a1de0..b3e453be55 100644 --- a/server/plugins-available/postfix_server_plugin.inc.php +++ b/server/plugins-available/postfix_server_plugin.inc.php @@ -193,7 +193,7 @@ class postfix_server_plugin { } } if ($i == count($new_options)) { - $new_options[] = array('reject_unknown_client_hostname'); + $new_options[] = 'reject_unknown_client_hostname'; } $app->system->exec_safe("postconf -e ?", 'smtpd_client_restrictions = '.implode(", ", $new_options)); @@ -231,7 +231,7 @@ class postfix_server_plugin { } } if ($i == count($new_options)) { - $new_options[] = array('reject_unknown_helo_hostname'); + $new_options[] = 'reject_unknown_helo_hostname'; } $app->system->exec_safe("postconf -e ?", 'smtpd_helo_restrictions = '.implode(", ", $new_options)); -- GitLab From 5dc80302b77bdfed8bed5a426f9c015a8dde2976 Mon Sep 17 00:00:00 2001 From: Michael Seevogel Date: Tue, 3 Nov 2020 13:06:59 +0100 Subject: [PATCH 087/300] use mod_brotli if available --- install/patches/upd_dev.php | 19 +++++++++++++++++++ server/conf/vhost.conf.master | 4 ++++ 2 files changed, 23 insertions(+) create mode 100644 install/patches/upd_dev.php diff --git a/install/patches/upd_dev.php b/install/patches/upd_dev.php new file mode 100644 index 0000000000..3e6dc6f864 --- /dev/null +++ b/install/patches/upd_dev.php @@ -0,0 +1,19 @@ + + diff --git a/server/conf/vhost.conf.master b/server/conf/vhost.conf.master index 023b726291..f70198935a 100644 --- a/server/conf/vhost.conf.master +++ b/server/conf/vhost.conf.master @@ -53,6 +53,10 @@ Protocols h2 http/1.1 + + + AddOutputFilterByType BROTLI_COMPRESS text/html text/plain text/xml text/css text/javascript application/x-javascript application/javascript application/json application/x-font-ttf application/vnd.ms-fontobject image/x-icon + -- GitLab From 90f2ba301c0698c9d185f828f894b7b7ee26b149 Mon Sep 17 00:00:00 2001 From: Michael Seevogel Date: Tue, 3 Nov 2020 13:08:57 +0100 Subject: [PATCH 088/300] clean up --- install/patches/upd_dev.php | 19 ------------------- 1 file changed, 19 deletions(-) delete mode 100644 install/patches/upd_dev.php diff --git a/install/patches/upd_dev.php b/install/patches/upd_dev.php deleted file mode 100644 index 3e6dc6f864..0000000000 --- a/install/patches/upd_dev.php +++ /dev/null @@ -1,19 +0,0 @@ - - -- GitLab From 5c5211ef67a7d8a3e383f72995f26f52679d20f3 Mon Sep 17 00:00:00 2001 From: Jesse Norell Date: Wed, 4 Nov 2020 11:32:20 -0700 Subject: [PATCH 089/300] rbl_list after permit_sasl_authenticated --- install/tpl/debian_postfix.conf.master | 2 +- install/tpl/fedora_postfix.conf.master | 2 +- install/tpl/gentoo_postfix.conf.master | 2 +- install/tpl/opensuse_postfix.conf.master | 2 +- 4 files changed, 4 insertions(+), 4 deletions(-) diff --git a/install/tpl/debian_postfix.conf.master b/install/tpl/debian_postfix.conf.master index b75232e6e4..dcd5f592d8 100644 --- a/install/tpl/debian_postfix.conf.master +++ b/install/tpl/debian_postfix.conf.master @@ -28,7 +28,7 @@ proxy_read_maps = $local_recipient_maps $mydestination $virtual_alias_maps $virt smtpd_helo_required = yes smtpd_helo_restrictions = reject_invalid_helo_hostname, permit_mynetworks, check_helo_access regexp:{config_dir}/helo_access, permit_sasl_authenticated, reject_non_fqdn_helo_hostname, check_helo_access regexp:{config_dir}/blacklist_helo, {reject_unknown_helo_hostname}, permit smtpd_sender_restrictions = {reject_aslm} check_sender_access regexp:{config_dir}/tag_as_originating.re, permit_mynetworks{reject_slm}, permit_sasl_authenticated, reject_non_fqdn_sender, check_sender_access regexp:{config_dir}/tag_as_foreign.re, check_sender_access proxy:mysql:{config_dir}/mysql-virtual_sender.cf -smtpd_client_restrictions = check_client_access proxy:mysql:{config_dir}/mysql-virtual_client.cf, permit_inet_interfaces, permit_mynetworks{rbl_list}, permit_sasl_authenticated, reject_unauth_pipelining {reject_unknown_client_hostname}, permit +smtpd_client_restrictions = check_client_access proxy:mysql:{config_dir}/mysql-virtual_client.cf, permit_inet_interfaces, permit_mynetworks, permit_sasl_authenticated{rbl_list}, reject_unauth_pipelining {reject_unknown_client_hostname}, permit smtpd_etrn_restrictions = permit_mynetworks, reject smtpd_data_restrictions = permit_mynetworks, reject_unauth_pipelining, reject_multi_recipient_bounce, permit smtpd_client_message_rate_limit = 100 diff --git a/install/tpl/fedora_postfix.conf.master b/install/tpl/fedora_postfix.conf.master index 70f07182ac..45bc0c117e 100644 --- a/install/tpl/fedora_postfix.conf.master +++ b/install/tpl/fedora_postfix.conf.master @@ -24,7 +24,7 @@ proxy_read_maps = $local_recipient_maps $mydestination $virtual_alias_maps $virt smtpd_helo_required = yes smtpd_helo_restrictions = reject_invalid_helo_hostname, permit_mynetworks, check_helo_access regexp:{config_dir}/helo_access, permit_sasl_authenticated, reject_non_fqdn_helo_hostname, check_helo_access regexp:{config_dir}/blacklist_helo, {reject_unknown_helo_hostname}, permit smtpd_sender_restrictions = {reject_aslm} check_sender_access regexp:{config_dir}/tag_as_originating.re, permit_mynetworks{reject_slm}, permit_sasl_authenticated, reject_non_fqdn_sender, check_sender_access regexp:{config_dir}/tag_as_foreign.re, check_sender_access proxy:mysql:{config_dir}/mysql-virtual_sender.cf -smtpd_client_restrictions = check_client_access proxy:mysql:{config_dir}/mysql-virtual_client.cf, permit_inet_interfaces, permit_mynetworks{rbl_list}, permit_sasl_authenticated, reject_unauth_pipelining {reject_unknown_client_hostname}, permit +smtpd_client_restrictions = check_client_access proxy:mysql:{config_dir}/mysql-virtual_client.cf, permit_inet_interfaces, permit_mynetworks, permit_sasl_authenticated{rbl_list}, reject_unauth_pipelining {reject_unknown_client_hostname}, permit smtpd_etrn_restrictions = permit_mynetworks, reject smtpd_data_restrictions = permit_mynetworks, reject_unauth_pipelining, reject_multi_recipient_bounce, permit smtpd_client_message_rate_limit = 100 diff --git a/install/tpl/gentoo_postfix.conf.master b/install/tpl/gentoo_postfix.conf.master index c7e1a06db2..b3ff8f6804 100644 --- a/install/tpl/gentoo_postfix.conf.master +++ b/install/tpl/gentoo_postfix.conf.master @@ -23,7 +23,7 @@ proxy_read_maps = $local_recipient_maps $mydestination $virtual_alias_maps $virt smtpd_helo_required = yes smtpd_helo_restrictions = reject_invalid_helo_hostname, permit_mynetworks, check_helo_access regexp:{config_dir}/helo_access, permit_sasl_authenticated, reject_non_fqdn_helo_hostname, check_helo_access regexp:{config_dir}/blacklist_helo, {reject_unknown_helo_hostname}, permit smtpd_sender_restrictions = {reject_aslm} check_sender_access regexp:{config_dir}/tag_as_originating.re, permit_mynetworks{reject_slm}, permit_sasl_authenticated, reject_non_fqdn_sender, check_sender_access regexp:{config_dir}/tag_as_foreign.re, check_sender_access proxy:mysql:{config_dir}/mysql-virtual_sender.cf -smtpd_client_restrictions = check_client_access proxy:mysql:{config_dir}/mysql-virtual_client.cf, permit_inet_interfaces, permit_mynetworks{rbl_list}, permit_sasl_authenticated, reject_unauth_pipelining {reject_unknown_client_hostname}, permit +smtpd_client_restrictions = check_client_access proxy:mysql:{config_dir}/mysql-virtual_client.cf, permit_inet_interfaces, permit_mynetworks, permit_sasl_authenticated{rbl_list}, reject_unauth_pipelining {reject_unknown_client_hostname}, permit smtpd_etrn_restrictions = permit_mynetworks, reject smtpd_data_restrictions = permit_mynetworks, reject_unauth_pipelining, reject_multi_recipient_bounce, permit smtpd_client_message_rate_limit = 100 diff --git a/install/tpl/opensuse_postfix.conf.master b/install/tpl/opensuse_postfix.conf.master index 44c643a2bf..7386fad16e 100644 --- a/install/tpl/opensuse_postfix.conf.master +++ b/install/tpl/opensuse_postfix.conf.master @@ -26,7 +26,7 @@ proxy_read_maps = $local_recipient_maps $mydestination $virtual_alias_maps $virt smtpd_helo_required = yes smtpd_helo_restrictions = reject_invalid_helo_hostname, permit_mynetworks, check_helo_access regexp:{config_dir}/helo_access, permit_sasl_authenticated, reject_non_fqdn_helo_hostname, check_helo_access regexp:{config_dir}/blacklist_helo, {reject_unknown_helo_hostname}, permit smtpd_sender_restrictions = {reject_aslm} check_sender_access regexp:{config_dir}/tag_as_originating.re, permit_mynetworks{reject_slm}, permit_sasl_authenticated, reject_non_fqdn_sender, check_sender_access regexp:{config_dir}/tag_as_foreign.re, check_sender_access proxy:mysql:{config_dir}/mysql-virtual_sender.cf -smtpd_client_restrictions = check_client_access proxy:mysql:{config_dir}/mysql-virtual_client.cf, permit_inet_interfaces, permit_mynetworks{rbl_list}, permit_sasl_authenticated, reject_unauth_pipelining {reject_unknown_client_hostname}, permit +smtpd_client_restrictions = check_client_access proxy:mysql:{config_dir}/mysql-virtual_client.cf, permit_inet_interfaces, permit_mynetworks, permit_sasl_authenticated{rbl_list}, reject_unauth_pipelining {reject_unknown_client_hostname}, permit smtpd_etrn_restrictions = permit_mynetworks, reject smtpd_data_restrictions = permit_mynetworks, reject_unauth_pipelining, reject_multi_recipient_bounce, permit smtpd_client_message_rate_limit = 100 -- GitLab From 977fccd816868779046bace9a0a0f4a7fe922472 Mon Sep 17 00:00:00 2001 From: Michael Seevogel Date: Fri, 6 Nov 2020 13:48:03 +0100 Subject: [PATCH 090/300] added atom to Brotli outputfilter list --- server/conf/vhost.conf.master | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/server/conf/vhost.conf.master b/server/conf/vhost.conf.master index f70198935a..5b5e1f059e 100644 --- a/server/conf/vhost.conf.master +++ b/server/conf/vhost.conf.master @@ -55,7 +55,7 @@ - AddOutputFilterByType BROTLI_COMPRESS text/html text/plain text/xml text/css text/javascript application/x-javascript application/javascript application/json application/x-font-ttf application/vnd.ms-fontobject image/x-icon + AddOutputFilterByType BROTLI_COMPRESS text/html text/plain text/xml text/css text/javascript application/x-javascript application/javascript application/xml application/xml+rss application/atom+xml application/json application/x-font-ttf application/vnd.ms-fontobject image/x-icon -- GitLab From d983e877196efe4a299bacdfc8574a07505a13c1 Mon Sep 17 00:00:00 2001 From: Jesse Norell Date: Mon, 9 Nov 2020 10:25:24 -0700 Subject: [PATCH 091/300] last_jailkit_update was not set for websites without a jailkit --- server/lib/classes/cron.d/600-jailkit_maintenance.inc.php | 1 + 1 file changed, 1 insertion(+) diff --git a/server/lib/classes/cron.d/600-jailkit_maintenance.inc.php b/server/lib/classes/cron.d/600-jailkit_maintenance.inc.php index 9916b72e57..771bf0e71b 100644 --- a/server/lib/classes/cron.d/600-jailkit_maintenance.inc.php +++ b/server/lib/classes/cron.d/600-jailkit_maintenance.inc.php @@ -74,6 +74,7 @@ class cronjob_jailkit_maintenance extends cronjob { foreach($records as $rec) { if (!is_dir($rec['document_root']) || !is_dir($rec['document_root'].'/etc/jailkit')) { + $app->db->query("UPDATE `web_domain` SET `last_jailkit_update` = NOW() WHERE `document_root` = ?", $rec['document_root']); continue; } -- GitLab From cec0ac150049ddb29bc5273cd3849c223e32088d Mon Sep 17 00:00:00 2001 From: Jesse Norell Date: Mon, 9 Nov 2020 10:49:39 -0700 Subject: [PATCH 092/300] fix regex in server config jailkit fields --- interface/web/admin/form/server_config.tform.php | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/interface/web/admin/form/server_config.tform.php b/interface/web/admin/form/server_config.tform.php index b25785c283..7d1e1526f5 100644 --- a/interface/web/admin/form/server_config.tform.php +++ b/interface/web/admin/form/server_config.tform.php @@ -1790,7 +1790,7 @@ $form["tabs"]['jailkit'] = array( 'validators' => array( 0 => array('type' => 'NOTEMPTY', 'errmsg' => 'jailkit_chroot_home_error_empty'), 1 => array ( 'type' => 'REGEX', - 'regex' => '/^\/[a-zA-Z0-9\.\-\_\/\[\]]{1,128}$/', + 'regex' => '/^\/[a-zA-Z0-9\.\-\_\/\[\]]{1,}$/', 'errmsg'=> 'jailkit_chroot_home_error_regex'), ), 'value' => '', @@ -1804,7 +1804,7 @@ $form["tabs"]['jailkit'] = array( 'validators' => array( 0 => array('type' => 'NOTEMPTY', 'errmsg' => 'jailkit_chroot_app_sections_error_empty'), 1 => array ( 'type' => 'REGEX', - 'regex' => '/^[a-zA-Z0-9\-\_\ ]{1,128}$/', + 'regex' => '/^[a-zA-Z0-9\.\-\_\ ]{1,}$/', 'errmsg'=> 'jailkit_chroot_app_sections_error_regex'), ), 'value' => '', -- GitLab From 320fa675acda8f4c7a07e3dac0446ced7b4fad2c Mon Sep 17 00:00:00 2001 From: Jesse Norell Date: Thu, 5 Nov 2020 16:11:43 -0700 Subject: [PATCH 093/300] fix quota notification mail --- server/lib/classes/monitor_tools.inc.php | 13 ++++++++++++- 1 file changed, 12 insertions(+), 1 deletion(-) diff --git a/server/lib/classes/monitor_tools.inc.php b/server/lib/classes/monitor_tools.inc.php index 31e36836d5..e473472207 100644 --- a/server/lib/classes/monitor_tools.inc.php +++ b/server/lib/classes/monitor_tools.inc.php @@ -829,6 +829,7 @@ class monitor_tools { //* get mail headers, subject and body $mailHeaders = ''; + $mailFrom = ''; $mailBody = ''; $mailSubject = ''; $inHeader = true; @@ -844,6 +845,16 @@ class monitor_tools { $mailSubject = trim($parts[1]); continue; } + if(strtolower($parts[0]) == 'From') { + $mailFrom = trim($parts[1]); + continue; + } + if(strtolower($parts[0]) == 'Cc') { + if (! in_array(trim($parts[1]), $recipients)) { + $recipients[] = trim($parts[1]); + } + continue; + } unset($parts); $mailHeaders .= trim($lines[$l]) . "\n"; } else { @@ -858,7 +869,7 @@ class monitor_tools { $mailBody = strtr($mailBody, $placeholders); for($r = 0; $r < count($recipients); $r++) { - $app->functions->mail($recipients[$r], $mailSubject, $mailBody, $mailHeaders); + $app->functions->mail($recipients[$r], $mailSubject, $mailBody, $mailFrom); } unset($mailSubject); -- GitLab From 9f8bb33db5e8406dfe3441995e175d20ffe91708 Mon Sep 17 00:00:00 2001 From: Jesse Norell Date: Mon, 9 Nov 2020 11:14:56 -0700 Subject: [PATCH 094/300] missing global $app declaration --- server/lib/classes/monitor_tools.inc.php | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/server/lib/classes/monitor_tools.inc.php b/server/lib/classes/monitor_tools.inc.php index e473472207..a44324528b 100644 --- a/server/lib/classes/monitor_tools.inc.php +++ b/server/lib/classes/monitor_tools.inc.php @@ -812,7 +812,7 @@ class monitor_tools { } public function send_notification_email($template, $placeholders, $recipients) { - global $conf; + global $app, $conf; if(!is_array($recipients) || count($recipients) < 1) return false; if(!is_array($placeholders)) $placeholders = array(); -- GitLab From 38ffacf68728df82d58b9ec3208791fcec18f362 Mon Sep 17 00:00:00 2001 From: Jesse Norell Date: Wed, 11 Nov 2020 10:32:50 -0700 Subject: [PATCH 095/300] notification emails replace placeolders in From --- server/lib/classes/monitor_tools.inc.php | 6 +----- 1 file changed, 1 insertion(+), 5 deletions(-) diff --git a/server/lib/classes/monitor_tools.inc.php b/server/lib/classes/monitor_tools.inc.php index a44324528b..dbe702d0dd 100644 --- a/server/lib/classes/monitor_tools.inc.php +++ b/server/lib/classes/monitor_tools.inc.php @@ -865,6 +865,7 @@ class monitor_tools { //* Replace placeholders $mailHeaders = strtr($mailHeaders, $placeholders); + $mailFrom = strtr($mailFrom, $placeholders); $mailSubject = strtr($mailSubject, $placeholders); $mailBody = strtr($mailBody, $placeholders); @@ -872,11 +873,6 @@ class monitor_tools { $app->functions->mail($recipients[$r], $mailSubject, $mailBody, $mailFrom); } - unset($mailSubject); - unset($mailHeaders); - unset($mailBody); - unset($lines); - return true; } -- GitLab From 7adc9b3fbf83843d7a24cc896b4266d6485dbdfa Mon Sep 17 00:00:00 2001 From: Jesse Norell Date: Wed, 11 Nov 2020 13:07:22 -0700 Subject: [PATCH 096/300] always set envelope sender address in ispcmail class --- server/lib/classes/ispcmail.inc.php | 3 +-- 1 file changed, 1 insertion(+), 2 deletions(-) diff --git a/server/lib/classes/ispcmail.inc.php b/server/lib/classes/ispcmail.inc.php index fbf5f84dca..2b3dc78cfc 100644 --- a/server/lib/classes/ispcmail.inc.php +++ b/server/lib/classes/ispcmail.inc.php @@ -824,8 +824,7 @@ class ispcmail { else $rec_string .= $recip; } $to = $this->_encodeHeader($rec_string, $this->mail_charset); - //$result = mail($to, $subject, $this->body, implode($this->_crlf, $headers)); - $result = mail($to, $enc_subject, $this->body, implode($this->_crlf, $headers)); + $result = mail($to, $enc_subject, $this->body, implode($this->_crlf, $headers), "-f $this->_mail_sender"); } // Reset the subject in case mail is resent -- GitLab From 747265f6943d796845af9eefa1748f73f92f15f9 Mon Sep 17 00:00:00 2001 From: Jesse Norell Date: Wed, 11 Nov 2020 14:01:52 -0700 Subject: [PATCH 097/300] admin_mail placeholder in mail user welcome email --- server/conf/mail/welcome_email_de.txt | 4 ++-- server/conf/mail/welcome_email_en.txt | 4 ++-- server/conf/mail/welcome_email_es.txt | 2 +- server/conf/mail/welcome_email_fr.txt | 2 +- server/conf/mail/welcome_email_hr.txt | 4 ++-- server/conf/mail/welcome_email_nl.txt | 2 +- server/plugins-available/mail_plugin.inc.php | 21 ++++++++++++++++++-- 7 files changed, 28 insertions(+), 11 deletions(-) diff --git a/server/conf/mail/welcome_email_de.txt b/server/conf/mail/welcome_email_de.txt index 2327209ace..d28e9ac243 100644 --- a/server/conf/mail/welcome_email_de.txt +++ b/server/conf/mail/welcome_email_de.txt @@ -1,4 +1,4 @@ -From: ISPConfig +From: {admin_name} <{admin_mail}> Subject: Ihr Mailaccount ist aktiv. -Ihr Mailaccount ist jetzt aktiv. Viel Vergnügen. \ No newline at end of file +Ihr Mailaccount ist jetzt aktiv. Viel Vergnügen. diff --git a/server/conf/mail/welcome_email_en.txt b/server/conf/mail/welcome_email_en.txt index 9689485606..485227c0f3 100644 --- a/server/conf/mail/welcome_email_en.txt +++ b/server/conf/mail/welcome_email_en.txt @@ -1,4 +1,4 @@ -From: ISPConfig +From: {admin_name} <{admin_mail}> Subject: Welcome to your new email account. -Welcome to your new email account. Your webmaster. \ No newline at end of file +Welcome to your new email account. Your webmaster. diff --git a/server/conf/mail/welcome_email_es.txt b/server/conf/mail/welcome_email_es.txt index ede0ea5120..9ead0568f3 100644 --- a/server/conf/mail/welcome_email_es.txt +++ b/server/conf/mail/welcome_email_es.txt @@ -1,4 +1,4 @@ -From: ISPConfig +From: {admin_name} <{admin_mail}> Subject: Bienvenido a su nueva cuenta de correo Bienvenido a su nueva cuenta de correo. Su administrador. diff --git a/server/conf/mail/welcome_email_fr.txt b/server/conf/mail/welcome_email_fr.txt index beb2b30080..d175006869 100644 --- a/server/conf/mail/welcome_email_fr.txt +++ b/server/conf/mail/welcome_email_fr.txt @@ -1,4 +1,4 @@ -From: ISPConfig +From: {admin_name} <{admin_mail}> Subject: Bienvenue dans votre nouvelle boîte aux lettres Votre nouveau compte email est désormais activé. Votre webmaster. diff --git a/server/conf/mail/welcome_email_hr.txt b/server/conf/mail/welcome_email_hr.txt index 3c45f5ac0b..f288c480f0 100644 --- a/server/conf/mail/welcome_email_hr.txt +++ b/server/conf/mail/welcome_email_hr.txt @@ -1,4 +1,4 @@ -From: ISPConfig +From: {admin_name} <{admin_mail}> Subject: Dobrodošli u vaš novi email račun. -Dobrodošli u vaš novi email račun. Vaš webmajstor. \ No newline at end of file +Dobrodošli u vaš novi email račun. Vaš webmajstor. diff --git a/server/conf/mail/welcome_email_nl.txt b/server/conf/mail/welcome_email_nl.txt index cd4baf4815..2fce985968 100644 --- a/server/conf/mail/welcome_email_nl.txt +++ b/server/conf/mail/welcome_email_nl.txt @@ -1,4 +1,4 @@ -From: ISPConfig +From: {admin_name} <{admin_mail}> Subject: Welkom in uw nieuwe account. Welkom in uw nieuwe email account. Uw webmaster. diff --git a/server/plugins-available/mail_plugin.inc.php b/server/plugins-available/mail_plugin.inc.php index 4d5ac826d3..fb00166021 100644 --- a/server/plugins-available/mail_plugin.inc.php +++ b/server/plugins-available/mail_plugin.inc.php @@ -82,6 +82,7 @@ class mail_plugin { //* get the config $app->uses('getconf,system'); $mail_config = $app->getconf->get_server_config($conf['server_id'], 'mail'); + $global_mail_config = $app->getconf->get_global_config('mail'); // convert to lower case - it could cause problems if some directory above has upper case name // $data['new']['maildir'] = strtolower($data['new']['maildir']); @@ -218,20 +219,30 @@ class mail_plugin { $lines = file($conf['rootpath'].'/conf/mail/welcome_email_en.txt'); } + $placeholders = array( + '{domain}' => "$domain", + '{email}' => $data["new"]["email"], + '{admin_mail}' => ($global_mail_config['admin_mail'] != '' ? $global_mail_config['admin_mail'] : 'root'), + '{admin_name}' => ($global_mail_config['admin_name'] != '' ? $global_mail_config['admin_name'] : ''), + ); + //* Get from address $parts = explode(':', trim($lines[0])); unset($parts[0]); $welcome_mail_from = implode(':', $parts); unset($lines[0]); + $welcome_mail_from = strtr($welcome_mail_from, $placeholders); //* Get subject $parts = explode(':', trim($lines[1])); unset($parts[0]); $welcome_mail_subject = implode(':', $parts); unset($lines[1]); + $welcome_mail_subject = strtr($welcome_mail_subject, $placeholders); //* Get message $welcome_mail_message = trim(implode($lines)); + $welcome_mail_message = strtr($welcome_mail_message, $placeholders); unset($tmp); $mailHeaders = "MIME-Version: 1.0" . "\n"; @@ -247,8 +258,14 @@ class mail_plugin { $mailTarget = $data["new"]["email"]; $mailSubject = "=?utf-8?B?".base64_encode($welcome_mail_subject)."?="; - //* Send the welcome email only on the "master" mail server to avoid duplicate emails - if($conf['mirror_server_id'] == 0) mail($mailTarget, $mailSubject, $welcome_mail_message, $mailHeaders); + $additionalParameters = ''; + if (preg_match('/\b([A-Z0-9._%+-]+@[A-Z0-9.-]+\.[A-Z]{2,63})\b/i', $welcome_mail_from, $matches)) { + $additionalParameters = '-f '.$matches[1]; + } + + // Send the welcome email only on a "master" mail server to avoid duplicate emails + // (bypass the normal ispcmail class when creating mail accounts) + if($conf['mirror_server_id'] == 0) mail($mailTarget, $mailSubject, $welcome_mail_message, $mailHeaders, $additionalParameters); } -- GitLab From d376b4e5cef449a8342481ca79fe9ba373bac71c Mon Sep 17 00:00:00 2001 From: Florian Schaal Date: Sat, 14 Nov 2020 07:41:48 +0100 Subject: [PATCH 098/300] AA records wrong with issuewild and TYPE257 (Bind < 9.9.6) (Fixes #5916) --- server/plugins-available/bind_plugin.inc.php | 17 ++++++++++++++++- 1 file changed, 16 insertions(+), 1 deletion(-) diff --git a/server/plugins-available/bind_plugin.inc.php b/server/plugins-available/bind_plugin.inc.php index b152a8758d..a32a1931cd 100644 --- a/server/plugins-available/bind_plugin.inc.php +++ b/server/plugins-available/bind_plugin.inc.php @@ -286,6 +286,7 @@ class bind_plugin { $records = $app->db->queryAllRecords("SELECT * FROM dns_rr WHERE zone = ? AND active = 'Y'", $zone['id']); if(is_array($records) && !empty($records)){ + $caa_add_rec = -1; for($i=0;$i 0) { + // remove previously added issue ";" + array_pop($records); + } + $caa_add_rec = -2; + } $length = strlen($hex[1])/2; $data_new = "\# $length $hex[1]"; $records[$i]['data'] = $data_new; -- GitLab From efca279741e56ab9ccb31d445a8491974f70ff06 Mon Sep 17 00:00:00 2001 From: Marius Burkard Date: Mon, 16 Nov 2020 15:07:50 +0100 Subject: [PATCH 099/300] - added method onAfterDatalogSave - move update of spamfilter users to after datalog update --- interface/lib/classes/tform_actions.inc.php | 11 +++++---- interface/web/mail/spamfilter_policy_edit.php | 24 +++++++++++-------- 2 files changed, 20 insertions(+), 15 deletions(-) diff --git a/interface/lib/classes/tform_actions.inc.php b/interface/lib/classes/tform_actions.inc.php index d83ec0d3d7..0053be2663 100644 --- a/interface/lib/classes/tform_actions.inc.php +++ b/interface/lib/classes/tform_actions.inc.php @@ -141,6 +141,8 @@ class tform_actions { $app->tform->datalogSave('UPDATE', $this->id, $this->oldDataRecord, $new_data_record); unset($new_data_record); unset($old_data_record); + + $this->onAfterDatalogSave(); } if($_REQUEST["next_tab"] == '') { @@ -222,6 +224,7 @@ class tform_actions { $new_data_record = $app->tform->getDataRecord($this->id); $app->tform->datalogSave('INSERT', $this->id, array(), $new_data_record); unset($new_data_record); + $this->onAfterDatalogSave(true); } @@ -264,21 +267,19 @@ class tform_actions { } function onBeforeUpdate() { - global $app, $conf; } function onBeforeInsert() { - global $app, $conf; } function onAfterUpdate() { - global $app, $conf; } function onAfterInsert() { - global $app, $conf; } + function onAfterDatalogSave($insert = false) { + } /** * Function called on data insert or update error @@ -297,7 +298,7 @@ class tform_actions { */ function onDelete() { global $app, $conf, $list_def_file, $tform_def_file; - + // Check CSRF Token $app->auth->csrf_token_check('GET'); diff --git a/interface/web/mail/spamfilter_policy_edit.php b/interface/web/mail/spamfilter_policy_edit.php index 572a184020..8b15f2fac6 100644 --- a/interface/web/mail/spamfilter_policy_edit.php +++ b/interface/web/mail/spamfilter_policy_edit.php @@ -49,7 +49,9 @@ $app->uses('tpl,tform,tform_actions'); $app->load('tform_actions'); class page_action extends tform_actions { - + + private $record_has_changed = false; + function onShowNew() { global $app; @@ -87,30 +89,32 @@ class page_action extends tform_actions { parent::onSubmit(); } - + function onAfterUpdate() { - global $app; - - $record_has_changed = false; + $this->record_has_changed = false; foreach($this->dataRecord as $key => $val) { if(isset($this->oldDataRecord[$key]) && @$this->oldDataRecord[$key] != $val) { // Record has changed - $record_has_changed = true; + $this->record_has_changed = true; } } + } - if($record_has_changed){ + function onAfterDatalogSave($insert = false) { + global $app; + + if(!$insert && $this->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); - + // check if this is an email domain if(substr($spamfilter_user['email'],0,1) == '@') { $domain = substr($spamfilter_user['email'],1); $forwardings = $app->db->queryAllRecords("SELECT * FROM mail_forwarding WHERE source LIKE ? OR destination LIKE ?", "%@" . $domain, "%@" . $domain); - + // Force-update aliases and forwards if(is_array($forwardings)) { foreach($forwardings as $rec) { @@ -118,7 +122,7 @@ class page_action extends tform_actions { } } } - + } } } -- GitLab From 29c8d7e90ec2d49c77efb298a9d8e2964bb34d1c Mon Sep 17 00:00:00 2001 From: Marius Burkard Date: Tue, 17 Nov 2020 12:26:27 +0100 Subject: [PATCH 100/300] - fixed potential shell user vulnerability --- interface/lib/classes/functions.inc.php | 78 +++++++++++++------ interface/lib/classes/tform_base.inc.php | 5 +- interface/web/sites/form/shell_user.tform.php | 6 ++ server/lib/classes/functions.inc.php | 32 +++++++- server/lib/classes/system.inc.php | 30 +++++++ .../shelluser_base_plugin.inc.php | 16 ++++ 6 files changed, 139 insertions(+), 28 deletions(-) diff --git a/interface/lib/classes/functions.inc.php b/interface/lib/classes/functions.inc.php index 03e331f0f1..4d4c011fb5 100644 --- a/interface/lib/classes/functions.inc.php +++ b/interface/lib/classes/functions.inc.php @@ -61,7 +61,7 @@ class functions { if(is_string($to) && strpos($to, ',') !== false) { $to = preg_split('/\s*,\s*/', $to); } - + $app->ispcmail->send($to); $app->ispcmail->finish(); @@ -234,7 +234,7 @@ class functions { if(preg_match($regex, $result['ip'])) $ips[] = $result['ip']; } } - + $results = $app->db->queryAllRecords("SELECT remote_ips FROM web_database WHERE remote_ips != ''"); if(!empty($results) && is_array($results)){ foreach($results as $result){ @@ -290,6 +290,34 @@ class functions { return round(pow(1024, $base-floor($base)), $precision).$suffixes[floor($base)]; } + + /** + * Normalize a path and strip duplicate slashes from it + * + * This will also remove all /../ from the path, reducing the preceding path elements + * + * @param string $path + * @return string + */ + public function normalize_path($path) { + $path = preg_replace('~[/]{2,}~', '/', $path); + $parts = explode('/', $path); + $return_parts = array(); + + foreach($parts as $current_part) { + if($current_part === '..') { + if(!empty($return_parts) && end($return_parts) !== '') { + array_pop($return_parts); + } + } else { + $return_parts[] = $current_part; + } + } + + return implode('/', $return_parts); + } + + /** IDN converter wrapper. * all converter classes should be placed in ISPC_CLASS_PATH.'/idn/' */ @@ -370,42 +398,42 @@ class functions { public function is_allowed_user($username, $restrict_names = false) { global $app; - + $name_blacklist = array('root','ispconfig','vmail','getmail'); if(in_array($username,$name_blacklist)) return false; - + if(preg_match('/^[a-zA-Z0-9\.\-_]{1,32}$/', $username) == false) return false; - + if($restrict_names == true && preg_match('/^web\d+$/', $username) == false) return false; - + return true; } - + public function is_allowed_group($groupname, $restrict_names = false) { global $app; - + $name_blacklist = array('root','ispconfig','vmail','getmail'); if(in_array($groupname,$name_blacklist)) return false; - + if(preg_match('/^[a-zA-Z0-9\.\-_]{1,32}$/', $groupname) == false) return false; - + if($restrict_names == true && preg_match('/^client\d+$/', $groupname) == false) return false; - + return true; } - + public function getimagesizefromstring($string){ if (!function_exists('getimagesizefromstring')) { $uri = 'data://application/octet-stream;base64,' . base64_encode($string); return getimagesize($uri); } else { return getimagesizefromstring($string); - } + } } - + public function password($minLength = 10, $special = false){ global $app; - + $iteration = 0; $password = ""; $maxLength = $minLength + 5; @@ -430,7 +458,7 @@ class functions { public function getRandomInt($min, $max){ return floor((mt_rand() / mt_getrandmax()) * ($max - $min + 1)) + $min; } - + public function generate_customer_no(){ global $app; // generate customer no. @@ -438,13 +466,13 @@ class functions { while($app->db->queryOneRecord("SELECT client_id FROM client WHERE customer_no = ?", $customer_no)) { $customer_no = mt_rand(100000, 999999); } - + return $customer_no; } - + public function generate_ssh_key($client_id, $username = ''){ global $app; - + // generate the SSH key pair for the client $id_rsa_file = '/tmp/'.uniqid('',true); $id_rsa_pub_file = $id_rsa_file.'.pub'; @@ -458,7 +486,7 @@ class functions { $app->log("Failed to create SSH keypair for ".$username, LOGLEVEL_WARN); } } - + public function htmlentities($value) { global $conf; @@ -474,10 +502,10 @@ class functions { } else { $out = htmlentities($value, ENT_QUOTES, $conf["html_content_encoding"]); } - + return $out; } - + // Function to check paths before we use it as include. Use with absolute paths only. public function check_include_path($path) { if(strpos($path,'//') !== false) die('Include path seems to be an URL: '.$this->htmlentities($path)); @@ -488,7 +516,7 @@ class functions { if(substr($path,0,strlen(ISPC_ROOT_PATH)) != ISPC_ROOT_PATH) die('Path '.$this->htmlentities($path).' is outside of ISPConfig installation directory.'); return $path; } - + // Function to check language strings public function check_language($language) { global $app; @@ -496,10 +524,10 @@ class functions { return $language; } else { $app->log('Wrong language string: '.$this->htmlentities($language),1); - return 'en'; + return 'en'; } } - + } ?> diff --git a/interface/lib/classes/tform_base.inc.php b/interface/lib/classes/tform_base.inc.php index 91a855872c..72ddb4b6ae 100644 --- a/interface/lib/classes/tform_base.inc.php +++ b/interface/lib/classes/tform_base.inc.php @@ -399,7 +399,7 @@ class tform_base { $tmp_key = $limit_parts[2]; $allowed = $allowed = explode(',',$tmp_conf[$tmp_key]); } - + if($formtype == 'CHECKBOX') { if(strstr($limit,'force_')) { // Force the checkbox field to be ticked and enabled @@ -958,6 +958,9 @@ class tform_base { case 'STRIPNL': $returnval = str_replace(array("\n","\r"),'', $returnval); break; + case 'NORMALIZEPATH': + $returnval = $app->functions->normalize_path($returnval); + break; default: $this->errorMessage .= "Unknown Filter: ".$filter['type']; break; diff --git a/interface/web/sites/form/shell_user.tform.php b/interface/web/sites/form/shell_user.tform.php index f4e83a1b57..523a03687a 100644 --- a/interface/web/sites/form/shell_user.tform.php +++ b/interface/web/sites/form/shell_user.tform.php @@ -232,6 +232,12 @@ if($_SESSION["s"]["user"]["typ"] == 'admin') { 'dir' => array ( 'datatype' => 'VARCHAR', 'formtype' => 'TEXT', + 'filters' => array( + 0 => array ( + 'event' => 'SAVE', + 'type' => 'NORMALIZEPATH' + ) + ), 'validators' => array ( 0 => array ( 'type' => 'NOTEMPTY', 'errmsg'=> 'directory_error_empty'), 1 => array ( 'type' => 'REGEX', diff --git a/server/lib/classes/functions.inc.php b/server/lib/classes/functions.inc.php index 5da1f3d713..5296c3012b 100644 --- a/server/lib/classes/functions.inc.php +++ b/server/lib/classes/functions.inc.php @@ -356,6 +356,34 @@ class functions { } } + + /** + * Normalize a path and strip duplicate slashes from it + * + * This will also remove all /../ from the path, reducing the preceding path elements + * + * @param string $path + * @return string + */ + public function normalize_path($path) { + $path = preg_replace('~[/]{2,}~', '/', $path); + $parts = explode('/', $path); + $return_parts = array(); + + foreach($parts as $current_part) { + if($current_part === '..') { + if(!empty($return_parts) && end($return_parts) !== '') { + array_pop($return_parts); + } + } else { + $return_parts[] = $current_part; + } + } + + return implode('/', $return_parts); + } + + /** IDN converter wrapper. * all converter classes should be placed in ISPC_CLASS_PATH.'/idn/' */ @@ -435,10 +463,10 @@ class functions { } return implode("\n", $domains); } - + public function generate_ssh_key($client_id, $username = ''){ global $app; - + // generate the SSH key pair for the client $id_rsa_file = '/tmp/'.uniqid('',true); $id_rsa_pub_file = $id_rsa_file.'.pub'; diff --git a/server/lib/classes/system.inc.php b/server/lib/classes/system.inc.php index 131d10f244..8a8a2f4fb0 100644 --- a/server/lib/classes/system.inc.php +++ b/server/lib/classes/system.inc.php @@ -2300,6 +2300,36 @@ class system{ return true; } + public function is_allowed_path($path) { + global $app; + + $path = $app->functions->normalize_path($path); + if(file_exists($path)) { + $path = realpath($path); + } + + $blacklisted_paths_regex = array( + '@^/$@', + '@^/proc(/.*)?$@', + '@^/sys(/.*)?$@', + '@^/etc(/.*)$@', + '@^/dev(/.*)$@', + '@^/tmp(/.*)$@', + '@^/run(/.*)$@', + '@^/boot(/.*)$@', + '@^/root(/.*)$@', + '@^/var(/?|/backups?(/.*)?)?$@', + ); + + foreach($blacklisted_paths_regex as $regex) { + if(preg_match($regex, $path)) { + return false; + } + } + + return true; + } + public function last_exec_out() { return $this->_last_exec_out; } diff --git a/server/plugins-available/shelluser_base_plugin.inc.php b/server/plugins-available/shelluser_base_plugin.inc.php index 71653cf5c2..39ab2298ad 100755 --- a/server/plugins-available/shelluser_base_plugin.inc.php +++ b/server/plugins-available/shelluser_base_plugin.inc.php @@ -96,6 +96,14 @@ class shelluser_base_plugin { return false; } + if(is_file($data['new']['dir']) || is_link($data['new']['dir'])) { + $app->log('Shell user dir must not be existing file or symlink.', LOVLEVEL_WARN); + return false; + } elseif(!$app->system->is_allowed_path($data['new']['dir'])) { + $app->log('Shell user dir is not an allowed path: ' . $data['new']['dir'], LOVLEVEL_WARN); + return false; + } + if($data['new']['active'] != 'y' || $data['new']['chroot'] == "jailkit") $data['new']['shell'] = '/bin/false'; if($app->system->is_user($data['new']['puser'])) { @@ -207,6 +215,14 @@ class shelluser_base_plugin { return false; } + if(is_file($data['new']['dir']) || is_link($data['new']['dir'])) { + $app->log('Shell user dir must not be existing file or symlink.', LOVLEVEL_WARN); + return false; + } elseif(!$app->system->is_allowed_path($data['new']['dir'])) { + $app->log('Shell user dir is not an allowed path: ' . $data['new']['dir'], LOVLEVEL_WARN); + return false; + } + if($data['new']['active'] != 'y') $data['new']['shell'] = '/bin/false'; if($app->system->is_user($data['new']['puser'])) { -- GitLab From f45e5fae5ac5672b7d51ea6bb6c096093458928b Mon Sep 17 00:00:00 2001 From: Marius Burkard Date: Tue, 17 Nov 2020 13:51:52 +0100 Subject: [PATCH 101/300] - fixed problems from implementation of vulnerability fix --- server/lib/classes/system.inc.php | 18 ++++++++---- .../shelluser_base_plugin.inc.php | 16 ++++++++--- .../shelluser_jailkit_plugin.inc.php | 28 +++++++++++++++++++ 3 files changed, 52 insertions(+), 10 deletions(-) diff --git a/server/lib/classes/system.inc.php b/server/lib/classes/system.inc.php index 8a8a2f4fb0..a26707b0ae 100644 --- a/server/lib/classes/system.inc.php +++ b/server/lib/classes/system.inc.php @@ -2312,12 +2312,12 @@ class system{ '@^/$@', '@^/proc(/.*)?$@', '@^/sys(/.*)?$@', - '@^/etc(/.*)$@', - '@^/dev(/.*)$@', - '@^/tmp(/.*)$@', - '@^/run(/.*)$@', - '@^/boot(/.*)$@', - '@^/root(/.*)$@', + '@^/etc(/.*)?$@', + '@^/dev(/.*)?$@', + '@^/tmp(/.*)?$@', + '@^/run(/.*)?$@', + '@^/boot(/.*)?$@', + '@^/root(/.*)?$@', '@^/var(/?|/backups?(/.*)?)?$@', ); @@ -2380,6 +2380,8 @@ class system{ } public function create_jailkit_user($username, $home_dir, $user_home_dir, $shell = '/bin/bash', $p_user = null, $p_user_home_dir = null) { + global $app; + // Disallow operating on root directory if(realpath($home_dir) == '/') { $app->log("create_jailkit_user: invalid home_dir: $home_dir", LOGLEVEL_WARN); @@ -2409,6 +2411,8 @@ class system{ } public function create_jailkit_chroot($home_dir, $app_sections = array(), $options = array()) { + global $app; + // Disallow operating on root directory if(realpath($home_dir) == '/') { $app->log("create_jailkit_chroot: invalid home_dir: $home_dir", LOGLEVEL_WARN); @@ -2480,6 +2484,8 @@ class system{ } public function create_jailkit_programs($home_dir, $programs = array(), $options = array()) { + global $app; + // Disallow operating on root directory if(realpath($home_dir) == '/') { $app->log("create_jailkit_programs: invalid home_dir: $home_dir", LOGLEVEL_WARN); diff --git a/server/plugins-available/shelluser_base_plugin.inc.php b/server/plugins-available/shelluser_base_plugin.inc.php index 39ab2298ad..f9a316d90e 100755 --- a/server/plugins-available/shelluser_base_plugin.inc.php +++ b/server/plugins-available/shelluser_base_plugin.inc.php @@ -97,10 +97,10 @@ class shelluser_base_plugin { } if(is_file($data['new']['dir']) || is_link($data['new']['dir'])) { - $app->log('Shell user dir must not be existing file or symlink.', LOVLEVEL_WARN); + $app->log('Shell user dir must not be existing file or symlink.', LOGLEVEL_WARN); return false; } elseif(!$app->system->is_allowed_path($data['new']['dir'])) { - $app->log('Shell user dir is not an allowed path: ' . $data['new']['dir'], LOVLEVEL_WARN); + $app->log('Shell user dir is not an allowed path: ' . $data['new']['dir'], LOGLEVEL_WARN); return false; } @@ -216,10 +216,10 @@ class shelluser_base_plugin { } if(is_file($data['new']['dir']) || is_link($data['new']['dir'])) { - $app->log('Shell user dir must not be existing file or symlink.', LOVLEVEL_WARN); + $app->log('Shell user dir must not be existing file or symlink.', LOGLEVEL_WARN); return false; } elseif(!$app->system->is_allowed_path($data['new']['dir'])) { - $app->log('Shell user dir is not an allowed path: ' . $data['new']['dir'], LOVLEVEL_WARN); + $app->log('Shell user dir is not an allowed path: ' . $data['new']['dir'], LOGLEVEL_WARN); return false; } @@ -320,6 +320,14 @@ class shelluser_base_plugin { return false; } + if(is_file($data['old']['dir']) || is_link($data['old']['dir'])) { + $app->log('Shell user dir must not be existing file or symlink.', LOGLEVEL_WARN); + return false; + } elseif(!$app->system->is_allowed_path($data['old']['dir'])) { + $app->log('Shell user dir is not an allowed path: ' . $data['old']['dir'], LOGLEVEL_WARN); + return false; + } + if($app->system->is_user($data['old']['username'])) { // Get the UID of the user $userid = intval($app->system->getuid($data['old']['username'])); diff --git a/server/plugins-available/shelluser_jailkit_plugin.inc.php b/server/plugins-available/shelluser_jailkit_plugin.inc.php index 3f8d94d2a7..dbc3d8041b 100755 --- a/server/plugins-available/shelluser_jailkit_plugin.inc.php +++ b/server/plugins-available/shelluser_jailkit_plugin.inc.php @@ -89,6 +89,15 @@ class shelluser_jailkit_plugin { return false; } + if(is_file($data['new']['dir']) || is_link($data['new']['dir'])) { + $app->log('Shell user dir must not be existing file or symlink.', LOGLEVEL_WARN); + return false; + } elseif(!$app->system->is_allowed_path($data['new']['dir'])) { + $app->log('Shell user dir is not an allowed path: ' . $data['new']['dir'], LOGLEVEL_WARN); + return false; + } + + if($app->system->is_user($data['new']['puser'])) { // Get the UID of the parent user $uid = intval($app->system->getuid($data['new']['puser'])); @@ -170,6 +179,14 @@ class shelluser_jailkit_plugin { return false; } + if(is_file($data['new']['dir']) || is_link($data['new']['dir'])) { + $app->log('Shell user dir must not be existing file or symlink.', LOGLEVEL_WARN); + return false; + } elseif(!$app->system->is_allowed_path($data['new']['dir'])) { + $app->log('Shell user dir is not an allowed path: ' . $data['new']['dir'], LOGLEVEL_WARN); + return false; + } + if($app->system->is_user($data['new']['puser'])) { $web = $app->db->queryOneRecord("SELECT * FROM web_domain WHERE domain_id = ?", $data['new']['parent_domain_id']); @@ -241,6 +258,14 @@ class shelluser_jailkit_plugin { return false; } + if(is_file($data['old']['dir']) || is_link($data['old']['dir'])) { + $app->log('Shell user dir must not be existing file or symlink.', LOGLEVEL_WARN); + return false; + } elseif(!$app->system->is_allowed_path($data['old']['dir'])) { + $app->log('Shell user dir is not an allowed path: ' . $data['old']['dir'], LOGLEVEL_WARN); + return false; + } + if ($data['old']['chroot'] == "jailkit") { $web = $app->db->queryOneRecord("SELECT * FROM web_domain WHERE domain_id = ?", $data['old']['parent_domain_id']); @@ -518,6 +543,9 @@ class shelluser_jailkit_plugin { } //* Get the keys $existing_keys = file($sshkeys, FILE_IGNORE_NEW_LINES); + if(!$existing_keys) { + $existing_keys = array(); + } $new_keys = explode("\n", $sshrsa); $old_keys = explode("\n", $this->data['old']['ssh_rsa']); -- GitLab From 764f10b4f308b8572348e779423f281ea196aa86 Mon Sep 17 00:00:00 2001 From: Marius Burkard Date: Tue, 17 Nov 2020 14:36:21 +0100 Subject: [PATCH 102/300] - proposed fix for missing database backups --- server/lib/classes/backup.inc.php | 21 +++++++++++++++------ 1 file changed, 15 insertions(+), 6 deletions(-) diff --git a/server/lib/classes/backup.inc.php b/server/lib/classes/backup.inc.php index 23d6171f4f..e7333356b4 100644 --- a/server/lib/classes/backup.inc.php +++ b/server/lib/classes/backup.inc.php @@ -1145,7 +1145,7 @@ class backup if (empty($backup_job)) $backup_job = "auto"; - $records = $app->db->queryAllRecords("SELECT * FROM web_database WHERE server_id = ? AND parent_domain_id = ?", $server_id, $domain_id); + $records = $app->dbmaster->queryAllRecords("SELECT * FROM web_database WHERE server_id = ? AND parent_domain_id = ?", $server_id, $domain_id); if (empty($records)){ $app->log('Skipping database backup for domain ' . $web_domain['domain_id'] . ', because no related databases found.', LOGLEVEL_DEBUG); return true; @@ -1396,17 +1396,17 @@ class backup */ public static function run_backup($domain_id, $type, $backup_job, $mount = true) { - global $app; + global $app, $conf; $domain_id = intval($domain_id); $sql = "SELECT * FROM web_domain WHERE (type = 'vhost' OR type = 'vhostsubdomain' OR type = 'vhostalias') AND domain_id = ?"; - $rec = $app->db->queryOneRecord($sql, $domain_id); + $rec = $app->dbmaster->queryOneRecord($sql, $domain_id); if (empty($rec)) { $app->log('Failed to make backup of type ' . $type . ', because no information present about requested domain id ' . $domain_id, LOGLEVEL_ERROR); return false; } - $server_id = intval($rec['server_id']); + $server_id = intval($conf['server_id']); if ($mount && !self::mount_backup_dir($server_id)) { $app->log('Failed to make backup of type ' . $type . ' for domain id ' . $domain_id . ', because failed to mount backup directory', LOGLEVEL_ERROR); @@ -1419,6 +1419,7 @@ class backup $ok = self::make_web_backup($rec, $backup_job); break; case 'mysql': + $rec['server_id'] = $server_id; $ok = self::make_database_backup($rec, $backup_job); break; default: @@ -1443,7 +1444,7 @@ class backup $server_id = intval($server_id); $sql = "SELECT * FROM web_domain WHERE server_id = ? AND (type = 'vhost' OR type = 'vhostsubdomain' OR type = 'vhostalias') AND active = 'y' AND backup_interval != 'none' AND backup_interval != ''"; - $domains = $app->db->queryAllRecords($sql, $server_id); + $domains = $app->dbmaster->queryAllRecords($sql, $server_id); if (!self::mount_backup_dir($server_id)) { $app->log('Failed to run regular backups routine because failed to mount backup directory', LOGLEVEL_ERROR); @@ -1456,7 +1457,15 @@ class backup foreach ($domains as $domain) { if (($domain['backup_interval'] == 'daily' or ($domain['backup_interval'] == 'weekly' && $date_of_week == 0) or ($domain['backup_interval'] == 'monthly' && $date_of_month == '01'))) { self::run_backup($domain['domain_id'], 'web', $backup_job, false); - self::run_backup($domain['domain_id'], 'mysql', $backup_job, false); + } + } + + $sql = "SELECT DISTINCT d.*, db.server_id as `server_id` FROM web_database as db INNER JOIN web_domain as d ON (d.domain_id = db.parent_domain_id) WHERE db.server_id = ? AND db.active = 'y' AND d.backup_interval != 'none' AND d.backup_interval != ''"; + $databases = $app->dbmaster->queryAllRecords($sql, $server_id); + + foreach ($databases as $database) { + if (($database['backup_interval'] == 'daily' or ($database['backup_interval'] == 'weekly' && $date_of_week == 0) or ($database['backup_interval'] == 'monthly' && $date_of_month == '01'))) { + self::run_backup($database['domain_id'], 'mysql', $backup_job, false); } } self::unmount_backup_dir($server_id); -- GitLab From 2513d9b66f6b1ad0e7101188fe18087183826a1b Mon Sep 17 00:00:00 2001 From: Marius Burkard Date: Tue, 17 Nov 2020 14:37:31 +0100 Subject: [PATCH 103/300] Revert "- proposed fix for missing database backups" This reverts commit 764f10b4f308b8572348e779423f281ea196aa86 --- server/lib/classes/backup.inc.php | 21 ++++++--------------- 1 file changed, 6 insertions(+), 15 deletions(-) diff --git a/server/lib/classes/backup.inc.php b/server/lib/classes/backup.inc.php index e7333356b4..23d6171f4f 100644 --- a/server/lib/classes/backup.inc.php +++ b/server/lib/classes/backup.inc.php @@ -1145,7 +1145,7 @@ class backup if (empty($backup_job)) $backup_job = "auto"; - $records = $app->dbmaster->queryAllRecords("SELECT * FROM web_database WHERE server_id = ? AND parent_domain_id = ?", $server_id, $domain_id); + $records = $app->db->queryAllRecords("SELECT * FROM web_database WHERE server_id = ? AND parent_domain_id = ?", $server_id, $domain_id); if (empty($records)){ $app->log('Skipping database backup for domain ' . $web_domain['domain_id'] . ', because no related databases found.', LOGLEVEL_DEBUG); return true; @@ -1396,17 +1396,17 @@ class backup */ public static function run_backup($domain_id, $type, $backup_job, $mount = true) { - global $app, $conf; + global $app; $domain_id = intval($domain_id); $sql = "SELECT * FROM web_domain WHERE (type = 'vhost' OR type = 'vhostsubdomain' OR type = 'vhostalias') AND domain_id = ?"; - $rec = $app->dbmaster->queryOneRecord($sql, $domain_id); + $rec = $app->db->queryOneRecord($sql, $domain_id); if (empty($rec)) { $app->log('Failed to make backup of type ' . $type . ', because no information present about requested domain id ' . $domain_id, LOGLEVEL_ERROR); return false; } - $server_id = intval($conf['server_id']); + $server_id = intval($rec['server_id']); if ($mount && !self::mount_backup_dir($server_id)) { $app->log('Failed to make backup of type ' . $type . ' for domain id ' . $domain_id . ', because failed to mount backup directory', LOGLEVEL_ERROR); @@ -1419,7 +1419,6 @@ class backup $ok = self::make_web_backup($rec, $backup_job); break; case 'mysql': - $rec['server_id'] = $server_id; $ok = self::make_database_backup($rec, $backup_job); break; default: @@ -1444,7 +1443,7 @@ class backup $server_id = intval($server_id); $sql = "SELECT * FROM web_domain WHERE server_id = ? AND (type = 'vhost' OR type = 'vhostsubdomain' OR type = 'vhostalias') AND active = 'y' AND backup_interval != 'none' AND backup_interval != ''"; - $domains = $app->dbmaster->queryAllRecords($sql, $server_id); + $domains = $app->db->queryAllRecords($sql, $server_id); if (!self::mount_backup_dir($server_id)) { $app->log('Failed to run regular backups routine because failed to mount backup directory', LOGLEVEL_ERROR); @@ -1457,15 +1456,7 @@ class backup foreach ($domains as $domain) { if (($domain['backup_interval'] == 'daily' or ($domain['backup_interval'] == 'weekly' && $date_of_week == 0) or ($domain['backup_interval'] == 'monthly' && $date_of_month == '01'))) { self::run_backup($domain['domain_id'], 'web', $backup_job, false); - } - } - - $sql = "SELECT DISTINCT d.*, db.server_id as `server_id` FROM web_database as db INNER JOIN web_domain as d ON (d.domain_id = db.parent_domain_id) WHERE db.server_id = ? AND db.active = 'y' AND d.backup_interval != 'none' AND d.backup_interval != ''"; - $databases = $app->dbmaster->queryAllRecords($sql, $server_id); - - foreach ($databases as $database) { - if (($database['backup_interval'] == 'daily' or ($database['backup_interval'] == 'weekly' && $date_of_week == 0) or ($database['backup_interval'] == 'monthly' && $date_of_month == '01'))) { - self::run_backup($database['domain_id'], 'mysql', $backup_job, false); + self::run_backup($domain['domain_id'], 'mysql', $backup_job, false); } } self::unmount_backup_dir($server_id); -- GitLab From ea370950cee372d0d791866bca2d32629664e953 Mon Sep 17 00:00:00 2001 From: Marius Burkard Date: Tue, 17 Nov 2020 14:40:13 +0100 Subject: [PATCH 104/300] proposed fix for missing database backups --- server/lib/classes/backup.inc.php | 21 +++++++++++++++------ 1 file changed, 15 insertions(+), 6 deletions(-) diff --git a/server/lib/classes/backup.inc.php b/server/lib/classes/backup.inc.php index 23d6171f4f..e7333356b4 100644 --- a/server/lib/classes/backup.inc.php +++ b/server/lib/classes/backup.inc.php @@ -1145,7 +1145,7 @@ class backup if (empty($backup_job)) $backup_job = "auto"; - $records = $app->db->queryAllRecords("SELECT * FROM web_database WHERE server_id = ? AND parent_domain_id = ?", $server_id, $domain_id); + $records = $app->dbmaster->queryAllRecords("SELECT * FROM web_database WHERE server_id = ? AND parent_domain_id = ?", $server_id, $domain_id); if (empty($records)){ $app->log('Skipping database backup for domain ' . $web_domain['domain_id'] . ', because no related databases found.', LOGLEVEL_DEBUG); return true; @@ -1396,17 +1396,17 @@ class backup */ public static function run_backup($domain_id, $type, $backup_job, $mount = true) { - global $app; + global $app, $conf; $domain_id = intval($domain_id); $sql = "SELECT * FROM web_domain WHERE (type = 'vhost' OR type = 'vhostsubdomain' OR type = 'vhostalias') AND domain_id = ?"; - $rec = $app->db->queryOneRecord($sql, $domain_id); + $rec = $app->dbmaster->queryOneRecord($sql, $domain_id); if (empty($rec)) { $app->log('Failed to make backup of type ' . $type . ', because no information present about requested domain id ' . $domain_id, LOGLEVEL_ERROR); return false; } - $server_id = intval($rec['server_id']); + $server_id = intval($conf['server_id']); if ($mount && !self::mount_backup_dir($server_id)) { $app->log('Failed to make backup of type ' . $type . ' for domain id ' . $domain_id . ', because failed to mount backup directory', LOGLEVEL_ERROR); @@ -1419,6 +1419,7 @@ class backup $ok = self::make_web_backup($rec, $backup_job); break; case 'mysql': + $rec['server_id'] = $server_id; $ok = self::make_database_backup($rec, $backup_job); break; default: @@ -1443,7 +1444,7 @@ class backup $server_id = intval($server_id); $sql = "SELECT * FROM web_domain WHERE server_id = ? AND (type = 'vhost' OR type = 'vhostsubdomain' OR type = 'vhostalias') AND active = 'y' AND backup_interval != 'none' AND backup_interval != ''"; - $domains = $app->db->queryAllRecords($sql, $server_id); + $domains = $app->dbmaster->queryAllRecords($sql, $server_id); if (!self::mount_backup_dir($server_id)) { $app->log('Failed to run regular backups routine because failed to mount backup directory', LOGLEVEL_ERROR); @@ -1456,7 +1457,15 @@ class backup foreach ($domains as $domain) { if (($domain['backup_interval'] == 'daily' or ($domain['backup_interval'] == 'weekly' && $date_of_week == 0) or ($domain['backup_interval'] == 'monthly' && $date_of_month == '01'))) { self::run_backup($domain['domain_id'], 'web', $backup_job, false); - self::run_backup($domain['domain_id'], 'mysql', $backup_job, false); + } + } + + $sql = "SELECT DISTINCT d.*, db.server_id as `server_id` FROM web_database as db INNER JOIN web_domain as d ON (d.domain_id = db.parent_domain_id) WHERE db.server_id = ? AND db.active = 'y' AND d.backup_interval != 'none' AND d.backup_interval != ''"; + $databases = $app->dbmaster->queryAllRecords($sql, $server_id); + + foreach ($databases as $database) { + if (($database['backup_interval'] == 'daily' or ($database['backup_interval'] == 'weekly' && $date_of_week == 0) or ($database['backup_interval'] == 'monthly' && $date_of_month == '01'))) { + self::run_backup($database['domain_id'], 'mysql', $backup_job, false); } } self::unmount_backup_dir($server_id); -- GitLab From 3ee678994658f42cbb5975a23497decdef77cea7 Mon Sep 17 00:00:00 2001 From: Marius Burkard Date: Tue, 17 Nov 2020 16:38:35 +0100 Subject: [PATCH 105/300] - add support for remote backup utils check --- .../web/sites/form/web_vhost_domain.tform.php | 59 +++++++--- .../classes/cron.d/100-monitor_backup.inc.php | 110 ++++++++++++++++++ 2 files changed, 152 insertions(+), 17 deletions(-) create mode 100644 server/lib/classes/cron.d/100-monitor_backup.inc.php diff --git a/interface/web/sites/form/web_vhost_domain.tform.php b/interface/web/sites/form/web_vhost_domain.tform.php index ef365259b8..332606de6b 100644 --- a/interface/web/sites/form/web_vhost_domain.tform.php +++ b/interface/web/sites/form/web_vhost_domain.tform.php @@ -640,24 +640,49 @@ $form["tabs"]['stats'] = array ( //* Backup if ($backup_available) { + + $domain_server_id = null; + if(isset($_REQUEST["id"])) { + $domain_id = $app->functions->intval($_REQUEST["id"]); + if($domain_id) { + $domain_data = $app->db->queryOneRecord('SELECT `server_id` FROM `web_domain` WHERE `domain_id` = ?', $domain_id); + if($domain_data) { + $domain_server_id = $domain_data['server_id']; + } + } + } + if(!$domain_server_id) { + $domain_server_id = $conf['server_id']; + } + $missing_utils = array(); - $compressors_list = array( - 'gzip', - 'gunzip', - 'zip', - 'unzip', - 'pigz', - 'tar', - 'bzip2', - 'bunzip2', - 'xz', - 'unxz', - '7z', - 'rar', - ); - foreach ($compressors_list as $compressor) { - if (!$app->system->is_installed($compressor)) { - array_push($missing_utils, $compressor); + if($domain_server_id != $conf['server_id']) { + $mon = $app->db->queryOneRecord('SELECT `data` FROM `monitor_data` WHERE `server_id` = ? AND `type` = ? ORDER BY `created` DESC', $domain_server_id, 'backup_utils'); + if($mon) { + $missing_utils = unserialize($mon['data']); + if(!$missing_utils) { + $missing_utils = array(); + } + } + } else { + $compressors_list = array( + 'gzip', + 'gunzip', + 'zip', + 'unzip', + 'pigz', + 'tar', + 'bzip2', + 'bunzip2', + 'xz', + 'unxz', + '7z', + 'rar', + ); + foreach ($compressors_list as $compressor) { + if (!$app->system->is_installed($compressor)) { + array_push($missing_utils, $compressor); + } } } $app->tpl->setVar("missing_utils", implode(", ",$missing_utils), true); diff --git a/server/lib/classes/cron.d/100-monitor_backup.inc.php b/server/lib/classes/cron.d/100-monitor_backup.inc.php new file mode 100644 index 0000000000..40f5362082 --- /dev/null +++ b/server/lib/classes/cron.d/100-monitor_backup.inc.php @@ -0,0 +1,110 @@ +load('monitor_tools'); + $this->_tools = new monitor_tools(); + /* end global section for monitor cronjobs */ + + /* the id of the server as int */ + $server_id = intval($conf['server_id']); + + /** The type of the data */ + + + $type = 'backup_utils'; + + $missing_utils = array(); + $compressors_list = array( + 'gzip', + 'gunzip', + 'zip', + 'unzip', + 'pigz', + 'tar', + 'bzip2', + 'bunzip2', + 'xz', + 'unxz', + '7z', + 'rar', + ); + foreach ($compressors_list as $compressor) { + if (!$app->system->is_installed($compressor)) { + $missing_utils[] = $compressor; + } + } + + $res = array(); + $res['server_id'] = $server_id; + $res['type'] = $type; + $res['data'] = array('missing_utils' => $missing_utils); + $res['state'] = 'ok'; + + /* + * Insert the data into the database + */ + $sql = 'REPLACE INTO monitor_data (server_id, type, created, data, state) ' . + 'VALUES (?, ?, UNIX_TIMESTAMP(), ?, ?)'; + $app->dbmaster->query($sql, $res['server_id'], $res['type'], serialize($res['data']), $res['state']); + + /* The new data is written, now we can delete the old one */ + $this->_tools->delOldRecords($res['type'], $res['server_id']); + + parent::onRunJob(); + } + + /* this function is optional if it contains no custom code */ + public function onAfterRun() { + parent::onAfterRun(); + } + +} -- GitLab From f2b5bc696d710c1534219daf38dc110f2d95d1ed Mon Sep 17 00:00:00 2001 From: Marius Burkard Date: Tue, 17 Nov 2020 16:52:28 +0100 Subject: [PATCH 106/300] - fixed error in editing database remote ip address --- interface/web/sites/database_edit.php | 15 ++++++++++++--- 1 file changed, 12 insertions(+), 3 deletions(-) diff --git a/interface/web/sites/database_edit.php b/interface/web/sites/database_edit.php index 279ccbaf95..60b26bc767 100644 --- a/interface/web/sites/database_edit.php +++ b/interface/web/sites/database_edit.php @@ -211,7 +211,7 @@ class page_action extends tform_actions { unset($global_config); unset($dbname_prefix); } - + //* ensure that quota value is not 0 when quota is set for client if($client['limit_database_quota'] > 0 && isset($_POST["database_quota"]) && $_POST["database_quota"] == 0) { $app->tform->errorMessage .= $app->tform->lng("limit_database_quota_not_0_txt")."
"; @@ -364,7 +364,11 @@ class page_action extends tform_actions { $server_config = $app->getconf->get_server_config($tmp['server_id'], 'server'); // Add default remote_ips from Main Configuration. - $remote_ips = explode(",", $global_config['default_remote_dbserver']); + if(empty($global_config['default_remote_dbserver'])) { + $remote_ips = array(); + } else { + $remote_ips = explode(",", $global_config['default_remote_dbserver']); + } if (!in_array($server_config['ip_address'], $default_remote_db)) { $remote_ips[] = $server_config['ip_address']; } if($server_config['ip_address']!='') { @@ -449,7 +453,12 @@ class page_action extends tform_actions { $server_config = $app->getconf->get_server_config($tmp['server_id'], 'server'); // Add default remote_ips from Main Configuration. - $remote_ips = explode(",", $global_config['default_remote_dbserver']); + if(empty($global_config['default_remote_dbserver'])) { + $remote_ips = array(); + } else { + $remote_ips = explode(",", $global_config['default_remote_dbserver']); + } + if (!in_array($server_config['ip_address'], $default_remote_db)) { $remote_ips[] = $server_config['ip_address']; } if($server_config['ip_address']!='') { -- GitLab From 12d38e85ed78ecb1abc0b9315afbcc94f958892a Mon Sep 17 00:00:00 2001 From: Marius Burkard Date: Tue, 17 Nov 2020 17:12:26 +0100 Subject: [PATCH 107/300] - add fixes for db columns --- .../sql/incremental/upd_dev_collection.sql | 21 +++++++++++++++++++ 1 file changed, 21 insertions(+) diff --git a/install/sql/incremental/upd_dev_collection.sql b/install/sql/incremental/upd_dev_collection.sql index 8b13789179..bd1aa92c30 100644 --- a/install/sql/incremental/upd_dev_collection.sql +++ b/install/sql/incremental/upd_dev_collection.sql @@ -1 +1,22 @@ +-- we need those to fix some installations failing in 0089 and 0090 +ALTER TABLE web_domain ROW_FORMAT=DYNAMIC; +ALTER IGNORE TABLE `web_domain` ADD COLUMN `proxy_protocol` ENUM('n','y') NOT NULL DEFAULT 'n' AFTER `log_retention`; +ALTER IGNORE TABLE `web_domain` ADD `backup_format_web` VARCHAR( 255 ) NOT NULL default 'default' AFTER `backup_copies`; +ALTER IGNORE TABLE `web_domain` ADD `backup_format_db` VARCHAR( 255 ) NOT NULL default 'gzip' AFTER `backup_format_web`; +ALTER IGNORE TABLE `web_domain` ADD `backup_encrypt` enum('n','y') NOT NULL DEFAULT 'n' AFTER `backup_format_db`; +ALTER IGNORE TABLE `web_domain` ADD `backup_password` VARCHAR( 255 ) NOT NULL DEFAULT '' AFTER `backup_encrypt`; +ALTER IGNORE TABLE `web_backup` ADD `backup_format` VARCHAR( 64 ) NOT NULL DEFAULT '' AFTER `backup_mode`; +ALTER IGNORE TABLE `web_backup` ADD `backup_password` VARCHAR( 255 ) NOT NULL DEFAULT '' AFTER `filesize`; +ALTER IGNORE TABLE `web_domain` ALTER pm SET DEFAULT 'ondemand'; +ALTER IGNORE TABLE `web_domain` DROP COLUMN `enable_spdy`; +ALTER IGNORE TABLE `web_domain` ADD `folder_directive_snippets` TEXT NULL AFTER `https_port`; +ALTER IGNORE TABLE `web_domain` ADD `server_php_id` INT(11) UNSIGNED NOT NULL DEFAULT 0; +ALTER IGNORE TABLE `web_domain` CHANGE `apache_directives` `apache_directives` mediumtext NULL DEFAULT NULL; +ALTER IGNORE TABLE `web_domain` CHANGE `nginx_directives` `nginx_directives` mediumtext NULL DEFAULT NULL; +UPDATE `web_domain` as w LEFT JOIN sys_group as g ON (g.groupid = w.sys_groupid) INNER JOIN `server_php` as p ON (w.fastcgi_php_version = CONCAT(p.name, ':', p.php_fastcgi_binary, ':', p.php_fastcgi_ini_dir) AND p.server_id IN (0, w.server_id) AND p.client_id IN (0, g.client_id)) SET w.server_php_id = p.server_php_id, w.fastcgi_php_version = '' WHERE w.server_php_id = 0; +UPDATE `web_domain` as w LEFT JOIN sys_group as g ON (g.groupid = w.sys_groupid) INNER JOIN `server_php` as p ON (w.fastcgi_php_version = CONCAT(p.name, ':', p.php_fpm_init_script, ':', p.php_fpm_ini_dir, ':', p.php_fpm_pool_dir) AND p.server_id IN (0, w.server_id) AND p.client_id IN (0, g.client_id)) SET w.server_php_id = p.server_php_id, w.fastcgi_php_version = '' WHERE w.server_php_id = 0; +-- end of fixes + +-- drop old php column because new installations don't have them (fails in multi-server) +ALTER TABLE `web_domain` DROP COLUMN `fastcgi_php_version`; -- GitLab From 78d45ae9b17bbff7aa2aa40e020fa7f241eb0b31 Mon Sep 17 00:00:00 2001 From: Marius Burkard Date: Tue, 17 Nov 2020 19:17:21 +0100 Subject: [PATCH 108/300] - add fixes to sql --- install/sql/incremental/upd_dev_collection.sql | 2 +- install/sql/ispconfig3.sql | 2 +- 2 files changed, 2 insertions(+), 2 deletions(-) diff --git a/install/sql/incremental/upd_dev_collection.sql b/install/sql/incremental/upd_dev_collection.sql index bd1aa92c30..8243a21f11 100644 --- a/install/sql/incremental/upd_dev_collection.sql +++ b/install/sql/incremental/upd_dev_collection.sql @@ -1,6 +1,6 @@ -- we need those to fix some installations failing in 0089 and 0090 -ALTER TABLE web_domain ROW_FORMAT=DYNAMIC; +ALTER TABLE `web_domain` ROW_FORMAT=DYNAMIC; ALTER IGNORE TABLE `web_domain` ADD COLUMN `proxy_protocol` ENUM('n','y') NOT NULL DEFAULT 'n' AFTER `log_retention`; ALTER IGNORE TABLE `web_domain` ADD `backup_format_web` VARCHAR( 255 ) NOT NULL default 'default' AFTER `backup_copies`; ALTER IGNORE TABLE `web_domain` ADD `backup_format_db` VARCHAR( 255 ) NOT NULL default 'gzip' AFTER `backup_format_web`; diff --git a/install/sql/ispconfig3.sql b/install/sql/ispconfig3.sql index 67f0f3bdcb..7753071f71 100644 --- a/install/sql/ispconfig3.sql +++ b/install/sql/ispconfig3.sql @@ -2091,7 +2091,7 @@ CREATE TABLE `web_domain` ( `last_jailkit_hash` varchar(255) DEFAULT NULL, PRIMARY KEY (`domain_id`), UNIQUE KEY `serverdomain` ( `server_id` , `ip_address`, `domain` ) -) DEFAULT CHARSET=utf8 AUTO_INCREMENT=1 ; +) ENGINE=InnoDB ROW_FORMAT=DYNAMIC DEFAULT CHARSET=utf8 AUTO_INCREMENT=1 ; -- -------------------------------------------------------- -- GitLab From 48934fbbc4db5f81002e8f41bf4375d74a49ec84 Mon Sep 17 00:00:00 2001 From: Marius Burkard Date: Tue, 17 Nov 2020 19:19:35 +0100 Subject: [PATCH 109/300] - add grant for web_database --- install/lib/installer_base.lib.php | 8 ++++++++ 1 file changed, 8 insertions(+) diff --git a/install/lib/installer_base.lib.php b/install/lib/installer_base.lib.php index e3821b5c14..1e28fbecd2 100644 --- a/install/lib/installer_base.lib.php +++ b/install/lib/installer_base.lib.php @@ -666,6 +666,14 @@ class installer_base { $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'] . '.web_database', $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"; -- GitLab From 96cc8c082cc05ae476011398157af706fff3cad3 Mon Sep 17 00:00:00 2001 From: Marius Burkard Date: Wed, 18 Nov 2020 09:16:40 +0100 Subject: [PATCH 110/300] - also change mail_user to row format dynamic and add column --- install/sql/incremental/upd_dev_collection.sql | 2 ++ 1 file changed, 2 insertions(+) diff --git a/install/sql/incremental/upd_dev_collection.sql b/install/sql/incremental/upd_dev_collection.sql index 8243a21f11..bd408870a4 100644 --- a/install/sql/incremental/upd_dev_collection.sql +++ b/install/sql/incremental/upd_dev_collection.sql @@ -1,6 +1,7 @@ -- we need those to fix some installations failing in 0089 and 0090 ALTER TABLE `web_domain` ROW_FORMAT=DYNAMIC; +ALTER TABLE `mail_user` ROW_FORMAT=DYNAMIC; ALTER IGNORE TABLE `web_domain` ADD COLUMN `proxy_protocol` ENUM('n','y') NOT NULL DEFAULT 'n' AFTER `log_retention`; ALTER IGNORE TABLE `web_domain` ADD `backup_format_web` VARCHAR( 255 ) NOT NULL default 'default' AFTER `backup_copies`; ALTER IGNORE TABLE `web_domain` ADD `backup_format_db` VARCHAR( 255 ) NOT NULL default 'gzip' AFTER `backup_format_web`; @@ -16,6 +17,7 @@ ALTER IGNORE TABLE `web_domain` CHANGE `apache_directives` `apache_directives` m ALTER IGNORE TABLE `web_domain` CHANGE `nginx_directives` `nginx_directives` mediumtext NULL DEFAULT NULL; UPDATE `web_domain` as w LEFT JOIN sys_group as g ON (g.groupid = w.sys_groupid) INNER JOIN `server_php` as p ON (w.fastcgi_php_version = CONCAT(p.name, ':', p.php_fastcgi_binary, ':', p.php_fastcgi_ini_dir) AND p.server_id IN (0, w.server_id) AND p.client_id IN (0, g.client_id)) SET w.server_php_id = p.server_php_id, w.fastcgi_php_version = '' WHERE w.server_php_id = 0; UPDATE `web_domain` as w LEFT JOIN sys_group as g ON (g.groupid = w.sys_groupid) INNER JOIN `server_php` as p ON (w.fastcgi_php_version = CONCAT(p.name, ':', p.php_fpm_init_script, ':', p.php_fpm_ini_dir, ':', p.php_fpm_pool_dir) AND p.server_id IN (0, w.server_id) AND p.client_id IN (0, g.client_id)) SET w.server_php_id = p.server_php_id, w.fastcgi_php_version = '' WHERE w.server_php_id = 0; +ALTER IGNORE TABLE `mail_user` ADD `forward_in_lda` enum('n','y') NOT NULL default 'n' AFTER `cc`; -- end of fixes -- drop old php column because new installations don't have them (fails in multi-server) -- GitLab From 00e24fedc2c380e60b4d57e451b0ed2d92596360 Mon Sep 17 00:00:00 2001 From: Marius Burkard Date: Wed, 18 Nov 2020 09:22:16 +0100 Subject: [PATCH 111/300] - do not set non-existing columns on web_database --- .../lib/classes/aps_guicontroller.inc.php | 36 +++++++++---------- 1 file changed, 17 insertions(+), 19 deletions(-) diff --git a/interface/lib/classes/aps_guicontroller.inc.php b/interface/lib/classes/aps_guicontroller.inc.php index b1ebf9d189..036bef7f05 100644 --- a/interface/lib/classes/aps_guicontroller.inc.php +++ b/interface/lib/classes/aps_guicontroller.inc.php @@ -53,7 +53,7 @@ class ApsGUIController extends ApsBase if (substr($domain, 0, 4) == 'www.') $domain = substr($domain, 4); return $domain; } - + /** * Reads in a package metadata file and registers it's namespaces @@ -220,7 +220,7 @@ class ApsGUIController extends ApsBase $params[] = $client_id; } $params[] = $id; - + $result = $app->db->queryOneRecord('SELECT id FROM aps_instances WHERE '.$sql_ext.' id = ?', true, $params); if(!$result) return false; @@ -229,18 +229,18 @@ class ApsGUIController extends ApsBase public function createDatabaseForPackageInstance(&$settings, $websrv) { global $app; - + $app->uses('tools_sites'); - + $global_config = $app->getconf->get_global_config('sites'); - + $tmp = array(); $tmp['parent_domain_id'] = $websrv['domain_id']; $tmp['sys_groupid'] = $websrv['sys_groupid']; $dbname_prefix = $app->tools_sites->replacePrefix($global_config['dbname_prefix'], $tmp); $dbuser_prefix = $app->tools_sites->replacePrefix($global_config['dbuser_prefix'], $tmp); unset($tmp); - + // get information if the webserver is a db server, too $web_server = $app->db->queryOneRecord("SELECT server_id,server_name,db_server FROM server WHERE server_id = ?", $websrv['server_id']); if($web_server['db_server'] == 1) { @@ -276,14 +276,14 @@ class ApsGUIController extends ApsBase * although this does not present any error message to the user. */ return false; - + /*$mysql_db_server_id = $websrv['server_id']; $settings['main_database_host'] = 'localhost'; $mysql_db_remote_access = 'n'; $mysql_db_remote_ips = '';*/ } } - + if (empty($settings['main_database_name'])) { //* Find a free db name for the app for($n = 1; $n <= 1000; $n++) { @@ -302,7 +302,7 @@ class ApsGUIController extends ApsBase } $settings['main_database_login'] = $mysql_db_user; } - + //* Create the mysql database user if not existing $tmp = $app->db->queryOneRecord("SELECT database_user_id FROM web_database_user WHERE database_user = ?", $settings['main_database_login']); if(!$tmp) { @@ -320,7 +320,7 @@ class ApsGUIController extends ApsBase $mysql_db_user_id = $app->db->datalogInsert('web_database_user', $insert_data, 'database_user_id'); } else $mysql_db_user_id = $tmp['database_user_id']; - + //* Create the mysql database if not existing $tmp = $app->db->queryOneRecord("SELECT count(database_id) as number FROM web_database WHERE database_name = ?", $settings['main_database_name']); if($tmp['number'] == 0) { @@ -340,17 +340,15 @@ class ApsGUIController extends ApsBase "remote_access" => $mysql_db_remote_access, "remote_ips" => $mysql_db_remote_ips, "backup_copies" => $websrv['backup_copies'], - "backup_format_web" => $websrv['backup_format_web'], - "backup_format_db" => $websrv['backup_format_db'], - "active" => 'y', + "active" => 'y', "backup_interval" => $websrv['backup_interval'] ); $app->db->datalogInsert('web_database', $insert_data, 'database_id'); } - + return true; } - + /** * Creates a new database record for the package instance and * an install task @@ -398,7 +396,7 @@ class ApsGUIController extends ApsBase // mysql-database-name is updated inside if not set already if (!$this->createDatabaseForPackageInstance($settings, $websrv)) return false; } - + //* Insert new package instance $insert_data = array( "sys_userid" => $websrv['sys_userid'], @@ -428,7 +426,7 @@ class ApsGUIController extends ApsBase //* Set package status to install afetr we inserted the settings $app->db->datalogUpdate('aps_instances', array("instance_status" => INSTANCE_INSTALL), 'id', $InstanceID); - + return $InstanceID; } @@ -446,7 +444,7 @@ class ApsGUIController extends ApsBase $sql = "SELECT web_database.database_id as database_id, web_database.database_user_id as `database_user_id` FROM aps_instances_settings, web_database WHERE aps_instances_settings.value = web_database.database_name AND aps_instances_settings.name = 'main_database_name' AND aps_instances_settings.instance_id = ? LIMIT 0,1"; $tmp = $app->db->queryOneRecord($sql, $instanceid); if($tmp['database_id'] > 0) $app->db->datalogDelete('web_database', 'database_id', $tmp['database_id']); - + $database_user = $tmp['database_user_id']; $tmp = $app->db->queryOneRecord("SELECT COUNT(*) as `cnt` FROM `web_database` WHERE `database_user_id` = ? OR `database_ro_user_id` = ?", $database_user, $database_user); if($tmp['cnt'] < 1) $app->db->datalogDelete('web_database_user', 'database_user_id', $database_user); @@ -685,7 +683,7 @@ class ApsGUIController extends ApsBase if (isset($postinput['main_database_host'])) $input['main_database_host'] = $postinput['main_database_host']; if (isset($postinput['main_database_name'])) $input['main_database_name'] = $postinput['main_database_name']; if (isset($postinput['main_database_login'])) $input['main_database_login'] = $postinput['main_database_login']; - + if(isset($postinput['main_database_password'])) { if($postinput['main_database_password'] == '') $error[] = $app->lng('error_no_database_pw'); -- GitLab From dac7c51e0f1584453404e21c2f2ac72759d7eeb9 Mon Sep 17 00:00:00 2001 From: Till Brehm Date: Wed, 18 Nov 2020 09:52:30 +0100 Subject: [PATCH 112/300] Update installer_base.lib.php --- install/lib/installer_base.lib.php | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/install/lib/installer_base.lib.php b/install/lib/installer_base.lib.php index e3821b5c14..dc1bf7c17c 100644 --- a/install/lib/installer_base.lib.php +++ b/install/lib/installer_base.lib.php @@ -493,7 +493,7 @@ class installer_base { 0, ?, ?, - "y", + "n", "80,443" )', $conf['server_id'], $ip_type, $line); $server_ip_id = $this->dbmaster->insertID(); @@ -512,7 +512,7 @@ class installer_base { 0, ?, ?, - "y", + "n", "80,443" )', $server_ip_id, $conf['server_id'], $ip_type, $line); } else { @@ -530,7 +530,7 @@ class installer_base { 0, ?, ?, - "y", + "n", "80,443" )', $conf['server_id'], $ip_type, $line); } -- GitLab From 3c2c55df3a37c150c5218a8e8691a3dc4259f2d0 Mon Sep 17 00:00:00 2001 From: Marius Burkard Date: Wed, 18 Nov 2020 15:44:14 +0100 Subject: [PATCH 113/300] - fixed wrong data read --- interface/web/sites/form/web_vhost_domain.tform.php | 2 ++ 1 file changed, 2 insertions(+) diff --git a/interface/web/sites/form/web_vhost_domain.tform.php b/interface/web/sites/form/web_vhost_domain.tform.php index 332606de6b..85387f6dab 100644 --- a/interface/web/sites/form/web_vhost_domain.tform.php +++ b/interface/web/sites/form/web_vhost_domain.tform.php @@ -662,6 +662,8 @@ if ($backup_available) { $missing_utils = unserialize($mon['data']); if(!$missing_utils) { $missing_utils = array(); + } else { + $missing_utils = $missing_utils['missing_utils']; } } } else { -- GitLab From fd95b9b25df6ddee6c7ca3cf6a6679b5b5f02bbe Mon Sep 17 00:00:00 2001 From: Marius Burkard Date: Wed, 18 Nov 2020 16:11:11 +0100 Subject: [PATCH 114/300] - added fix to manual backup action --- .../lib/classes/plugin_backuplist.inc.php | 22 ++++++++++++++----- 1 file changed, 17 insertions(+), 5 deletions(-) diff --git a/interface/lib/classes/plugin_backuplist.inc.php b/interface/lib/classes/plugin_backuplist.inc.php index 9e21dc6ba6..81fe1daae7 100644 --- a/interface/lib/classes/plugin_backuplist.inc.php +++ b/interface/lib/classes/plugin_backuplist.inc.php @@ -56,10 +56,22 @@ class plugin_backuplist extends plugin_base { $sql = "SELECT count(action_id) as number FROM sys_remoteaction WHERE action_state = 'pending' AND action_type = ? AND action_param = ?"; $tmp = $app->db->queryOneRecord($sql, $action_type, $domain_id); if ($tmp['number'] == 0) { - $server_id = $this->form->dataRecord['server_id']; + if($action_type === 'backup_database') { + // get all server ids of databases for this domain + $sql = 'SELECT `server_id` FROM `web_database` WHERE `parent_domain_id` = ?'; + $result = $app->db->query($sql, $domain_id); + while(($cur = $result->get())) { + $server_id = $cur['server_id']; + $sql = "INSERT INTO sys_remoteaction (server_id, tstamp, action_type, action_param, action_state, response) VALUES (?, UNIX_TIMESTAMP(), ?, ?, 'pending', '')"; + $app->db->query($sql, $server_id, $action_type, $domain_id); + } + $result->free(); + } else { + $server_id = $this->form->dataRecord['server_id']; + $sql = "INSERT INTO sys_remoteaction (server_id, tstamp, action_type, action_param, action_state, response) VALUES (?, UNIX_TIMESTAMP(), ?, ?, 'pending', '')"; + $app->db->query($sql, $server_id, $action_type, $domain_id); + } $message .= $wb['backup_info_txt']; - $sql = "INSERT INTO sys_remoteaction (server_id, tstamp, action_type, action_param, action_state, response) VALUES (?, UNIX_TIMESTAMP(), ?, ?, 'pending', '')"; - $app->db->query($sql, $server_id, $action_type, $domain_id); } else { $error .= $wb['backup_pending_txt']; } @@ -193,10 +205,10 @@ class plugin_backuplist extends plugin_base { $rec['backup_encrypted'] = empty($rec['backup_password']) ? $wb["no_txt"] : $wb["yes_txt"]; $backup_manual_prefix = 'manual-'; $rec['backup_job'] = (substr($rec['filename'], 0, strlen($backup_manual_prefix)) == $backup_manual_prefix) ? $wb["backup_job_manual_txt"] : $wb["backup_job_auto_txt"]; - + $rec['download_available'] = true; if($rec['server_id'] != $web['server_id']) $rec['download_available'] = false; - + if($rec['filesize'] > 0){ $rec['filesize'] = $app->functions->currency_format($rec['filesize']/(1024*1024), 'client').' MB'; } -- GitLab From 4cc77567cc2fe7e07c9371c37529ef8979ab4e4a Mon Sep 17 00:00:00 2001 From: Jesse Norell Date: Wed, 18 Nov 2020 10:26:24 -0700 Subject: [PATCH 115/300] postfix: reject_unlisted_sender --- install/tpl/debian_postfix.conf.master | 1 + install/tpl/fedora_postfix.conf.master | 1 + install/tpl/gentoo_postfix.conf.master | 1 + install/tpl/opensuse_postfix.conf.master | 1 + 4 files changed, 4 insertions(+) diff --git a/install/tpl/debian_postfix.conf.master b/install/tpl/debian_postfix.conf.master index dcd5f592d8..a6a48e0e02 100644 --- a/install/tpl/debian_postfix.conf.master +++ b/install/tpl/debian_postfix.conf.master @@ -28,6 +28,7 @@ proxy_read_maps = $local_recipient_maps $mydestination $virtual_alias_maps $virt smtpd_helo_required = yes smtpd_helo_restrictions = reject_invalid_helo_hostname, permit_mynetworks, check_helo_access regexp:{config_dir}/helo_access, permit_sasl_authenticated, reject_non_fqdn_helo_hostname, check_helo_access regexp:{config_dir}/blacklist_helo, {reject_unknown_helo_hostname}, permit smtpd_sender_restrictions = {reject_aslm} check_sender_access regexp:{config_dir}/tag_as_originating.re, permit_mynetworks{reject_slm}, permit_sasl_authenticated, reject_non_fqdn_sender, check_sender_access regexp:{config_dir}/tag_as_foreign.re, check_sender_access proxy:mysql:{config_dir}/mysql-virtual_sender.cf +smtpd_reject_unlisted_sender = yes smtpd_client_restrictions = check_client_access proxy:mysql:{config_dir}/mysql-virtual_client.cf, permit_inet_interfaces, permit_mynetworks, permit_sasl_authenticated{rbl_list}, reject_unauth_pipelining {reject_unknown_client_hostname}, permit smtpd_etrn_restrictions = permit_mynetworks, reject smtpd_data_restrictions = permit_mynetworks, reject_unauth_pipelining, reject_multi_recipient_bounce, permit diff --git a/install/tpl/fedora_postfix.conf.master b/install/tpl/fedora_postfix.conf.master index 45bc0c117e..3cd8357a66 100644 --- a/install/tpl/fedora_postfix.conf.master +++ b/install/tpl/fedora_postfix.conf.master @@ -24,6 +24,7 @@ proxy_read_maps = $local_recipient_maps $mydestination $virtual_alias_maps $virt smtpd_helo_required = yes smtpd_helo_restrictions = reject_invalid_helo_hostname, permit_mynetworks, check_helo_access regexp:{config_dir}/helo_access, permit_sasl_authenticated, reject_non_fqdn_helo_hostname, check_helo_access regexp:{config_dir}/blacklist_helo, {reject_unknown_helo_hostname}, permit smtpd_sender_restrictions = {reject_aslm} check_sender_access regexp:{config_dir}/tag_as_originating.re, permit_mynetworks{reject_slm}, permit_sasl_authenticated, reject_non_fqdn_sender, check_sender_access regexp:{config_dir}/tag_as_foreign.re, check_sender_access proxy:mysql:{config_dir}/mysql-virtual_sender.cf +smtpd_reject_unlisted_sender = yes smtpd_client_restrictions = check_client_access proxy:mysql:{config_dir}/mysql-virtual_client.cf, permit_inet_interfaces, permit_mynetworks, permit_sasl_authenticated{rbl_list}, reject_unauth_pipelining {reject_unknown_client_hostname}, permit smtpd_etrn_restrictions = permit_mynetworks, reject smtpd_data_restrictions = permit_mynetworks, reject_unauth_pipelining, reject_multi_recipient_bounce, permit diff --git a/install/tpl/gentoo_postfix.conf.master b/install/tpl/gentoo_postfix.conf.master index b3ff8f6804..f4a1d4025c 100644 --- a/install/tpl/gentoo_postfix.conf.master +++ b/install/tpl/gentoo_postfix.conf.master @@ -23,6 +23,7 @@ proxy_read_maps = $local_recipient_maps $mydestination $virtual_alias_maps $virt smtpd_helo_required = yes smtpd_helo_restrictions = reject_invalid_helo_hostname, permit_mynetworks, check_helo_access regexp:{config_dir}/helo_access, permit_sasl_authenticated, reject_non_fqdn_helo_hostname, check_helo_access regexp:{config_dir}/blacklist_helo, {reject_unknown_helo_hostname}, permit smtpd_sender_restrictions = {reject_aslm} check_sender_access regexp:{config_dir}/tag_as_originating.re, permit_mynetworks{reject_slm}, permit_sasl_authenticated, reject_non_fqdn_sender, check_sender_access regexp:{config_dir}/tag_as_foreign.re, check_sender_access proxy:mysql:{config_dir}/mysql-virtual_sender.cf +smtpd_reject_unlisted_sender = yes smtpd_client_restrictions = check_client_access proxy:mysql:{config_dir}/mysql-virtual_client.cf, permit_inet_interfaces, permit_mynetworks, permit_sasl_authenticated{rbl_list}, reject_unauth_pipelining {reject_unknown_client_hostname}, permit smtpd_etrn_restrictions = permit_mynetworks, reject smtpd_data_restrictions = permit_mynetworks, reject_unauth_pipelining, reject_multi_recipient_bounce, permit diff --git a/install/tpl/opensuse_postfix.conf.master b/install/tpl/opensuse_postfix.conf.master index 7386fad16e..7d3669853a 100644 --- a/install/tpl/opensuse_postfix.conf.master +++ b/install/tpl/opensuse_postfix.conf.master @@ -26,6 +26,7 @@ proxy_read_maps = $local_recipient_maps $mydestination $virtual_alias_maps $virt smtpd_helo_required = yes smtpd_helo_restrictions = reject_invalid_helo_hostname, permit_mynetworks, check_helo_access regexp:{config_dir}/helo_access, permit_sasl_authenticated, reject_non_fqdn_helo_hostname, check_helo_access regexp:{config_dir}/blacklist_helo, {reject_unknown_helo_hostname}, permit smtpd_sender_restrictions = {reject_aslm} check_sender_access regexp:{config_dir}/tag_as_originating.re, permit_mynetworks{reject_slm}, permit_sasl_authenticated, reject_non_fqdn_sender, check_sender_access regexp:{config_dir}/tag_as_foreign.re, check_sender_access proxy:mysql:{config_dir}/mysql-virtual_sender.cf +smtpd_reject_unlisted_sender = yes smtpd_client_restrictions = check_client_access proxy:mysql:{config_dir}/mysql-virtual_client.cf, permit_inet_interfaces, permit_mynetworks, permit_sasl_authenticated{rbl_list}, reject_unauth_pipelining {reject_unknown_client_hostname}, permit smtpd_etrn_restrictions = permit_mynetworks, reject smtpd_data_restrictions = permit_mynetworks, reject_unauth_pipelining, reject_multi_recipient_bounce, permit -- GitLab From e1c013e9f2c68fd178fcc340c73c5999c790723d Mon Sep 17 00:00:00 2001 From: Jesse Norell Date: Wed, 18 Nov 2020 11:26:54 -0700 Subject: [PATCH 116/300] sender_login_maps missing check for active domain --- install/tpl/mysql-virtual_sender_login_maps.cf.master | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/install/tpl/mysql-virtual_sender_login_maps.cf.master b/install/tpl/mysql-virtual_sender_login_maps.cf.master index f97229d213..165bee1231 100644 --- a/install/tpl/mysql-virtual_sender_login_maps.cf.master +++ b/install/tpl/mysql-virtual_sender_login_maps.cf.master @@ -4,4 +4,5 @@ dbname = {mysql_server_database} hosts = {mysql_server_ip} query = SELECT destination FROM mail_forwarding WHERE source = '%s' AND active = 'y' AND allow_send_as = 'y' AND server_id = {server_id} UNION - SELECT email FROM mail_user WHERE email = '%s' AND disablesmtp = 'n' AND server_id = {server_id}; + SELECT email FROM mail_user WHERE email = '%s' AND disablesmtp = 'n' AND server_id = {server_id} + AND EXISTS (SELECT domain_id FROM mail_domain WHERE domain = SUBSTRING_INDEX('%s', '@', -1) AND active = 'y' AND server_id = {server_id}) -- GitLab From 6242ec108c76fc7010317eb1f2e24c464315b59d Mon Sep 17 00:00:00 2001 From: Jesse Norell Date: Wed, 18 Nov 2020 11:37:58 -0700 Subject: [PATCH 117/300] other templates missing mail_domain active checks --- install/tpl/mysql-virtual_email2email.cf.master | 2 ++ install/tpl/mysql-virtual_gids.cf.master | 3 ++- install/tpl/mysql-virtual_mailboxes.cf.master | 3 ++- install/tpl/mysql-virtual_outgoing_bcc.cf.master | 5 ++++- install/tpl/mysql-virtual_policy_greylist.cf.master | 5 +++-- install/tpl/mysql-virtual_uids.cf.master | 3 ++- 6 files changed, 15 insertions(+), 6 deletions(-) diff --git a/install/tpl/mysql-virtual_email2email.cf.master b/install/tpl/mysql-virtual_email2email.cf.master index 326ef2c3d9..1ae7f9addc 100644 --- a/install/tpl/mysql-virtual_email2email.cf.master +++ b/install/tpl/mysql-virtual_email2email.cf.master @@ -3,5 +3,7 @@ password = {mysql_server_ispconfig_password} dbname = {mysql_server_database} hosts = {mysql_server_ip} query = SELECT email FROM mail_user WHERE email = '%s' AND forward_in_lda = 'n' AND disabledeliver = 'n' AND postfix = 'y' AND server_id = {server_id} + AND EXISTS (SELECT domain_id FROM mail_domain WHERE domain = SUBSTRING_INDEX('%s', '@', -1) AND active = 'y' AND server_id = {server_id}) UNION SELECT cc AS email FROM mail_user WHERE email = '%s' AND cc != '' AND (forward_in_lda = 'n' OR disabledeliver = 'y') AND postfix = 'y' AND server_id = {server_id} + AND EXISTS (SELECT domain_id FROM mail_domain WHERE domain = SUBSTRING_INDEX('%s', '@', -1) AND active = 'y' AND server_id = {server_id}) diff --git a/install/tpl/mysql-virtual_gids.cf.master b/install/tpl/mysql-virtual_gids.cf.master index 5611b935dd..0bd2c8ec69 100644 --- a/install/tpl/mysql-virtual_gids.cf.master +++ b/install/tpl/mysql-virtual_gids.cf.master @@ -2,4 +2,5 @@ user = {mysql_server_ispconfig_user} password = {mysql_server_ispconfig_password} dbname = {mysql_server_database} hosts = {mysql_server_ip} -query = select gid from mail_user where email = '%s' and postfix = 'y' and server_id = {server_id} +query = SELECT gid FROM mail_user WHERE email = '%s' AND postfix = 'y' AND server_id = {server_id} + AND EXISTS (SELECT domain_id FROM mail_domain WHERE domain = SUBSTRING_INDEX('%s', '@', -1) AND active = 'y' AND server_id = {server_id}) diff --git a/install/tpl/mysql-virtual_mailboxes.cf.master b/install/tpl/mysql-virtual_mailboxes.cf.master index 8b2677a196..76cc05f464 100644 --- a/install/tpl/mysql-virtual_mailboxes.cf.master +++ b/install/tpl/mysql-virtual_mailboxes.cf.master @@ -2,4 +2,5 @@ user = {mysql_server_ispconfig_user} password = {mysql_server_ispconfig_password} dbname = {mysql_server_database} hosts = {mysql_server_ip} -query = select CONCAT(SUBSTRING_INDEX(email,'@',-1),'/',SUBSTRING_INDEX(email,'@',1),'/') from mail_user where email = '%s' and postfix = 'y' and disabledeliver = 'n' and server_id = {server_id} +query = SELECT CONCAT(SUBSTRING_INDEX(email,'@',-1),'/',SUBSTRING_INDEX(email,'@',1),'/') FROM mail_user WHERE email = '%s' AND postfix = 'y' AND disabledeliver = 'n' AND server_id = {server_id} + AND EXISTS (SELECT domain_id FROM mail_domain WHERE domain = SUBSTRING_INDEX('%s', '@', -1) AND active = 'y' AND server_id = {server_id}) diff --git a/install/tpl/mysql-virtual_outgoing_bcc.cf.master b/install/tpl/mysql-virtual_outgoing_bcc.cf.master index 19b235fcf5..1501154e16 100644 --- a/install/tpl/mysql-virtual_outgoing_bcc.cf.master +++ b/install/tpl/mysql-virtual_outgoing_bcc.cf.master @@ -4,7 +4,9 @@ dbname = {mysql_server_database} hosts = {mysql_server_ip} query = SELECT sender_cc FROM ( SELECT SUBSTRING_INDEX(sender_cc, ',', 1) AS sender_cc - FROM mail_user WHERE email = '%s' AND disablesmtp = 'n' AND sender_cc != '' AND server_id = {server_id} + FROM mail_user + WHERE email = '%s' AND disablesmtp = 'n' AND sender_cc != '' AND server_id = {server_id} + AND EXISTS (SELECT domain_id FROM mail_domain WHERE domain = SUBSTRING_INDEX('%s', '@', -1) AND active = 'y' AND server_id = {server_id}) UNION SELECT SUBSTRING_INDEX(u.sender_cc, ',', 1) AS sender_cc FROM mail_user u, mail_forwarding f @@ -13,4 +15,5 @@ query = SELECT sender_cc FROM ( '[[:blank:]]*(,[[:blank:]]*[[:alnum:]]|,?[[:blank:]]*(\\r?\\n|$))' ) AND u.disablesmtp = 'n' AND u.sender_cc != '' AND u.server_id = {server_id} AND f.source = '%s' AND f.allow_send_as = 'y' AND f.active = 'y' AND f.server_id = {server_id} + AND EXISTS (SELECT domain_id FROM mail_domain WHERE domain = SUBSTRING_INDEX('%s', '@', -1) AND active = 'y' AND server_id = {server_id}) ) table1 WHERE sender_cc != '' LIMIT 1 diff --git a/install/tpl/mysql-virtual_policy_greylist.cf.master b/install/tpl/mysql-virtual_policy_greylist.cf.master index 5203b1a2ea..8896b823a7 100644 --- a/install/tpl/mysql-virtual_policy_greylist.cf.master +++ b/install/tpl/mysql-virtual_policy_greylist.cf.master @@ -5,9 +5,10 @@ hosts = {mysql_server_ip} query = SELECT 'greylisting' FROM ( SELECT `greylisting`, 1 as `prio` FROM `mail_user` WHERE `server_id` = {server_id} AND `email` = '%s' + AND EXISTS (SELECT domain_id FROM mail_domain WHERE domain = SUBSTRING_INDEX('%s', '@', -1) AND active = 'y' AND server_id = {server_id}) UNION - SELECT `greylisting`, 2 as `prio` FROM `mail_forwarding` WHERE `server_id` = {server_id} AND `source` = '%s' + SELECT `greylisting`, 2 as `prio` FROM `mail_forwarding` WHERE `server_id` = {server_id} AND `source` = '%s' AND active = 'y' UNION - SELECT `greylisting`, 3 as `prio` FROM `mail_forwarding` WHERE `server_id` = {server_id} AND `source` = '@%d' ORDER BY `prio` ASC LIMIT 1 + SELECT `greylisting`, 3 as `prio` FROM `mail_forwarding` WHERE `server_id` = {server_id} AND `source` = '@%d' AND active = 'y' ORDER BY `prio` ASC LIMIT 1 ) AS rules WHERE rules.greylisting = 'y' diff --git a/install/tpl/mysql-virtual_uids.cf.master b/install/tpl/mysql-virtual_uids.cf.master index de35368c0a..6fa041bae5 100644 --- a/install/tpl/mysql-virtual_uids.cf.master +++ b/install/tpl/mysql-virtual_uids.cf.master @@ -2,4 +2,5 @@ user = {mysql_server_ispconfig_user} password = {mysql_server_ispconfig_password} dbname = {mysql_server_database} hosts = {mysql_server_ip} -query = select uid from mail_user where email = '%s' and postfix = 'y' and server_id = {server_id} +query = SELECT uid FROM mail_user WHERE email = '%s' AND postfix = 'y' AND server_id = {server_id} + AND EXISTS (SELECT domain_id FROM mail_domain WHERE domain = SUBSTRING_INDEX('%s', '@', -1) AND active = 'y' AND server_id = {server_id}) -- GitLab From a26d4faef64372d536952819d893bbb4d1a251d9 Mon Sep 17 00:00:00 2001 From: Jesse Norell Date: Wed, 18 Nov 2020 13:31:52 -0700 Subject: [PATCH 118/300] dovecot password_query should check mail_domain.active --- install/tpl/debian6_dovecot-sql.conf.master | 3 ++- install/tpl/debian_dovecot-sql.conf.master | 3 ++- install/tpl/fedora_dovecot-sql.conf.master | 3 ++- install/tpl/opensuse_dovecot-sql.conf.master | 3 ++- 4 files changed, 8 insertions(+), 4 deletions(-) diff --git a/install/tpl/debian6_dovecot-sql.conf.master b/install/tpl/debian6_dovecot-sql.conf.master index e05330dc26..72f286eace 100644 --- a/install/tpl/debian6_dovecot-sql.conf.master +++ b/install/tpl/debian6_dovecot-sql.conf.master @@ -14,7 +14,8 @@ connect = host={mysql_server_host} dbname={mysql_server_database} user={mysql_se default_pass_scheme = CRYPT # password-query with prefetch -password_query = SELECT email as user, password, maildir as userdb_home, CONCAT( maildir_format, ':', maildir, '/', IF(maildir_format='maildir','Maildir',maildir_format)) as userdb_mail, uid as userdb_uid, gid as userdb_gid, CONCAT('*:storage=', quota, 'B') AS userdb_quota_rule, CONCAT(maildir, '/.sieve') as userdb_sieve FROM mail_user WHERE (login = '%u' OR email = '%u') AND `disable%Ls` = 'n' AND server_id = '{server_id}' +password_query = SELECT email as user, password, maildir as userdb_home, CONCAT( maildir_format, ':', maildir, '/', IF(maildir_format='maildir','Maildir',maildir_format)) as userdb_mail, uid as userdb_uid, gid as userdb_gid, CONCAT('*:storage=', quota, 'B') AS userdb_quota_rule, CONCAT(maildir, '/.sieve') as userdb_sieve FROM mail_user WHERE (login = '%u' OR email = '%u') AND `disable%Ls` = 'n' AND server_id = '{server_id}' AND EXISTS (SELECT domain_id FROM mail_domain WHERE domain = '%d' AND active = 'y' AND server_id = {server_id}) + user_query = SELECT email as user, maildir as home, CONCAT( maildir_format, ':', maildir, '/', IF(maildir_format='maildir','Maildir',maildir_format)) as mail, uid, gid, CONCAT('*:storage=', quota, 'B') AS quota_rule, CONCAT(maildir, '/.sieve') as sieve FROM mail_user WHERE (login = '%u' OR email = '%u') AND `disable%Ls` = 'n' AND server_id = '{server_id}' # The iterate_query is required for the doveadm command only and works only on dovecot 2 servers. diff --git a/install/tpl/debian_dovecot-sql.conf.master b/install/tpl/debian_dovecot-sql.conf.master index 2e0858057e..4cbe22f1b9 100644 --- a/install/tpl/debian_dovecot-sql.conf.master +++ b/install/tpl/debian_dovecot-sql.conf.master @@ -121,7 +121,8 @@ connect = host={mysql_server_host} dbname={mysql_server_database} user={mysql_se default_pass_scheme = CRYPT # password-query with prefetch -password_query = SELECT email as user, password, maildir as userdb_home, CONCAT( maildir_format, ':', maildir, '/', IF(maildir_format='maildir','Maildir',maildir_format)) as userdb_mail, uid as userdb_uid, gid as userdb_gid, CONCAT('*:storage=', quota, 'B') AS userdb_quota_rule, CONCAT(maildir, '/.sieve') as userdb_sieve FROM mail_user WHERE (login = '%u' OR email = '%u') AND `disable%Ls` = 'n' AND server_id = '{server_id}' +password_query = SELECT email as user, password, maildir as userdb_home, CONCAT( maildir_format, ':', maildir, '/', IF(maildir_format='maildir','Maildir',maildir_format)) as userdb_mail, uid as userdb_uid, gid as userdb_gid, CONCAT('*:storage=', quota, 'B') AS userdb_quota_rule, CONCAT(maildir, '/.sieve') as userdb_sieve FROM mail_user WHERE (login = '%u' OR email = '%u') AND `disable%Ls` = 'n' AND server_id = '{server_id}' AND EXISTS (SELECT domain_id FROM mail_domain WHERE domain = '%d' AND active = 'y' AND server_id = {server_id}) + user_query = SELECT email as user, maildir as home, CONCAT( maildir_format, ':', maildir, '/', IF(maildir_format='maildir','Maildir',maildir_format)) as mail, uid, gid, CONCAT('*:storage=', quota, 'B') AS quota_rule, CONCAT(maildir, '/.sieve') as sieve FROM mail_user WHERE (login = '%u' OR email = '%u') AND `disable%Ls` = 'n' AND server_id = '{server_id}' # The iterate_query is required for the doveadm command only and works only on dovecot 2 servers. diff --git a/install/tpl/fedora_dovecot-sql.conf.master b/install/tpl/fedora_dovecot-sql.conf.master index 5d06d51e5d..00ef4faf25 100644 --- a/install/tpl/fedora_dovecot-sql.conf.master +++ b/install/tpl/fedora_dovecot-sql.conf.master @@ -134,7 +134,8 @@ connect = host={mysql_server_host} dbname={mysql_server_database} user={mysql_se default_pass_scheme = CRYPT # password-query with prefetch -password_query = SELECT email as user, password, maildir as userdb_home, CONCAT( maildir_format, ':', maildir, '/', IF(maildir_format='maildir','Maildir',maildir_format)) as userdb_mail, uid as userdb_uid, gid as userdb_gid, CONCAT('*:storage=', quota, 'B') AS userdb_quota_rule, CONCAT(maildir, '/.sieve') as userdb_sieve FROM mail_user WHERE (login = '%u' OR email = '%u') AND `disable%Ls` = 'n' AND server_id = '{server_id}' +password_query = SELECT email as user, password, maildir as userdb_home, CONCAT( maildir_format, ':', maildir, '/', IF(maildir_format='maildir','Maildir',maildir_format)) as userdb_mail, uid as userdb_uid, gid as userdb_gid, CONCAT('*:storage=', quota, 'B') AS userdb_quota_rule, CONCAT(maildir, '/.sieve') as userdb_sieve FROM mail_user WHERE (login = '%u' OR email = '%u') AND `disable%Ls` = 'n' AND server_id = '{server_id}' AND EXISTS (SELECT domain_id FROM mail_domain WHERE domain = '%d' AND active = 'y' AND server_id = {server_id}) + user_query = SELECT email as user, maildir as home, CONCAT( maildir_format, ':', maildir, '/', IF(maildir_format='maildir','Maildir',maildir_format)) as mail, uid, gid, CONCAT('*:storage=', quota, 'B') AS quota_rule, CONCAT(maildir, '/.sieve') as sieve FROM mail_user WHERE (login = '%u' OR email = '%u') AND `disable%Ls` = 'n' AND server_id = '{server_id}' # The iterate_query is required for the doveadm command only and works only on dovecot 2 servers. diff --git a/install/tpl/opensuse_dovecot-sql.conf.master b/install/tpl/opensuse_dovecot-sql.conf.master index 5d06d51e5d..00ef4faf25 100644 --- a/install/tpl/opensuse_dovecot-sql.conf.master +++ b/install/tpl/opensuse_dovecot-sql.conf.master @@ -134,7 +134,8 @@ connect = host={mysql_server_host} dbname={mysql_server_database} user={mysql_se default_pass_scheme = CRYPT # password-query with prefetch -password_query = SELECT email as user, password, maildir as userdb_home, CONCAT( maildir_format, ':', maildir, '/', IF(maildir_format='maildir','Maildir',maildir_format)) as userdb_mail, uid as userdb_uid, gid as userdb_gid, CONCAT('*:storage=', quota, 'B') AS userdb_quota_rule, CONCAT(maildir, '/.sieve') as userdb_sieve FROM mail_user WHERE (login = '%u' OR email = '%u') AND `disable%Ls` = 'n' AND server_id = '{server_id}' +password_query = SELECT email as user, password, maildir as userdb_home, CONCAT( maildir_format, ':', maildir, '/', IF(maildir_format='maildir','Maildir',maildir_format)) as userdb_mail, uid as userdb_uid, gid as userdb_gid, CONCAT('*:storage=', quota, 'B') AS userdb_quota_rule, CONCAT(maildir, '/.sieve') as userdb_sieve FROM mail_user WHERE (login = '%u' OR email = '%u') AND `disable%Ls` = 'n' AND server_id = '{server_id}' AND EXISTS (SELECT domain_id FROM mail_domain WHERE domain = '%d' AND active = 'y' AND server_id = {server_id}) + user_query = SELECT email as user, maildir as home, CONCAT( maildir_format, ':', maildir, '/', IF(maildir_format='maildir','Maildir',maildir_format)) as mail, uid, gid, CONCAT('*:storage=', quota, 'B') AS quota_rule, CONCAT(maildir, '/.sieve') as sieve FROM mail_user WHERE (login = '%u' OR email = '%u') AND `disable%Ls` = 'n' AND server_id = '{server_id}' # The iterate_query is required for the doveadm command only and works only on dovecot 2 servers. -- GitLab From 026c8cf7279adc845d2ab5a48d04834428fe09c5 Mon Sep 17 00:00:00 2001 From: Marius Burkard Date: Thu, 19 Nov 2020 09:45:50 +0100 Subject: [PATCH 119/300] - imported translations for BR and CZ --- interface/lib/lang/br.lng | 133 +++--- interface/lib/lang/cz.lng | 25 +- interface/web/admin/lib/lang/br.lng | 7 +- .../admin/lib/lang/br_directive_snippets.lng | 10 +- .../lib/lang/br_directive_snippets_list.lng | 1 - interface/web/admin/lib/lang/br_firewall.lng | 7 +- .../web/admin/lib/lang/br_firewall_list.lng | 1 - interface/web/admin/lib/lang/br_groups.lng | 1 - .../web/admin/lib/lang/br_groups_list.lng | 3 +- interface/web/admin/lib/lang/br_iptables.lng | 5 +- .../web/admin/lib/lang/br_iptables_list.lng | 3 +- .../web/admin/lib/lang/br_language_add.lng | 1 - .../admin/lib/lang/br_language_complete.lng | 1 - .../web/admin/lib/lang/br_language_edit.lng | 1 - .../web/admin/lib/lang/br_language_export.lng | 1 - .../web/admin/lib/lang/br_language_import.lng | 1 - .../web/admin/lib/lang/br_language_list.lng | 1 - .../web/admin/lib/lang/br_package_install.lng | 1 - .../web/admin/lib/lang/br_remote_action.lng | 5 +- .../web/admin/lib/lang/br_remote_user.lng | 96 ++-- .../admin/lib/lang/br_remote_user_list.lng | 1 - interface/web/admin/lib/lang/br_server.lng | 19 +- .../web/admin/lib/lang/br_server_config.lng | 427 +++++++++--------- .../admin/lib/lang/br_server_config_list.lng | 1 - interface/web/admin/lib/lang/br_server_ip.lng | 13 +- .../web/admin/lib/lang/br_server_ip_list.lng | 5 +- .../web/admin/lib/lang/br_server_ip_map.lng | 15 +- .../admin/lib/lang/br_server_ip_map_list.lng | 1 - .../web/admin/lib/lang/br_server_list.lng | 5 +- .../web/admin/lib/lang/br_server_php.lng | 19 +- .../web/admin/lib/lang/br_server_php_list.lng | 7 +- .../admin/lib/lang/br_software_package.lng | 3 +- .../lib/lang/br_software_package_install.lng | 1 - .../lib/lang/br_software_package_list.lng | 1 - .../web/admin/lib/lang/br_software_repo.lng | 1 - .../admin/lib/lang/br_software_repo_list.lng | 1 - .../lib/lang/br_software_update_list.lng | 1 - .../web/admin/lib/lang/br_system_config.lng | 104 ++--- .../admin/lib/lang/br_tpl_default_admin.lng | 19 +- interface/web/admin/lib/lang/br_users.lng | 13 +- .../web/admin/lib/lang/br_users_list.lng | 3 +- interface/web/admin/lib/lang/cz.lng | 11 +- .../admin/lib/lang/cz_directive_snippets.lng | 4 +- .../lib/lang/cz_directive_snippets_list.lng | 1 - interface/web/admin/lib/lang/cz_firewall.lng | 1 - .../web/admin/lib/lang/cz_firewall_list.lng | 1 - interface/web/admin/lib/lang/cz_groups.lng | 1 - .../web/admin/lib/lang/cz_groups_list.lng | 1 - interface/web/admin/lib/lang/cz_iptables.lng | 1 - .../web/admin/lib/lang/cz_iptables_list.lng | 1 - .../web/admin/lib/lang/cz_language_add.lng | 3 +- .../admin/lib/lang/cz_language_complete.lng | 1 - .../web/admin/lib/lang/cz_language_edit.lng | 1 - .../web/admin/lib/lang/cz_language_export.lng | 1 - .../web/admin/lib/lang/cz_language_import.lng | 1 - .../web/admin/lib/lang/cz_language_list.lng | 1 - .../web/admin/lib/lang/cz_package_install.lng | 1 - .../web/admin/lib/lang/cz_remote_action.lng | 7 +- .../web/admin/lib/lang/cz_remote_user.lng | 5 +- .../admin/lib/lang/cz_remote_user_list.lng | 1 - interface/web/admin/lib/lang/cz_server.lng | 5 +- .../web/admin/lib/lang/cz_server_config.lng | 62 +-- .../admin/lib/lang/cz_server_config_list.lng | 1 - interface/web/admin/lib/lang/cz_server_ip.lng | 1 - .../web/admin/lib/lang/cz_server_ip_list.lng | 1 - .../web/admin/lib/lang/cz_server_ip_map.lng | 1 - .../admin/lib/lang/cz_server_ip_map_list.lng | 1 - .../web/admin/lib/lang/cz_server_list.lng | 1 - .../web/admin/lib/lang/cz_server_php.lng | 3 +- .../web/admin/lib/lang/cz_server_php_list.lng | 1 - .../admin/lib/lang/cz_software_package.lng | 1 - .../lib/lang/cz_software_package_install.lng | 1 - .../lib/lang/cz_software_package_list.lng | 1 - .../web/admin/lib/lang/cz_software_repo.lng | 1 - .../admin/lib/lang/cz_software_repo_list.lng | 1 - .../lib/lang/cz_software_update_list.lng | 1 - .../web/admin/lib/lang/cz_system_config.lng | 14 +- .../admin/lib/lang/cz_tpl_default_admin.lng | 1 - interface/web/admin/lib/lang/cz_users.lng | 7 +- .../web/admin/lib/lang/cz_users_list.lng | 1 - interface/web/client/lib/lang/br.lng | 13 +- interface/web/client/lib/lang/br_client.lng | 185 ++++---- .../web/client/lib/lang/br_client_circle.lng | 1 - .../client/lib/lang/br_client_circle_list.lng | 1 - .../web/client/lib/lang/br_client_del.lng | 7 +- .../web/client/lib/lang/br_client_message.lng | 17 +- .../lib/lang/br_client_message_template.lng | 13 +- .../lang/br_client_message_template_list.lng | 3 +- .../client/lib/lang/br_client_template.lng | 146 +++--- .../lib/lang/br_client_template_list.lng | 1 - .../web/client/lib/lang/br_clients_list.lng | 1 - interface/web/client/lib/lang/br_domain.lng | 3 +- .../web/client/lib/lang/br_domain_list.lng | 1 - interface/web/client/lib/lang/br_reseller.lng | 165 ++++--- .../web/client/lib/lang/br_resellers_list.lng | 1 - interface/web/client/lib/lang/cz.lng | 9 +- interface/web/client/lib/lang/cz_client.lng | 9 +- .../web/client/lib/lang/cz_client_circle.lng | 1 - .../client/lib/lang/cz_client_circle_list.lng | 1 - .../web/client/lib/lang/cz_client_del.lng | 1 - .../web/client/lib/lang/cz_client_message.lng | 1 - .../lib/lang/cz_client_message_template.lng | 1 - .../lang/cz_client_message_template_list.lng | 3 +- .../client/lib/lang/cz_client_template.lng | 3 +- .../lib/lang/cz_client_template_list.lng | 3 +- .../web/client/lib/lang/cz_clients_list.lng | 1 - interface/web/client/lib/lang/cz_domain.lng | 1 - .../web/client/lib/lang/cz_domain_list.lng | 1 - interface/web/client/lib/lang/cz_reseller.lng | 9 +- .../web/client/lib/lang/cz_resellers_list.lng | 1 - interface/web/dashboard/lib/lang/br.lng | 1 - .../lib/lang/br_dashlet_customer.lng | 1 - .../lib/lang/br_dashlet_databasequota.lng | 3 +- .../dashboard/lib/lang/br_dashlet_donate.lng | 1 - .../br_dashlet_invoice_client_settings.lng | 1 - .../lib/lang/br_dashlet_invoices.lng | 1 - .../dashboard/lib/lang/br_dashlet_limits.lng | 41 +- .../lib/lang/br_dashlet_mailquota.lng | 7 +- .../dashboard/lib/lang/br_dashlet_modules.lng | 1 - .../lib/lang/br_dashlet_products.lng | 1 - .../dashboard/lib/lang/br_dashlet_quota.lng | 1 - .../dashboard/lib/lang/br_dashlet_shop.lng | 1 - interface/web/dashboard/lib/lang/cz.lng | 1 - .../lib/lang/cz_dashlet_customer.lng | 1 - .../lib/lang/cz_dashlet_databasequota.lng | 1 - .../dashboard/lib/lang/cz_dashlet_donate.lng | 1 - .../cz_dashlet_invoice_client_settings.lng | 1 - .../lib/lang/cz_dashlet_invoices.lng | 1 - .../dashboard/lib/lang/cz_dashlet_limits.lng | 1 - .../lib/lang/cz_dashlet_mailquota.lng | 1 - .../dashboard/lib/lang/cz_dashlet_modules.lng | 1 - .../lib/lang/cz_dashlet_products.lng | 1 - .../dashboard/lib/lang/cz_dashlet_quota.lng | 1 - .../dashboard/lib/lang/cz_dashlet_shop.lng | 1 - interface/web/dns/lib/lang/br.lng | 36 +- interface/web/dns/lib/lang/br_dns_a.lng | 11 +- interface/web/dns/lib/lang/br_dns_a_list.lng | 1 - interface/web/dns/lib/lang/br_dns_aaaa.lng | 11 +- interface/web/dns/lib/lang/br_dns_alias.lng | 11 +- interface/web/dns/lib/lang/br_dns_caa.lng | 7 +- interface/web/dns/lib/lang/br_dns_cname.lng | 11 +- interface/web/dns/lib/lang/br_dns_dkim.lng | 12 +- interface/web/dns/lib/lang/br_dns_dmarc.lng | 26 +- interface/web/dns/lib/lang/br_dns_dname.lng | 11 +- interface/web/dns/lib/lang/br_dns_ds.lng | 11 +- interface/web/dns/lib/lang/br_dns_hinfo.lng | 10 +- interface/web/dns/lib/lang/br_dns_import.lng | 27 +- interface/web/dns/lib/lang/br_dns_loc.lng | 10 +- interface/web/dns/lib/lang/br_dns_mx.lng | 13 +- interface/web/dns/lib/lang/br_dns_naptr.lng | 35 +- interface/web/dns/lib/lang/br_dns_ns.lng | 9 +- interface/web/dns/lib/lang/br_dns_ptr.lng | 9 +- interface/web/dns/lib/lang/br_dns_rp.lng | 9 +- interface/web/dns/lib/lang/br_dns_slave.lng | 10 +- .../dns/lib/lang/br_dns_slave_admin_list.lng | 3 +- .../web/dns/lib/lang/br_dns_slave_list.lng | 3 +- interface/web/dns/lib/lang/br_dns_soa.lng | 25 +- .../dns/lib/lang/br_dns_soa_admin_list.lng | 8 +- .../web/dns/lib/lang/br_dns_soa_list.lng | 7 +- interface/web/dns/lib/lang/br_dns_spf.lng | 36 +- interface/web/dns/lib/lang/br_dns_srv.lng | 11 +- interface/web/dns/lib/lang/br_dns_sshfp.lng | 10 +- .../web/dns/lib/lang/br_dns_template.lng | 5 +- .../web/dns/lib/lang/br_dns_template_list.lng | 1 - interface/web/dns/lib/lang/br_dns_tlsa.lng | 11 +- interface/web/dns/lib/lang/br_dns_txt.lng | 9 +- interface/web/dns/lib/lang/br_dns_wizard.lng | 41 +- interface/web/dns/lib/lang/cz.lng | 1 - interface/web/dns/lib/lang/cz_dns_a.lng | 3 +- interface/web/dns/lib/lang/cz_dns_a_list.lng | 1 - interface/web/dns/lib/lang/cz_dns_aaaa.lng | 3 +- interface/web/dns/lib/lang/cz_dns_alias.lng | 1 - interface/web/dns/lib/lang/cz_dns_caa.lng | 1 - interface/web/dns/lib/lang/cz_dns_cname.lng | 3 +- interface/web/dns/lib/lang/cz_dns_dkim.lng | 1 - interface/web/dns/lib/lang/cz_dns_dmarc.lng | 7 +- interface/web/dns/lib/lang/cz_dns_dname.lng | 1 - interface/web/dns/lib/lang/cz_dns_ds.lng | 3 +- interface/web/dns/lib/lang/cz_dns_hinfo.lng | 1 - interface/web/dns/lib/lang/cz_dns_import.lng | 1 - interface/web/dns/lib/lang/cz_dns_loc.lng | 3 +- interface/web/dns/lib/lang/cz_dns_mx.lng | 1 - interface/web/dns/lib/lang/cz_dns_naptr.lng | 19 +- interface/web/dns/lib/lang/cz_dns_ns.lng | 1 - interface/web/dns/lib/lang/cz_dns_ptr.lng | 1 - interface/web/dns/lib/lang/cz_dns_rp.lng | 1 - interface/web/dns/lib/lang/cz_dns_slave.lng | 1 - .../dns/lib/lang/cz_dns_slave_admin_list.lng | 1 - .../web/dns/lib/lang/cz_dns_slave_list.lng | 1 - interface/web/dns/lib/lang/cz_dns_soa.lng | 7 +- .../dns/lib/lang/cz_dns_soa_admin_list.lng | 3 +- .../web/dns/lib/lang/cz_dns_soa_list.lng | 1 - interface/web/dns/lib/lang/cz_dns_spf.lng | 11 +- interface/web/dns/lib/lang/cz_dns_srv.lng | 1 - interface/web/dns/lib/lang/cz_dns_sshfp.lng | 3 +- .../web/dns/lib/lang/cz_dns_template.lng | 1 - .../web/dns/lib/lang/cz_dns_template_list.lng | 1 - interface/web/dns/lib/lang/cz_dns_tlsa.lng | 3 +- interface/web/dns/lib/lang/cz_dns_txt.lng | 1 - interface/web/dns/lib/lang/cz_dns_wizard.lng | 1 - interface/web/help/lib/lang/br.lng | 1 - interface/web/help/lib/lang/br_faq_form.lng | 1 - .../lib/lang/br_faq_manage_questions_list.lng | 1 - .../help/lib/lang/br_faq_sections_form.lng | 1 - .../web/help/lib/lang/br_help_faq_list.lng | 1 - .../lib/lang/br_help_faq_sections_list.lng | 1 - .../web/help/lib/lang/br_support_message.lng | 13 +- .../help/lib/lang/br_support_message_list.lng | 1 - interface/web/help/lib/lang/cz.lng | 1 - interface/web/help/lib/lang/cz_faq_form.lng | 1 - .../lib/lang/cz_faq_manage_questions_list.lng | 1 - .../help/lib/lang/cz_faq_sections_form.lng | 1 - .../web/help/lib/lang/cz_help_faq_list.lng | 1 - .../lib/lang/cz_help_faq_sections_list.lng | 1 - .../web/help/lib/lang/cz_support_message.lng | 11 +- .../help/lib/lang/cz_support_message_list.lng | 1 - interface/web/login/lib/lang/br.lng | 17 +- interface/web/login/lib/lang/br_login_as.lng | 9 +- interface/web/login/lib/lang/cz_login_as.lng | 5 +- interface/web/mail/lib/lang/br.lng | 63 ++- .../mail/lib/lang/br_backup_stats_list.lng | 1 - interface/web/mail/lib/lang/br_mail_alias.lng | 17 +- .../web/mail/lib/lang/br_mail_alias_list.lng | 7 +- .../web/mail/lib/lang/br_mail_aliasdomain.lng | 3 +- .../lib/lang/br_mail_aliasdomain_list.lng | 2 - .../web/mail/lib/lang/br_mail_backup_list.lng | 3 +- .../web/mail/lib/lang/br_mail_blacklist.lng | 7 +- .../mail/lib/lang/br_mail_blacklist_list.lng | 5 +- .../mail/lib/lang/br_mail_content_filter.lng | 3 +- .../lib/lang/br_mail_content_filter_list.lng | 3 +- .../web/mail/lib/lang/br_mail_domain.lng | 13 +- .../lib/lang/br_mail_domain_admin_list.lng | 3 +- .../lib/lang/br_mail_domain_catchall_list.lng | 5 +- .../web/mail/lib/lang/br_mail_domain_list.lng | 3 +- .../web/mail/lib/lang/br_mail_forward.lng | 19 +- .../mail/lib/lang/br_mail_forward_list.lng | 7 +- interface/web/mail/lib/lang/br_mail_get.lng | 17 +- .../web/mail/lib/lang/br_mail_get_list.lng | 3 +- .../web/mail/lib/lang/br_mail_mailinglist.lng | 15 +- .../lib/lang/br_mail_mailinglist_list.lng | 3 +- .../mail/lib/lang/br_mail_relay_recipient.lng | 5 +- .../lib/lang/br_mail_relay_recipient_list.lng | 1 - .../web/mail/lib/lang/br_mail_spamfilter.lng | 17 +- .../mail/lib/lang/br_mail_spamfilter_list.lng | 3 +- .../web/mail/lib/lang/br_mail_transport.lng | 3 +- .../mail/lib/lang/br_mail_transport_list.lng | 3 +- interface/web/mail/lib/lang/br_mail_user.lng | 61 ++- .../web/mail/lib/lang/br_mail_user_filter.lng | 15 +- .../lib/lang/br_mail_user_filter_list.lng | 1 - .../web/mail/lib/lang/br_mail_user_list.lng | 9 +- .../mail/lib/lang/br_mail_user_stats_list.lng | 5 +- .../web/mail/lib/lang/br_mail_whitelist.lng | 7 +- .../mail/lib/lang/br_mail_whitelist_list.lng | 5 +- .../mail/lib/lang/br_spamfilter_blacklist.lng | 7 +- .../lib/lang/br_spamfilter_blacklist_list.lng | 5 +- .../mail/lib/lang/br_spamfilter_config.lng | 3 +- .../lib/lang/br_spamfilter_config_list.lng | 1 - .../mail/lib/lang/br_spamfilter_policy.lng | 13 +- .../lib/lang/br_spamfilter_policy_list.lng | 1 - .../web/mail/lib/lang/br_spamfilter_users.lng | 7 +- .../lib/lang/br_spamfilter_users_list.lng | 5 +- .../mail/lib/lang/br_spamfilter_whitelist.lng | 7 +- .../lib/lang/br_spamfilter_whitelist_list.lng | 5 +- .../lib/lang/br_user_quota_stats_list.lng | 5 +- .../web/mail/lib/lang/br_xmpp_domain.lng | 33 +- .../lib/lang/br_xmpp_domain_admin_list.lng | 1 - .../web/mail/lib/lang/br_xmpp_domain_list.lng | 3 +- interface/web/mail/lib/lang/br_xmpp_user.lng | 7 +- .../web/mail/lib/lang/br_xmpp_user_list.lng | 3 +- interface/web/mail/lib/lang/cz.lng | 9 +- .../mail/lib/lang/cz_backup_stats_list.lng | 1 - interface/web/mail/lib/lang/cz_mail_alias.lng | 15 +- .../web/mail/lib/lang/cz_mail_alias_list.lng | 1 - .../web/mail/lib/lang/cz_mail_aliasdomain.lng | 1 - .../lib/lang/cz_mail_aliasdomain_list.lng | 1 - .../web/mail/lib/lang/cz_mail_backup_list.lng | 1 - .../web/mail/lib/lang/cz_mail_blacklist.lng | 1 - .../mail/lib/lang/cz_mail_blacklist_list.lng | 1 - .../mail/lib/lang/cz_mail_content_filter.lng | 1 - .../lib/lang/cz_mail_content_filter_list.lng | 3 +- .../web/mail/lib/lang/cz_mail_domain.lng | 1 - .../lib/lang/cz_mail_domain_admin_list.lng | 1 - .../mail/lib/lang/cz_mail_domain_catchall.lng | 3 +- .../lib/lang/cz_mail_domain_catchall_list.lng | 1 - .../web/mail/lib/lang/cz_mail_domain_list.lng | 1 - .../web/mail/lib/lang/cz_mail_forward.lng | 3 +- .../mail/lib/lang/cz_mail_forward_list.lng | 1 - interface/web/mail/lib/lang/cz_mail_get.lng | 3 +- .../web/mail/lib/lang/cz_mail_get_list.lng | 1 - .../web/mail/lib/lang/cz_mail_mailinglist.lng | 3 +- .../lib/lang/cz_mail_mailinglist_list.lng | 1 - .../mail/lib/lang/cz_mail_relay_recipient.lng | 1 - .../lib/lang/cz_mail_relay_recipient_list.lng | 1 - .../web/mail/lib/lang/cz_mail_spamfilter.lng | 1 - .../mail/lib/lang/cz_mail_spamfilter_list.lng | 1 - .../web/mail/lib/lang/cz_mail_transport.lng | 1 - .../mail/lib/lang/cz_mail_transport_list.lng | 1 - interface/web/mail/lib/lang/cz_mail_user.lng | 30 +- .../web/mail/lib/lang/cz_mail_user_filter.lng | 7 +- .../lib/lang/cz_mail_user_filter_list.lng | 1 - .../web/mail/lib/lang/cz_mail_user_list.lng | 1 - .../mail/lib/lang/cz_mail_user_stats_list.lng | 1 - .../web/mail/lib/lang/cz_mail_whitelist.lng | 1 - .../mail/lib/lang/cz_mail_whitelist_list.lng | 1 - .../mail/lib/lang/cz_spamfilter_blacklist.lng | 1 - .../lib/lang/cz_spamfilter_blacklist_list.lng | 1 - .../mail/lib/lang/cz_spamfilter_config.lng | 3 +- .../lib/lang/cz_spamfilter_config_list.lng | 1 - .../mail/lib/lang/cz_spamfilter_policy.lng | 25 +- .../lib/lang/cz_spamfilter_policy_list.lng | 3 +- .../web/mail/lib/lang/cz_spamfilter_users.lng | 1 - .../lib/lang/cz_spamfilter_users_list.lng | 1 - .../mail/lib/lang/cz_spamfilter_whitelist.lng | 1 - .../lib/lang/cz_spamfilter_whitelist_list.lng | 1 - .../lib/lang/cz_user_quota_stats_list.lng | 1 - .../web/mail/lib/lang/cz_xmpp_domain.lng | 1 - .../lib/lang/cz_xmpp_domain_admin_list.lng | 1 - .../web/mail/lib/lang/cz_xmpp_domain_list.lng | 1 - interface/web/mail/lib/lang/cz_xmpp_user.lng | 1 - .../web/mail/lib/lang/cz_xmpp_user_list.lng | 1 - interface/web/mailuser/lib/lang/br.lng | 5 +- interface/web/mailuser/lib/lang/br_index.lng | 13 +- .../lib/lang/br_mail_user_autoresponder.lng | 3 +- .../web/mailuser/lib/lang/br_mail_user_cc.lng | 15 +- .../mailuser/lib/lang/br_mail_user_filter.lng | 18 +- .../lib/lang/br_mail_user_filter_list.lng | 5 +- .../lib/lang/br_mail_user_password.lng | 7 +- .../lib/lang/br_mail_user_spamfilter.lng | 5 +- interface/web/mailuser/lib/lang/cz.lng | 1 - interface/web/mailuser/lib/lang/cz_index.lng | 1 - .../lib/lang/cz_mail_user_autoresponder.lng | 3 +- .../web/mailuser/lib/lang/cz_mail_user_cc.lng | 3 +- .../mailuser/lib/lang/cz_mail_user_filter.lng | 8 +- .../lib/lang/cz_mail_user_filter_list.lng | 1 - .../lib/lang/cz_mail_user_password.lng | 1 - .../lib/lang/cz_mail_user_spamfilter.lng | 3 +- interface/web/monitor/lib/lang/br.lng | 86 ++-- .../web/monitor/lib/lang/br_datalog_list.lng | 1 - .../lib/lang/br_dataloghistory_list.lng | 1 - .../lib/lang/br_dataloghistory_undo.lng | 1 - .../lib/lang/br_dataloghistory_view.lng | 4 +- .../web/monitor/lib/lang/br_syslog_list.lng | 1 - interface/web/monitor/lib/lang/cz.lng | 109 +++-- .../web/monitor/lib/lang/cz_datalog_list.lng | 1 - .../lib/lang/cz_dataloghistory_list.lng | 1 - .../lib/lang/cz_dataloghistory_undo.lng | 1 - .../lib/lang/cz_dataloghistory_view.lng | 4 +- .../web/monitor/lib/lang/cz_syslog_list.lng | 5 +- interface/web/sites/lib/lang/br.lng | 23 +- interface/web/sites/lib/lang/br_aps.lng | 15 +- .../sites/lib/lang/br_aps_instances_list.lng | 1 - .../sites/lib/lang/br_aps_packages_list.lng | 1 - .../lib/lang/br_aps_update_packagelist.lng | 3 +- .../sites/lib/lang/br_backup_stats_list.lng | 1 - interface/web/sites/lib/lang/br_cron.lng | 14 +- interface/web/sites/lib/lang/br_cron_list.lng | 5 +- interface/web/sites/lib/lang/br_database.lng | 39 +- .../sites/lib/lang/br_database_admin_list.lng | 5 +- .../web/sites/lib/lang/br_database_list.lng | 7 +- .../lib/lang/br_database_quota_stats_list.lng | 3 +- .../web/sites/lib/lang/br_database_user.lng | 15 +- .../lib/lang/br_database_user_admin_list.lng | 3 +- .../sites/lib/lang/br_database_user_list.lng | 5 +- .../lib/lang/br_ftp_sites_stats_list.lng | 1 - interface/web/sites/lib/lang/br_ftp_user.lng | 13 +- .../web/sites/lib/lang/br_ftp_user_list.lng | 3 +- .../web/sites/lib/lang/br_shell_user.lng | 20 +- .../web/sites/lib/lang/br_shell_user_list.lng | 3 +- .../lib/lang/br_user_quota_stats_list.lng | 3 +- .../web/sites/lib/lang/br_web_aliasdomain.lng | 69 ++- .../lib/lang/br_web_aliasdomain_list.lng | 3 +- .../web/sites/lib/lang/br_web_backup_list.lng | 29 +- .../web/sites/lib/lang/br_web_childdomain.lng | 59 ++- .../lib/lang/br_web_childdomain_list.lng | 3 +- .../lib/lang/br_web_directive_snippets.lng | 1 - .../web/sites/lib/lang/br_web_domain.lng | 86 ++-- .../lib/lang/br_web_domain_admin_list.lng | 1 - .../web/sites/lib/lang/br_web_domain_list.lng | 1 - .../web/sites/lib/lang/br_web_folder.lng | 2 +- .../web/sites/lib/lang/br_web_folder_list.lng | 3 +- .../web/sites/lib/lang/br_web_folder_user.lng | 4 +- .../lib/lang/br_web_folder_user_list.lng | 5 +- .../lib/lang/br_web_sites_stats_list.lng | 1 - .../web/sites/lib/lang/br_web_subdomain.lng | 23 +- .../sites/lib/lang/br_web_subdomain_list.lng | 1 - .../sites/lib/lang/br_web_vhost_domain.lng | 147 +++--- .../lang/br_web_vhost_domain_admin_list.lng | 1 - .../lib/lang/br_web_vhost_domain_list.lng | 1 - .../sites/lib/lang/br_web_vhost_subdomain.lng | 84 ++-- .../lib/lang/br_web_vhost_subdomain_list.lng | 1 - .../web/sites/lib/lang/br_webdav_user.lng | 12 +- .../sites/lib/lang/br_webdav_user_list.lng | 3 +- interface/web/sites/lib/lang/cz.lng | 3 +- interface/web/sites/lib/lang/cz_aps.lng | 17 +- .../sites/lib/lang/cz_aps_instances_list.lng | 1 - .../sites/lib/lang/cz_aps_packages_list.lng | 1 - .../lib/lang/cz_aps_update_packagelist.lng | 1 - .../sites/lib/lang/cz_backup_stats_list.lng | 3 +- interface/web/sites/lib/lang/cz_cron.lng | 5 +- interface/web/sites/lib/lang/cz_cron_list.lng | 1 - interface/web/sites/lib/lang/cz_database.lng | 3 +- .../sites/lib/lang/cz_database_admin_list.lng | 3 +- .../web/sites/lib/lang/cz_database_list.lng | 1 - .../lib/lang/cz_database_quota_stats_list.lng | 1 - .../web/sites/lib/lang/cz_database_user.lng | 1 - .../lib/lang/cz_database_user_admin_list.lng | 1 - .../sites/lib/lang/cz_database_user_list.lng | 1 - .../lib/lang/cz_ftp_sites_stats_list.lng | 1 - interface/web/sites/lib/lang/cz_ftp_user.lng | 1 - .../web/sites/lib/lang/cz_ftp_user_list.lng | 1 - .../web/sites/lib/lang/cz_shell_user.lng | 1 - .../web/sites/lib/lang/cz_shell_user_list.lng | 1 - .../lib/lang/cz_user_quota_stats_list.lng | 1 - .../web/sites/lib/lang/cz_web_aliasdomain.lng | 5 +- .../lib/lang/cz_web_aliasdomain_list.lng | 1 - .../web/sites/lib/lang/cz_web_backup_list.lng | 29 +- .../web/sites/lib/lang/cz_web_childdomain.lng | 9 +- .../lib/lang/cz_web_childdomain_list.lng | 1 - .../lib/lang/cz_web_directive_snippets.lng | 1 - .../web/sites/lib/lang/cz_web_domain.lng | 5 +- .../lib/lang/cz_web_domain_admin_list.lng | 1 - .../web/sites/lib/lang/cz_web_domain_list.lng | 1 - .../web/sites/lib/lang/cz_web_folder.lng | 1 - .../web/sites/lib/lang/cz_web_folder_list.lng | 1 - .../web/sites/lib/lang/cz_web_folder_user.lng | 1 - .../lib/lang/cz_web_folder_user_list.lng | 1 - .../lib/lang/cz_web_sites_stats_list.lng | 1 - .../web/sites/lib/lang/cz_web_subdomain.lng | 5 +- .../sites/lib/lang/cz_web_subdomain_list.lng | 1 - .../sites/lib/lang/cz_web_vhost_domain.lng | 32 +- .../lang/cz_web_vhost_domain_admin_list.lng | 1 - .../lib/lang/cz_web_vhost_domain_list.lng | 1 - .../sites/lib/lang/cz_web_vhost_subdomain.lng | 3 +- .../lib/lang/cz_web_vhost_subdomain_list.lng | 1 - .../web/sites/lib/lang/cz_webdav_user.lng | 1 - .../sites/lib/lang/cz_webdav_user_list.lng | 1 - .../lib/lang/br_strengthmeter.lng | 1 - .../lib/lang/cz_strengthmeter.lng | 1 - interface/web/tools/lib/lang/br.lng | 5 +- .../tools/lib/lang/br_import_ispconfig.lng | 28 +- .../web/tools/lib/lang/br_import_vpopmail.lng | 6 +- interface/web/tools/lib/lang/br_index.lng | 3 +- interface/web/tools/lib/lang/br_interface.lng | 10 + interface/web/tools/lib/lang/br_resync.lng | 57 ++- .../web/tools/lib/lang/br_tpl_default.lng | 3 +- .../web/tools/lib/lang/br_usersettings.lng | 6 +- interface/web/tools/lib/lang/cz.lng | 1 - .../tools/lib/lang/cz_import_ispconfig.lng | 2 +- .../web/tools/lib/lang/cz_import_vpopmail.lng | 5 +- interface/web/tools/lib/lang/cz_index.lng | 1 - interface/web/tools/lib/lang/cz_interface.lng | 10 + interface/web/tools/lib/lang/cz_resync.lng | 1 - .../web/tools/lib/lang/cz_tpl_default.lng | 1 - .../web/tools/lib/lang/cz_usersettings.lng | 10 +- interface/web/vm/lib/lang/br.lng | 1 - .../web/vm/lib/lang/br_openvz_action.lng | 1 - interface/web/vm/lib/lang/br_openvz_ip.lng | 1 - .../web/vm/lib/lang/br_openvz_ip_list.lng | 1 - .../web/vm/lib/lang/br_openvz_ostemplate.lng | 5 +- .../vm/lib/lang/br_openvz_ostemplate_list.lng | 1 - .../web/vm/lib/lang/br_openvz_template.lng | 115 +++-- .../vm/lib/lang/br_openvz_template_list.lng | 1 - interface/web/vm/lib/lang/br_openvz_vm.lng | 33 +- .../web/vm/lib/lang/br_openvz_vm_list.lng | 1 - interface/web/vm/lib/lang/cz.lng | 1 - .../web/vm/lib/lang/cz_openvz_action.lng | 1 - interface/web/vm/lib/lang/cz_openvz_ip.lng | 1 - .../web/vm/lib/lang/cz_openvz_ip_list.lng | 1 - .../web/vm/lib/lang/cz_openvz_ostemplate.lng | 1 - .../vm/lib/lang/cz_openvz_ostemplate_list.lng | 1 - .../web/vm/lib/lang/cz_openvz_template.lng | 1 - .../vm/lib/lang/cz_openvz_template_list.lng | 1 - interface/web/vm/lib/lang/cz_openvz_vm.lng | 1 - .../web/vm/lib/lang/cz_openvz_vm_list.lng | 1 - 474 files changed, 2043 insertions(+), 2447 deletions(-) create mode 100644 interface/web/tools/lib/lang/br_interface.lng create mode 100644 interface/web/tools/lib/lang/cz_interface.lng diff --git a/interface/lib/lang/br.lng b/interface/lib/lang/br.lng index 92507a6a7c..e47df8250d 100644 --- a/interface/lib/lang/br.lng +++ b/interface/lib/lang/br.lng @@ -11,10 +11,10 @@ $wb['number_format_dec_point'] = '.'; $wb['number_format_thousands_sep'] = '.'; $wb['error_301'] = 'Módulo não permitido para o usuário atual.'; $wb['error_302'] = 'Módulo inválido.'; -$wb['error_1001'] = 'Usuário e/ou senha está em branco!'; -$wb['error_1002'] = 'Usuário e/ou senha incorretos!'; +$wb['error_1001'] = 'Usuário e/ou senha está vazio!'; +$wb['error_1002'] = 'Usuário e/ou senha incorreto!'; $wb['error_1003'] = 'Usuário desabilitado!'; -$wb['delete_confirmation'] = 'Você tem certeza que deseja remover o registro?'; +$wb['delete_confirmation'] = 'Você tem certeza que deseja remover este registro?'; $wb['error_no_view_permission'] = 'Você não tem permissão para visualizar este registro ou o registro não existe!'; $wb['error_no_delete_permission'] = 'Você não tem permissão para remover este registro!'; $wb['page_txt'] = 'Página'; @@ -29,14 +29,14 @@ $wb['btn_save_txt'] = 'Salvar'; $wb['btn_cancel_txt'] = 'Cancelar'; $wb['top_menu_system'] = 'Sistema'; $wb['top_menu_client'] = 'Clientes'; -$wb['top_menu_email'] = 'e-Mail'; +$wb['top_menu_email'] = 'eMail'; $wb['top_menu_monitor'] = 'Monitor'; $wb['top_menu_sites'] = 'Sites'; $wb['top_menu_dns'] = 'DNS'; $wb['top_menu_tools'] = 'Ferramentas'; $wb['top_menu_help'] = 'Ajuda'; $wb['top_menu_billing'] = 'Faturamento'; -$wb['top_menu_mailuser'] = 'Contas de e-mail'; +$wb['top_menu_mailuser'] = 'Contas de email'; $wb['top_menu_domain'] = 'Domínios'; $wb['top_menu_dashboard'] = 'Início'; $wb['top_menu_vm'] = 'VPS'; @@ -78,80 +78,80 @@ $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['global_tabchange_warning_txt'] = 'Para alterar dados nesta aba clique OK. Cancelar descarta todas as alterações.'; -$wb['global_tabchange_discard_txt'] = 'Você não salvou as alterações nesta aba. Todas as alterações serão descartadas caso prossiga.'; -$wb['datalog_changes_txt'] = 'As alterações ainda não propagaram em todos os servidores:'; -$wb['datalog_changes_end_txt'] = 'Gravar alterações pode levar alguns minutos. Por favor, seja paciente.'; +$wb['global_tabchange_warning_txt'] = 'Para modificar dados nesta aba clique OK. Cancelar descarta todas as modificações.'; +$wb['global_tabchange_discard_txt'] = 'Você não salvou as modificações nesta aba. Todas as modificações serão descartadas caso prossiga.'; +$wb['datalog_changes_txt'] = 'As modificações ainda não propagaram em todos os servidores:'; +$wb['datalog_changes_end_txt'] = 'Gravar modificações pode levar alguns minutos. Por favor, seja paciente.'; $wb['datalog_status_i_web_database'] = 'Adicionar novo banco de dados'; $wb['datalog_status_u_web_database'] = 'Atualizar banco de dados'; $wb['datalog_status_d_web_database'] = 'Remover banco de dados'; -$wb['datalog_status_i_web_database_user'] = 'Adicionar novo usuário de banco de dados'; -$wb['datalog_status_u_web_database_user'] = 'Atualizar usuário de banco de dados'; -$wb['datalog_status_d_web_database_user'] = 'Remover usuário de banco de dados'; +$wb['datalog_status_i_web_database_user'] = 'Adicionar novo usuário do Banco de Dados'; +$wb['datalog_status_u_web_database_user'] = 'Atualizar usuário do Banco de Dados'; +$wb['datalog_status_d_web_database_user'] = 'Remover usuário do Banco de Dados'; $wb['datalog_status_i_web_domain'] = 'Adicionar site'; $wb['datalog_status_u_web_domain'] = 'Atualizar site'; $wb['datalog_status_d_web_domain'] = 'Remover site'; -$wb['datalog_status_i_ftp_user'] = 'Adicionar usuário ftp'; -$wb['datalog_status_u_ftp_user'] = 'Atualizar usuário ftp'; -$wb['datalog_status_d_ftp_user'] = 'Remover usuário ftp'; -$wb['datalog_status_i_mail_domain'] = 'Adicionar domínio de e-mail'; -$wb['datalog_status_u_mail_domain'] = 'Atualizar domínio de e-mail'; -$wb['datalog_status_d_mail_domain'] = 'Remover domínio de e-mail'; -$wb['datalog_status_i_mail_user'] = 'Adicionar conta de e-mail'; -$wb['datalog_status_u_mail_user'] = 'Atualizar conta de e-mail'; -$wb['datalog_status_d_mail_user'] = 'Remover conta de e-mail'; +$wb['datalog_status_i_ftp_user'] = 'Adicionar usuário FTP'; +$wb['datalog_status_u_ftp_user'] = 'Atualizar usuário FTP'; +$wb['datalog_status_d_ftp_user'] = 'Remover usuário FTP'; +$wb['datalog_status_i_mail_domain'] = 'Adicionar domínio de email'; +$wb['datalog_status_u_mail_domain'] = 'Atualizar domínio de email'; +$wb['datalog_status_d_mail_domain'] = 'Remover domínio de email'; +$wb['datalog_status_i_mail_user'] = 'Adicionar conta de email'; +$wb['datalog_status_u_mail_user'] = 'Atualizar conta de email'; +$wb['datalog_status_d_mail_user'] = 'Remover conta de email'; $wb['datalog_status_i_spamfilter_users'] = 'Adicionar filtros anti-spam'; $wb['datalog_status_u_spamfilter_users'] = 'Atualizar filtros anti-spam'; $wb['datalog_status_d_spamfilter_users'] = 'Remover filtros anti-spam'; -$wb['datalog_status_i_mail_forwarding'] = 'Adicionar endereço de e-mail'; -$wb['datalog_status_u_mail_forwarding'] = 'Atualizar endereço de e-mail'; -$wb['datalog_status_d_mail_forwarding'] = 'Remover endereço de e-mail'; -$wb['datalog_status_i_dns_rr'] = 'Adicionar registro dns'; -$wb['datalog_status_u_dns_rr'] = 'Atualizar registro dns'; -$wb['datalog_status_d_dns_rr'] = 'Remover registro dns'; -$wb['datalog_status_i_dns_soa'] = 'Adicionar zona dns'; -$wb['datalog_status_u_dns_soa'] = 'Atualizar zona dns'; -$wb['datalog_status_d_dns_soa'] = 'Remover zona dns'; -$wb['datalog_status_i_dns_slave'] = 'Create new secondary DNS zone'; -$wb['datalog_status_u_dns_slave'] = 'Update secondary DNS zone'; -$wb['datalog_status_d_dns_slave'] = 'Delete secondary DNS zone'; -$wb['datalog_status_i_firewall'] = 'Create new firewall rule'; -$wb['datalog_status_u_firewall'] = 'Update firewall rule'; -$wb['datalog_status_d_firewall'] = 'Delete firewall rule'; -$wb['datalog_status_u_server'] = 'Update server settings'; -$wb['datalog_status_d_server'] = 'Delete server'; -$wb['datalog_status_i_cron'] = 'Adicionar tarefa no cron'; -$wb['datalog_status_u_cron'] = 'Atualizar tarefa no cron'; +$wb['datalog_status_i_mail_forwarding'] = 'Adicionar endereço de email'; +$wb['datalog_status_u_mail_forwarding'] = 'Atualizar endereço de email'; +$wb['datalog_status_d_mail_forwarding'] = 'Remover endereço de email'; +$wb['datalog_status_i_dns_rr'] = 'Adicionar registro DNS'; +$wb['datalog_status_u_dns_rr'] = 'Atualizar registro DNS'; +$wb['datalog_status_d_dns_rr'] = 'Remover registro DNS'; +$wb['datalog_status_i_dns_soa'] = 'Adicionar zona DNS'; +$wb['datalog_status_u_dns_soa'] = 'Atualizar zona DNS'; +$wb['datalog_status_d_dns_soa'] = 'Remover zona DNS'; +$wb['datalog_status_i_dns_slave'] = 'Adicionar nova zona DNS secundária'; +$wb['datalog_status_u_dns_slave'] = 'Atualizar zona DNS secundária'; +$wb['datalog_status_d_dns_slave'] = 'Remover zona DNS secundária'; +$wb['datalog_status_i_firewall'] = 'Adicionar nova regra de Firewall'; +$wb['datalog_status_u_firewall'] = 'Atualizar regra de Firewall'; +$wb['datalog_status_d_firewall'] = 'Remover regra de Firewall'; +$wb['datalog_status_u_server'] = 'Atualizar configurações do servidor'; +$wb['datalog_status_d_server'] = 'Remover servidor'; +$wb['datalog_status_i_cron'] = 'Adicionar tarefa no Cron'; +$wb['datalog_status_u_cron'] = 'Atualizar tarefa no Cron'; $wb['datalog_status_i_server_ip'] = 'Add server IP'; $wb['datalog_status_u_server_ip'] = 'Update server IP'; $wb['datalog_status_d_server_ip'] = 'Delete server IP'; -$wb['datalog_status_d_cron'] = 'Remover tarefa no cron'; -$wb['datalog_status_i_mail_get'] = 'Adicionar conta de busca de e-mail'; -$wb['datalog_status_u_mail_get'] = 'Atualizar conta de busca de e-mail'; -$wb['datalog_status_d_mail_get'] = 'Remover conta de busca de e-mail'; -$wb['datalog_status_i_mail_mailinglist'] = 'Adicionar lista de e-mails'; -$wb['datalog_status_u_mail_mailinglist'] = 'Atualizar lista de e-mails'; -$wb['datalog_status_d_mail_mailinglist'] = 'Remover lista de e-mails'; -$wb['datalog_status_i_shell_user'] = 'Adicionar usuário do shell'; -$wb['datalog_status_u_shell_user'] = 'Atualizar usuário do shell'; -$wb['datalog_status_d_shell_user'] = 'Remover usuário do shell'; -$wb['datalog_status_i_web_folder'] = 'Adicionar pasta protegida'; -$wb['datalog_status_u_web_folder'] = 'Atualizar pasta protegida'; -$wb['datalog_status_d_web_folder'] = 'Remover pasta protegida'; -$wb['datalog_status_i_web_folder_user'] = 'Adicionar usuário de pasta protegida'; -$wb['datalog_status_u_web_folder_user'] = 'Atualizar usuário de pasta protegida'; -$wb['datalog_status_d_web_folder_user'] = 'Remover usuário de pasta protegida'; -$wb['datalog_status_i_xmpp_domain'] = 'Adicionar domínio xmpp'; -$wb['datalog_status_u_xmpp_domain'] = 'Atualizar domínio xmpp'; -$wb['datalog_status_d_xmpp_domain'] = 'Remover domínio xmpp'; -$wb['datalog_status_i_xmpp_user'] = 'Adicionar usuário xmpp'; -$wb['datalog_status_u_xmpp_user'] = 'Atualizar usuário xmpp'; -$wb['datalog_status_d_xmpp_user'] = 'Remover usuário xmpp'; +$wb['datalog_status_d_cron'] = 'Remover tarefa no Cron'; +$wb['datalog_status_i_mail_get'] = 'Adicionar conta de busca de emails'; +$wb['datalog_status_u_mail_get'] = 'Atualizar conta de busca de emails'; +$wb['datalog_status_d_mail_get'] = 'Remover conta de busca de emails'; +$wb['datalog_status_i_mail_mailinglist'] = 'Adicionar lista de emails'; +$wb['datalog_status_u_mail_mailinglist'] = 'Atualizar lista de emails'; +$wb['datalog_status_d_mail_mailinglist'] = 'Remover lista de emails'; +$wb['datalog_status_i_shell_user'] = 'Adicionar usuário Shell'; +$wb['datalog_status_u_shell_user'] = 'Atualizar usuário Shell'; +$wb['datalog_status_d_shell_user'] = 'Remover usuário Shell'; +$wb['datalog_status_i_web_folder'] = 'Adicionar pasta Web'; +$wb['datalog_status_u_web_folder'] = 'Atualizar pasta Web'; +$wb['datalog_status_d_web_folder'] = 'Remover pasta Web'; +$wb['datalog_status_i_web_folder_user'] = 'Adicionar usuário de pasta Web'; +$wb['datalog_status_u_web_folder_user'] = 'Atualizar usuário de pasta Web'; +$wb['datalog_status_d_web_folder_user'] = 'Remover usuário de pasta Web'; +$wb['datalog_status_i_xmpp_domain'] = 'Adicionar domínio XMPP'; +$wb['datalog_status_u_xmpp_domain'] = 'Atualizar domínio XMPP'; +$wb['datalog_status_d_xmpp_domain'] = 'Remover domínio XMPP'; +$wb['datalog_status_i_xmpp_user'] = 'Adicionar usuário XMPP'; +$wb['datalog_status_u_xmpp_user'] = 'Atualizar usuário XMPP'; +$wb['datalog_status_d_xmpp_user'] = 'Remover usuário XMPP'; $wb['err_csrf_attempt_blocked'] = 'Tentativa de CSRF bloqueada.'; $wb['login_as_txt'] = 'Acessar como'; $wb['no_domain_perm'] = 'Você não tem permissão para este domínio.'; $wb['no_destination_perm'] = 'Você não tem permissão para este destino.'; -$wb['client_you_are_locked'] = 'Você não tem permissão para alterar nenhuma configuração.'; +$wb['client_you_are_locked'] = 'Você não tem permissão para modificar qualquer configuração.'; $wb['gender_m_txt'] = 'Sr.'; $wb['gender_f_txt'] = 'Sra.'; $wb['client_cannot_be_deleted_because_of_billing_module_txt'] = 'Este cliente possui registros no módulo de faturamento, portanto não pode ser removido.'; @@ -163,13 +163,12 @@ $wb['strength_2'] = 'Razoável'; $wb['strength_3'] = 'Boa'; $wb['strength_4'] = 'Forte'; $wb['strength_5'] = 'Muito Forte'; -$wb['weak_password_txt'] = 'A senha configurada não obedece as diretivas de segurança. A senha deve possuir ao menos {chars} caracteres e ao menos um caractere maiúsculoe um caractere especial e dificuldade "{strength}".'; +$wb['weak_password_txt'] = 'A senha configurada não obedece as diretivas de segurança. A senha deve possuir ao menos {chars} caracteres e ao menos um caractere maiúsculo e um caractere especial e dificuldade "{strength}".'; $wb['weak_password_length_txt'] = 'A senha configurada não obedece as diretivas de segurança. A senha deve possuir ao menos {chars} de comprimento.'; $wb['security_check1_txt'] = 'Verifique as permissões de segurança:'; $wb['security_check2_txt'] = 'falhou.'; $wb['select_directive_snippet_txt'] = 'Diretiva de trechos de código'; $wb['select_master_directive_snippet_txt'] = 'Diretiva mestre de trechos de código'; $wb['unlimited_txt'] = 'Ilimitado'; -$wb['server_id_0_error_txt'] = 'Please select a valid Server. Server ID must be > 0.'; -$wb['datalog_changes_close_txt'] = 'Close'; -?> \ No newline at end of file +$wb['server_id_0_error_txt'] = 'Por favor, selecione um servidor válido. O ID do servidor deve ser > 0.'; +$wb['datalog_changes_close_txt'] = 'Fechar'; diff --git a/interface/lib/lang/cz.lng b/interface/lib/lang/cz.lng index a3c2fe440c..04ad86178c 100644 --- a/interface/lib/lang/cz.lng +++ b/interface/lib/lang/cz.lng @@ -1,9 +1,9 @@ 0.'; $wb['datalog_changes_close_txt'] = 'Close'; -?> diff --git a/interface/web/admin/lib/lang/br.lng b/interface/web/admin/lib/lang/br.lng index b558a1510e..12db8395a4 100644 --- a/interface/web/admin/lib/lang/br.lng +++ b/interface/web/admin/lib/lang/br.lng @@ -1,5 +1,5 @@ diff --git a/interface/web/admin/lib/lang/br_directive_snippets.lng b/interface/web/admin/lib/lang/br_directive_snippets.lng index 3179f5fa56..d1ec8239f7 100644 --- a/interface/web/admin/lib/lang/br_directive_snippets.lng +++ b/interface/web/admin/lib/lang/br_directive_snippets.lng @@ -8,8 +8,8 @@ $wb['directive_snippets_name_empty'] = 'Por favor, insira um nome para a diretiv $wb['directive_snippets_name_error_unique'] = 'Já existe uma diretiva com este nome.'; $wb['variables_txt'] = 'Variáveis'; $wb['customer_viewable_txt'] = 'Visualização personalizada'; -$wb['required_php_snippets_txt'] = 'Trecho de código exige php'; -$wb['update_sites_txt'] = 'Update sites using this snippet'; -$wb['error_hide_snippet_active_sites'] = 'You cannot hide this snippet from customers as it is currently used by existing websites.'; -$wb['error_disable_snippet_active_sites'] = 'You cannot disable this snippet as it is currently used by existing websites.'; -$wb['error_delete_snippet_active_sites'] = 'You cannot delete this snippet as it is currently used by existing websites.'; \ No newline at end of file +$wb['required_php_snippets_txt'] = 'Trecho de código exige PHP'; +$wb['update_sites_txt'] = 'Atualizar sites usando este trecho de código'; +$wb['error_hide_snippet_active_sites'] = 'Você não pode ocultar este trecho de código dos clientes, pois ele é usado por sites existentes.'; +$wb['error_disable_snippet_active_sites'] = 'Você não pode desativar este trecho de código, pois ele é usado por sites existentes.'; +$wb['error_delete_snippet_active_sites'] = 'Você não pode excluir este trecho de código, pois ele é usado por sites existentes.'; 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 70af844dd6..d74c9f47c9 100644 --- a/interface/web/admin/lib/lang/br_directive_snippets_list.lng +++ b/interface/web/admin/lib/lang/br_directive_snippets_list.lng @@ -5,4 +5,3 @@ $wb['name_txt'] = 'Nome da diretiva'; $wb['type_txt'] = 'Tipo'; $wb['add_new_record_txt'] = 'Adicionar diretiva'; $wb['customer_viewable_txt'] = 'Visível para o cliente'; -?> diff --git a/interface/web/admin/lib/lang/br_firewall.lng b/interface/web/admin/lib/lang/br_firewall.lng index 3fd7f77d3e..9a3eadb4a4 100644 --- a/interface/web/admin/lib/lang/br_firewall.lng +++ b/interface/web/admin/lib/lang/br_firewall.lng @@ -5,7 +5,6 @@ $wb['udp_port_txt'] = 'Portas UDP abertas'; $wb['tcp_port_help_txt'] = 'Separado por vírgula'; $wb['udp_port_help_txt'] = 'Separado por vírgula'; $wb['active_txt'] = 'Ativo'; -$wb['firewall_error_unique'] = 'Já existe uma regra de firewall idêntica para este servidor.'; -$wb['tcp_ports_error_regex'] = 'Caractere não permitido para configuração de porta tcp: Caracteres permitidos são números, ":" e ",".'; -$wb['udp_ports_error_regex'] = 'Caractere não permitido para configuração de porta udp: Caracteres permitidos são números, ":" e ",".'; -?> +$wb['firewall_error_unique'] = 'Já existe uma regra de Firewall idêntica para este servidor.'; +$wb['tcp_ports_error_regex'] = 'Caractere não permitido para configuração de porta TCP: Caracteres permitidos são números, ":" e ",".'; +$wb['udp_ports_error_regex'] = 'Caractere não permitido para configuração de porta UDP: Caracteres permitidos são números, ":" e ",".'; diff --git a/interface/web/admin/lib/lang/br_firewall_list.lng b/interface/web/admin/lib/lang/br_firewall_list.lng index d90ee33d4e..885491f344 100644 --- a/interface/web/admin/lib/lang/br_firewall_list.lng +++ b/interface/web/admin/lib/lang/br_firewall_list.lng @@ -5,4 +5,3 @@ $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 nova regra'; -?> diff --git a/interface/web/admin/lib/lang/br_groups.lng b/interface/web/admin/lib/lang/br_groups.lng index 22a1a5c63d..4cad106991 100644 --- a/interface/web/admin/lib/lang/br_groups.lng +++ b/interface/web/admin/lib/lang/br_groups.lng @@ -2,4 +2,3 @@ $wb['description_txt'] = 'Descrição'; $wb['name_txt'] = 'Grupo'; $wb['name_err'] = 'O grupo deve conter no mínimo 1 e no máximo 30 caracteres.'; -?> diff --git a/interface/web/admin/lib/lang/br_groups_list.lng b/interface/web/admin/lib/lang/br_groups_list.lng index 74a414f52d..9d256d5dff 100644 --- a/interface/web/admin/lib/lang/br_groups_list.lng +++ b/interface/web/admin/lib/lang/br_groups_list.lng @@ -3,5 +3,4 @@ $wb['list_head_txt'] = 'Grupos'; $wb['description_txt'] = 'Descrição'; $wb['name_txt'] = 'Grupo'; $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!'; -?> +$wb['warning_txt'] = 'ALERTA: Não editar ou modificar qualquer configuração de usuário aqui. Use o módulo de clientes e revendas para isso. Editar ou modificar 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 f899d53178..839c060996 100644 --- a/interface/web/admin/lib/lang/br_iptables.lng +++ b/interface/web/admin/lib/lang/br_iptables.lng @@ -1,6 +1,6 @@ +$wb['iptables_error_unique'] = 'Já existe uma regra de Firewall idêntica para este servidor.'; diff --git a/interface/web/admin/lib/lang/br_iptables_list.lng b/interface/web/admin/lib/lang/br_iptables_list.lng index 3326ac060a..68edbe3602 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 dbffcc8425..11af416170 100644 --- a/interface/web/admin/lib/lang/br_language_add.lng +++ b/interface/web/admin/lib/lang/br_language_add.lng @@ -5,4 +5,3 @@ $wb['language_new_txt'] = 'Novo idioma'; $wb['language_new_hint_txt'] = '2 caracteres ISO 639-1 para o código do idioma (veja em https://en.wikipedia.org/wiki/List_of_ISO_639-1_codes)'; $wb['btn_save_txt'] = 'Adicionar novo conjunto de idiomas'; $wb['btn_cancel_txt'] = 'Voltar'; -?> diff --git a/interface/web/admin/lib/lang/br_language_complete.lng b/interface/web/admin/lib/lang/br_language_complete.lng index cb0ea2eb24..a2d203fcd1 100644 --- a/interface/web/admin/lib/lang/br_language_complete.lng +++ b/interface/web/admin/lib/lang/br_language_complete.lng @@ -4,4 +4,3 @@ $wb['list_desc_txt'] = 'Mesclar o arquivo de idioma selecionado com o arquivo de $wb['language_select_txt'] = 'Selecionar idioma'; $wb['btn_save_txt'] = 'Mesclar arquivos agora'; $wb['btn_cancel_txt'] = 'Voltar'; -?> diff --git a/interface/web/admin/lib/lang/br_language_edit.lng b/interface/web/admin/lib/lang/br_language_edit.lng index ed0e6bb84d..f99c6a2690 100644 --- a/interface/web/admin/lib/lang/br_language_edit.lng +++ b/interface/web/admin/lib/lang/br_language_edit.lng @@ -5,4 +5,3 @@ $wb['module_txt'] = 'Módulo'; $wb['lang_file_txt'] = 'Arquivo de idioma'; $wb['btn_save_txt'] = 'Salvar'; $wb['btn_cancel_txt'] = 'Voltar'; -?> diff --git a/interface/web/admin/lib/lang/br_language_export.lng b/interface/web/admin/lib/lang/br_language_export.lng index 7d75f7b6dd..f7478233c3 100644 --- a/interface/web/admin/lib/lang/br_language_export.lng +++ b/interface/web/admin/lib/lang/br_language_export.lng @@ -3,4 +3,3 @@ $wb['list_head_txt'] = 'Exportar arquivos de idioma'; $wb['language_select_txt'] = 'Selecionar idioma'; $wb['btn_save_txt'] = 'Exportar arquivo de idioma selecionado'; $wb['btn_cancel_txt'] = 'Voltar'; -?> diff --git a/interface/web/admin/lib/lang/br_language_import.lng b/interface/web/admin/lib/lang/br_language_import.lng index 99db339812..236ffc4f50 100644 --- a/interface/web/admin/lib/lang/br_language_import.lng +++ b/interface/web/admin/lib/lang/br_language_import.lng @@ -6,4 +6,3 @@ $wb['btn_save_txt'] = 'Importar arquivo de idioma selecionado'; $wb['language_overwrite_txt'] = 'Sobrescrever arquivo, se existir.'; $wb['btn_cancel_txt'] = 'Voltar'; $wb['ignore_version_txt'] = 'Ignorar verificação da versão do ISPConfig'; -?> diff --git a/interface/web/admin/lib/lang/br_language_list.lng b/interface/web/admin/lib/lang/br_language_list.lng index 37941c4472..977dbdba8d 100644 --- a/interface/web/admin/lib/lang/br_language_list.lng +++ b/interface/web/admin/lib/lang/br_language_list.lng @@ -4,4 +4,3 @@ $wb['language_select_txt'] = 'Selecionar idioma'; $wb['module_txt'] = 'Módulo'; $wb['lang_file_txt'] = 'Arquivo de idioma'; $wb['lang_file_date_txt'] = 'Última modificação'; -?> diff --git a/interface/web/admin/lib/lang/br_package_install.lng b/interface/web/admin/lib/lang/br_package_install.lng index bbe518549a..d1677d2f49 100644 --- a/interface/web/admin/lib/lang/br_package_install.lng +++ b/interface/web/admin/lib/lang/br_package_install.lng @@ -4,4 +4,3 @@ $wb['repo_url_txt'] = 'URL'; $wb['repo_username_txt'] = 'Usário (opcional)'; $wb['repo_password_txt'] = 'Senha (opcional)'; $wb['active_txt'] = 'Ativo'; -?> diff --git a/interface/web/admin/lib/lang/br_remote_action.lng b/interface/web/admin/lib/lang/br_remote_action.lng index fa66af6168..d851202bca 100644 --- a/interface/web/admin/lib/lang/br_remote_action.lng +++ b/interface/web/admin/lib/lang/br_remote_action.lng @@ -2,11 +2,10 @@ $wb['select_server_txt'] = 'Selecionar servidor'; $wb['btn_do_txt'] = 'Executar açã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_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 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'; -?> +$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 520b95e18f..86002f5146 100644 --- a/interface/web/admin/lib/lang/br_remote_user.lng +++ b/interface/web/admin/lib/lang/br_remote_user.lng @@ -1,70 +1,72 @@ qualquer um)'; +$wb['remote_ips_txt'] = 'Endereços IPs ou nome(s) do(s) host(s) para acesso remoto (separado por vírgula e deixar vazio para qualquer um)'; $wb['remote_user_error_ips'] = 'Ao menos um endereço IP ou nome do host informado é inválido.'; -?> +$wb['DNS caa functions'] = 'Funções de registro DNS CAA'; +$wb['DNS dname functions'] = 'Funções de registro DNS DNAME'; +$wb['DNS sshfp functions'] = 'Funções de registro DNS SSHFP'; 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 0f0381a6f4..9ef8c2f570 100644 --- a/interface/web/admin/lib/lang/br_remote_user_list.lng +++ b/interface/web/admin/lib/lang/br_remote_user_list.lng @@ -4,4 +4,3 @@ $wb['list_desc_txt'] = 'Usuário remoto'; $wb['add_new_record_txt'] = 'Adicionar novo usuário'; $wb['parent_remote_userid_txt'] = 'ID do usuário'; $wb['username_txt'] = 'Nome'; -?> diff --git a/interface/web/admin/lib/lang/br_server.lng b/interface/web/admin/lib/lang/br_server.lng index a896d0b49a..20a2eddbb6 100644 --- a/interface/web/admin/lib/lang/br_server.lng +++ b/interface/web/admin/lib/lang/br_server.lng @@ -1,16 +1,15 @@ +$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 390612d166..3e507bb5c4 100644 --- a/interface/web/admin/lib/lang/br_server_config.lng +++ b/interface/web/admin/lib/lang/br_server_config.lng @@ -1,8 +1,8 @@ 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['backup_dir_error_empty'] = 'Diretório de backup está vazio.'; +$wb['maildir_path_error_empty'] = 'Caminho do Maildir está vazio.'; +$wb['homedir_path_error_empty'] = 'Caminho do Homedir está vazio.'; +$wb['mailuser_uid_error_empty'] = 'UID do Mailuser UID está vazio.'; +$wb['mailuser_gid_error_empty'] = 'GID do Mailuser GID está vazio.'; +$wb['mailuser_name_error_empty'] = 'Usuário do Mailuser está vazio.'; +$wb['mailuser_group_error_empty'] = 'Grupo do Mailuser Group está vazio.'; +$wb['getmail_config_dir_error_empty'] = 'Diretório de configurações do Getmail está vazio.'; +$wb['website_basedir_error_empty'] = 'Diretório basedir de sites está vazio.'; +$wb['website_path_error_empty'] = 'Caminho do site está vazio.'; +$wb['website_symlinks_error_empty'] = 'Links simbólicos de site está vazio.'; +$wb['vhost_conf_dir_error_empty'] = 'Diretório de configurações do vhost está vazio.'; +$wb['vhost_conf_enabled_dir_error_empty'] = 'Diretório de configurações vhost habilitadas está vazio.'; +$wb['nginx_vhost_conf_dir_error_empty'] = 'Diretório de configurações vhost nginx está vazio.'; +$wb['nginx_vhost_conf_enabled_dir_error_empty'] = 'Diretório de configurações vhost nginx habilitadas está vazio.'; +$wb['apache_user_error_empty'] = 'Usuário do Apache está vazio.'; +$wb['apache_group_error_empty'] = 'Grupo do Apache está vazio.'; +$wb['nginx_user_error_empty'] = 'Usuário do nginx está vazio.'; +$wb['nginx_group_error_empty'] = 'Grupo do nginx está vazio.'; +$wb['php_ini_path_apache_error_empty'] = 'Caminho PHP.ini Apache está vazio.'; +$wb['php_ini_path_cgi_error_empty'] = 'Caminho PHP.ini CGI está vazio.'; +$wb['nginx_cgi_socket_empty'] = 'O socket CGI nginx está vazio.'; +$wb['apps_vhost_port_error_empty'] = 'Portas de apps-vhost está vazio.'; +$wb['apps_vhost_ip_error_empty'] = 'IP do apps-vhost está vazio.'; +$wb['fastcgi_starter_path_error_empty'] = 'Caminho do script de inicialização FastCGI está vazio.'; +$wb['fastcgi_starter_script_error_empty'] = 'Script de inicialização FastCGI está vazio.'; +$wb['fastcgi_alias_error_empty'] = 'Alias FastCGI está vazio.'; +$wb['fastcgi_phpini_path_error_empty'] = 'O caminho PHP.ini FastCGI está vazio.'; +$wb['fastcgi_children_error_empty'] = 'Os processos filhos FastCGI está vazio.'; +$wb['fastcgi_max_requests_error_empty'] = 'O limite de requisições FastCGI está vazio.'; +$wb['fastcgi_bin_error_empty'] = 'O binário FastCGI está vazio.'; +$wb['jailkit_chroot_home_error_empty'] = 'O home em chroot Jailkit está vazio.'; +$wb['jailkit_chroot_app_sections_error_empty'] = 'Seções de aplicações chroot Jailkit está vazio.'; +$wb['jailkit_chroot_app_programs_error_empty'] = 'Aplicações chroot Jailkit está vazio.'; +$wb['jailkit_chroot_cron_programs_error_empty'] = 'Tarefas de aplicações chroot Jailkit está vazio.'; +$wb['vlogger_config_dir_error_empty'] = 'Diretório de configuração está vazio.'; +$wb['cron_init_script_error_empty'] = 'Script de inicialização do cron está vazio.'; +$wb['crontab_dir_error_empty'] = 'Caminho para tarefas individuais no Cron está vazio.'; +$wb['cron_wget_error_empty'] = 'Caminho do binário wget está vazio.'; +$wb['php_fpm_init_script_txt'] = 'Script de inicialização PHP-FPM'; +$wb['php_fpm_init_script_error_empty'] = 'Script de inicialização PHP-FPM está vazio.'; +$wb['php_fpm_ini_path_txt'] = 'Caminho PHP.ini PHP-FPM'; +$wb['php_fpm_ini_path_error_empty'] = 'Caminho PHP.ini PHP-FPM está vazio.'; +$wb['php_fpm_pool_dir_txt'] = 'Diretório da pool PHP-FPM'; +$wb['php_fpm_pool_dir_error_empty'] = 'Diretório da pool PHP-FPM está vazio.'; +$wb['php_fpm_start_port_txt'] = 'Porta PHP-FPM'; +$wb['php_fpm_start_port_error_empty'] = 'Porta PHP-FPM está vazio.'; +$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á vazio.'; +$wb['try_rescue_txt'] = 'Habilitar monitoramento e 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 do servidor de emails'; +$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['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['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['stress_adaptive_txt'] = 'Adapt to temporary load spikes'; -$wb['tooltip_stress_adaptive_txt'] = 'Enables Postfix stress-adaptive behavior.'; +$wb['stress_adaptive_txt'] = 'Adaptar-se a picos de carga temporários'; +$wb['tooltip_stress_adaptive_txt'] = 'Ativa o comportamento adaptativo ao estresse do Postfix.'; $wb['ssl_settings_txt'] = 'Configurações SSL'; $wb['permissions_txt'] = 'Permissões'; -$wb['php_settings_txt'] = 'Configurações php'; +$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['awstats_settings_txt'] = 'Configurações do AWStats'; $wb['firewall_txt'] = 'Firewall'; -$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['mailbox_quota_stats_txt'] = 'Estatísticas das cotas para contas de email'; +$wb['enable_ip_wildcard_txt'] = 'Habilitar curingas IP (*)'; +$wb['web_folder_protection_txt'] = 'Tornar pastas Web imutáveis (atributos estendidos)'; $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['overtraffic_disable_web_txt'] = 'Disable websites that exceed traffic limit'; -$wb['rbl_error_regex'] = 'Por favor, nomes de host válidos para RBLs.'; +$wb['rbl_error_regex'] = 'Por favor, insira 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_txt'] = 'Enviar alerta da cota a cada N 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['admin_notify_events_txt'] = 'Enviar email 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_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'] = 'Senda do munin'; -$wb['munin_url_error_regex'] = 'URL do munin e inválida'; +$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_note_txt'] = 'Área reservada:'; $wb['v6_prefix_txt'] = 'Prefixo IPv6'; $wb['vhost_rewrite_v6_txt'] = 'Reescrever IPv6 no espelho'; @@ -223,107 +223,106 @@ $wb['v6_prefix_length'] = 'O prefixo é muito longo de acordo com as definiçõe $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 dad