diff --git a/.gitignore b/.gitignore index d42aee61f4caf9d716977a21353bf598c3092220..32f43c2430e66a26c0100ade3e1685f1836d458a 100644 --- a/.gitignore +++ b/.gitignore @@ -1,3 +1,4 @@ .DS_Store /nbproject/private/ .phplint-cache +*.swp diff --git a/install/dist/lib/fedora.lib.php b/install/dist/lib/fedora.lib.php index 4a7c9cfbfe2f831795ffd9fa33f8569f43b5b306..2d31b89bbd63bd459b1721e911e979820bcb0e60 100644 --- a/install/dist/lib/fedora.lib.php +++ b/install/dist/lib/fedora.lib.php @@ -63,6 +63,12 @@ class installer_dist extends installer_base { //* mysql-virtual_forwardings.cf $this->process_postfix_config('mysql-virtual_forwardings.cf'); + //* mysql-virtual_alias_domains.cf + $this->process_postfix_config('mysql-virtual_alias_domains.cf'); + + //* mysql-virtual_alias_maps.cf + $this->process_postfix_config('mysql-virtual_alias_maps.cf'); + //* mysql-virtual_mailboxes.cf $this->process_postfix_config('mysql-virtual_mailboxes.cf'); @@ -102,6 +108,9 @@ class installer_dist extends installer_base { //* mysql-virtual_uids.cf $this->process_postfix_config('mysql-virtual_uids.cf'); + //* mysql-virtual_alias_domains.cf + $this->process_postfix_config('mysql-verify_recipients.cf'); + //* postfix-dkim $filename='tag_as_originating.re'; $full_file_name=$config_dir.'/'.$filename; @@ -115,12 +124,6 @@ class installer_dist extends installer_base { $content = rfsel($conf['ispconfig_install_dir'].'/server/conf-custom/install/postfix-'.$filename.'.master', 'tpl/postfix-'.$filename.'.master'); wf($full_file_name, $content); - //* Changing mode and group of the new created config files. - caselog('chmod o= '.$config_dir.'/mysql-virtual_*.cf* &> /dev/null', - __FILE__, __LINE__, 'chmod on mysql-virtual_*.cf*', 'chmod on mysql-virtual_*.cf* failed'); - caselog('chgrp '.$cf['group'].' '.$config_dir.'/mysql-virtual_*.cf* &> /dev/null', - __FILE__, __LINE__, 'chgrp on mysql-virtual_*.cf*', 'chgrp on mysql-virtual_*.cf* failed'); - //* Creating virtual mail user and group $command = 'groupadd -g '.$cf['vmail_groupid'].' '.$cf['vmail_groupname']; if(!is_group($cf['vmail_groupname'])) caselog($command.' &> /dev/null', __FILE__, __LINE__, "EXECUTED: $command", "Failed to execute the command $command"); @@ -150,9 +153,16 @@ class installer_dist extends installer_base { } $reject_sender_login_mismatch = ''; + $reject_authenticated_sender_login_mismatch = ''; if(isset($server_ini_array['mail']['reject_sender_login_mismatch']) && ($server_ini_array['mail']['reject_sender_login_mismatch'] == 'y')) { - $reject_sender_login_mismatch = ', reject_authenticated_sender_login_mismatch'; + $reject_sender_login_mismatch = ', reject_sender_login_mismatch'; + $reject_authenticated_sender_login_mismatch = 'reject_authenticated_sender_login_mismatch, '; } + + # placeholder includes comment char + $stress_adaptive_placeholder = '#{stress_adaptive} '; + $stress_adaptive = (isset($server_ini_array['mail']['stress_adaptive']) && ($server_ini_array['mail']['stress_adaptive'] == 'y')) ? '' : $stress_adaptive_placeholder; + unset($server_ini_array); $postconf_placeholders = array('{config_dir}' => $config_dir, @@ -162,6 +172,8 @@ class installer_dist extends installer_base { '{rbl_list}' => $rbl_list, '{greylisting}' => $greylisting, '{reject_slm}' => $reject_sender_login_mismatch, + '{reject_aslm}' => $reject_authenticated_sender_login_mismatch, + $stress_adaptive_placeholder => $stress_adaptive, ); $postconf_tpl = rfsel($conf['ispconfig_install_dir'].'/server/conf-custom/install/fedora_postfix.conf.master', 'tpl/fedora_postfix.conf.master'); diff --git a/install/dist/lib/gentoo.lib.php b/install/dist/lib/gentoo.lib.php index a39c3463761b049708a9e0adcc8ac7908d65f4d7..342a583facb64e433a8410abf136c570f7e34df2 100644 --- a/install/dist/lib/gentoo.lib.php +++ b/install/dist/lib/gentoo.lib.php @@ -102,9 +102,16 @@ class installer extends installer_base } $reject_sender_login_mismatch = ''; + $reject_authenticated_sender_login_mismatch = ''; if(isset($server_ini_array['mail']['reject_sender_login_mismatch']) && ($server_ini_array['mail']['reject_sender_login_mismatch'] == 'y')) { - $reject_sender_login_mismatch = ', reject_authenticated_sender_login_mismatch'; + $reject_sender_login_mismatch = ', reject_sender_login_mismatch'; + $reject_authenticated_sender_login_mismatch = 'reject_authenticated_sender_login_mismatch, '; } + + # placeholder includes comment char + $stress_adaptive_placeholder = '#{stress_adaptive} '; + $stress_adaptive = (isset($server_ini_array['mail']['stress_adaptive']) && ($server_ini_array['mail']['stress_adaptive'] == 'y')) ? '' : $stress_adaptive_placeholder; + unset($server_ini_array); $postconf_placeholders = array('{config_dir}' => $config_dir, @@ -114,6 +121,8 @@ class installer extends installer_base '{rbl_list}' => $rbl_list, '{greylisting}' => $greylisting, '{reject_slm}' => $reject_sender_login_mismatch, + '{reject_aslm}' => $reject_authenticated_sender_login_mismatch, + $stress_adaptive_placeholder => $stress_adaptive, ); $postconf_tpl = rfsel($conf['ispconfig_install_dir'].'/server/conf-custom/install/gentoo_postfix.conf.master', 'tpl/gentoo_postfix.conf.master'); @@ -338,6 +347,11 @@ class installer extends installer_base replaceLine($config_dir.'/'.$configfile, 'protocols = imap pop3', 'protocols = imap pop3 lmtp', 1, 0); } + //* Get the dovecot version + exec('dovecot --version', $tmp); + $dovecot_version = $tmp[0]; + unset($tmp); + //* dovecot-sql.conf $configfile = $config_dir.'/dovecot-sql.conf'; $content = $this->get_template_file('debian_dovecot-sql.conf', true, true); diff --git a/install/dist/lib/opensuse.lib.php b/install/dist/lib/opensuse.lib.php index 60fb0511fd8998118a2140d2c2aca8e49128c284..07dd5cc690f36cb46d6556e1a67cd9dae38c416e 100644 --- a/install/dist/lib/opensuse.lib.php +++ b/install/dist/lib/opensuse.lib.php @@ -63,6 +63,12 @@ class installer_dist extends installer_base { //* mysql-virtual_forwardings.cf $this->process_postfix_config('mysql-virtual_forwardings.cf'); + //* mysql-virtual_alias_domains.cf + $this->process_postfix_config('mysql-virtual_alias_domains.cf'); + + //* mysql-virtual_alias_maps.cf + $this->process_postfix_config('mysql-virtual_alias_maps.cf'); + //* mysql-virtual_mailboxes.cf $this->process_postfix_config('mysql-virtual_mailboxes.cf'); @@ -99,6 +105,9 @@ class installer_dist extends installer_base { //* mysql-virtual_uids.cf $this->process_postfix_config('mysql-virtual_uids.cf'); + //* mysql-virtual_alias_domains.cf + $this->process_postfix_config('mysql-verify_recipients.cf'); + //* postfix-dkim $filename='tag_as_originating.re'; $full_file_name=$config_dir.'/'.$filename; @@ -112,12 +121,6 @@ class installer_dist extends installer_base { $content = rfsel($conf['ispconfig_install_dir'].'/server/conf-custom/install/postfix-'.$filename.'.master', 'tpl/postfix-'.$filename.'.master'); wf($full_file_name, $content); - //* Changing mode and group of the new created config files. - caselog('chmod o= '.$config_dir.'/mysql-virtual_*.cf* &> /dev/null', - __FILE__, __LINE__, 'chmod on mysql-virtual_*.cf*', 'chmod on mysql-virtual_*.cf* failed'); - caselog('chgrp '.$cf['group'].' '.$config_dir.'/mysql-virtual_*.cf* &> /dev/null', - __FILE__, __LINE__, 'chgrp on mysql-virtual_*.cf*', 'chgrp on mysql-virtual_*.cf* failed'); - if(!is_dir($cf['vmail_mailbox_base'])) mkdir($cf['vmail_mailbox_base']); //* Creating virtual mail user and group @@ -161,9 +164,16 @@ class installer_dist extends installer_base { } $reject_sender_login_mismatch = ''; + $reject_authenticated_sender_login_mismatch = ''; if(isset($server_ini_array['mail']['reject_sender_login_mismatch']) && ($server_ini_array['mail']['reject_sender_login_mismatch'] == 'y')) { - $reject_sender_login_mismatch = ', reject_authenticated_sender_login_mismatch'; + $reject_sender_login_mismatch = ', reject_sender_login_mismatch'; + $reject_authenticated_sender_login_mismatch = 'reject_authenticated_sender_login_mismatch, '; } + + # placeholder includes comment char + $stress_adaptive_placeholder = '#{stress_adaptive} '; + $stress_adaptive = (isset($server_ini_array['mail']['stress_adaptive']) && ($server_ini_array['mail']['stress_adaptive'] == 'y')) ? '' : $stress_adaptive_placeholder; + unset($server_ini_array); $postconf_placeholders = array('{config_dir}' => $config_dir, @@ -173,6 +183,8 @@ class installer_dist extends installer_base { '{rbl_list}' => $rbl_list, '{greylisting}' => $greylisting, '{reject_slm}' => $reject_sender_login_mismatch, + '{reject_aslm}' => $reject_authenticated_sender_login_mismatch, + $stress_adaptive_placeholder => $stress_adaptive, ); $postconf_tpl = rfsel($conf['ispconfig_install_dir'].'/server/conf-custom/install/opensuse_postfix.conf.master', 'tpl/opensuse_postfix.conf.master'); diff --git a/install/lib/installer_base.lib.php b/install/lib/installer_base.lib.php index 81b1257db006458c4ce968415890dfb147c96b53..11163806abfc75774d41b0880a53c67b6ac6fdc4 100644 --- a/install/lib/installer_base.lib.php +++ b/install/lib/installer_base.lib.php @@ -737,11 +737,16 @@ class installer_base { global $conf; $config_dir = $conf['postfix']['config_dir'].'/'; + $postfix_group = $conf['postfix']['group']; $full_file_name = $config_dir.$configfile; + //* Backup exiting file if(is_file($full_file_name)) { copy($full_file_name, $config_dir.$configfile.'~'); + chmod($config_dir.$configfile.'~',0600); } + + //* Replace variables in config file template $content = rfsel($conf['ispconfig_install_dir'].'/server/conf-custom/install/'.$configfile.'.master', 'tpl/'.$configfile.'.master'); $content = str_replace('{mysql_server_ispconfig_user}', $conf['mysql']['ispconfig_user'], $content); $content = str_replace('{mysql_server_ispconfig_password}', $conf['mysql']['ispconfig_password'], $content); @@ -749,6 +754,13 @@ class installer_base { $content = str_replace('{mysql_server_ip}', $conf['mysql']['ip'], $content); $content = str_replace('{server_id}', $conf['server_id'], $content); wf($full_file_name, $content); + + //* Changing mode and group of the new created config file + caselog('chmod u=rw,g=r,o= '.escapeshellarg($full_file_name).' &> /dev/null', + __FILE__, __LINE__, 'chmod on '.$full_file_name, 'chmod on '.$full_file_name.' failed'); + caselog('chgrp '.escapeshellarg($postfix_group).' '.escapeshellarg($full_file_name).' &> /dev/null', + __FILE__, __LINE__, 'chgrp on '.$full_file_name, 'chgrp on '.$full_file_name.' failed'); + } public function configure_jailkit() { @@ -876,8 +888,8 @@ class installer_base { $postfix_service = @($out[0]=='')?false:true; } else { //* fallback - Postfix < 2.9 $content = rf($conf['postfix']['config_dir'].'/master.cf'); - $regex = "/^((?!#)".$service.".*".$type.".*)$/m"; - $postfix_service = @(preg_match($regex, $content))?true:false; + $quoted_regex = "^((?!#)".preg_quote($service, '/').".*".preg_quote($type, '/').".*)$"; + $postfix_service = @(preg_match("/$quoted_regex/m", $content))?true:false; } return $postfix_service; @@ -915,10 +927,11 @@ class installer_base { while ( !feof( $cf ) ) { $line = fgets( $cf ); + $quoted_regex = '^'.preg_quote($service, '/').'\s+'.preg_quote($type, '/'); if ( $reading_service ) { # regex matches a new service or "empty" (whitespace) line if ( preg_match( '/^([^\s#]+.*|\s*)$/', $line ) && - ! preg_match( '/^'.$service.'\s+'.$type.'/', $line ) ) { + ! preg_match( "/$quoted_regex/", $line ) ) { $out .= $line; $reading_service = false; } @@ -926,7 +939,7 @@ class installer_base { # $skipped_lines .= $line; # regex matches definition matching service to be removed - } else if ( preg_match( '/^'.$service.'\s+'.$type.'/', $line ) ) { + } else if ( preg_match( "/$quoted_regex/", $line ) ) { $reading_service = true; # $skipped_lines .= $line; @@ -954,12 +967,23 @@ class installer_base { $this->error("The postfix configuration directory '$config_dir' does not exist."); } + //* Get postfix version + exec('postconf -d mail_version 2>&1', $out); + $postfix_version = preg_replace('/.*=\s*/', '', $out[0]); + unset($out); + //* mysql-virtual_domains.cf $this->process_postfix_config('mysql-virtual_domains.cf'); //* mysql-virtual_forwardings.cf $this->process_postfix_config('mysql-virtual_forwardings.cf'); + //* mysql-virtual_alias_domains.cf + $this->process_postfix_config('mysql-virtual_alias_domains.cf'); + + //* mysql-virtual_alias_maps.cf + $this->process_postfix_config('mysql-virtual_alias_maps.cf'); + //* mysql-virtual_mailboxes.cf $this->process_postfix_config('mysql-virtual_mailboxes.cf'); @@ -999,6 +1023,9 @@ class installer_base { //* mysql-virtual_uids.cf $this->process_postfix_config('mysql-virtual_uids.cf'); + //* mysql-virtual_alias_domains.cf + $this->process_postfix_config('mysql-verify_recipients.cf'); + // test if lmtp if available $configure_lmtp = $this->get_postfix_service('lmtp','unix'); @@ -1021,12 +1048,6 @@ class installer_base { } wf($full_file_name, $content); - //* Changing mode and group of the new created config files. - caselog('chmod u=rw,g=r,o= '.$config_dir.'/mysql-virtual_*.cf* &> /dev/null', - __FILE__, __LINE__, 'chmod on mysql-virtual_*.cf*', 'chmod on mysql-virtual_*.cf* failed'); - caselog('chgrp '.$cf['group'].' '.$config_dir.'/mysql-virtual_*.cf* &> /dev/null', - __FILE__, __LINE__, 'chgrp on mysql-virtual_*.cf*', 'chgrp on mysql-virtual_*.cf* failed'); - //* Creating virtual mail user and group $command = 'groupadd -g '.$cf['vmail_groupid'].' '.$cf['vmail_groupname']; if(!is_group($cf['vmail_groupname'])) caselog($command.' &> /dev/null', __FILE__, __LINE__, "EXECUTED: $command", "Failed to execute the command $command"); @@ -1056,12 +1077,28 @@ class installer_base { } $reject_sender_login_mismatch = ''; - if(isset($server_ini_array['mail']['reject_sender_login_mismatch']) && ($server_ini_array['mail']['reject_sender_login_mismatch'] == 'y')) { - $reject_sender_login_mismatch = ', reject_authenticated_sender_login_mismatch'; + $reject_authenticated_sender_login_mismatch = ''; + if (isset($server_ini_array['mail']['reject_sender_login_mismatch']) && ($server_ini_array['mail']['reject_sender_login_mismatch'] == 'y')) { + $reject_sender_login_mismatch = ',reject_sender_login_mismatch,'; + $reject_authenticated_sender_login_mismatch = 'reject_authenticated_sender_login_mismatch, '; + } + + # placeholder includes comment char + $stress_adaptive_placeholder = '#{stress_adaptive}'; + $stress_adaptive = (isset($server_ini_array['mail']['stress_adaptive']) && ($server_ini_array['mail']['stress_adaptive'] == 'y')) ? '' : $stress_adaptive_placeholder; + + $reject_unknown_client_hostname=''; + if (isset($server_ini_array['mail']['reject_unknown']) && ($server_ini_array['mail']['reject_unknown'] == 'client' || $server_ini_array['mail']['reject_unknown'] == 'client_helo')) { + $reject_unknown_client_hostname=',reject_unknown_client_hostname'; } + $reject_unknown_helo_hostname=''; + if ((!isset($server_ini_array['mail']['reject_unknown'])) || $server_ini_array['mail']['reject_unknown'] == 'helo' || $server_ini_array['mail']['reject_unknown'] == 'client_helo') { + $reject_unknown_helo_hostname=',reject_unknown_helo_hostname'; + } + unset($server_ini_array); - $tmp = str_replace('.','\.',$conf['hostname']); + $myhostname = str_replace('.','\.',$conf['hostname']); $postconf_placeholders = array('{config_dir}' => $config_dir, '{vmail_mailbox_base}' => $cf['vmail_mailbox_base'], @@ -1070,13 +1107,43 @@ class installer_base { '{rbl_list}' => $rbl_list, '{greylisting}' => $greylisting, '{reject_slm}' => $reject_sender_login_mismatch, - '{myhostname}' => $tmp, + '{reject_aslm}' => $reject_authenticated_sender_login_mismatch, + '{myhostname}' => $myhostname, + $stress_adaptive_placeholder => $stress_adaptive, + '{reject_unknown_client_hostname}' => $reject_unknown_client_hostname, + '{reject_unknown_helo_hostname}' => $reject_unknown_helo_hostname, ); $postconf_tpl = rfsel($conf['ispconfig_install_dir'].'/server/conf-custom/install/debian_postfix.conf.master', 'tpl/debian_postfix.conf.master'); $postconf_tpl = strtr($postconf_tpl, $postconf_placeholders); $postconf_commands = array_filter(explode("\n", $postconf_tpl)); // read and remove empty lines + //* Merge version-specific postfix config + if(version_compare($postfix_version , '2.5', '>=')) { + $configfile = 'postfix_2-5.conf'; + $content = rfsel($conf['ispconfig_install_dir'].'/server/conf-custom/install/'.$configfile.'.master', 'tpl/'.$configfile.'.master'); + $content = strtr($content, $postconf_placeholders); + $postconf_commands = array_merge($postconf_commands, array_filter(explode("\n", $content))); + } + if(version_compare($postfix_version , '2.10', '>=')) { + $configfile = 'postfix_2-10.conf'; + $content = rfsel($conf['ispconfig_install_dir'].'/server/conf-custom/install/'.$configfile.'.master', 'tpl/'.$configfile.'.master'); + $content = strtr($content, $postconf_placeholders); + $postconf_commands = array_merge($postconf_commands, array_filter(explode("\n", $content))); + } + if(version_compare($postfix_version , '3.0', '>=')) { + $configfile = 'postfix_3-0.conf'; + $content = rfsel($conf['ispconfig_install_dir'].'/server/conf-custom/install/'.$configfile.'.master', 'tpl/'.$configfile.'.master'); + $content = strtr($content, $postconf_placeholders); + $postconf_commands = array_merge($postconf_commands, array_filter(explode("\n", $content))); + } + if(version_compare($postfix_version , '3.3', '>=')) { + $configfile = 'postfix_3-3.conf'; + $content = rfsel($conf['ispconfig_install_dir'].'/server/conf-custom/install/'.$configfile.'.master', 'tpl/'.$configfile.'.master'); + $content = strtr($content, $postconf_placeholders); + $postconf_commands = array_merge($postconf_commands, array_filter(explode("\n", $content))); + } + //* These postconf commands will be executed on installation only if($this->is_update == false) { $postconf_commands = array_merge($postconf_commands, array( @@ -1151,13 +1218,13 @@ class installer_base { if(is_file('/var/run/courier/authdaemon/')) caselog($command.' &> /dev/null', __FILE__, __LINE__, 'EXECUTED: '.$command, 'Failed to execute the command '.$command); //* Check maildrop service in posfix master.cf - $regex = "/^maildrop unix.*pipe flags=DRhu user=vmail argv=\\/usr\\/bin\\/maildrop -d ".$cf['vmail_username']." \\$\{extension} \\$\{recipient} \\$\{user} \\$\{nexthop} \\$\{sender}/"; + $quoted_regex = '^maildrop unix.*pipe flags=DRhu user=vmail '.preg_quote('argv=/usr/bin/maildrop -d '.$cf['vmail_username'].' ${extension} ${recipient} ${user} ${nexthop} ${sender}', '/'); $configfile = $config_dir.'/master.cf'; if($this->get_postfix_service('maildrop', 'unix')) { exec ("postconf -M maildrop.unix 2> /dev/null", $out, $ret); - $change_maildrop_flags = @(preg_match($regex, $out[0]) && $out[0] !='')?false:true; + $change_maildrop_flags = @(preg_match("/$quoted_regex/", $out[0]) && $out[0] !='')?false:true; } else { - $change_maildrop_flags = @(preg_match($regex, $configfile))?false:true; + $change_maildrop_flags = @(preg_match("/$quoted_regex/", $configfile))?false:true; } if ($change_maildrop_flags) { //* Change maildrop service in posfix master.cf @@ -1337,6 +1404,9 @@ class installer_base { } $config_dir = $conf['postfix']['config_dir']; + $quoted_config_dir = preg_quote($config_dir, '/'); + $postfix_version = `postconf -d mail_version 2>/dev/null`; + $postfix_version = preg_replace( '/mail_version\s*=\s*(.*)\s*/', '$1', $postfix_version ); //* Configure master.cf and add a line for deliver if(!$this->get_postfix_service('dovecot', 'unix')) { @@ -1348,7 +1418,7 @@ class installer_base { chmod($config_dir.'/master.cf~2', 0400); } //* Configure master.cf and add a line for deliver - $content = rf($conf["postfix"]["config_dir"].'/master.cf'); + $content = rf($config_dir.'/master.cf'); $deliver_content = 'dovecot unix - n n - - pipe'."\n".' flags=DRhu user=vmail:vmail argv=/usr/lib/dovecot/deliver -f ${sender} -d ${user}@${nexthop}'."\n"; af($config_dir.'/master.cf', $deliver_content); unset($content); @@ -1365,7 +1435,31 @@ class installer_base { ); // Make a backup copy of the main.cf file - copy($conf['postfix']['config_dir'].'/main.cf', $conf['postfix']['config_dir'].'/main.cf~3'); + copy($config_dir.'/main.cf', $config_dir.'/main.cf~3'); + + $options = preg_split("/,\s*/", exec("postconf -h smtpd_recipient_restrictions")); + $new_options = array(); + foreach ($options as $value) { + $value = trim($value); + if ($value == '') continue; + if (preg_match("|check_recipient_access\s+proxy:mysql:${quoted_config_dir}/mysql-verify_recipients.cf|", $value)) { + continue; + } + $new_options[] = $value; + } + if ($configure_lmtp) { + for ($i = 0; isset($new_options[$i]); $i++) { + if ($new_options[$i] == 'reject_unlisted_recipient') { + array_splice($new_options, $i+1, 0, array("check_recipient_access proxy:mysql:${quoted_config_dir}/mysql-verify_recipients.cf")); + break; + } + } + # postfix < 3.3 needs this when using reject_unverified_recipient: + if(version_compare($postfix_version, 3.3, '<')) { + $postconf_commands[] = "enable_original_recipient = yes"; + } + } + $postconf_commands[] = "smtpd_recipient_restrictions = ".implode(", ", $new_options); // Executing the postconf commands foreach($postconf_commands as $cmd) { @@ -1603,14 +1697,43 @@ class installer_base { exec("postconf -e 'milter_mail_macros = i {mail_addr} {client_addr} {client_name} {auth_authen}'"); exec("postconf -e 'milter_default_action = accept'"); - exec("postconf -e 'smtpd_sender_restrictions = check_sender_access mysql:/etc/postfix/mysql-virtual_sender.cf, permit_mynetworks, permit_sasl_authenticated'"); - + if(! isset($mail_config['reject_sender_login_mismatch'])) { + $mail_config['reject_sender_login_mismatch'] = 'n'; + } + $options = preg_split("/,\s*/", exec("postconf -h smtpd_sender_restrictions")); $new_options = array(); + foreach ($options as $key => $value) { + $value = trim($value); + if ($value == '') continue; + if (preg_match('/tag_as_(originating|foreign)\.re/', $value)) { + continue; + } + if (preg_match('/reject_(authenticated_)?sender_login_mismatch/', $value)) { + continue; + } + $new_options[] = $value; + } + if ($mail_config['reject_sender_login_mismatch'] == 'y') { + array_splice($new_options, 0, 0, array('reject_authenticated_sender_login_mismatch')); + + for ($i = 0; isset($new_options[$i]); $i++) { + if ($new_options[$i] == 'permit_mynetworks') { + array_splice($new_options, $i+1, 0, array('reject_sender_login_mismatch')); + break; + } + } + } + exec("postconf -e 'smtpd_sender_restrictions = ".implode(", ", $new_options)."'"); + $options = preg_split("/,\s*/", exec("postconf -h smtpd_recipient_restrictions")); + $new_options = array(); foreach ($options as $value) { - if (!preg_match('/check_policy_service\s+inet:127.0.0.1:10023/', $value)) { - $new_options[] = $value; + $value = trim($value); + if ($value == '') continue; + if (preg_match('/check_policy_service\s+inet:127.0.0.1:10023/', $value)) { + continue; } + $new_options[] = $value; } exec("postconf -e 'smtpd_recipient_restrictions = ".implode(", ", $new_options)."'"); @@ -1766,7 +1889,12 @@ class installer_base { $tpl = new tpl(); $tpl->newTemplate('rspamd_worker-controller.inc.master'); - $tpl->setVar('rspamd_password', $mail_config['rspamd_password']); + $rspamd_password = $mail_config['rspamd_password']; + $crypted_password = trim(exec('rspamadm pw -p ' . escapeshellarg($rspamd_password))); + if($crypted_password) { + $rspamd_password = $crypted_password; + } + $tpl->setVar('rspamd_password', $rspamd_password); wf('/etc/rspamd/local.d/worker-controller.inc', $tpl->grab()); chmod('/etc/rspamd/local.d/worker-controller.inc', 0644); } @@ -2375,6 +2503,16 @@ class installer_base { $tpl->setVar('apps_vhost_dir',$conf['web']['website_basedir'].'/apps'); $tpl->setVar('apps_vhost_basedir',$conf['web']['website_basedir']); $tpl->setVar('apps_vhost_servername',$apps_vhost_servername); + if(is_file($install_dir.'/interface/ssl/ispserver.crt') && is_file($install_dir.'/interface/ssl/ispserver.key')) { + $tpl->setVar('ssl_comment',''); + } else { + $tpl->setVar('ssl_comment','#'); + } + if(is_file($install_dir.'/interface/ssl/ispserver.crt') && is_file($install_dir.'/interface/ssl/ispserver.key') && is_file($install_dir.'/interface/ssl/ispserver.bundle')) { + $tpl->setVar('ssl_bundle_comment',''); + } else { + $tpl->setVar('ssl_bundle_comment','#'); + } $tpl->setVar('apache_version',getapacheversion()); if($this->is_update == true) { $tpl->setVar('logging',get_logging_state()); diff --git a/install/sql/incremental/upd_dev_collection.sql b/install/sql/incremental/upd_dev_collection.sql index 1b4b2c0f4f8934756a7173a93c4da32b81f8155e..f6bd9982f798916b7a214dd7b878995730ac41a8 100644 --- a/install/sql/incremental/upd_dev_collection.sql +++ b/install/sql/incremental/upd_dev_collection.sql @@ -45,6 +45,34 @@ ALTER TABLE `web_domain` DROP COLUMN `enable_spdy`; -- was missing in incremental, inserted for fixing older installations ALTER TABLE `web_domain` ADD `folder_directive_snippets` TEXT NULL AFTER `https_port`; + +ALTER TABLE `web_domain` ADD `server_php_id` INT(11) UNSIGNED NOT NULL DEFAULT 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_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 1; + +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 1; + +-- we have to decide whether to delete the column or leave it there for investigating not-converted entries +-- ALTER TABLE `web_domain` DROP COLUMN `fastcgi_php_version`; + +ALTER TABLE `web_domain` CHANGE `apache_directives` `apache_directives` mediumtext NULL DEFAULT NULL; +ALTER TABLE `web_domain` CHANGE `nginx_directives` `nginx_directives` mediumtext NULL DEFAULT NULL; + +-- add move to junk before/after option, default to after +ALTER TABLE `mail_user` MODIFY `move_junk` enum('y','a','n') NOT NULL DEFAULT 'y'; + +-- Change id_rsa column to TEXT format +ALTER TABLE `client` CHANGE `id_rsa` `id_rsa` TEXT CHARACTER SET utf8 COLLATE utf8_general_ci NOT NULL DEFAULT ''; + +ALTER TABLE `directive_snippets` ADD `update_sites` ENUM('y','n') NOT NULL DEFAULT 'n' ; + +-- Add DNSSEC Algorithm setting +ALTER TABLE `dns_soa` ADD `dnssec_algo` SET('NSEC3RSASHA1','ECDSAP256SHA256') NULL DEFAULT NULL AFTER `dnssec_wanted`; +UPDATE `dns_soa` SET `dnssec_algo` = 'NSEC3RSASHA1' WHERE `dnssec_algo` IS NULL AND dnssec_initialized = 'Y'; +UPDATE `dns_soa` SET `dnssec_algo` = 'ECDSAP256SHA256' WHERE `dnssec_algo` IS NULL AND dnssec_initialized = 'N'; +ALTER TABLE `dns_soa` CHANGE `dnssec_algo` `dnssec_algo` SET('NSEC3RSASHA1','ECDSAP256SHA256') CHARACTER SET utf8 COLLATE utf8_general_ci NOT NULL DEFAULT 'ECDSAP256SHA256'; + -- Fix issue #5635 ALTER TABLE `client_template` CHANGE `ssh_chroot` `ssh_chroot` VARCHAR(255) CHARACTER SET utf8 COLLATE utf8_general_ci NOT NULL DEFAULT ''; ALTER TABLE `client_template` CHANGE `web_php_options` `web_php_options` VARCHAR(255) CHARACTER SET utf8 COLLATE utf8_general_ci NOT NULL DEFAULT ''; + diff --git a/install/sql/ispconfig3.sql b/install/sql/ispconfig3.sql index 05b5c93841d5c9d881e11c9357b56c2ee1825406..095a2d37de445c0fbeec796055d3fb685355fb64 100644 --- a/install/sql/ispconfig3.sql +++ b/install/sql/ispconfig3.sql @@ -253,7 +253,7 @@ CREATE TABLE `client` ( `canceled` enum('n','y') NOT NULL DEFAULT 'n', `can_use_api` enum('n','y') NOT NULL DEFAULT 'n', `tmp_data` mediumblob, - `id_rsa` varchar(2000) NOT NULL DEFAULT '', + `id_rsa` text NOT NULL DEFAULT '', `ssh_rsa` varchar(600) NOT NULL DEFAULT '', `customer_no_template` varchar(255) DEFAULT 'R[CLIENTID]C[CUSTOMER_NO]', `customer_no_start` int(11) NOT NULL DEFAULT '1', @@ -470,6 +470,7 @@ CREATE TABLE IF NOT EXISTS `directive_snippets` ( `required_php_snippets` varchar(255) NOT NULL DEFAULT '', `active` enum('n','y') NOT NULL DEFAULT 'y', `master_directive_snippets_id` int(11) unsigned NOT NULL DEFAULT '0', + `update_sites` ENUM('y','n') NOT NULL DEFAULT 'n', PRIMARY KEY (`directive_snippets_id`) ) DEFAULT CHARSET=utf8 AUTO_INCREMENT=1 ; @@ -625,6 +626,7 @@ CREATE TABLE `dns_soa` ( `update_acl` varchar(255) default NULL, `dnssec_initialized` ENUM('Y','N') NOT NULL DEFAULT 'N', `dnssec_wanted` ENUM('Y','N') NOT NULL DEFAULT 'N', + `dnssec_algo` SET('NSEC3RSASHA1','ECDSAP256SHA256') NOT NULL DEFAULT 'ECDSAP256SHA256', `dnssec_last_signed` BIGINT NOT NULL DEFAULT '0', `dnssec_info` TEXT NULL, PRIMARY KEY (`id`), @@ -1046,7 +1048,7 @@ CREATE TABLE `mail_user` ( `autoresponder_end_date` datetime NULL default NULL, `autoresponder_subject` varchar(255) NOT NULL default 'Out of office reply', `autoresponder_text` mediumtext NULL, - `move_junk` enum('n','y') NOT NULL default 'n', + `move_junk` enum('y','a','n') NOT NULL default 'y', `purge_trash_days` INT NOT NULL DEFAULT '0', `purge_junk_days` INT NOT NULL DEFAULT '0', `custom_mailfilter` mediumtext, @@ -2046,8 +2048,8 @@ CREATE TABLE `web_domain` ( `stats_password` varchar(255) default NULL, `stats_type` varchar(255) default 'awstats', `allow_override` varchar(255) NOT NULL default 'All', - `apache_directives` mediumtext, - `nginx_directives` mediumtext, + `apache_directives` mediumtext NULL DEFAULT NULL, + `nginx_directives` mediumtext NULL DEFAULT NULL, `php_fpm_use_socket` ENUM('n','y') NOT NULL DEFAULT 'y', `php_fpm_chroot` enum('n','y') NOT NULL DEFAULT 'n', `pm` enum('static','dynamic','ondemand') NOT NULL DEFAULT 'ondemand', @@ -2068,7 +2070,6 @@ CREATE TABLE `web_domain` ( `backup_excludes` mediumtext, `active` enum('n','y') NOT NULL default 'y', `traffic_quota_lock` enum('n','y') NOT NULL default 'n', - `fastcgi_php_version` varchar(255) DEFAULT NULL, `proxy_directives` mediumtext, `last_quota_notification` date NULL default NULL, `rewrite_rules` mediumtext, @@ -2081,6 +2082,7 @@ CREATE TABLE `web_domain` ( `folder_directive_snippets` text, `log_retention` int(11) NOT NULL DEFAULT '10', `proxy_protocol` enum('n','y') NOT NULL default 'n', + `server_php_id` INT(11) UNSIGNED NOT NULL DEFAULT 0, PRIMARY KEY (`domain_id`), UNIQUE KEY `serverdomain` ( `server_id` , `ip_address`, `domain` ) ) DEFAULT CHARSET=utf8 AUTO_INCREMENT=1 ; @@ -2499,7 +2501,7 @@ INSERT INTO `country` (`iso`, `name`, `printable_name`, `iso3`, `numcode`, `eu`) -- Dumping data for table `dns_template` -- -INSERT INTO `dns_template` (`template_id`, `sys_userid`, `sys_groupid`, `sys_perm_user`, `sys_perm_group`, `sys_perm_other`, `name`, `fields`, `template`, `visible`) VALUES (1, 1, 1, 'riud', 'riud', '', 'Default', 'DOMAIN,IP,NS1,NS2,EMAIL,DKIM,DNSSEC', '[ZONE]\norigin={DOMAIN}.\nns={NS1}.\nmbox={EMAIL}.\nrefresh=7200\nretry=540\nexpire=604800\nminimum=3600\nttl=3600\n\n[DNS_RECORDS]\nA|{DOMAIN}.|{IP}|0|3600\nA|www|{IP}|0|3600\nA|mail|{IP}|0|3600\nNS|{DOMAIN}.|{NS1}.|0|3600\nNS|{DOMAIN}.|{NS2}.|0|3600\nMX|{DOMAIN}.|mail.{DOMAIN}.|10|3600\nTXT|{DOMAIN}.|v=spf1 mx a ~all|0|3600', 'y'); +INSERT INTO `dns_template` (`template_id`, `sys_userid`, `sys_groupid`, `sys_perm_user`, `sys_perm_group`, `sys_perm_other`, `name`, `fields`, `template`, `visible`) VALUES (1, 1, 1, 'riud', 'riud', '', 'Default', 'DOMAIN,IP,NS1,NS2,EMAIL,DKIM,DNSSEC', '[ZONE]\norigin={DOMAIN}.\nns={NS1}.\nmbox={EMAIL}.\nrefresh=7200\nretry=540\nexpire=604800\nminimum=3600\nttl=3600\ndnssec_algo=ECDSAP256SHA256\n\n[DNS_RECORDS]\nA|{DOMAIN}.|{IP}|0|3600\nA|www|{IP}|0|3600\nA|mail|{IP}|0|3600\nNS|{DOMAIN}.|{NS1}.|0|3600\nNS|{DOMAIN}.|{NS2}.|0|3600\nMX|{DOMAIN}.|mail.{DOMAIN}.|10|3600\nTXT|{DOMAIN}.|v=spf1 mx a ~all|0|3600', 'y'); -- -------------------------------------------------------- diff --git a/install/tpl/apache_apps.vhost.master b/install/tpl/apache_apps.vhost.master index 14f0f10da275e560cdeb51e3b10472dedf146dd7..f65f47df90cf5df9868aecd50cb1d2a593f3fade 100644 --- a/install/tpl/apache_apps.vhost.master +++ b/install/tpl/apache_apps.vhost.master @@ -1,4 +1,3 @@ - ###################################################### # This virtual host contains the configuration # for the ISPConfig apps vhost @@ -15,6 +14,56 @@ SetHandler None </FilesMatch> + # SSL Configuration + <tmpl_var name="ssl_comment">SSLEngine On + <tmpl_if name='apache_version' op='>=' value='2.3.16' format='version'> + <tmpl_var name="ssl_comment">SSLProtocol All -SSLv3 -TLSv1 -TLSv1.1 + <tmpl_else> + <tmpl_var name="ssl_comment">SSLProtocol All -SSLv2 -SSLv3 + </tmpl_if> + <tmpl_var name="ssl_comment">SSLCertificateFile /usr/local/ispconfig/interface/ssl/ispserver.crt + <tmpl_var name="ssl_comment">SSLCertificateKeyFile /usr/local/ispconfig/interface/ssl/ispserver.key + <tmpl_var name="ssl_bundle_comment">SSLCACertificateFile /usr/local/ispconfig/interface/ssl/ispserver.bundle + + <tmpl_var name="ssl_comment">SSLCipherSuite 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 + <tmpl_var name="ssl_comment">SSLHonorCipherOrder On + <tmpl_if name='apache_version' op='>=' value='2.4.3' format='version'> + <tmpl_var name="ssl_comment">SSLCompression Off + </tmpl_if> + <tmpl_if name='apache_version' op='>=' value='2.4.11' format='version'> + <tmpl_var name="ssl_comment">SSLSessionTickets Off + </tmpl_if> + + <IfModule mod_headers.c> + # ISPConfig 3.1 currently requires unsafe-line for both scripts and styles, as well as unsafe-eval + Header set Content-Security-Policy "default-src 'self' 'unsafe-inline' 'unsafe-eval'; img-src 'self' data:; object-src 'none'" + <tmpl_var name="ssl_comment">Header set Content-Security-Policy "default-src 'self' 'unsafe-inline' 'unsafe-eval'; img-src 'self' data:; object-src 'none'; upgrade-insecure-requests" + Header set X-Content-Type-Options: nosniff + Header set X-Frame-Options: SAMEORIGIN + Header set X-XSS-Protection: "1; mode=block" + Header always edit Set-Cookie (.*) "$1; HTTPOnly" + <tmpl_var name="ssl_comment">Header always edit Set-Cookie (.*) "$1; Secure" + <IfVersion >= 2.4.7> + Header setifempty Strict-Transport-Security "max-age=15768000" + </IfVersion> + <IfVersion < 2.4.7> + Header set Strict-Transport-Security "max-age=15768000" + </IfVersion> + RequestHeader unset Proxy early + </IfModule> + + <tmpl_if name='apache_version' op='>=' value='2.3.3' format='version'> + <tmpl_var name="ssl_comment">SSLUseStapling On + <tmpl_var name="ssl_comment">SSLStaplingResponderTimeout 5 + <tmpl_var name="ssl_comment">SSLStaplingReturnResponderErrors Off + </tmpl_if> + +<tmpl_if name='apache_version' op='>=' value='2.3.3' format='version'> +<IfModule mod_ssl.c> + <tmpl_var name="ssl_comment">SSLStaplingCache shmcb:/var/run/ocsp(128000) +</IfModule> +</tmpl_if> + <IfModule mod_headers.c> RequestHeader unset Proxy early </IfModule> diff --git a/install/tpl/apache_ispconfig.conf.master b/install/tpl/apache_ispconfig.conf.master index 84eec5c5540c9b2f3f4c4ef159417cc96ff55cfb..ff744741ff2a7f67953e70c3f4b0350f00fb2911 100644 --- a/install/tpl/apache_ispconfig.conf.master +++ b/install/tpl/apache_ispconfig.conf.master @@ -35,6 +35,10 @@ CustomLog "| /usr/local/ispconfig/server/scripts/vlogger -s access.log -t \"%Y%m </tmpl_if> </Directory> +<Directory /var/www> + Options -Indexes +</Directory> + <Directory /var/www/conf> AllowOverride None <tmpl_if name='apache_version' op='>' value='2.2' format='version'> diff --git a/install/tpl/apache_ispconfig.vhost.master b/install/tpl/apache_ispconfig.vhost.master index 61e9a588593756e8671c1062ae7dd89eb71ffb51..f90876170bbd6da883fb5fc9dee83a6ffb9b9096 100644 --- a/install/tpl/apache_ispconfig.vhost.master +++ b/install/tpl/apache_ispconfig.vhost.master @@ -70,7 +70,7 @@ NameVirtualHost *:<tmpl_var name="vhost_port"> # SSL Configuration <tmpl_var name="ssl_comment">SSLEngine On <tmpl_if name='apache_version' op='>=' value='2.3.16' format='version'> - <tmpl_var name="ssl_comment">SSLProtocol All -SSLv3 + <tmpl_var name="ssl_comment">SSLProtocol All -SSLv3 -TLSv1 -TLSv1.1 <tmpl_else> <tmpl_var name="ssl_comment">SSLProtocol All -SSLv2 -SSLv3 </tmpl_if> @@ -78,7 +78,7 @@ NameVirtualHost *:<tmpl_var name="vhost_port"> <tmpl_var name="ssl_comment">SSLCertificateKeyFile /usr/local/ispconfig/interface/ssl/ispserver.key <tmpl_var name="ssl_bundle_comment">SSLCACertificateFile /usr/local/ispconfig/interface/ssl/ispserver.bundle - <tmpl_var name="ssl_comment">SSLCipherSuite 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 + <tmpl_var name="ssl_comment">SSLCipherSuite 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 <tmpl_var name="ssl_comment">SSLHonorCipherOrder On <tmpl_if name='apache_version' op='>=' value='2.4.3' format='version'> <tmpl_var name="ssl_comment">SSLCompression Off diff --git a/install/tpl/debian6_dovecot.conf.master b/install/tpl/debian6_dovecot.conf.master index a112712690d663db76537911af3f9e04e9ced29e..f1df2e241e855df746a3b4d7eea5498c8bdf6ba9 100644 --- a/install/tpl/debian6_dovecot.conf.master +++ b/install/tpl/debian6_dovecot.conf.master @@ -60,6 +60,7 @@ plugin { # no longer needed, as 'sieve' is in userdb extra fields: sieve=/var/vmail/%d/%n/.sieve + sieve_before=/var/vmail/%d/%n/.ispconfig-before.sieve sieve_after=/var/vmail/%d/%n/.ispconfig.sieve sieve_max_script_size = 2M sieve_max_actions = 100 diff --git a/install/tpl/debian6_dovecot2.conf.master b/install/tpl/debian6_dovecot2.conf.master index a1810ab509b91974bacec775f03b80dbc6ee719f..1080eeb5599706a7c1361def9500c621e6808480 100644 --- a/install/tpl/debian6_dovecot2.conf.master +++ b/install/tpl/debian6_dovecot2.conf.master @@ -7,8 +7,10 @@ mail_privileged_group = vmail ssl_cert = </etc/postfix/smtpd.cert ssl_key = </etc/postfix/smtpd.key ssl_dh = </etc/dovecot/dh.pem -ssl_protocols = !SSLv2 !SSLv3 -ssl_min_protocol = TLSv1 +ssl_protocols = !SSLv2 !SSLv3 !TLSv1 !TLSv1.1 +ssl_min_protocol = TLSv1.2 +ssl_cipher_list = 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 +ssl_prefer_server_ciphers = no auth_verbose = yes mail_max_userip_connections = 100 mail_plugins = quota @@ -29,6 +31,7 @@ plugin { # no longer needed, as 'sieve' is in userdb extra fields: sieve=/var/vmail/%d/%n/.sieve + sieve_before=/var/vmail/%d/%n/.ispconfig-before.sieve sieve_after=/var/vmail/%d/%n/.ispconfig.sieve sieve_max_script_size = 2M sieve_max_actions = 100 diff --git a/install/tpl/debian_dovecot.conf.master b/install/tpl/debian_dovecot.conf.master index f91959a1f5fd3958cef2ebbc24fbdf7478f4fe7c..4109498cea9214adfd036449df92f876efa1a778 100644 --- a/install/tpl/debian_dovecot.conf.master +++ b/install/tpl/debian_dovecot.conf.master @@ -1145,6 +1145,7 @@ plugin { # and they're not deleted automatically (use a cronjob or something). #lazy_expunge = .EXPUNGED/ .DELETED/ .DELETED/.EXPUNGED/ + sieve_before=/var/vmail/%d/%n/.ispconfig-before.sieve sieve_after=/var/vmail/%d/%n/.ispconfig.sieve sieve_max_script_size = 2M sieve_max_actions = 100 diff --git a/install/tpl/debian_dovecot2.conf.master b/install/tpl/debian_dovecot2.conf.master index 88d6a1b9248fb07d04984a667644b7552d0d16ae..60a1263e48e3d3e218c8ab9cf7f957a1ffca6fa7 100644 --- a/install/tpl/debian_dovecot2.conf.master +++ b/install/tpl/debian_dovecot2.conf.master @@ -7,7 +7,9 @@ mail_privileged_group = vmail postmaster_address = postmaster@example.com ssl_cert = </etc/postfix/smtpd.cert ssl_key = </etc/postfix/smtpd.key -ssl_protocols = !SSLv2 !SSLv3 +ssl_min_protocol = TLSv1.2 +ssl_cipher_list = 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 +ssl_prefer_server_ciphers = no auth_verbose = yes mail_max_userip_connections = 100 mail_plugins = $mail_plugins quota @@ -28,6 +30,7 @@ plugin { # no longer needed, as 'sieve' is in userdb extra fields: sieve=/var/vmail/%d/%n/.sieve + sieve_before=/var/vmail/%d/%n/.ispconfig-before.sieve sieve_after=/var/vmail/%d/%n/.ispconfig.sieve sieve_max_script_size = 2M sieve_max_actions = 100 diff --git a/install/tpl/debian_postfix.conf.master b/install/tpl/debian_postfix.conf.master index 1c739a5c7ebd9fcf01d81c6f74c962f2129aab34..07128357e4d5441addb8757927e869e6af51be47 100644 --- a/install/tpl/debian_postfix.conf.master +++ b/install/tpl/debian_postfix.conf.master @@ -1,12 +1,12 @@ alias_maps = hash:/etc/aliases, hash:/var/lib/mailman/data/aliases alias_database = hash:/etc/aliases, hash:/var/lib/mailman/data/aliases -virtual_alias_domains = -virtual_alias_maps = hash:/var/lib/mailman/data/virtual-mailman, proxy:mysql:{config_dir}/mysql-virtual_forwardings.cf, proxy:mysql:{config_dir}/mysql-virtual_email2email.cf +virtual_alias_domains = proxy:mysql:{config_dir}/mysql-virtual_alias_domains.cf +virtual_alias_maps = hash:/var/lib/mailman/data/virtual-mailman, proxy:mysql:{config_dir}/mysql-virtual_forwardings.cf, proxy:mysql:{config_dir}/mysql-virtual_alias_maps.cf, proxy:mysql:{config_dir}/mysql-virtual_email2email.cf virtual_mailbox_domains = proxy:mysql:{config_dir}/mysql-virtual_domains.cf virtual_mailbox_maps = proxy:mysql:{config_dir}/mysql-virtual_mailboxes.cf virtual_mailbox_base = {vmail_mailbox_base} -virtual_uid_maps = mysql:/etc/postfix/mysql-virtual_uids.cf -virtual_gid_maps = mysql:/etc/postfix/mysql-virtual_gids.cf +virtual_uid_maps = proxy:mysql:/etc/postfix/mysql-virtual_uids.cf +virtual_gid_maps = proxy:mysql:/etc/postfix/mysql-virtual_gids.cf sender_bcc_maps = proxy:mysql:{config_dir}/mysql-virtual_outgoing_bcc.cf inet_protocols=all inet_interfaces = all @@ -14,21 +14,23 @@ smtpd_sasl_auth_enable = yes broken_sasl_auth_clients = yes smtpd_sasl_authenticated_header = yes smtpd_restriction_classes = greylisting -greylisting = check_policy_service inet:127.0.0.1:10023 -smtpd_recipient_restrictions = permit_mynetworks, permit_sasl_authenticated, reject_unauth_destination, check_recipient_access mysql:{config_dir}/mysql-virtual_recipient.cf{rbl_list}{greylisting}, check_policy_service unix:private/quota-status +greylisting = check_policy_service inet:127.0.0.1:10023 +smtpd_recipient_restrictions = permit_mynetworks, reject_unknown_recipient_domain, check_recipient_access proxy:mysql:{config_dir}/mysql-verify_recipients.cf, permit_sasl_authenticated, reject_non_fqdn_recipient, reject_unauth_destination, check_recipient_access proxy:mysql:{config_dir}/mysql-virtual_recipient.cf{greylisting}, check_policy_service unix:private/quota-status smtpd_use_tls = yes smtpd_tls_security_level = may smtpd_tls_cert_file = {config_dir}/smtpd.cert smtpd_tls_key_file = {config_dir}/smtpd.key transport_maps = hash:/var/lib/mailman/data/transport-mailman, proxy:mysql:{config_dir}/mysql-virtual_transports.cf -relay_domains = mysql:{config_dir}/mysql-virtual_relaydomains.cf -relay_recipient_maps = mysql:{config_dir}/mysql-virtual_relayrecipientmaps.cf +relay_domains = proxy:mysql:{config_dir}/mysql-virtual_relaydomains.cf +relay_recipient_maps = proxy:mysql:{config_dir}/mysql-virtual_relayrecipientmaps.cf smtpd_sender_login_maps = proxy:mysql:{config_dir}/mysql-virtual_sender_login_maps.cf -proxy_read_maps = $local_recipient_maps $mydestination $virtual_alias_maps $virtual_alias_domains $sender_bcc_maps $virtual_mailbox_maps $virtual_mailbox_domains $relay_recipient_maps $relay_domains $canonical_maps $sender_canonical_maps $recipient_canonical_maps $relocated_maps $transport_maps $mynetworks $smtpd_sender_login_maps +proxy_read_maps = $local_recipient_maps $mydestination $virtual_alias_maps $virtual_alias_domains $sender_bcc_maps $virtual_mailbox_maps $virtual_mailbox_domains $relay_recipient_maps $relay_domains $canonical_maps $sender_canonical_maps $recipient_canonical_maps $relocated_maps $transport_maps $mynetworks $smtpd_sender_login_maps $virtual_uid_maps $virtual_gid_maps $smtpd_client_restrictions $smtpd_sender_restrictions $smtpd_recipient_restrictions smtpd_helo_required = yes -smtpd_helo_restrictions = permit_sasl_authenticated, permit_mynetworks, check_helo_access regexp:{config_dir}/helo_access, reject_non_fqdn_helo_hostname, reject_invalid_helo_hostname, reject_unknown_helo_hostname, check_helo_access regexp:{config_dir}/blacklist_helo -smtpd_sender_restrictions = check_sender_access regexp:{config_dir}/tag_as_originating.re {reject_slm}, permit_mynetworks, permit_sasl_authenticated, check_sender_access mysql:{config_dir}/mysql-virtual_sender.cf, check_sender_access regexp:{config_dir}/tag_as_foreign.re -smtpd_client_restrictions = check_client_access mysql:{config_dir}/mysql-virtual_client.cf +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_etrn_restrictions = permit_mynetworks, reject +smtpd_data_restrictions = permit_mynetworks, reject_unauth_pipelining, reject_multi_recipient_bounce, permit smtpd_client_message_rate_limit = 100 maildrop_destination_concurrency_limit = 1 maildrop_destination_recipient_limit = 1 @@ -39,8 +41,13 @@ nested_header_checks = regexp:{config_dir}/nested_header_checks body_checks = regexp:{config_dir}/body_checks owner_request_special = no smtp_tls_security_level = may -smtpd_tls_mandatory_protocols = !SSLv2, !SSLv3 -smtpd_tls_protocols = !SSLv2,!SSLv3 -smtp_tls_protocols = !SSLv2,!SSLv3 +smtpd_tls_mandatory_protocols = !SSLv2, !SSLv3, !TLSv1, !TLSv1.1 +smtpd_tls_protocols = !SSLv2,!SSLv3, !TLSv1, !TLSv1.1 +smtp_tls_protocols = !SSLv2,!SSLv3, !TLSv1, !TLSv1.1 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 +# needed for postfix < 3.3 when using reject_unverified_recipient (lmtp): +enable_original_recipient = yes diff --git a/install/tpl/fedora_dovecot.conf.master b/install/tpl/fedora_dovecot.conf.master index e6879549864e944d94620856be7e12e266ed0381..0bd4f7ca6d8b5dd9be6dbc10ebe5cdb6a2a89f6f 100644 --- a/install/tpl/fedora_dovecot.conf.master +++ b/install/tpl/fedora_dovecot.conf.master @@ -1306,6 +1306,7 @@ plugin { # ManageSieve this is where the uploaded scripts are stored. sieve_dir=~/sieve + sieve_before=/var/vmail/%d/%n/.ispconfig-before.sieve sieve_after=/var/vmail/%d/%n/.ispconfig.sieve sieve_max_script_size = 2M sieve_max_actions = 100 diff --git a/install/tpl/fedora_dovecot2.conf.master b/install/tpl/fedora_dovecot2.conf.master index 9ec150ce493d6ccc1ca4d771a13ecc77a9b70ccd..4b9bb5c6a9cc1bc142bd45468af930758b598444 100644 --- a/install/tpl/fedora_dovecot2.conf.master +++ b/install/tpl/fedora_dovecot2.conf.master @@ -6,7 +6,9 @@ log_timestamp = "%Y-%m-%d %H:%M:%S " mail_privileged_group = vmail ssl_cert = </etc/postfix/smtpd.cert ssl_key = </etc/postfix/smtpd.key -ssl_protocols = !SSLv2 !SSLv3 +ssl_min_protocol = TLSv1.2 +ssl_cipher_list = 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 +ssl_prefer_server_ciphers = no auth_verbose = yes mail_plugins = quota passdb { @@ -26,6 +28,7 @@ plugin { # no longer needed, as 'sieve' is in userdb extra fields: sieve=/var/vmail/%d/%n/.sieve + sieve_before=/var/vmail/%d/%n/.ispconfig-before.sieve sieve_after=/var/vmail/%d/%n/.ispconfig.sieve sieve_max_script_size = 2M sieve_max_actions = 100 diff --git a/install/tpl/fedora_postfix.conf.master b/install/tpl/fedora_postfix.conf.master index d504c6ed56db5da9ad23cfe6d4beb05477854bc6..a580f6a04268fdb9698e00270e6666399bdbd495 100644 --- a/install/tpl/fedora_postfix.conf.master +++ b/install/tpl/fedora_postfix.conf.master @@ -1,30 +1,32 @@ -virtual_alias_domains = -virtual_alias_maps = hash:/etc/mailman/virtual-mailman, proxy:mysql:{config_dir}/mysql-virtual_forwardings.cf, proxy:mysql:{config_dir}/mysql-virtual_email2email.cf +virtual_alias_domains = proxy:mysql:{config_dir}/mysql-virtual_alias_domains.cf +virtual_alias_maps = hash:/var/lib/mailman/data/virtual-mailman, proxy:mysql:{config_dir}/mysql-virtual_forwardings.cf, proxy:mysql:{config_dir}/mysql-virtual_alias_maps.cf, proxy:mysql:{config_dir}/mysql-virtual_email2email.cf virtual_mailbox_domains = proxy:mysql:{config_dir}/mysql-virtual_domains.cf virtual_mailbox_maps = proxy:mysql:{config_dir}/mysql-virtual_mailboxes.cf virtual_mailbox_base = {vmail_mailbox_base} -virtual_uid_maps = mysql:/etc/postfix/mysql-virtual_uids.cf -virtual_gid_maps = mysql:/etc/postfix/mysql-virtual_gids.cf +virtual_uid_maps = proxy:mysql:/etc/postfix/mysql-virtual_uids.cf +virtual_gid_maps = proxy:mysql:/etc/postfix/mysql-virtual_gids.cf sender_bcc_maps = proxy:mysql:{config_dir}/mysql-virtual_outgoing_bcc.cf smtpd_sasl_auth_enable = yes broken_sasl_auth_clients = yes smtpd_sasl_authenticated_header = yes smtpd_restriction_classes = greylisting greylisting = check_policy_service inet:127.0.0.1:10023 -smtpd_recipient_restrictions = permit_mynetworks, permit_sasl_authenticated, reject_unauth_destination, check_recipient_access mysql:{config_dir}/mysql-virtual_recipient.cf{rbl_list}{greylisting}, check_policy_service unix:private/quota-status +smtpd_recipient_restrictions = permit_mynetworks, reject_unknown_recipient_domain, check_recipient_access proxy:mysql:{config_dir}/mysql-verify_recipients.cf, permit_sasl_authenticated, reject_non_fqdn_recipient, reject_unauth_destination, check_recipient_access proxy:mysql:{config_dir}/mysql-virtual_recipient.cf{greylisting}, check_policy_service unix:private/quota-status smtpd_use_tls = yes smtpd_tls_security_level = may smtpd_tls_cert_file = {config_dir}/smtpd.cert smtpd_tls_key_file = {config_dir}/smtpd.key transport_maps = hash:/var/lib/mailman/data/transport-mailman, proxy:mysql:{config_dir}/mysql-virtual_transports.cf -relay_domains = mysql:{config_dir}/mysql-virtual_relaydomains.cf -relay_recipient_maps = mysql:{config_dir}/mysql-virtual_relayrecipientmaps.cf +relay_domains = proxy:mysql:{config_dir}/mysql-virtual_relaydomains.cf +relay_recipient_maps = proxy:mysql:{config_dir}/mysql-virtual_relayrecipientmaps.cf smtpd_sender_login_maps = proxy:mysql:{config_dir}/mysql-virtual_sender_login_maps.cf -proxy_read_maps = $local_recipient_maps $mydestination $virtual_alias_maps $virtual_alias_domains $sender_bcc_maps $virtual_mailbox_maps $virtual_mailbox_domains $relay_recipient_maps $relay_domains $canonical_maps $sender_canonical_maps $recipient_canonical_maps $relocated_maps $transport_maps $mynetworks $smtpd_sender_login_maps +proxy_read_maps = $local_recipient_maps $mydestination $virtual_alias_maps $virtual_alias_domains $sender_bcc_maps $virtual_mailbox_maps $virtual_mailbox_domains $relay_recipient_maps $relay_domains $canonical_maps $sender_canonical_maps $recipient_canonical_maps $relocated_maps $transport_maps $mynetworks $smtpd_sender_login_maps $virtual_uid_maps $virtual_gid_maps $smtpd_client_restrictions $smtpd_sender_restrictions $smtpd_recipient_restrictions smtpd_helo_required = yes -smtpd_helo_restrictions = permit_sasl_authenticated, permit_mynetworks, check_helo_access regexp:{config_dir}/helo_access, reject_non_fqdn_helo_hostname, reject_invalid_helo_hostname, reject_unknown_helo_hostname, check_helo_access regexp:{config_dir}/blacklist_helo -smtpd_sender_restrictions = check_sender_access regexp:{config_dir}/tag_as_originating.re {reject_slm}, permit_mynetworks, permit_sasl_authenticated, check_sender_access mysql:{config_dir}/mysql-virtual_sender.cf, check_sender_access regexp:{config_dir}/tag_as_foreign.re -smtpd_client_restrictions = check_client_access mysql:{config_dir}/mysql-virtual_client.cf +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_etrn_restrictions = permit_mynetworks, reject +smtpd_data_restrictions = permit_mynetworks, reject_unauth_pipelining, reject_multi_recipient_bounce, permit smtpd_client_message_rate_limit = 100 maildrop_destination_concurrency_limit = 1 maildrop_destination_recipient_limit = 1 @@ -35,8 +37,13 @@ nested_header_checks = regexp:{config_dir}/nested_header_checks body_checks = regexp:{config_dir}/body_checks inet_interfaces = all smtp_tls_security_level = may -smtpd_tls_mandatory_protocols = !SSLv2, !SSLv3 -smtpd_tls_protocols = !SSLv2,!SSLv3 -smtp_tls_protocols = !SSLv2,!SSLv3 +smtpd_tls_mandatory_protocols = !SSLv2, !SSLv3, !TLSv1, !TLSv1.1 +smtpd_tls_protocols = !SSLv2,!SSLv3, !TLSv1, !TLSv1.1 +smtp_tls_protocols = !SSLv2,!SSLv3, !TLSv1, !TLSv1.1 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 +# 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 cad2b97c3cf0d2a17846fcd2fc543fa2b01915f5..d0ed3d69f78e749a0d92656e770d6c5a5f43d3ee 100644 --- a/install/tpl/gentoo_postfix.conf.master +++ b/install/tpl/gentoo_postfix.conf.master @@ -1,29 +1,31 @@ -virtual_alias_domains = -virtual_alias_maps = proxy:mysql:{config_dir}/mysql-virtual_forwardings.cf, proxy:mysql:{config_dir}/mysql-virtual_email2email.cf +virtual_alias_domains = proxy:mysql:{config_dir}/mysql-virtual_alias_domains.cf +virtual_alias_maps = hash:/var/lib/mailman/data/virtual-mailman, proxy:mysql:{config_dir}/mysql-virtual_forwardings.cf, proxy:mysql:{config_dir}/mysql-virtual_alias_maps.cf, proxy:mysql:{config_dir}/mysql-virtual_email2email.cf virtual_mailbox_domains = proxy:mysql:{config_dir}/mysql-virtual_domains.cf virtual_mailbox_maps = proxy:mysql:{config_dir}/mysql-virtual_mailboxes.cf virtual_mailbox_base = {vmail_mailbox_base} -virtual_uid_maps = mysql:/etc/postfix/mysql-virtual_uids.cf -virtual_gid_maps = mysql:/etc/postfix/mysql-virtual_gids.cf +virtual_uid_maps = proxy:mysql:/etc/postfix/mysql-virtual_uids.cf +virtual_gid_maps = proxy:mysql:/etc/postfix/mysql-virtual_gids.cf smtpd_sasl_auth_enable = yes broken_sasl_auth_clients = yes smtpd_sasl_authenticated_header = yes smtpd_restriction_classes = greylisting greylisting = check_policy_service inet:127.0.0.1:10023 -smtpd_recipient_restrictions = permit_mynetworks, permit_sasl_authenticated, reject_unauth_destination, check_recipient_access mysql:{config_dir}/mysql-virtual_recipient.cf{rbl_list}{greylisting}, check_policy_service unix:private/quota-status +smtpd_recipient_restrictions = permit_mynetworks, reject_unknown_recipient_domain, check_recipient_access proxy:mysql:{config_dir}/mysql-verify_recipients.cf, permit_sasl_authenticated, reject_non_fqdn_recipient, reject_unauth_destination, check_recipient_access proxy:mysql:{config_dir}/mysql-virtual_recipient.cf{greylisting}, check_policy_service unix:private/quota-status smtpd_use_tls = yes smtpd_tls_security_level = may smtpd_tls_cert_file = {config_dir}/smtpd.cert smtpd_tls_key_file = {config_dir}/smtpd.key transport_maps = hash:/var/lib/mailman/data/transport-mailman, proxy:mysql:{config_dir}/mysql-virtual_transports.cf -relay_domains = mysql:{config_dir}/mysql-virtual_relaydomains.cf -relay_recipient_maps = mysql:{config_dir}/mysql-virtual_relayrecipientmaps.cf +relay_domains = proxy:mysql:{config_dir}/mysql-virtual_relaydomains.cf +relay_recipient_maps = proxy:mysql:{config_dir}/mysql-virtual_relayrecipientmaps.cf smtpd_sender_login_maps = proxy:mysql:{config_dir}/mysql-virtual_sender_login_maps.cf -proxy_read_maps = $local_recipient_maps $mydestination $virtual_alias_maps $virtual_alias_domains $virtual_mailbox_maps $virtual_mailbox_domains $relay_recipient_maps $relay_domains $canonical_maps $sender_canonical_maps $recipient_canonical_maps $relocated_maps $transport_maps $mynetworks $smtpd_sender_login_maps +proxy_read_maps = $local_recipient_maps $mydestination $virtual_alias_maps $virtual_alias_domains $virtual_mailbox_maps $virtual_mailbox_domains $relay_recipient_maps $relay_domains $canonical_maps $sender_canonical_maps $recipient_canonical_maps $relocated_maps $transport_maps $mynetworks $smtpd_sender_login_maps $virtual_uid_maps $virtual_gid_maps $smtpd_client_restrictions $smtpd_sender_restrictions $smtpd_recipient_restrictions smtpd_helo_required = yes -smtpd_helo_restrictions = permit_sasl_authenticated, permit_mynetworks, check_helo_access regexp:{config_dir}/helo_access, reject_non_fqdn_helo_hostname, reject_invalid_helo_hostname, check_helo_access regexp:{config_dir}/blacklist_helo -smtpd_sender_restrictions = check_sender_access regexp:{config_dir}/tag_as_originating.re {reject_slm}, permit_mynetworks, permit_sasl_authenticated, check_sender_access mysql:{config_dir}/mysql-virtual_sender.cf, check_sender_access regexp:{config_dir}/tag_as_foreign.re -smtpd_client_restrictions = check_client_access mysql:{config_dir}/mysql-virtual_client.cf +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_etrn_restrictions = permit_mynetworks, reject +smtpd_data_restrictions = permit_mynetworks, reject_unauth_pipelining, reject_multi_recipient_bounce, permit smtpd_client_message_rate_limit = 100 maildrop_destination_concurrency_limit = 1 maildrop_destination_recipient_limit = 1 @@ -34,8 +36,13 @@ nested_header_checks = regexp:{config_dir}/nested_header_checks body_checks = regexp:{config_dir}/body_checks inet_interfaces = all smtp_tls_security_level = may -smtpd_tls_mandatory_protocols = !SSLv2, !SSLv3 -smtpd_tls_protocols = !SSLv2,!SSLv3 -smtp_tls_protocols = !SSLv2,!SSLv3 +smtpd_tls_mandatory_protocols = !SSLv2, !SSLv3, !TLSv1, !TLSv1.1 +smtpd_tls_protocols = !SSLv2,!SSLv3, !TLSv1, !TLSv1.1 +smtp_tls_protocols = !SSLv2,!SSLv3, !TLSv1, !TLSv1.1 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 +# needed for postfix < 3.3 when using reject_unverified_recipient (lmtp): +enable_original_recipient = yes diff --git a/install/tpl/mysql-verify_recipients.cf.master b/install/tpl/mysql-verify_recipients.cf.master new file mode 100644 index 0000000000000000000000000000000000000000..2b433491d8e3d9817d20f2d6d9674200410ade96 --- /dev/null +++ b/install/tpl/mysql-verify_recipients.cf.master @@ -0,0 +1,5 @@ +user = {mysql_server_ispconfig_user} +password = {mysql_server_ispconfig_password} +dbname = {mysql_server_database} +hosts = {mysql_server_ip} +query = SELECT 'reject_unverified_recipient' FROM mail_domain WHERE domain = '%s' AND active = 'y' AND server_id = {server_id} diff --git a/install/tpl/mysql-virtual_alias_domains.cf.master b/install/tpl/mysql-virtual_alias_domains.cf.master new file mode 100644 index 0000000000000000000000000000000000000000..26b14ac00da538ba9253fe937cb6a4f79bec5942 --- /dev/null +++ b/install/tpl/mysql-virtual_alias_domains.cf.master @@ -0,0 +1,7 @@ +user = {mysql_server_ispconfig_user} +password = {mysql_server_ispconfig_password} +dbname = {mysql_server_database} +hosts = {mysql_server_ip} +query = SELECT SUBSTRING_INDEX(destination, '@', -1) FROM mail_forwarding + WHERE source = '@%s' AND type = 'aliasdomain' AND active = 'y' AND server_id = {server_id} + diff --git a/install/tpl/mysql-virtual_alias_maps.cf.master b/install/tpl/mysql-virtual_alias_maps.cf.master new file mode 100644 index 0000000000000000000000000000000000000000..e55fd8ea8df088457ba43a01c8df62a33e888b6f --- /dev/null +++ b/install/tpl/mysql-virtual_alias_maps.cf.master @@ -0,0 +1,6 @@ +user = {mysql_server_ispconfig_user} +password = {mysql_server_ispconfig_password} +dbname = {mysql_server_database} +hosts = {mysql_server_ip} +query = SELECT destination FROM mail_forwarding + WHERE source = '@%d' AND type = 'aliasdomain' AND active = 'y' AND server_id = {server_id} diff --git a/install/tpl/mysql-virtual_client.cf.master b/install/tpl/mysql-virtual_client.cf.master index bad0cb9655db1fcb2924438f51b073de7b61f6db..106b647e4ae6aca74a46ecf3ca4a2cce29ff0995 100644 --- a/install/tpl/mysql-virtual_client.cf.master +++ b/install/tpl/mysql-virtual_client.cf.master @@ -1,8 +1,5 @@ user = {mysql_server_ispconfig_user} password = {mysql_server_ispconfig_password} dbname = {mysql_server_database} -table = mail_access -select_field = access -where_field = source -additional_conditions = and type = 'client' and active = 'y' -hosts = {mysql_server_ip} \ No newline at end of file +hosts = {mysql_server_ip} +query = select access from mail_access where source = '%s' and type = 'client' and active = 'y' diff --git a/install/tpl/mysql-virtual_domains.cf.master b/install/tpl/mysql-virtual_domains.cf.master index 5b711422f257b4eeb9b0ea998a11346aa4c4330e..11ccb046ef0a37a9bd2a3f33437a5efbe4e7b428 100644 --- a/install/tpl/mysql-virtual_domains.cf.master +++ b/install/tpl/mysql-virtual_domains.cf.master @@ -1,8 +1,6 @@ user = {mysql_server_ispconfig_user} password = {mysql_server_ispconfig_password} dbname = {mysql_server_database} -table = mail_domain -select_field = domain -where_field = domain -additional_conditions = and active = 'y' and server_id = {server_id} -hosts = {mysql_server_ip} \ No newline at end of file +hosts = {mysql_server_ip} +query = SELECT domain FROM mail_domain WHERE domain = '%s' AND active = 'y' AND server_id = {server_id} + AND NOT EXISTS (SELECT source FROM mail_forwarding WHERE source = '@%s' AND type = 'aliasdomain' AND active = 'y' AND server_id = {server_id}) diff --git a/install/tpl/mysql-virtual_email2email.cf.master b/install/tpl/mysql-virtual_email2email.cf.master index e18ef2407e80040c1f0e7875753902c1de61f342..17e1cdf0bf93c91370183d62947d277b54e02015 100644 --- a/install/tpl/mysql-virtual_email2email.cf.master +++ b/install/tpl/mysql-virtual_email2email.cf.master @@ -1,8 +1,7 @@ user = {mysql_server_ispconfig_user} password = {mysql_server_ispconfig_password} dbname = {mysql_server_database} -table = mail_user -select_field = email -where_field = email -additional_conditions = and postfix = 'y' and server_id = {server_id} -hosts = {mysql_server_ip} \ No newline at end of file +hosts = {mysql_server_ip} +query = SELECT email FROM mail_user WHERE email = '%s' AND postfix = 'y' AND disabledeliver = 'n' AND server_id = {server_id} + UNION + SELECT cc AS email FROM mail_user WHERE email = '%s' AND postfix = 'y' AND disabledeliver = 'y' AND server_id = {server_id} diff --git a/install/tpl/mysql-virtual_forwardings.cf.master b/install/tpl/mysql-virtual_forwardings.cf.master index e39b129f509714e523aada079519e9a662e06ce8..9ab6f3e860fa06ac2f987343f17f2c43115f36bd 100644 --- a/install/tpl/mysql-virtual_forwardings.cf.master +++ b/install/tpl/mysql-virtual_forwardings.cf.master @@ -2,4 +2,10 @@ user = {mysql_server_ispconfig_user} password = {mysql_server_ispconfig_password} dbname = {mysql_server_database} hosts = {mysql_server_ip} -query = SELECT u.email as target FROM mail_forwarding as s INNER JOIN mail_user as u ON (u.email = CONCAT('%u@', SUBSTRING_INDEX(s.destination,'@',-1))) WHERE s.source = '@%d' AND s.type = 'aliasdomain' AND s.active = 'y' AND u.disabledeliver = 'n' AND s.server_id = {server_id} UNION SELECT s.destination as target FROM mail_forwarding as s WHERE s.source = '%s' AND s.type IN ('alias', 'forward') and s.active = 'y' AND s.server_id = {server_id} UNION SELECT s.destination as target FROM mail_forwarding as s INNER JOIN mail_forwarding as f ON (f.source = CONCAT('%u@', SUBSTRING_INDEX(s.destination,'@',-1))) WHERE s.source = '@%d' AND s.type = 'aliasdomain' AND s.active = 'y' AND f.active = 'y' AND s.server_id = {server_id} UNION SELECT s.destination as target FROM mail_forwarding as s WHERE s.source = '@%d' AND s.type IN ('catchall') and s.active = 'y' AND s.server_id = {server_id} UNION SELECT s.destination as target FROM mail_forwarding as s INNER JOIN mail_forwarding as t ON (t.source = s.destination AND t.type = 'catchall') WHERE s.source = '@%d' AND s.type = 'aliasdomain' and s.active = 'y' AND t.active = 'y' AND s.server_id = {server_id} +query = SELECT s.destination AS target FROM mail_forwarding AS s + WHERE s.source = '%s' AND s.type IN ('alias', 'forward') AND s.active = 'y' AND s.server_id = {server_id} + UNION + SELECT s.destination AS target FROM mail_forwarding AS s + WHERE s.source = '@%d' AND s.type = 'catchall' AND s.active = 'y' AND s.server_id = {server_id} + AND NOT EXISTS (SELECT email FROM mail_user WHERE email = '%s' AND server_id = {server_id}) + AND NOT EXISTS (SELECT source FROM mail_forwarding WHERE source = '%s' 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 7c7d995fc98bb334e087f3a0e307a793f8cc1b9b..5611b935dd2cf6f8fa2afd10713cdf313fb9e11f 100644 --- a/install/tpl/mysql-virtual_gids.cf.master +++ b/install/tpl/mysql-virtual_gids.cf.master @@ -1,8 +1,5 @@ user = {mysql_server_ispconfig_user} password = {mysql_server_ispconfig_password} dbname = {mysql_server_database} -table = mail_user -select_field = gid -where_field = email -additional_conditions = and postfix = 'y' and server_id = {server_id} -hosts = {mysql_server_ip} \ No newline at end of file +hosts = {mysql_server_ip} +query = select gid from mail_user where email = '%s' and postfix = '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 2fe47bbdf5d85c9765141208a7b43f844f44429e..97825f9ffc9c492e68f8703efce25f00b79d66e7 100644 --- a/install/tpl/mysql-virtual_mailboxes.cf.master +++ b/install/tpl/mysql-virtual_mailboxes.cf.master @@ -1,8 +1,5 @@ user = {mysql_server_ispconfig_user} password = {mysql_server_ispconfig_password} dbname = {mysql_server_database} -table = mail_user -select_field = CONCAT(SUBSTRING_INDEX(email,'@',-1),'/',SUBSTRING_INDEX(email,'@',1),'/') -where_field = login -additional_conditions = and postfix = 'y' and server_id = {server_id} hosts = {mysql_server_ip} +query = select CONCAT(SUBSTRING_INDEX(email,'@',-1),'/',SUBSTRING_INDEX(email,'@',1),'/') from mail_user where login = '%s' and postfix = 'y' and server_id = {server_id} diff --git a/install/tpl/mysql-virtual_outgoing_bcc.cf b/install/tpl/mysql-virtual_outgoing_bcc.cf deleted file mode 100644 index 78fca41a2f54013ac500613691dc8319cd1ab289..0000000000000000000000000000000000000000 --- a/install/tpl/mysql-virtual_outgoing_bcc.cf +++ /dev/null @@ -1,8 +0,0 @@ -user = {mysql_server_ispconfig_user} -password = {mysql_server_ispconfig_password} -dbname = {mysql_server_database} -table = mail_user -select_field = sender_cc -where_field = email -additional_conditions = and postfix = 'y' and disabledeliver = 'n' and disables$ -hosts = {mysql_server_ip} \ No newline at end of file diff --git a/install/tpl/mysql-virtual_outgoing_bcc.cf.master b/install/tpl/mysql-virtual_outgoing_bcc.cf.master index 53afa531062d2cadcfbdf5ee57464f366dbb7446..19b235fcf5a19c2b3a068e9a4820a671f194559d 100644 --- a/install/tpl/mysql-virtual_outgoing_bcc.cf.master +++ b/install/tpl/mysql-virtual_outgoing_bcc.cf.master @@ -1,8 +1,16 @@ user = {mysql_server_ispconfig_user} password = {mysql_server_ispconfig_password} dbname = {mysql_server_database} -table = mail_user -select_field = sender_cc -where_field = email -additional_conditions = and postfix = 'y' and disabledeliver = 'n' and disablesmtp = 'n' and sender_cc != '' -hosts = {mysql_server_ip} \ No newline at end of file +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} + UNION + SELECT SUBSTRING_INDEX(u.sender_cc, ',', 1) AS sender_cc + FROM mail_user u, mail_forwarding f + WHERE f.destination REGEXP CONCAT( '((^|\\n)[[:blank:]]*,?|[[:alnum:]][[:blank:]]*,)[[:blank:]]*', + REPLACE( REPLACE(u.email, '+', '\\+'), '.', '\\.' ), + '[[: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} + ) 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 55378b29cae4ebbe59815fedfed235c61632a4a1..5203b1a2ea65a597d034d204289f4abc6bdffd1b 100644 --- a/install/tpl/mysql-virtual_policy_greylist.cf.master +++ b/install/tpl/mysql-virtual_policy_greylist.cf.master @@ -1,10 +1,13 @@ user = {mysql_server_ispconfig_user} password = {mysql_server_ispconfig_password} dbname = {mysql_server_database} +hosts = {mysql_server_ip} query = SELECT 'greylisting' FROM - (SELECT `greylisting`, 1 as `prio` FROM `mail_user` WHERE `server_id` = {server_id} AND `email` = '%s' - UNION SELECT `greylisting`, 2 as `prio` FROM `mail_forwarding` WHERE `server_id` = {server_id} AND `source` = '%s' - UNION SELECT `greylisting`, 3 as `prio` FROM `mail_forwarding` WHERE `server_id` = {server_id} AND `source` = '@%d' ORDER BY `prio` ASC LIMIT 1) as rules + ( + SELECT `greylisting`, 1 as `prio` FROM `mail_user` WHERE `server_id` = {server_id} AND `email` = '%s' + UNION + SELECT `greylisting`, 2 as `prio` FROM `mail_forwarding` WHERE `server_id` = {server_id} AND `source` = '%s' + UNION + SELECT `greylisting`, 3 as `prio` FROM `mail_forwarding` WHERE `server_id` = {server_id} AND `source` = '@%d' ORDER BY `prio` ASC LIMIT 1 + ) AS rules WHERE rules.greylisting = 'y' - -hosts = {mysql_server_ip} diff --git a/install/tpl/mysql-virtual_recipient.cf.master b/install/tpl/mysql-virtual_recipient.cf.master index 49024f3ebd262cc8929fc947e373b21d5a56fac6..2099966df2411b223ec21b14f251056eeaf12f38 100644 --- a/install/tpl/mysql-virtual_recipient.cf.master +++ b/install/tpl/mysql-virtual_recipient.cf.master @@ -1,8 +1,5 @@ user = {mysql_server_ispconfig_user} password = {mysql_server_ispconfig_password} dbname = {mysql_server_database} -table = mail_access -select_field = access -where_field = source -additional_conditions = and type = 'recipient' and active = 'y' and server_id = {server_id} -hosts = {mysql_server_ip} \ No newline at end of file +hosts = {mysql_server_ip} +query = select access from mail_access where source = '%s' and type = 'recipient' and active = 'y' and server_id = {server_id} diff --git a/install/tpl/mysql-virtual_relaydomains.cf.master b/install/tpl/mysql-virtual_relaydomains.cf.master index fb7bec1a3a60d53ee9103f0a8bb32cc280bc8797..5ce2db6954429b96b9b4437f2cd9831cb002bc21 100644 --- a/install/tpl/mysql-virtual_relaydomains.cf.master +++ b/install/tpl/mysql-virtual_relaydomains.cf.master @@ -1,8 +1,5 @@ user = {mysql_server_ispconfig_user} password = {mysql_server_ispconfig_password} dbname = {mysql_server_database} -table = mail_transport -select_field = domain -where_field = domain -additional_conditions = and active = 'y' and server_id = {server_id} -hosts = {mysql_server_ip} \ No newline at end of file +hosts = {mysql_server_ip} +query = select domain from mail_transport where domain = '%s' and active = 'y' and server_id = {server_id} diff --git a/install/tpl/mysql-virtual_relayrecipientmaps.cf.master b/install/tpl/mysql-virtual_relayrecipientmaps.cf.master index a6304fe3234ff6ff70dbb5c594b6882ad8955ea0..ea67220215dcb3ec12d0a862e78cba08592ee75d 100644 --- a/install/tpl/mysql-virtual_relayrecipientmaps.cf.master +++ b/install/tpl/mysql-virtual_relayrecipientmaps.cf.master @@ -1,8 +1,5 @@ user = {mysql_server_ispconfig_user} password = {mysql_server_ispconfig_password} dbname = {mysql_server_database} -table = mail_relay_recipient -select_field = access -where_field = source -additional_conditions = and active = 'y' and server_id = {server_id} -hosts = {mysql_server_ip} \ No newline at end of file +hosts = {mysql_server_ip} +query = select access from mail_relay_recipient where source = '%s' and active = 'y' and server_id = {server_id} diff --git a/install/tpl/mysql-virtual_sender.cf.master b/install/tpl/mysql-virtual_sender.cf.master index 0ef634aec762547e1e92113d3e6be1499c8b9a1a..1a5c4cb877626f05b6ecfa8253b4aaed26144cf4 100644 --- a/install/tpl/mysql-virtual_sender.cf.master +++ b/install/tpl/mysql-virtual_sender.cf.master @@ -1,8 +1,5 @@ user = {mysql_server_ispconfig_user} password = {mysql_server_ispconfig_password} dbname = {mysql_server_database} -table = mail_access -select_field = access -where_field = source -additional_conditions = and type = 'sender' and active = 'y' and server_id = {server_id} -hosts = {mysql_server_ip} \ No newline at end of file +hosts = {mysql_server_ip} +query = select access from mail_access where source = '%s' and type = 'sender' and active = 'y' and server_id = {server_id} diff --git a/install/tpl/mysql-virtual_sender_login_maps.cf.master b/install/tpl/mysql-virtual_sender_login_maps.cf.master index 5b7f144f8cb94c5686a388f950651a86d1c9a618..f97229d213a9a549065e2ac458f31ae85dfdf3cf 100644 --- a/install/tpl/mysql-virtual_sender_login_maps.cf.master +++ b/install/tpl/mysql-virtual_sender_login_maps.cf.master @@ -1,5 +1,7 @@ user = {mysql_server_ispconfig_user} password = {mysql_server_ispconfig_password} dbname = {mysql_server_database} -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}; -hosts = {mysql_server_ip} \ No newline at end of file +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}; diff --git a/install/tpl/mysql-virtual_transports.cf.master b/install/tpl/mysql-virtual_transports.cf.master index 048a7a81ac85deec4ae936a74515dc9f5cf2748c..e9585ca6cc1b1dc848104094da890710908e00bf 100644 --- a/install/tpl/mysql-virtual_transports.cf.master +++ b/install/tpl/mysql-virtual_transports.cf.master @@ -1,8 +1,5 @@ user = {mysql_server_ispconfig_user} password = {mysql_server_ispconfig_password} dbname = {mysql_server_database} -table = mail_transport -select_field = transport -where_field = domain -additional_conditions = and active = 'y' and server_id = {server_id} -hosts = {mysql_server_ip} \ No newline at end of file +hosts = {mysql_server_ip} +query = select transport from mail_transport where domain = '%s' and active = 'y' and server_id = {server_id} diff --git a/install/tpl/mysql-virtual_uids.cf.master b/install/tpl/mysql-virtual_uids.cf.master index da3cd7c2a0936dc181a478d568a12a3a7aed7347..de35368c0ad39dbba4ee1cfb52ed5f8a48fbab11 100644 --- a/install/tpl/mysql-virtual_uids.cf.master +++ b/install/tpl/mysql-virtual_uids.cf.master @@ -1,8 +1,5 @@ user = {mysql_server_ispconfig_user} password = {mysql_server_ispconfig_password} dbname = {mysql_server_database} -table = mail_user -select_field = uid -where_field = email -additional_conditions = and postfix = 'y' and server_id = {server_id} hosts = {mysql_server_ip} +query = select uid from mail_user where email = '%s' and postfix = 'y' and server_id = {server_id} diff --git a/install/tpl/named.conf.options.master b/install/tpl/named.conf.options.master index f13976ffd6db31f72447c1d0d57be7d2935a556d..88c0e06493493f9493bfccb733e9bba74de22d25 100644 --- a/install/tpl/named.conf.options.master +++ b/install/tpl/named.conf.options.master @@ -5,9 +5,9 @@ options { // to talk to, you may need to fix the firewall to allow multiple // ports to talk. See http://www.kb.cert.org/vuls/id/800113 - // If your ISP provided one or more IP addresses for stable - // nameservers, you probably want to use them as forwarders. - // Uncomment the following block, and insert the addresses replacing + // If your ISP provided one or more IP addresses for stable + // nameservers, you probably want to use them as forwarders. + // Uncomment the following block, and insert the addresses replacing // the all-0's placeholder. // forwarders { @@ -21,8 +21,9 @@ options { dnssec-enable yes; dnssec-validation yes; dnssec-lookaside auto; + + allow-transfer {none;}; auth-nxdomain no; # conform to RFC1035 listen-on-v6 { any; }; }; - diff --git a/install/tpl/nginx_apps.vhost.master b/install/tpl/nginx_apps.vhost.master index 871dff8c57dddff8f6a45193345928e90c1dcb4a..2680b209a2522b8ef4455ffb73f4f835c3e66477 100644 --- a/install/tpl/nginx_apps.vhost.master +++ b/install/tpl/nginx_apps.vhost.master @@ -2,7 +2,7 @@ server { listen {apps_vhost_port} {ssl_on}; listen [::]:{apps_vhost_port} {ssl_on} ipv6only=on; - {ssl_comment}ssl_protocols TLSv1 TLSv1.1 TLSv1.2; + {ssl_comment}ssl_protocols TLSv1.2; {ssl_comment}ssl_certificate /usr/local/ispconfig/interface/ssl/ispserver.crt; {ssl_comment}ssl_certificate_key /usr/local/ispconfig/interface/ssl/ispserver.key; @@ -115,7 +115,7 @@ server { location /phpMyAdmin { rewrite ^/* /phpmyadmin last; } - + location /squirrelmail { root /usr/share/; index index.php index.html index.htm; @@ -200,7 +200,7 @@ server { fastcgi_pass unix:{cgi_socket}; } - location /images/mailman { + location ^~ /images/mailman { alias /usr/share/images/mailman; } diff --git a/install/tpl/nginx_ispconfig.vhost.master b/install/tpl/nginx_ispconfig.vhost.master index aad670e97a8a74d022eb3c0c11927c559bd858d6..dbe44d7064861eae187731a39e5ced7d120affd3 100644 --- a/install/tpl/nginx_ispconfig.vhost.master +++ b/install/tpl/nginx_ispconfig.vhost.master @@ -1,13 +1,13 @@ server { listen {vhost_port} {ssl_on}; listen [::]:{vhost_port} {ssl_on} ipv6only=on; - - {ssl_comment}ssl_protocols TLSv1 TLSv1.1 TLSv1.2; + + {ssl_comment}ssl_protocols TLSv1.2; {ssl_comment}ssl_certificate /usr/local/ispconfig/interface/ssl/ispserver.crt; {ssl_comment}ssl_certificate_key /usr/local/ispconfig/interface/ssl/ispserver.key; {ssl_comment}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_comment}ssl_prefer_server_ciphers on; - + # redirect to https if accessed with http {ssl_comment}error_page 497 https://$host:{vhost_port}$request_uri; @@ -44,7 +44,7 @@ server { location ~ /\. { deny all; } - + # location /phpmyadmin { # root /usr/share/; # index index.php index.html index.htm; @@ -64,7 +64,7 @@ server { # location /phpMyAdmin { # rewrite ^/* /phpmyadmin last; # } -# +# # location /squirrelmail { # root /usr/share/; # index index.php index.html index.htm; diff --git a/install/tpl/opensuse_dovecot.conf.master b/install/tpl/opensuse_dovecot.conf.master index 1eacf4c3a31c1e35562a19477d641b2ef442a2c4..4a4d5e319ca62e05a3286c250c76b0e7134ac481 100644 --- a/install/tpl/opensuse_dovecot.conf.master +++ b/install/tpl/opensuse_dovecot.conf.master @@ -1280,6 +1280,7 @@ plugin { # ManageSieve this is where the uploaded scripts are stored. sieve_dir=~/sieve + sieve_before=/var/vmail/%d/%n/.ispconfig-before.sieve sieve_after=/var/vmail/%d/%n/.ispconfig.sieve sieve_max_script_size = 2M sieve_max_actions = 100 diff --git a/install/tpl/opensuse_dovecot2.conf.master b/install/tpl/opensuse_dovecot2.conf.master index 070590181b4e129e6b7871f947ecefb19a1def8a..9624c05684e4564f49613cf101a5eef60e2fdc8e 100644 --- a/install/tpl/opensuse_dovecot2.conf.master +++ b/install/tpl/opensuse_dovecot2.conf.master @@ -6,7 +6,9 @@ log_timestamp = "%Y-%m-%d %H:%M:%S " mail_privileged_group = vmail ssl_cert = </etc/postfix/smtpd.cert ssl_key = </etc/postfix/smtpd.key -ssl_protocols = !SSLv2 !SSLv3 +ssl_min_protocol = TLSv1.2 +ssl_cipher_list = 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 +ssl_prefer_server_ciphers = no mail_plugins = quota passdb { args = /etc/dovecot/dovecot-sql.conf @@ -25,6 +27,7 @@ plugin { # no longer needed, as 'sieve' is in userdb extra fields: sieve=/var/vmail/%d/%n/.sieve + sieve_before=/var/vmail/%d/%n/.ispconfig-before.sieve sieve_after=/var/vmail/%d/%n/.ispconfig.sieve sieve_max_script_size = 2M sieve_max_actions = 100 @@ -78,7 +81,7 @@ mail_plugins = $mail_plugins quota #2.3+ group = vmail #2.3+ mode = 0660 #2.3+ } -#2.3+ +#2.3+ #2.3+ unix_listener stats-writer { #2.3+ user = vmail #2.3+ group = vmail @@ -121,4 +124,3 @@ namespace inbox { special_use = \Trash } } - diff --git a/install/tpl/opensuse_postfix.conf.master b/install/tpl/opensuse_postfix.conf.master index c59d46fa970783c3b5f0b3275c7780028773692d..9065e9fa037036bade4f9460576e6151d9c39ab4 100644 --- a/install/tpl/opensuse_postfix.conf.master +++ b/install/tpl/opensuse_postfix.conf.master @@ -1,32 +1,34 @@ alias_maps = hash:/etc/aliases, hash:/var/lib/mailman/data/aliases alias_database = hash:/etc/aliases, hash:/var/lib/mailman/data/aliases -virtual_alias_domains = -virtual_alias_maps = hash:/etc/mailman/virtual-mailman, proxy:mysql:{config_dir}/mysql-virtual_forwardings.cf, proxy:mysql:{config_dir}/mysql-virtual_email2email.cf +virtual_alias_domains = proxy:mysql:{config_dir}/mysql-virtual_alias_domains.cf +virtual_alias_maps = hash:/var/lib/mailman/data/virtual-mailman, proxy:mysql:{config_dir}/mysql-virtual_forwardings.cf, proxy:mysql:{config_dir}/mysql-virtual_alias_maps.cf, proxy:mysql:{config_dir}/mysql-virtual_email2email.cf virtual_mailbox_domains = proxy:mysql:{config_dir}/mysql-virtual_domains.cf virtual_mailbox_maps = proxy:mysql:{config_dir}/mysql-virtual_mailboxes.cf virtual_mailbox_base = {vmail_mailbox_base} -virtual_uid_maps = mysql:/etc/postfix/mysql-virtual_uids.cf -virtual_gid_maps = mysql:/etc/postfix/mysql-virtual_gids.cf +virtual_uid_maps = proxy:mysql:/etc/postfix/mysql-virtual_uids.cf +virtual_gid_maps = proxy:mysql:/etc/postfix/mysql-virtual_gids.cf sender_bcc_maps = proxy:mysql:{config_dir}/mysql-virtual_outgoing_bcc.cf smtpd_sasl_auth_enable = yes broken_sasl_auth_clients = yes smtpd_sasl_authenticated_header = yes smtpd_restriction_classes = greylisting greylisting = check_policy_service inet:127.0.0.1:10023 -smtpd_recipient_restrictions = permit_mynetworks, permit_sasl_authenticated, reject_unauth_destination, check_recipient_access mysql:{config_dir}/mysql-virtual_recipient.cf{rbl_list}{greylisting}, check_policy_service unix:private/quota-status +smtpd_recipient_restrictions = permit_mynetworks, reject_unknown_recipient_domain, check_recipient_access proxy:mysql:{config_dir}/mysql-verify_recipients.cf, permit_sasl_authenticated, reject_non_fqdn_recipient, reject_unauth_destination, check_recipient_access proxy:mysql:{config_dir}/mysql-virtual_recipient.cf{greylisting}, check_policy_service unix:private/quota-status smtpd_use_tls = yes smtpd_tls_security_level = may smtpd_tls_cert_file = {config_dir}/smtpd.cert smtpd_tls_key_file = {config_dir}/smtpd.key transport_maps = hash:/var/lib/mailman/data/transport-mailman, proxy:mysql:{config_dir}/mysql-virtual_transports.cf -relay_domains = mysql:{config_dir}/mysql-virtual_relaydomains.cf -relay_recipient_maps = mysql:{config_dir}/mysql-virtual_relayrecipientmaps.cf +relay_domains = proxy:mysql:{config_dir}/mysql-virtual_relaydomains.cf +relay_recipient_maps = proxy:mysql:{config_dir}/mysql-virtual_relayrecipientmaps.cf smtpd_sender_login_maps = proxy:mysql:{config_dir}/mysql-virtual_sender_login_maps.cf -proxy_read_maps = $local_recipient_maps $mydestination $virtual_alias_maps $virtual_alias_domains $sender_bcc_maps $virtual_mailbox_maps $virtual_mailbox_domains $relay_recipient_maps $relay_domains $canonical_maps $sender_canonical_maps $recipient_canonical_maps $relocated_maps $transport_maps $mynetworks $smtpd_sender_login_maps +proxy_read_maps = $local_recipient_maps $mydestination $virtual_alias_maps $virtual_alias_domains $sender_bcc_maps $virtual_mailbox_maps $virtual_mailbox_domains $relay_recipient_maps $relay_domains $canonical_maps $sender_canonical_maps $recipient_canonical_maps $relocated_maps $transport_maps $mynetworks $smtpd_sender_login_maps $virtual_uid_maps $virtual_gid_maps $smtpd_client_restrictions $smtpd_sender_restrictions $smtpd_recipient_restrictions smtpd_helo_required = yes -smtpd_helo_restrictions = permit_sasl_authenticated, permit_mynetworks, check_helo_access regexp:{config_dir}/helo_access, reject_non_fqdn_helo_hostname, reject_invalid_helo_hostname, reject_unknown_helo_hostname, check_helo_access regexp:{config_dir}/blacklist_helo -smtpd_sender_restrictions = check_sender_access regexp:{config_dir}/tag_as_originating.re {reject_slm}, permit_mynetworks, permit_sasl_authenticated, check_sender_access mysql:{config_dir}/mysql-virtual_sender.cf, check_sender_access regexp:{config_dir}/tag_as_foreign.re -smtpd_client_restrictions = check_client_access mysql:{config_dir}/mysql-virtual_client.cf +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_etrn_restrictions = permit_mynetworks, reject +smtpd_data_restrictions = permit_mynetworks, reject_unauth_pipelining, reject_multi_recipient_bounce, permit smtpd_client_message_rate_limit = 100 maildrop_destination_concurrency_limit = 1 maildrop_destination_recipient_limit = 1 @@ -37,8 +39,13 @@ nested_header_checks = regexp:{config_dir}/nested_header_checks body_checks = regexp:{config_dir}/body_checks inet_interfaces = all smtp_tls_security_level = may -smtpd_tls_mandatory_protocols = !SSLv2, !SSLv3 -smtpd_tls_protocols = !SSLv2,!SSLv3 -smtp_tls_protocols = !SSLv2,!SSLv3 +smtpd_tls_mandatory_protocols = !SSLv2, !SSLv3, !TLSv1, !TLSv1.1 +smtpd_tls_protocols = !SSLv2,!SSLv3, !TLSv1, !TLSv1.1 +smtp_tls_protocols = !SSLv2,!SSLv3, !TLSv1, !TLSv1.1 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 +# needed for postfix < 3.3 when using reject_unverified_recipient (lmtp): +enable_original_recipient = yes diff --git a/install/tpl/postfix_2-10.conf.master b/install/tpl/postfix_2-10.conf.master new file mode 100644 index 0000000000000000000000000000000000000000..d77f37e0a07bdedea1d15c629a07c871ba496b0c --- /dev/null +++ b/install/tpl/postfix_2-10.conf.master @@ -0,0 +1,5 @@ +# Postfix configuration for version 2.10 and up +smtpd_relay_restrictions = permit_mynetworks, permit_sasl_authenticated, reject_unauth_destination + +# This is supported in version 2.9, but lets not create another conf file for it +address_verify_sender_ttl = 15686s diff --git a/install/tpl/postfix_2-5.conf.master b/install/tpl/postfix_2-5.conf.master new file mode 100644 index 0000000000000000000000000000000000000000..132c80822e488b6b123e88002f1092e7dbd5b633 --- /dev/null +++ b/install/tpl/postfix_2-5.conf.master @@ -0,0 +1,13 @@ +# Postfix configuration for version 2.5 and up + +# These will make postfix adapt more to load spikes +#{stress_adaptive} in_flow_delay = ${stress?3}${stress:1}s +#{stress_adaptive} smtp_connect_timeout = ${stress?10}${stress:30}s +#{stress_adaptive} smtp_helo_timeout = ${stress?10}${stress:60}s +#{stress_adaptive} smtp_mail_timeout = ${stress?10}${stress:60}s +#{stress_adaptive} smtpd_error_sleep_time = ${stress?1}${stress:2}s +#{stress_adaptive} smtpd_hard_error_limit = ${stress?1}${stress:10} +#{stress_adaptive} smtpd_recipient_overshoot_limit = ${stress?60}${stress:600} +#{stress_adaptive} smtpd_soft_error_limit = ${stress?2}${stress:5} +#{stress_adaptive} smtpd_timeout = ${stress?10}${stress:60}s + diff --git a/install/tpl/postfix_3-0.conf.master b/install/tpl/postfix_3-0.conf.master new file mode 100644 index 0000000000000000000000000000000000000000..aa205679ad7818e0a19621a8f930e5838250d161 --- /dev/null +++ b/install/tpl/postfix_3-0.conf.master @@ -0,0 +1,13 @@ +# Postfix configuration for version 3.0 and up + +# These will make postfix adapt more to load spikes +#{stress_adaptive} in_flow_delay = ${stress?{3}:{1}}s +#{stress_adaptive} smtp_connect_timeout = ${stress?{10}:{30}}s +#{stress_adaptive} smtp_helo_timeout = ${stress?{10}:{60}}s +#{stress_adaptive} smtp_mail_timeout = ${stress?{10}:{60}}s +#{stress_adaptive} smtpd_error_sleep_time = ${stress?{1}:{2}}s +#{stress_adaptive} smtpd_hard_error_limit = ${stress?{1}:{10}} +#{stress_adaptive} smtpd_recipient_overshoot_limit = ${stress?{60}:{600}} +#{stress_adaptive} smtpd_soft_error_limit = ${stress?{2}:{5}} +#{stress_adaptive} smtpd_timeout = ${stress?{10}:{60}}s + diff --git a/install/tpl/postfix_3-3.conf.master b/install/tpl/postfix_3-3.conf.master new file mode 100644 index 0000000000000000000000000000000000000000..01b3e7f59058a3867d1a093f013e5cbaad1afc2a --- /dev/null +++ b/install/tpl/postfix_3-3.conf.master @@ -0,0 +1,4 @@ +# Postfix configuration for version 3.3 and up + +# 3.2 and earlier should not have this set when using reject_unverified_recipient +enable_original_recipient = no diff --git a/install/tpl/system.ini.master b/install/tpl/system.ini.master index 873b0e7372be021ad15700b8d8077ce21bb760f1..ec6573d7b156a44a53e798310543adb86d1b8420 100644 --- a/install/tpl/system.ini.master +++ b/install/tpl/system.ini.master @@ -16,6 +16,7 @@ webmail_url=/webmail dkim_path=/var/lib/amavis/dkim smtp_enabled=y smtp_host=localhost +enable_welcome_mail=y [monitor] @@ -34,6 +35,8 @@ client_username_web_check_disabled=n backups_include_into_web_quota=n reseller_can_use_options=n web_php_options=no,fast-cgi,mod,php-fpm +show_aps_menu=n +client_protection=y [tools] diff --git a/interface/lib/app.inc.php b/interface/lib/app.inc.php index be6c15666c0d4facb9acbe2f2ebcfaab54f2ace9..631bd430dafb6cb4a67d2e10d11c383ee4208493 100755 --- a/interface/lib/app.inc.php +++ b/interface/lib/app.inc.php @@ -49,7 +49,7 @@ class app { private $_loaded_classes = array(); private $_conf; private $_security_config; - + public $loaded_plugins = array(); public function __construct() { @@ -58,7 +58,7 @@ class app { if (isset($_REQUEST['GLOBALS']) || isset($_FILES['GLOBALS']) || isset($_REQUEST['s']) || isset($_REQUEST['s_old']) || isset($_REQUEST['conf'])) { die('Internal Error: var override attempt detected'); } - + $this->_conf = $conf; if($this->_conf['start_db'] == true) { $this->load('db_'.$this->_conf['db_type']); @@ -70,21 +70,21 @@ class app { } $this->uses('functions'); // we need this before all others! $this->uses('auth,plugin,ini_parser,getconf'); - + } public function __get($prop) { if(property_exists($this, $prop)) return $this->{$prop}; - + $this->uses($prop); if(property_exists($this, $prop)) return $this->{$prop}; else trigger_error('Undefined property ' . $prop . ' of class app', E_USER_WARNING); } - + public function __destruct() { session_write_close(); } - + public function initialize_session() { //* Start the session if($this->_conf['start_session'] == true) { @@ -118,7 +118,7 @@ class app { } else { session_set_cookie_params(0,'/',$cookie_domain,$cookie_secure,true); // until browser is closed } - + session_set_save_handler( array($this->session, 'open'), array($this->session, 'close'), array($this->session, 'read'), @@ -127,7 +127,7 @@ class app { array($this->session, 'gc')); session_start(); - + //* Initialize session variables if(!isset($_SESSION['s']['id']) ) $_SESSION['s']['id'] = session_id(); if(empty($_SESSION['s']['theme'])) $_SESSION['s']['theme'] = $conf['theme']; @@ -135,7 +135,7 @@ class app { } } - + public function uses($classes) { $cl = explode(',', $classes); if(is_array($cl)) { @@ -160,7 +160,7 @@ class app { } } } - + public function conf($plugin, $key, $value = null) { if(is_null($value)) { $tmpconf = $this->db->queryOneRecord("SELECT `value` FROM `sys_config` WHERE `group` = ? AND `name` = ?", $plugin, $key); @@ -284,6 +284,7 @@ class app { $this->tpl->setVar('datalog_changes_end_txt', $this->lng('datalog_changes_end_txt')); $this->tpl->setVar('datalog_changes_count', $datalog['count']); $this->tpl->setLoop('datalog_changes', $datalog['entries']); + $this->tpl->setVar('datalog_changes_close_txt', $this->lng('datalog_changes_close_txt')); } else { $this->tpl->setVar('app_version', ''); } @@ -349,7 +350,7 @@ class app { return 'y' === $maintenance_mode && !in_array($_SERVER['REMOTE_ADDR'], $maintenance_mode_exclude_ips); } - + private function get_cookie_domain() { $sec_config = $this->getconf->get_security_config('permissions'); $proxy_panel_allowed = $sec_config['reverse_proxy_panel_allowed']; @@ -380,7 +381,7 @@ class app { unset($forwarded_host); } } - + return $cookie_domain; } @@ -389,7 +390,7 @@ class app { //** Initialize application (app) object //* possible future = new app($conf); $app = new app(); -/* +/* split session creation out of constructor is IMHO better. otherwise we have some circular references to global $app like in getconfig property of App - RA @@ -398,7 +399,7 @@ $app->initialize_session(); // load and enable PHP Intrusion Detection System (PHPIDS) $ids_security_config = $app->getconf->get_security_config('ids'); - + if(is_dir(ISPC_CLASS_PATH.'/IDS') && !defined('REMOTE_API_CALL') && ($ids_security_config['ids_anon_enabled'] == 'yes' || $ids_security_config['ids_user_enabled'] == 'yes' || $ids_security_config['ids_admin_enabled'] == 'yes')) { $app->uses('ids'); $app->ids->start(); diff --git a/interface/lib/classes/remoting_lib.inc.php b/interface/lib/classes/remoting_lib.inc.php index 6f310284dc6ca052f9b86cd5515987f194ad2ff0..6436e6e792a04aba37ccc56864dc55134f459673 100644 --- a/interface/lib/classes/remoting_lib.inc.php +++ b/interface/lib/classes/remoting_lib.inc.php @@ -131,7 +131,7 @@ class remoting_lib extends tform_base { $this->sys_userid = $user['userid']; $this->sys_default_group = $user['default_group']; $this->sys_groups = $user['groups']; - // we have to force admin priveliges for the remoting API as some function calls might fail otherwise. + // we have to force admin privileges for the remoting API as some function calls might fail otherwise. if($client_login == false) $_SESSION["s"]["user"]["typ"] = 'admin'; } diff --git a/interface/lib/classes/sites_database_plugin.inc.php b/interface/lib/classes/sites_database_plugin.inc.php index faf3fa30f7f36904a821c42280c7e52219aaf2be..68421d6083ddd0eafaf56c539bcb040d4917fe2c 100644 --- a/interface/lib/classes/sites_database_plugin.inc.php +++ b/interface/lib/classes/sites_database_plugin.inc.php @@ -49,8 +49,8 @@ class sites_database_plugin { $backup_format_db = $web['backup_format_db']; $backup_copies = $app->functions->intval($web['backup_copies']); - $sql = "UPDATE web_database SET sys_groupid = ?, backup_interval = ?, backup_copies = ?, backup_format_web = ?, backup_format_db = ? WHERE database_id = ?"; - $app->db->query($sql, $sys_groupid, $backup_interval, $backup_copies, $backup_format_web, $backup_format_db, $form_page->id); + $sql = "UPDATE web_database SET sys_groupid = ?, backup_interval = ?, backup_copies = ? WHERE database_id = ?"; + $app->db->query($sql, $sys_groupid, $backup_interval, $backup_copies, $form_page->id); } } diff --git a/interface/lib/classes/system.inc.php b/interface/lib/classes/system.inc.php index 484ef2b6658788e04be4d6458a6fb04422517282..d6b0ef149e285dbe3e3c438cff36bbe44daddac8 100644 --- a/interface/lib/classes/system.inc.php +++ b/interface/lib/classes/system.inc.php @@ -67,30 +67,42 @@ class system { } } + public function is_blacklisted_web_path($path) { + $blacklist = array('bin', 'cgi-bin', 'dev', 'etc', 'home', 'lib', 'lib64', 'log', 'ssl', 'usr', 'var', 'proc', 'net', 'sys', 'srv', 'sbin', 'run'); + + $path = ltrim($path, '/'); + $parts = explode('/', $path); + if(in_array(strtolower($parts[0]), $blacklist, true)) { + return true; + } + + return false; + } + public function last_exec_out() { return $this->_last_exec_out; } - + public function last_exec_retcode() { return $this->_last_exec_retcode; } - + public function exec_safe($cmd) { $arg_count = func_num_args(); $args = func_get_args(); - + if($arg_count != substr_count($cmd, '?') + 1) { trigger_error('Placeholder count not matching argument list.', E_USER_WARNING); return false; } if($arg_count > 1) { array_shift($args); - + $pos = 0; $a = 0; foreach($args as $value) { $a++; - + $pos = strpos($cmd, '?', $pos); if($pos === false) { break; @@ -100,16 +112,16 @@ class system { $pos += strlen($value); } } - + $this->_last_exec_out = null; $this->_last_exec_retcode = null; return exec($cmd, $this->_last_exec_out, $this->_last_exec_retcode); } - + public function system_safe($cmd) { call_user_func_array(array($this, 'exec_safe'), func_get_args()); return implode("\n", $this->_last_exec_out); - } + } //* Check if a application is installed public function is_installed($appname) { @@ -122,5 +134,5 @@ class system { return false; } } - + } //* End Class diff --git a/interface/lib/classes/tools_monitor.inc.php b/interface/lib/classes/tools_monitor.inc.php index ce3ffca1eba13e81ab2565eb6665fb0e4da31201..435ee220a8066070ac0a0801a6f27f4b8361a2b7 100644 --- a/interface/lib/classes/tools_monitor.inc.php +++ b/interface/lib/classes/tools_monitor.inc.php @@ -184,9 +184,10 @@ class tools_monitor { foreach($data as $key => $value) { if ($key != '') { + $memory = $app->functions->formatBytes($value); $html .= '<tr> <td>' . $key . ':</td> - <td>' . $value . '</td> + <td>' . $memory . '</td> </tr>'; } } diff --git a/interface/lib/classes/validate_autoresponder.inc.php b/interface/lib/classes/validate_autoresponder.inc.php index 25db68bdd97226ea9be48d3e93c1e064b676666f..48ee3778833f90625d2629b7740c04f192da2678 100755 --- a/interface/lib/classes/validate_autoresponder.inc.php +++ b/interface/lib/classes/validate_autoresponder.inc.php @@ -31,25 +31,11 @@ include_once 'validate_datetime.inc.php'; class validate_autoresponder extends validate_datetime { - function start_date($field_name, $field_value, $validator) - { - global $app; - - // save field value for later use in end_date() - $this->start_date = $field_value; - - if($_POST['autoresponder'] == 'y' && $field_value == '') { - // we need a start date when autoresponder is on - return $app->tform->lng($validator['errmsg']).'<br />'; - } - } - function end_date($field_name, $field_value, $validator) { global $app; - $start_date = $this->start_date; - //$start_date = $app->tform_actions->dataRecord['autoresponder_start_date']; + $start_date = $app->tform_actions->dataRecord['autoresponder_start_date']; // Parse date $datetimeformat = (isset($app->remoting_lib) ? $app->remoting_lib->datetimeformat : $app->tform->datetimeformat); @@ -60,8 +46,8 @@ class validate_autoresponder extends validate_datetime $start_date_tstamp = mktime($start_date_array['hour'], $start_date_array['minute'], $start_date_array['second'], $start_date_array['month'], $start_date_array['day'], $start_date_array['year']); $end_date_tstamp = mktime($end_date_array['hour'], $end_date_array['minute'], $end_date_array['second'], $end_date_array['month'], $end_date_array['day'], $end_date_array['year']); - // End date has to be > start date - if($end_date_tstamp <= $start_date_tstamp && ($start_date || $field_value)) { + // If both are set, end date has to be > start date + if($start_date && $field_value && $end_date_tstamp <= $start_date_tstamp) { return $app->tform->lng($validator['errmsg']).'<br />'; } } diff --git a/interface/lib/lang/ar.lng b/interface/lib/lang/ar.lng index f8fd2b5a500479b4dff5741a0ded9410f648db78..8987866af06b677d01ead04d166957cf083b0af4 100644 --- a/interface/lib/lang/ar.lng +++ b/interface/lib/lang/ar.lng @@ -159,4 +159,6 @@ $wb['datalog_status_i_xmpp_user'] = 'Create XMPP user'; $wb['datalog_status_u_xmpp_user'] = 'Update XMPP user'; $wb['datalog_status_d_xmpp_user'] = 'Delete XMPP user'; $wb['unlimited_txt'] = 'Unlimited'; -?> +$wb['server_id_0_error_txt'] = 'Please select a valid Server. Server ID must be > 0.'; +$wb['datalog_changes_close_txt'] = 'Close'; +?> \ No newline at end of file diff --git a/interface/lib/lang/bg.lng b/interface/lib/lang/bg.lng index 049807e66da3712e215a7b6f62734ebaecdef900..1a288f3b957b3e1fbe3b9cbde8bd926092705227 100644 --- a/interface/lib/lang/bg.lng +++ b/interface/lib/lang/bg.lng @@ -159,4 +159,6 @@ $wb['datalog_status_i_xmpp_user'] = 'Create XMPP user'; $wb['datalog_status_u_xmpp_user'] = 'Update XMPP user'; $wb['datalog_status_d_xmpp_user'] = 'Delete XMPP user'; $wb['unlimited_txt'] = 'Ðеограничен'; -?> +$wb['server_id_0_error_txt'] = 'Please select a valid Server. Server ID must be > 0.'; +$wb['datalog_changes_close_txt'] = 'Close'; +?> \ No newline at end of file diff --git a/interface/lib/lang/br.lng b/interface/lib/lang/br.lng index 3bab13ab3a40eb40f83e06798bf32d1332f9ffce..c11b825ae7bd8d5ac4a7c6b590abc2150c208dac 100644 --- a/interface/lib/lang/br.lng +++ b/interface/lib/lang/br.lng @@ -159,4 +159,6 @@ $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 diff --git a/interface/lib/lang/ca.lng b/interface/lib/lang/ca.lng index 6d48482cfc5f5c97825505de23a7fb80abd07aea..c3a5b340f687528db33177e7943cb653449dc71c 100644 --- a/interface/lib/lang/ca.lng +++ b/interface/lib/lang/ca.lng @@ -159,4 +159,6 @@ $wb['datalog_status_i_xmpp_user'] = 'Create XMPP user'; $wb['datalog_status_u_xmpp_user'] = 'Update XMPP user'; $wb['datalog_status_d_xmpp_user'] = 'Delete XMPP user'; $wb['unlimited_txt'] = 'Illimité'; -?> +$wb['server_id_0_error_txt'] = 'Please select a valid Server. Server ID must be > 0.'; +$wb['datalog_changes_close_txt'] = 'Close'; +?> \ No newline at end of file diff --git a/interface/lib/lang/cz.lng b/interface/lib/lang/cz.lng index 93eeb671e5ffc32a0f9e19d647f42cbfcf569ece..058475169b173671f5bbfad3bbd7742c626a7e98 100644 --- a/interface/lib/lang/cz.lng +++ b/interface/lib/lang/cz.lng @@ -159,4 +159,6 @@ $wb['datalog_status_i_xmpp_user'] = 'VytvoÅ™it XMPP uživatele'; $wb['datalog_status_u_xmpp_user'] = 'Aktualizovat XMPP uživatele'; $wb['datalog_status_d_xmpp_user'] = 'Smazat XMPP uživatele'; $wb['unlimited_txt'] = 'neomezeno'; -?> +$wb['server_id_0_error_txt'] = 'Please select a valid Server. Server ID must be > 0.'; +$wb['datalog_changes_close_txt'] = 'Close'; +?> \ No newline at end of file diff --git a/interface/lib/lang/de.lng b/interface/lib/lang/de.lng index 54091c14170786b83b4d68c79b801d3dff280c56..80704d3e5bf2114e833ef193d29f2bbac5dce296 100644 --- a/interface/lib/lang/de.lng +++ b/interface/lib/lang/de.lng @@ -159,4 +159,6 @@ $wb['security_check2_txt'] = 'fehlgeschlagen.'; $wb['select_directive_snippet_txt'] = 'Direktiven Schnipsel'; $wb['select_master_directive_snippet_txt'] = 'Master Direktiven Schnipsel'; $wb['unlimited_txt'] = 'unlimitiert'; -?> +$wb['server_id_0_error_txt'] = 'Bitte Server auswählen. Server ID muss > als 0 sein.'; +$wb['datalog_changes_close_txt'] = 'Close'; +?> \ No newline at end of file diff --git a/interface/lib/lang/dk.lng b/interface/lib/lang/dk.lng index cbb9fc5efdc46db92761845cca3164f8224c08c1..93c68617cf953dfacd075d6b0c2c29d527f840af 100644 --- a/interface/lib/lang/dk.lng +++ b/interface/lib/lang/dk.lng @@ -159,4 +159,6 @@ $wb['datalog_status_i_xmpp_user'] = 'Create XMPP user'; $wb['datalog_status_u_xmpp_user'] = 'Update XMPP user'; $wb['datalog_status_d_xmpp_user'] = 'Delete XMPP user'; $wb['unlimited_txt'] = 'Ubegrænset'; -?> +$wb['server_id_0_error_txt'] = 'Please select a valid Server. Server ID must be > 0.'; +$wb['datalog_changes_close_txt'] = 'Close'; +?> \ No newline at end of file diff --git a/interface/lib/lang/el.lng b/interface/lib/lang/el.lng index 3e6c60c90f451a81acfed2b2e904c3df6074d422..3189500b01cf25696c68924defd105fe89f65d51 100644 --- a/interface/lib/lang/el.lng +++ b/interface/lib/lang/el.lng @@ -159,4 +159,6 @@ $wb['datalog_status_i_xmpp_user'] = 'Create XMPP user'; $wb['datalog_status_u_xmpp_user'] = 'Update XMPP user'; $wb['datalog_status_d_xmpp_user'] = 'Delete XMPP user'; $wb['unlimited_txt'] = 'ΑπεÏιόÏιστα'; -?> +$wb['server_id_0_error_txt'] = 'Please select a valid Server. Server ID must be > 0.'; +$wb['datalog_changes_close_txt'] = 'Close'; +?> \ No newline at end of file diff --git a/interface/lib/lang/en.lng b/interface/lib/lang/en.lng index b5b2ebcdae470767a4fe90494fca53fe974236e6..60c389481020fd2a72a0a73f16a124b01bff8716 100644 --- a/interface/lib/lang/en.lng +++ b/interface/lib/lang/en.lng @@ -160,4 +160,6 @@ $wb['security_check2_txt'] = 'failed.'; $wb['select_directive_snippet_txt'] = 'Directive Snippets'; $wb['select_master_directive_snippet_txt'] = 'Master Directive Snippets'; $wb['unlimited_txt'] = "Unlimited"; -?> +$wb['server_id_0_error_txt'] = 'Please select a valid Server. Server ID must be > 0.'; +$wb['datalog_changes_close_txt'] = 'Close'; +?> \ No newline at end of file diff --git a/interface/lib/lang/es.lng b/interface/lib/lang/es.lng index b78499f80022dc44300273382d58c10dd86ae090..6d20c7b66522108874fc78fc7a3f067919f61b45 100644 --- a/interface/lib/lang/es.lng +++ b/interface/lib/lang/es.lng @@ -159,4 +159,6 @@ $wb['datalog_status_i_xmpp_user'] = 'Create XMPP user'; $wb['datalog_status_u_xmpp_user'] = 'Update XMPP user'; $wb['datalog_status_d_xmpp_user'] = 'Delete XMPP user'; $wb['unlimited_txt'] = 'Ilimitado'; -?> +$wb['server_id_0_error_txt'] = 'Please select a valid Server. Server ID must be > 0.'; +$wb['datalog_changes_close_txt'] = 'Close'; +?> \ No newline at end of file diff --git a/interface/lib/lang/fi.lng b/interface/lib/lang/fi.lng index 27749510bb0096803b629935fec60b6e23afcd3c..8f3c6bd0a19f2ee670b98fee8a33a4fa11598258 100644 --- a/interface/lib/lang/fi.lng +++ b/interface/lib/lang/fi.lng @@ -159,4 +159,6 @@ $wb['datalog_status_i_xmpp_user'] = 'Create XMPP user'; $wb['datalog_status_u_xmpp_user'] = 'Update XMPP user'; $wb['datalog_status_d_xmpp_user'] = 'Delete XMPP user'; $wb['unlimited_txt'] = 'Unlimited'; -?> +$wb['server_id_0_error_txt'] = 'Please select a valid Server. Server ID must be > 0.'; +$wb['datalog_changes_close_txt'] = 'Close'; +?> \ No newline at end of file diff --git a/interface/lib/lang/fr.lng b/interface/lib/lang/fr.lng index c302b32faa302e897af10b0aae59e993fbc0af48..728dea1eed74d603bf52ea961b09764b1d817760 100644 --- a/interface/lib/lang/fr.lng +++ b/interface/lib/lang/fr.lng @@ -159,4 +159,6 @@ $wb['datalog_status_i_xmpp_user'] = 'Create XMPP user'; $wb['datalog_status_u_xmpp_user'] = 'Update XMPP user'; $wb['datalog_status_d_xmpp_user'] = 'Delete XMPP user'; $wb['unlimited_txt'] = 'Illimité'; -?> +$wb['server_id_0_error_txt'] = 'Please select a valid Server. Server ID must be > 0.'; +$wb['datalog_changes_close_txt'] = 'Close'; +?> \ No newline at end of file diff --git a/interface/lib/lang/hr.lng b/interface/lib/lang/hr.lng index 3be5dc7e16ea3dfbdc161ac8d1196ccb368f87c3..e40f0a4c19162a3396ed24b651260b8bb386b654 100644 --- a/interface/lib/lang/hr.lng +++ b/interface/lib/lang/hr.lng @@ -159,4 +159,6 @@ $wb['datalog_status_i_xmpp_user'] = 'Create XMPP user'; $wb['datalog_status_u_xmpp_user'] = 'Update XMPP user'; $wb['datalog_status_d_xmpp_user'] = 'Delete XMPP user'; $wb['unlimited_txt'] = 'neograniÄeno'; -?> +$wb['server_id_0_error_txt'] = 'Please select a valid Server. Server ID must be > 0.'; +$wb['datalog_changes_close_txt'] = 'Close'; +?> \ No newline at end of file diff --git a/interface/lib/lang/hu.lng b/interface/lib/lang/hu.lng index 3fc91bd60095011e8d867cc26b0a963c0e847ce4..d75563e3b9c517e2c1978e01ef5c2f246f3f9d98 100644 --- a/interface/lib/lang/hu.lng +++ b/interface/lib/lang/hu.lng @@ -159,4 +159,6 @@ $wb['datalog_status_i_xmpp_user'] = 'Create XMPP user'; $wb['datalog_status_u_xmpp_user'] = 'Update XMPP user'; $wb['datalog_status_d_xmpp_user'] = 'Delete XMPP user'; $wb['unlimited_txt'] = 'Korlátlan'; -?> +$wb['server_id_0_error_txt'] = 'Please select a valid Server. Server ID must be > 0.'; +$wb['datalog_changes_close_txt'] = 'Close'; +?> \ No newline at end of file diff --git a/interface/lib/lang/id.lng b/interface/lib/lang/id.lng index 13fbff1a0800e7484f367858a26b809409f96916..09ed444103a2e5145c3be8d8f0f2dc81837df30a 100644 --- a/interface/lib/lang/id.lng +++ b/interface/lib/lang/id.lng @@ -159,4 +159,6 @@ $wb['datalog_status_i_xmpp_user'] = 'Create XMPP user'; $wb['datalog_status_u_xmpp_user'] = 'Update XMPP user'; $wb['datalog_status_d_xmpp_user'] = 'Delete XMPP user'; $wb['unlimited_txt'] = 'Tak terbatas'; -?> +$wb['server_id_0_error_txt'] = 'Please select a valid Server. Server ID must be > 0.'; +$wb['datalog_changes_close_txt'] = 'Close'; +?> \ No newline at end of file diff --git a/interface/lib/lang/it.lng b/interface/lib/lang/it.lng index 4a85a58e09266d2db52c2aaeff90667b9db77ef3..eb53245c4d8995d87d0a9b4916c25bf4cd12bbf4 100644 --- a/interface/lib/lang/it.lng +++ b/interface/lib/lang/it.lng @@ -159,4 +159,6 @@ $wb['datalog_status_i_xmpp_user'] = 'Create XMPP user'; $wb['datalog_status_u_xmpp_user'] = 'Update XMPP user'; $wb['datalog_status_d_xmpp_user'] = 'Delete XMPP user'; $wb['unlimited_txt'] = 'illimitati'; -?> +$wb['server_id_0_error_txt'] = 'Please select a valid Server. Server ID must be > 0.'; +$wb['datalog_changes_close_txt'] = 'Close'; +?> \ No newline at end of file diff --git a/interface/lib/lang/ja.lng b/interface/lib/lang/ja.lng index bb1290173c6a83bbcbceba6c2ff00f23442b99b5..723bf2e87adc4737ffc3c4ececd764e89c267a78 100644 --- a/interface/lib/lang/ja.lng +++ b/interface/lib/lang/ja.lng @@ -159,4 +159,6 @@ $wb['datalog_status_i_xmpp_user'] = 'Create XMPP user'; $wb['datalog_status_u_xmpp_user'] = 'Update XMPP user'; $wb['datalog_status_d_xmpp_user'] = 'Delete XMPP user'; $wb['unlimited_txt'] = 'Unlimited'; -?> +$wb['server_id_0_error_txt'] = 'Please select a valid Server. Server ID must be > 0.'; +$wb['datalog_changes_close_txt'] = 'Close'; +?> \ No newline at end of file diff --git a/interface/lib/lang/nl.lng b/interface/lib/lang/nl.lng index a733142d49100c3b025c69ce20b387f00c74ecb9..0b7e4a0bbe32c958c09ef738b3ca26c2e09018d6 100644 --- a/interface/lib/lang/nl.lng +++ b/interface/lib/lang/nl.lng @@ -159,4 +159,6 @@ $wb['datalog_status_i_xmpp_user'] = 'Create XMPP user'; $wb['datalog_status_u_xmpp_user'] = 'Update XMPP user'; $wb['datalog_status_d_xmpp_user'] = 'Delete XMPP user'; $wb['unlimited_txt'] = 'Ongelimiteerd'; -?> +$wb['server_id_0_error_txt'] = 'Please select a valid Server. Server ID must be > 0.'; +$wb['datalog_changes_close_txt'] = 'Close'; +?> \ No newline at end of file diff --git a/interface/lib/lang/pl.lng b/interface/lib/lang/pl.lng index ffbac09ef4008cf2bbbd0a0456a99ff758d6a9c5..300c8c9d83a6f6138a9b2cb6f3ba7136d18f15e4 100644 --- a/interface/lib/lang/pl.lng +++ b/interface/lib/lang/pl.lng @@ -159,4 +159,6 @@ $wb['datalog_status_i_xmpp_user'] = 'Create XMPP user'; $wb['datalog_status_u_xmpp_user'] = 'Update XMPP user'; $wb['datalog_status_d_xmpp_user'] = 'Delete XMPP user'; $wb['unlimited_txt'] = 'nielimitowane'; -?> +$wb['server_id_0_error_txt'] = 'Please select a valid Server. Server ID must be > 0.'; +$wb['datalog_changes_close_txt'] = 'Close'; +?> \ No newline at end of file diff --git a/interface/lib/lang/pt.lng b/interface/lib/lang/pt.lng index 195da8e61926311839005a8b7bf6be3ad1bd319c..6ea67a9d7056b0683ff01e9a71724f25fd5bbaab 100644 --- a/interface/lib/lang/pt.lng +++ b/interface/lib/lang/pt.lng @@ -159,4 +159,6 @@ $wb['datalog_status_i_xmpp_user'] = 'Create XMPP user'; $wb['datalog_status_u_xmpp_user'] = 'Update XMPP user'; $wb['datalog_status_d_xmpp_user'] = 'Delete XMPP user'; $wb['unlimited_txt'] = 'Unlimited'; -?> +$wb['server_id_0_error_txt'] = 'Please select a valid Server. Server ID must be > 0.'; +$wb['datalog_changes_close_txt'] = 'Close'; +?> \ No newline at end of file diff --git a/interface/lib/lang/ro.lng b/interface/lib/lang/ro.lng index 1365a54172f3098dc1e8d5eba983730a46bc8c02..d67e4c9a8075059012981202f358dd0d19f1ea1c 100644 --- a/interface/lib/lang/ro.lng +++ b/interface/lib/lang/ro.lng @@ -159,4 +159,6 @@ $wb['datalog_status_i_xmpp_user'] = 'Create XMPP user'; $wb['datalog_status_u_xmpp_user'] = 'Update XMPP user'; $wb['datalog_status_d_xmpp_user'] = 'Delete XMPP user'; $wb['unlimited_txt'] = 'Unlimited'; -?> +$wb['server_id_0_error_txt'] = 'Please select a valid Server. Server ID must be > 0.'; +$wb['datalog_changes_close_txt'] = 'Close'; +?> \ No newline at end of file diff --git a/interface/lib/lang/ru.lng b/interface/lib/lang/ru.lng index 19cdcf8a047170d3f36b310801ae3a1ffcd40318..fe9fef36440b61599993b48ebe60ccaae1dfc235 100644 --- a/interface/lib/lang/ru.lng +++ b/interface/lib/lang/ru.lng @@ -159,4 +159,6 @@ $wb['datalog_status_i_xmpp_user'] = 'Создать Ð¿Ð¾Ð»ÑŒÐ·Ð¾Ð²Ð°Ñ‚ÐµÐ»Ñ XMP $wb['datalog_status_u_xmpp_user'] = 'Обновить Ð¿Ð¾Ð»ÑŒÐ·Ð¾Ð²Ð°Ñ‚ÐµÐ»Ñ XMPP'; $wb['datalog_status_d_xmpp_user'] = 'Удалить Ð¿Ð¾Ð»ÑŒÐ·Ð¾Ð²Ð°Ñ‚ÐµÐ»Ñ XMPP'; $wb['unlimited_txt'] = 'Безлимитный'; -?> +$wb['server_id_0_error_txt'] = 'Please select a valid Server. Server ID must be > 0.'; +$wb['datalog_changes_close_txt'] = 'Close'; +?> \ No newline at end of file diff --git a/interface/lib/lang/se.lng b/interface/lib/lang/se.lng index 2d3146f03389ae3acae8fd72c36a1f5c1c89b386..f5ad7a4cb590f56087b61cca306e7002acbdbe1d 100644 --- a/interface/lib/lang/se.lng +++ b/interface/lib/lang/se.lng @@ -159,4 +159,6 @@ $wb['datalog_status_i_xmpp_user'] = 'Create XMPP user'; $wb['datalog_status_u_xmpp_user'] = 'Update XMPP user'; $wb['datalog_status_d_xmpp_user'] = 'Delete XMPP user'; $wb['unlimited_txt'] = 'Obegränsat'; -?> +$wb['server_id_0_error_txt'] = 'Please select a valid Server. Server ID must be > 0.'; +$wb['datalog_changes_close_txt'] = 'Close'; +?> \ No newline at end of file diff --git a/interface/lib/lang/sk.lng b/interface/lib/lang/sk.lng index ece15b3a22865520884ac048cd12e0ba679504aa..3ca7f2a2da9ef9765f2a839f11e0dc53dee4b213 100644 --- a/interface/lib/lang/sk.lng +++ b/interface/lib/lang/sk.lng @@ -159,4 +159,6 @@ $wb['datalog_status_i_xmpp_user'] = 'Create XMPP user'; $wb['datalog_status_u_xmpp_user'] = 'Update XMPP user'; $wb['datalog_status_d_xmpp_user'] = 'Delete XMPP user'; $wb['unlimited_txt'] = 'Unlimited'; -?> +$wb['server_id_0_error_txt'] = 'Please select a valid Server. Server ID must be > 0.'; +$wb['datalog_changes_close_txt'] = 'Close'; +?> \ No newline at end of file diff --git a/interface/lib/lang/tr.lng b/interface/lib/lang/tr.lng index 31e5f2fbef4e7c47d45321d8bcc3cd08c1701cee..7721a3c0cbb78e779eeb49d43fb4777ceced215a 100644 --- a/interface/lib/lang/tr.lng +++ b/interface/lib/lang/tr.lng @@ -160,4 +160,6 @@ $wb['security_check2_txt'] = 'baÅŸarısız.'; $wb['select_directive_snippet_txt'] = 'Yönerge Kod Parçaları'; $wb['select_master_directive_snippet_txt'] = 'Ana Komut Parçaları'; $wb['unlimited_txt'] = 'Sınırsız'; -?> +$wb['server_id_0_error_txt'] = 'Please select a valid Server. Server ID must be > 0.'; +$wb['datalog_changes_close_txt'] = 'Close'; +?> \ No newline at end of file diff --git a/interface/lib/plugins/sites_web_vhost_domain_plugin.inc.php b/interface/lib/plugins/sites_web_vhost_domain_plugin.inc.php index 3f9b0db5b6b7ef92fcbaf112ca4ea092d22872fb..56dc825fd41b75b6acc03d9e07824f30b5150919 100644 --- a/interface/lib/plugins/sites_web_vhost_domain_plugin.inc.php +++ b/interface/lib/plugins/sites_web_vhost_domain_plugin.inc.php @@ -46,12 +46,20 @@ class sites_web_vhost_domain_plugin { $vhostdomain_type = 'domain'; if($page_form->dataRecord['type'] == 'vhostalias') $vhostdomain_type = 'aliasdomain'; elseif($page_form->dataRecord['type'] == 'vhostsubdomain') $vhostdomain_type = 'subdomain'; - - // make sure that the record belongs to the clinet group and not the admin group when a dmin inserts it - // also make sure that the user can not delete domain created by a admin + + // make sure that the record belongs to the client group and not the admin group when a admin inserts it + // also make sure that the user can not delete domain created by a admin if client protection is enabled if($_SESSION["s"]["user"]["typ"] == 'admin' && isset($page_form->dataRecord["client_group_id"])) { $client_group_id = $app->functions->intval($page_form->dataRecord["client_group_id"]); - $app->db->query("UPDATE web_domain SET sys_groupid = ?, sys_perm_group = 'ru' WHERE domain_id = ?", $client_group_id, $page_form->id); + $app->uses('getconf'); + $global_config = $app->getconf->get_global_config('sites'); + if($global_config['client_protection'] == 'y') { + $app->db->query("UPDATE web_domain SET sys_groupid = ?, sys_perm_group = 'ru' WHERE domain_id = ?", $client_group_id, $page_form->id); + } else { + $sysuser = $app->db->queryOneRecord('SELECT userid FROM sys_user WHERE default_group = ?',$client_group_id); + $sysuser_id = (is_array($sysuser) && isset($sysuser['userid']) && $sysuser['userid'] > 0)?$sysuser['userid']:1; + $app->db->query("UPDATE web_domain SET sys_userid = ?, sys_groupid = ?, sys_perm_group = 'riud' WHERE domain_id = ?", $sysuser_id, $client_group_id, $page_form->id); + } } if($app->auth->has_clients($_SESSION['s']['user']['userid']) && isset($page_form->dataRecord["client_group_id"])) { $client_group_id = $app->functions->intval($page_form->dataRecord["client_group_id"]); @@ -62,7 +70,7 @@ class sites_web_vhost_domain_plugin { $web_config = $app->getconf->get_server_config($app->functions->intval($page_form->dataRecord['server_id']), 'web'); if(isset($app->tform) && is_object($app->tform)) $web_rec = $app->tform->getDataRecord($page_form->id); else $web_rec = $app->remoting_lib->getDataRecord($page_form->id); - + if($vhostdomain_type == 'domain') { $document_root = str_replace("[website_id]", $page_form->id, $web_config["website_path"]); $document_root = str_replace("[website_idhash_1]", $this->id_hash($page_form->id, 1), $document_root); @@ -97,7 +105,7 @@ class sites_web_vhost_domain_plugin { $document_root = str_replace("[client_idhash_2]", $this->id_hash($client_id, 2), $document_root); $document_root = str_replace("[client_idhash_3]", $this->id_hash($client_id, 3), $document_root); $document_root = str_replace("[client_idhash_4]", $this->id_hash($client_id, 4), $document_root); - + if($event_name == 'sites:web_vhost_domain:on_after_update') { if(($_SESSION["s"]["user"]["typ"] == 'admin' || $app->auth->has_clients($_SESSION['s']['user']['userid'])) && isset($page_form->dataRecord["client_group_id"]) && $page_form->dataRecord["client_group_id"] != $page_form->oldDataRecord["sys_groupid"]) { @@ -257,7 +265,7 @@ class sites_web_vhost_domain_plugin { $backup_format_db = $page_form->dataRecord['backup_format_db']; $records = $app->db->queryAllRecords("SELECT database_id FROM web_database WHERE parent_domain_id = ".$page_form->id); foreach($records as $rec) { - $app->db->datalogUpdate('web_database', array("backup_interval" => $backup_interval, "backup_copies" => $backup_copies, "backup_format_web" => $backup_format_web, "backup_format_db" => $backup_format_db), 'database_id', $rec['database_id']); + $app->db->datalogUpdate('web_database', array("backup_interval" => $backup_interval, "backup_copies" => $backup_copies), 'database_id', $rec['database_id']); } unset($records); unset($rec); @@ -280,7 +288,7 @@ class sites_web_vhost_domain_plugin { $php_open_basedir = str_replace("[website_path]", $document_root, $web_config["php_open_basedir"]); $php_open_basedir = str_replace("[website_domain]", $app->functions->idn_encode($page_form->dataRecord['domain']), $php_open_basedir); $htaccess_allow_override = $web_config["htaccess_allow_override"]; - + $sql = "UPDATE web_domain SET system_user = ?, system_group = ?, document_root = ?, allow_override = ?, php_open_basedir = ? WHERE domain_id = ?"; $app->db->query($sql, $system_user, $system_group, $document_root, $htaccess_allow_override, $php_open_basedir, $page_form->id); } diff --git a/interface/web/admin/directive_snippets_edit.php b/interface/web/admin/directive_snippets_edit.php index b12da0a79bf28f000b0c11103db13482557608ad..e22a7cf42a2d7903121f6c87873c19a06f93a71f 100644 --- a/interface/web/admin/directive_snippets_edit.php +++ b/interface/web/admin/directive_snippets_edit.php @@ -75,6 +75,7 @@ class page_action extends tform_actions { $app->tpl->setVar("snippet", $this->dataRecord['snippet'], true); } } + $app->tpl->setVar("is_master", $is_master); parent::onShowEnd(); @@ -82,15 +83,41 @@ class page_action extends tform_actions { function onSubmit() { global $app, $conf; - + if($this->id > 0){ $record = $app->db->queryOneRecord("SELECT * FROM directive_snippets WHERE directive_snippets_id = ?", $this->id); if($record['master_directive_snippets_id'] > 0){ unset($app->tform->formDef["tabs"]['directive_snippets']['fields']['name'], $app->tform->formDef["tabs"]['directive_snippets']['fields']['type'], $app->tform->formDef["tabs"]['directive_snippets']['fields']['snippet'], $app->tform->formDef["tabs"]['directive_snippets']['fields']['required_php_snippets']); } + + if(isset($this->dataRecord['update_sites'])) { + parent::onSubmit(); + } else { + $app->db->query('UPDATE directive_snippets SET name = ?, type = ?, snippet = ?, customer_viewable = ?, required_php_snippets = ?, active = ? WHERE directive_snippets_id = ?', $this->dataRecord['name'], $this->dataRecord['type'], $this->dataRecord['snippet'], $this->dataRecord['customer_viewable'], implode(',', $this->dataRecord['required_php_snippets']), $this->dataRecord['active'], $this->id); + + if($_REQUEST["next_tab"] == '') { + $list_name = $_SESSION["s"]["form"]["return_to"]; + if($list_name != '' && $_SESSION["s"]["list"][$list_name]["parent_name"] != $app->tform->formDef["name"]) { + $redirect = "Location: ".$_SESSION["s"]["list"][$list_name]["parent_script"]."?id=".$_SESSION["s"]["list"][$list_name]["parent_id"]."&next_tab=".$_SESSION["s"]["list"][$list_name]["parent_tab"]; + $_SESSION["s"]["form"]["return_to"] = ''; + session_write_close(); + header($redirect); + } elseif (isset($_SESSION["s"]["form"]["return_to_url"]) && $_SESSION["s"]["form"]["return_to_url"] != '') { + $redirect = $_SESSION["s"]["form"]["return_to_url"]; + $_SESSION["s"]["form"]["return_to_url"] = ''; + session_write_close(); + header("Location: ".$redirect); + exit; + } else { + header("Location: ".$app->tform->formDef['list_default']); + } + exit; + } + } + unset($record); } - + parent::onSubmit(); } diff --git a/interface/web/admin/form/directive_snippets.tform.php b/interface/web/admin/form/directive_snippets.tform.php index bd9466c310ca87737154c16b251a8de4ca492398..bf7f2b7fe52d1effbbd810d46ab254104e282fb7 100644 --- a/interface/web/admin/form/directive_snippets.tform.php +++ b/interface/web/admin/form/directive_snippets.tform.php @@ -110,6 +110,12 @@ $form["tabs"]['directive_snippets'] = array ( 'default' => 'y', 'value' => array(0 => 'n', 1 => 'y') ), + 'update_sites' => array ( + 'datatype' => 'VARCHAR', + 'formtype' => 'CHECKBOX', + 'default' => 'y', + 'value' => array(0 => 'n', 1 => 'y') + ), 'required_php_snippets' => array ( 'datatype' => 'VARCHAR', 'formtype' => 'CHECKBOXARRAY', diff --git a/interface/web/admin/form/server_config.tform.php b/interface/web/admin/form/server_config.tform.php index de2caf175023ca6718a1ae4c753a7f5980f6b998..bc2f05840bf441d5cd6fab35a2c221e94a665920 100644 --- a/interface/web/admin/form/server_config.tform.php +++ b/interface/web/admin/form/server_config.tform.php @@ -456,11 +456,13 @@ $form["tabs"]['mail'] = array( 'datatype' => 'VARCHAR', 'formtype' => 'TEXT', 'default' => '/home/vmail/', - 'validators' => array( 0 => array('type' => 'NOTEMPTY', - 'errmsg' => 'homedir_path_error_empty'), - 1 => array ( 'type' => 'REGEX', - 'regex' => '/^\/[a-zA-Z0-9\.\-\_\/]{5,128}$/', - 'errmsg'=> 'homedir_path_error_regex'), + 'validators' => array( 0 => array ( 'type' => 'NOTEMPTY', + 'errmsg' => 'homedir_path_error_empty' + ), + 1 => array ( 'type' => 'REGEX', + 'regex' => '/^\/[a-zA-Z0-9\.\-\_\/]{5,128}$/', + 'errmsg'=> 'homedir_path_error_regex' + ), ), 'value' => '', 'width' => '40', @@ -638,6 +640,17 @@ $form["tabs"]['mail'] = array( 'default' => 'n', 'value' => array(0 => 'n', 1 => 'y') ), + 'reject_unknown' => array( + 'datatype' => 'VARCHAR', + 'formtype' => 'SELECT', + 'default' => 'helo', + 'value' => array( + 'helo' => 'reject_unknown_helo_txt', + 'client' => 'reject_unknown_client_txt', + 'client_helo' => 'reject_unknown_client_helo_txt', + 'none' => 'disabled_txt', + ) + ), 'mailbox_size_limit' => array( 'datatype' => 'INTEGER', 'formtype' => 'TEXT', @@ -654,12 +667,6 @@ $form["tabs"]['mail'] = array( 'width' => '10', 'maxlength' => '15' ), - 'mailbox_quota_stats' => array ( - 'datatype' => 'VARCHAR', - 'formtype' => 'CHECKBOX', - 'default' => 'y', - 'value' => array(0 => 'n', 1 => 'y') - ), 'realtime_blackhole_list' => array( 'datatype' => 'VARCHAR', 'formtype' => 'TEXT', @@ -672,6 +679,18 @@ $form["tabs"]['mail'] = array( 'width' => '40', 'maxlength' => '255' ), + 'stress_adaptive' => array ( + 'datatype' => 'VARCHAR', + 'formtype' => 'CHECKBOX', + 'default' => 'y', + 'value' => array(0 => 'n', 1 => 'y') + ), + 'mailbox_quota_stats' => array ( + 'datatype' => 'VARCHAR', + 'formtype' => 'CHECKBOX', + 'default' => 'y', + 'value' => array(0 => 'n', 1 => 'y') + ), 'overquota_notify_admin' => array( 'datatype' => 'VARCHAR', 'formtype' => 'CHECKBOX', @@ -1814,6 +1833,18 @@ $form["tabs"]['jailkit'] = array( 'width' => '40', 'maxlength' => '1000' ), + 'jailkit_chroot_authorized_keys_template' => array( + 'datatype' => 'VARCHAR', + 'formtype' => 'TEXT', + 'default' => '', + 'validators' => array( 0 => array ( 'type' => 'REGEX', + 'regex' => '/^[a-zA-Z0-9\.\-\_\/\ ]*$/', + 'errmsg'=> 'jailkit_chroot_authorized_keys_template_error_regex'), + ), + 'value' => '', + 'width' => '40', + 'maxlength' => '1000' + ), //################################# // END Datatable fields //################################# diff --git a/interface/web/admin/form/system_config.tform.php b/interface/web/admin/form/system_config.tform.php index 4dd069b613a99aa7bc694ceba6d656a785172fcc..0e29902c33ed7a2886e70cb64a6f7551819e5958 100644 --- a/interface/web/admin/form/system_config.tform.php +++ b/interface/web/admin/form/system_config.tform.php @@ -148,6 +148,12 @@ $form["tabs"]['sites'] = array ( 'width' => '30', 'maxlength' => '255' ), + 'client_protection' => array ( + 'datatype' => 'VARCHAR', + 'formtype' => 'CHECKBOX', + 'default' => 'y', + 'value' => array(0 => 'n', 1 => 'y') + ), 'vhost_subdomains' => array ( 'datatype' => 'VARCHAR', 'formtype' => 'CHECKBOX', @@ -795,4 +801,3 @@ $form['tabs']['dns_ca'] = array ( ) ) ); - diff --git a/interface/web/admin/lib/lang/ar_directive_snippets.lng b/interface/web/admin/lib/lang/ar_directive_snippets.lng index 0616afad8b6c76c9eb284f57a673f6c35d286310..071d6f4fed2e32c912693d79f87e31c2e9879090 100644 --- a/interface/web/admin/lib/lang/ar_directive_snippets.lng +++ b/interface/web/admin/lib/lang/ar_directive_snippets.lng @@ -9,4 +9,5 @@ $wb['directive_snippets_name_error_unique'] = 'There is already a directive snip $wb['variables_txt'] = 'Variables'; $wb['customer_viewable_txt'] = 'Customer viewable'; $wb['required_php_snippets_txt'] = 'Requiered PHP Snippet'; +$wb['update_sites_txt'] = 'Update sites using this snippet'; ?> diff --git a/interface/web/admin/lib/lang/ar_server_config.lng b/interface/web/admin/lib/lang/ar_server_config.lng index 4123c113d18a4a8d298321fc5610dc805425659b..ed8e236071c42a01934b9a1cfa087901e77fd7c6 100644 --- a/interface/web/admin/lib/lang/ar_server_config.lng +++ b/interface/web/admin/lib/lang/ar_server_config.lng @@ -40,6 +40,11 @@ $wb['relayhost_txt'] = 'Relayhost'; $wb['relayhost_user_txt'] = 'Relayhost User'; $wb['relayhost_password_txt'] = 'Relayhost Password'; $wb['reject_sender_login_mismatch_txt'] = 'Reject sender and login mismatch'; +$wb['reject_unknown_txt'] = 'Reject unknown hostnames'; +$wb['tooltip_reject_unknown_txt'] = 'Requires hostnames to pass DNS checks. Not checked for authenticated users.'; +$wb['reject_unknown_helo_txt'] = 'Reject unknown helo hostnames'; +$wb['reject_unknown_client_txt'] = 'Reject unknown client hostnames'; +$wb['reject_unknown_client_helo_txt'] = 'Reject unknown helo and client hostnames'; $wb['mailbox_size_limit_txt'] = 'Mailbox Size Limit'; $wb['message_size_limit_txt'] = 'Message Size Limit'; $wb['ip_address_txt'] = 'IP Address'; @@ -172,6 +177,8 @@ $wb['backup_mode_userzip'] = 'Backup web files owned by web user as zip'; $wb['backup_mode_rootgz'] = 'Backup all files in web directory as root user'; $wb['realtime_blackhole_list_txt'] = 'Real-time Blackhole List'; $wb['realtime_blackhole_list_note_txt'] = '(Separate RBL\'s with commas)'; +$wb['stress_adaptive_txt'] = 'Adapt to temporary load spikes'; +$wb['tooltip_stress_adaptive_txt'] = 'Enables Postfix stress-adaptive behavior.'; $wb['ssl_settings_txt'] = 'SSL Settings'; $wb['permissions_txt'] = 'Permissions'; $wb['php_settings_txt'] = 'PHP Settings'; @@ -310,4 +317,6 @@ $wb['rspamd_password_txt'] = 'Rspamd Password'; $wb['vhost_proxy_protocol_enabled_txt'] = 'Enable PROXY Protocol'; $wb['vhost_proxy_protocol_http_port_txt'] = 'PROXY Protocol HTTP Port'; $wb['vhost_proxy_protocol_https_port_txt'] = 'PROXY Protocol HTTPS Port'; +$wb["jailkit_chroot_authorized_keys_template_txt"] = 'Jailkit authorized_keys template'; +$wb['jailkit_chroot_authorized_keys_template_error_regex'] = 'Invalid jaikit chroot authorized_keys template file.'; ?> diff --git a/interface/web/admin/lib/lang/ar_system_config.lng b/interface/web/admin/lib/lang/ar_system_config.lng index b871fc930c23eb9327f607d14d2d44f702479975..495da61225f79edd9ee37810249121dba7e6d0a7 100644 --- a/interface/web/admin/lib/lang/ar_system_config.lng +++ b/interface/web/admin/lib/lang/ar_system_config.lng @@ -95,4 +95,5 @@ $wb['active_txt'] = 'Aktive'; $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'; ?> diff --git a/interface/web/admin/lib/lang/bg_directive_snippets.lng b/interface/web/admin/lib/lang/bg_directive_snippets.lng index 0616afad8b6c76c9eb284f57a673f6c35d286310..071d6f4fed2e32c912693d79f87e31c2e9879090 100644 --- a/interface/web/admin/lib/lang/bg_directive_snippets.lng +++ b/interface/web/admin/lib/lang/bg_directive_snippets.lng @@ -9,4 +9,5 @@ $wb['directive_snippets_name_error_unique'] = 'There is already a directive snip $wb['variables_txt'] = 'Variables'; $wb['customer_viewable_txt'] = 'Customer viewable'; $wb['required_php_snippets_txt'] = 'Requiered PHP Snippet'; +$wb['update_sites_txt'] = 'Update sites using this snippet'; ?> diff --git a/interface/web/admin/lib/lang/bg_server_config.lng b/interface/web/admin/lib/lang/bg_server_config.lng index 463d1c7b2a2e0c08b40bbe929412c8794c115869..71e5bfd5c6c5229e6864bd3f0bdca49668aeb46f 100644 --- a/interface/web/admin/lib/lang/bg_server_config.lng +++ b/interface/web/admin/lib/lang/bg_server_config.lng @@ -38,6 +38,11 @@ $wb['relayhost_txt'] = 'Relayhost'; $wb['relayhost_user_txt'] = 'Relayhost User'; $wb['relayhost_password_txt'] = 'Relayhost Password'; $wb['reject_sender_login_mismatch_txt'] = 'Reject sender and login mismatch'; +$wb['reject_unknown_txt'] = 'Reject unknown hostnames'; +$wb['tooltip_reject_unknown_txt'] = 'Requires hostnames to pass DNS checks. Not checked for authenticated users.'; +$wb['reject_unknown_helo_txt'] = 'Reject unknown helo hostnames'; +$wb['reject_unknown_client_txt'] = 'Reject unknown client hostnames'; +$wb['reject_unknown_client_helo_txt'] = 'Reject unknown helo and client hostnames'; $wb['mailbox_size_limit_txt'] = 'Mailbox Size Limit'; $wb['message_size_limit_txt'] = 'Message Size Limit'; $wb['ip_address_txt'] = 'IP адреÑ'; @@ -170,6 +175,8 @@ $wb['backup_mode_userzip'] = 'Backup web files owned by web user as zip'; $wb['backup_mode_rootgz'] = 'Backup all files in web directory as root user'; $wb['realtime_blackhole_list_txt'] = 'Real-time Blackhole List'; $wb['realtime_blackhole_list_note_txt'] = '(Separate RBL\'s with commas)'; +$wb['stress_adaptive_txt'] = 'Adapt to temporary load spikes'; +$wb['tooltip_stress_adaptive_txt'] = 'Enables Postfix stress-adaptive behavior.'; $wb['ssl_settings_txt'] = 'SSL Settings'; $wb['permissions_txt'] = 'Permissions'; $wb['php_settings_txt'] = 'PHP Settings'; @@ -310,4 +317,6 @@ $wb['rspamd_password_txt'] = 'Rspamd Password'; $wb['vhost_proxy_protocol_enabled_txt'] = 'Enable PROXY Protocol'; $wb['vhost_proxy_protocol_http_port_txt'] = 'PROXY Protocol HTTP Port'; $wb['vhost_proxy_protocol_https_port_txt'] = 'PROXY Protocol HTTPS Port'; +$wb["jailkit_chroot_authorized_keys_template_txt"] = 'Jailkit authorized_keys template'; +$wb['jailkit_chroot_authorized_keys_template_error_regex'] = 'Invalid jaikit chroot authorized_keys template file.'; ?> diff --git a/interface/web/admin/lib/lang/bg_system_config.lng b/interface/web/admin/lib/lang/bg_system_config.lng index cf8e8c8273fc278b01ec2ef873e60b2445d9b94b..25ad5d2cc5e1e504c65a3be5c355f7c564f61bb2 100644 --- a/interface/web/admin/lib/lang/bg_system_config.lng +++ b/interface/web/admin/lib/lang/bg_system_config.lng @@ -95,4 +95,5 @@ $wb['active_txt'] = 'Aktive'; $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'; ?> diff --git a/interface/web/admin/lib/lang/br_directive_snippets.lng b/interface/web/admin/lib/lang/br_directive_snippets.lng index 43c46c69b972189158871e363aed78e153f57121..bc94b85b7d5919bc99d71d746fbb8accbedf4cec 100644 --- a/interface/web/admin/lib/lang/br_directive_snippets.lng +++ b/interface/web/admin/lib/lang/br_directive_snippets.lng @@ -9,4 +9,5 @@ $wb['directive_snippets_name_error_unique'] = 'Já existe uma diretiva com este $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'; ?> diff --git a/interface/web/admin/lib/lang/br_server_config.lng b/interface/web/admin/lib/lang/br_server_config.lng index 65a2dc4fd754a3086d8c386b57936931dd5e3d55..e7b59e3cdbb99122565f4e83f4623f8a22b63533 100644 --- a/interface/web/admin/lib/lang/br_server_config.lng +++ b/interface/web/admin/lib/lang/br_server_config.lng @@ -51,6 +51,11 @@ $wb['relayhost_txt'] = 'Servidor de retransmissão'; $wb['relayhost_user_txt'] = 'Usuário de retransmissão'; $wb['relayhost_password_txt'] = 'Senha do usuário de retransmissão'; $wb['reject_sender_login_mismatch_txt'] = 'Rejeitar acesso com erro de usuário e/ou senha'; +$wb['reject_unknown_txt'] = 'Reject unknown hostnames'; +$wb['tooltip_reject_unknown_txt'] = 'Requires hostnames to pass DNS checks. Not checked for authenticated users.'; +$wb['reject_unknown_helo_txt'] = 'Reject unknown helo hostnames'; +$wb['reject_unknown_client_txt'] = 'Reject unknown client hostnames'; +$wb['reject_unknown_client_helo_txt'] = 'Reject unknown helo and client hostnames'; $wb['mailbox_size_limit_txt'] = 'Limite do tamanho da conta de e-mail'; $wb['message_size_limit_txt'] = 'Limite do tamanho da mensagem'; $wb['ip_address_txt'] = 'Endereço IP'; @@ -179,6 +184,8 @@ $wb['connect_userid_to_webid_txt'] = 'Conectar o UID do usuário no sistema para $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['ssl_settings_txt'] = 'Configurações SSL'; $wb['permissions_txt'] = 'Permissões'; $wb['php_settings_txt'] = 'Configurações php'; @@ -311,3 +318,5 @@ $wb['rspamd_password_txt'] = 'Senha do rspamd'; $wb['vhost_proxy_protocol_enabled_txt'] = 'Enable PROXY Protocol'; $wb['vhost_proxy_protocol_http_port_txt'] = 'PROXY Protocol HTTP Port'; $wb['vhost_proxy_protocol_https_port_txt'] = 'PROXY Protocol HTTPS Port'; +$wb["jailkit_chroot_authorized_keys_template_txt"] = 'Jailkit authorized_keys template'; +$wb['jailkit_chroot_authorized_keys_template_error_regex'] = 'Invalid jaikit chroot authorized_keys template file.'; diff --git a/interface/web/admin/lib/lang/br_system_config.lng b/interface/web/admin/lib/lang/br_system_config.lng index eccac5d178b3e142e60226a0c12d1d580bb7d87e..a6802651161e74c1befae13e99540ef629561c87 100644 --- a/interface/web/admin/lib/lang/br_system_config.lng +++ b/interface/web/admin/lib/lang/br_system_config.lng @@ -94,4 +94,5 @@ $wb['active_txt'] = 'Ativo'; $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'; ?> diff --git a/interface/web/admin/lib/lang/ca_directive_snippets.lng b/interface/web/admin/lib/lang/ca_directive_snippets.lng index 0616afad8b6c76c9eb284f57a673f6c35d286310..071d6f4fed2e32c912693d79f87e31c2e9879090 100644 --- a/interface/web/admin/lib/lang/ca_directive_snippets.lng +++ b/interface/web/admin/lib/lang/ca_directive_snippets.lng @@ -9,4 +9,5 @@ $wb['directive_snippets_name_error_unique'] = 'There is already a directive snip $wb['variables_txt'] = 'Variables'; $wb['customer_viewable_txt'] = 'Customer viewable'; $wb['required_php_snippets_txt'] = 'Requiered PHP Snippet'; +$wb['update_sites_txt'] = 'Update sites using this snippet'; ?> diff --git a/interface/web/admin/lib/lang/ca_server_config.lng b/interface/web/admin/lib/lang/ca_server_config.lng index 496df78f77719a6b8f774d4f2ce9e52878ff9585..effc175e85b921e3d654d57212c595b1a5f9af8b 100644 --- a/interface/web/admin/lib/lang/ca_server_config.lng +++ b/interface/web/admin/lib/lang/ca_server_config.lng @@ -51,6 +51,11 @@ $wb['relayhost_txt'] = 'Relayhost'; $wb['relayhost_user_txt'] = 'Relayhost User'; $wb['relayhost_password_txt'] = 'Relayhost Password'; $wb['reject_sender_login_mismatch_txt'] = 'Reject sender and login mismatch'; +$wb['reject_unknown_txt'] = 'Reject unknown hostnames'; +$wb['tooltip_reject_unknown_txt'] = 'Requires hostnames to pass DNS checks. Not checked for authenticated users.'; +$wb['reject_unknown_helo_txt'] = 'Reject unknown helo hostnames'; +$wb['reject_unknown_client_txt'] = 'Reject unknown client hostnames'; +$wb['reject_unknown_client_helo_txt'] = 'Reject unknown helo and client hostnames'; $wb['mailbox_size_limit_txt'] = 'Mailbox Size Limit'; $wb['message_size_limit_txt'] = 'Message Size Limit'; $wb['ip_address_txt'] = 'IP Address'; @@ -175,6 +180,8 @@ $wb['connect_userid_to_webid_txt'] = 'Connect Linux userid to webid'; $wb['connect_userid_to_webid_start_txt'] = 'Start ID for userid/webid connect'; $wb['realtime_blackhole_list_txt'] = 'Real-time Blackhole List'; $wb['realtime_blackhole_list_note_txt'] = '(Separate RBL\'s with commas)'; +$wb['stress_adaptive_txt'] = 'Adapt to temporary load spikes'; +$wb['tooltip_stress_adaptive_txt'] = 'Enables Postfix stress-adaptive behavior.'; $wb['ssl_settings_txt'] = 'SSL Settings'; $wb['permissions_txt'] = 'Permissions'; $wb['php_settings_txt'] = 'PHP Settings'; @@ -310,4 +317,6 @@ $wb['rspamd_password_txt'] = 'Rspamd Password'; $wb['vhost_proxy_protocol_enabled_txt'] = 'Enable PROXY Protocol'; $wb['vhost_proxy_protocol_http_port_txt'] = 'PROXY Protocol HTTP Port'; $wb['vhost_proxy_protocol_https_port_txt'] = 'PROXY Protocol HTTPS Port'; +$wb["jailkit_chroot_authorized_keys_template_txt"] = 'Jailkit authorized_keys template'; +$wb['jailkit_chroot_authorized_keys_template_error_regex'] = 'Invalid jaikit chroot authorized_keys template file.'; ?> diff --git a/interface/web/admin/lib/lang/ca_system_config.lng b/interface/web/admin/lib/lang/ca_system_config.lng index 17e4fd3db8e2c04e465cfea0e620b03a9f6f2457..f40012120f60b186e9503f3680fa5a2102d6f424 100644 --- a/interface/web/admin/lib/lang/ca_system_config.lng +++ b/interface/web/admin/lib/lang/ca_system_config.lng @@ -95,4 +95,5 @@ $wb['active_txt'] = 'Aktive'; $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'; ?> diff --git a/interface/web/admin/lib/lang/cz_directive_snippets.lng b/interface/web/admin/lib/lang/cz_directive_snippets.lng index 1fd316583b0720863e5bd30660e01c702e242b20..26d17f64b366e474648be0e14043b477d9ae9a4e 100644 --- a/interface/web/admin/lib/lang/cz_directive_snippets.lng +++ b/interface/web/admin/lib/lang/cz_directive_snippets.lng @@ -9,4 +9,5 @@ $wb['directive_snippets_name_error_unique'] = 'There is already a directive snip $wb['variables_txt'] = 'PromÄ›nné'; $wb['customer_viewable_txt'] = 'Dostupná volba pro klienta'; $wb['required_php_snippets_txt'] = 'Requiered PHP Snippet'; +$wb['update_sites_txt'] = 'Update sites using this snippet'; ?> diff --git a/interface/web/admin/lib/lang/cz_server_config.lng b/interface/web/admin/lib/lang/cz_server_config.lng index fbc1d777c38db51e08644ad60c7aaf92d94f800c..6e4f4c7faafd114ba50560f411acbd6d59286c45 100644 --- a/interface/web/admin/lib/lang/cz_server_config.lng +++ b/interface/web/admin/lib/lang/cz_server_config.lng @@ -163,6 +163,8 @@ $wb['backup_mode_userzip'] = 'Zálohovánà vÅ¡ech souborů v adresáři web jak $wb['backup_mode_rootgz'] = 'Zálohovánà vÅ¡ech souborů v adresáři web jako uživatel root'; $wb['realtime_blackhole_list_txt'] = 'Real-time Blackhole List'; $wb['realtime_blackhole_list_note_txt'] = '(jednotlivé RBL databáze oddÄ›lujte Äárkou)'; +$wb['stress_adaptive_txt'] = 'Adapt to temporary load spikes'; +$wb['tooltip_stress_adaptive_txt'] = 'Enables Postfix stress-adaptive behavior.'; $wb['ssl_settings_txt'] = 'SSL NastavenÃ'; $wb['permissions_txt'] = 'Nastavit oprávnÄ›nÃ'; $wb['php_settings_txt'] = 'PHP NastavenÃ'; @@ -254,6 +256,11 @@ $wb['mailbox_virtual_uidgid_maps_error_nosingleserver'] = 'Uid cannot be mapped $wb['mailbox_virtual_uidgid_maps_error_nodovecot'] = 'Uid-mapping can only be used with dovecot.'; $wb['mailbox_virtual_uidgid_maps_error_alreadyusers'] = 'Uid-mapping cannot be changed if there are already mail users.'; $wb['reject_sender_login_mismatch_txt'] = 'Reject sender and login mismatch'; +$wb['reject_unknown_txt'] = 'Reject unknown hostnames'; +$wb['tooltip_reject_unknown_txt'] = 'Requires hostnames to pass DNS checks. Not checked for authenticated users.'; +$wb['reject_unknown_helo_txt'] = 'Reject unknown helo hostnames'; +$wb['reject_unknown_client_txt'] = 'Reject unknown client hostnames'; +$wb['reject_unknown_client_helo_txt'] = 'Reject unknown helo and client hostnames'; $wb['do_not_try_rescue_mongodb_txt'] = 'Zakázat MongoDB monitorovánÃ'; $wb['v6_prefix_txt'] = 'IPv6 Prefix'; $wb['vhost_rewrite_v6_txt'] = 'Rewrite IPv6 on Mirror'; @@ -310,4 +317,6 @@ $wb['rspamd_password_txt'] = 'Rspamd Password'; $wb['vhost_proxy_protocol_enabled_txt'] = 'Enable PROXY Protocol'; $wb['vhost_proxy_protocol_http_port_txt'] = 'PROXY Protocol HTTP Port'; $wb['vhost_proxy_protocol_https_port_txt'] = 'PROXY Protocol HTTPS Port'; +$wb["jailkit_chroot_authorized_keys_template_txt"] = 'Jailkit authorized_keys template'; +$wb['jailkit_chroot_authorized_keys_template_error_regex'] = 'Invalid jaikit chroot authorized_keys template file.'; ?> diff --git a/interface/web/admin/lib/lang/cz_system_config.lng b/interface/web/admin/lib/lang/cz_system_config.lng index fb9f4cf843a9eb64ac62585d8c0de38103df30ac..b7a7515403ae91f3acd6d7ccccdc43dbba820ce4 100644 --- a/interface/web/admin/lib/lang/cz_system_config.lng +++ b/interface/web/admin/lib/lang/cz_system_config.lng @@ -95,4 +95,5 @@ $wb['active_txt'] = 'AktivnÃ'; $wb['btn_save_txt'] = 'Uložit'; $wb['btn_cancel_txt'] = 'ZruÅ¡it'; $wb['web_php_options_txt'] = 'PHP Handler (Apache only)'; +$wb['client_protection_txt'] = 'Client protection'; ?> diff --git a/interface/web/admin/lib/lang/de_directive_snippets.lng b/interface/web/admin/lib/lang/de_directive_snippets.lng index 9e369f4b514708b62098bd0f4796b338c0b24df6..dbe3aaf8bda98214340064fb398fc6ec540120eb 100644 --- a/interface/web/admin/lib/lang/de_directive_snippets.lng +++ b/interface/web/admin/lib/lang/de_directive_snippets.lng @@ -9,4 +9,5 @@ $wb['directive_snippets_name_error_unique'] = 'Es existiert schon ein Direktiven $wb['variables_txt'] = 'Variablen'; $wb['customer_viewable_txt'] = 'Sichtbar für Kunden'; $wb['required_php_snippets_txt'] = 'Requiered PHP Snippet'; +$wb['update_sites_txt'] = 'Update sites using this snippet'; ?> diff --git a/interface/web/admin/lib/lang/de_server_config.lng b/interface/web/admin/lib/lang/de_server_config.lng index 1646360a7ad59cca871ffb39a87105b7a81ac0c5..9a236d92e1e8ef3178fcb123926b06e435e1c3c9 100644 --- a/interface/web/admin/lib/lang/de_server_config.lng +++ b/interface/web/admin/lib/lang/de_server_config.lng @@ -40,6 +40,11 @@ $wb['relayhost_txt'] = 'Relayhost'; $wb['relayhost_user_txt'] = 'Relayhost Benutzer'; $wb['relayhost_password_txt'] = 'Relayhost Passwort'; $wb['reject_sender_login_mismatch_txt'] = 'Zurückweisen von Mails, wenn Sender nicht gleich Login'; +$wb['reject_unknown_txt'] = 'Reject unknown hostnames'; +$wb['tooltip_reject_unknown_txt'] = 'Requires hostnames to pass DNS checks. Not checked for authenticated users.'; +$wb['reject_unknown_helo_txt'] = 'Reject unknown helo hostnames'; +$wb['reject_unknown_client_txt'] = 'Reject unknown client hostnames'; +$wb['reject_unknown_client_helo_txt'] = 'Reject unknown helo and client hostnames'; $wb['mailbox_size_limit_txt'] = 'E-Mailkonto Beschränkung'; $wb['message_size_limit_txt'] = 'E-Mailgrößen Beschränkung'; $wb['ip_address_txt'] = 'IP Adresse'; @@ -174,6 +179,8 @@ $wb['connect_userid_to_webid_txt'] = 'Linux Userid mit webid verknüpfen'; $wb['connect_userid_to_webid_start_txt'] = 'Start ID für userid/webid Verknüpfung'; $wb['realtime_blackhole_list_txt'] = 'Realtime Blackhole Liste'; $wb['realtime_blackhole_list_note_txt'] = '(Mehrere Realtime Blackhole Listen mit Kommas trennen)'; +$wb['stress_adaptive_txt'] = 'Adapt to temporary load spikes'; +$wb['tooltip_stress_adaptive_txt'] = 'Enables Postfix stress-adaptive behavior.'; $wb['ssl_settings_txt'] = 'SSL Einstellungen'; $wb['permissions_txt'] = 'Berechtigungen'; $wb['php_settings_txt'] = 'PHP Einstellungen'; @@ -310,4 +317,6 @@ $wb['rspamd_password_txt'] = 'Rspamd-Passwort'; $wb['vhost_proxy_protocol_enabled_txt'] = 'Enable PROXY Protocol'; $wb['vhost_proxy_protocol_http_port_txt'] = 'PROXY Protocol HTTP Port'; $wb['vhost_proxy_protocol_https_port_txt'] = 'PROXY Protocol HTTPS Port'; +$wb["jailkit_chroot_authorized_keys_template_txt"] = 'Jailkit authorized_keys template'; +$wb['jailkit_chroot_authorized_keys_template_error_regex'] = 'Invalid jaikit chroot authorized_keys template file.'; ?> diff --git a/interface/web/admin/lib/lang/de_system_config.lng b/interface/web/admin/lib/lang/de_system_config.lng index 7e88eccd00ea2e777818a2355a6643bc52202958..58575617ad2a9eadb05eae0edf6c28a9841c2052 100644 --- a/interface/web/admin/lib/lang/de_system_config.lng +++ b/interface/web/admin/lib/lang/de_system_config.lng @@ -99,4 +99,5 @@ $wb['active_txt'] = 'Aktiv'; $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'; ?> diff --git a/interface/web/admin/lib/lang/dk_directive_snippets.lng b/interface/web/admin/lib/lang/dk_directive_snippets.lng index 7b43dcd40b8059b344ca2155647296bab1fe13dd..1b158e5c8053714fbee35186f633e46fbc6eb532 100644 --- a/interface/web/admin/lib/lang/dk_directive_snippets.lng +++ b/interface/web/admin/lib/lang/dk_directive_snippets.lng @@ -9,4 +9,5 @@ $wb['directive_snippets_name_error_unique'] = 'Der er allerede et direktiv uddra $wb['variables_txt'] = 'Variabler'; $wb['customer_viewable_txt'] = 'Customer viewable'; $wb['required_php_snippets_txt'] = 'Requiered PHP Snippet'; +$wb['update_sites_txt'] = 'Update sites using this snippet'; ?> diff --git a/interface/web/admin/lib/lang/dk_server_config.lng b/interface/web/admin/lib/lang/dk_server_config.lng index 476e43216105bb5ed402fb7c81d0a689c952f33d..41eaa1fe758ec8a072447278fe1236249538ae58 100644 --- a/interface/web/admin/lib/lang/dk_server_config.lng +++ b/interface/web/admin/lib/lang/dk_server_config.lng @@ -166,6 +166,8 @@ $wb['connect_userid_to_webid_txt'] = 'Forbinde Linux brugerid til webid'; $wb['connect_userid_to_webid_start_txt'] = 'Start ID for brugerid/webid forbinde'; $wb['realtime_blackhole_list_txt'] = 'Real-time Blackhole List'; $wb['realtime_blackhole_list_note_txt'] = '(Adskille RBL\'er med kommaer)'; +$wb['stress_adaptive_txt'] = 'Adapt to temporary load spikes'; +$wb['tooltip_stress_adaptive_txt'] = 'Enables Postfix stress-adaptive behavior.'; $wb['ssl_settings_txt'] = 'SSL Indstillinger'; $wb['permissions_txt'] = 'Tilladelser'; $wb['php_settings_txt'] = 'PHP Indstillinger'; @@ -256,6 +258,11 @@ $wb['mailbox_virtual_uidgid_maps_error_nosingleserver'] = 'Uid cannot be mapped $wb['mailbox_virtual_uidgid_maps_error_nodovecot'] = 'Uid-mapping can only be used with dovecot.'; $wb['mailbox_virtual_uidgid_maps_error_alreadyusers'] = 'Uid-mapping cannot be changed if there are already mail users.'; $wb['reject_sender_login_mismatch_txt'] = 'Reject sender and login mismatch'; +$wb['reject_unknown_txt'] = 'Reject unknown hostnames'; +$wb['tooltip_reject_unknown_txt'] = 'Requires hostnames to pass DNS checks. Not checked for authenticated users.'; +$wb['reject_unknown_helo_txt'] = 'Reject unknown helo hostnames'; +$wb['reject_unknown_client_txt'] = 'Reject unknown client hostnames'; +$wb['reject_unknown_client_helo_txt'] = 'Reject unknown helo and client hostnames'; $wb['backup_time_txt'] = 'Backup time'; $wb['do_not_try_rescue_mongodb_txt'] = 'Disable MongoDB monitoring'; $wb['v6_prefix_txt'] = 'IPv6 Prefix'; @@ -310,4 +317,6 @@ $wb['rspamd_password_txt'] = 'Rspamd Password'; $wb['vhost_proxy_protocol_enabled_txt'] = 'Enable PROXY Protocol'; $wb['vhost_proxy_protocol_http_port_txt'] = 'PROXY Protocol HTTP Port'; $wb['vhost_proxy_protocol_https_port_txt'] = 'PROXY Protocol HTTPS Port'; +$wb["jailkit_chroot_authorized_keys_template_txt"] = 'Jailkit authorized_keys template'; +$wb['jailkit_chroot_authorized_keys_template_error_regex'] = 'Invalid jaikit chroot authorized_keys template file.'; ?> diff --git a/interface/web/admin/lib/lang/dk_system_config.lng b/interface/web/admin/lib/lang/dk_system_config.lng index 2be15ca1a087bd17476a9b4d93e11426aded1dad..6801b566c9aeea8cb574e8cca7d36596831db6f8 100644 --- a/interface/web/admin/lib/lang/dk_system_config.lng +++ b/interface/web/admin/lib/lang/dk_system_config.lng @@ -95,4 +95,5 @@ $wb['active_txt'] = 'Aktive'; $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'; ?> diff --git a/interface/web/admin/lib/lang/el_directive_snippets.lng b/interface/web/admin/lib/lang/el_directive_snippets.lng index 0616afad8b6c76c9eb284f57a673f6c35d286310..071d6f4fed2e32c912693d79f87e31c2e9879090 100644 --- a/interface/web/admin/lib/lang/el_directive_snippets.lng +++ b/interface/web/admin/lib/lang/el_directive_snippets.lng @@ -9,4 +9,5 @@ $wb['directive_snippets_name_error_unique'] = 'There is already a directive snip $wb['variables_txt'] = 'Variables'; $wb['customer_viewable_txt'] = 'Customer viewable'; $wb['required_php_snippets_txt'] = 'Requiered PHP Snippet'; +$wb['update_sites_txt'] = 'Update sites using this snippet'; ?> diff --git a/interface/web/admin/lib/lang/el_server_config.lng b/interface/web/admin/lib/lang/el_server_config.lng index cf215b939e148c2707c55f7b348bb2d0d1cfaba8..491aa69cb6b82cc7800b169a9878de1232c044e9 100644 --- a/interface/web/admin/lib/lang/el_server_config.lng +++ b/interface/web/admin/lib/lang/el_server_config.lng @@ -40,6 +40,11 @@ $wb['relayhost_txt'] = 'Relayhost'; $wb['relayhost_user_txt'] = 'ΧÏήστης Relayhost'; $wb['relayhost_password_txt'] = 'Συνθηματικό Relayhost'; $wb['reject_sender_login_mismatch_txt'] = 'Reject sender and login mismatch'; +$wb['reject_unknown_txt'] = 'Reject unknown hostnames'; +$wb['tooltip_reject_unknown_txt'] = 'Requires hostnames to pass DNS checks. Not checked for authenticated users.'; +$wb['reject_unknown_helo_txt'] = 'Reject unknown helo hostnames'; +$wb['reject_unknown_client_txt'] = 'Reject unknown client hostnames'; +$wb['reject_unknown_client_helo_txt'] = 'Reject unknown helo and client hostnames'; $wb['mailbox_size_limit_txt'] = 'ÎŒÏιο χώÏου θυÏίδας'; $wb['message_size_limit_txt'] = 'Μήνυμα οÏίου χώÏου'; $wb['ip_address_txt'] = 'ΔιεÏθυνση IP'; @@ -172,6 +177,8 @@ $wb['backup_mode_userzip'] = 'Backup web files owned by web user as zip'; $wb['backup_mode_rootgz'] = 'Backup all files in web directory as root user'; $wb['realtime_blackhole_list_txt'] = 'Real-time Blackhole List'; $wb['realtime_blackhole_list_note_txt'] = '(Separate RBL\'s with commas)'; +$wb['stress_adaptive_txt'] = 'Adapt to temporary load spikes'; +$wb['tooltip_stress_adaptive_txt'] = 'Enables Postfix stress-adaptive behavior.'; $wb['ssl_settings_txt'] = 'SSL Settings'; $wb['permissions_txt'] = 'Permissions'; $wb['php_settings_txt'] = 'PHP Settings'; @@ -310,4 +317,6 @@ $wb['rspamd_password_txt'] = 'Rspamd Password'; $wb['vhost_proxy_protocol_enabled_txt'] = 'Enable PROXY Protocol'; $wb['vhost_proxy_protocol_http_port_txt'] = 'PROXY Protocol HTTP Port'; $wb['vhost_proxy_protocol_https_port_txt'] = 'PROXY Protocol HTTPS Port'; +$wb["jailkit_chroot_authorized_keys_template_txt"] = 'Jailkit authorized_keys template'; +$wb['jailkit_chroot_authorized_keys_template_error_regex'] = 'Invalid jaikit chroot authorized_keys template file.'; ?> diff --git a/interface/web/admin/lib/lang/el_system_config.lng b/interface/web/admin/lib/lang/el_system_config.lng index 045e20d02105bbfbe3adbdec37b5d8d87e6c4280..f324e335b3c1af3e0eaab925683e7ebbdef0100b 100644 --- a/interface/web/admin/lib/lang/el_system_config.lng +++ b/interface/web/admin/lib/lang/el_system_config.lng @@ -95,4 +95,5 @@ $wb['active_txt'] = 'Aktive'; $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'; ?> diff --git a/interface/web/admin/lib/lang/en_directive_snippets.lng b/interface/web/admin/lib/lang/en_directive_snippets.lng index 8e8a63afe1e3a8e3d5cd7d60b0c46432db51f2b6..da164a531879a2687cd18d0d427dfa73c34fcdfa 100644 --- a/interface/web/admin/lib/lang/en_directive_snippets.lng +++ b/interface/web/admin/lib/lang/en_directive_snippets.lng @@ -9,4 +9,5 @@ $wb["directive_snippets_name_error_unique"] = 'There is already a directive snip $wb['variables_txt'] = 'Variables'; $wb['customer_viewable_txt'] = 'Customer viewable'; $wb['required_php_snippets_txt'] = 'Requiered PHP Snippet'; +$wb['update_sites_txt'] = 'Update sites using this snippet'; ?> \ No newline at end of file diff --git a/interface/web/admin/lib/lang/en_server_config.lng b/interface/web/admin/lib/lang/en_server_config.lng index e12e1d40426ca203f7579865c791eb1b3235fa96..4858ed2eb8ce1a90b4f8fbccf08643a905e9d1a4 100644 --- a/interface/web/admin/lib/lang/en_server_config.lng +++ b/interface/web/admin/lib/lang/en_server_config.lng @@ -14,6 +14,7 @@ $wb["jailkit_chroot_home_txt"] = 'Jailkit chroot home'; $wb["jailkit_chroot_app_sections_txt"] = 'Jailkit chroot app sections'; $wb["jailkit_chroot_app_programs_txt"] = 'Jailkit chrooted applications'; $wb["jailkit_chroot_cron_programs_txt"] = 'Jailkit cron chrooted applications'; +$wb["jailkit_chroot_authorized_keys_template_txt"] = 'Jailkit authorized_keys template'; $wb["website_path_txt"] = 'Website path'; $wb["website_symlinks_txt"] = 'Website symlinks'; $wb['website_symlinks_rel_txt'] = 'Make relative symlinks'; @@ -51,6 +52,16 @@ $wb["relayhost_txt"] = 'Relayhost'; $wb["relayhost_user_txt"] = 'Relayhost User'; $wb["relayhost_password_txt"] = 'Relayhost Password'; $wb['reject_sender_login_mismatch_txt'] = 'Reject sender and login mismatch'; +$wb['reject_unknown_txt'] = 'Reject unknown hostnames'; +$wb['tooltip_reject_unknown_txt'] = 'Requires hostnames to pass DNS checks. Not checked for authenticated users.'; +$wb['reject_unknown_txt'] = 'Reject unknown hostnames'; +$wb['tooltip_reject_unknown_txt'] = 'Requires hostnames to pass DNS checks. Not checked for authenticated users.'; +$wb['reject_unknown_helo_txt'] = 'Reject unknown helo hostnames'; +$wb['reject_unknown_client_txt'] = 'Reject unknown client hostnames'; +$wb['reject_unknown_client_helo_txt'] = 'Reject unknown helo and client hostnames'; +$wb['reject_unknown_helo_txt'] = 'Reject unknown helo hostnames'; +$wb['reject_unknown_client_txt'] = 'Reject unknown client hostnames'; +$wb['reject_unknown_client_helo_txt'] = 'Reject unknown helo and client hostnames'; $wb["mailbox_size_limit_txt"] = 'Mailbox Size Limit'; $wb["message_size_limit_txt"] = 'Message Size Limit'; $wb["ip_address_txt"] = 'IP Address'; @@ -179,6 +190,8 @@ $wb["connect_userid_to_webid_txt"] = 'Connect Linux userid to webid'; $wb["connect_userid_to_webid_start_txt"] = 'Start ID for userid/webid connect'; $wb["realtime_blackhole_list_txt"] = 'Real-time Blackhole List'; $wb["realtime_blackhole_list_note_txt"] = '(Separate RBL\'s with commas)'; +$wb['stress_adaptive_txt'] = 'Adapt to temporary load spikes'; +$wb['tooltip_stress_adaptive_txt'] = 'Enables Postfix stress-adaptive behavior.'; $wb["ssl_settings_txt"] = 'SSL Settings'; $wb["permissions_txt"] = 'Permissions'; $wb["php_settings_txt"] = 'PHP Settings'; @@ -269,6 +282,7 @@ $wb['jailkit_chroot_home_error_regex'] = 'Invalid jaikit chroot home.'; $wb['jailkit_chroot_app_sections_error_regex'] = 'Invalid jaikit chroot sections.'; $wb['jailkit_chroot_app_programs_error_regex'] = 'Invalid jaikit chroot app programs.'; $wb['jailkit_chroot_cron_programs_error_regex'] = 'Invalid jaikit chroot cron programs.'; +$wb['jailkit_chroot_authorized_keys_template_error_regex'] = 'Invalid jaikit chroot authorized_keys template file.'; $wb['vlogger_config_dir_error_regex'] = 'Invalid vlogger config dir.'; $wb['cron_init_script_error_regex'] = 'Invalid cron init script.'; $wb['crontab_dir_error_regex'] = 'Invalid crontab directory.'; diff --git a/interface/web/admin/lib/lang/en_system_config.lng b/interface/web/admin/lib/lang/en_system_config.lng index 27a5e58f28ef69c819f72bb93aefac13b9e93011..882e6c21c3220012c626cc14027d9b27d096391f 100644 --- a/interface/web/admin/lib/lang/en_system_config.lng +++ b/interface/web/admin/lib/lang/en_system_config.lng @@ -102,4 +102,5 @@ $wb['active_txt'] = 'Active'; $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'; ?> diff --git a/interface/web/admin/lib/lang/es_directive_snippets.lng b/interface/web/admin/lib/lang/es_directive_snippets.lng index 8e2a9270791b70c7a2a9d287496dc1645dd3420e..a5bb21b494464ba69e782120057824d53aef0572 100644 --- a/interface/web/admin/lib/lang/es_directive_snippets.lng +++ b/interface/web/admin/lib/lang/es_directive_snippets.lng @@ -9,4 +9,5 @@ $wb['snippet_txt'] = 'Fragmento'; $wb['type_txt'] = 'Tipo'; $wb['variables_txt'] = 'Variables'; $wb['required_php_snippets_txt'] = 'Requiered PHP Snippet'; +$wb['update_sites_txt'] = 'Update sites using this snippet'; ?> diff --git a/interface/web/admin/lib/lang/es_server_config.lng b/interface/web/admin/lib/lang/es_server_config.lng index f34393169587445521f160bd3420c5244532bf9f..866871de9a35c0bf62b4f21ea86c6d795e64ca5a 100644 --- a/interface/web/admin/lib/lang/es_server_config.lng +++ b/interface/web/admin/lib/lang/es_server_config.lng @@ -230,7 +230,14 @@ $wb['pop3_imap_daemon_txt'] = 'Servicio POP3/IMAP'; $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'; +$wb['stress_adaptive_txt'] = 'Adapt to temporary load spikes'; +$wb['tooltip_stress_adaptive_txt'] = 'Enables Postfix stress-adaptive behavior.'; $wb['reject_sender_login_mismatch_txt'] = 'Rechazar remitente e inicio de sesión diferentes'; +$wb['reject_unknown_txt'] = 'Reject unknown hostnames'; +$wb['tooltip_reject_unknown_txt'] = 'Requires hostnames to pass DNS checks. Not checked for authenticated users.'; +$wb['reject_unknown_helo_txt'] = 'Reject unknown helo hostnames'; +$wb['reject_unknown_client_txt'] = 'Reject unknown client hostnames'; +$wb['reject_unknown_client_helo_txt'] = 'Reject unknown helo and client hostnames'; $wb['relayhost_password_txt'] = 'Contraseña del servidor de retransmisión'; $wb['relayhost_txt'] = 'Servidor de retransmisión'; $wb['relayhost_user_txt'] = 'Usuario del servidor de retransmisión'; @@ -310,4 +317,6 @@ $wb['rspamd_password_txt'] = 'Rspamd Password'; $wb['vhost_proxy_protocol_enabled_txt'] = 'Enable PROXY Protocol'; $wb['vhost_proxy_protocol_http_port_txt'] = 'PROXY Protocol HTTP Port'; $wb['vhost_proxy_protocol_https_port_txt'] = 'PROXY Protocol HTTPS Port'; +$wb["jailkit_chroot_authorized_keys_template_txt"] = 'Jailkit authorized_keys template'; +$wb['jailkit_chroot_authorized_keys_template_error_regex'] = 'Invalid jaikit chroot authorized_keys template file.'; ?> diff --git a/interface/web/admin/lib/lang/es_system_config.lng b/interface/web/admin/lib/lang/es_system_config.lng index 96e1e4487a549bcd3d14be03d2c07550998da066..4eeaa9abe994ca43dca157d771086938ab041280 100644 --- a/interface/web/admin/lib/lang/es_system_config.lng +++ b/interface/web/admin/lib/lang/es_system_config.lng @@ -95,4 +95,5 @@ $wb['active_txt'] = 'Aktive'; $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'; ?> diff --git a/interface/web/admin/lib/lang/fi_directive_snippets.lng b/interface/web/admin/lib/lang/fi_directive_snippets.lng index 0616afad8b6c76c9eb284f57a673f6c35d286310..071d6f4fed2e32c912693d79f87e31c2e9879090 100644 --- a/interface/web/admin/lib/lang/fi_directive_snippets.lng +++ b/interface/web/admin/lib/lang/fi_directive_snippets.lng @@ -9,4 +9,5 @@ $wb['directive_snippets_name_error_unique'] = 'There is already a directive snip $wb['variables_txt'] = 'Variables'; $wb['customer_viewable_txt'] = 'Customer viewable'; $wb['required_php_snippets_txt'] = 'Requiered PHP Snippet'; +$wb['update_sites_txt'] = 'Update sites using this snippet'; ?> diff --git a/interface/web/admin/lib/lang/fi_server_config.lng b/interface/web/admin/lib/lang/fi_server_config.lng index 6eefadb45f44fbf9d8c69851a1d4fbd0214842e9..61edf1e6020d9aa724ed2e400019730798307720 100644 --- a/interface/web/admin/lib/lang/fi_server_config.lng +++ b/interface/web/admin/lib/lang/fi_server_config.lng @@ -38,6 +38,11 @@ $wb['relayhost_txt'] = 'Edelleenlähetyspalvelin'; $wb['relayhost_user_txt'] = 'Edelleenlähetyspalvelimen käyttäjätunnus'; $wb['relayhost_password_txt'] = 'Edelleenlähetyspalvelimen salasana'; $wb['reject_sender_login_mismatch_txt'] = 'Reject sender and login mismatch'; +$wb['reject_unknown_txt'] = 'Reject unknown hostnames'; +$wb['tooltip_reject_unknown_txt'] = 'Requires hostnames to pass DNS checks. Not checked for authenticated users.'; +$wb['reject_unknown_helo_txt'] = 'Reject unknown helo hostnames'; +$wb['reject_unknown_client_txt'] = 'Reject unknown client hostnames'; +$wb['reject_unknown_client_helo_txt'] = 'Reject unknown helo and client hostnames'; $wb['mailbox_size_limit_txt'] = 'Postilaatikon koko'; $wb['message_size_limit_txt'] = 'Viestien enimmäiskoko'; $wb['ip_address_txt'] = 'IP-osoite'; @@ -172,6 +177,8 @@ $wb['backup_mode_userzip'] = 'Backup web files owned by web user as zip'; $wb['backup_mode_rootgz'] = 'Backup all files in web directory as root user'; $wb['realtime_blackhole_list_txt'] = 'Real-time Blackhole List'; $wb['realtime_blackhole_list_note_txt'] = '(Separate RBL\'s with commas)'; +$wb['stress_adaptive_txt'] = 'Adapt to temporary load spikes'; +$wb['tooltip_stress_adaptive_txt'] = 'Enables Postfix stress-adaptive behavior.'; $wb['ssl_settings_txt'] = 'SSL Settings'; $wb['permissions_txt'] = 'Permissions'; $wb['php_settings_txt'] = 'PHP Settings'; @@ -310,4 +317,6 @@ $wb['rspamd_password_txt'] = 'Rspamd Password'; $wb['vhost_proxy_protocol_enabled_txt'] = 'Enable PROXY Protocol'; $wb['vhost_proxy_protocol_http_port_txt'] = 'PROXY Protocol HTTP Port'; $wb['vhost_proxy_protocol_https_port_txt'] = 'PROXY Protocol HTTPS Port'; +$wb["jailkit_chroot_authorized_keys_template_txt"] = 'Jailkit authorized_keys template'; +$wb['jailkit_chroot_authorized_keys_template_error_regex'] = 'Invalid jaikit chroot authorized_keys template file.'; ?> diff --git a/interface/web/admin/lib/lang/fi_system_config.lng b/interface/web/admin/lib/lang/fi_system_config.lng index b6102f7f62e8e224d96c8a818d0f4abec2d32375..831eee9ff6d9837bf651037b583fdb6091f18b86 100644 --- a/interface/web/admin/lib/lang/fi_system_config.lng +++ b/interface/web/admin/lib/lang/fi_system_config.lng @@ -95,4 +95,5 @@ $wb['active_txt'] = 'Aktive'; $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'; ?> diff --git a/interface/web/admin/lib/lang/fr_directive_snippets.lng b/interface/web/admin/lib/lang/fr_directive_snippets.lng index 0616afad8b6c76c9eb284f57a673f6c35d286310..071d6f4fed2e32c912693d79f87e31c2e9879090 100644 --- a/interface/web/admin/lib/lang/fr_directive_snippets.lng +++ b/interface/web/admin/lib/lang/fr_directive_snippets.lng @@ -9,4 +9,5 @@ $wb['directive_snippets_name_error_unique'] = 'There is already a directive snip $wb['variables_txt'] = 'Variables'; $wb['customer_viewable_txt'] = 'Customer viewable'; $wb['required_php_snippets_txt'] = 'Requiered PHP Snippet'; +$wb['update_sites_txt'] = 'Update sites using this snippet'; ?> diff --git a/interface/web/admin/lib/lang/fr_server_config.lng b/interface/web/admin/lib/lang/fr_server_config.lng index 88717952099a752ca420245a0566b1cf3d508d47..657a4e1b54bb4027661ef8353167711b44f125e8 100644 --- a/interface/web/admin/lib/lang/fr_server_config.lng +++ b/interface/web/admin/lib/lang/fr_server_config.lng @@ -165,6 +165,8 @@ $wb['backup_mode_userzip'] = 'Backup web files owned by web user as zip'; $wb['backup_mode_rootgz'] = 'Backup all files in web directory as root user'; $wb['realtime_blackhole_list_txt'] = 'Real-time Blackhole List'; $wb['realtime_blackhole_list_note_txt'] = '(Separate RBL’s with commas)'; +$wb['stress_adaptive_txt'] = 'Adapt to temporary load spikes'; +$wb['tooltip_stress_adaptive_txt'] = 'Enables Postfix stress-adaptive behavior.'; $wb['ssl_settings_txt'] = 'SSL Settings'; $wb['permissions_txt'] = 'Permissions'; $wb['php_settings_txt'] = 'PHP Settings'; @@ -256,6 +258,11 @@ $wb['mailbox_virtual_uidgid_maps_error_nosingleserver'] = 'Uid cannot be mapped $wb['mailbox_virtual_uidgid_maps_error_nodovecot'] = 'Uid-mapping can only be used with dovecot.'; $wb['mailbox_virtual_uidgid_maps_error_alreadyusers'] = 'Uid-mapping cannot be changed if there are already mail users.'; $wb['reject_sender_login_mismatch_txt'] = 'Reject sender and login mismatch'; +$wb['reject_unknown_txt'] = 'Reject unknown hostnames'; +$wb['tooltip_reject_unknown_txt'] = 'Requires hostnames to pass DNS checks. Not checked for authenticated users.'; +$wb['reject_unknown_helo_txt'] = 'Reject unknown helo hostnames'; +$wb['reject_unknown_client_txt'] = 'Reject unknown client hostnames'; +$wb['reject_unknown_client_helo_txt'] = 'Reject unknown helo and client hostnames'; $wb['do_not_try_rescue_mongodb_txt'] = 'Disable MongoDB monitoring'; $wb['v6_prefix_txt'] = 'IPv6 Prefix'; $wb['vhost_rewrite_v6_txt'] = 'Rewrite IPv6 on Mirror'; @@ -310,4 +317,6 @@ $wb['rspamd_password_txt'] = 'Rspamd Password'; $wb['vhost_proxy_protocol_enabled_txt'] = 'Enable PROXY Protocol'; $wb['vhost_proxy_protocol_http_port_txt'] = 'PROXY Protocol HTTP Port'; $wb['vhost_proxy_protocol_https_port_txt'] = 'PROXY Protocol HTTPS Port'; +$wb["jailkit_chroot_authorized_keys_template_txt"] = 'Jailkit authorized_keys template'; +$wb['jailkit_chroot_authorized_keys_template_error_regex'] = 'Invalid jaikit chroot authorized_keys template file.'; ?> diff --git a/interface/web/admin/lib/lang/fr_system_config.lng b/interface/web/admin/lib/lang/fr_system_config.lng index 38e2573044b93340c8cb496387d16f0d9f5e6086..a5270b879fa8d5284eb3f3a26db43f40d3f4957d 100644 --- a/interface/web/admin/lib/lang/fr_system_config.lng +++ b/interface/web/admin/lib/lang/fr_system_config.lng @@ -95,4 +95,5 @@ $wb['active_txt'] = 'Aktive'; $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'; ?> diff --git a/interface/web/admin/lib/lang/hr_directive_snippets.lng b/interface/web/admin/lib/lang/hr_directive_snippets.lng index 077896577db3f9b8aec8aad5f33966bd1780ea6c..5709d6075d24c0811c5b51cdc3c04b98a89c3bf1 100644 --- a/interface/web/admin/lib/lang/hr_directive_snippets.lng +++ b/interface/web/admin/lib/lang/hr_directive_snippets.lng @@ -9,4 +9,5 @@ $wb['directive_snippets_name_error_unique'] = 'Već postoji direktiva sa tim ime $wb['variables_txt'] = 'Varijable'; $wb['customer_viewable_txt'] = 'Customer viewable'; $wb['required_php_snippets_txt'] = 'Requiered PHP Snippet'; +$wb['update_sites_txt'] = 'Update sites using this snippet'; ?> diff --git a/interface/web/admin/lib/lang/hr_server_config.lng b/interface/web/admin/lib/lang/hr_server_config.lng index b36fd1348643d5833a2891a007373581e98fb8ac..c7be0b3df01d4d5c8331e2449e8219da984afce8 100644 --- a/interface/web/admin/lib/lang/hr_server_config.lng +++ b/interface/web/admin/lib/lang/hr_server_config.lng @@ -39,6 +39,11 @@ $wb['relayhost_txt'] = 'Relayhost'; $wb['relayhost_user_txt'] = 'Relayhost korisnik'; $wb['relayhost_password_txt'] = 'Relayhost Å¡ifra'; $wb['reject_sender_login_mismatch_txt'] = 'Reject sender and login mismatch'; +$wb['reject_unknown_txt'] = 'Reject unknown hostnames'; +$wb['tooltip_reject_unknown_txt'] = 'Requires hostnames to pass DNS checks. Not checked for authenticated users.'; +$wb['reject_unknown_helo_txt'] = 'Reject unknown helo hostnames'; +$wb['reject_unknown_client_txt'] = 'Reject unknown client hostnames'; +$wb['reject_unknown_client_helo_txt'] = 'Reject unknown helo and client hostnames'; $wb['mailbox_size_limit_txt'] = 'Dozvoljena veliÄina mailboxa'; $wb['message_size_limit_txt'] = 'Dozvoljena veliÄina emaila'; $wb['ip_address_txt'] = 'IP adresa'; @@ -172,6 +177,8 @@ $wb['backup_mode_userzip'] = 'Backup web files owned by web user as zip'; $wb['backup_mode_rootgz'] = 'Backup all files in web directory as root user'; $wb['realtime_blackhole_list_txt'] = 'Real-time Blackhole List'; $wb['realtime_blackhole_list_note_txt'] = '(Separate RBL\'s with commas)'; +$wb['stress_adaptive_txt'] = 'Adapt to temporary load spikes'; +$wb['tooltip_stress_adaptive_txt'] = 'Enables Postfix stress-adaptive behavior.'; $wb['ssl_settings_txt'] = 'SSL postavke'; $wb['permissions_txt'] = 'Dozvole'; $wb['php_settings_txt'] = 'PHP postavke'; @@ -310,4 +317,6 @@ $wb['rspamd_password_txt'] = 'Rspamd Password'; $wb['vhost_proxy_protocol_enabled_txt'] = 'Enable PROXY Protocol'; $wb['vhost_proxy_protocol_http_port_txt'] = 'PROXY Protocol HTTP Port'; $wb['vhost_proxy_protocol_https_port_txt'] = 'PROXY Protocol HTTPS Port'; +$wb["jailkit_chroot_authorized_keys_template_txt"] = 'Jailkit authorized_keys template'; +$wb['jailkit_chroot_authorized_keys_template_error_regex'] = 'Invalid jaikit chroot authorized_keys template file.'; ?> diff --git a/interface/web/admin/lib/lang/hr_system_config.lng b/interface/web/admin/lib/lang/hr_system_config.lng index ab8756e95621c3666a91d2c507700938e404f2fa..220ca7e90ca9482831ad458a7ab47deeaac8a712 100644 --- a/interface/web/admin/lib/lang/hr_system_config.lng +++ b/interface/web/admin/lib/lang/hr_system_config.lng @@ -95,4 +95,5 @@ $wb['active_txt'] = 'Aktive'; $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'; ?> diff --git a/interface/web/admin/lib/lang/hu_directive_snippets.lng b/interface/web/admin/lib/lang/hu_directive_snippets.lng index 0616afad8b6c76c9eb284f57a673f6c35d286310..071d6f4fed2e32c912693d79f87e31c2e9879090 100644 --- a/interface/web/admin/lib/lang/hu_directive_snippets.lng +++ b/interface/web/admin/lib/lang/hu_directive_snippets.lng @@ -9,4 +9,5 @@ $wb['directive_snippets_name_error_unique'] = 'There is already a directive snip $wb['variables_txt'] = 'Variables'; $wb['customer_viewable_txt'] = 'Customer viewable'; $wb['required_php_snippets_txt'] = 'Requiered PHP Snippet'; +$wb['update_sites_txt'] = 'Update sites using this snippet'; ?> diff --git a/interface/web/admin/lib/lang/hu_server_config.lng b/interface/web/admin/lib/lang/hu_server_config.lng index 789e86a64989643f0a039e5edc585bd869fd6b08..979eacb0e8d6f5aed08a64340cacdc283edbc5e5 100644 --- a/interface/web/admin/lib/lang/hu_server_config.lng +++ b/interface/web/admin/lib/lang/hu_server_config.lng @@ -38,6 +38,11 @@ $wb['relayhost_txt'] = 'Relayhost'; $wb['relayhost_user_txt'] = 'Relayhost User'; $wb['relayhost_password_txt'] = 'Relayhost Password'; $wb['reject_sender_login_mismatch_txt'] = 'Reject sender and login mismatch'; +$wb['reject_unknown_txt'] = 'Reject unknown hostnames'; +$wb['tooltip_reject_unknown_txt'] = 'Requires hostnames to pass DNS checks. Not checked for authenticated users.'; +$wb['reject_unknown_helo_txt'] = 'Reject unknown helo hostnames'; +$wb['reject_unknown_client_txt'] = 'Reject unknown client hostnames'; +$wb['reject_unknown_client_helo_txt'] = 'Reject unknown helo and client hostnames'; $wb['mailbox_size_limit_txt'] = 'Mailbox Size Limit'; $wb['message_size_limit_txt'] = 'Message Size Limit'; $wb['ip_address_txt'] = 'IP Address'; @@ -172,6 +177,8 @@ $wb['backup_mode_userzip'] = 'Backup web files owned by web user as zip'; $wb['backup_mode_rootgz'] = 'Backup all files in web directory as root user'; $wb['realtime_blackhole_list_txt'] = 'Real-time Blackhole List'; $wb['realtime_blackhole_list_note_txt'] = '(Separate RBL\'s with commas)'; +$wb['stress_adaptive_txt'] = 'Adapt to temporary load spikes'; +$wb['tooltip_stress_adaptive_txt'] = 'Enables Postfix stress-adaptive behavior.'; $wb['ssl_settings_txt'] = 'SSL Settings'; $wb['permissions_txt'] = 'Permissions'; $wb['php_settings_txt'] = 'PHP Settings'; @@ -310,4 +317,6 @@ $wb['rspamd_password_txt'] = 'Rspamd Password'; $wb['vhost_proxy_protocol_enabled_txt'] = 'Enable PROXY Protocol'; $wb['vhost_proxy_protocol_http_port_txt'] = 'PROXY Protocol HTTP Port'; $wb['vhost_proxy_protocol_https_port_txt'] = 'PROXY Protocol HTTPS Port'; +$wb["jailkit_chroot_authorized_keys_template_txt"] = 'Jailkit authorized_keys template'; +$wb['jailkit_chroot_authorized_keys_template_error_regex'] = 'Invalid jaikit chroot authorized_keys template file.'; ?> diff --git a/interface/web/admin/lib/lang/hu_system_config.lng b/interface/web/admin/lib/lang/hu_system_config.lng index 4262b892099af4ec5e6d366ec53824b7c5ca7bad..0069f31c07448ed4fcf4e2fb1f277604be3ccff9 100644 --- a/interface/web/admin/lib/lang/hu_system_config.lng +++ b/interface/web/admin/lib/lang/hu_system_config.lng @@ -95,4 +95,5 @@ $wb['active_txt'] = 'Aktive'; $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'; ?> diff --git a/interface/web/admin/lib/lang/id_directive_snippets.lng b/interface/web/admin/lib/lang/id_directive_snippets.lng index 0616afad8b6c76c9eb284f57a673f6c35d286310..071d6f4fed2e32c912693d79f87e31c2e9879090 100644 --- a/interface/web/admin/lib/lang/id_directive_snippets.lng +++ b/interface/web/admin/lib/lang/id_directive_snippets.lng @@ -9,4 +9,5 @@ $wb['directive_snippets_name_error_unique'] = 'There is already a directive snip $wb['variables_txt'] = 'Variables'; $wb['customer_viewable_txt'] = 'Customer viewable'; $wb['required_php_snippets_txt'] = 'Requiered PHP Snippet'; +$wb['update_sites_txt'] = 'Update sites using this snippet'; ?> diff --git a/interface/web/admin/lib/lang/id_server_config.lng b/interface/web/admin/lib/lang/id_server_config.lng index ee197a4d0a9e9154c78b6c09363d8231c66f162e..717948646926f1eae04b9b25fa9701aedd4b47d4 100644 --- a/interface/web/admin/lib/lang/id_server_config.lng +++ b/interface/web/admin/lib/lang/id_server_config.lng @@ -40,6 +40,11 @@ $wb['relayhost_txt'] = 'Relayhost'; $wb['relayhost_user_txt'] = 'Pengguna Relayhost'; $wb['relayhost_password_txt'] = 'Kata Sandi Relayhost'; $wb['reject_sender_login_mismatch_txt'] = 'Reject sender and login mismatch'; +$wb['reject_unknown_txt'] = 'Reject unknown hostnames'; +$wb['tooltip_reject_unknown_txt'] = 'Requires hostnames to pass DNS checks. Not checked for authenticated users.'; +$wb['reject_unknown_helo_txt'] = 'Reject unknown helo hostnames'; +$wb['reject_unknown_client_txt'] = 'Reject unknown client hostnames'; +$wb['reject_unknown_client_helo_txt'] = 'Reject unknown helo and client hostnames'; $wb['mailbox_size_limit_txt'] = 'Batasan Ukuran Mailbox'; $wb['message_size_limit_txt'] = 'Batasan Ukuran Pesan'; $wb['ip_address_txt'] = 'Alamat IP'; @@ -172,6 +177,8 @@ $wb['backup_mode_userzip'] = 'Backup web files owned by web user as zip'; $wb['backup_mode_rootgz'] = 'Backup all files in web directory as root user'; $wb['realtime_blackhole_list_txt'] = 'Real-time Blackhole List'; $wb['realtime_blackhole_list_note_txt'] = '(Separate RBL\'s with commas)'; +$wb['stress_adaptive_txt'] = 'Adapt to temporary load spikes'; +$wb['tooltip_stress_adaptive_txt'] = 'Enables Postfix stress-adaptive behavior.'; $wb['ssl_settings_txt'] = 'SSL Settings'; $wb['permissions_txt'] = 'Permissions'; $wb['php_settings_txt'] = 'PHP Settings'; @@ -310,4 +317,6 @@ $wb['rspamd_password_txt'] = 'Rspamd Password'; $wb['vhost_proxy_protocol_enabled_txt'] = 'Enable PROXY Protocol'; $wb['vhost_proxy_protocol_http_port_txt'] = 'PROXY Protocol HTTP Port'; $wb['vhost_proxy_protocol_https_port_txt'] = 'PROXY Protocol HTTPS Port'; +$wb["jailkit_chroot_authorized_keys_template_txt"] = 'Jailkit authorized_keys template'; +$wb['jailkit_chroot_authorized_keys_template_error_regex'] = 'Invalid jaikit chroot authorized_keys template file.'; ?> diff --git a/interface/web/admin/lib/lang/id_system_config.lng b/interface/web/admin/lib/lang/id_system_config.lng index fe545e7476f06ecc07e8499434024ac4aa853e6d..539699da888897e43fee3bcce3425a3b5ed3a463 100644 --- a/interface/web/admin/lib/lang/id_system_config.lng +++ b/interface/web/admin/lib/lang/id_system_config.lng @@ -95,4 +95,5 @@ $wb['active_txt'] = 'Aktive'; $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'; ?> diff --git a/interface/web/admin/lib/lang/it_directive_snippets.lng b/interface/web/admin/lib/lang/it_directive_snippets.lng index 5598aacecc152ca4c07d07a7e9ad5cd0e6af4c28..e9a473f92ecc562a54c57785cb4a2d3046c60f66 100644 --- a/interface/web/admin/lib/lang/it_directive_snippets.lng +++ b/interface/web/admin/lib/lang/it_directive_snippets.lng @@ -9,4 +9,5 @@ $wb['directive_snippets_name_error_unique'] = 'Esiste già una direttiva snippet $wb['variables_txt'] = 'Variabili'; $wb['customer_viewable_txt'] = 'Customer viewable'; $wb['required_php_snippets_txt'] = 'Requiered PHP Snippet'; +$wb['update_sites_txt'] = 'Update sites using this snippet'; ?> diff --git a/interface/web/admin/lib/lang/it_server_config.lng b/interface/web/admin/lib/lang/it_server_config.lng index cd71123720fffca2b2ed0f0d35ee11e55bcca809..9aa049a4889fafe0087addb56f6e94006a04a59a 100644 --- a/interface/web/admin/lib/lang/it_server_config.lng +++ b/interface/web/admin/lib/lang/it_server_config.lng @@ -165,6 +165,8 @@ $wb['backup_mode_userzip'] = 'Backup files siti web come utente web in formato z $wb['backup_mode_rootgz'] = 'Backup di tutti i files nella cartella sito come utente root'; $wb['realtime_blackhole_list_txt'] = 'Lista Real-Time Blackhole'; $wb['realtime_blackhole_list_note_txt'] = '(Separare RBL con le virgole)'; +$wb['stress_adaptive_txt'] = 'Adapt to temporary load spikes'; +$wb['tooltip_stress_adaptive_txt'] = 'Enables Postfix stress-adaptive behavior.'; $wb['ssl_settings_txt'] = 'Impostazioni SSL'; $wb['permissions_txt'] = 'Permessi'; $wb['php_settings_txt'] = 'Impostazioni PHP'; @@ -256,6 +258,11 @@ $wb['mailbox_virtual_uidgid_maps_error_nosingleserver'] = 'Uid cannot be mapped $wb['mailbox_virtual_uidgid_maps_error_nodovecot'] = 'Uid-mapping can only be used with dovecot.'; $wb['mailbox_virtual_uidgid_maps_error_alreadyusers'] = 'Uid-mapping cannot be changed if there are already mail users.'; $wb['reject_sender_login_mismatch_txt'] = 'Reject sender and login mismatch'; +$wb['reject_unknown_txt'] = 'Reject unknown hostnames'; +$wb['tooltip_reject_unknown_txt'] = 'Requires hostnames to pass DNS checks. Not checked for authenticated users.'; +$wb['reject_unknown_helo_txt'] = 'Reject unknown helo hostnames'; +$wb['reject_unknown_client_txt'] = 'Reject unknown client hostnames'; +$wb['reject_unknown_client_helo_txt'] = 'Reject unknown helo and client hostnames'; $wb['do_not_try_rescue_mongodb_txt'] = 'Disable MongoDB monitoring'; $wb['v6_prefix_txt'] = 'IPv6 Prefix'; $wb['vhost_rewrite_v6_txt'] = 'Rewrite IPv6 on Mirror'; @@ -310,4 +317,6 @@ $wb['rspamd_password_txt'] = 'Rspamd Password'; $wb['vhost_proxy_protocol_enabled_txt'] = 'Enable PROXY Protocol'; $wb['vhost_proxy_protocol_http_port_txt'] = 'PROXY Protocol HTTP Port'; $wb['vhost_proxy_protocol_https_port_txt'] = 'PROXY Protocol HTTPS Port'; +$wb["jailkit_chroot_authorized_keys_template_txt"] = 'Jailkit authorized_keys template'; +$wb['jailkit_chroot_authorized_keys_template_error_regex'] = 'Invalid jaikit chroot authorized_keys template file.'; ?> diff --git a/interface/web/admin/lib/lang/it_system_config.lng b/interface/web/admin/lib/lang/it_system_config.lng index f261ba3e8127bcfe843a64c32c0d6a9a24bed76c..0c20959df29caa4f411234e58d0cc4b6e8fd6f0e 100644 --- a/interface/web/admin/lib/lang/it_system_config.lng +++ b/interface/web/admin/lib/lang/it_system_config.lng @@ -95,4 +95,5 @@ $wb['active_txt'] = 'Aktive'; $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'; ?> diff --git a/interface/web/admin/lib/lang/ja_directive_snippets.lng b/interface/web/admin/lib/lang/ja_directive_snippets.lng index 0616afad8b6c76c9eb284f57a673f6c35d286310..071d6f4fed2e32c912693d79f87e31c2e9879090 100644 --- a/interface/web/admin/lib/lang/ja_directive_snippets.lng +++ b/interface/web/admin/lib/lang/ja_directive_snippets.lng @@ -9,4 +9,5 @@ $wb['directive_snippets_name_error_unique'] = 'There is already a directive snip $wb['variables_txt'] = 'Variables'; $wb['customer_viewable_txt'] = 'Customer viewable'; $wb['required_php_snippets_txt'] = 'Requiered PHP Snippet'; +$wb['update_sites_txt'] = 'Update sites using this snippet'; ?> diff --git a/interface/web/admin/lib/lang/ja_server_config.lng b/interface/web/admin/lib/lang/ja_server_config.lng index 4ef8d13422baef55f4a63c3031bee07294a658a9..3de4d2ca1ab35fec48efad324b23d441c5ed18f5 100644 --- a/interface/web/admin/lib/lang/ja_server_config.lng +++ b/interface/web/admin/lib/lang/ja_server_config.lng @@ -40,6 +40,11 @@ $wb['relayhost_txt'] = 'リレーホスト'; $wb['relayhost_user_txt'] = 'リレーホストユーザー'; $wb['relayhost_password_txt'] = 'リレーホストパスワード'; $wb['reject_sender_login_mismatch_txt'] = 'Reject sender and login mismatch'; +$wb['reject_unknown_txt'] = 'Reject unknown hostnames'; +$wb['tooltip_reject_unknown_txt'] = 'Requires hostnames to pass DNS checks. Not checked for authenticated users.'; +$wb['reject_unknown_helo_txt'] = 'Reject unknown helo hostnames'; +$wb['reject_unknown_client_txt'] = 'Reject unknown client hostnames'; +$wb['reject_unknown_client_helo_txt'] = 'Reject unknown helo and client hostnames'; $wb['mailbox_size_limit_txt'] = 'メールボックスã®ã‚µã‚¤ã‚º'; $wb['message_size_limit_txt'] = 'メッセージã®æœ€å¤§ã‚µã‚¤ã‚º'; $wb['ip_address_txt'] = 'IPアドレス'; @@ -172,6 +177,8 @@ $wb['backup_mode_userzip'] = 'Backup web files owned by web user as zip'; $wb['backup_mode_rootgz'] = 'Backup all files in web directory as root user'; $wb['realtime_blackhole_list_txt'] = 'Real-time Blackhole List'; $wb['realtime_blackhole_list_note_txt'] = '(Separate RBL\'s with commas)'; +$wb['stress_adaptive_txt'] = 'Adapt to temporary load spikes'; +$wb['tooltip_stress_adaptive_txt'] = 'Enables Postfix stress-adaptive behavior.'; $wb['ssl_settings_txt'] = 'SSL Settings'; $wb['permissions_txt'] = 'Permissions'; $wb['php_settings_txt'] = 'PHP Settings'; @@ -310,4 +317,6 @@ $wb['rspamd_password_txt'] = 'Rspamd Password'; $wb['vhost_proxy_protocol_enabled_txt'] = 'Enable PROXY Protocol'; $wb['vhost_proxy_protocol_http_port_txt'] = 'PROXY Protocol HTTP Port'; $wb['vhost_proxy_protocol_https_port_txt'] = 'PROXY Protocol HTTPS Port'; +$wb["jailkit_chroot_authorized_keys_template_txt"] = 'Jailkit authorized_keys template'; +$wb['jailkit_chroot_authorized_keys_template_error_regex'] = 'Invalid jaikit chroot authorized_keys template file.'; ?> diff --git a/interface/web/admin/lib/lang/ja_system_config.lng b/interface/web/admin/lib/lang/ja_system_config.lng index 96ce2d2ad64d66ba0f3fbcb8b5014c382642397c..f6b5c9e1a519ec3ba3f642bb94d5c3e11792ede1 100644 --- a/interface/web/admin/lib/lang/ja_system_config.lng +++ b/interface/web/admin/lib/lang/ja_system_config.lng @@ -95,4 +95,5 @@ $wb['active_txt'] = 'Aktive'; $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'; ?> diff --git a/interface/web/admin/lib/lang/nl_directive_snippets.lng b/interface/web/admin/lib/lang/nl_directive_snippets.lng index a4f610634e6008a36d19eea337d61b6f71552219..d216622c6f5c8701361d5b816f9e6811cac90374 100644 --- a/interface/web/admin/lib/lang/nl_directive_snippets.lng +++ b/interface/web/admin/lib/lang/nl_directive_snippets.lng @@ -9,4 +9,5 @@ $wb['directive_snippets_name_error_unique'] = 'Er is al een Directive Snippet me $wb['variables_txt'] = 'Variabelen'; $wb['customer_viewable_txt'] = 'Zichtbaar voor klanten'; $wb['required_php_snippets_txt'] = 'Vereiste PHP Snippet'; +$wb['update_sites_txt'] = 'Update sites using this snippet'; ?> diff --git a/interface/web/admin/lib/lang/nl_server_config.lng b/interface/web/admin/lib/lang/nl_server_config.lng index 5b5fcf122bf4350700f11285a66eb928b832a16b..7e3edc43982b99105169fe53309561d33cb7094c 100644 --- a/interface/web/admin/lib/lang/nl_server_config.lng +++ b/interface/web/admin/lib/lang/nl_server_config.lng @@ -40,6 +40,11 @@ $wb['relayhost_txt'] = 'Relayhost'; $wb['relayhost_user_txt'] = 'Relayhost gebruiker'; $wb['relayhost_password_txt'] = 'Relayhost wachtwoord'; $wb['reject_sender_login_mismatch_txt'] = 'Reject sender and login mismatch'; +$wb['reject_unknown_txt'] = 'Reject unknown hostnames'; +$wb['tooltip_reject_unknown_txt'] = 'Requires hostnames to pass DNS checks. Not checked for authenticated users.'; +$wb['reject_unknown_helo_txt'] = 'Reject unknown helo hostnames'; +$wb['reject_unknown_client_txt'] = 'Reject unknown client hostnames'; +$wb['reject_unknown_client_helo_txt'] = 'Reject unknown helo and client hostnames'; $wb['mailbox_size_limit_txt'] = 'Mailbox grootte limiet'; $wb['message_size_limit_txt'] = 'Message grootte limiet'; $wb['ip_address_txt'] = 'IP adres'; @@ -172,6 +177,8 @@ $wb['backup_mode_userzip'] = 'Backup web files owned by web user as zip'; $wb['backup_mode_rootgz'] = 'Backup all files in web directory as root user'; $wb['realtime_blackhole_list_txt'] = 'Real-time Blackhole List'; $wb['realtime_blackhole_list_note_txt'] = '(Separate RBL\'s with commas)'; +$wb['stress_adaptive_txt'] = 'Adapt to temporary load spikes'; +$wb['tooltip_stress_adaptive_txt'] = 'Enables Postfix stress-adaptive behavior.'; $wb['ssl_settings_txt'] = 'SSL Settings'; $wb['permissions_txt'] = 'Permissions'; $wb['php_settings_txt'] = 'PHP Settings'; @@ -310,4 +317,6 @@ $wb['rspamd_password_txt'] = 'Rspamd Password'; $wb['vhost_proxy_protocol_enabled_txt'] = 'Enable PROXY Protocol'; $wb['vhost_proxy_protocol_http_port_txt'] = 'PROXY Protocol HTTP Port'; $wb['vhost_proxy_protocol_https_port_txt'] = 'PROXY Protocol HTTPS Port'; +$wb["jailkit_chroot_authorized_keys_template_txt"] = 'Jailkit authorized_keys template'; +$wb['jailkit_chroot_authorized_keys_template_error_regex'] = 'Invalid jaikit chroot authorized_keys template file.'; ?> diff --git a/interface/web/admin/lib/lang/nl_system_config.lng b/interface/web/admin/lib/lang/nl_system_config.lng index f9f59896bfc226da7d2839d62e28ae6676b632f6..19eae464a354a780c17bdbd273c7241356292ca6 100644 --- a/interface/web/admin/lib/lang/nl_system_config.lng +++ b/interface/web/admin/lib/lang/nl_system_config.lng @@ -95,4 +95,5 @@ $wb['active_txt'] = 'Aktive'; $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'; ?> diff --git a/interface/web/admin/lib/lang/pl_directive_snippets.lng b/interface/web/admin/lib/lang/pl_directive_snippets.lng index 4902bf3282ce2e1148d5e5a40c9c73c998c3ccdc..abef1e28faa56c89174aef76e87ad10fa53b7b1d 100644 --- a/interface/web/admin/lib/lang/pl_directive_snippets.lng +++ b/interface/web/admin/lib/lang/pl_directive_snippets.lng @@ -9,4 +9,5 @@ $wb['directive_snippets_name_error_unique'] = 'Istnieje już zestaw dyrektyw o p $wb['variables_txt'] = 'Variables'; $wb['customer_viewable_txt'] = 'Customer viewable'; $wb['required_php_snippets_txt'] = 'Requiered PHP Snippet'; +$wb['update_sites_txt'] = 'Update sites using this snippet'; ?> diff --git a/interface/web/admin/lib/lang/pl_server_config.lng b/interface/web/admin/lib/lang/pl_server_config.lng index 1d6caa8e5eff0879c14e9dac9e7c42d7e8a47441..294ed44ee7b76bfd5262676502e125cfff9d97a1 100644 --- a/interface/web/admin/lib/lang/pl_server_config.lng +++ b/interface/web/admin/lib/lang/pl_server_config.lng @@ -40,6 +40,11 @@ $wb['relayhost_txt'] = 'Adres Relayhost'; $wb['relayhost_user_txt'] = 'Użytkownik Relayhost'; $wb['relayhost_password_txt'] = 'HasÅ‚o Relayhost'; $wb['reject_sender_login_mismatch_txt'] = 'Reject sender and login mismatch'; +$wb['reject_unknown_txt'] = 'Reject unknown hostnames'; +$wb['tooltip_reject_unknown_txt'] = 'Requires hostnames to pass DNS checks. Not checked for authenticated users.'; +$wb['reject_unknown_helo_txt'] = 'Reject unknown helo hostnames'; +$wb['reject_unknown_client_txt'] = 'Reject unknown client hostnames'; +$wb['reject_unknown_client_helo_txt'] = 'Reject unknown helo and client hostnames'; $wb['mailbox_size_limit_txt'] = 'Maksymalna wielkość skrzynki pocztowej'; $wb['message_size_limit_txt'] = 'Maksymalna wielkość wiadomoÅ›ci'; $wb['ip_address_txt'] = 'Adres IP'; @@ -172,6 +177,8 @@ $wb['backup_mode_userzip'] = 'Pliki kopii z prawami użytkownika jako zip'; $wb['backup_mode_rootgz'] = 'Twórz kopie wszystkich plików w katalogu web jako root'; $wb['realtime_blackhole_list_txt'] = 'Real-time Blackhole List'; $wb['realtime_blackhole_list_note_txt'] = '(oddziel RBL-e przecinkami)'; +$wb['stress_adaptive_txt'] = 'Adapt to temporary load spikes'; +$wb['tooltip_stress_adaptive_txt'] = 'Enables Postfix stress-adaptive behavior.'; $wb['ssl_settings_txt'] = 'Ustawienia SSL'; $wb['permissions_txt'] = 'Uprawnienia'; $wb['php_settings_txt'] = 'Ustawienia PHP'; @@ -310,4 +317,6 @@ $wb['rspamd_password_txt'] = 'Rspamd Password'; $wb['vhost_proxy_protocol_enabled_txt'] = 'Enable PROXY Protocol'; $wb['vhost_proxy_protocol_http_port_txt'] = 'PROXY Protocol HTTP Port'; $wb['vhost_proxy_protocol_https_port_txt'] = 'PROXY Protocol HTTPS Port'; +$wb["jailkit_chroot_authorized_keys_template_txt"] = 'Jailkit authorized_keys template'; +$wb['jailkit_chroot_authorized_keys_template_error_regex'] = 'Invalid jaikit chroot authorized_keys template file.'; ?> diff --git a/interface/web/admin/lib/lang/pl_system_config.lng b/interface/web/admin/lib/lang/pl_system_config.lng index 5f49133f561589911d3e9095e7891ab98ca6e628..f44853ccb2b4ecb62bacdc99784592a4b5ff489e 100644 --- a/interface/web/admin/lib/lang/pl_system_config.lng +++ b/interface/web/admin/lib/lang/pl_system_config.lng @@ -95,4 +95,5 @@ $wb['active_txt'] = 'Aktive'; $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'; ?> diff --git a/interface/web/admin/lib/lang/pt_directive_snippets.lng b/interface/web/admin/lib/lang/pt_directive_snippets.lng index 0616afad8b6c76c9eb284f57a673f6c35d286310..071d6f4fed2e32c912693d79f87e31c2e9879090 100644 --- a/interface/web/admin/lib/lang/pt_directive_snippets.lng +++ b/interface/web/admin/lib/lang/pt_directive_snippets.lng @@ -9,4 +9,5 @@ $wb['directive_snippets_name_error_unique'] = 'There is already a directive snip $wb['variables_txt'] = 'Variables'; $wb['customer_viewable_txt'] = 'Customer viewable'; $wb['required_php_snippets_txt'] = 'Requiered PHP Snippet'; +$wb['update_sites_txt'] = 'Update sites using this snippet'; ?> diff --git a/interface/web/admin/lib/lang/pt_server_config.lng b/interface/web/admin/lib/lang/pt_server_config.lng index fcf7a23e88117d6f58b1cf75950fd5e4947f4944..8b9d78d151f8523a8d8aeeab5870f37335f089bb 100644 --- a/interface/web/admin/lib/lang/pt_server_config.lng +++ b/interface/web/admin/lib/lang/pt_server_config.lng @@ -39,6 +39,11 @@ $wb['relayhost_txt'] = 'Host Relay'; $wb['relayhost_user_txt'] = 'Utilizador do Host Relay'; $wb['relayhost_password_txt'] = 'Senha do Host Relay'; $wb['reject_sender_login_mismatch_txt'] = 'Reject sender and login mismatch'; +$wb['reject_unknown_txt'] = 'Reject unknown hostnames'; +$wb['tooltip_reject_unknown_txt'] = 'Requires hostnames to pass DNS checks. Not checked for authenticated users.'; +$wb['reject_unknown_helo_txt'] = 'Reject unknown helo hostnames'; +$wb['reject_unknown_client_txt'] = 'Reject unknown client hostnames'; +$wb['reject_unknown_client_helo_txt'] = 'Reject unknown helo and client hostnames'; $wb['mailbox_size_limit_txt'] = 'Tamanho máximo da Caixa Postal'; $wb['message_size_limit_txt'] = 'Tamanho máximo de mensagem'; $wb['ip_address_txt'] = 'Endereço IP'; @@ -172,6 +177,8 @@ $wb['backup_mode_userzip'] = 'Backup web files owned by web user as zip'; $wb['backup_mode_rootgz'] = 'Backup all files in web directory as root user'; $wb['realtime_blackhole_list_txt'] = 'Real-time Blackhole List'; $wb['realtime_blackhole_list_note_txt'] = '(Separate RBL\'s with commas)'; +$wb['stress_adaptive_txt'] = 'Adapt to temporary load spikes'; +$wb['tooltip_stress_adaptive_txt'] = 'Enables Postfix stress-adaptive behavior.'; $wb['ssl_settings_txt'] = 'SSL Settings'; $wb['permissions_txt'] = 'Permissions'; $wb['php_settings_txt'] = 'PHP Settings'; @@ -310,4 +317,6 @@ $wb['rspamd_password_txt'] = 'Rspamd Password'; $wb['vhost_proxy_protocol_enabled_txt'] = 'Enable PROXY Protocol'; $wb['vhost_proxy_protocol_http_port_txt'] = 'PROXY Protocol HTTP Port'; $wb['vhost_proxy_protocol_https_port_txt'] = 'PROXY Protocol HTTPS Port'; +$wb["jailkit_chroot_authorized_keys_template_txt"] = 'Jailkit authorized_keys template'; +$wb['jailkit_chroot_authorized_keys_template_error_regex'] = 'Invalid jaikit chroot authorized_keys template file.'; ?> diff --git a/interface/web/admin/lib/lang/pt_system_config.lng b/interface/web/admin/lib/lang/pt_system_config.lng index 10b87a40ae223ca364da96b44c5fad4543913016..bbfedbf3a43f5b931b99ca8b6bea80a03a8afdb6 100644 --- a/interface/web/admin/lib/lang/pt_system_config.lng +++ b/interface/web/admin/lib/lang/pt_system_config.lng @@ -95,4 +95,5 @@ $wb['active_txt'] = 'Aktive'; $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'; ?> diff --git a/interface/web/admin/lib/lang/ro_directive_snippets.lng b/interface/web/admin/lib/lang/ro_directive_snippets.lng index 0616afad8b6c76c9eb284f57a673f6c35d286310..071d6f4fed2e32c912693d79f87e31c2e9879090 100644 --- a/interface/web/admin/lib/lang/ro_directive_snippets.lng +++ b/interface/web/admin/lib/lang/ro_directive_snippets.lng @@ -9,4 +9,5 @@ $wb['directive_snippets_name_error_unique'] = 'There is already a directive snip $wb['variables_txt'] = 'Variables'; $wb['customer_viewable_txt'] = 'Customer viewable'; $wb['required_php_snippets_txt'] = 'Requiered PHP Snippet'; +$wb['update_sites_txt'] = 'Update sites using this snippet'; ?> diff --git a/interface/web/admin/lib/lang/ro_server_config.lng b/interface/web/admin/lib/lang/ro_server_config.lng index 2c3b4fdce48d33abc402d4312ba7f338c68e4b1e..a1ce64839ff9e1cf38ecd0442259a6fa150d07ab 100644 --- a/interface/web/admin/lib/lang/ro_server_config.lng +++ b/interface/web/admin/lib/lang/ro_server_config.lng @@ -39,6 +39,11 @@ $wb['relayhost_txt'] = 'Relayhost'; $wb['relayhost_user_txt'] = 'Relayhost User'; $wb['relayhost_password_txt'] = 'Relayhost Password'; $wb['reject_sender_login_mismatch_txt'] = 'Reject sender and login mismatch'; +$wb['reject_unknown_txt'] = 'Reject unknown hostnames'; +$wb['tooltip_reject_unknown_txt'] = 'Requires hostnames to pass DNS checks. Not checked for authenticated users.'; +$wb['reject_unknown_helo_txt'] = 'Reject unknown helo hostnames'; +$wb['reject_unknown_client_txt'] = 'Reject unknown client hostnames'; +$wb['reject_unknown_client_helo_txt'] = 'Reject unknown helo and client hostnames'; $wb['mailbox_size_limit_txt'] = 'Mailbox Size Limit'; $wb['message_size_limit_txt'] = 'Message Size Limit'; $wb['ip_address_txt'] = 'IP Address'; @@ -172,6 +177,8 @@ $wb['backup_mode_userzip'] = 'Backup web files owned by web user as zip'; $wb['backup_mode_rootgz'] = 'Backup all files in web directory as root user'; $wb['realtime_blackhole_list_txt'] = 'Real-time Blackhole List'; $wb['realtime_blackhole_list_note_txt'] = '(Separate RBL\'s with commas)'; +$wb['stress_adaptive_txt'] = 'Adapt to temporary load spikes'; +$wb['tooltip_stress_adaptive_txt'] = 'Enables Postfix stress-adaptive behavior.'; $wb['ssl_settings_txt'] = 'SSL Settings'; $wb['permissions_txt'] = 'Permissions'; $wb['php_settings_txt'] = 'PHP Settings'; @@ -310,4 +317,6 @@ $wb['rspamd_password_txt'] = 'Rspamd Password'; $wb['vhost_proxy_protocol_enabled_txt'] = 'Enable PROXY Protocol'; $wb['vhost_proxy_protocol_http_port_txt'] = 'PROXY Protocol HTTP Port'; $wb['vhost_proxy_protocol_https_port_txt'] = 'PROXY Protocol HTTPS Port'; +$wb["jailkit_chroot_authorized_keys_template_txt"] = 'Jailkit authorized_keys template'; +$wb['jailkit_chroot_authorized_keys_template_error_regex'] = 'Invalid jaikit chroot authorized_keys template file.'; ?> diff --git a/interface/web/admin/lib/lang/ro_system_config.lng b/interface/web/admin/lib/lang/ro_system_config.lng index 56c7e40059a858ff89d41c80aed078db9b1a69e9..a7756c737d8361c0147b26179f8fde2a29a06f90 100644 --- a/interface/web/admin/lib/lang/ro_system_config.lng +++ b/interface/web/admin/lib/lang/ro_system_config.lng @@ -95,4 +95,5 @@ $wb['active_txt'] = 'Aktive'; $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'; ?> diff --git a/interface/web/admin/lib/lang/ru_directive_snippets.lng b/interface/web/admin/lib/lang/ru_directive_snippets.lng index cfa09a02fcb1ea396c0c8a7257ae673a31e281fa..120a962d7ff5934de3b41c91dd4a41c4a03aa3f6 100644 --- a/interface/web/admin/lib/lang/ru_directive_snippets.lng +++ b/interface/web/admin/lib/lang/ru_directive_snippets.lng @@ -9,4 +9,5 @@ $wb['directive_snippets_name_error_unique'] = 'Уже еÑÑ‚ÑŒ заготовк $wb['variables_txt'] = 'Переменные:'; $wb['customer_viewable_txt'] = 'Видимый клиентам'; $wb['required_php_snippets_txt'] = 'ОбÑÐ·Ð°Ñ‚ÐµÐ»ÑŒÐ½Ð°Ñ PHP-заготовка'; +$wb['update_sites_txt'] = 'Update sites using this snippet'; ?> diff --git a/interface/web/admin/lib/lang/ru_server_config.lng b/interface/web/admin/lib/lang/ru_server_config.lng index f3f5a47c7d907006a4f4f4a80e62b163d4484c16..8583ccd43464be391edbe9d720d72d68a313a666 100644 --- a/interface/web/admin/lib/lang/ru_server_config.lng +++ b/interface/web/admin/lib/lang/ru_server_config.lng @@ -37,6 +37,11 @@ $wb['relayhost_txt'] = 'Relay-хоÑÑ‚'; $wb['relayhost_user_txt'] = 'Логин Relay-хоÑта'; $wb['relayhost_password_txt'] = 'Пароль Relay-хоÑта'; $wb['reject_sender_login_mismatch_txt'] = 'Отклонить при неÑовпадении Ð¾Ñ‚Ð¿Ñ€Ð°Ð²Ð¸Ñ‚ÐµÐ»Ñ Ð¸ логина'; +$wb['reject_unknown_txt'] = 'Reject unknown hostnames'; +$wb['tooltip_reject_unknown_txt'] = 'Requires hostnames to pass DNS checks. Not checked for authenticated users.'; +$wb['reject_unknown_helo_txt'] = 'Reject unknown helo hostnames'; +$wb['reject_unknown_client_txt'] = 'Reject unknown client hostnames'; +$wb['reject_unknown_client_helo_txt'] = 'Reject unknown helo and client hostnames'; $wb['mailbox_size_limit_txt'] = 'Лимит объема почтового Ñщика'; $wb['message_size_limit_txt'] = 'Лимит размера ÑообщениÑ'; $wb['ip_address_txt'] = 'IP-адреÑ'; @@ -172,6 +177,8 @@ $wb['backup_mode_userzip'] = 'Делать резервные копии web Ñ„ $wb['backup_mode_rootgz'] = 'Делать резервные копии вÑех файлов в веб-каталог как корневой пользователь'; $wb['realtime_blackhole_list_txt'] = 'Real-time Blackhole List'; $wb['realtime_blackhole_list_note_txt'] = '(РазделÑйте RBL запÑтыми)'; +$wb['stress_adaptive_txt'] = 'Adapt to temporary load spikes'; +$wb['tooltip_stress_adaptive_txt'] = 'Enables Postfix stress-adaptive behavior.'; $wb['ssl_settings_txt'] = 'ÐаÑтройки SSL'; $wb['permissions_txt'] = 'РазрешениÑ'; $wb['php_settings_txt'] = 'Параметры PHP'; @@ -310,4 +317,6 @@ $wb['rspamd_password_txt'] = 'Rspamd Password'; $wb['vhost_proxy_protocol_enabled_txt'] = 'Enable PROXY Protocol'; $wb['vhost_proxy_protocol_http_port_txt'] = 'PROXY Protocol HTTP Port'; $wb['vhost_proxy_protocol_https_port_txt'] = 'PROXY Protocol HTTPS Port'; +$wb["jailkit_chroot_authorized_keys_template_txt"] = 'Jailkit authorized_keys template'; +$wb['jailkit_chroot_authorized_keys_template_error_regex'] = 'Invalid jaikit chroot authorized_keys template file.'; ?> diff --git a/interface/web/admin/lib/lang/ru_system_config.lng b/interface/web/admin/lib/lang/ru_system_config.lng index c0da3d894a8ebcfb8c6121a8011cfb79273dbc67..37d9c263abf8e2ce1ac5e152a73804d0eb05157a 100644 --- a/interface/web/admin/lib/lang/ru_system_config.lng +++ b/interface/web/admin/lib/lang/ru_system_config.lng @@ -95,4 +95,5 @@ $wb['active_txt'] = 'Aktive'; $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'; ?> diff --git a/interface/web/admin/lib/lang/se_directive_snippets.lng b/interface/web/admin/lib/lang/se_directive_snippets.lng index 0616afad8b6c76c9eb284f57a673f6c35d286310..071d6f4fed2e32c912693d79f87e31c2e9879090 100644 --- a/interface/web/admin/lib/lang/se_directive_snippets.lng +++ b/interface/web/admin/lib/lang/se_directive_snippets.lng @@ -9,4 +9,5 @@ $wb['directive_snippets_name_error_unique'] = 'There is already a directive snip $wb['variables_txt'] = 'Variables'; $wb['customer_viewable_txt'] = 'Customer viewable'; $wb['required_php_snippets_txt'] = 'Requiered PHP Snippet'; +$wb['update_sites_txt'] = 'Update sites using this snippet'; ?> diff --git a/interface/web/admin/lib/lang/se_server_config.lng b/interface/web/admin/lib/lang/se_server_config.lng index 634c3655a76d2c7a32dac14b8906275d940f4349..ff44861126f5b25bb1b453c5169791a7e6c63bb3 100644 --- a/interface/web/admin/lib/lang/se_server_config.lng +++ b/interface/web/admin/lib/lang/se_server_config.lng @@ -38,6 +38,11 @@ $wb['relayhost_txt'] = 'Relayhost'; $wb['relayhost_user_txt'] = 'Relayhost User'; $wb['relayhost_password_txt'] = 'Relayhost Password'; $wb['reject_sender_login_mismatch_txt'] = 'Reject sender and login mismatch'; +$wb['reject_unknown_txt'] = 'Reject unknown hostnames'; +$wb['tooltip_reject_unknown_txt'] = 'Requires hostnames to pass DNS checks. Not checked for authenticated users.'; +$wb['reject_unknown_helo_txt'] = 'Reject unknown helo hostnames'; +$wb['reject_unknown_client_txt'] = 'Reject unknown client hostnames'; +$wb['reject_unknown_client_helo_txt'] = 'Reject unknown helo and client hostnames'; $wb['mailbox_size_limit_txt'] = 'Mailbox Size Limit'; $wb['message_size_limit_txt'] = 'Message Size Limit'; $wb['ip_address_txt'] = 'IP Address'; @@ -172,6 +177,8 @@ $wb['backup_mode_userzip'] = 'Backup web files owned by web user as zip'; $wb['backup_mode_rootgz'] = 'Backup all files in web directory as root user'; $wb['realtime_blackhole_list_txt'] = 'Real-time Blackhole List'; $wb['realtime_blackhole_list_note_txt'] = '(Separate RBL\'s with commas)'; +$wb['stress_adaptive_txt'] = 'Adapt to temporary load spikes'; +$wb['tooltip_stress_adaptive_txt'] = 'Enables Postfix stress-adaptive behavior.'; $wb['ssl_settings_txt'] = 'SSL Settings'; $wb['permissions_txt'] = 'Permissions'; $wb['php_settings_txt'] = 'PHP Settings'; @@ -310,4 +317,6 @@ $wb['rspamd_password_txt'] = 'Rspamd Password'; $wb['vhost_proxy_protocol_enabled_txt'] = 'Enable PROXY Protocol'; $wb['vhost_proxy_protocol_http_port_txt'] = 'PROXY Protocol HTTP Port'; $wb['vhost_proxy_protocol_https_port_txt'] = 'PROXY Protocol HTTPS Port'; +$wb["jailkit_chroot_authorized_keys_template_txt"] = 'Jailkit authorized_keys template'; +$wb['jailkit_chroot_authorized_keys_template_error_regex'] = 'Invalid jaikit chroot authorized_keys template file.'; ?> diff --git a/interface/web/admin/lib/lang/se_system_config.lng b/interface/web/admin/lib/lang/se_system_config.lng index bf24b9852b8b275da9a8d8f7b143271bf7d760c8..6768bc411887e561c57362e0eb73370bf7f0cd6a 100644 --- a/interface/web/admin/lib/lang/se_system_config.lng +++ b/interface/web/admin/lib/lang/se_system_config.lng @@ -95,4 +95,5 @@ $wb['active_txt'] = 'Aktive'; $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'; ?> diff --git a/interface/web/admin/lib/lang/sk_directive_snippets.lng b/interface/web/admin/lib/lang/sk_directive_snippets.lng index 0616afad8b6c76c9eb284f57a673f6c35d286310..071d6f4fed2e32c912693d79f87e31c2e9879090 100644 --- a/interface/web/admin/lib/lang/sk_directive_snippets.lng +++ b/interface/web/admin/lib/lang/sk_directive_snippets.lng @@ -9,4 +9,5 @@ $wb['directive_snippets_name_error_unique'] = 'There is already a directive snip $wb['variables_txt'] = 'Variables'; $wb['customer_viewable_txt'] = 'Customer viewable'; $wb['required_php_snippets_txt'] = 'Requiered PHP Snippet'; +$wb['update_sites_txt'] = 'Update sites using this snippet'; ?> diff --git a/interface/web/admin/lib/lang/sk_server_config.lng b/interface/web/admin/lib/lang/sk_server_config.lng index 50c8c0b4c9d0bac3c70cc96802c8d430ab0ab2e3..1efac9e6e66db15bfcf572e06e136a3bb52b55e4 100644 --- a/interface/web/admin/lib/lang/sk_server_config.lng +++ b/interface/web/admin/lib/lang/sk_server_config.lng @@ -40,6 +40,11 @@ $wb['relayhost_txt'] = 'Relayhost'; $wb['relayhost_user_txt'] = 'Relayhost uživateľ'; $wb['relayhost_password_txt'] = 'Relayhost heslo'; $wb['reject_sender_login_mismatch_txt'] = 'Reject sender and login mismatch'; +$wb['reject_unknown_txt'] = 'Reject unknown hostnames'; +$wb['tooltip_reject_unknown_txt'] = 'Requires hostnames to pass DNS checks. Not checked for authenticated users.'; +$wb['reject_unknown_helo_txt'] = 'Reject unknown helo hostnames'; +$wb['reject_unknown_client_txt'] = 'Reject unknown client hostnames'; +$wb['reject_unknown_client_helo_txt'] = 'Reject unknown helo and client hostnames'; $wb['mailbox_size_limit_txt'] = 'Limit ve?kosti poÅ¡tovej schránky'; $wb['message_size_limit_txt'] = 'Limit ve?kosti správy'; $wb['ip_address_txt'] = 'IP Adresa'; @@ -172,6 +177,8 @@ $wb['backup_mode_userzip'] = 'Backup web files owned by web user as zip'; $wb['backup_mode_rootgz'] = 'Backup all files in web directory as root user'; $wb['realtime_blackhole_list_txt'] = 'Real-time Blackhole List'; $wb['realtime_blackhole_list_note_txt'] = '(Separate RBL\'s with commas)'; +$wb['stress_adaptive_txt'] = 'Adapt to temporary load spikes'; +$wb['tooltip_stress_adaptive_txt'] = 'Enables Postfix stress-adaptive behavior.'; $wb['ssl_settings_txt'] = 'SSL Settings'; $wb['permissions_txt'] = 'Permissions'; $wb['php_settings_txt'] = 'PHP Settings'; @@ -310,4 +317,6 @@ $wb['rspamd_password_txt'] = 'Rspamd Password'; $wb['vhost_proxy_protocol_enabled_txt'] = 'Enable PROXY Protocol'; $wb['vhost_proxy_protocol_http_port_txt'] = 'PROXY Protocol HTTP Port'; $wb['vhost_proxy_protocol_https_port_txt'] = 'PROXY Protocol HTTPS Port'; +$wb["jailkit_chroot_authorized_keys_template_txt"] = 'Jailkit authorized_keys template'; +$wb['jailkit_chroot_authorized_keys_template_error_regex'] = 'Invalid jaikit chroot authorized_keys template file.'; ?> diff --git a/interface/web/admin/lib/lang/sk_system_config.lng b/interface/web/admin/lib/lang/sk_system_config.lng index 2fdce03e691badf87b628a17e21c66ee2d50995d..85a96bf5bf1126e65cccd898d2a7bb2276197934 100644 --- a/interface/web/admin/lib/lang/sk_system_config.lng +++ b/interface/web/admin/lib/lang/sk_system_config.lng @@ -95,4 +95,5 @@ $wb['active_txt'] = 'Aktive'; $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'; ?> diff --git a/interface/web/admin/lib/lang/tr_directive_snippets.lng b/interface/web/admin/lib/lang/tr_directive_snippets.lng index 448d4536723307c96f69f5a704e7b9a889072536..4c1cebea4e503d632e193013817c5004d5fb7685 100644 --- a/interface/web/admin/lib/lang/tr_directive_snippets.lng +++ b/interface/web/admin/lib/lang/tr_directive_snippets.lng @@ -9,4 +9,5 @@ $wb['directive_snippets_name_error_unique'] = 'Aynı adlı bir yönerge kod par $wb['variables_txt'] = 'DeÄŸiÅŸkenler'; $wb['customer_viewable_txt'] = 'Müşteri görebilir'; $wb['required_php_snippets_txt'] = 'Gerekli PHP Parçası'; +$wb['update_sites_txt'] = 'Update sites using this snippet'; ?> diff --git a/interface/web/admin/lib/lang/tr_server_config.lng b/interface/web/admin/lib/lang/tr_server_config.lng index 09aa3adf2d9bd484cd242db73f572a3b23230872..25380413fa36a2ad8d269c3642b45e2fd35bb004 100644 --- a/interface/web/admin/lib/lang/tr_server_config.lng +++ b/interface/web/admin/lib/lang/tr_server_config.lng @@ -51,6 +51,11 @@ $wb['relayhost_txt'] = 'Aktarım Sunucusu'; $wb['relayhost_user_txt'] = 'Aktarım Sunucu Kullanıcı Adı'; $wb['relayhost_password_txt'] = 'Aktarım Sunucu Parolası'; $wb['reject_sender_login_mismatch_txt'] = 'Gönderen ile Oturum Açmış Kullanıcı EÅŸleÅŸmiyorsa Reddedilsin'; +$wb['reject_unknown_txt'] = 'Reject unknown hostnames'; +$wb['tooltip_reject_unknown_txt'] = 'Requires hostnames to pass DNS checks. Not checked for authenticated users.'; +$wb['reject_unknown_helo_txt'] = 'Reject unknown helo hostnames'; +$wb['reject_unknown_client_txt'] = 'Reject unknown client hostnames'; +$wb['reject_unknown_client_helo_txt'] = 'Reject unknown helo and client hostnames'; $wb['mailbox_size_limit_txt'] = 'E-posta Kutusu Boyutu Sınırı'; $wb['message_size_limit_txt'] = 'Ä°leti Boyutu Sınırı'; $wb['ip_address_txt'] = 'IP Adresi'; @@ -179,6 +184,8 @@ $wb['connect_userid_to_webid_txt'] = 'Linux kullanıcıkodu webkoduna baÄŸlansı $wb['connect_userid_to_webid_start_txt'] = 'BaÄŸlanacak kullanıcıkodu/webkodu için baÅŸlangıç kodu'; $wb['realtime_blackhole_list_txt'] = 'Gerçek Zamanlı Karadelik Listesi (RBL)'; $wb['realtime_blackhole_list_note_txt'] = '(RBL adlarını virgül ile ayırarak yazın)'; +$wb['stress_adaptive_txt'] = 'Adapt to temporary load spikes'; +$wb['tooltip_stress_adaptive_txt'] = 'Enables Postfix stress-adaptive behavior.'; $wb['ssl_settings_txt'] = 'SSL Ayarları'; $wb['permissions_txt'] = 'Ä°zinler'; $wb['php_settings_txt'] = 'PHP Ayarları'; @@ -304,4 +311,6 @@ $wb['php_default_name_error_empty'] = 'Varsayılan PHP sürümü açıklaması b $wb['vhost_proxy_protocol_enabled_txt'] = 'Enable PROXY Protocol'; $wb['vhost_proxy_protocol_http_port_txt'] = 'PROXY Protocol HTTP Port'; $wb['vhost_proxy_protocol_https_port_txt'] = 'PROXY Protocol HTTPS Port'; +$wb["jailkit_chroot_authorized_keys_template_txt"] = 'Jailkit authorized_keys template'; +$wb['jailkit_chroot_authorized_keys_template_error_regex'] = 'Invalid jaikit chroot authorized_keys template file.'; ?> diff --git a/interface/web/admin/lib/lang/tr_system_config.lng b/interface/web/admin/lib/lang/tr_system_config.lng index afc8a9239f2df64b2b9ca3dabe6d10ca01ba44d7..b4cb7c8d11bc3db4633af003cc31f0ea0595de59 100644 --- a/interface/web/admin/lib/lang/tr_system_config.lng +++ b/interface/web/admin/lib/lang/tr_system_config.lng @@ -89,4 +89,5 @@ $wb['custom_login_link_txt'] = 'Oturum Açma Sayfası BaÄŸlantısı'; $wb['login_link_error_regex'] = 'Oturum Açma BaÄŸlantısı Geçersiz'; $wb["default_remote_dbserver_txt"] = "Default DB Remote servers"; $wb["disable_client_remote_dbserver_txt"] = "Disable DB Remote sections for Clients"; +$wb['client_protection_txt'] = 'Client protection'; ?> diff --git a/interface/web/admin/server_config_edit.php b/interface/web/admin/server_config_edit.php index cca5d702d3ba03e6600aa93ac39cff6de80b9847..339ac2f2f5605d9b6ad0ccb2d2d462113aee3b4f 100644 --- a/interface/web/admin/server_config_edit.php +++ b/interface/web/admin/server_config_edit.php @@ -79,7 +79,7 @@ class page_action extends tform_actions { function onShowEdit() { global $app, $conf; - if($_SESSION["s"]["user"]["typ"] != 'admin') die('This function needs admin priveliges'); + if($_SESSION["s"]["user"]["typ"] != 'admin') die('This function needs admin privileges'); if($app->tform->errorMessage == '') { $app->uses('ini_parser,getconf'); @@ -115,7 +115,7 @@ class page_action extends tform_actions { function onUpdateSave($sql) { global $app, $conf; - if($_SESSION["s"]["user"]["typ"] != 'admin') die('This function needs admin priveliges'); + if($_SESSION["s"]["user"]["typ"] != 'admin') die('This function needs admin privileges'); $app->uses('ini_parser,getconf'); if($conf['demo_mode'] != true) { @@ -192,10 +192,11 @@ class page_action extends tform_actions { $app->db->datalogUpdate('mail_user', $mail_user, 'mailuser_id', $mail_user["mailuser_id"], true); $mail_user['autoresponder'] = 'y'; $app->db->datalogUpdate('mail_user', $mail_user, 'mailuser_id', $mail_user["mailuser_id"], true); - } elseif($mail_user['move_junk'] == 'y') { + } elseif($mail_user['move_junk'] != 'n') { + $save = $mail_user['move_junk']; $mail_user['move_junk'] = 'n'; $app->db->datalogUpdate('mail_user', $mail_user, 'mailuser_id', $mail_user["mailuser_id"], true); - $mail_user['move_junk'] = 'y'; + $mail_user['move_junk'] = $save; $app->db->datalogUpdate('mail_user', $mail_user, 'mailuser_id', $mail_user["mailuser_id"], true); } else { $app->db->datalogUpdate('mail_user', $mail_user, 'mailuser_id', $mail_user["mailuser_id"], true); diff --git a/interface/web/admin/server_php_del.php b/interface/web/admin/server_php_del.php index f160c1b2d93e89db8899b97cb31364f0811d7cd1..82b4c8a17de3a5233d5b8caedd4449f774d43248 100644 --- a/interface/web/admin/server_php_del.php +++ b/interface/web/admin/server_php_del.php @@ -52,28 +52,14 @@ $app->load('tform_actions'); class page_action extends tform_actions { function onBeforeDelete() { - global $app; $conf; + global $app; - $check = array(); - - // fastcgi - if(!empty(trim($this->dataRecord['php_fastcgi_binary']))) $check[] = trim($this->dataRecord['php_fastcgi_binary']); - if(!empty(trim($this->dataRecord['php_fastcgi_ini_dir']))) $check[] = trim($this->dataRecord['php_fastcgi_ini_dir']); - if(!empty($check)) $fastcgi_check = implode(':', $check); - unset($check); - - // fpm - if(!empty(trim($this->dataRecord['php_fpm_init_script']))) $check[] = trim($this->dataRecord['php_fpm_init_script']); - if(!empty(trim($this->dataRecord['php_fpm_ini_dir']))) $check[] = trim($this->dataRecord['php_fpm_ini_dir']); - if(!empty(trim($this->dataRecord['php_fpm_pool_dir']))) $check[] = trim($this->dataRecord['php_fpm_pool_dir']); - if(!empty($check)) $fpm_check = implode(':', $check); - - $sql = 'SELECT domain_id FROM web_domain WHERE server_id = ? AND fastcgi_php_version LIKE ?'; - if(isset($fastcgi_check)) $web_domains_fastcgi = $app->db->queryAllRecords($sql, $this->dataRecord['server_id'], '%:'.$fastcgi_check); - if(isset($fpm_check)) $web_domains_fpm = $app->db->queryAllRecords($sql, $this->dataRecord['server_id'], '%:'.$fpm_check); - - if(!empty($webdomains_fastcgi) || !empty($web_domains_fpm)) $app->error($app->tform->lng('php_in_use_error')); + $sql = 'SELECT domain_id FROM web_domain WHERE server_id = ? AND server_php_id = ?'; + $web_domains = $app->db->queryAllRecords($sql, $this->dataRecord['server_id'], $this->id); + if(!empty($web_domains)) { + $app->error($app->tform->lng('php_in_use_error')); + } } } @@ -81,4 +67,3 @@ class page_action extends tform_actions { $page = new page_action; $page->onDelete(); -?> diff --git a/interface/web/admin/server_php_edit.php b/interface/web/admin/server_php_edit.php index c200b25bae2a72a7d60a3afe17d425b83b2e5282..a9e7b38bbb5b0d10335bffea920a847dd5347b9f 100644 --- a/interface/web/admin/server_php_edit.php +++ b/interface/web/admin/server_php_edit.php @@ -51,36 +51,10 @@ $app->load('tform_actions'); class page_action extends tform_actions { function onSubmit() { - global $app; - - if(isset($this->id) && $this->id > 0 && $app->tform->getCurrentTab() == 'php_name') { - $rec = $app->db->queryOneRecord('SELECT * FROM server_php WHERE server_php_id = ?', $this->id); - if($rec['name'] != $this->dataRecord['name']) { - $check = array(); - // fastcgi - if($rec['php_fastcgi_binary'] != '') $check[] = $rec['php_fastcgi_binary']; - if($rec['php_fastcgi_ini_dir'] != '') $check[] = $rec['php_fastcgi_ini_dir']; - if(!empty($check)) $fastcgi_check = implode(':', $check); - unset($check); - // fpm - if($rec['php_fpm_init_script'] != '') $check[] = $rec['php_fpm_init_script']; - if($rec['php_fpm_ini_dir'] != '') $check[] = $rec['php_fpm_ini_dir']; - if($rec['php_fpm_pool_dir'] != '') $check[] = $rec['php_fpm_pool_dir']; - if(!empty($check)) $fpm_check = implode(':', $check); - - $sql = 'SELECT domain_id FROM web_domain WHERE server_id = ? AND fastcgi_php_version LIKE ?'; - if(isset($fastcgi_check)) $web_domains_fastcgi = $app->db->queryAllRecords($sql, $this->dataRecord['server_id'], '%:'.$fastcgi_check); - if(isset($fpm_check)) $web_domains_fpm = $app->db->queryAllRecords($sql, $this->dataRecord['server_id'], '%:'.$fpm_check); - - if(!empty($webdomains_fastcgi) || !empty($web_domains_fpm)) $app->error($app->tform->lng('php_in_use_error').' '.$app->tform->lng('php_name_in_use_error')); - } - } - parent::onSubmit(); - } function onBeforeUpdate() { - global $app, $conf; + global $app; //* Check if the server has been changed // We do this only for the admin or reseller users, as normal clients can not change the server ID anyway @@ -99,5 +73,3 @@ class page_action extends tform_actions { $page = new page_action; $page->onLoad(); - -?> diff --git a/interface/web/admin/server_php_list.php b/interface/web/admin/server_php_list.php index a3c4d6354fe3c7acb38c947410178bbebf0d1099..11ef881792cb76965e3a5aed2dcfce98808127ea 100644 --- a/interface/web/admin/server_php_list.php +++ b/interface/web/admin/server_php_list.php @@ -51,7 +51,7 @@ $app->listform_actions->SQLOrderBy = "ORDER BY server_php.server_id, server_php. $app->listform_actions->SQLExtSelect = "(SELECT COUNT(w.server_id) FROM - server_php s LEFT JOIN web_domain w ON (w.fastcgi_php_version LIKE CONCAT(s.name, '%') AND s.server_id=w.server_id) + server_php s LEFT JOIN web_domain w ON (w.server_php_id = s.server_php_id AND s.server_id=w.server_id) WHERE server_php.server_php_id=s.server_php_id GROUP BY @@ -60,5 +60,3 @@ $app->listform_actions->SQLExtSelect = "(SELECT $app->listform_actions->onLoad(); - -?> diff --git a/interface/web/admin/system_config_edit.php b/interface/web/admin/system_config_edit.php index 04db6717b0d3eb37aca9ae625d3d1a8154a0c982..941f6e0bbe90adbad455c37b270115477fcb666f 100644 --- a/interface/web/admin/system_config_edit.php +++ b/interface/web/admin/system_config_edit.php @@ -56,7 +56,7 @@ class page_action extends tform_actions { function onShowEdit() { global $app, $conf; - if($_SESSION["s"]["user"]["typ"] != 'admin') die('This function needs admin priveliges'); + if($_SESSION["s"]["user"]["typ"] != 'admin') die('This function needs admin privileges'); if($app->tform->errorMessage == '') { $app->uses('ini_parser,getconf'); @@ -96,7 +96,7 @@ class page_action extends tform_actions { if($available_dashlets_txt == '') $available_dashlets_txt = '------'; $app->tpl->setVar("available_dashlets_txt", $available_dashlets_txt); - + // Logo $sys_ini = $app->db->queryOneRecord("SELECT * FROM sys_ini WHERE sysini_id = ?", $this->id); if($sys_ini['custom_logo'] != ''){ @@ -133,7 +133,7 @@ class page_action extends tform_actions { function onUpdateSave($sql) { global $app, $conf; - if($_SESSION["s"]["user"]["typ"] != 'admin') die('This function needs admin priveliges'); + if($_SESSION["s"]["user"]["typ"] != 'admin') die('This function needs admin privileges'); $app->uses('ini_parser,getconf'); $section = $app->tform->getCurrentTab(); @@ -156,6 +156,13 @@ class page_action extends tform_actions { */ $new_config = $app->tform->encode($this->dataRecord, $section); + + if($section == 'sites' && $new_config['client_protection'] != 'y' && $server_config_array['sites']['client_protection'] == 'y') { + $app->db->query("UPDATE `web_domain` SET `sys_userid` = (select `userid` FROM `sys_user` WHERE `default_group` = `web_domain`.`sys_groupid`), `sys_perm_group` = 'riud' WHERE `added_by` = 'admin' and sys_groupid > 0"); + } elseif($section == 'sites' && $new_config['client_protection'] != 'n' && $server_config_array['sites']['client_protection'] == 'n') { + $app->db->query("UPDATE `web_domain` SET `sys_userid` = 1, `sys_perm_group` = 'ru' WHERE `added_by` = 'admin'"); + } + if($section == 'sites' && $new_config['vhost_subdomains'] != 'y' && $server_config_array['sites']['vhost_subdomains'] == 'y') { // check for existing vhost subdomains, if found the mode cannot be disabled $check = $app->db->queryOneRecord("SELECT COUNT(*) as `cnt` FROM `web_domain` WHERE `type` = 'vhostsubdomain'"); @@ -198,13 +205,13 @@ class page_action extends tform_actions { "FROM dns_soa"; $app->db->query($sql); } - + //die(print_r($_FILES)); // Logo /* if(isset($_FILES['file']['name']) && is_uploaded_file($_FILES['file']['tmp_name'])){ //print_r($_FILES); - + $path= $_FILES['file']['tmp_name']; $type = pathinfo($path, PATHINFO_EXTENSION); $data = file_get_contents($path); diff --git a/interface/web/admin/templates/directive_snippets_edit.htm b/interface/web/admin/templates/directive_snippets_edit.htm index ee4d2ab3cd84c6ce0a9f75e99d474f65cdfd3e54..4506cafd634189b6be65cf278b1d11fa8909dc6f 100644 --- a/interface/web/admin/templates/directive_snippets_edit.htm +++ b/interface/web/admin/templates/directive_snippets_edit.htm @@ -36,7 +36,10 @@ {tmpl_var name='active'} </div> </div> - + <div class="form-group"> + <label for="update_sites" class="col-sm-3 control-label">{tmpl_var name='update_sites_txt'}</label> + <div class="col-sm-9">{tmpl_var name='update_sites'}</div> + </div> <input type="hidden" name="id" value="{tmpl_var name='id'}"> diff --git a/interface/web/admin/templates/server_config_jailkit_edit.htm b/interface/web/admin/templates/server_config_jailkit_edit.htm index b7a749147654c6fab6105400cafb7ec691d980c8..4b7028bd3b1449dd7eea31592af54b8234eac230 100644 --- a/interface/web/admin/templates/server_config_jailkit_edit.htm +++ b/interface/web/admin/templates/server_config_jailkit_edit.htm @@ -17,6 +17,9 @@ <div class="form-group"> <label for="jailkit_chroot_cron_programs" class="col-sm-3 control-label">{tmpl_var name='jailkit_chroot_cron_programs_txt'}</label> <div class="col-sm-9"><input type="text" name="jailkit_chroot_cron_programs" id="jailkit_chroot_cron_programs" value="{tmpl_var name='jailkit_chroot_cron_programs'}" class="form-control" /></div></div> + <div class="form-group"> + <label for="jailkit_chroot_authorized_keys_template" class="col-sm-3 control-label">{tmpl_var name='jailkit_chroot_authorized_keys_template_txt'}</label> + <div class="col-sm-9"><input type="text" name="jailkit_chroot_authorized_keys_template" id="jailkit_chroot_authorized_keys_template" value="{tmpl_var name='jailkit_chroot_authorized_keys_template'}" class="form-control" /></div></div> <input type="hidden" name="id" value="{tmpl_var name='id'}"> diff --git a/interface/web/admin/templates/server_config_mail_edit.htm b/interface/web/admin/templates/server_config_mail_edit.htm index 6ba37104ef111f91d555c2fd8610e88f7dae6660..1e63cecca8b4a215ccf34e999576d513a3261a4b 100644 --- a/interface/web/admin/templates/server_config_mail_edit.htm +++ b/interface/web/admin/templates/server_config_mail_edit.htm @@ -99,6 +99,24 @@ <label for="message_size_limit" class="col-sm-3 control-label">{tmpl_var name='message_size_limit_txt'}</label> <div class="col-sm-6"><input type="text" name="message_size_limit" id="message_size_limit" value="{tmpl_var name='message_size_limit'}" class="form-control" /></div><div class="col-sm-3 input-sm"> MB </div></div> + <div class="form-group"> + <label for="realtime_blackhole_list" class="col-sm-3 control-label">{tmpl_var name='realtime_blackhole_list_txt'}</label> + <div class="col-sm-6"><input type="text" name="realtime_blackhole_list" id="realtime_blackhole_list" value="{tmpl_var name='realtime_blackhole_list'}" class="form-control" /></div><div class="col-sm-3 input-sm"> {tmpl_var name='realtime_blackhole_list_note_txt'} + </div></div> + <div class="form-group"> + <label class="col-sm-3 control-label">{tmpl_var name='reject_unknown_txt'}</label> + <div class="col-sm-9"><a href="#" data-toggle="tooltip" title="{tmpl_var name='tooltip_reject_unknown_txt'}"> + <select name="reject_unknown" id="reject_unknown" class="form-control"> + {tmpl_var name='reject_unknown'} + </select></a> + </div> + </div> + <div class="form-group"> + <label class="col-sm-3 control-label">{tmpl_var name='stress_adaptive_txt'}</label> + <div class="col-sm-9"> + <a href="#" data-toggle="tooltip" title="{tmpl_var name='tooltip_stress_adaptive_txt'}">{tmpl_var name="stress_adaptive"}</a> + </div> + </div> <div class="form-group"> <label class="col-sm-3 control-label">{tmpl_var name='mailbox_quota_stats_txt'}</label> <div class="col-sm-9"> @@ -106,10 +124,6 @@ </div> </div> <div class="form-group"> - <label for="realtime_blackhole_list" class="col-sm-3 control-label">{tmpl_var name='realtime_blackhole_list_txt'}</label> - <div class="col-sm-6"><input type="text" name="realtime_blackhole_list" id="realtime_blackhole_list" value="{tmpl_var name='realtime_blackhole_list'}" class="form-control" /></div><div class="col-sm-3 input-sm"> {tmpl_var name='realtime_blackhole_list_note_txt'} - </div></div> - <div class="form-group"> <label class="col-sm-3 control-label">{tmpl_var name='overquota_notify_admin_txt'}</label> <div class="col-sm-9"> {tmpl_var name='overquota_notify_admin'} diff --git a/interface/web/admin/templates/system_config_sites_edit.htm b/interface/web/admin/templates/system_config_sites_edit.htm index 82576d5e53308b0e2bac0e7e89dc5b9c2a481efe..c84b50e6b81ecb3304a4ef68bf8154013545ae89 100644 --- a/interface/web/admin/templates/system_config_sites_edit.htm +++ b/interface/web/admin/templates/system_config_sites_edit.htm @@ -26,6 +26,12 @@ <div class="form-group"> <label for="webftp_url" class="col-sm-3 control-label">{tmpl_var name='webftp_url_txt'}</label> <div class="col-sm-9"><input type="text" name="webftp_url" id="webftp_url" value="{tmpl_var name='webftp_url'}" class="form-control" /></div></div> + <div class="form-group"> + <label class="col-sm-3 control-label">{tmpl_var name='client_protection_txt'}</label> + <div class="col-sm-9"> + {tmpl_var name='client_protection'} + </div> + </div> <div class="form-group"> <label class="col-sm-3 control-label">{tmpl_var name='vhost_subdomains_txt'}</label> <div class="col-sm-9"> @@ -84,10 +90,10 @@ <label for="default_remote_dbserver" class="col-sm-3 control-label">{tmpl_var name='default_remote_dbserver_txt'}</label> <div class="col-sm-9"><input type="text" name="default_remote_dbserver" id="default_remote_dbserver" value="{tmpl_var name='default_remote_dbserver'}" class="form-control" /></div> </div> - - + + <input type="hidden" name="id" value="{tmpl_var name='id'}"> - + <div class="clear"><div class="right"> <button class="btn btn-default formbutton-success" type="button" value="{tmpl_var name='btn_save_txt'}" data-submit-form="pageForm" data-form-action="admin/system_config_edit.php">{tmpl_var name='btn_save_txt'}</button> <button class="btn btn-default formbutton-default" type="button" value="{tmpl_var name='btn_cancel_txt'}" data-load-content="admin/users_list.php">{tmpl_var name='btn_cancel_txt'}</button> diff --git a/interface/web/client/domain_edit.php b/interface/web/client/domain_edit.php index 094e1899be3b8b7eb16f0c1b322d092884d5e851..af7b900b9109a475b20b238c4060f4d5135c635f 100644 --- a/interface/web/client/domain_edit.php +++ b/interface/web/client/domain_edit.php @@ -67,7 +67,7 @@ class page_action extends tform_actions { function onShowEnd() { global $app, $conf, $wb; - + if($_SESSION["s"]["user"]["typ"] != 'admin' && $this->id == 0) { if(!$app->tform->checkClientLimit('limit_domainmodule')) { $app->uses('ini_parser,getconf'); @@ -100,7 +100,7 @@ class page_action extends tform_actions { $client_group_id = $app->functions->intval($_SESSION["s"]["user"]["default_group"]); $client = $app->db->queryOneRecord("SELECT client.client_id, client.contact_name, CONCAT(IF(client.company_name != '', CONCAT(client.company_name, ' :: '), ''), client.contact_name, ' (', client.username, IF(client.customer_no != '', CONCAT(', ', client.customer_no), ''), ')') as contactname, sys_group.name FROM sys_group, client WHERE sys_group.client_id = client.client_id and sys_group.groupid = ?", $client_group_id); $client = $app->functions->htmlentities($client); - + // Fill the client select field $sql = "SELECT sys_group.groupid, sys_group.name, CONCAT(IF(client.company_name != '', CONCAT(client.company_name, ' :: '), ''), client.contact_name, ' (', client.username, IF(client.customer_no != '', CONCAT(', ', client.customer_no), ''), ')') as contactname FROM sys_group, client WHERE sys_group.client_id = client.client_id AND client.parent_client_id = ? ORDER BY client.company_name, client.contact_name, sys_group.name"; //die($sql); diff --git a/interface/web/dashboard/dashlets/mailquota.php b/interface/web/dashboard/dashlets/mailquota.php index 4629d6a4630c23bea7fe6d71a3846ca76667da6d..a9434e58eaac846087c77738d9d131ebe4d51abe 100644 --- a/interface/web/dashboard/dashlets/mailquota.php +++ b/interface/web/dashboard/dashlets/mailquota.php @@ -21,13 +21,17 @@ class dashlet_mailquota { $has_mailquota = false; if(is_array($emails) && !empty($emails)){ + foreach($emails as &$email) { + $email['email'] = $app->functions->idn_decode($email['email']); + } + unset($email); // email username is quoted in quota.lib already, so no htmlentities here to prevent double encoding //$emails = $app->functions->htmlentities($emails); $tpl->setloop('mailquota', $emails); $has_mailquota = isset($emails[0]['used']); } $tpl->setVar('has_mailquota', $has_mailquota); - + return $tpl->grab(); } diff --git a/interface/web/dashboard/dashlets/quota.php b/interface/web/dashboard/dashlets/quota.php index dfb82d5c242bbe6ad8699e97db26855e1d378829..3fd5adbb85c5843bd51646304cb071f54f1eda33 100644 --- a/interface/web/dashboard/dashlets/quota.php +++ b/interface/web/dashboard/dashlets/quota.php @@ -7,9 +7,9 @@ class dashlet_quota { //* Loading Template $app->uses('tpl,quota_lib'); - if (!$app->auth->verify_module_permissions('sites')) { - return; - } + if (!$app->auth->verify_module_permissions('sites')) { + return; + } $tpl = new tpl; $tpl->newTemplate("dashlets/templates/quota.htm"); @@ -24,6 +24,11 @@ class dashlet_quota { $has_quota = false; if(is_array($sites) && !empty($sites)){ + foreach($sites as &$site) { + $site['domain'] = $app->functions->idn_decode($site['domain']); + } + unset($site); + $sites = $app->functions->htmlentities($sites); $tpl->setloop('quota', $sites); $has_quota = isset($sites[0]['used']); diff --git a/interface/web/dns/dns_soa_edit.php b/interface/web/dns/dns_soa_edit.php index ec5ba67c79de4e675647ab21ea1ba1b823118ce2..e17571e73612e8db511c303479aa3c87aed0ae8c 100644 --- a/interface/web/dns/dns_soa_edit.php +++ b/interface/web/dns/dns_soa_edit.php @@ -296,12 +296,17 @@ function onSubmit() { $this->dataRecord["xfer"] = preg_replace('/\s+/', '', $this->dataRecord["xfer"]); $this->dataRecord["also_notify"] = preg_replace('/\s+/', '', $this->dataRecord["also_notify"]); + + if(isset($this->dataRecord['dnssec_wanted']) && $this->dataRecord['dnssec_wanted'] == 'Y' && $this->dataRecord['dnssec_algo'] == '') $this->dataRecord['dnssec_algo'] = 'ECDSAP256SHA256'; //* Check if a secondary zone with the same name already exists $tmp = $app->db->queryOneRecord("SELECT count(id) as number FROM dns_slave WHERE origin = ? AND server_id = ?", $this->dataRecord["origin"], $this->dataRecord["server_id"]); if($tmp["number"] > 0) { $app->error($app->tform->wordbook["origin_error_unique"]); } + + //* server_id must be > 0 + if(isset($this->dataRecord["server_id"]) && $this->dataRecord["server_id"] < 1) $app->tform->errorMessage .= $app->lng("server_id_0_error_txt"); } parent::onSubmit(); } diff --git a/interface/web/dns/dns_wizard.php b/interface/web/dns/dns_wizard.php index 91b2307dc5126dc3650a1f3a38a754ea135151e9..b2320dc6bf98466d0cb6726870665ffb06a1e41d 100644 --- a/interface/web/dns/dns_wizard.php +++ b/interface/web/dns/dns_wizard.php @@ -339,6 +339,7 @@ if($_POST['create'] == 1) { $section = ''; $vars = array(); $vars['xfer']=''; + $vars['dnssec_algo']='ECDSAP256SHA256'; $dns_rr = array(); foreach($tpl_rows as $row) { $row = trim($row); @@ -398,6 +399,7 @@ if($_POST['create'] == 1) { $xfer = $vars['xfer']; $also_notify = $vars['also_notify']; $update_acl = $vars['update_acl']; + $dnssec_algo = $vars['dnssec_algo']; $serial = $app->validate_dns->increase_serial(0); $insert_data = array( @@ -420,7 +422,8 @@ if($_POST['create'] == 1) { "xfer" => $xfer, "also_notify" => $also_notify, "update_acl" => $update_acl, - "dnssec_wanted" => $enable_dnssec + "dnssec_wanted" => $enable_dnssec, + "dnssec_algo" => $dnssec_algo ); $dns_soa_id = $app->db->datalogInsert('dns_soa', $insert_data, 'id'); if($dns_soa_id > 0) $app->plugin->raiseEvent('dns:wizard:on_after_insert', $dns_soa_id); diff --git a/interface/web/dns/form/dns_soa.tform.php b/interface/web/dns/form/dns_soa.tform.php index cf0d143916c5fe2679777d1756ec96089bac9105..81389c4553f540a2f1ae367fdf7bf5858011bd7f 100644 --- a/interface/web/dns/form/dns_soa.tform.php +++ b/interface/web/dns/form/dns_soa.tform.php @@ -276,6 +276,15 @@ $form["tabs"]['dns_soa'] = array ( 'default' => 'Y', 'value' => array(0 => 'N', 1 => 'Y') ), + 'dnssec_algo' => array ( + 'datatype' => 'VARCHAR', + 'formtype' => 'CHECKBOXARRAY', + 'separator' => ',', + 'default' => 'ECDSAP256SHA256', + 'value' => array('NSEC3RSASHA1' => '7 (NSEC3RSASHA1)','ECDSAP256SHA256' => '13 (ECDSAP256SHA256)'), + 'width' => '30', + 'maxlength' => '255' + ), 'dnssec_info' => array ( 'datatype' => 'TEXT', 'formtype' => 'TEXTAREA', diff --git a/interface/web/dns/lib/lang/ar_dns_soa.lng b/interface/web/dns/lib/lang/ar_dns_soa.lng index c9721cebc0e2de6bb770816a544e0b3b8dd3863d..8c13c59e8e67b1fd37768608289f51f01610d997 100644 --- a/interface/web/dns/lib/lang/ar_dns_soa.lng +++ b/interface/web/dns/lib/lang/ar_dns_soa.lng @@ -41,4 +41,5 @@ $wb['dnssec_wanted_info'] = 'When disabling DNSSEC keys are not going to be dele $wb['error_not_allowed_server_id'] = 'The selected server is not allowed for this account.'; $wb['soa_cannot_be_changed_txt'] = 'Die Zone (SOA) kann nicht verändert werden. Bitte kontaktieren Sie ihren Administrator, um die Zone zu ändern.'; $wb['configuration_error_txt'] = 'CONFIGURATION ERROR'; +$wb['dnssec_algo_txt'] = 'DNSSEC Algorithm'; ?> diff --git a/interface/web/dns/lib/lang/bg_dns_soa.lng b/interface/web/dns/lib/lang/bg_dns_soa.lng index 151e3ead11483260d8acabf8ac729d7b0a5324c4..9e9e8bf3f50ce64fb5c25ebf642efd6cea336c1f 100644 --- a/interface/web/dns/lib/lang/bg_dns_soa.lng +++ b/interface/web/dns/lib/lang/bg_dns_soa.lng @@ -41,4 +41,5 @@ $wb['dnssec_wanted_info'] = 'When disabling DNSSEC keys are not going to be dele $wb['error_not_allowed_server_id'] = 'The selected server is not allowed for this account.'; $wb['soa_cannot_be_changed_txt'] = 'Die Zone (SOA) kann nicht verändert werden. Bitte kontaktieren Sie ihren Administrator, um die Zone zu ändern.'; $wb['configuration_error_txt'] = 'CONFIGURATION ERROR'; +$wb['dnssec_algo_txt'] = 'DNSSEC Algorithm'; ?> diff --git a/interface/web/dns/lib/lang/br_dns_soa.lng b/interface/web/dns/lib/lang/br_dns_soa.lng index f5385c4706b98e51611e803341ac3ea1a4f35ac4..f1cb453e9959cf0b883cad31460a9982bd4d1ebe 100644 --- a/interface/web/dns/lib/lang/br_dns_soa.lng +++ b/interface/web/dns/lib/lang/br_dns_soa.lng @@ -41,4 +41,5 @@ $wb['ttl_range_error'] = 'Intervalo mÃnimo do TTL são 60 segundos.'; $wb['error_not_allowed_server_id'] = 'O servidor selecionado não é permitido para esta conta.'; $wb['soa_cannot_be_changed_txt'] = 'A zona (SOA) não pode ser alterada. Por favor, contate o administrador se deseja alterar esta zona.'; $wb['configuration_error_txt'] = 'ERRO DE CONFIGURAÇÃO'; +$wb['dnssec_algo_txt'] = 'DNSSEC Algorithm'; ?> diff --git a/interface/web/dns/lib/lang/ca_dns_soa.lng b/interface/web/dns/lib/lang/ca_dns_soa.lng index 0b6759f07372f84c449c17942f8c4ca849225a53..ee2fdb07b64c3a188cca64d12fe20b6129c21f69 100644 --- a/interface/web/dns/lib/lang/ca_dns_soa.lng +++ b/interface/web/dns/lib/lang/ca_dns_soa.lng @@ -41,4 +41,5 @@ $wb['dnssec_wanted_info'] = 'When disabling DNSSEC keys are not going to be dele $wb['error_not_allowed_server_id'] = 'The selected server is not allowed for this account.'; $wb['soa_cannot_be_changed_txt'] = 'Die Zone (SOA) kann nicht verändert werden. Bitte kontaktieren Sie ihren Administrator, um die Zone zu ändern.'; $wb['configuration_error_txt'] = 'CONFIGURATION ERROR'; +$wb['dnssec_algo_txt'] = 'DNSSEC Algorithm'; ?> diff --git a/interface/web/dns/lib/lang/cz_dns_soa.lng b/interface/web/dns/lib/lang/cz_dns_soa.lng index cb35f0ef3bbe946036dd51179d8f5c0ef92ce730..ba6b2d4b52b6ac8d3d0ffa770ee5f02b2f5133fd 100644 --- a/interface/web/dns/lib/lang/cz_dns_soa.lng +++ b/interface/web/dns/lib/lang/cz_dns_soa.lng @@ -41,4 +41,5 @@ $wb['dnssec_wanted_info'] = 'Když deaktivujete DNSSEC klÃÄe nebudou odstranÄ› $wb['error_not_allowed_server_id'] = 'Vybraný server nenà pro tento úÄet povolen.'; $wb['soa_cannot_be_changed_txt'] = 'Die Zone (SOA) kann nicht verändert werden. Bitte kontaktieren Sie ihren Administrator, um die Zone zu ändern.'; $wb['configuration_error_txt'] = 'CONFIGURATION ERROR'; +$wb['dnssec_algo_txt'] = 'DNSSEC Algorithm'; ?> diff --git a/interface/web/dns/lib/lang/de_dns_soa.lng b/interface/web/dns/lib/lang/de_dns_soa.lng index 76d139391ddb580830e537c7050f09171d3bc943..14897b24e45fd86dbca1e4ddfc95d3317c6aae4b 100644 --- a/interface/web/dns/lib/lang/de_dns_soa.lng +++ b/interface/web/dns/lib/lang/de_dns_soa.lng @@ -41,4 +41,5 @@ $wb['xfer_error_regex'] = 'Zonentransfer: Verwenden Sie eine oder mehrere durch $wb['soa_cannot_be_changed_txt'] = 'Die Zone (SOA) kann nicht verändert werden. Bitte kontaktieren Sie ihren Administrator, um die Zone zu ändern.'; $wb['error_not_allowed_server_id'] = 'The selected server is not allowed for this account.'; $wb['configuration_error_txt'] = 'CONFIGURATION ERROR'; +$wb['dnssec_algo_txt'] = 'DNSSEC Algorithmus'; ?> diff --git a/interface/web/dns/lib/lang/dk_dns_soa.lng b/interface/web/dns/lib/lang/dk_dns_soa.lng index 6a3d71d973588f748bbda7b7d566a23442ed8a8a..a4ff50f14fa3f705e59b6ba19472bf8bd5f7ad5d 100644 --- a/interface/web/dns/lib/lang/dk_dns_soa.lng +++ b/interface/web/dns/lib/lang/dk_dns_soa.lng @@ -41,4 +41,5 @@ $wb['dnssec_wanted_info'] = 'When disabling DNSSEC keys are not going to be dele $wb['error_not_allowed_server_id'] = 'The selected server is not allowed for this account.'; $wb['soa_cannot_be_changed_txt'] = 'The Zone (SOA) can not be changed. Please contact your administrator to change the zone.'; $wb['configuration_error_txt'] = 'CONFIGURATION ERROR'; +$wb['dnssec_algo_txt'] = 'DNSSEC Algorithm'; ?> diff --git a/interface/web/dns/lib/lang/el_dns_soa.lng b/interface/web/dns/lib/lang/el_dns_soa.lng index 4d8c876d28aab75d4c6e893dcd1667363f9cf758..aae62bef7618261ef0cb8e116287d33db8a68931 100644 --- a/interface/web/dns/lib/lang/el_dns_soa.lng +++ b/interface/web/dns/lib/lang/el_dns_soa.lng @@ -41,4 +41,5 @@ $wb['dnssec_wanted_info'] = 'When disabling DNSSEC keys are not going to be dele $wb['error_not_allowed_server_id'] = 'The selected server is not allowed for this account.'; $wb['soa_cannot_be_changed_txt'] = 'Die Zone (SOA) kann nicht verändert werden. Bitte kontaktieren Sie ihren Administrator, um die Zone zu ändern.'; $wb['configuration_error_txt'] = 'CONFIGURATION ERROR'; +$wb['dnssec_algo_txt'] = 'DNSSEC Algorithm'; ?> diff --git a/interface/web/dns/lib/lang/en_dns_soa.lng b/interface/web/dns/lib/lang/en_dns_soa.lng index 1729a4d0cbe9b2e3a311462517c1dc811e11460c..7d130b34b03223a5ef82db646e913d652b39bd17 100644 --- a/interface/web/dns/lib/lang/en_dns_soa.lng +++ b/interface/web/dns/lib/lang/en_dns_soa.lng @@ -41,4 +41,5 @@ $wb['ttl_range_error'] = 'Min. TTL time is 60 seconds.'; $wb['error_not_allowed_server_id'] = 'The selected server is not allowed for this account.'; $wb['soa_cannot_be_changed_txt'] = 'The Zone (SOA) can not be changed. Please contact your administrator to change the zone.'; $wb['configuration_error_txt'] = 'CONFIGURATION ERROR'; +$wb['dnssec_algo_txt'] = 'DNSSEC Algorithm'; ?> diff --git a/interface/web/dns/lib/lang/es_dns_soa.lng b/interface/web/dns/lib/lang/es_dns_soa.lng index 23f4cc5ffcfb53f784333a43965cfdd740cbac0c..b1484e749a0258b43ed279ca159226a451badb81 100644 --- a/interface/web/dns/lib/lang/es_dns_soa.lng +++ b/interface/web/dns/lib/lang/es_dns_soa.lng @@ -41,4 +41,5 @@ $wb['update_acl_txt'] = 'Actualizar ACL'; $wb['xfer_error_regex'] = 'Notificar también a: Por favor, usa una dirección IP.'; $wb['xfer_txt'] = 'Permitir transferencia de zonas a<br />estas IP (lista separada por comas)'; $wb['configuration_error_txt'] = 'CONFIGURATION ERROR'; +$wb['dnssec_algo_txt'] = 'DNSSEC Algorithm'; ?> diff --git a/interface/web/dns/lib/lang/fi_dns_soa.lng b/interface/web/dns/lib/lang/fi_dns_soa.lng index 3e106259677bea687262bb3cc99098c89e901c9c..b34b2893fdf514db92a3da4c8f8692066aaca771 100644 --- a/interface/web/dns/lib/lang/fi_dns_soa.lng +++ b/interface/web/dns/lib/lang/fi_dns_soa.lng @@ -41,4 +41,5 @@ $wb['dnssec_wanted_info'] = 'When disabling DNSSEC keys are not going to be dele $wb['error_not_allowed_server_id'] = 'The selected server is not allowed for this account.'; $wb['soa_cannot_be_changed_txt'] = 'Die Zone (SOA) kann nicht verändert werden. Bitte kontaktieren Sie ihren Administrator, um die Zone zu ändern.'; $wb['configuration_error_txt'] = 'CONFIGURATION ERROR'; +$wb['dnssec_algo_txt'] = 'DNSSEC Algorithm'; ?> diff --git a/interface/web/dns/lib/lang/fr_dns_soa.lng b/interface/web/dns/lib/lang/fr_dns_soa.lng index da63faadbdea9adab67fa598a1331997d941d246..d2449c323e9a95cb966fd7f9497699a7044f51db 100644 --- a/interface/web/dns/lib/lang/fr_dns_soa.lng +++ b/interface/web/dns/lib/lang/fr_dns_soa.lng @@ -41,4 +41,5 @@ $wb['dnssec_wanted_info'] = 'When disabling DNSSEC keys are not going to be dele $wb['error_not_allowed_server_id'] = 'The selected server is not allowed for this account.'; $wb['soa_cannot_be_changed_txt'] = 'Die Zone (SOA) kann nicht verändert werden. Bitte kontaktieren Sie ihren Administrator, um die Zone zu ändern.'; $wb['configuration_error_txt'] = 'CONFIGURATION ERROR'; +$wb['dnssec_algo_txt'] = 'DNSSEC Algorithm'; ?> diff --git a/interface/web/dns/lib/lang/hr_dns_soa.lng b/interface/web/dns/lib/lang/hr_dns_soa.lng index b4a9f2f9b0ad77b8808ab250735d93de8486d451..d738ff1e184cb52628d8aa105c16cc92503a60bb 100644 --- a/interface/web/dns/lib/lang/hr_dns_soa.lng +++ b/interface/web/dns/lib/lang/hr_dns_soa.lng @@ -41,4 +41,5 @@ $wb['dnssec_wanted_info'] = 'When disabling DNSSEC keys are not going to be dele $wb['error_not_allowed_server_id'] = 'The selected server is not allowed for this account.'; $wb['soa_cannot_be_changed_txt'] = 'Die Zone (SOA) kann nicht verändert werden. Bitte kontaktieren Sie ihren Administrator, um die Zone zu ändern.'; $wb['configuration_error_txt'] = 'CONFIGURATION ERROR'; +$wb['dnssec_algo_txt'] = 'DNSSEC Algorithm'; ?> diff --git a/interface/web/dns/lib/lang/hu_dns_soa.lng b/interface/web/dns/lib/lang/hu_dns_soa.lng index 401961408864d7817ba7e8c5f4b4ecbc3b02d7c8..445de86d69c7c8d8f1d73a0fa49b5dcbe94e97c4 100644 --- a/interface/web/dns/lib/lang/hu_dns_soa.lng +++ b/interface/web/dns/lib/lang/hu_dns_soa.lng @@ -41,4 +41,5 @@ $wb['dnssec_wanted_info'] = 'When disabling DNSSEC keys are not going to be dele $wb['error_not_allowed_server_id'] = 'The selected server is not allowed for this account.'; $wb['soa_cannot_be_changed_txt'] = 'Die Zone (SOA) kann nicht verändert werden. Bitte kontaktieren Sie ihren Administrator, um die Zone zu ändern.'; $wb['configuration_error_txt'] = 'CONFIGURATION ERROR'; +$wb['dnssec_algo_txt'] = 'DNSSEC Algorithm'; ?> diff --git a/interface/web/dns/lib/lang/id_dns_soa.lng b/interface/web/dns/lib/lang/id_dns_soa.lng index c42890b71c1ae0cd010a138d54c21fd6e0016403..c9a43ad057a07bc4a12a16b6a90b737f9f58217b 100644 --- a/interface/web/dns/lib/lang/id_dns_soa.lng +++ b/interface/web/dns/lib/lang/id_dns_soa.lng @@ -41,4 +41,5 @@ $wb['dnssec_wanted_info'] = 'When disabling DNSSEC keys are not going to be dele $wb['error_not_allowed_server_id'] = 'The selected server is not allowed for this account.'; $wb['soa_cannot_be_changed_txt'] = 'Die Zone (SOA) kann nicht verändert werden. Bitte kontaktieren Sie ihren Administrator, um die Zone zu ändern.'; $wb['configuration_error_txt'] = 'CONFIGURATION ERROR'; +$wb['dnssec_algo_txt'] = 'DNSSEC Algorithm'; ?> diff --git a/interface/web/dns/lib/lang/it_dns_soa.lng b/interface/web/dns/lib/lang/it_dns_soa.lng index 7ca3cb1cb13f1f104d5aad6516d522735045182d..714c6c70566c3af03ee5395ccc5790a8b86273c9 100644 --- a/interface/web/dns/lib/lang/it_dns_soa.lng +++ b/interface/web/dns/lib/lang/it_dns_soa.lng @@ -41,4 +41,5 @@ $wb['dnssec_wanted_info'] = 'When disabling DNSSEC keys are not going to be dele $wb['error_not_allowed_server_id'] = 'The selected server is not allowed for this account.'; $wb['soa_cannot_be_changed_txt'] = 'Die Zone (SOA) kann nicht verändert werden. Bitte kontaktieren Sie ihren Administrator, um die Zone zu ändern.'; $wb['configuration_error_txt'] = 'CONFIGURATION ERROR'; +$wb['dnssec_algo_txt'] = 'DNSSEC Algorithm'; ?> diff --git a/interface/web/dns/lib/lang/ja_dns_soa.lng b/interface/web/dns/lib/lang/ja_dns_soa.lng index 3964f3fcdb73888f6c3208043b4cb7adf29e425e..7ab57997508202e5496ae098ccb59a2b0bf4c2b6 100644 --- a/interface/web/dns/lib/lang/ja_dns_soa.lng +++ b/interface/web/dns/lib/lang/ja_dns_soa.lng @@ -41,4 +41,5 @@ $wb['dnssec_wanted_info'] = 'When disabling DNSSEC keys are not going to be dele $wb['error_not_allowed_server_id'] = 'The selected server is not allowed for this account.'; $wb['soa_cannot_be_changed_txt'] = 'Die Zone (SOA) kann nicht verändert werden. Bitte kontaktieren Sie ihren Administrator, um die Zone zu ändern.'; $wb['configuration_error_txt'] = 'CONFIGURATION ERROR'; +$wb['dnssec_algo_txt'] = 'DNSSEC Algorithm'; ?> diff --git a/interface/web/dns/lib/lang/nl_dns_soa.lng b/interface/web/dns/lib/lang/nl_dns_soa.lng index 121339c00ca296b5b108516fb406c98edd4e7f4c..1f875df3c9007659806b6e48a22fb3f1497ba89e 100644 --- a/interface/web/dns/lib/lang/nl_dns_soa.lng +++ b/interface/web/dns/lib/lang/nl_dns_soa.lng @@ -41,4 +41,5 @@ $wb['dnssec_wanted_info'] = 'When disabling DNSSEC keys are not going to be dele $wb['error_not_allowed_server_id'] = 'The selected server is not allowed for this account.'; $wb['soa_cannot_be_changed_txt'] = 'Die Zone (SOA) kann nicht verändert werden. Bitte kontaktieren Sie ihren Administrator, um die Zone zu ändern.'; $wb['configuration_error_txt'] = 'CONFIGURATION ERROR'; +$wb['dnssec_algo_txt'] = 'DNSSEC Algorithm'; ?> diff --git a/interface/web/dns/lib/lang/pl_dns_soa.lng b/interface/web/dns/lib/lang/pl_dns_soa.lng index 1724c4c141c77a15d08c93021ca7ee2d3f189fe0..7502a592372707764358fde63333b8ef0938ee9d 100644 --- a/interface/web/dns/lib/lang/pl_dns_soa.lng +++ b/interface/web/dns/lib/lang/pl_dns_soa.lng @@ -41,4 +41,5 @@ $wb['dnssec_wanted_info'] = 'When disabling DNSSEC keys are not going to be dele $wb['error_not_allowed_server_id'] = 'The selected server is not allowed for this account.'; $wb['soa_cannot_be_changed_txt'] = 'Die Zone (SOA) kann nicht verändert werden. Bitte kontaktieren Sie ihren Administrator, um die Zone zu ändern.'; $wb['configuration_error_txt'] = 'CONFIGURATION ERROR'; +$wb['dnssec_algo_txt'] = 'DNSSEC Algorithm'; ?> diff --git a/interface/web/dns/lib/lang/pt_dns_soa.lng b/interface/web/dns/lib/lang/pt_dns_soa.lng index bdcc1660ff0e7f4b9a348ce678520aea214d8ed9..7b6ac864a163decd043ef4d35429c532a3df92ee 100644 --- a/interface/web/dns/lib/lang/pt_dns_soa.lng +++ b/interface/web/dns/lib/lang/pt_dns_soa.lng @@ -41,4 +41,5 @@ $wb['dnssec_wanted_info'] = 'When disabling DNSSEC keys are not going to be dele $wb['error_not_allowed_server_id'] = 'The selected server is not allowed for this account.'; $wb['soa_cannot_be_changed_txt'] = 'Die Zone (SOA) kann nicht verändert werden. Bitte kontaktieren Sie ihren Administrator, um die Zone zu ändern.'; $wb['configuration_error_txt'] = 'CONFIGURATION ERROR'; +$wb['dnssec_algo_txt'] = 'DNSSEC Algorithm'; ?> diff --git a/interface/web/dns/lib/lang/ro_dns_soa.lng b/interface/web/dns/lib/lang/ro_dns_soa.lng index 40607318f713d7a08f4d87dd24425e1b0f60e44e..9ae957f2406129be0f0b27645946c2efe6ab713e 100644 --- a/interface/web/dns/lib/lang/ro_dns_soa.lng +++ b/interface/web/dns/lib/lang/ro_dns_soa.lng @@ -41,4 +41,5 @@ $wb['dnssec_wanted_info'] = 'When disabling DNSSEC keys are not going to be dele $wb['error_not_allowed_server_id'] = 'The selected server is not allowed for this account.'; $wb['soa_cannot_be_changed_txt'] = 'Die Zone (SOA) kann nicht verändert werden. Bitte kontaktieren Sie ihren Administrator, um die Zone zu ändern.'; $wb['configuration_error_txt'] = 'CONFIGURATION ERROR'; +$wb['dnssec_algo_txt'] = 'DNSSEC Algorithm'; ?> diff --git a/interface/web/dns/lib/lang/ru_dns_soa.lng b/interface/web/dns/lib/lang/ru_dns_soa.lng index 7bd15cd63858f16b496326756fe8b652902e63b7..f6043010d4e021d4d677e6fca002456e924cb3f3 100644 --- a/interface/web/dns/lib/lang/ru_dns_soa.lng +++ b/interface/web/dns/lib/lang/ru_dns_soa.lng @@ -41,4 +41,5 @@ $wb['dnssec_wanted_info'] = 'При отключении DNSSEC ключи не $wb['error_not_allowed_server_id'] = 'Выбранный Ñервер не доÑтупен Ð´Ð»Ñ Ñтой учетной запиÑи.'; $wb['soa_cannot_be_changed_txt'] = 'Зона (SOA) не может быть изменена. ПожалуйÑта, обратитеÑÑŒ к админиÑтратору, чтобы изменить зону.'; $wb['configuration_error_txt'] = 'ОШИБКРКОÐФИГУРÐЦИИ'; +$wb['dnssec_algo_txt'] = 'DNSSEC Algorithm'; ?> diff --git a/interface/web/dns/lib/lang/se_dns_soa.lng b/interface/web/dns/lib/lang/se_dns_soa.lng index cfeb2f9fde36215601657786424c558134aeb70b..8e380f85a3f79c217c0fc0fb59009e6e197bc64d 100644 --- a/interface/web/dns/lib/lang/se_dns_soa.lng +++ b/interface/web/dns/lib/lang/se_dns_soa.lng @@ -41,4 +41,5 @@ $wb['dnssec_wanted_info'] = 'When disabling DNSSEC keys are not going to be dele $wb['error_not_allowed_server_id'] = 'The selected server is not allowed for this account.'; $wb['soa_cannot_be_changed_txt'] = 'Die Zone (SOA) kann nicht verändert werden. Bitte kontaktieren Sie ihren Administrator, um die Zone zu ändern.'; $wb['configuration_error_txt'] = 'CONFIGURATION ERROR'; +$wb['dnssec_algo_txt'] = 'DNSSEC Algorithm'; ?> diff --git a/interface/web/dns/lib/lang/sk_dns_soa.lng b/interface/web/dns/lib/lang/sk_dns_soa.lng index 79d49eee92d6136f143f0d8a477f66c2b5b3a663..c96399cc4ec4b433264bfa75e111d3b66334d467 100644 --- a/interface/web/dns/lib/lang/sk_dns_soa.lng +++ b/interface/web/dns/lib/lang/sk_dns_soa.lng @@ -41,4 +41,5 @@ $wb['dnssec_wanted_info'] = 'When disabling DNSSEC keys are not going to be dele $wb['error_not_allowed_server_id'] = 'The selected server is not allowed for this account.'; $wb['soa_cannot_be_changed_txt'] = 'Die Zone (SOA) kann nicht verändert werden. Bitte kontaktieren Sie ihren Administrator, um die Zone zu ändern.'; $wb['configuration_error_txt'] = 'CONFIGURATION ERROR'; +$wb['dnssec_algo_txt'] = 'DNSSEC Algorithm'; ?> diff --git a/interface/web/dns/lib/lang/tr_dns_soa.lng b/interface/web/dns/lib/lang/tr_dns_soa.lng index fd39de04f5e9742c3717bb77a33e6d25908a1a16..e5d55678cbd42f76353d2923d1c5d252c9c6d81a 100644 --- a/interface/web/dns/lib/lang/tr_dns_soa.lng +++ b/interface/web/dns/lib/lang/tr_dns_soa.lng @@ -41,4 +41,5 @@ $wb['ttl_range_error'] = 'En düşük TTL süresi 60 saniyedir.'; $wb['error_not_allowed_server_id'] = 'SeçilmiÅŸ sunucuda bu hesap kullanılamaz.'; $wb['soa_cannot_be_changed_txt'] = 'Bölge (SOA) deÄŸiÅŸtirilemez. Lütfen bölgeyi deÄŸiÅŸtirmek için yöneticiniz ile görüşün.'; $wb['configuration_error_txt'] = 'YAPILANDIRMA SORUNU'; +$wb['dnssec_algo_txt'] = 'DNSSEC Algorithm'; ?> diff --git a/interface/web/dns/templates/dns_soa_edit.htm b/interface/web/dns/templates/dns_soa_edit.htm index c34e8a341647dcb0972b7f784be7d3b26c8842a0..e16faac1aa5c4d9ea1641abb9f92ab70f631c5c4 100644 --- a/interface/web/dns/templates/dns_soa_edit.htm +++ b/interface/web/dns/templates/dns_soa_edit.htm @@ -136,6 +136,10 @@ <div class="col-sm-9"> {tmpl_var name='dnssec_wanted'}<br /><small>({tmpl_var name='dnssec_wanted_info'})</small> </div> + </div> + <div class="form-group"> + <label for="dnssec_algo" class="col-sm-3 control-label">{tmpl_var name='dnssec_algo_txt'}</label> + <div class="col-sm-9">{tmpl_var name='dnssec_algo'}</div> </div> <div class="form-group"> <label for="update_acl" class="col-sm-3 control-label">{tmpl_var name='dnssec_info_txt'}</label> diff --git a/interface/web/login/lib/lang/ar_login_as.lng b/interface/web/login/lib/lang/ar_login_as.lng index cf75b54b47a852400eec51271488e41ea64e69c4..f5bff0745f5d278ab2e73c63efc3009f3947f0bb 100644 --- a/interface/web/login/lib/lang/ar_login_as.lng +++ b/interface/web/login/lib/lang/ar_login_as.lng @@ -9,4 +9,6 @@ $wb['firewall_error_unique'] = 'There is already a firewall record for this serv $wb['tcp_ports_error_regex'] = 'Character not allowed in tcp port definition. Allowed characters are numbers, \\":\\" and \\",\\".'; $wb['udp_ports_error_regex'] = 'Character not allowed in udp port definition. Allowed characters are numbers, \\":\\" and \\",\\".'; $wb['login_as_or_logout_txt'] = 'Do you want to re-login as {UTYPE} or logout?'; +$wb['btn_reloginas_txt'] = 'Yes, re-login as %s'; +$wb['btn_nologout_txt'] = 'No, logout'; ?> diff --git a/interface/web/login/lib/lang/bg_login_as.lng b/interface/web/login/lib/lang/bg_login_as.lng index cf75b54b47a852400eec51271488e41ea64e69c4..f5bff0745f5d278ab2e73c63efc3009f3947f0bb 100644 --- a/interface/web/login/lib/lang/bg_login_as.lng +++ b/interface/web/login/lib/lang/bg_login_as.lng @@ -9,4 +9,6 @@ $wb['firewall_error_unique'] = 'There is already a firewall record for this serv $wb['tcp_ports_error_regex'] = 'Character not allowed in tcp port definition. Allowed characters are numbers, \\":\\" and \\",\\".'; $wb['udp_ports_error_regex'] = 'Character not allowed in udp port definition. Allowed characters are numbers, \\":\\" and \\",\\".'; $wb['login_as_or_logout_txt'] = 'Do you want to re-login as {UTYPE} or logout?'; +$wb['btn_reloginas_txt'] = 'Yes, re-login as %s'; +$wb['btn_nologout_txt'] = 'No, logout'; ?> diff --git a/interface/web/login/lib/lang/br_login_as.lng b/interface/web/login/lib/lang/br_login_as.lng index 72c2c97e408f995aedce3bff5c0b461d535f80e8..1dde30d907c295c97daa6fd55264833b9b8c896e 100644 --- a/interface/web/login/lib/lang/br_login_as.lng +++ b/interface/web/login/lib/lang/br_login_as.lng @@ -9,4 +9,6 @@ $wb['firewall_error_unique'] = 'Já existe uma regra de firewall idêntica para $wb['tcp_ports_error_regex'] = 'Caractere não permitido para porta tcp. Caracteres permitidos são números, ":" e ",".'; $wb['udp_ports_error_regex'] = 'Caractere não permitido para porta udp. Caracteres permitidos são números, ":" e ",".'; $wb['login_as_or_logout_txt'] = 'Gostaria de realizar acesso novamente como {UTYPE} ou sair?'; +$wb['btn_reloginas_txt'] = 'Yes, re-login as %s'; +$wb['btn_nologout_txt'] = 'No, logout'; ?> diff --git a/interface/web/login/lib/lang/ca_login_as.lng b/interface/web/login/lib/lang/ca_login_as.lng index cf75b54b47a852400eec51271488e41ea64e69c4..f5bff0745f5d278ab2e73c63efc3009f3947f0bb 100644 --- a/interface/web/login/lib/lang/ca_login_as.lng +++ b/interface/web/login/lib/lang/ca_login_as.lng @@ -9,4 +9,6 @@ $wb['firewall_error_unique'] = 'There is already a firewall record for this serv $wb['tcp_ports_error_regex'] = 'Character not allowed in tcp port definition. Allowed characters are numbers, \\":\\" and \\",\\".'; $wb['udp_ports_error_regex'] = 'Character not allowed in udp port definition. Allowed characters are numbers, \\":\\" and \\",\\".'; $wb['login_as_or_logout_txt'] = 'Do you want to re-login as {UTYPE} or logout?'; +$wb['btn_reloginas_txt'] = 'Yes, re-login as %s'; +$wb['btn_nologout_txt'] = 'No, logout'; ?> diff --git a/interface/web/login/lib/lang/cz_login_as.lng b/interface/web/login/lib/lang/cz_login_as.lng index 53629ac2a5127b46fd872adcec215632b5479dc2..1d99176adb151901e2d9a1e485cd87c15e73034e 100644 --- a/interface/web/login/lib/lang/cz_login_as.lng +++ b/interface/web/login/lib/lang/cz_login_as.lng @@ -9,4 +9,6 @@ $wb['firewall_error_unique'] = 'Pro tento server již existuje záznam firewallu $wb['tcp_ports_error_regex'] = 'Znak nenà povole v definici TCP portu. Povolené symboly jsou ÄÃsla, : a ,.'; $wb['udp_ports_error_regex'] = 'Znak nenà povole v definici UDP portu. Povolené symboly jsou ÄÃsla, : a ,.'; $wb['login_as_or_logout_txt'] = 'Chcete se znovu pÅ™ihlásit jako uživatel {UTYPE} nebo se chcete odhlásit ?'; +$wb['btn_reloginas_txt'] = 'Yes, re-login as %s'; +$wb['btn_nologout_txt'] = 'No, logout'; ?> diff --git a/interface/web/login/lib/lang/de_login_as.lng b/interface/web/login/lib/lang/de_login_as.lng index 4baa195d3a71735586dba972a96b968d0cbf70da..11fd4101636972a6bb5ec5850e804c350fb9df55 100644 --- a/interface/web/login/lib/lang/de_login_as.lng +++ b/interface/web/login/lib/lang/de_login_as.lng @@ -9,4 +9,6 @@ $wb['firewall_error_unique'] = 'Es gibt bereits einen Firewalleintrag für diese $wb['tcp_ports_error_regex'] = 'Es sind nur Zahlen in der TCP Port Definition erlaubt. '; $wb['udp_ports_error_regex'] = 'Es sind nur Zahlen in der UDP Port Definition erlaubt., '; $wb['login_as_or_logout_txt'] = 'Wollen Sie sich wieder als {UTYPE} anmelden oder sich abmelden?'; +$wb['btn_reloginas_txt'] = 'Yes, re-login as %s'; +$wb['btn_nologout_txt'] = 'No, logout'; ?> diff --git a/interface/web/login/lib/lang/dk_login_as.lng b/interface/web/login/lib/lang/dk_login_as.lng index bebcf165a7bf2a78b5ba13d7eb1d47d41c214e4c..b68874abbe4bec425b8577d862b9ce5a79b42950 100644 --- a/interface/web/login/lib/lang/dk_login_as.lng +++ b/interface/web/login/lib/lang/dk_login_as.lng @@ -9,4 +9,6 @@ $wb['firewall_error_unique'] = 'Der er allerede en firewall post for denne serve $wb['tcp_ports_error_regex'] = 'Tegn ikke tilladt i TCP port definition. Tilladt tegn er tal, \\":\\" og \\",\\".'; $wb['udp_ports_error_regex'] = 'Tegn ikke tilladt i UDP port definition. Tilladt tegn er tal, \\":\\" og \\",\\".'; $wb['login_as_or_logout_txt'] = 'Do you want to re-login as {UTYPE} or logout?'; +$wb['btn_reloginas_txt'] = 'Yes, re-login as %s'; +$wb['btn_nologout_txt'] = 'No, logout'; ?> diff --git a/interface/web/login/lib/lang/el_login_as.lng b/interface/web/login/lib/lang/el_login_as.lng index 435d3e9a69eeb7f79abbc9c30d98ecaf32913529..db16d0d6d31f10a2af1079e06ea637f7e8a61cfd 100644 --- a/interface/web/login/lib/lang/el_login_as.lng +++ b/interface/web/login/lib/lang/el_login_as.lng @@ -9,4 +9,6 @@ $wb['firewall_error_unique'] = 'ΥπάÏχει ήδη μια εγγÏαφή Fire $wb['tcp_ports_error_regex'] = 'Μη ÎγκυÏος χαÏακτήÏας για τον οÏισμός θÏÏας tcp. ΕπιτÏεπόμενοι χαÏακτήÏες είναι οι αÏιθμοί, η \\":\\" και οι \\",\\".'; $wb['udp_ports_error_regex'] = 'Μη ÎγκυÏος χαÏακτήÏας για τον οÏισμός θÏÏας udp. ΕπιτÏεπόμενοι χαÏακτήÏες είναι οι αÏιθμοί, η \\":\\" και οι \\",\\".'; $wb['login_as_or_logout_txt'] = 'Do you want to re-login as {UTYPE} or logout?'; +$wb['btn_reloginas_txt'] = 'Yes, re-login as %s'; +$wb['btn_nologout_txt'] = 'No, logout'; ?> diff --git a/interface/web/login/lib/lang/en_login_as.lng b/interface/web/login/lib/lang/en_login_as.lng index d1f98c8806204e162954107caf753aa174153295..c849db3d04b724f0ae8a65de2dff4b6ca43e38f3 100644 --- a/interface/web/login/lib/lang/en_login_as.lng +++ b/interface/web/login/lib/lang/en_login_as.lng @@ -10,4 +10,6 @@ $wb["active_txt"] = 'Active'; $wb["tcp_ports_error_regex"] = 'Character not allowed in tcp port definition. Allowed characters are numbers, ":" and ",".'; $wb["udp_ports_error_regex"] = 'Character not allowed in udp port definition. Allowed characters are numbers, ":" and ",".'; $wb['login_as_or_logout_txt'] = 'Do you want to re-login as {UTYPE} or logout?'; +$wb['btn_reloginas_txt'] = 'Yes, re-login as %s'; +$wb['btn_nologout_txt'] = 'No, logout'; ?> \ No newline at end of file diff --git a/interface/web/login/lib/lang/es_login_as.lng b/interface/web/login/lib/lang/es_login_as.lng index b7f3e21f987f2ca4016eeaf3834b4e5445983571..d0faac1b8029288c5c7b00659920175882b2a2c8 100644 --- a/interface/web/login/lib/lang/es_login_as.lng +++ b/interface/web/login/lib/lang/es_login_as.lng @@ -9,4 +9,6 @@ $wb['tcp_ports_error_regex'] = 'Caracteres no permitidos en la definición de pu $wb['udp_port_help_txt'] = 'Separado por comas'; $wb['udp_ports_error_regex'] = 'Caracteres no permitidos en la definición de puertos udp. Los caracteres permitidos son: números, \\":\\" y \\",\\".'; $wb['login_as_or_logout_txt'] = 'Do you want to re-login as {UTYPE} or logout?'; +$wb['btn_reloginas_txt'] = 'Yes, re-login as %s'; +$wb['btn_nologout_txt'] = 'No, logout'; ?> diff --git a/interface/web/login/lib/lang/fi_login_as.lng b/interface/web/login/lib/lang/fi_login_as.lng index cf75b54b47a852400eec51271488e41ea64e69c4..f5bff0745f5d278ab2e73c63efc3009f3947f0bb 100644 --- a/interface/web/login/lib/lang/fi_login_as.lng +++ b/interface/web/login/lib/lang/fi_login_as.lng @@ -9,4 +9,6 @@ $wb['firewall_error_unique'] = 'There is already a firewall record for this serv $wb['tcp_ports_error_regex'] = 'Character not allowed in tcp port definition. Allowed characters are numbers, \\":\\" and \\",\\".'; $wb['udp_ports_error_regex'] = 'Character not allowed in udp port definition. Allowed characters are numbers, \\":\\" and \\",\\".'; $wb['login_as_or_logout_txt'] = 'Do you want to re-login as {UTYPE} or logout?'; +$wb['btn_reloginas_txt'] = 'Yes, re-login as %s'; +$wb['btn_nologout_txt'] = 'No, logout'; ?> diff --git a/interface/web/login/lib/lang/fr_login_as.lng b/interface/web/login/lib/lang/fr_login_as.lng index 55c9f6df5b6a302d260b83c3e61b0f668d7f5154..0612b4a47f156332b447acea33fc082c3fc0679c 100644 --- a/interface/web/login/lib/lang/fr_login_as.lng +++ b/interface/web/login/lib/lang/fr_login_as.lng @@ -9,4 +9,6 @@ $wb['firewall_error_unique'] = 'There is already a firewall record for this serv $wb['tcp_ports_error_regex'] = 'Caractère non autorisé dans la règle de port TCP. Les caractères autorisés sont : les chiffres, « : » et « , ».'; $wb['udp_ports_error_regex'] = 'Caractère non autorisé dans la règle de port UDP. Les caractères autorisés sont : les chiffres, « : » et « , ».'; $wb['login_as_or_logout_txt'] = 'Do you want to re-login as {UTYPE} or logout?'; +$wb['btn_reloginas_txt'] = 'Yes, re-login as %s'; +$wb['btn_nologout_txt'] = 'No, logout'; ?> diff --git a/interface/web/login/lib/lang/hr_login_as.lng b/interface/web/login/lib/lang/hr_login_as.lng index bcd13040d38363cad1bddf8ed3953ad13edbbeb8..a5704bee2d74600a2e8a0b6f425f644b1be868df 100644 --- a/interface/web/login/lib/lang/hr_login_as.lng +++ b/interface/web/login/lib/lang/hr_login_as.lng @@ -9,4 +9,6 @@ $wb['firewall_error_unique'] = 'There is already a firewall record for this serv $wb['tcp_ports_error_regex'] = 'Character not allowed in tcp port definition. Allowed characters are numbers, \\":\\" and \\",\\".'; $wb['udp_ports_error_regex'] = 'Character not allowed in udp port definition. Allowed characters are numbers, \\":\\" and \\",\\".'; $wb['login_as_or_logout_txt'] = 'Do you want to re-login as {UTYPE} or logout?'; +$wb['btn_reloginas_txt'] = 'Yes, re-login as %s'; +$wb['btn_nologout_txt'] = 'No, logout'; ?> diff --git a/interface/web/login/lib/lang/hu_login_as.lng b/interface/web/login/lib/lang/hu_login_as.lng index cf75b54b47a852400eec51271488e41ea64e69c4..f5bff0745f5d278ab2e73c63efc3009f3947f0bb 100644 --- a/interface/web/login/lib/lang/hu_login_as.lng +++ b/interface/web/login/lib/lang/hu_login_as.lng @@ -9,4 +9,6 @@ $wb['firewall_error_unique'] = 'There is already a firewall record for this serv $wb['tcp_ports_error_regex'] = 'Character not allowed in tcp port definition. Allowed characters are numbers, \\":\\" and \\",\\".'; $wb['udp_ports_error_regex'] = 'Character not allowed in udp port definition. Allowed characters are numbers, \\":\\" and \\",\\".'; $wb['login_as_or_logout_txt'] = 'Do you want to re-login as {UTYPE} or logout?'; +$wb['btn_reloginas_txt'] = 'Yes, re-login as %s'; +$wb['btn_nologout_txt'] = 'No, logout'; ?> diff --git a/interface/web/login/lib/lang/id_login_as.lng b/interface/web/login/lib/lang/id_login_as.lng index cf75b54b47a852400eec51271488e41ea64e69c4..f5bff0745f5d278ab2e73c63efc3009f3947f0bb 100644 --- a/interface/web/login/lib/lang/id_login_as.lng +++ b/interface/web/login/lib/lang/id_login_as.lng @@ -9,4 +9,6 @@ $wb['firewall_error_unique'] = 'There is already a firewall record for this serv $wb['tcp_ports_error_regex'] = 'Character not allowed in tcp port definition. Allowed characters are numbers, \\":\\" and \\",\\".'; $wb['udp_ports_error_regex'] = 'Character not allowed in udp port definition. Allowed characters are numbers, \\":\\" and \\",\\".'; $wb['login_as_or_logout_txt'] = 'Do you want to re-login as {UTYPE} or logout?'; +$wb['btn_reloginas_txt'] = 'Yes, re-login as %s'; +$wb['btn_nologout_txt'] = 'No, logout'; ?> diff --git a/interface/web/login/lib/lang/it_login_as.lng b/interface/web/login/lib/lang/it_login_as.lng index 3fa23da2741f0911bc933af3a615b675507813b3..9675cd148878d3e60e5e4b5af679c09264a5fce2 100644 --- a/interface/web/login/lib/lang/it_login_as.lng +++ b/interface/web/login/lib/lang/it_login_as.lng @@ -9,4 +9,6 @@ $wb['firewall_error_unique'] = 'Esiste già un record firewall per questo server $wb['tcp_ports_error_regex'] = 'Caratteri non autorizzati nella definizine di porta tcp. Sono consentiti caratteri numerici, \\":\\" e \\",\\".'; $wb['udp_ports_error_regex'] = 'Caratteri non autorizzati nella definizine di porta udp. ono consentiti caratteri numerici, \\":\\" e \\",\\".'; $wb['login_as_or_logout_txt'] = 'Do you want to re-login as {UTYPE} or logout?'; +$wb['btn_reloginas_txt'] = 'Yes, re-login as %s'; +$wb['btn_nologout_txt'] = 'No, logout'; ?> diff --git a/interface/web/login/lib/lang/ja_login_as.lng b/interface/web/login/lib/lang/ja_login_as.lng index cf75b54b47a852400eec51271488e41ea64e69c4..f5bff0745f5d278ab2e73c63efc3009f3947f0bb 100644 --- a/interface/web/login/lib/lang/ja_login_as.lng +++ b/interface/web/login/lib/lang/ja_login_as.lng @@ -9,4 +9,6 @@ $wb['firewall_error_unique'] = 'There is already a firewall record for this serv $wb['tcp_ports_error_regex'] = 'Character not allowed in tcp port definition. Allowed characters are numbers, \\":\\" and \\",\\".'; $wb['udp_ports_error_regex'] = 'Character not allowed in udp port definition. Allowed characters are numbers, \\":\\" and \\",\\".'; $wb['login_as_or_logout_txt'] = 'Do you want to re-login as {UTYPE} or logout?'; +$wb['btn_reloginas_txt'] = 'Yes, re-login as %s'; +$wb['btn_nologout_txt'] = 'No, logout'; ?> diff --git a/interface/web/login/lib/lang/nl_login_as.lng b/interface/web/login/lib/lang/nl_login_as.lng index d4d2715e7a664a3aa0b7b0b2b89503dc3caf546c..1710f0e4f875b070b55e7eb2802087dddb68ad9c 100644 --- a/interface/web/login/lib/lang/nl_login_as.lng +++ b/interface/web/login/lib/lang/nl_login_as.lng @@ -9,4 +9,6 @@ $wb['firewall_error_unique'] = 'There is already a firewall record for this serv $wb['tcp_ports_error_regex'] = 'Character not allowed in tcp port definition. Allowed characters are numbers, \\":\\" and \\",\\".'; $wb['udp_ports_error_regex'] = 'Character not allowed in udp port definition. Allowed characters are numbers, \\":\\" and \\",\\".'; $wb['login_as_or_logout_txt'] = 'Do you want to re-login as {UTYPE} or logout?'; +$wb['btn_reloginas_txt'] = 'Yes, re-login as %s'; +$wb['btn_nologout_txt'] = 'No, logout'; ?> diff --git a/interface/web/login/lib/lang/pl_login_as.lng b/interface/web/login/lib/lang/pl_login_as.lng index fd673484d7bfbbc44175d3939d12fb48c5a20593..2f1d818660ed99b3d90ec8085093bf3a90a680c2 100644 --- a/interface/web/login/lib/lang/pl_login_as.lng +++ b/interface/web/login/lib/lang/pl_login_as.lng @@ -9,4 +9,6 @@ $wb['firewall_error_unique'] = 'Istnieje już wpis firewalla dla tego serwera.'; $wb['tcp_ports_error_regex'] = 'Niedozwolony znam w definicji portu TCP. Dozwolone sÄ… liczby, dwukropek i przecinek (: i ,)'; $wb['udp_ports_error_regex'] = 'Niedozwolony znam w definicji portu UDP. Dozwolone sÄ… liczby, dwukropek i przecinek (: i ,)'; $wb['login_as_or_logout_txt'] = 'Do you want to re-login as {UTYPE} or logout?'; +$wb['btn_reloginas_txt'] = 'Yes, re-login as %s'; +$wb['btn_nologout_txt'] = 'No, logout'; ?> diff --git a/interface/web/login/lib/lang/pt_login_as.lng b/interface/web/login/lib/lang/pt_login_as.lng index cf75b54b47a852400eec51271488e41ea64e69c4..f5bff0745f5d278ab2e73c63efc3009f3947f0bb 100644 --- a/interface/web/login/lib/lang/pt_login_as.lng +++ b/interface/web/login/lib/lang/pt_login_as.lng @@ -9,4 +9,6 @@ $wb['firewall_error_unique'] = 'There is already a firewall record for this serv $wb['tcp_ports_error_regex'] = 'Character not allowed in tcp port definition. Allowed characters are numbers, \\":\\" and \\",\\".'; $wb['udp_ports_error_regex'] = 'Character not allowed in udp port definition. Allowed characters are numbers, \\":\\" and \\",\\".'; $wb['login_as_or_logout_txt'] = 'Do you want to re-login as {UTYPE} or logout?'; +$wb['btn_reloginas_txt'] = 'Yes, re-login as %s'; +$wb['btn_nologout_txt'] = 'No, logout'; ?> diff --git a/interface/web/login/lib/lang/ro_login_as.lng b/interface/web/login/lib/lang/ro_login_as.lng index cf75b54b47a852400eec51271488e41ea64e69c4..f5bff0745f5d278ab2e73c63efc3009f3947f0bb 100644 --- a/interface/web/login/lib/lang/ro_login_as.lng +++ b/interface/web/login/lib/lang/ro_login_as.lng @@ -9,4 +9,6 @@ $wb['firewall_error_unique'] = 'There is already a firewall record for this serv $wb['tcp_ports_error_regex'] = 'Character not allowed in tcp port definition. Allowed characters are numbers, \\":\\" and \\",\\".'; $wb['udp_ports_error_regex'] = 'Character not allowed in udp port definition. Allowed characters are numbers, \\":\\" and \\",\\".'; $wb['login_as_or_logout_txt'] = 'Do you want to re-login as {UTYPE} or logout?'; +$wb['btn_reloginas_txt'] = 'Yes, re-login as %s'; +$wb['btn_nologout_txt'] = 'No, logout'; ?> diff --git a/interface/web/login/lib/lang/ru_login_as.lng b/interface/web/login/lib/lang/ru_login_as.lng index 63031d4d09acfffe0ab3bc0f64997949a92294cd..b15812dce3ddc681914d0493720838d054743715 100644 --- a/interface/web/login/lib/lang/ru_login_as.lng +++ b/interface/web/login/lib/lang/ru_login_as.lng @@ -9,4 +9,6 @@ $wb['firewall_error_unique'] = 'Уже еÑÑ‚ÑŒ Ñ‚Ð°ÐºÐ°Ñ Ð·Ð°Ð¿Ð¸ÑÑŒ бред $wb['tcp_ports_error_regex'] = 'ÐедопуÑтимый Ñимвол в указании tcp порта. Корректные Ñиволы - цифры, \\":\\" и \\",\\"'; $wb['udp_ports_error_regex'] = 'Ðекорректный Ñимвол в указании UDP порта. ДопуÑтимые Ñиволы - цифры, \\":\\" и \\",\\"'; $wb['login_as_or_logout_txt'] = 'Ð’Ñ‹ хотите заново войти как {UTYPE} или выйти?'; +$wb['btn_reloginas_txt'] = 'Yes, re-login as %s'; +$wb['btn_nologout_txt'] = 'No, logout'; ?> diff --git a/interface/web/login/lib/lang/se_login_as.lng b/interface/web/login/lib/lang/se_login_as.lng index 17a82080dc9defec177c24ad06092da45f1a7e07..34b02cb1e9a959bb86c1b2a5df5a32c3ed137dd1 100644 --- a/interface/web/login/lib/lang/se_login_as.lng +++ b/interface/web/login/lib/lang/se_login_as.lng @@ -9,4 +9,6 @@ $wb['firewall_error_unique'] = 'There is already a firewall record for this serv $wb['tcp_ports_error_regex'] = 'Character not allowed in tcp port definition. Allowed characters are numbers, \\":\\" and \\",\\".'; $wb['udp_ports_error_regex'] = 'Character not allowed in udp port definition. Allowed characters are numbers, \\":\\" and \\",\\".'; $wb['login_as_or_logout_txt'] = 'Do you want to re-login as {UTYPE} or logout?'; +$wb['btn_reloginas_txt'] = 'Yes, re-login as %s'; +$wb['btn_nologout_txt'] = 'No, logout'; ?> diff --git a/interface/web/login/lib/lang/sk_login_as.lng b/interface/web/login/lib/lang/sk_login_as.lng index cf75b54b47a852400eec51271488e41ea64e69c4..f5bff0745f5d278ab2e73c63efc3009f3947f0bb 100644 --- a/interface/web/login/lib/lang/sk_login_as.lng +++ b/interface/web/login/lib/lang/sk_login_as.lng @@ -9,4 +9,6 @@ $wb['firewall_error_unique'] = 'There is already a firewall record for this serv $wb['tcp_ports_error_regex'] = 'Character not allowed in tcp port definition. Allowed characters are numbers, \\":\\" and \\",\\".'; $wb['udp_ports_error_regex'] = 'Character not allowed in udp port definition. Allowed characters are numbers, \\":\\" and \\",\\".'; $wb['login_as_or_logout_txt'] = 'Do you want to re-login as {UTYPE} or logout?'; +$wb['btn_reloginas_txt'] = 'Yes, re-login as %s'; +$wb['btn_nologout_txt'] = 'No, logout'; ?> diff --git a/interface/web/login/lib/lang/tr_login_as.lng b/interface/web/login/lib/lang/tr_login_as.lng index 8a54a8efd9889f48caeebf2555d79c9ea66782f6..d2a3a4bfb3939d4152dd785d4bc241faaa7211b1 100644 --- a/interface/web/login/lib/lang/tr_login_as.lng +++ b/interface/web/login/lib/lang/tr_login_as.lng @@ -10,4 +10,6 @@ $wb['active_txt'] = 'Etkin'; $wb['tcp_ports_error_regex'] = 'TCP kapı açıklamasında karakter kullanılamaz. Yalnız rakam, ":" ve "," karakterleri kullanılabilir.'; $wb['udp_ports_error_regex'] = 'UDP kapı açıklamasında karakter kullanılamaz. Yalnız rakam, ":" ve "," karakterleri kullanılabilir.'; $wb['login_as_or_logout_txt'] = '{UTYPE} olarak oturum açmak ya da oturumunuzu kapatmak ister misiniz?'; +$wb['btn_reloginas_txt'] = 'Yes, re-login as %s'; +$wb['btn_nologout_txt'] = 'No, logout'; ?> diff --git a/interface/web/login/logout.php b/interface/web/login/logout.php index fa60fba63298f271f42036ce82ae34c8c4c6e9f8..cfe405498e495332ec88a92ddf9ff972ddb5b47c 100644 --- a/interface/web/login/logout.php +++ b/interface/web/login/logout.php @@ -54,9 +54,9 @@ if ((isset($_SESSION['s_old']) && ($_SESSION['s_old']['user']['typ'] == 'admin' <input type="hidden" name="s_pg" value="index" /> <input type="hidden" name="login_as" value="1" /> <div class="wf_actions buttons"> - <button class="btn btn-default formbutton-success" type="button" value="Yes, re-login as ' . $utype . '" data-submit-form="pageForm" data-form-action="login/index.php"><span>Yes, re-login as ' . $utype . '</span></button> - <button class="btn btn-default formbutton-default" type="button" value="No, logout" data-load-content="login/logout.php?l=1"><span>No, logout</span></button> - </div> + <button class="btn btn-default formbutton-success" type="button" value="' . sprintf($wb['btn_reloginas_txt'], $utype) . '" data-submit-form="pageForm" data-form-action="/login/index.php"><span>' . sprintf($wb['btn_reloginas_txt'], $utype) . '</span></button> + <button class="btn btn-default formbutton-default" type="button" value="' . $wb['btn_nologout_txt'] . '" data-load-content="login/logout.php?l=1"><span>' . $wb['btn_nologout_txt'] . '</span></button> + </div> '; exit; } diff --git a/interface/web/mail/form/mail_user.tform.php b/interface/web/mail/form/mail_user.tform.php index 8fb6c4a69227b51a66c7d41cd1b57c0aab9b5a51..67330f465860f0c129ea319c1ee8acdbd1429761 100644 --- a/interface/web/mail/form/mail_user.tform.php +++ b/interface/web/mail/form/mail_user.tform.php @@ -199,14 +199,15 @@ $form["tabs"]['mailuser'] = array( 2 => array( 'event' => 'SAVE', 'type' => 'TOLOWER') ), - 'validators' => array ( 0 => array ( 'type' => 'REGEX', - 'regex'=>'/^(\w+[\w\.\-\+]*\w{0,}@\w+[\w.-]*\.[a-z\-]{2,63}){0,1}(,\s*\w+[\w\.\-\+]*\w{0,}@\w+[\w.-]*\.[a-z\-]{2,63}){0,}$/i', + 'validators' => array ( 0 => array ( 'type' => 'ISEMAILADDRESS', + 'allowempty' => 'y', 'errmsg'=> 'sender_cc_error_isemail'), ), 'default' => '', 'value' => '', 'width' => '30', - 'maxlength' => '255' + 'maxlength' => '255', + 'searchable' => 2 ), 'maildir' => array ( 'datatype' => 'VARCHAR', @@ -292,6 +293,12 @@ $form["tabs"]['mailuser'] = array( 'default' => 'n', 'value' => array(1 => 'y', 0 => 'n') ), + 'disabledeliver' => array ( + 'datatype' => 'VARCHAR', + 'formtype' => 'CHECKBOX', + 'default' => 'n', + 'value' => array(1 => 'y', 0 => 'n') + ), 'disableimap' => array ( 'datatype' => 'VARCHAR', 'formtype' => 'CHECKBOX', @@ -364,10 +371,6 @@ if ($global_config['mail']['mailbox_show_autoresponder_tab'] === 'y') { 0 => array ( 'type' => 'ISDATETIME', 'allowempty' => 'y', 'errmsg'=> 'autoresponder_start_date_is_no_date'), - 1 => array ( 'type' => 'CUSTOM', - 'class' => 'validate_autoresponder', - 'function' => 'start_date', - 'errmsg'=> 'autoresponder_start_date_is_required'), ) ), 'autoresponder_end_date' => array ( @@ -402,9 +405,9 @@ if ($global_config['mail']['mailbox_show_mail_filter_tab'] === 'y') { //################################# 'move_junk' => array ( 'datatype' => 'VARCHAR', - 'formtype' => 'CHECKBOX', - 'default' => 'n', - 'value' => array(0 => 'n', 1 => 'y') + 'formtype' => 'SELECT', + 'default' => 'y', + 'value' => array('y' => 'move_junk_y_txt', 'a' => 'move_junk_a_txt', 'n' => 'move_junk_n_txt'), ), 'purge_trash_days' => array ( 'datatype' => 'VARCHAR', diff --git a/interface/web/mail/lib/lang/ar_mail_user.lng b/interface/web/mail/lib/lang/ar_mail_user.lng index 9d4828b55753a597f85fa138386cd7f4ebad0500..829de6a749ee61bdebeb6f6bb27e8e37fea648cf 100644 --- a/interface/web/mail/lib/lang/ar_mail_user.lng +++ b/interface/web/mail/lib/lang/ar_mail_user.lng @@ -11,7 +11,7 @@ $wb['autoresponder_txt'] = 'Active'; $wb['autoresponder_start_date_txt'] = 'Start on'; $wb['autoresponder_start_date_ispast'] = 'Start date cannot be in the past.'; $wb['autoresponder_end_date_txt'] = 'End by'; -$wb['autoresponder_end_date_isgreater'] = 'End date must be set and be later than start date.'; +$wb['autoresponder_end_date_isgreater'] = 'End date must be later than start date.'; $wb['no_domain_perm'] = 'You have no permission for this domain.'; $wb['error_no_pwd'] = 'Password is empty.'; $wb['quota_error_isint'] = 'Mailbox size must be a number.'; @@ -20,6 +20,7 @@ $wb['server_id_txt'] = 'Aerver_id'; $wb['password_txt'] = 'Password'; $wb['maildir_txt'] = 'Maildir'; $wb['postfix_txt'] = 'Enable Receiving'; +$wb['tooltip_postfix_txt'] = 'Allows incoming mail to this address.'; $wb['greylisting_txt'] = 'Enable greylisting'; $wb['access_txt'] = 'Enable Access'; $wb['policy_txt'] = 'Spamfilter'; @@ -31,6 +32,9 @@ $wb['disablepop3_txt'] = 'Disable POP3'; $wb['duplicate_alias_or_forward_txt'] = 'There is already an alias or forwrd with this email address.'; $wb['quota_error_value'] = 'Invalid quota value. Allowed values are: 0 for unlimited or numbers > 1'; $wb['move_junk_txt'] = 'Move Spam Emails to Junk directory'; +$wb["move_junk_y_txt"] = 'Move first, before custom filters.'; +$wb["move_junk_a_txt"] = 'Move last, after custom filters.'; +$wb["move_junk_n_txt"] = 'Do not move Spam Emails to Junk folder.'; $wb['name_txt'] = 'Realname'; $wb['name_optional_txt'] = '(Optional)'; $wb['autoresponder_active'] = 'Enable the autoresponder'; @@ -56,11 +60,14 @@ $wb['weekly_backup_txt'] = 'Weekly'; $wb['monthly_backup_txt'] = 'Monthly'; $wb['email_error_isascii'] = 'Please do not use special unicode characters for your password. This could lead to problems with your mail client.'; $wb['cc_note_txt'] = '(Separate multiple email addresses with commas)'; -$wb['disablesmtp_txt'] = 'Disable SMTP (sending)'; +$wb['disablesmtp_txt'] = 'Disable sending'; +$wb['tooltip_disablesmtp_txt'] = 'Disables mail submission from this mail account.'; +$wb['disabledeliver_txt'] = 'Disable (local) delivering'; +$wb['tooltip_disabledeliver_txt'] = 'Disables delivery to INBOX, and processing by mail filters and sieve scripts. Mail forwards to \'Send copy to\' address.'; $wb['autoresponder_start_date_is_required'] = 'Start date must be set when Autoresponder is enabled.'; $wb['sender_cc_txt'] = 'Send outgoing BCC to'; $wb['sender_cc_error_isemail'] = 'The -Send outgoing copy to- field does not contain a valid email address'; -$wb['sender_cc_note_txt'] = '(Separate multiple email addresses with commas)'; +$wb['sender_cc_note_txt'] = '(One email address only)'; $wb['password_click_to_set_txt'] = 'Click to set'; $wb['purge_trash_days_txt'] = 'Purge Trash automatically after X days'; $wb['tooltip_purge_trash_days_txt'] = '0 = disabled'; diff --git a/interface/web/mail/lib/lang/ar_mail_user_list.lng b/interface/web/mail/lib/lang/ar_mail_user_list.lng index 0bb531f78596ebc6754618202dd477a7f65aebdd..bf905ed40ac64cd90ebd0ba86e38559c2ed64c8f 100644 --- a/interface/web/mail/lib/lang/ar_mail_user_list.lng +++ b/interface/web/mail/lib/lang/ar_mail_user_list.lng @@ -7,6 +7,7 @@ $wb['name_txt'] = 'Realname'; $wb['login_txt'] = 'Login'; $wb['postfix_txt'] = 'Receiving'; $wb['disablesmtp_txt'] = 'SMTP (sending)'; +$wb['disabledeliver_txt'] = 'INBOX'; $wb['disableimap_txt'] = 'IMAP'; $wb['disablepop3_txt'] = 'POP3'; ?> diff --git a/interface/web/mail/lib/lang/bg_mail_user.lng b/interface/web/mail/lib/lang/bg_mail_user.lng index 1b9595da42dc26f845a41b36f24cfa9c73bcd29a..126ec603d22d3d754816487e7881e22ff20ed77d 100644 --- a/interface/web/mail/lib/lang/bg_mail_user.lng +++ b/interface/web/mail/lib/lang/bg_mail_user.lng @@ -16,6 +16,7 @@ $wb['server_id_txt'] = 'server_id'; $wb['password_txt'] = 'парола'; $wb['maildir_txt'] = 'maildir'; $wb['postfix_txt'] = 'Разреши получаване'; +$wb['tooltip_postfix_txt'] = 'Allows incoming mail to this address.'; $wb['greylisting_txt'] = 'Enable greylisting'; $wb['access_txt'] = 'Разреши доÑтъп'; $wb['policy_txt'] = 'Спам филтър'; @@ -31,6 +32,9 @@ $wb['autoresponder_start_date_ispast'] = 'Датата на Ñтарта нем $wb['autoresponder_end_date_txt'] = 'Край на'; $wb['autoresponder_end_date_isgreater'] = 'датата на ÐºÑ€Ð°Ñ Ð½ÐµÐ¼Ð¾Ð¶Ðµ да бъде преди датата за Ñтарт.'; $wb['move_junk_txt'] = 'ПремеÑти СПÐÐœ пощата в ДиректориÑта Боклуци'; +$wb["move_junk_y_txt"] = 'Move first, before custom filters.'; +$wb["move_junk_a_txt"] = 'Move last, after custom filters.'; +$wb["move_junk_n_txt"] = 'Do not move Spam Emails to Junk folder.'; $wb['name_txt'] = 'Реално име '; $wb['name_optional_txt'] = '(По желание)'; $wb['autoresponder_active'] = 'Разреши автоматичен отговор'; @@ -50,7 +54,10 @@ $wb['password_mismatch_txt'] = 'The passwords do not match.'; $wb['password_match_txt'] = 'The passwords do match.'; $wb['email_error_isascii'] = 'Please do not use special unicode characters for your password. This could lead to problems with your mail client.'; $wb['cc_note_txt'] = '(Separate multiple email addresses with commas)'; -$wb['disablesmtp_txt'] = 'Disable SMTP (sending)'; +$wb['disablesmtp_txt'] = 'Disable sending'; +$wb['tooltip_disablesmtp_txt'] = 'Disables mail submission from this mail account.'; +$wb['disabledeliver_txt'] = 'Disable (local) delivering'; +$wb['tooltip_disabledeliver_txt'] = 'Disables delivery to INBOX, and processing by mail filters and sieve scripts. Mail forwards to \'Send copy to\' address.'; $wb['autoresponder_start_date_is_required'] = 'Start date must be set when Autoresponder is enabled.'; $wb['sender_cc_txt'] = 'Send outgoing BCC to'; $wb['sender_cc_error_isemail'] = 'The -Send outgoing copy to- field does not contain a valid email address'; @@ -60,7 +67,7 @@ $wb['no_backup_txt'] = 'No backup'; $wb['daily_backup_txt'] = 'Daily'; $wb['weekly_backup_txt'] = 'Weekly'; $wb['monthly_backup_txt'] = 'Monthly'; -$wb['sender_cc_note_txt'] = '(Separate multiple email addresses with commas)'; +$wb['sender_cc_note_txt'] = '(One email address only)'; $wb['password_click_to_set_txt'] = 'Click to set'; $wb['purge_trash_days_txt'] = 'Purge Trash automatically after X days'; $wb['tooltip_purge_trash_days_txt'] = '0 = disabled'; 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 9eb3325c72dcc1c433fd6b38c82c0e6f447c48a5..6929752c5afb0a0051fb343bc1946eeedc1dc2d5 100644 --- a/interface/web/mail/lib/lang/bg_mail_user_filter.lng +++ b/interface/web/mail/lib/lang/bg_mail_user_filter.lng @@ -11,6 +11,7 @@ $wb['limit_mailfilter_txt'] = 'МакÑималниÑÑ‚ брой на емайл $wb['subject_txt'] = 'Тема'; $wb['from_txt'] = 'От'; $wb['to_txt'] = 'До'; +$wb['list_id_txt'] = 'List ID'; $wb['contains_txt'] = 'ОпиÑание'; $wb['is_txt'] = 'е'; $wb['begins_with_txt'] = 'Ðачало Ñ'; diff --git a/interface/web/mail/lib/lang/bg_mail_user_list.lng b/interface/web/mail/lib/lang/bg_mail_user_list.lng index 9ccdb51124f5467d79197742c30b2c1036bb4416..f761ea4f2384fe7d77fc487ed46e805acff9b702 100644 --- a/interface/web/mail/lib/lang/bg_mail_user_list.lng +++ b/interface/web/mail/lib/lang/bg_mail_user_list.lng @@ -7,6 +7,7 @@ $wb['name_txt'] = 'ИÑтинÑко име'; $wb['login_txt'] = 'Вход'; $wb['postfix_txt'] = 'Receiving'; $wb['disablesmtp_txt'] = 'SMTP (sending)'; +$wb['disabledeliver_txt'] = 'INBOX'; $wb['disableimap_txt'] = 'IMAP'; $wb['disablepop3_txt'] = 'POP3'; ?> diff --git a/interface/web/mail/lib/lang/br_mail_user.lng b/interface/web/mail/lib/lang/br_mail_user.lng index 2abe1931f688ef7c5dd53cc1518f8eab7015bf6e..8e3edd6950c29b2420f8f10d5f4dc54cbbb023f7 100644 --- a/interface/web/mail/lib/lang/br_mail_user.lng +++ b/interface/web/mail/lib/lang/br_mail_user.lng @@ -14,7 +14,6 @@ $wb['autoresponder_start_date_txt'] = 'Iniciar em'; $wb['autoresponder_start_date_ispast'] = 'O campo "Iniciar em" não pode ser menor que a data atual.'; $wb['autoresponder_end_date_txt'] = 'Terminar em'; $wb['autoresponder_end_date_isgreater'] = 'O campo "Terminar em" deve ser configurado e não pode ser menor ou igual a data atual.'; -$wb['autoresponder_start_date_is_required'] = 'Data iniciar deve ser configurado quando a opção de auto-resposta estiver habilitada.'; $wb['no_domain_perm'] = 'Você não tem permissão para este domÃnio.'; $wb['error_no_pwd'] = 'A senha está em branco.'; $wb['quota_error_isint'] = 'O tamanho da conta de e-mail deve ser um número.'; @@ -24,6 +23,7 @@ $wb['password_txt'] = 'Senha'; $wb['password_click_to_set_txt'] = 'Clique para configurar'; $wb['maildir_txt'] = 'Maildir'; $wb['postfix_txt'] = 'Habilitar recebimento'; +$wb['tooltip_postfix_txt'] = 'Allows incoming mail to this address.'; $wb['greylisting_txt'] = 'Habilitar greylist'; $wb['access_txt'] = 'Habilitar acesso'; $wb['policy_txt'] = 'Filtros anti-spam'; @@ -31,11 +31,17 @@ $wb['inherit_policy'] = '- Inherit domain setting -'; $wb['limit_mailbox_txt'] = 'O limite de contas de e-mail para esta conta foi alcançado.'; $wb['limit_mailquota_txt'] = 'O limite de tamanho para as contas de e-mails foi alcançado. O espaço disponÃvel em MB é'; $wb['disablesmtp_txt'] = 'Desabilitar SMTP (envio)'; +$wb['tooltip_disablesmtp_txt'] = 'Disables mail submission from this mail account.'; +$wb['disabledeliver_txt'] = 'Disable (local) delivering'; +$wb['tooltip_disabledeliver_txt'] = 'Disables delivery to INBOX, and processing by mail filters and sieve scripts. Mail forwards to \'Send copy to\' address.'; $wb['disableimap_txt'] = 'Desabilitar IMAP'; $wb['disablepop3_txt'] = 'Desabilitar POP3'; $wb['duplicate_alias_or_forward_txt'] = 'Já existe um alias ou encaminhamento para este endereço de e-mail.'; $wb['quota_error_value'] = 'Valor da cota é inválido. Valores permitidos são: 0 para ilimitado ou números > 1.'; $wb['move_junk_txt'] = 'Mover e-mails marcados como spam para o diretório junk.'; +$wb["move_junk_y_txt"] = 'Move first, before custom filters.'; +$wb["move_junk_a_txt"] = 'Move last, after custom filters.'; +$wb["move_junk_n_txt"] = 'Do not move Spam Emails to Junk folder.'; $wb['name_txt'] = 'Nome'; $wb['name_optional_txt'] = '(Opcional)'; $wb['autoresponder_active'] = 'Habilitar auto-resposta'; @@ -61,7 +67,7 @@ $wb['weekly_backup_txt'] = 'Semanal'; $wb['monthly_backup_txt'] = 'Mensal'; $wb['email_error_isascii'] = 'Por favor, não use caracteres especiais para a senha. Isto poderá causar problemas no cliente de e-mail.'; $wb['cc_note_txt'] = '(separar múltiplos endereços de e-mails com vÃrgulas)'; -$wb['sender_cc_note_txt'] = '(separar múltiplos endereços de e-mails com vÃrgulas)'; +$wb['sender_cc_note_txt'] = '(One email address only)'; $wb['purge_trash_days_txt'] = 'Purge Trash automatically after X days'; $wb['tooltip_purge_trash_days_txt'] = '0 = disabled'; $wb['purge_junk_days_txt'] = 'Purge Junk automatically after X days'; diff --git a/interface/web/mail/lib/lang/br_mail_user_filter.lng b/interface/web/mail/lib/lang/br_mail_user_filter.lng index 54ae96d6928405c3340ae39329810eee1308092f..226b7e2722db81b3a60be7f29cfe783bde426f68 100644 --- a/interface/web/mail/lib/lang/br_mail_user_filter.lng +++ b/interface/web/mail/lib/lang/br_mail_user_filter.lng @@ -11,6 +11,7 @@ $wb['limit_mailfilter_txt'] = 'O limite de filtros de e-mail foi alcançado.'; $wb['subject_txt'] = 'Assunto'; $wb['from_txt'] = 'De'; $wb['to_txt'] = 'Para'; +$wb['list_id_txt'] = 'List ID'; $wb['contains_txt'] = 'Contêm'; $wb['is_txt'] = 'é'; $wb['begins_with_txt'] = 'Iniciando com'; diff --git a/interface/web/mail/lib/lang/br_mail_user_list.lng b/interface/web/mail/lib/lang/br_mail_user_list.lng index 3cd9c51740c34a920ef77ae282a5241c6e4dd9a6..01db69051535d1874697803d23101253d97e723c 100644 --- a/interface/web/mail/lib/lang/br_mail_user_list.lng +++ b/interface/web/mail/lib/lang/br_mail_user_list.lng @@ -7,6 +7,7 @@ $wb['name_txt'] = 'Nome real'; $wb['login_txt'] = 'acesso'; $wb['postfix_txt'] = 'Recebendo'; $wb['disablesmtp_txt'] = 'SMTP (envio)'; +$wb['disabledeliver_txt'] = 'INBOX'; $wb['disableimap_txt'] = 'IMAP'; $wb['disablepop3_txt'] = 'POP3'; ?> diff --git a/interface/web/mail/lib/lang/ca_mail_user.lng b/interface/web/mail/lib/lang/ca_mail_user.lng index 08c9bc78ecbf568bdc4c6d7757f14606172da1a4..7fd4263e976aaa94d92480bd5c28401c4e977aa5 100644 --- a/interface/web/mail/lib/lang/ca_mail_user.lng +++ b/interface/web/mail/lib/lang/ca_mail_user.lng @@ -16,6 +16,7 @@ $wb['server_id_txt'] = 'ID Serveur'; $wb['password_txt'] = 'Mot de passe'; $wb['maildir_txt'] = 'Maildir'; $wb['postfix_txt'] = 'Activer la réception'; +$wb['tooltip_postfix_txt'] = 'Allows incoming mail to this address.'; $wb['access_txt'] = 'Activer l\'accès'; $wb['policy_txt'] = 'Filtre antispam'; $wb['inherit_policy'] = '- Inherit domain setting -'; @@ -30,6 +31,9 @@ $wb['autoresponder_end_date_txt'] = 'Terminer le'; $wb['autoresponder_end_date_isgreater'] = 'La date de fin doit être saisie et doit être ultérieure à la date de début.'; $wb['quota_error_value'] = 'Valeur de quota invalide. Les valeurs de quota autorisées sont : 0 pour illimité ou nombres > 1'; $wb['move_junk_txt'] = 'Déplacer le spam vers le dossier Junk'; +$wb["move_junk_y_txt"] = 'Move first, before custom filters.'; +$wb["move_junk_a_txt"] = 'Move last, after custom filters.'; +$wb["move_junk_n_txt"] = 'Do not move Spam Emails to Junk folder.'; $wb['name_txt'] = 'Nom véritable'; $wb['name_optional_txt'] = '(Optionnel)'; $wb['autoresponder_active'] = 'Activer le répondeur automatique'; @@ -48,9 +52,11 @@ $wb['repeat_password_txt'] = 'Retaper le mot de passe'; $wb['password_mismatch_txt'] = 'Les mots de passe ne correspondent pas'; $wb['password_match_txt'] = 'Les mots de passe correspondent.'; $wb['disablesmtp_txt'] = 'Désactiver SMTP (envoi)'; +$wb['tooltip_disablesmtp_txt'] = 'Disables mail submission from this mail account.'; +$wb['disabledeliver_txt'] = 'Disable (local) delivering'; +$wb['tooltip_disabledeliver_txt'] = 'Disables delivery to INBOX, and processing by mail filters and sieve scripts. Mail forwards to \'Send copy to\' address.'; $wb['email_error_isascii'] = 'Please do not use special unicode characters for your password. This could lead to problems with your mail client.'; $wb['cc_note_txt'] = '(Séparer chaque adresses par une virgule)'; -$wb['autoresponder_start_date_is_required'] = 'Start date must be set when Autoresponder is enabled.'; $wb['greylisting_txt'] = 'Enable greylisting'; $wb['sender_cc_txt'] = 'Send outgoing BCC to'; $wb['sender_cc_error_isemail'] = 'The -Send outgoing copy to- field does not contain a valid email address'; @@ -60,7 +66,7 @@ $wb['no_backup_txt'] = 'No backup'; $wb['daily_backup_txt'] = 'Daily'; $wb['weekly_backup_txt'] = 'Weekly'; $wb['monthly_backup_txt'] = 'Monthly'; -$wb['sender_cc_note_txt'] = '(Separate multiple email addresses with commas)'; +$wb['sender_cc_note_txt'] = '(One email address only)'; $wb['password_click_to_set_txt'] = 'Click to set'; $wb['purge_trash_days_txt'] = 'Purge Trash automatically after X days'; $wb['tooltip_purge_trash_days_txt'] = '0 = disabled'; diff --git a/interface/web/mail/lib/lang/ca_mail_user_list.lng b/interface/web/mail/lib/lang/ca_mail_user_list.lng index c3b79e38be69c3449abce2b75051960a6bb4d375..8d6ae9c30e35c2be86956722f61310480eb44937 100644 --- a/interface/web/mail/lib/lang/ca_mail_user_list.lng +++ b/interface/web/mail/lib/lang/ca_mail_user_list.lng @@ -7,6 +7,7 @@ $wb['name_txt'] = 'Nom véritable'; $wb['login_txt'] = 'Nom d\'utilisateur'; $wb['postfix_txt'] = 'Receiving'; $wb['disablesmtp_txt'] = 'SMTP (sending)'; +$wb['disabledeliver_txt'] = 'INBOX'; $wb['disableimap_txt'] = 'IMAP'; $wb['disablepop3_txt'] = 'POP3'; ?> diff --git a/interface/web/mail/lib/lang/cz_mail_user.lng b/interface/web/mail/lib/lang/cz_mail_user.lng index fb09f0c0a029e5b5ca34b39bb3cde771cb8a5da6..835f2918c1dc2589745fe9c8cea89367dd523c53 100644 --- a/interface/web/mail/lib/lang/cz_mail_user.lng +++ b/interface/web/mail/lib/lang/cz_mail_user.lng @@ -20,6 +20,7 @@ $wb['server_id_txt'] = 'Server_id'; $wb['password_txt'] = 'Heslo'; $wb['maildir_txt'] = 'E-mailový adresář'; $wb['postfix_txt'] = 'Povolit pÅ™Ãjem'; +$wb['tooltip_postfix_txt'] = 'Allows incoming mail to this address.'; $wb['access_txt'] = 'Povolit pÅ™Ãstup'; $wb['policy_txt'] = 'Spamový filtr'; $wb['inherit_policy'] = '- Inherit domain setting -'; @@ -30,6 +31,9 @@ $wb['disablepop3_txt'] = 'Zakázat POP3'; $wb['duplicate_alias_or_forward_txt'] = 'Alias nebo pÅ™esmÄ›rovánà s touto adresou již existuje.'; $wb['quota_error_value'] = 'Chybná hodnota kvóty. Povolené hodnoty jsou: 0 pro neomezeno nebo ÄÃsla > 1'; $wb['move_junk_txt'] = 'PÅ™esunout e-maily detekované jako spam do adresáře Junk'; +$wb["move_junk_y_txt"] = 'Move first, before custom filters.'; +$wb["move_junk_a_txt"] = 'Move last, after custom filters.'; +$wb["move_junk_n_txt"] = 'Do not move Spam Emails to Junk folder.'; $wb['name_txt'] = 'SkuteÄné jméno'; $wb['name_optional_txt'] = '(volitelné)'; $wb['autoresponder_active'] = 'Povolit automatický odpovÃdaÄ'; @@ -49,7 +53,9 @@ $wb['password_mismatch_txt'] = 'Hesla se neshodujÃ.'; $wb['password_match_txt'] = 'Hesla se shodujÃ.'; $wb['email_error_isascii'] = 'Please do not use special unicode characters for your password. This could lead to problems with your mail client.'; $wb['cc_note_txt'] = '(PÅ™i posÃlánà kopià na vÃce e-mailových adres, oddÄ›lte Äárkami.)'; -$wb['disablesmtp_txt'] = 'Zakázat SMTP (pouze odesÃlánÃ)'; +$wb['tooltip_disablesmtp_txt'] = 'Disables mail submission from this mail account.'; +$wb['disabledeliver_txt'] = 'Disable (local) delivering'; +$wb['tooltip_disabledeliver_txt'] = 'Disables delivery to INBOX, and processing by mail filters and sieve scripts. Mail forwards to \'Send copy to\' address.'; $wb['autoresponder_start_date_is_required'] = 'Start date must be set when Autoresponder is enabled.'; $wb['greylisting_txt'] = 'Povolit greylisting'; $wb['sender_cc_txt'] = 'Odeslat odchozà kopii na'; @@ -60,7 +66,7 @@ $wb['no_backup_txt'] = 'Žádná záloha'; $wb['daily_backup_txt'] = 'DennÃ'; $wb['weekly_backup_txt'] = 'TýdennÃ'; $wb['monthly_backup_txt'] = 'MÄ›sÃÄnÃ'; -$wb['sender_cc_note_txt'] = '(PÅ™i posÃlánà kopià na vÃce e-mailových adres, oddÄ›lte Äárkami.) '; +$wb['sender_cc_note_txt'] = '(One email address only)'; $wb['password_click_to_set_txt'] = 'Pro nastavenà klikni zde'; $wb['purge_trash_days_txt'] = 'Purge Trash automatically after X days'; $wb['tooltip_purge_trash_days_txt'] = '0 = disabled'; 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 9bd358063506902d11edfd038366492f0cde857f..3f5357f73538dd57536be651102932b17ce7ce21 100644 --- a/interface/web/mail/lib/lang/cz_mail_user_filter.lng +++ b/interface/web/mail/lib/lang/cz_mail_user_filter.lng @@ -11,6 +11,7 @@ $wb['limit_mailfilter_txt'] = 'Byl dosažen max. poÄet e-mailový filtrovacÃch $wb['subject_txt'] = 'PÅ™edmÄ›t'; $wb['from_txt'] = 'OdesÃlatel'; $wb['to_txt'] = 'PÅ™Ãjemce (adresát)'; +$wb['list_id_txt'] = 'List ID'; $wb['contains_txt'] = 'Obsahuje'; $wb['is_txt'] = 'Je'; $wb['begins_with_txt'] = 'ZaÄÃná na'; diff --git a/interface/web/mail/lib/lang/cz_mail_user_list.lng b/interface/web/mail/lib/lang/cz_mail_user_list.lng index e4e224159950bc77f08171e01f271988e71d3857..dcca69d8fe62d5adaf0b20364706005ee25cf55b 100644 --- a/interface/web/mail/lib/lang/cz_mail_user_list.lng +++ b/interface/web/mail/lib/lang/cz_mail_user_list.lng @@ -7,6 +7,7 @@ $wb['name_txt'] = 'SkuteÄný název'; $wb['login_txt'] = 'PÅ™ihlášenÃ'; $wb['postfix_txt'] = 'PÅ™Ãjem'; $wb['disablesmtp_txt'] = 'SMTP (odesÃlánÃ)'; +$wb['disabledeliver_txt'] = 'INBOX'; $wb['disableimap_txt'] = 'IMAP'; $wb['disablepop3_txt'] = 'POP3'; ?> diff --git a/interface/web/mail/lib/lang/de_backup_stats_list.lng b/interface/web/mail/lib/lang/de_backup_stats_list.lng index 9e14533068b6ba433a9d368d78ceb00fcf7ceff0..9147d3cbd6e03abec15051bd166b7c10ed041c24 100644 --- a/interface/web/mail/lib/lang/de_backup_stats_list.lng +++ b/interface/web/mail/lib/lang/de_backup_stats_list.lng @@ -5,5 +5,5 @@ $wb['domain_txt'] = 'Email'; $wb['backup_count_txt'] = 'Anz. Backups'; $wb['backup_server_txt'] = 'Server'; $wb['backup_interval_txt'] = 'Intervall / Anz.'; -$wb['backup_size_txt'] = 'Backupgrösse'; +$wb['backup_size_txt'] = 'Backupgröße'; ?> diff --git a/interface/web/mail/lib/lang/de_mail_alias.lng b/interface/web/mail/lib/lang/de_mail_alias.lng index 211f0065fa0e44d05f62798fd1f36a9afebba151..4cdcd03a6f9e607366f59e7b5d555c1d08cd9d34 100644 --- a/interface/web/mail/lib/lang/de_mail_alias.lng +++ b/interface/web/mail/lib/lang/de_mail_alias.lng @@ -12,6 +12,6 @@ $wb['domain_txt'] = 'Domain'; $wb['duplicate_email_alias_txt'] = 'Dieser E-Mail Alias existiert bereits.'; $wb['source_txt'] = 'Alias'; $wb['send_as_txt'] = 'Senden als'; -$wb['send_as_exp'] = 'Ziel erlauben, den alias als Absender zu benutzen'; +$wb['send_as_exp'] = 'Ziel erlauben, den Alias als Absender zu benutzen'; $wb['greylisting_txt'] = 'Aktiviere Greylisting'; ?> diff --git a/interface/web/mail/lib/lang/de_mail_backup_list.lng b/interface/web/mail/lib/lang/de_mail_backup_list.lng index 73286a0737103be7877ad8d6c3f4aaa669042224..3c3ee4d315ac7dc1556949bb60bf2fc9b9028c7c 100644 --- a/interface/web/mail/lib/lang/de_mail_backup_list.lng +++ b/interface/web/mail/lib/lang/de_mail_backup_list.lng @@ -1,16 +1,16 @@ <?php -$wb['list_head_txt'] = 'Existing backups'; -$wb['date_txt'] = 'Date'; -$wb['backup_type_txt'] = 'Type'; -$wb['filename_txt'] = 'Backup file'; -$wb['restore_backup_txt'] = 'Restore'; -$wb['restore_info_txt'] = 'Restore of the backup has been started. This action takes several minutes to be completed.'; -$wb['restore_confirm_txt'] = 'Restoring may overwrite existing files in your mailbox. Do you really want to restore this backup?'; -$wb['download_pending_txt'] = 'There is already a pending backup download job.'; -$wb['restore_pending_txt'] = 'There is already a pending backup restore job.'; -$wb['delete_backup_txt'] = 'Delete Backup'; -$wb['delete_info_txt'] = 'Delete of the backup has been started. This action takes several minutes to be completed.'; -$wb['delete_confirm_txt'] = 'Really delete this backup?'; -$wb['delete_pending_txt'] = 'There is already a pending backup delete job.'; -$wb['filesize_txt'] = 'Filesize'; +$wb['list_head_txt'] = 'Vorhandene Backups'; +$wb['date_txt'] = 'Datum'; +$wb['backup_type_txt'] = 'Art'; +$wb['filename_txt'] = 'Dateiname'; +$wb['restore_backup_txt'] = 'Wiederherstellen'; +$wb['restore_info_txt'] = 'Wiederherstellung begonnen. Dieser Vorgang kann einige Minuten dauern.'; +$wb['restore_confirm_txt'] = 'Die Wiederherstellung kann bestehende Dateien in Ihrem Postfach überschreiben. Möchten Sie das Backup wiederherstellen?'; +$wb['download_pending_txt'] = 'Es läuft bereits ein Backup-Download.'; +$wb['restore_pending_txt'] = 'Es steht bereits ein Backup zur Wiederherstellung an.'; +$wb['delete_backup_txt'] = 'Backup löschen'; +$wb['delete_info_txt'] = 'Das Backup wird gelöscht. Dieser Vorgang kann einige Minuten dauern.'; +$wb['delete_confirm_txt'] = 'Möchten Sie dieses Backup wirklich löschen?'; +$wb['delete_pending_txt'] = 'Es wird bereits ein Backup gelöscht.'; +$wb['filesize_txt'] = 'Dateigröße'; ?> diff --git a/interface/web/mail/lib/lang/de_mail_user.lng b/interface/web/mail/lib/lang/de_mail_user.lng index e653fbe288762de39f0c0b7b62fdadf6ed67a272..dbbf54d1501fb689b480843c1a05ceba6d0658f5 100644 --- a/interface/web/mail/lib/lang/de_mail_user.lng +++ b/interface/web/mail/lib/lang/de_mail_user.lng @@ -17,6 +17,7 @@ $wb['server_id_txt'] = 'Server ID'; $wb['password_txt'] = 'Passwort'; $wb['maildir_txt'] = 'E-Mail Verzeichnis'; $wb['postfix_txt'] = 'Aktiviere Empfang'; +$wb['tooltip_postfix_txt'] = 'Allows incoming mail to this address.'; $wb['greylisting_txt'] = 'Aktiviere Greylisting'; $wb['access_txt'] = 'Aktiviere Zugriff'; $wb['policy_txt'] = 'Spamfilter'; @@ -24,6 +25,9 @@ $wb['inherit_policy'] = '- Inherit domain setting -'; $wb['limit_mailbox_txt'] = 'Die maximale Anzahl an E-Mailkonten für Ihr Konto wurde erreicht.'; $wb['limit_mailquota_txt'] = 'Der maximale Speicherplatz für Ihr E-Mail Konto wurde erreicht. Der maximal verfügbare Speicher in MB ist'; $wb['disablesmtp_txt'] = 'SMTP (Mailversand) deaktivieren'; +$wb['tooltip_disablesmtp_txt'] = 'Disables mail submission from this mail account.'; +$wb['disabledeliver_txt'] = 'Disable (local) delivering'; +$wb['tooltip_disabledeliver_txt'] = 'Disables delivery to INBOX, and processing by mail filters and sieve scripts. Mail forwards to \'Send copy to\' address.'; $wb['disableimap_txt'] = 'IMAP deaktivieren'; $wb['disablepop3_txt'] = 'POP3 deaktivieren'; $wb['password_strength_txt'] = 'Passwortkomplexität'; @@ -34,11 +38,14 @@ $wb['autoresponder_start_date_ispast'] = 'Startdatum kann nicht in der Vergangen $wb['autoresponder_end_date_txt'] = 'Endet am'; $wb['autoresponder_end_date_isgreater'] = 'Enddatum muss angegeben werden und muss später als das Startdatum sein.'; $wb['move_junk_txt'] = 'Spam E-Mails in das Junk Verzeichnis verschieben'; +$wb["move_junk_y_txt"] = 'Move first, before custom filters.'; +$wb["move_junk_a_txt"] = 'Move last, after custom filters.'; +$wb["move_junk_n_txt"] = 'Do not move Spam Emails to Junk folder.'; $wb['name_txt'] = 'Name'; $wb['name_optional_txt'] = '(optional)'; $wb['autoresponder_active'] = 'Autoresponder aktivieren'; -$wb['cc_txt'] = 'Kopie senden an'; -$wb['cc_error_isemail'] = 'Das -Kopie senden an- Feld enthält keine gültige E-Mail Adresse'; +$wb['cc_txt'] = 'Eingehende Mails in Kopie senden an'; +$wb['cc_error_isemail'] = 'Das Feld "Kopie senden an" enthält keine gültige E-Mail Adresse'; $wb['login_error_unique'] = 'Benutzername wird bereits verwendet.'; $wb['login_error_regex'] = 'Zulässige Zeichen sind A-Z, a-z, 0-9, ., _ und -.'; $wb['login_txt'] = 'Anmelden'; @@ -50,18 +57,17 @@ $wb['repeat_password_txt'] = 'Passwort wiederholen'; $wb['password_mismatch_txt'] = 'Die Passwörter stimmen nicht überein.'; $wb['password_match_txt'] = 'Die Passwörter stimmen überein.'; $wb['email_error_isascii'] = 'Bitte verwenden Sie keine Umlaute im Passwort. Dies kann zu Problemen mit Ihrem E-Mail-Programm führen.'; -$wb['backup_interval_txt'] = 'Backup interval'; +$wb['backup_interval_txt'] = 'Backup-Interval'; $wb['backup_copies_txt'] = 'Anzahl der Backups'; $wb['no_backup_txt'] = 'inaktiv'; -$wb['daily_backup_txt'] = 'taeglich'; -$wb['weekly_backup_txt'] = 'woechentlich'; +$wb['daily_backup_txt'] = 'täglich'; +$wb['weekly_backup_txt'] = 'wöchentlich'; $wb['monthly_backup_txt'] = 'monatlich'; $wb['cc_note_txt'] = '(Mehrere E-Mail-Adressen mit Kommas trennen)'; -$wb['autoresponder_start_date_is_required'] = 'Startdatum muss angegeben werden.'; $wb['sender_cc_txt'] = 'Kopie ausgehender Emails senden an (BCC)'; $wb['sender_cc_error_isemail'] = '-Kopie ausgehender Emails senden an- Feld enthält keine gültige Emailadresse'; $wb['sender_cc_note_txt'] = '(Mehrere E-Mail-Adressen mit Kommas trennen)'; -$wb['password_click_to_set_txt'] = 'Click to set'; +$wb['password_click_to_set_txt'] = 'Passwort erzeugen'; $wb['purge_trash_days_txt'] = 'Purge Trash automatically after X days'; $wb['tooltip_purge_trash_days_txt'] = '0 = disabled'; $wb['purge_junk_days_txt'] = 'Purge Junk automatically after X days'; 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 c9fb78fcee1ff581249ff128bd93c5c8578e0c5b..345b9c4fbb38d3de1c06b7fe074c0f15a9917e2f 100644 --- a/interface/web/mail/lib/lang/de_mail_user_filter.lng +++ b/interface/web/mail/lib/lang/de_mail_user_filter.lng @@ -11,6 +11,7 @@ $wb['limit_mailfilter_txt'] = 'Die maximale Anzahl an E-Mail Filtern für Ihr Ko $wb['subject_txt'] = 'Betreff'; $wb['from_txt'] = 'Von'; $wb['to_txt'] = 'An'; +$wb['list_id_txt'] = 'List ID'; $wb['contains_txt'] = 'Enthält'; $wb['is_txt'] = 'Ist'; $wb['begins_with_txt'] = 'Beginnt mit'; diff --git a/interface/web/mail/lib/lang/de_mail_user_list.lng b/interface/web/mail/lib/lang/de_mail_user_list.lng index 5eeff280c2a3365b1e1d4a7a6e5d921a5e3f0e91..b1ebb2fd1dd9afa307f1e4c5ba4a4689caf18098 100644 --- a/interface/web/mail/lib/lang/de_mail_user_list.lng +++ b/interface/web/mail/lib/lang/de_mail_user_list.lng @@ -3,10 +3,11 @@ $wb['list_head_txt'] = 'E-Mail Konto'; $wb['email_txt'] = 'E-Mail Adresse'; $wb['autoresponder_txt'] = 'Autoresponder'; $wb['add_new_record_txt'] = 'Neues E-Mail Konto hinzufügen'; -$wb['name_txt'] = 'Realname'; +$wb['name_txt'] = 'Name'; $wb['login_txt'] = 'Anmelden'; -$wb['postfix_txt'] = 'Receiving'; -$wb['disablesmtp_txt'] = 'SMTP (sending)'; +$wb['postfix_txt'] = 'Empfang'; +$wb['disablesmtp_txt'] = 'SMTP (Versand)'; +$wb['disabledeliver_txt'] = 'INBOX'; $wb['disableimap_txt'] = 'IMAP'; $wb['disablepop3_txt'] = 'POP3'; ?> diff --git a/interface/web/mail/lib/lang/dk_mail_user.lng b/interface/web/mail/lib/lang/dk_mail_user.lng index 34bf0763590ce3f528e9ed6afdb6d896324fe921..04196d6b29011205d481a692024fec4dc4bf8292 100644 --- a/interface/web/mail/lib/lang/dk_mail_user.lng +++ b/interface/web/mail/lib/lang/dk_mail_user.lng @@ -22,17 +22,24 @@ $wb['server_id_txt'] = 'Server ID'; $wb['password_txt'] = 'Adgangskode'; $wb['maildir_txt'] = 'Mailmappe'; $wb['postfix_txt'] = 'Aktiver modtagelse'; +$wb['tooltip_postfix_txt'] = 'Allows incoming mail to this address.'; $wb['access_txt'] = 'Aktiver adgang'; $wb['policy_txt'] = 'Spamfilter'; $wb['inherit_policy'] = '- Inherit domain setting -'; $wb['limit_mailbox_txt'] = 'Max. antal af mailbokse for din konto er nÃ¥et.'; $wb['limit_mailquota_txt'] = 'Max. plads for postkasser er nÃ¥et. Max. tilgængelig plads i MB er'; $wb['disablesmtp_txt'] = 'Deaktiver SMTP (afsending)'; +$wb['tooltip_disablesmtp_txt'] = 'Disables mail submission from this mail account.'; +$wb['disabledeliver_txt'] = 'Disable (local) delivering'; +$wb['tooltip_disabledeliver_txt'] = 'Disables delivery to INBOX, and processing by mail filters and sieve scripts. Mail forwards to \'Send copy to\' address.'; $wb['disableimap_txt'] = 'Deaktiver IMAP'; $wb['disablepop3_txt'] = 'Deaktiver POP3'; $wb['duplicate_alias_or_forward_txt'] = 'Der er allerede et alias eller forward for denne e-mail adresse.'; $wb['quota_error_value'] = 'Ugyldig kvote værdi. Tilladte værdier er: 0 for ubegrænset eller tal > 1'; $wb['move_junk_txt'] = 'Flyt Spam E-mails til Junk mappe.'; +$wb["move_junk_y_txt"] = 'Move first, before custom filters.'; +$wb["move_junk_a_txt"] = 'Move last, after custom filters.'; +$wb["move_junk_n_txt"] = 'Do not move Spam Emails to Junk folder.'; $wb['name_txt'] = 'Navn'; $wb['name_optional_txt'] = '(Valgfri)'; $wb['autoresponder_active'] = 'Aktiver autosvarer'; @@ -50,7 +57,6 @@ $wb['password_mismatch_txt'] = 'Adgangskoderne stemmer ikke overens.'; $wb['password_match_txt'] = 'Adgangskoderne stemmer overens.'; $wb['email_error_isascii'] = 'Undlad venligst at bruge specielle Unicode-tegn for din adgangskode Dette kan føre til problemer med din mail-klient.'; $wb['cc_note_txt'] = '(Adskil flere e-mail adresser med kommaer)'; -$wb['autoresponder_start_date_is_required'] = 'Start date must be set when Autoresponder is enabled.'; $wb['password_click_to_set_txt'] = 'Click to set'; $wb['greylisting_txt'] = 'Enable greylisting'; $wb['sender_cc_txt'] = 'Send outgoing BCC to'; @@ -61,7 +67,7 @@ $wb['no_backup_txt'] = 'No backup'; $wb['daily_backup_txt'] = 'Daily'; $wb['weekly_backup_txt'] = 'Weekly'; $wb['monthly_backup_txt'] = 'Monthly'; -$wb['sender_cc_note_txt'] = '(Separate multiple email addresses with commas)'; +$wb['sender_cc_note_txt'] = '(One email address only)'; $wb['purge_trash_days_txt'] = 'Purge Trash automatically after X days'; $wb['tooltip_purge_trash_days_txt'] = '0 = disabled'; $wb['purge_junk_days_txt'] = 'Purge Junk automatically after X days'; diff --git a/interface/web/mail/lib/lang/dk_mail_user_list.lng b/interface/web/mail/lib/lang/dk_mail_user_list.lng index ac07bb92b3a426d2e826fc69d16a4db0ea656799..fc3afb7c4629822f7517e5029ec38d290c5d6d90 100644 --- a/interface/web/mail/lib/lang/dk_mail_user_list.lng +++ b/interface/web/mail/lib/lang/dk_mail_user_list.lng @@ -7,6 +7,7 @@ $wb['name_txt'] = 'Navn'; $wb['login_txt'] = 'Log ind'; $wb['postfix_txt'] = 'Receiving'; $wb['disablesmtp_txt'] = 'SMTP (sending)'; +$wb['disabledeliver_txt'] = 'INBOX'; $wb['disableimap_txt'] = 'IMAP'; $wb['disablepop3_txt'] = 'POP3'; ?> diff --git a/interface/web/mail/lib/lang/el_mail_user.lng b/interface/web/mail/lib/lang/el_mail_user.lng index 76c266d59121a8a1cbec2057576209f2af62f536..b273f6b8145af328adfd6aa6a5d8d3a11181f3ab 100644 --- a/interface/web/mail/lib/lang/el_mail_user.lng +++ b/interface/web/mail/lib/lang/el_mail_user.lng @@ -20,6 +20,7 @@ $wb['server_id_txt'] = 'Aerver_id'; $wb['password_txt'] = 'Συνθηματικό'; $wb['maildir_txt'] = 'Maildir'; $wb['postfix_txt'] = 'ΕνεÏγοποίηση Λήψης'; +$wb['tooltip_postfix_txt'] = 'Allows incoming mail to this address.'; $wb['greylisting_txt'] = 'Enable greylisting'; $wb['access_txt'] = 'ΕνεÏγοποίηση Î Ïόσβασης'; $wb['policy_txt'] = 'ΦίλτÏο Spam'; @@ -31,6 +32,9 @@ $wb['disablepop3_txt'] = 'ΑπενεÏγοποίηση POP3'; $wb['duplicate_alias_or_forward_txt'] = 'ΥπάÏχει ήδη Îνα ψευδωνÏμο ή μία Ï€Ïοώθηση με αυτή τη διεÏθυνση email.'; $wb['quota_error_value'] = 'Μη ÎγκυÏη τιμή οÏίου χώÏου. ΕπιτÏεπόμενες τιμÎÏ‚ είναι: 0 για απεÏιόÏιστο ή αÏιθμοί > 1'; $wb['move_junk_txt'] = 'Μετακίνηση των Spam Emails στο φάκελο Junk'; +$wb["move_junk_y_txt"] = 'Move first, before custom filters.'; +$wb["move_junk_a_txt"] = 'Move last, after custom filters.'; +$wb["move_junk_n_txt"] = 'Do not move Spam Emails to Junk folder.'; $wb['name_txt'] = 'Î Ïαγματικό Όνομα'; $wb['name_optional_txt'] = '(Î ÏοαιÏετικό)'; $wb['autoresponder_active'] = 'ΕνεÏγοποίηση αυτόματης απάντησης'; @@ -48,10 +52,12 @@ $wb['generate_password_txt'] = 'Generate Password'; $wb['repeat_password_txt'] = 'Repeat Password'; $wb['password_mismatch_txt'] = 'The passwords do not match.'; $wb['password_match_txt'] = 'The passwords do match.'; -$wb['disablesmtp_txt'] = 'Disable SMTP (sending)'; +$wb['disablesmtp_txt'] = 'Disable sending'; +$wb['tooltip_disablesmtp_txt'] = 'Disables mail submission from this mail account.'; +$wb['disabledeliver_txt'] = 'Disable (local) delivering'; +$wb['tooltip_disabledeliver_txt'] = 'Disables delivery to INBOX, and processing by mail filters and sieve scripts. Mail forwards to \'Send copy to\' address.'; $wb['email_error_isascii'] = 'Please do not use special unicode characters for your password. This could lead to problems with your mail client.'; $wb['cc_note_txt'] = '(Separate multiple email addresses with commas)'; -$wb['autoresponder_start_date_is_required'] = 'Start date must be set when Autoresponder is enabled.'; $wb['sender_cc_txt'] = 'Send outgoing BCC to'; $wb['sender_cc_error_isemail'] = 'The -Send outgoing copy to- field does not contain a valid email address'; $wb['backup_interval_txt'] = 'Backup interval'; @@ -60,7 +66,7 @@ $wb['no_backup_txt'] = 'No backup'; $wb['daily_backup_txt'] = 'Daily'; $wb['weekly_backup_txt'] = 'Weekly'; $wb['monthly_backup_txt'] = 'Monthly'; -$wb['sender_cc_note_txt'] = '(Separate multiple email addresses with commas)'; +$wb['sender_cc_note_txt'] = '(One email address only)'; $wb['password_click_to_set_txt'] = 'Click to set'; $wb['purge_trash_days_txt'] = 'Purge Trash automatically after X days'; $wb['tooltip_purge_trash_days_txt'] = '0 = disabled'; 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 f3957144ae0225257bccd6e72dd1c9984e0ed999..72710a9f7e72d3435023a6e73ea554ab7831ec83 100644 --- a/interface/web/mail/lib/lang/el_mail_user_filter.lng +++ b/interface/web/mail/lib/lang/el_mail_user_filter.lng @@ -11,6 +11,7 @@ $wb['limit_mailfilter_txt'] = 'Έχετε φτάσει το μÎγιστο πλ $wb['subject_txt'] = 'ΘÎμα'; $wb['from_txt'] = 'Από'; $wb['to_txt'] = 'Î Ïος'; +$wb['list_id_txt'] = 'List ID'; $wb['contains_txt'] = 'ΠεÏιλαμβάνει'; $wb['is_txt'] = 'είναι'; $wb['begins_with_txt'] = 'Ξεκινά με'; diff --git a/interface/web/mail/lib/lang/el_mail_user_list.lng b/interface/web/mail/lib/lang/el_mail_user_list.lng index 98cf9c200d20674753cef1e36743669f3952069a..4a532251869e15e54415ac9a63c08e543265f4f1 100644 --- a/interface/web/mail/lib/lang/el_mail_user_list.lng +++ b/interface/web/mail/lib/lang/el_mail_user_list.lng @@ -7,6 +7,7 @@ $wb['name_txt'] = 'Î Ïαγματικό Όνομα'; $wb['login_txt'] = 'Login'; $wb['postfix_txt'] = 'Receiving'; $wb['disablesmtp_txt'] = 'SMTP (sending)'; +$wb['disabledeliver_txt'] = 'INBOX'; $wb['disableimap_txt'] = 'IMAP'; $wb['disablepop3_txt'] = 'POP3'; ?> diff --git a/interface/web/mail/lib/lang/en_mail_user.lng b/interface/web/mail/lib/lang/en_mail_user.lng index 69ac0a00a995ee1fcdf6cdc943a2ae656c359965..ed6b6e3bd326669b25b117563e86a31eefcc89f8 100644 --- a/interface/web/mail/lib/lang/en_mail_user.lng +++ b/interface/web/mail/lib/lang/en_mail_user.lng @@ -13,8 +13,7 @@ $wb["autoresponder_txt"] = 'Active'; $wb["autoresponder_start_date_txt"] = 'Start on'; $wb["autoresponder_start_date_ispast"] = 'Start date cannot be in the past.'; $wb["autoresponder_end_date_txt"] = 'End by'; -$wb["autoresponder_end_date_isgreater"] = 'End date must be set and be later than start date.'; -$wb['autoresponder_start_date_is_required'] = 'Start date must be set when Autoresponder is enabled.'; +$wb["autoresponder_end_date_isgreater"] = 'End date must be later than start date.'; $wb["no_domain_perm"] = 'You have no permission for this domain.'; $wb["error_no_pwd"] = 'Password is empty.'; $wb["quota_error_isint"] = 'Mailbox size must be a number.'; @@ -23,19 +22,26 @@ $wb["server_id_txt"] = 'Aerver_id'; $wb["password_txt"] = 'Password'; $wb['password_click_to_set_txt'] = 'Click to set'; $wb["maildir_txt"] = 'Maildir'; -$wb["postfix_txt"] = 'Enable receiving'; +$wb['postfix_txt'] = 'Enable receiving'; +$wb['tooltip_postfix_txt'] = 'Allows incoming mail to this address.'; $wb['greylisting_txt'] = 'Enable greylisting'; $wb["access_txt"] = 'Enable access'; $wb["policy_txt"] = 'Spamfilter'; $wb['inherit_policy'] = '- Inherit domain setting -'; $wb["limit_mailbox_txt"] = 'The max. number of mailboxes for your account is reached.'; $wb["limit_mailquota_txt"] = 'The max space for mailboxes is reached. The max. available space in MB is'; -$wb["disablesmtp_txt"] = 'Disable SMTP (sending)'; +$wb['disablesmtp_txt'] = 'Disable sending'; +$wb['tooltip_disablesmtp_txt'] = 'Disables mail submission from this mail account.'; +$wb['disabledeliver_txt'] = 'Disable (local) delivering'; +$wb['tooltip_disabledeliver_txt'] = 'Disables delivery to INBOX, and processing by mail filters and sieve scripts. Mail forwards to \'Send copy to\' address.'; $wb["disableimap_txt"] = 'Disable IMAP'; $wb["disablepop3_txt"] = 'Disable POP3'; $wb["duplicate_alias_or_forward_txt"] = 'There is already an alias or forward with this email address.'; $wb["quota_error_value"] = 'Invalid quota value. Allowed values are: 0 for unlimited or numbers > 1'; -$wb["move_junk_txt"] = 'Move Spam Emails to Junk directory.'; +$wb["move_junk_txt"] = 'Move Spam Emails to Junk folder.'; +$wb["move_junk_y_txt"] = 'Move first, before custom filters.'; +$wb["move_junk_a_txt"] = 'Move last, after custom filters.'; +$wb["move_junk_n_txt"] = 'Do not move Spam Emails to Junk folder.'; $wb["name_txt"] = 'Name'; $wb["name_optional_txt"] = '(Optional)'; $wb['autoresponder_active'] = 'Enable the autoresponder'; @@ -61,7 +67,7 @@ $wb['weekly_backup_txt'] = 'Weekly'; $wb['monthly_backup_txt'] = 'Monthly'; $wb['email_error_isascii'] = 'Please do not use special unicode characters for your password. This could lead to problems with your mail client.'; $wb['cc_note_txt'] = '(Separate multiple email addresses with commas)'; -$wb['sender_cc_note_txt'] = '(Separate multiple email addresses with commas)'; +$wb['sender_cc_note_txt'] = '(One email address only)'; $wb['purge_trash_days_txt'] = 'Purge Trash automatically after X days'; $wb['tooltip_purge_trash_days_txt'] = '0 = disabled'; $wb['purge_junk_days_txt'] = 'Purge Junk automatically after X days'; diff --git a/interface/web/mail/lib/lang/en_mail_user_list.lng b/interface/web/mail/lib/lang/en_mail_user_list.lng index c7b0a43ad20c7b928fe1fd075549e11461d74f99..bf905ed40ac64cd90ebd0ba86e38559c2ed64c8f 100644 --- a/interface/web/mail/lib/lang/en_mail_user_list.lng +++ b/interface/web/mail/lib/lang/en_mail_user_list.lng @@ -1,12 +1,13 @@ <?php -$wb["list_head_txt"] = 'Mailbox'; -$wb["email_txt"] = 'Email'; -$wb["autoresponder_txt"] = 'Autoresponder'; -$wb["add_new_record_txt"] = 'Add new Mailbox'; -$wb["name_txt"] = 'Realname'; -$wb["login_txt"] = 'Login'; -$wb["postfix_txt"] = 'Receiving'; -$wb["disablesmtp_txt"] = 'SMTP (sending)'; -$wb["disableimap_txt"] = 'IMAP'; -$wb["disablepop3_txt"] = 'POP3'; -?> \ No newline at end of file +$wb['list_head_txt'] = 'Mailbox'; +$wb['email_txt'] = 'Email'; +$wb['autoresponder_txt'] = 'Autoresponder'; +$wb['add_new_record_txt'] = 'Add new Mailbox'; +$wb['name_txt'] = 'Realname'; +$wb['login_txt'] = 'Login'; +$wb['postfix_txt'] = 'Receiving'; +$wb['disablesmtp_txt'] = 'SMTP (sending)'; +$wb['disabledeliver_txt'] = 'INBOX'; +$wb['disableimap_txt'] = 'IMAP'; +$wb['disablepop3_txt'] = 'POP3'; +?> diff --git a/interface/web/mail/lib/lang/es_mail_user.lng b/interface/web/mail/lib/lang/es_mail_user.lng index be329c304aea80d0a0b36022f52716c71dd7081c..6757df0854e68d5f47114734fce062c7130227ed 100644 --- a/interface/web/mail/lib/lang/es_mail_user.lng +++ b/interface/web/mail/lib/lang/es_mail_user.lng @@ -4,7 +4,6 @@ $wb['active_txt'] = 'Habilitado'; $wb['autoresponder_active'] = 'Activar auto respuesta'; $wb['autoresponder_end_date_isgreater'] = 'Debe indicar la fecha de finalización y esta debe ser mayor a la de inicio.'; $wb['autoresponder_end_date_txt'] = 'Finaliza el'; -$wb['autoresponder_start_date_is_required'] = 'Cuando se activa la auto respuesta se debe definir una fecha de inicio.'; $wb['autoresponder_start_date_ispast'] = 'La fecha de inicio no puede estar en el pasado.'; $wb['autoresponder_start_date_txt'] = 'Comienza el'; $wb['autoresponder_subject'] = 'Estoy fuera de la oficina'; @@ -22,6 +21,9 @@ $wb['daily_backup_txt'] = 'Diariamente'; $wb['disableimap_txt'] = 'Deshabilitar IMAP'; $wb['disablepop3_txt'] = 'Deshabilitar POP3'; $wb['disablesmtp_txt'] = 'Deshabilitar SMTP (envÃo)'; +$wb['tooltip_disablesmtp_txt'] = 'Disables mail submission from this mail account.'; +$wb['disabledeliver_txt'] = 'Disable (local) delivering'; +$wb['tooltip_disabledeliver_txt'] = 'Disables delivery to INBOX, and processing by mail filters and sieve scripts. Mail forwards to \'Send copy to\' address.'; $wb['domain_txt'] = 'Dominio'; $wb['duplicate_alias_or_forward_txt'] = 'Ya existe un alias o reenvÃo con esta dirección de correo.'; $wb['email_error_isascii'] = 'Por favor, no use caracteres unicode especiales en su contraseña. Esto puede conllevar a errores en su cliente de correo.'; @@ -40,6 +42,9 @@ $wb['login_txt'] = 'Iniciar Sesión'; $wb['maildir_txt'] = 'Dirección de correo'; $wb['monthly_backup_txt'] = 'Mensualmente'; $wb['move_junk_txt'] = 'Mover correo basura (spam) a la carpeta Basura (Junk).'; +$wb["move_junk_y_txt"] = 'Move first, before custom filters.'; +$wb["move_junk_a_txt"] = 'Move last, after custom filters.'; +$wb["move_junk_n_txt"] = 'Do not move Spam Emails to Junk folder.'; $wb['name_optional_txt'] = '(Opcional)'; $wb['name_txt'] = 'Nombre'; $wb['no_backup_txt'] = 'Sin copia de seguridad'; @@ -52,12 +57,13 @@ $wb['password_strength_txt'] = 'Seguridad de la contraseña'; $wb['password_txt'] = 'Contraseña'; $wb['policy_txt'] = 'Filtro de spam'; $wb['postfix_txt'] = 'Habilitar recepción'; +$wb['tooltip_postfix_txt'] = 'Allows incoming mail to this address.'; $wb['quota_error_isint'] = 'La cuota debe ser un número.'; $wb['quota_error_value'] = 'La cuota es inválida. Los valores permitidos son: 0 para cuota ilimitada o una cantidad superior a 1'; $wb['quota_txt'] = 'Cuota (0 para ilimitada)'; $wb['repeat_password_txt'] = 'Repetir contraseña'; $wb['sender_cc_error_isemail'] = 'El campo -Enviar copia a- no contiene una dirección de correo válida'; -$wb['sender_cc_note_txt'] = '(Separe múltiples cuentas de correo con comas)'; +$wb['sender_cc_note_txt'] = '(One email address only)'; $wb['sender_cc_txt'] = 'Enviar copia saliente a'; $wb['server_id_txt'] = 'id_del_servidor'; $wb['weekly_backup_txt'] = 'Semanalmente'; diff --git a/interface/web/mail/lib/lang/es_mail_user_list.lng b/interface/web/mail/lib/lang/es_mail_user_list.lng index 43a09d2808f1b2e2572f579f323bf6d27efa2ef3..19a2129307f9836ef0afa08990f6f057e8080321 100644 --- a/interface/web/mail/lib/lang/es_mail_user_list.lng +++ b/interface/web/mail/lib/lang/es_mail_user_list.lng @@ -4,6 +4,7 @@ $wb['autoresponder_txt'] = 'Auto respuesta'; $wb['disableimap_txt'] = 'IMAP'; $wb['disablepop3_txt'] = 'POP3'; $wb['disablesmtp_txt'] = 'SMTP (envÃo)'; +$wb['disabledeliver_txt'] = 'INBOX'; $wb['email_txt'] = 'Correo'; $wb['list_head_txt'] = 'Buzón'; $wb['login_txt'] = 'Entrar'; diff --git a/interface/web/mail/lib/lang/fi_mail_user.lng b/interface/web/mail/lib/lang/fi_mail_user.lng index 45ea1d9b8b8b61719e8d2c4a81fe05ae64f03547..ed3635c1ae8d7337f189604609e5cab5709e91f8 100644 --- a/interface/web/mail/lib/lang/fi_mail_user.lng +++ b/interface/web/mail/lib/lang/fi_mail_user.lng @@ -15,6 +15,7 @@ $wb['server_id_txt'] = 'Palvelimen tunnus'; $wb['password_txt'] = 'Salasana'; $wb['maildir_txt'] = 'Postikansio'; $wb['postfix_txt'] = 'Salli vastaanotto'; +$wb['tooltip_postfix_txt'] = 'Allows incoming mail to this address.'; $wb['greylisting_txt'] = 'Enable greylisting'; $wb['access_txt'] = 'Salli yhteys'; $wb['policy_txt'] = 'Roskapostisuodatin'; @@ -31,6 +32,9 @@ $wb['autoresponder_start_date_ispast'] = 'Aloituspäivä ei voi olla menneisyyde $wb['autoresponder_end_date_txt'] = 'Lopetuspäivä'; $wb['autoresponder_end_date_isgreater'] = 'Lopetuspäivän pitää olla myöhempi kuin aloituspäivä.'; $wb['move_junk_txt'] = 'Siirrä roskapostit Junk-kansioon'; +$wb["move_junk_y_txt"] = 'Move first, before custom filters.'; +$wb["move_junk_a_txt"] = 'Move last, after custom filters.'; +$wb["move_junk_n_txt"] = 'Do not move Spam Emails to Junk folder.'; $wb['name_txt'] = 'Oikea nimi'; $wb['name_optional_txt'] = '(Valinnainen)'; $wb['autoresponder_active'] = 'Ota lomavastaaja käyttöön'; @@ -56,11 +60,14 @@ $wb['weekly_backup_txt'] = 'Weekly'; $wb['monthly_backup_txt'] = 'Monthly'; $wb['email_error_isascii'] = 'Please do not use special unicode characters for your password. This could lead to problems with your mail client.'; $wb['cc_note_txt'] = '(Separate multiple email addresses with commas)'; -$wb['disablesmtp_txt'] = 'Disable SMTP (sending)'; +$wb['disablesmtp_txt'] = 'Disable sending'; +$wb['tooltip_disablesmtp_txt'] = 'Disables mail submission from this mail account.'; +$wb['disabledeliver_txt'] = 'Disable (local) delivering'; +$wb['tooltip_disabledeliver_txt'] = 'Disables delivery to INBOX, and processing by mail filters and sieve scripts. Mail forwards to \'Send copy to\' address.'; $wb['autoresponder_start_date_is_required'] = 'Start date must be set when Autoresponder is enabled.'; $wb['sender_cc_txt'] = 'Send outgoing BCC to'; $wb['sender_cc_error_isemail'] = 'The -Send outgoing copy to- field does not contain a valid email address'; -$wb['sender_cc_note_txt'] = '(Separate multiple email addresses with commas)'; +$wb['sender_cc_note_txt'] = '(One email address only)'; $wb['password_click_to_set_txt'] = 'Click to set'; $wb['purge_trash_days_txt'] = 'Purge Trash automatically after X days'; $wb['tooltip_purge_trash_days_txt'] = '0 = disabled'; diff --git a/interface/web/mail/lib/lang/fi_mail_user_list.lng b/interface/web/mail/lib/lang/fi_mail_user_list.lng index ee3f2cec4599f0a3cd03681a6e676b594c78336b..fefb8b0b79a1691af9bb13ad984cb8f2c4b91d0e 100644 --- a/interface/web/mail/lib/lang/fi_mail_user_list.lng +++ b/interface/web/mail/lib/lang/fi_mail_user_list.lng @@ -7,6 +7,7 @@ $wb['name_txt'] = 'Oikea nimi'; $wb['login_txt'] = 'Login'; $wb['postfix_txt'] = 'Receiving'; $wb['disablesmtp_txt'] = 'SMTP (sending)'; +$wb['disabledeliver_txt'] = 'INBOX'; $wb['disableimap_txt'] = 'IMAP'; $wb['disablepop3_txt'] = 'POP3'; ?> diff --git a/interface/web/mail/lib/lang/fr_mail_user.lng b/interface/web/mail/lib/lang/fr_mail_user.lng index 8df58233a3b06112246faaef12e297bd4632954e..cce8f0a8a16c1dfac899912fd074e08966bc26f6 100644 --- a/interface/web/mail/lib/lang/fr_mail_user.lng +++ b/interface/web/mail/lib/lang/fr_mail_user.lng @@ -16,6 +16,7 @@ $wb['server_id_txt'] = 'ID Serveur'; $wb['password_txt'] = 'Mot de passe'; $wb['maildir_txt'] = 'Maildir'; $wb['postfix_txt'] = 'Activer la réception'; +$wb['tooltip_postfix_txt'] = 'Allows incoming mail to this address.'; $wb['access_txt'] = 'Activer l’accès'; $wb['policy_txt'] = 'Filtre antispam'; $wb['inherit_policy'] = '- Inherit domain setting -'; @@ -30,6 +31,9 @@ $wb['autoresponder_end_date_txt'] = 'Terminer le'; $wb['autoresponder_end_date_isgreater'] = 'La date de fin doit être saisie et doit être ultérieure à la date de début.'; $wb['quota_error_value'] = 'Valeur de quota invalide. Les valeurs de quota autorisées sont : 0 pour illimité ou nombres > 1'; $wb['move_junk_txt'] = 'Déplacer le spam vers le dossier Junk'; +$wb["move_junk_y_txt"] = 'Move first, before custom filters.'; +$wb["move_junk_a_txt"] = 'Move last, after custom filters.'; +$wb["move_junk_n_txt"] = 'Do not move Spam Emails to Junk folder.'; $wb['name_txt'] = 'Nom véritable'; $wb['name_optional_txt'] = '(Optionnel)'; $wb['autoresponder_active'] = 'Activer le répondeur automatique'; @@ -48,9 +52,11 @@ $wb['repeat_password_txt'] = 'Répéter le mot de passe'; $wb['password_mismatch_txt'] = 'Les mots de passe ne correspondent pas.'; $wb['password_match_txt'] = 'Les mots de passe correspondent.'; $wb['disablesmtp_txt'] = 'Désactiver SMTP (envoi)'; +$wb['tooltip_disablesmtp_txt'] = 'Disables mail submission from this mail account.'; +$wb['disabledeliver_txt'] = 'Disable (local) delivering'; +$wb['tooltip_disabledeliver_txt'] = 'Disables delivery to INBOX, and processing by mail filters and sieve scripts. Mail forwards to \'Send copy to\' address.'; $wb['email_error_isascii'] = 'Merci de ne pas utiliser de caractères spéciaux Unicode dans votre mot de passe. Ceci pourrait engendrer des problèmes avec votre client mail.'; $wb['cc_note_txt'] = '(Séparer les adresses e-mail multiples par des virgules)'; -$wb['autoresponder_start_date_is_required'] = 'Une date de démarrage doit être renseignée quand le répondeur automatique est activé.'; $wb['greylisting_txt'] = 'Activer le greylisting'; $wb['sender_cc_txt'] = 'Envoyer une copie des mails sortants à '; $wb['sender_cc_error_isemail'] = 'Le champ -Envoyer une copie des mails sortants à - no contiens pas une adresse e-mail valide'; @@ -60,7 +66,7 @@ $wb['no_backup_txt'] = 'Pas de backup'; $wb['daily_backup_txt'] = 'Journalier'; $wb['weekly_backup_txt'] = 'Hebdomadaire'; $wb['monthly_backup_txt'] = 'Mensuel'; -$wb['sender_cc_note_txt'] = '(Séparer les adresses e-mail multiples par des virgules)'; +$wb['sender_cc_note_txt'] = '(One email address only)'; $wb['password_click_to_set_txt'] = 'Cliquez pour définir'; $wb['purge_trash_days_txt'] = 'Purge Trash automatically after X days'; $wb['tooltip_purge_trash_days_txt'] = '0 = disabled'; diff --git a/interface/web/mail/lib/lang/fr_mail_user_list.lng b/interface/web/mail/lib/lang/fr_mail_user_list.lng index 0d4152913afd3a5fdc046fde44af994bb46f3002..79e999b6396c9366044d90465d9f7f6f6e27b9cd 100644 --- a/interface/web/mail/lib/lang/fr_mail_user_list.lng +++ b/interface/web/mail/lib/lang/fr_mail_user_list.lng @@ -7,6 +7,7 @@ $wb['name_txt'] = 'Nom véritable'; $wb['login_txt'] = 'Nom d’utilisateur'; $wb['postfix_txt'] = 'Receiving'; $wb['disablesmtp_txt'] = 'SMTP (sending)'; +$wb['disabledeliver_txt'] = 'INBOX'; $wb['disableimap_txt'] = 'IMAP'; $wb['disablepop3_txt'] = 'POP3'; ?> diff --git a/interface/web/mail/lib/lang/hr_mail_user.lng b/interface/web/mail/lib/lang/hr_mail_user.lng index 170aaa6b61e5f8c1565c8974deb430c3526feccf..0cb1b91849c50d752b0d3a3ddd9da442d0dc0cea 100644 --- a/interface/web/mail/lib/lang/hr_mail_user.lng +++ b/interface/web/mail/lib/lang/hr_mail_user.lng @@ -10,7 +10,7 @@ $wb['autoresponder_text_txt'] = 'Text'; $wb['autoresponder_txt'] = 'Aktivno'; $wb['autoresponder_start_date_txt'] = 'Start on'; $wb['autoresponder_end_date_txt'] = 'End by'; -$wb['autoresponder_end_date_isgreater'] = 'End date must be set and be later than start date.'; +$wb['autoresponder_end_date_isgreater'] = 'End date must be later than start date.'; $wb['no_domain_perm'] = 'You have no permission for this domain.'; $wb['error_no_pwd'] = 'Password is empty.'; $wb['quota_error_isint'] = 'Mailbox size must be a number.'; @@ -20,6 +20,7 @@ $wb['password_txt'] = 'Å ifra'; $wb['password_click_to_set_txt'] = 'Click to set'; $wb['maildir_txt'] = 'Maildir'; $wb['postfix_txt'] = 'Enable Receiving'; +$wb['tooltip_postfix_txt'] = 'Allows incoming mail to this address.'; $wb['greylisting_txt'] = 'Enable greylisting'; $wb['access_txt'] = 'Enable Access'; $wb['policy_txt'] = 'Spamfilter'; @@ -31,6 +32,9 @@ $wb['disablepop3_txt'] = 'Disable POP3'; $wb['duplicate_alias_or_forward_txt'] = 'There is already an alias or forward with this email address.'; $wb['quota_error_value'] = 'Invalid quota value. Allowed values are: 0 for unlimited or numbers > 1'; $wb['move_junk_txt'] = 'Move Spam Emails to Junk directory'; +$wb["move_junk_y_txt"] = 'Move first, before custom filters.'; +$wb["move_junk_a_txt"] = 'Move last, after custom filters.'; +$wb["move_junk_n_txt"] = 'Do not move Spam Emails to Junk folder.'; $wb['name_txt'] = 'Realname'; $wb['name_optional_txt'] = '(Optional)'; $wb['autoresponder_active'] = 'Enable the autoresponder'; @@ -53,7 +57,10 @@ $wb['weekly_backup_txt'] = 'Weekly'; $wb['monthly_backup_txt'] = 'Monthly'; $wb['email_error_isascii'] = 'Please do not use special unicode characters for your password. This could lead to problems with your mail client.'; $wb['cc_note_txt'] = '(Separate multiple email addresses with commas)'; -$wb['disablesmtp_txt'] = 'Disable SMTP (sending)'; +$wb['disablesmtp_txt'] = 'Disable sending'; +$wb['tooltip_disablesmtp_txt'] = 'Disables mail submission from this mail account.'; +$wb['disabledeliver_txt'] = 'Disable (local) delivering'; +$wb['tooltip_disabledeliver_txt'] = 'Disables delivery to INBOX, and processing by mail filters and sieve scripts. Mail forwards to \'Send copy to\' address.'; $wb['autoresponder_start_date_is_required'] = 'Start date must be set when Autoresponder is enabled.'; $wb['sender_cc_txt'] = 'Send outgoing BCC to'; $wb['sender_cc_error_isemail'] = 'The -Send outgoing copy to- field does not contain a valid email address'; @@ -61,7 +68,7 @@ $wb['generate_password_txt'] = 'Generate Password'; $wb['repeat_password_txt'] = 'Repeat Password'; $wb['password_mismatch_txt'] = 'The passwords do not match.'; $wb['password_match_txt'] = 'The passwords do match.'; -$wb['sender_cc_note_txt'] = '(Separate multiple email addresses with commas)'; +$wb['sender_cc_note_txt'] = '(One email address only)'; $wb['purge_trash_days_txt'] = 'Purge Trash automatically after X days'; $wb['tooltip_purge_trash_days_txt'] = '0 = disabled'; $wb['purge_junk_days_txt'] = 'Purge Junk automatically after X days'; 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 4441ecf5e452a04ba0b909f08cae19c545f10077..33fd0106a8df7502e0c0b4fdb92c7a0f3b1b319b 100644 --- a/interface/web/mail/lib/lang/hr_mail_user_filter.lng +++ b/interface/web/mail/lib/lang/hr_mail_user_filter.lng @@ -11,6 +11,7 @@ $wb['limit_mailfilter_txt'] = 'IskoriÅ¡ten je maksimalni broj mail filtera.'; $wb['subject_txt'] = 'Naslov'; $wb['from_txt'] = 'PoÅ¡iljatelj'; $wb['to_txt'] = 'Primatelj'; +$wb['list_id_txt'] = 'List ID'; $wb['contains_txt'] = 'Sadrži'; $wb['is_txt'] = 'Is'; $wb['begins_with_txt'] = 'PoÄinje sa'; diff --git a/interface/web/mail/lib/lang/hr_mail_user_list.lng b/interface/web/mail/lib/lang/hr_mail_user_list.lng index 498570c344a4a38e6fe37b2c305b2f82455d441e..1c27b725d3aa161d1d74c60bd6e668a493bf4db2 100644 --- a/interface/web/mail/lib/lang/hr_mail_user_list.lng +++ b/interface/web/mail/lib/lang/hr_mail_user_list.lng @@ -7,6 +7,7 @@ $wb['name_txt'] = 'Ime'; $wb['login_txt'] = 'Prijava'; $wb['postfix_txt'] = 'Receiving'; $wb['disablesmtp_txt'] = 'SMTP (sending)'; +$wb['disabledeliver_txt'] = 'INBOX'; $wb['disableimap_txt'] = 'IMAP'; $wb['disablepop3_txt'] = 'POP3'; ?> diff --git a/interface/web/mail/lib/lang/hu_mail_user.lng b/interface/web/mail/lib/lang/hu_mail_user.lng index 65962cd21c27eca9138d460d27e8fdb495692281..610f40b4ba8b0342590967991a9512ae97d19d55 100644 --- a/interface/web/mail/lib/lang/hu_mail_user.lng +++ b/interface/web/mail/lib/lang/hu_mail_user.lng @@ -16,6 +16,7 @@ $wb['password_txt'] = 'Jelszó'; $wb['password_click_to_set_txt'] = 'Click to set'; $wb['maildir_txt'] = 'levelezÅ‘láda'; $wb['postfix_txt'] = 'BejövÅ‘ engedélyezés'; +$wb['tooltip_postfix_txt'] = 'Allows incoming mail to this address.'; $wb['greylisting_txt'] = 'Enable greylisting'; $wb['access_txt'] = 'Hozzáférés engelyezés'; $wb['policy_txt'] = 'Spam szűrÅ‘'; @@ -30,8 +31,11 @@ $wb['quota_error_value'] = 'Invalid quota value. Allowed values are: 0 for unlim $wb['autoresponder_start_date_txt'] = 'Start on'; $wb['autoresponder_start_date_ispast'] = 'Start date cannot be in the past.'; $wb['autoresponder_end_date_txt'] = 'End by'; -$wb['autoresponder_end_date_isgreater'] = 'End date must be set and be later than start date.'; +$wb['autoresponder_end_date_isgreater'] = 'End date must be later than start date.'; $wb['move_junk_txt'] = 'Move Spam Emails to Junk directory'; +$wb["move_junk_y_txt"] = 'Move first, before custom filters.'; +$wb["move_junk_a_txt"] = 'Move last, after custom filters.'; +$wb["move_junk_n_txt"] = 'Do not move Spam Emails to Junk folder.'; $wb['name_txt'] = 'Név'; $wb['name_optional_txt'] = '(Opcionális)'; $wb['autoresponder_active'] = 'Automatikus válasz engedélyezése'; @@ -57,11 +61,14 @@ $wb['weekly_backup_txt'] = 'Weekly'; $wb['monthly_backup_txt'] = 'Monthly'; $wb['email_error_isascii'] = 'Please do not use special unicode characters for your password. This could lead to problems with your mail client.'; $wb['cc_note_txt'] = '(Separate multiple email addresses with commas)'; -$wb['disablesmtp_txt'] = 'Disable SMTP (sending)'; +$wb['disablesmtp_txt'] = 'Disable sending'; +$wb['tooltip_disablesmtp_txt'] = 'Disables mail submission from this mail account.'; +$wb['disabledeliver_txt'] = 'Disable (local) delivering'; +$wb['tooltip_disabledeliver_txt'] = 'Disables delivery to INBOX, and processing by mail filters and sieve scripts. Mail forwards to \'Send copy to\' address.'; $wb['autoresponder_start_date_is_required'] = 'Start date must be set when Autoresponder is enabled.'; $wb['sender_cc_txt'] = 'Send outgoing BCC to'; $wb['sender_cc_error_isemail'] = 'The -Send outgoing copy to- field does not contain a valid email address'; -$wb['sender_cc_note_txt'] = '(Separate multiple email addresses with commas)'; +$wb['sender_cc_note_txt'] = '(One email address only)'; $wb['purge_trash_days_txt'] = 'Purge Trash automatically after X days'; $wb['tooltip_purge_trash_days_txt'] = '0 = disabled'; $wb['purge_junk_days_txt'] = 'Purge Junk automatically after X days'; 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 750f3c1ae54f04cd67f345c913f771788407ebf1..a3db584920c97c0a95b53a8b05bc10fdb11c4489 100644 --- a/interface/web/mail/lib/lang/hu_mail_user_filter.lng +++ b/interface/web/mail/lib/lang/hu_mail_user_filter.lng @@ -9,6 +9,7 @@ $wb['source_txt'] = 'Forrás'; $wb['subject_txt'] = 'Tárgy'; $wb['from_txt'] = 'From'; $wb['to_txt'] = 'To'; +$wb['list_id_txt'] = 'List ID'; $wb['contains_txt'] = 'Tartalmazza'; $wb['is_txt'] = 'Is'; $wb['begins_with_txt'] = 'Begins with'; diff --git a/interface/web/mail/lib/lang/hu_mail_user_list.lng b/interface/web/mail/lib/lang/hu_mail_user_list.lng index 8bf44e936cee9af091a9fce8c6546b8f84220357..7f1ec6265bc918a376356799e5515aeba5b185cb 100644 --- a/interface/web/mail/lib/lang/hu_mail_user_list.lng +++ b/interface/web/mail/lib/lang/hu_mail_user_list.lng @@ -7,6 +7,7 @@ $wb['name_txt'] = 'Név'; $wb['login_txt'] = 'Login'; $wb['postfix_txt'] = 'Receiving'; $wb['disablesmtp_txt'] = 'SMTP (sending)'; +$wb['disabledeliver_txt'] = 'INBOX'; $wb['disableimap_txt'] = 'IMAP'; $wb['disablepop3_txt'] = 'POP3'; ?> diff --git a/interface/web/mail/lib/lang/id_mail_user.lng b/interface/web/mail/lib/lang/id_mail_user.lng index 3bedbd9b9362c3a21cfbd7f0a239c268a493920c..e4daf311f334f71992a3d9a3d2040c1197c1c61b 100644 --- a/interface/web/mail/lib/lang/id_mail_user.lng +++ b/interface/web/mail/lib/lang/id_mail_user.lng @@ -21,6 +21,7 @@ $wb['password_txt'] = 'Kata Sandi'; $wb['password_click_to_set_txt'] = 'Click to set'; $wb['maildir_txt'] = 'Maildir'; $wb['postfix_txt'] = 'Dapat Menerima'; +$wb['tooltip_postfix_txt'] = 'Allows incoming mail to this address.'; $wb['greylisting_txt'] = 'Enable greylisting'; $wb['access_txt'] = 'Dapat Mengakses'; $wb['policy_txt'] = 'Spamfilter'; @@ -32,6 +33,9 @@ $wb['disablepop3_txt'] = 'Nonaktifkan POP3'; $wb['duplicate_alias_or_forward_txt'] = 'Sudah ada alias atau forward untuk alamat email ini.'; $wb['quota_error_value'] = 'Nilai kuota tidak valid. Nilai yang diperbolehkan adalah: 0 untuk tak terbatas atau angka > 1'; $wb['move_junk_txt'] = 'Pindahkan Email Spam ke direktori Junk'; +$wb["move_junk_y_txt"] = 'Move first, before custom filters.'; +$wb["move_junk_a_txt"] = 'Move last, after custom filters.'; +$wb["move_junk_n_txt"] = 'Do not move Spam Emails to Junk folder.'; $wb['name_txt'] = 'Nama Lengkap'; $wb['name_optional_txt'] = '(Opsional)'; $wb['autoresponder_active'] = 'Aktifkan Penjawab Otomatis'; @@ -57,11 +61,14 @@ $wb['weekly_backup_txt'] = 'Weekly'; $wb['monthly_backup_txt'] = 'Monthly'; $wb['email_error_isascii'] = 'Please do not use special unicode characters for your password. This could lead to problems with your mail client.'; $wb['cc_note_txt'] = '(Separate multiple email addresses with commas)'; -$wb['disablesmtp_txt'] = 'Disable SMTP (sending)'; +$wb['disablesmtp_txt'] = 'Disable sending'; +$wb['tooltip_disablesmtp_txt'] = 'Disables mail submission from this mail account.'; +$wb['disabledeliver_txt'] = 'Disable (local) delivering'; +$wb['tooltip_disabledeliver_txt'] = 'Disables delivery to INBOX, and processing by mail filters and sieve scripts. Mail forwards to \'Send copy to\' address.'; $wb['autoresponder_start_date_is_required'] = 'Start date must be set when Autoresponder is enabled.'; $wb['sender_cc_txt'] = 'Send outgoing BCC to'; $wb['sender_cc_error_isemail'] = 'The -Send outgoing copy to- field does not contain a valid email address'; -$wb['sender_cc_note_txt'] = '(Separate multiple email addresses with commas)'; +$wb['sender_cc_note_txt'] = '(One email address only)'; $wb['purge_trash_days_txt'] = 'Purge Trash automatically after X days'; $wb['tooltip_purge_trash_days_txt'] = '0 = disabled'; $wb['purge_junk_days_txt'] = 'Purge Junk automatically after X days'; diff --git a/interface/web/mail/lib/lang/id_mail_user_list.lng b/interface/web/mail/lib/lang/id_mail_user_list.lng index 49a2afe94372b918bd8a95206bd979e2241ec89b..3127853a0ee41958e728425603b6a7ffe93b37f2 100644 --- a/interface/web/mail/lib/lang/id_mail_user_list.lng +++ b/interface/web/mail/lib/lang/id_mail_user_list.lng @@ -7,6 +7,7 @@ $wb['name_txt'] = 'Nama Lengkap'; $wb['login_txt'] = 'Login'; $wb['postfix_txt'] = 'Receiving'; $wb['disablesmtp_txt'] = 'SMTP (sending)'; +$wb['disabledeliver_txt'] = 'INBOX'; $wb['disableimap_txt'] = 'IMAP'; $wb['disablepop3_txt'] = 'POP3'; ?> diff --git a/interface/web/mail/lib/lang/it_mail_user.lng b/interface/web/mail/lib/lang/it_mail_user.lng index a1a0f8cfd5d0b8d6e9667afec7b51121f77da6e0..34b523f5519cc5f2dd6222d9be95123ed0513fb0 100644 --- a/interface/web/mail/lib/lang/it_mail_user.lng +++ b/interface/web/mail/lib/lang/it_mail_user.lng @@ -17,6 +17,7 @@ $wb['password_txt'] = 'password'; $wb['password_click_to_set_txt'] = 'Click to set'; $wb['maildir_txt'] = 'maildir'; $wb['postfix_txt'] = 'Abilita ricezione'; +$wb['tooltip_postfix_txt'] = 'Allows incoming mail to this address.'; $wb['access_txt'] = 'Abilita indirizzo'; $wb['policy_txt'] = 'Spamfilter'; $wb['inherit_policy'] = '- Inherit domain setting -'; @@ -31,6 +32,9 @@ $wb['autoresponder_start_date_ispast'] = 'La data di avvio no può essere anterg $wb['autoresponder_end_date_txt'] = 'Termina il'; $wb['autoresponder_end_date_isgreater'] = 'La data termine deve essere impostata e successiva al giorno di inizio.'; $wb['move_junk_txt'] = 'Sposta Email di Spam nella cartella di spam Junk'; +$wb["move_junk_y_txt"] = 'Move first, before custom filters.'; +$wb["move_junk_a_txt"] = 'Move last, after custom filters.'; +$wb["move_junk_n_txt"] = 'Do not move Spam Emails to Junk folder.'; $wb['name_txt'] = 'Nome vero'; $wb['name_optional_txt'] = '(Opzionale)'; $wb['autoresponder_active'] = 'Abilita autorisponditore'; @@ -51,6 +55,9 @@ $wb['password_match_txt'] = 'Le passwords coincidono.'; $wb['email_error_isascii'] = 'Non utilizzare caratteri speciali unicode per la password. Potresti avere problemi con il tuo client di psota.'; $wb['cc_note_txt'] = '(Separa indirizzi email multipli con la virgola)'; $wb['disablesmtp_txt'] = 'Disabilita SMTP (trasmissione)'; +$wb['tooltip_disablesmtp_txt'] = 'Disables mail submission from this mail account.'; +$wb['disabledeliver_txt'] = 'Disable (local) delivering'; +$wb['tooltip_disabledeliver_txt'] = 'Disables delivery to INBOX, and processing by mail filters and sieve scripts. Mail forwards to \'Send copy to\' address.'; $wb['autoresponder_start_date_is_required'] = 'Start date must be set when Autoresponder is enabled.'; $wb['greylisting_txt'] = 'Enable greylisting'; $wb['sender_cc_txt'] = 'Send outgoing BCC to'; @@ -61,7 +68,7 @@ $wb['no_backup_txt'] = 'No backup'; $wb['daily_backup_txt'] = 'Daily'; $wb['weekly_backup_txt'] = 'Weekly'; $wb['monthly_backup_txt'] = 'Monthly'; -$wb['sender_cc_note_txt'] = '(Separate multiple email addresses with commas)'; +$wb['sender_cc_note_txt'] = '(One email address only)'; $wb['purge_trash_days_txt'] = 'Purge Trash automatically after X days'; $wb['tooltip_purge_trash_days_txt'] = '0 = disabled'; $wb['purge_junk_days_txt'] = 'Purge Junk automatically after X days'; 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 bad797d6d5c8ef195cc5da3d89913c40a6bedd77..827f906345186d111bb3af2b77e2d494f7f0fb2c 100644 --- a/interface/web/mail/lib/lang/it_mail_user_filter.lng +++ b/interface/web/mail/lib/lang/it_mail_user_filter.lng @@ -11,6 +11,7 @@ $wb['limit_mailfilter_txt'] = 'The max. number of mailfilters is reached.'; $wb['subject_txt'] = 'Oggetto'; $wb['from_txt'] = 'Da'; $wb['to_txt'] = 'A'; +$wb['list_id_txt'] = 'List ID'; $wb['contains_txt'] = 'Contiene'; $wb['is_txt'] = 'è'; $wb['begins_with_txt'] = 'Inizia con'; diff --git a/interface/web/mail/lib/lang/it_mail_user_list.lng b/interface/web/mail/lib/lang/it_mail_user_list.lng index 098cb1a1626ecbc0bdd1dbe1983818ad52eea332..87038b875e6ea048cbafe81a0ad6f18b8035ead6 100644 --- a/interface/web/mail/lib/lang/it_mail_user_list.lng +++ b/interface/web/mail/lib/lang/it_mail_user_list.lng @@ -7,6 +7,7 @@ $wb['name_txt'] = 'Nome reale'; $wb['login_txt'] = 'Accedi'; $wb['postfix_txt'] = 'Receiving'; $wb['disablesmtp_txt'] = 'SMTP (sending)'; +$wb['disabledeliver_txt'] = 'INBOX'; $wb['disableimap_txt'] = 'IMAP'; $wb['disablepop3_txt'] = 'POP3'; ?> diff --git a/interface/web/mail/lib/lang/ja_mail_user.lng b/interface/web/mail/lib/lang/ja_mail_user.lng index b58b9d13dde21f0e92a85c820c85595b4c064351..7b6b48dca49915804de56b50f85551a43d09a65d 100644 --- a/interface/web/mail/lib/lang/ja_mail_user.lng +++ b/interface/web/mail/lib/lang/ja_mail_user.lng @@ -17,6 +17,7 @@ $wb['password_txt'] = 'パスワード'; $wb['password_click_to_set_txt'] = 'Click to set'; $wb['maildir_txt'] = 'メールディレクトリ'; $wb['postfix_txt'] = 'メールをå—ä¿¡ã™ã‚‹'; +$wb['tooltip_postfix_txt'] = 'Allows incoming mail to this address.'; $wb['greylisting_txt'] = 'Enable greylisting'; $wb['access_txt'] = 'アクセスを許å¯ã™ã‚‹'; $wb['policy_txt'] = 'スパムフィルター'; @@ -30,8 +31,11 @@ $wb['quota_error_value'] = '容é‡ã®å€¤ãŒä¸æ£ã§ã™ã€‚ 無制é™ã«ã™ã‚‹å ´ $wb['autoresponder_start_date_txt'] = 'Start on'; $wb['autoresponder_start_date_ispast'] = 'Start date cannot be in the past.'; $wb['autoresponder_end_date_txt'] = 'End by'; -$wb['autoresponder_end_date_isgreater'] = 'End date must be set and be later than start date.'; +$wb['autoresponder_end_date_isgreater'] = 'End date must be later than start date.'; $wb['move_junk_txt'] = 'Move Spam Emails to Junk directory'; +$wb["move_junk_y_txt"] = 'Move first, before custom filters.'; +$wb["move_junk_a_txt"] = 'Move last, after custom filters.'; +$wb["move_junk_n_txt"] = 'Do not move Spam Emails to Junk folder.'; $wb['name_txt'] = 'Realname'; $wb['name_optional_txt'] = '(Optional)'; $wb['autoresponder_active'] = 'Enable the autoresponder'; @@ -57,11 +61,14 @@ $wb['weekly_backup_txt'] = 'Weekly'; $wb['monthly_backup_txt'] = 'Monthly'; $wb['email_error_isascii'] = 'Please do not use special unicode characters for your password. This could lead to problems with your mail client.'; $wb['cc_note_txt'] = '(Separate multiple email addresses with commas)'; -$wb['disablesmtp_txt'] = 'Disable SMTP (sending)'; +$wb['disablesmtp_txt'] = 'Disable sending'; +$wb['tooltip_disablesmtp_txt'] = 'Disables mail submission from this mail account.'; +$wb['disabledeliver_txt'] = 'Disable (local) delivering'; +$wb['tooltip_disabledeliver_txt'] = 'Disables delivery to INBOX, and processing by mail filters and sieve scripts. Mail forwards to \'Send copy to\' address.'; $wb['autoresponder_start_date_is_required'] = 'Start date must be set when Autoresponder is enabled.'; $wb['sender_cc_txt'] = 'Send outgoing BCC to'; $wb['sender_cc_error_isemail'] = 'The -Send outgoing copy to- field does not contain a valid email address'; -$wb['sender_cc_note_txt'] = '(Separate multiple email addresses with commas)'; +$wb['sender_cc_note_txt'] = '(One email address only)'; $wb['purge_trash_days_txt'] = 'Purge Trash automatically after X days'; $wb['tooltip_purge_trash_days_txt'] = '0 = disabled'; $wb['purge_junk_days_txt'] = 'Purge Junk automatically after X days'; diff --git a/interface/web/mail/lib/lang/ja_mail_user_list.lng b/interface/web/mail/lib/lang/ja_mail_user_list.lng index 0bb531f78596ebc6754618202dd477a7f65aebdd..bf905ed40ac64cd90ebd0ba86e38559c2ed64c8f 100644 --- a/interface/web/mail/lib/lang/ja_mail_user_list.lng +++ b/interface/web/mail/lib/lang/ja_mail_user_list.lng @@ -7,6 +7,7 @@ $wb['name_txt'] = 'Realname'; $wb['login_txt'] = 'Login'; $wb['postfix_txt'] = 'Receiving'; $wb['disablesmtp_txt'] = 'SMTP (sending)'; +$wb['disabledeliver_txt'] = 'INBOX'; $wb['disableimap_txt'] = 'IMAP'; $wb['disablepop3_txt'] = 'POP3'; ?> diff --git a/interface/web/mail/lib/lang/nl_mail_user.lng b/interface/web/mail/lib/lang/nl_mail_user.lng index 9a644a129b1cc0e4f1d1ed6b349f9c55dc2c6e1b..83002f79aaef705f59ffdc9b0c210799339d451a 100644 --- a/interface/web/mail/lib/lang/nl_mail_user.lng +++ b/interface/web/mail/lib/lang/nl_mail_user.lng @@ -20,6 +20,7 @@ $wb['password_txt'] = 'Wachtwoord'; $wb['password_click_to_set_txt'] = 'Klik om in te stellen'; $wb['maildir_txt'] = 'Maildir'; $wb['postfix_txt'] = 'Ontvangen inschakelen'; +$wb['tooltip_postfix_txt'] = 'Allows incoming mail to this address.'; $wb['greylisting_txt'] = 'Greylisting inschakelen'; $wb['access_txt'] = 'Toegang inschakelen'; $wb['policy_txt'] = 'Spamfilter'; @@ -31,6 +32,9 @@ $wb['disablepop3_txt'] = 'Uitschakelen POP3'; $wb['duplicate_alias_or_forward_txt'] = 'Er is al een alias of forward met dir e-mailadres.'; $wb['quota_error_value'] = 'Ongeldige quota waarde. Toegestane waarden zijn: 0 = ongelimiteerd of nummerieke waarde > 1'; $wb['move_junk_txt'] = 'Verplaats SPAM e-mails naar junk folder'; +$wb["move_junk_y_txt"] = 'Move first, before custom filters.'; +$wb["move_junk_a_txt"] = 'Move last, after custom filters.'; +$wb["move_junk_n_txt"] = 'Do not move Spam Emails to Junk folder.'; $wb['name_txt'] = 'Echte naam'; $wb['name_optional_txt'] = '(Optioneel)'; $wb['autoresponder_active'] = 'Inschakelen autobeantwoorden'; @@ -57,10 +61,13 @@ $wb['monthly_backup_txt'] = 'Monthly'; $wb['email_error_isascii'] = 'Please do not use special unicode characters for your password. This could lead to problems with your mail client.'; $wb['cc_note_txt'] = '(Meerdere e-mail adressen scheiden met een komma)'; $wb['disablesmtp_txt'] = 'Uitschakelen SMTP (versturen)'; +$wb['tooltip_disablesmtp_txt'] = 'Disables mail submission from this mail account.'; +$wb['disabledeliver_txt'] = 'Disable (local) delivering'; +$wb['tooltip_disabledeliver_txt'] = 'Disables delivery to INBOX, and processing by mail filters and sieve scripts. Mail forwards to \'Send copy to\' address.'; $wb['autoresponder_start_date_is_required'] = 'Een startdatun is vereist voor het inschakelen van Autobeantwoorden.'; $wb['sender_cc_txt'] = 'Stuur uitgaande kopie aan'; $wb['sender_cc_error_isemail'] = 'Het \\"Stuur uitgaande kopie aan\\" veld bevat geen geldig e-mail adres'; -$wb['sender_cc_note_txt'] = '(Meerdere e-mail adressen scheiden met een komma)'; +$wb['sender_cc_note_txt'] = '(One email address only)'; $wb['purge_trash_days_txt'] = 'Purge Trash automatically after X days'; $wb['tooltip_purge_trash_days_txt'] = '0 = disabled'; $wb['purge_junk_days_txt'] = 'Purge Junk automatically after X days'; 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 95af45d96e51577b7f1c5fd1db3f3fe43889cf27..050d64aaf98fa3edbb6cc64fa473be7ab5aa16fd 100644 --- a/interface/web/mail/lib/lang/nl_mail_user_filter.lng +++ b/interface/web/mail/lib/lang/nl_mail_user_filter.lng @@ -11,6 +11,7 @@ $wb['limit_mailfilter_txt'] = 'Het max. aantal e-mail filters voor uw account is $wb['subject_txt'] = 'Onderwerp'; $wb['from_txt'] = 'Afzender'; $wb['to_txt'] = 'Bestemming'; +$wb['list_id_txt'] = 'List ID'; $wb['contains_txt'] = 'Bevat'; $wb['is_txt'] = 'Is'; $wb['begins_with_txt'] = 'Begint met'; @@ -18,7 +19,7 @@ $wb['ends_with_txt'] = 'Eindigt in'; $wb['delete_txt'] = 'Verwijderen'; $wb['move_stop_txt'] = 'Verplaatsen naar'; $wb['header_txt'] = 'Header'; -$wb['size_over_txt'] = 'Email grootte bove (KB)'; +$wb['size_over_txt'] = 'Email grootte boven (KB)'; $wb['size_under_txt'] = 'Email grootte onder (KB)'; $wb['localpart_txt'] = 'Localpart'; $wb['domain_txt'] = 'Domein'; diff --git a/interface/web/mail/lib/lang/nl_mail_user_list.lng b/interface/web/mail/lib/lang/nl_mail_user_list.lng index 39125af2e0b544140587ca56ab95376a837351d5..da872b2c28aa690602ff2106f4137892ee2177a2 100644 --- a/interface/web/mail/lib/lang/nl_mail_user_list.lng +++ b/interface/web/mail/lib/lang/nl_mail_user_list.lng @@ -7,6 +7,7 @@ $wb['name_txt'] = 'Echte naam'; $wb['login_txt'] = 'Login'; $wb['postfix_txt'] = 'Ontvangen'; $wb['disablesmtp_txt'] = 'SMTP (sending)'; +$wb['disabledeliver_txt'] = 'INBOX'; $wb['disableimap_txt'] = 'IMAP'; $wb['disablepop3_txt'] = 'POP3'; ?> diff --git a/interface/web/mail/lib/lang/pl_mail_user.lng b/interface/web/mail/lib/lang/pl_mail_user.lng index 593f83531ef599e8397fd753a1cd8c7441d57033..15ddeca66f883c3d5a8ab11ef518e24cbf199947 100644 --- a/interface/web/mail/lib/lang/pl_mail_user.lng +++ b/interface/web/mail/lib/lang/pl_mail_user.lng @@ -17,6 +17,7 @@ $wb['password_txt'] = 'HasÅ‚o'; $wb['password_click_to_set_txt'] = 'Click to set'; $wb['maildir_txt'] = 'Maildir'; $wb['postfix_txt'] = 'Zezwól na odbiór poczty'; +$wb['tooltip_postfix_txt'] = 'Allows incoming mail to this address.'; $wb['greylisting_txt'] = 'Enable greylisting'; $wb['access_txt'] = 'Możliwy dostÄ™p'; $wb['policy_txt'] = 'Filtr spamu'; @@ -32,6 +33,9 @@ $wb['autoresponder_start_date_ispast'] = 'Data uruchomienia nie może być w prz $wb['autoresponder_end_date_txt'] = 'ZakoÅ„cz do'; $wb['autoresponder_end_date_isgreater'] = 'Data zakoÅ„czenia musi być późniejsza od daty rozpoczÄ™cia'; $wb['move_junk_txt'] = 'PrzenoÅ› SPAM do folderu Junk'; +$wb["move_junk_y_txt"] = 'Move first, before custom filters.'; +$wb["move_junk_a_txt"] = 'Move last, after custom filters.'; +$wb["move_junk_n_txt"] = 'Do not move Spam Emails to Junk folder.'; $wb['name_txt'] = 'Nazwa rzeczywista'; $wb['name_optional_txt'] = '(Opcjonalnie)'; $wb['autoresponder_active'] = 'Uruchom autorespondera'; @@ -57,11 +61,14 @@ $wb['weekly_backup_txt'] = 'Weekly'; $wb['monthly_backup_txt'] = 'Monthly'; $wb['email_error_isascii'] = 'Please do not use special unicode characters for your password. This could lead to problems with your mail client.'; $wb['cc_note_txt'] = '(Separate multiple email addresses with commas)'; -$wb['disablesmtp_txt'] = 'Disable SMTP (sending)'; +$wb['disablesmtp_txt'] = 'Disable sending'; +$wb['tooltip_disablesmtp_txt'] = 'Disables mail submission from this mail account.'; +$wb['disabledeliver_txt'] = 'Disable (local) delivering'; +$wb['tooltip_disabledeliver_txt'] = 'Disables delivery to INBOX, and processing by mail filters and sieve scripts. Mail forwards to \'Send copy to\' address.'; $wb['autoresponder_start_date_is_required'] = 'Start date must be set when Autoresponder is enabled.'; $wb['sender_cc_txt'] = 'Send outgoing BCC to'; $wb['sender_cc_error_isemail'] = 'The -Send outgoing copy to- field does not contain a valid email address'; -$wb['sender_cc_note_txt'] = '(Separate multiple email addresses with commas)'; +$wb['sender_cc_note_txt'] = '(One email address only)'; $wb['purge_trash_days_txt'] = 'Purge Trash automatically after X days'; $wb['tooltip_purge_trash_days_txt'] = '0 = disabled'; $wb['purge_junk_days_txt'] = 'Purge Junk automatically after X days'; 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 1f0b071f193ccddfef0d00a1b8a15b46d365e8d9..d0bc6d6a288d921b8c79b35dd2467b1fb0e951a5 100644 --- a/interface/web/mail/lib/lang/pl_mail_user_filter.lng +++ b/interface/web/mail/lib/lang/pl_mail_user_filter.lng @@ -11,6 +11,7 @@ $wb['limit_mailfilter_txt'] = 'Maks. ilość filtrów email jest przekroczona.'; $wb['subject_txt'] = 'Temat'; $wb['from_txt'] = 'Od'; $wb['to_txt'] = 'Do'; +$wb['list_id_txt'] = 'List ID'; $wb['contains_txt'] = 'Zawiera'; $wb['is_txt'] = 'Jest'; $wb['begins_with_txt'] = 'Zaczyna siÄ™ od'; diff --git a/interface/web/mail/lib/lang/pl_mail_user_list.lng b/interface/web/mail/lib/lang/pl_mail_user_list.lng index 74ca840e3096f43af809941605be29fbf821fe68..f839a56720d4f1c2cb21b7229db4ffaaca35576d 100644 --- a/interface/web/mail/lib/lang/pl_mail_user_list.lng +++ b/interface/web/mail/lib/lang/pl_mail_user_list.lng @@ -7,6 +7,7 @@ $wb['name_txt'] = 'Nazwa rzeczywista'; $wb['login_txt'] = 'Login'; $wb['postfix_txt'] = 'Receiving'; $wb['disablesmtp_txt'] = 'SMTP (sending)'; +$wb['disabledeliver_txt'] = 'INBOX'; $wb['disableimap_txt'] = 'IMAP'; $wb['disablepop3_txt'] = 'POP3'; ?> diff --git a/interface/web/mail/lib/lang/pt_mail_user.lng b/interface/web/mail/lib/lang/pt_mail_user.lng index 0b7ffe3d374e86a8ebff455e0dea4a8fd17d608a..9f6227e268ccd7031d32304aecab61c6e134b16f 100644 --- a/interface/web/mail/lib/lang/pt_mail_user.lng +++ b/interface/web/mail/lib/lang/pt_mail_user.lng @@ -17,6 +17,7 @@ $wb['password_txt'] = 'Senha'; $wb['password_click_to_set_txt'] = 'Click to set'; $wb['maildir_txt'] = 'Maildir'; $wb['postfix_txt'] = 'Permitir Recepção'; +$wb['tooltip_postfix_txt'] = 'Allows incoming mail to this address.'; $wb['greylisting_txt'] = 'Enable greylisting'; $wb['access_txt'] = 'Permitir Acesso'; $wb['policy_txt'] = 'Spamfilter'; @@ -32,6 +33,9 @@ $wb['autoresponder_start_date_ispast'] = 'A data de Ãnicio não pode estar no p $wb['autoresponder_end_date_txt'] = 'Termino:'; $wb['autoresponder_end_date_isgreater'] = 'A data de inÃcio deve ser menor que a data de termino.'; $wb['move_junk_txt'] = 'Mover Spam para a pasta JUNK'; +$wb["move_junk_y_txt"] = 'Move first, before custom filters.'; +$wb["move_junk_a_txt"] = 'Move last, after custom filters.'; +$wb["move_junk_n_txt"] = 'Do not move Spam Emails to Junk folder.'; $wb['name_txt'] = 'Realname'; $wb['name_optional_txt'] = '(Optional)'; $wb['autoresponder_active'] = 'Enable the autoresponder'; @@ -57,11 +61,14 @@ $wb['weekly_backup_txt'] = 'Weekly'; $wb['monthly_backup_txt'] = 'Monthly'; $wb['email_error_isascii'] = 'Please do not use special unicode characters for your password. This could lead to problems with your mail client.'; $wb['cc_note_txt'] = '(Separate multiple email addresses with commas)'; -$wb['disablesmtp_txt'] = 'Disable SMTP (sending)'; +$wb['disablesmtp_txt'] = 'Disable sending'; +$wb['tooltip_disablesmtp_txt'] = 'Disables mail submission from this mail account.'; +$wb['disabledeliver_txt'] = 'Disable (local) delivering'; +$wb['tooltip_disabledeliver_txt'] = 'Disables delivery to INBOX, and processing by mail filters and sieve scripts. Mail forwards to \'Send copy to\' address.'; $wb['autoresponder_start_date_is_required'] = 'Start date must be set when Autoresponder is enabled.'; $wb['sender_cc_txt'] = 'Send outgoing BCC to'; $wb['sender_cc_error_isemail'] = 'The -Send outgoing copy to- field does not contain a valid email address'; -$wb['sender_cc_note_txt'] = '(Separate multiple email addresses with commas)'; +$wb['sender_cc_note_txt'] = '(One email address only)'; $wb['purge_trash_days_txt'] = 'Purge Trash automatically after X days'; $wb['tooltip_purge_trash_days_txt'] = '0 = disabled'; $wb['purge_junk_days_txt'] = 'Purge Junk automatically after X days'; diff --git a/interface/web/mail/lib/lang/pt_mail_user_list.lng b/interface/web/mail/lib/lang/pt_mail_user_list.lng index fe89939e2b57a707751e3ee4a03862c843866b35..9f19168fba870fdbbcd0069bac75c18cf00a1502 100644 --- a/interface/web/mail/lib/lang/pt_mail_user_list.lng +++ b/interface/web/mail/lib/lang/pt_mail_user_list.lng @@ -7,6 +7,7 @@ $wb['name_txt'] = 'Realname'; $wb['login_txt'] = 'Login'; $wb['postfix_txt'] = 'Receiving'; $wb['disablesmtp_txt'] = 'SMTP (sending)'; +$wb['disabledeliver_txt'] = 'INBOX'; $wb['disableimap_txt'] = 'IMAP'; $wb['disablepop3_txt'] = 'POP3'; ?> diff --git a/interface/web/mail/lib/lang/ro_mail_user.lng b/interface/web/mail/lib/lang/ro_mail_user.lng index 97dfdafd88758015cdb4f261c8c533f68521d380..b358960525f11a11af19a916c605706c90a08205 100644 --- a/interface/web/mail/lib/lang/ro_mail_user.lng +++ b/interface/web/mail/lib/lang/ro_mail_user.lng @@ -17,6 +17,7 @@ $wb['password_txt'] = 'Password'; $wb['password_click_to_set_txt'] = 'Click to set'; $wb['maildir_txt'] = 'Maildir'; $wb['postfix_txt'] = 'Enable Receiving'; +$wb['tooltip_postfix_txt'] = 'Allows incoming mail to this address.'; $wb['greylisting_txt'] = 'Enable greylisting'; $wb['access_txt'] = 'Enable Access'; $wb['policy_txt'] = 'Spamfilter'; @@ -28,10 +29,13 @@ $wb['disablepop3_txt'] = 'Blocheaza POP3'; $wb['autoresponder_start_date_txt'] = 'Start on'; $wb['autoresponder_start_date_ispast'] = 'Start date cannot be in the past.'; $wb['autoresponder_end_date_txt'] = 'End by'; -$wb['autoresponder_end_date_isgreater'] = 'End date must be set and be later than start date.'; +$wb['autoresponder_end_date_isgreater'] = 'End date must be later than start date.'; $wb['duplicate_alias_or_forward_txt'] = 'There is already an alias or forwrd with this email address.'; $wb['quota_error_value'] = 'Invalid quota value. Allowed values are: 0 for unlimited or numbers > 1'; $wb['move_junk_txt'] = 'Move Spam Emails to Junk directory'; +$wb["move_junk_y_txt"] = 'Move first, before custom filters.'; +$wb["move_junk_a_txt"] = 'Move last, after custom filters.'; +$wb["move_junk_n_txt"] = 'Do not move Spam Emails to Junk folder.'; $wb['name_txt'] = 'Realname'; $wb['name_optional_txt'] = '(Optional)'; $wb['autoresponder_active'] = 'Enable the autoresponder'; @@ -57,11 +61,14 @@ $wb['weekly_backup_txt'] = 'Weekly'; $wb['monthly_backup_txt'] = 'Monthly'; $wb['email_error_isascii'] = 'Please do not use special unicode characters for your password. This could lead to problems with your mail client.'; $wb['cc_note_txt'] = '(Separate multiple email addresses with commas)'; -$wb['disablesmtp_txt'] = 'Disable SMTP (sending)'; +$wb['disablesmtp_txt'] = 'Disable sending'; +$wb['tooltip_disablesmtp_txt'] = 'Disables mail submission from this mail account.'; +$wb['disabledeliver_txt'] = 'Disable (local) delivering'; +$wb['tooltip_disabledeliver_txt'] = 'Disables delivery to INBOX, and processing by mail filters and sieve scripts. Mail forwards to \'Send copy to\' address.'; $wb['autoresponder_start_date_is_required'] = 'Start date must be set when Autoresponder is enabled.'; $wb['sender_cc_txt'] = 'Send outgoing BCC to'; $wb['sender_cc_error_isemail'] = 'The -Send outgoing copy to- field does not contain a valid email address'; -$wb['sender_cc_note_txt'] = '(Separate multiple email addresses with commas)'; +$wb['sender_cc_note_txt'] = '(One email address only)'; $wb['purge_trash_days_txt'] = 'Purge Trash automatically after X days'; $wb['tooltip_purge_trash_days_txt'] = '0 = disabled'; $wb['purge_junk_days_txt'] = 'Purge Junk automatically after X days'; diff --git a/interface/web/mail/lib/lang/ro_mail_user_list.lng b/interface/web/mail/lib/lang/ro_mail_user_list.lng index f55f8647a8222a282d7c6ce6412bfa7a8546fa53..3eda064b75528849f49a29e7856bbe7245aba864 100644 --- a/interface/web/mail/lib/lang/ro_mail_user_list.lng +++ b/interface/web/mail/lib/lang/ro_mail_user_list.lng @@ -7,6 +7,7 @@ $wb['name_txt'] = 'Realname'; $wb['login_txt'] = 'Login'; $wb['postfix_txt'] = 'Receiving'; $wb['disablesmtp_txt'] = 'SMTP (sending)'; +$wb['disabledeliver_txt'] = 'INBOX'; $wb['disableimap_txt'] = 'IMAP'; $wb['disablepop3_txt'] = 'POP3'; ?> diff --git a/interface/web/mail/lib/lang/ru_mail_user.lng b/interface/web/mail/lib/lang/ru_mail_user.lng index 07bab6fd4fb66739f4ee1fb8bd2af53a51765731..a6f8a9fb7e9fb2bdf5afacc03682201d5ffd1be6 100644 --- a/interface/web/mail/lib/lang/ru_mail_user.lng +++ b/interface/web/mail/lib/lang/ru_mail_user.lng @@ -16,6 +16,7 @@ $wb['password_txt'] = 'Пароль'; $wb['password_click_to_set_txt'] = 'Клик Ð´Ð»Ñ ÑƒÑтановки'; $wb['maildir_txt'] = 'maildir'; $wb['postfix_txt'] = 'Разрешить получение'; +$wb['tooltip_postfix_txt'] = 'Allows incoming mail to this address.'; $wb['greylisting_txt'] = 'Включить Ñерый ÑпиÑок (Greylisting)'; $wb['access_txt'] = 'Включить доÑтуп'; $wb['policy_txt'] = 'Спам-фильтр'; @@ -32,6 +33,9 @@ $wb['autoresponder_start_date_ispast'] = 'Дата запуÑка не може $wb['autoresponder_end_date_txt'] = 'ОÑтанавливать'; $wb['autoresponder_end_date_isgreater'] = 'Дата Ð¾ÐºÐ¾Ð½Ñ‡Ð°Ð½Ð¸Ñ Ð´Ð¾Ð»Ð¶Ð½Ð° быть позже даты запуÑка.'; $wb['move_junk_txt'] = 'Перемещать Ñпам в каталог Junk'; +$wb["move_junk_y_txt"] = 'Move first, before custom filters.'; +$wb["move_junk_a_txt"] = 'Move last, after custom filters.'; +$wb["move_junk_n_txt"] = 'Do not move Spam Emails to Junk folder.'; $wb['name_txt'] = 'Реальное имÑ'; $wb['name_optional_txt'] = '(Опционально)'; $wb['autoresponder_active'] = 'Включить автоответчик'; @@ -58,10 +62,13 @@ $wb['monthly_backup_txt'] = 'ЕжемеÑÑчно'; $wb['email_error_isascii'] = 'ПожалуйÑта, не иÑпользуйте Ñпециальные Ñимволы Юникода Ð´Ð»Ñ Ð²Ð°ÑˆÐµÐ³Ð¾ паролÑ. Ðто может привеÑти к проблемам Ñ Ð²Ð°ÑˆÐ¸Ð¼ почтовым клиентом.'; $wb['cc_note_txt'] = '(Разделите неÑколько адреÑов Ñлектронной почты запÑтыми)'; $wb['disablesmtp_txt'] = 'Отключить SMTP (отправка)'; +$wb['tooltip_disablesmtp_txt'] = 'Disables mail submission from this mail account.'; +$wb['disabledeliver_txt'] = 'Disable (local) delivering'; +$wb['tooltip_disabledeliver_txt'] = 'Disables delivery to INBOX, and processing by mail filters and sieve scripts. Mail forwards to \'Send copy to\' address.'; $wb['autoresponder_start_date_is_required'] = 'Дата начала должна быть уÑтановлена когда автоответчик включен.'; $wb['sender_cc_txt'] = 'Отправка иÑходÑщей копии на'; $wb['sender_cc_error_isemail'] = 'Поле -Отправка иÑходÑщей копии на- не Ñодержит дейÑтвительный Ð°Ð´Ñ€ÐµÑ Ñлектронной почты'; -$wb['sender_cc_note_txt'] = '(Разделите неÑколько адреÑов Ñлектронной почты запÑтыми)'; +$wb['sender_cc_note_txt'] = '(One email address only)'; $wb['purge_trash_days_txt'] = 'Purge Trash automatically after X days'; $wb['tooltip_purge_trash_days_txt'] = '0 = disabled'; $wb['purge_junk_days_txt'] = 'Purge Junk automatically after X days'; diff --git a/interface/web/mail/lib/lang/ru_mail_user_filter.lng b/interface/web/mail/lib/lang/ru_mail_user_filter.lng index c8306f9838ece9c91db26e241b3ae531bbe04464..78fac01aee482c71c9f1b4b5c19a272fc22e5475 100644 --- a/interface/web/mail/lib/lang/ru_mail_user_filter.lng +++ b/interface/web/mail/lib/lang/ru_mail_user_filter.lng @@ -11,6 +11,7 @@ $wb['limit_mailfilter_txt'] = 'МакÑимальное чиÑло почтов $wb['subject_txt'] = 'Тема'; $wb['from_txt'] = 'От'; $wb['to_txt'] = 'Кому'; +$wb['list_id_txt'] = 'List ID'; $wb['contains_txt'] = 'Содержит'; $wb['is_txt'] = 'Равно'; $wb['begins_with_txt'] = 'ÐачинаетÑÑ Ñ'; diff --git a/interface/web/mail/lib/lang/ru_mail_user_list.lng b/interface/web/mail/lib/lang/ru_mail_user_list.lng index 7dad47a416729dd2d16b501d0cd0486169ef46c1..d323d347505ac7f3068a30eef62aabbd5a981b14 100644 --- a/interface/web/mail/lib/lang/ru_mail_user_list.lng +++ b/interface/web/mail/lib/lang/ru_mail_user_list.lng @@ -7,6 +7,7 @@ $wb['name_txt'] = 'Реальное имÑ'; $wb['login_txt'] = 'Логин'; $wb['postfix_txt'] = 'Получатель'; $wb['disablesmtp_txt'] = 'SMTP (отправка)'; +$wb['disabledeliver_txt'] = 'INBOX'; $wb['disableimap_txt'] = 'IMAP'; $wb['disablepop3_txt'] = 'POP3'; ?> diff --git a/interface/web/mail/lib/lang/se_mail_user.lng b/interface/web/mail/lib/lang/se_mail_user.lng index da0282e118d620a9b6c40b433cddc3783e9b11a3..f528bb3ef4659c4b8be6028af6f5f9d8e7c678f5 100644 --- a/interface/web/mail/lib/lang/se_mail_user.lng +++ b/interface/web/mail/lib/lang/se_mail_user.lng @@ -17,6 +17,7 @@ $wb['password_txt'] = 'lösenord'; $wb['password_click_to_set_txt'] = 'Click to set'; $wb['maildir_txt'] = 'maildir'; $wb['postfix_txt'] = 'Aktivera mottagning'; +$wb['tooltip_postfix_txt'] = 'Allows incoming mail to this address.'; $wb['greylisting_txt'] = 'Enable greylisting'; $wb['access_txt'] = 'Aktivera Ã¥tkomst'; $wb['policy_txt'] = 'Spamfilter'; @@ -30,8 +31,11 @@ $wb['quota_error_value'] = 'Invalid quota value. Allowed values are: 0 for unlim $wb['autoresponder_start_date_txt'] = 'Starta den'; $wb['autoresponder_start_date_ispast'] = 'Startdatum kan inte vara i det förflutna.'; $wb['autoresponder_end_date_txt'] = 'Sluta den'; -$wb['autoresponder_end_date_isgreater'] = 'End date must be set and be later than start date.'; +$wb['autoresponder_end_date_isgreater'] = 'End date must be later than start date.'; $wb['move_junk_txt'] = 'FLytta spamepost till spammappen'; +$wb["move_junk_y_txt"] = 'Move first, before custom filters.'; +$wb["move_junk_a_txt"] = 'Move last, after custom filters.'; +$wb["move_junk_n_txt"] = 'Do not move Spam Emails to Junk folder.'; $wb['name_txt'] = 'Riktigt namn'; $wb['name_optional_txt'] = '(Frivilligt)'; $wb['autoresponder_active'] = 'Aktivera autosvaret'; @@ -57,11 +61,14 @@ $wb['weekly_backup_txt'] = 'Weekly'; $wb['monthly_backup_txt'] = 'Monthly'; $wb['email_error_isascii'] = 'Please do not use special unicode characters for your password. This could lead to problems with your mail client.'; $wb['cc_note_txt'] = '(Separate multiple email addresses with commas)'; -$wb['disablesmtp_txt'] = 'Disable SMTP (sending)'; +$wb['disablesmtp_txt'] = 'Disable sending'; +$wb['tooltip_disablesmtp_txt'] = 'Disables mail submission from this mail account.'; +$wb['disabledeliver_txt'] = 'Disable (local) delivering'; +$wb['tooltip_disabledeliver_txt'] = 'Disables delivery to INBOX, and processing by mail filters and sieve scripts. Mail forwards to \'Send copy to\' address.'; $wb['autoresponder_start_date_is_required'] = 'Start date must be set when Autoresponder is enabled.'; $wb['sender_cc_txt'] = 'Send outgoing BCC to'; $wb['sender_cc_error_isemail'] = 'The -Send outgoing copy to- field does not contain a valid email address'; -$wb['sender_cc_note_txt'] = '(Separate multiple email addresses with commas)'; +$wb['sender_cc_note_txt'] = '(One email address only)'; $wb['purge_trash_days_txt'] = 'Purge Trash automatically after X days'; $wb['tooltip_purge_trash_days_txt'] = '0 = disabled'; $wb['purge_junk_days_txt'] = 'Purge Junk automatically after X days'; 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 0cd888b2e543a6497ea56a6866fee48f7ef2cfac..9830059195a097af027fe3310186350ec891395c 100644 --- a/interface/web/mail/lib/lang/se_mail_user_filter.lng +++ b/interface/web/mail/lib/lang/se_mail_user_filter.lng @@ -11,6 +11,7 @@ $wb['limit_mailfilter_txt'] = 'Det maximala antalet epostfilter är uppnÃ¥tt.'; $wb['subject_txt'] = 'Ämne'; $wb['from_txt'] = 'FrÃ¥n'; $wb['to_txt'] = 'Till'; +$wb['list_id_txt'] = 'List ID'; $wb['contains_txt'] = 'InnehÃ¥ller'; $wb['is_txt'] = 'Är'; $wb['begins_with_txt'] = 'Börjar med'; diff --git a/interface/web/mail/lib/lang/se_mail_user_list.lng b/interface/web/mail/lib/lang/se_mail_user_list.lng index 65c724c292e92f89f8a89201a8e6768deda8d8bd..4f6a7305d65a86feffd6a223c489a8b1dfc32208 100644 --- a/interface/web/mail/lib/lang/se_mail_user_list.lng +++ b/interface/web/mail/lib/lang/se_mail_user_list.lng @@ -7,6 +7,7 @@ $wb['name_txt'] = 'Riktigt namn'; $wb['login_txt'] = 'Logga in'; $wb['postfix_txt'] = 'Receiving'; $wb['disablesmtp_txt'] = 'SMTP (sending)'; +$wb['disabledeliver_txt'] = 'INBOX'; $wb['disableimap_txt'] = 'IMAP'; $wb['disablepop3_txt'] = 'POP3'; ?> diff --git a/interface/web/mail/lib/lang/sk_mail_user.lng b/interface/web/mail/lib/lang/sk_mail_user.lng index d9a68404aece6d691dd71ac166ebe606ded32b34..207be539474755db980d61a9cce7b09d6ccb604a 100644 --- a/interface/web/mail/lib/lang/sk_mail_user.lng +++ b/interface/web/mail/lib/lang/sk_mail_user.lng @@ -17,6 +17,7 @@ $wb['password_txt'] = 'Heslo'; $wb['password_click_to_set_txt'] = 'Click to set'; $wb['maildir_txt'] = 'Mailová záložka'; $wb['postfix_txt'] = 'PovoliÅ¥ prÃjem'; +$wb['tooltip_postfix_txt'] = 'Allows incoming mail to this address.'; $wb['greylisting_txt'] = 'Enable greylisting'; $wb['access_txt'] = 'PovoliÅ¥ PrÃstup'; $wb['policy_txt'] = 'Spamfilter'; @@ -30,8 +31,11 @@ $wb['quota_error_value'] = 'Neplatná hodnota kvóty. Povolené hodnoty sú: 0 p $wb['autoresponder_start_date_txt'] = 'Start on'; $wb['autoresponder_start_date_ispast'] = 'Start date cannot be in the past.'; $wb['autoresponder_end_date_txt'] = 'End by'; -$wb['autoresponder_end_date_isgreater'] = 'End date must be set and be later than start date.'; +$wb['autoresponder_end_date_isgreater'] = 'End date must be later than start date.'; $wb['move_junk_txt'] = 'Move Spam Emails to Junk directory'; +$wb["move_junk_y_txt"] = 'Move first, before custom filters.'; +$wb["move_junk_a_txt"] = 'Move last, after custom filters.'; +$wb["move_junk_n_txt"] = 'Do not move Spam Emails to Junk folder.'; $wb['name_txt'] = 'Realname'; $wb['name_optional_txt'] = '(Optional)'; $wb['autoresponder_active'] = 'Enable the autoresponder'; @@ -57,11 +61,14 @@ $wb['weekly_backup_txt'] = 'Weekly'; $wb['monthly_backup_txt'] = 'Monthly'; $wb['email_error_isascii'] = 'Please do not use special unicode characters for your password. This could lead to problems with your mail client.'; $wb['cc_note_txt'] = '(Separate multiple email addresses with commas)'; -$wb['disablesmtp_txt'] = 'Disable SMTP (sending)'; +$wb['disablesmtp_txt'] = 'Disable sending'; +$wb['tooltip_disablesmtp_txt'] = 'Disables mail submission from this mail account.'; +$wb['disabledeliver_txt'] = 'Disable (local) delivering'; +$wb['tooltip_disabledeliver_txt'] = 'Disables delivery to INBOX, and processing by mail filters and sieve scripts. Mail forwards to \'Send copy to\' address.'; $wb['autoresponder_start_date_is_required'] = 'Start date must be set when Autoresponder is enabled.'; $wb['sender_cc_txt'] = 'Send outgoing BCC to'; $wb['sender_cc_error_isemail'] = 'The -Send outgoing copy to- field does not contain a valid email address'; -$wb['sender_cc_note_txt'] = '(Separate multiple email addresses with commas)'; +$wb['sender_cc_note_txt'] = '(One email address only)'; $wb['purge_trash_days_txt'] = 'Purge Trash automatically after X days'; $wb['tooltip_purge_trash_days_txt'] = '0 = disabled'; $wb['purge_junk_days_txt'] = 'Purge Junk automatically after X days'; diff --git a/interface/web/mail/lib/lang/sk_mail_user_list.lng b/interface/web/mail/lib/lang/sk_mail_user_list.lng index 3d18ad41f6294d25eb1ef526d65f66229ddc037f..3a341f0967ae2c6f45fd4a2ce61b815a7cba005d 100644 --- a/interface/web/mail/lib/lang/sk_mail_user_list.lng +++ b/interface/web/mail/lib/lang/sk_mail_user_list.lng @@ -7,6 +7,7 @@ $wb['name_txt'] = 'Realname'; $wb['login_txt'] = 'Login'; $wb['postfix_txt'] = 'Receiving'; $wb['disablesmtp_txt'] = 'SMTP (sending)'; +$wb['disabledeliver_txt'] = 'INBOX'; $wb['disableimap_txt'] = 'IMAP'; $wb['disablepop3_txt'] = 'POP3'; ?> diff --git a/interface/web/mail/lib/lang/tr_mail_user.lng b/interface/web/mail/lib/lang/tr_mail_user.lng index 9e964e5e8a9532c4b963e5cdb16d4e50c63e6bb7..203338047a225c8e594cd4ff1bfd3397ebc6fa4b 100644 --- a/interface/web/mail/lib/lang/tr_mail_user.lng +++ b/interface/web/mail/lib/lang/tr_mail_user.lng @@ -14,7 +14,6 @@ $wb['autoresponder_start_date_txt'] = 'BaÅŸlangıç'; $wb['autoresponder_start_date_ispast'] = 'BaÅŸlangıç zamanı geçmiÅŸte olamaz.'; $wb['autoresponder_end_date_txt'] = 'BitiÅŸ'; $wb['autoresponder_end_date_isgreater'] = 'BitiÅŸ zamanı baÅŸlangıç zamanından sonra olmalıdır.'; -$wb['autoresponder_start_date_is_required'] = 'Otoyanıtlayıcı kullanıldığında baÅŸlangıç tarihi belirtilmelidir.'; $wb['no_domain_perm'] = 'Bu etki alanı için izniniz yok.'; $wb['error_no_pwd'] = 'Parola boÅŸ olamaz.'; $wb['quota_error_isint'] = 'E-posta kutusunun boyutu bir sayı olmalıdır.'; @@ -24,6 +23,7 @@ $wb['password_txt'] = 'Parola'; $wb['password_click_to_set_txt'] = 'Ayarlamak için tıklayın'; $wb['maildir_txt'] = 'E-posta Klasörü'; $wb['postfix_txt'] = 'Alım Etkin'; +$wb['tooltip_postfix_txt'] = 'Allows incoming mail to this address.'; $wb['greylisting_txt'] = 'Gri Liste Kullanılsın'; $wb['access_txt'] = 'EriÅŸim Etkin'; $wb['policy_txt'] = 'Önemsiz Ä°leti Süzgeci'; @@ -31,11 +31,17 @@ $wb['inherit_policy'] = '- Inherit domain setting -'; $wb['limit_mailbox_txt'] = 'Hesabınıza ekleyebileceÄŸiniz en fazla e-posta kutusu sayısına ulaÅŸtınız.'; $wb['limit_mailquota_txt'] = 'E-posta kutularınız için kullanabileceÄŸiniz en fazla boyuta ulaÅŸtınız. Kullanılabilecek alan MB:'; $wb['disablesmtp_txt'] = 'SMTP Kullanılmasın (gönderim)'; +$wb['tooltip_disablesmtp_txt'] = 'Disables mail submission from this mail account.'; +$wb['disabledeliver_txt'] = 'Disable (local) delivering'; +$wb['tooltip_disabledeliver_txt'] = 'Disables delivery to INBOX, and processing by mail filters and sieve scripts. Mail forwards to \'Send copy to\' address.'; $wb['disableimap_txt'] = 'IMAP Kullanılmasın'; $wb['disablepop3_txt'] = 'POP3 Kullanılmasın'; $wb['duplicate_alias_or_forward_txt'] = 'Bu e-posta adresi zaten takma ya da yönlendirilmiÅŸ.'; $wb['quota_error_value'] = 'Kota deÄŸeri geçersiz. DeÄŸer sınırsız için 0 ya da 1 deÄŸerinden büyük olmalı'; $wb['move_junk_txt'] = 'Önemsiz Ä°letiler Junk Klasörüne Taşınsın'; +$wb["move_junk_y_txt"] = 'Move first, before custom filters.'; +$wb["move_junk_a_txt"] = 'Move last, after custom filters.'; +$wb["move_junk_n_txt"] = 'Do not move Spam Emails to Junk folder.'; $wb['name_txt'] = 'Ad'; $wb['name_optional_txt'] = '(Ä°steÄŸe baÄŸlı)'; $wb['autoresponder_active'] = 'Otoyanıtlayıcı kullanılsın'; @@ -61,7 +67,7 @@ $wb['weekly_backup_txt'] = 'Haftalık'; $wb['monthly_backup_txt'] = 'Aylık'; $wb['email_error_isascii'] = 'E-posta istemcinizde sorun yaÅŸamamak için lütfen parolanızda dile özel unikod karakterler kullanmayın.'; $wb['cc_note_txt'] = '(Birden çok e-posta adresini virgül ile ayırarak yazın)'; -$wb['sender_cc_note_txt'] = '(Birden çok e-posta adresini virgül ile ayırarak yazın)'; +$wb['sender_cc_note_txt'] = '(One email address only)'; $wb['purge_trash_days_txt'] = 'Purge Trash automatically after X days'; $wb['tooltip_purge_trash_days_txt'] = '0 = disabled'; $wb['purge_junk_days_txt'] = 'Purge Junk automatically after X days'; 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 ba55be63dcb89295da8d59729da755fad6bd1e02..6d4e0b8868c128e6a834d7bcd397c49dd0629bd9 100644 --- a/interface/web/mail/lib/lang/tr_mail_user_filter.lng +++ b/interface/web/mail/lib/lang/tr_mail_user_filter.lng @@ -11,6 +11,7 @@ $wb['limit_mailfilter_txt'] = 'Hesabınıza ekleyebileceÄŸiniz en fazla e-posta $wb['subject_txt'] = 'Konu'; $wb['from_txt'] = 'Kimden'; $wb['to_txt'] = 'Kime'; +$wb['list_id_txt'] = 'List ID'; $wb['contains_txt'] = 'Åžunu içeren'; $wb['is_txt'] = 'Åžununla aynı'; $wb['begins_with_txt'] = 'Åžununla baÅŸlayan'; diff --git a/interface/web/mail/lib/lang/tr_mail_user_list.lng b/interface/web/mail/lib/lang/tr_mail_user_list.lng index 66d33becae6743af9de7d590b72237b97af9851b..3137af8928a14502773a295e15049d2a13f46133 100644 --- a/interface/web/mail/lib/lang/tr_mail_user_list.lng +++ b/interface/web/mail/lib/lang/tr_mail_user_list.lng @@ -7,6 +7,7 @@ $wb['name_txt'] = 'Gerçek Ad'; $wb['login_txt'] = 'Oturum Aç'; $wb['postfix_txt'] = 'Alınıyor'; $wb['disablesmtp_txt'] = 'SMTP (sending)'; +$wb['disabledeliver_txt'] = 'INBOX'; $wb['disableimap_txt'] = 'IMAP'; $wb['disablepop3_txt'] = 'POP3'; ?> diff --git a/interface/web/mail/list/mail_user.list.php b/interface/web/mail/list/mail_user.list.php index 4513a516c910cb05cdc6bb7d36388240e7afe818..3e020ea603a9db377dbfacf1d467043db96a62a9 100644 --- a/interface/web/mail/list/mail_user.list.php +++ b/interface/web/mail/list/mail_user.list.php @@ -107,6 +107,15 @@ $liste["item"][] = array( 'field' => "disablesmtp", 'width' => "", 'value' => array('n' => $app->lng('yes_txt'), 'y' => $app->lng('no_txt'))); +$liste["item"][] = array( 'field' => "disabledeliver", + 'datatype' => "VARCHAR", + 'formtype' => "SELECT", + 'op' => "=", + 'prefix' => "", + 'suffix' => "", + 'width' => "", + 'value' => array('n' => $app->lng('yes_txt'), 'y' => $app->lng('no_txt'))); + $liste["item"][] = array( 'field' => "disableimap", 'datatype' => "VARCHAR", 'formtype' => "SELECT", diff --git a/interface/web/mail/mail_blacklist_del.php b/interface/web/mail/mail_blacklist_del.php index d3bbc5d5d581991078d44997aa583d1550243181..aa671c488714f0f76af47e45aafad673ecb32eca 100644 --- a/interface/web/mail/mail_blacklist_del.php +++ b/interface/web/mail/mail_blacklist_del.php @@ -43,7 +43,7 @@ require_once '../../lib/config.inc.php'; require_once '../../lib/app.inc.php'; -if($_SESSION["s"]["user"]["typ"] != 'admin') $app->error('This function needs admin priveliges'); +if($_SESSION["s"]["user"]["typ"] != 'admin') $app->error('This function needs admin privileges'); //* Check permissions for module $app->auth->check_module_permissions('mail'); diff --git a/interface/web/mail/mail_blacklist_edit.php b/interface/web/mail/mail_blacklist_edit.php index e2f284a34ed84df3a0c397aee67107eeabb15468..b86729b919e9d08a8855d972d8c447e48a36bc3b 100644 --- a/interface/web/mail/mail_blacklist_edit.php +++ b/interface/web/mail/mail_blacklist_edit.php @@ -53,7 +53,7 @@ class page_action extends tform_actions { function onShowNew() { global $app, $conf; - if($_SESSION["s"]["user"]["typ"] != 'admin') die('This function needs admin priveliges'); + if($_SESSION["s"]["user"]["typ"] != 'admin') die('This function needs admin privileges'); parent::onShowNew(); } @@ -61,7 +61,7 @@ class page_action extends tform_actions { function onBeforeUpdate() { global $app, $conf; - if($_SESSION["s"]["user"]["typ"] != 'admin') die('This function needs admin priveliges'); + if($_SESSION["s"]["user"]["typ"] != 'admin') die('This function needs admin privileges'); //* Check if the server has been changed // We do this only for the admin or reseller users, as normal clients can not change the server ID anyway @@ -79,7 +79,7 @@ class page_action extends tform_actions { function onSubmit() { global $app, $conf; - if($_SESSION["s"]["user"]["typ"] != 'admin') die('This function needs admin priveliges'); + if($_SESSION["s"]["user"]["typ"] != 'admin') die('This function needs admin privileges'); if(substr($this->dataRecord['source'], 0, 1) === '@') $this->dataRecord['source'] = substr($this->dataRecord['source'], 1); diff --git a/interface/web/mail/mail_blacklist_list.php b/interface/web/mail/mail_blacklist_list.php index 2bdc1e93b8270148285eb4d705dfa7b47cadcfce..ecb24d867c740f2f7853fd46d4d7f52ed1a5bf6b 100644 --- a/interface/web/mail/mail_blacklist_list.php +++ b/interface/web/mail/mail_blacklist_list.php @@ -12,7 +12,7 @@ $list_def_file = "list/mail_blacklist.list.php"; * End Form configuration ******************************************/ -if($_SESSION["s"]["user"]["typ"] != 'admin') $app->error('This function needs admin priveliges'); +if($_SESSION["s"]["user"]["typ"] != 'admin') $app->error('This function needs admin privileges'); //* Check permissions for module $app->auth->check_module_permissions('mail'); diff --git a/interface/web/mail/mail_domain_edit.php b/interface/web/mail/mail_domain_edit.php index 19aa4f91e61b5600904b40c88118dad8f5287f73..77e15b68fc59a0f76ea69afad73de830ff6543c0 100644 --- a/interface/web/mail/mail_domain_edit.php +++ b/interface/web/mail/mail_domain_edit.php @@ -283,7 +283,9 @@ class page_action extends tform_actions { $this->dataRecord["domain"] = $app->functions->idn_encode($this->dataRecord["domain"]); $this->dataRecord["domain"] = strtolower($this->dataRecord["domain"]); } - + + //* server_id must be > 0 + if(isset($this->dataRecord["server_id"]) && $this->dataRecord["server_id"] < 1) $app->tform->errorMessage .= $app->lng("server_id_0_error_txt"); parent::onSubmit(); } diff --git a/interface/web/mail/mail_user_edit.php b/interface/web/mail/mail_user_edit.php index 83a02e0ed212242345894ad7b0f017cd2a8939a4..1dca1db848b93ff78ce9f8c2a9c143579bdf98f7 100644 --- a/interface/web/mail/mail_user_edit.php +++ b/interface/web/mail/mail_user_edit.php @@ -310,8 +310,8 @@ class page_action extends tform_actions { if(isset($this->dataRecord["email"])) { $disableimap = ($this->dataRecord["disableimap"])?'y':'n'; $disablepop3 = ($this->dataRecord["disablepop3"])?'y':'n'; - $disabledeliver = ($this->dataRecord["postfix"] == 'y')?'n':'y'; $disablesmtp = ($this->dataRecord["disablesmtp"])?'y':'n'; + $disabledeliver = ($this->dataRecord["disabledeliver"])?'y':'n'; $app->db->query($sql, $disableimap, $disableimap, $disablepop3, $disablesmtp, $disabledeliver, $disabledeliver, $this->id); $sql = "UPDATE mail_user SET disableimap = ?, disablesieve = ?, disablepop3 = ?, disablesmtp = ?, disabledeliver = ?, disablelda = ?, disablelmtp = ? WHERE mailuser_id = ?"; @@ -363,8 +363,8 @@ class page_action extends tform_actions { if(isset($this->dataRecord["email"])) { $disableimap = (isset($this->dataRecord["disableimap"]) && $this->dataRecord["disableimap"])?'y':'n'; $disablepop3 = (isset($this->dataRecord["disablepop3"]) && $this->dataRecord["disablepop3"])?'y':'n'; - $disabledeliver = ($this->dataRecord["postfix"] == 'y')?'n':'y'; $disablesmtp = (isset($this->dataRecord["disablesmtp"]) && $this->dataRecord["disablesmtp"])?'y':'n'; + $disabledeliver = (isset($this->dataRecord["disabledeliver"]) && $this->dataRecord["disabledeliver"])?'y':'n'; $sql = "UPDATE mail_user SET disableimap = ?, disablesieve = ?, `disablesieve-filter` = ?, disablepop3 = ?, disablesmtp = ?, disabledeliver = ?, disablelda = ?, disablelmtp = ? WHERE mailuser_id = ?"; $app->db->query($sql, $disableimap, $disableimap, $disableimap, $disablepop3, $disablesmtp, $disabledeliver, $disabledeliver, $disabledeliver, $this->id); diff --git a/interface/web/mail/mail_whitelist_del.php b/interface/web/mail/mail_whitelist_del.php index 2294f4486806d41ffc7777d5bec207ae9c519c48..06ce88550bcef2a2e00d674759ddf310842bba3a 100644 --- a/interface/web/mail/mail_whitelist_del.php +++ b/interface/web/mail/mail_whitelist_del.php @@ -42,7 +42,7 @@ $tform_def_file = "form/mail_whitelist.tform.php"; require_once '../../lib/config.inc.php'; require_once '../../lib/app.inc.php'; -if($_SESSION["s"]["user"]["typ"] != 'admin') $app->error('This function needs admin priveliges'); +if($_SESSION["s"]["user"]["typ"] != 'admin') $app->error('This function needs admin privileges'); //* Check permissions for module $app->auth->check_module_permissions('mail'); diff --git a/interface/web/mail/mail_whitelist_edit.php b/interface/web/mail/mail_whitelist_edit.php index 2cf56b1ec451626491830f41acb54196341d6505..35fa825ec78cbdb8d237594cd276ae94ce9199b2 100644 --- a/interface/web/mail/mail_whitelist_edit.php +++ b/interface/web/mail/mail_whitelist_edit.php @@ -53,7 +53,7 @@ class page_action extends tform_actions { function onShowNew() { global $app, $conf; - if($_SESSION["s"]["user"]["typ"] != 'admin') die('This function needs admin priveliges'); + if($_SESSION["s"]["user"]["typ"] != 'admin') die('This function needs admin privileges'); parent::onShowNew(); } @@ -61,7 +61,7 @@ class page_action extends tform_actions { function onBeforeUpdate() { global $app, $conf; - if($_SESSION["s"]["user"]["typ"] != 'admin') die('This function needs admin priveliges'); + if($_SESSION["s"]["user"]["typ"] != 'admin') die('This function needs admin privileges'); //* Check if the server has been changed // We do this only for the admin or reseller users, as normal clients can not change the server ID anyway @@ -77,7 +77,7 @@ class page_action extends tform_actions { function onSubmit() { global $app, $conf; - if($_SESSION["s"]["user"]["typ"] != 'admin') die('This function needs admin priveliges'); + if($_SESSION["s"]["user"]["typ"] != 'admin') die('This function needs admin privileges'); if(substr($this->dataRecord['source'], 0, 1) === '@') $this->dataRecord['source'] = substr($this->dataRecord['source'], 1); diff --git a/interface/web/mail/mail_whitelist_list.php b/interface/web/mail/mail_whitelist_list.php index 1a09b6b16578dd81455536a425d110597ed99168..73877797b4c97e40a333427c4e606793d70e2651 100644 --- a/interface/web/mail/mail_whitelist_list.php +++ b/interface/web/mail/mail_whitelist_list.php @@ -12,7 +12,7 @@ $list_def_file = "list/mail_whitelist.list.php"; * End Form configuration ******************************************/ -if($_SESSION["s"]["user"]["typ"] != 'admin') $app->error('This function needs admin priveliges'); +if($_SESSION["s"]["user"]["typ"] != 'admin') $app->error('This function needs admin privileges'); //* Check permissions for module $app->auth->check_module_permissions('mail'); diff --git a/interface/web/mail/spamfilter_config_edit.php b/interface/web/mail/spamfilter_config_edit.php index 5b3062ab771341d8214ca589d628621f55d53da8..9314feeccc95411b8e05b6eaaec7119af0d369a8 100644 --- a/interface/web/mail/spamfilter_config_edit.php +++ b/interface/web/mail/spamfilter_config_edit.php @@ -53,7 +53,7 @@ class page_action extends tform_actions { function onShowEdit() { global $app, $conf; - if($_SESSION["s"]["user"]["typ"] != 'admin') die('This function needs admin priveliges'); + if($_SESSION["s"]["user"]["typ"] != 'admin') die('This function needs admin privileges'); if($app->tform->errorMessage == '') { $app->uses('ini_parser,getconf'); @@ -73,7 +73,7 @@ class page_action extends tform_actions { function onUpdateSave($sql) { global $app; - if($_SESSION["s"]["user"]["typ"] != 'admin') die('This function needs admin priveliges'); + if($_SESSION["s"]["user"]["typ"] != 'admin') die('This function needs admin privileges'); $app->uses('ini_parser,getconf'); $section = $app->tform->getCurrentTab(); diff --git a/interface/web/mail/templates/mail_user_list.htm b/interface/web/mail/templates/mail_user_list.htm index 69291f4be81b4933ebbd824c7972116b893819b1..12659260acf399c891acb726c32b0fbc28a8f7bc 100644 --- a/interface/web/mail/templates/mail_user_list.htm +++ b/interface/web/mail/templates/mail_user_list.htm @@ -38,6 +38,7 @@ <th class="tiny-col" data-column="autoresponder"><tmpl_var name="autoresponder_txt"></th> <th class="tiny-col" data-column="postfix"><tmpl_var name="postfix_txt"></th> <th class="tiny-col" data-column="disablesmtp"><tmpl_var name="disablesmtp_txt"></th> + <th class="tiny-col" data-column="disabledeliver"><tmpl_var name="disabledeliver_txt"></th> <th class="tiny-col" data-column="disableimap"><tmpl_var name="disableimap_txt"></th> <th class="tiny-col" data-column="disablepop3"><tmpl_var name="disablepop3_txt"></th> <th class="small-col text-right">{tmpl_var name='search_limit'}</th> @@ -49,6 +50,7 @@ <td><select class="form-control" name="search_autoresponder">{tmpl_var name='search_autoresponder'}</select></td> <td><select class="form-control" name="search_postfix">{tmpl_var name='search_postfix'}</select></td> <td><select class="form-control" name="search_disablesmtp">{tmpl_var name='search_disablesmtp'}</select></td> + <td><select class="form-control" name="search_disabledeliver">{tmpl_var name='search_disabledeliver'}</select></td> <td><select class="form-control" name="search_disableimap">{tmpl_var name='search_disableimap'}</select></td> <td><select class="form-control" name="search_disablepop3">{tmpl_var name='search_disablepop3'}</select></td> <td class="text-right"> @@ -65,6 +67,7 @@ <td><a href="#" data-load-content="mail/mail_user_edit.php?id={tmpl_var name='id'}">{tmpl_var name="autoresponder"}</a></td> <td><a href="#" data-load-content="mail/mail_user_edit.php?id={tmpl_var name='id'}">{tmpl_var name="postfix"}</a></td> <td><a href="#" data-load-content="mail/mail_user_edit.php?id={tmpl_var name='id'}">{tmpl_var name="disablesmtp"}</a></td> + <td><a href="#" data-load-content="mail/mail_user_edit.php?id={tmpl_var name='id'}">{tmpl_var name="disabledeliver"}</a></td> <td><a href="#" data-load-content="mail/mail_user_edit.php?id={tmpl_var name='id'}">{tmpl_var name="disableimap"}</a></td> <td><a href="#" data-load-content="mail/mail_user_edit.php?id={tmpl_var name='id'}">{tmpl_var name="disablepop3"}</a></td> <td class="text-right"> diff --git a/interface/web/mail/templates/mail_user_mailbox_edit.htm b/interface/web/mail/templates/mail_user_mailbox_edit.htm index a90799cf11d7b7f777d110c0f7f06d5824f3652c..c53bc8529241ea3b57b923f18936f3af26511c2e 100644 --- a/interface/web/mail/templates/mail_user_mailbox_edit.htm +++ b/interface/web/mail/templates/mail_user_mailbox_edit.htm @@ -67,13 +67,19 @@ <div class="form-group"> <label class="col-sm-3 control-label">{tmpl_var name='postfix_txt'}</label> <div class="col-sm-9"> - {tmpl_var name='postfix'} + <a href="#" data-toggle="tooltip" title="{tmpl_var name='tooltip_postfix_txt'}">{tmpl_var name='postfix'}</a> </div> </div> <div class="form-group"> <label class="col-sm-3 control-label">{tmpl_var name='disablesmtp_txt'}</label> <div class="col-sm-9"> - {tmpl_var name='disablesmtp'} + <a href="#" data-toggle="tooltip" title="{tmpl_var name='tooltip_disablesmtp_txt'}">{tmpl_var name='disablesmtp'}</a> + </div> + </div> + <div class="form-group"> + <label class="col-sm-3 control-label">{tmpl_var name='disabledeliver_txt'}</label> + <div class="col-sm-9"> + <a href="#" data-toggle="tooltip" title="{tmpl_var name='tooltip_disabledeliver_txt'}">{tmpl_var name='disabledeliver'}</a> </div> </div> <div class="form-group"> diff --git a/interface/web/mail/templates/mail_user_mailfilter_edit.htm b/interface/web/mail/templates/mail_user_mailfilter_edit.htm index 4c7058292ea5d3ce31c95acc3f93898d280bf832..8d14eb4ee6fb73f5b515972c07c6a778278bcc8d 100644 --- a/interface/web/mail/templates/mail_user_mailfilter_edit.htm +++ b/interface/web/mail/templates/mail_user_mailfilter_edit.htm @@ -1,6 +1,9 @@ <div class="form-group"> <label class="col-sm-3 control-label">{tmpl_var name='move_junk_txt'}</label> - <div class="col-sm-9">{tmpl_var name='move_junk'}</div> + <div class="col-sm-9"><select name="move_junk" id="move_junk" class="form-control"> + {tmpl_var name='move_junk'} + </select></div> + </div> <div class="form-group"> diff --git a/interface/web/mailuser/form/mail_user_autoresponder.tform.php b/interface/web/mailuser/form/mail_user_autoresponder.tform.php index e642534c13fbf34250aedf51ba88173395857f93..fa4025b532f89f004f02fbb94059a1fe74fd8cf4 100644 --- a/interface/web/mailuser/form/mail_user_autoresponder.tform.php +++ b/interface/web/mailuser/form/mail_user_autoresponder.tform.php @@ -94,16 +94,20 @@ $form["tabs"]['autoresponder'] = array ( 'autoresponder_start_date' => array ( 'datatype' => 'DATETIME', 'formtype' => 'DATETIME', - 'validators'=> array ( 0 => array ( 'type' => 'CUSTOM', - 'class' => 'validate_autoresponder', - 'function' => 'start_date', - 'errmsg'=> 'autoresponder_start_date_isfuture'), - ), + 'validators'=> array ( + 0 => array ( 'type' => 'ISDATETIME', + 'allowempty' => 'y', + 'errmsg'=> 'autoresponder_start_date_is_no_date'), + ) ), 'autoresponder_end_date' => array ( 'datatype' => 'DATETIME', 'formtype' => 'DATETIME', - 'validators' => array ( 0 => array ( 'type' => 'CUSTOM', + 'validators'=> array ( + 0 => array ( 'type' => 'ISDATETIME', + 'allowempty' => 'y', + 'errmsg'=> 'autoresponder_end_date_is_no_date'), + 1 => array ( 'type' => 'CUSTOM', 'class' => 'validate_autoresponder', 'function' => 'end_date', 'errmsg'=> 'autoresponder_end_date_isgreater'), diff --git a/interface/web/mailuser/form/mail_user_filter.tform.php b/interface/web/mailuser/form/mail_user_filter.tform.php index 9fdd8bdfc0ef45c9168a4c5c0d7a6cae694fa651..0f454fa6f751d3439188ac3053eb7f6858f4f720 100644 --- a/interface/web/mailuser/form/mail_user_filter.tform.php +++ b/interface/web/mailuser/form/mail_user_filter.tform.php @@ -32,18 +32,17 @@ */ - global $app; $form["title"] = "mailbox_filter_txt"; -$form["description"] = ""; +$form["description"] = ""; $form["name"] = "mail_user_filter"; $form["action"] = "mail_user_filter_edit.php"; $form["db_table"] = "mail_user_filter"; -$form["db_table_idx"] = "filter_id"; +$form["db_table_idx"] = "filter_id"; $form["db_history"] = "no"; -$form["tab_default"] = "filter"; -$form["list_default"] = "mail_user_filter_list.php"; +$form["tab_default"] = "filter"; +$form["list_default"] = "mail_user_filter_list.php"; $form["auth"] = 'yes'; // yes / no $form["auth_preset"]["userid"] = 0; // 0 = id of the user, > 0 id must match with id of current user @@ -74,6 +73,12 @@ $form["tabs"]['filter'] = array ( 'validators' => array ( 0 => array ( 'type' => 'NOTEMPTY', 'errmsg'=> 'rulename_error_empty'), ), + 'filters' => array( + 0 => array( 'event' => 'SAVE', + 'type' => 'STRIPTAGS'), + 1 => array( 'event' => 'SAVE', + 'type' => 'STRIPNL') + ), 'default' => '', 'value' => '', 'width' => '30', @@ -83,14 +88,14 @@ $form["tabs"]['filter'] = array ( 'datatype' => 'VARCHAR', 'formtype' => 'SELECT', 'default' => '', - 'value' => array('Subject' => 'subject_txt', 'From'=>'from_txt', 'To'=>'to_txt', 'List-Id'=>'list_id_txt') + 'value' => array('Subject' => 'subject_txt', 'From'=>'from_txt', 'To'=>'to_txt', 'List-Id'=>'list_id_txt', 'Header' => 'header_txt', 'Size' => 'size_over_txt') ), 'op' => array ( 'datatype' => 'VARCHAR', 'formtype' => 'SELECT', 'default' => '', //'value' => array('contains'=>'contains_txt','is' => 'Is','begins'=>'Begins with','ends'=>'Ends with') - 'value' => array('contains'=>'contains_txt', 'is' => 'is_txt', 'begins'=>'begins_with_txt', 'ends'=>'ends_with_txt') + 'value' => array('contains'=>'contains_txt', 'is'=>'is_txt', 'begins'=>'begins_with_txt', 'ends'=>'ends_with_txt', 'regex'=>'regex_txt', 'localpart'=>'localpart_txt', 'domain'=>'domain_txt') ), 'searchterm' => array ( 'datatype' => 'VARCHAR', @@ -98,6 +103,10 @@ $form["tabs"]['filter'] = array ( 'validators' => array ( 0 => array ( 'type' => 'NOTEMPTY', 'errmsg'=> 'searchterm_is_empty'), ), + 'filters' => array( + 0 => array( 'event' => 'SAVE', + 'type' => 'STRIPNL') + ), 'default' => '', 'value' => '', 'width' => '30', @@ -107,13 +116,13 @@ $form["tabs"]['filter'] = array ( 'datatype' => 'VARCHAR', 'formtype' => 'SELECT', 'default' => '', - 'value' => array('move' => 'move_to_txt', 'delete'=>'delete_txt') + 'value' => array('move' => 'move_to_txt', 'delete'=>'delete_txt', 'keep' => 'keep_txt', 'reject' => 'reject_txt') ), 'target' => array ( 'datatype' => 'VARCHAR', 'formtype' => 'TEXT', 'validators' => array ( 0 => array ( 'type' => 'REGEX', - 'regex' => '/^[a-zA-Z0-9\.\-\_\ ]{0,100}$/', + 'regex' => '/^[\p{Latin}0-9\.\-\_\ \&]{0,100}$/u', 'errmsg'=> 'target_error_regex'), ), 'default' => '', diff --git a/interface/web/mailuser/lib/lang/ar_mail_user_autoresponder.lng b/interface/web/mailuser/lib/lang/ar_mail_user_autoresponder.lng index 79f386a7dc9da88380ae34d006d729d79894b549..b913b5cfa13d256c5e55b7978669d18e56b6a3b4 100644 --- a/interface/web/mailuser/lib/lang/ar_mail_user_autoresponder.lng +++ b/interface/web/mailuser/lib/lang/ar_mail_user_autoresponder.lng @@ -6,8 +6,8 @@ $wb['autoresponder_txt'] = 'Active'; $wb['autoresponder_start_date_txt'] = 'Start on'; $wb['autoresponder_start_date_isfuture'] = 'Start date cannot be in the past.'; $wb['autoresponder_end_date_txt'] = 'End by'; -$wb['autoresponder_end_date_isgreater'] = 'End date must be set and be later than start date.'; +$wb['autoresponder_end_date_isgreater'] = 'End date must be later than start date.'; $wb['autoresponder_active'] = 'Enable the autoresponder'; $wb['now_txt'] = 'Now'; -$wb['autoresponder_subject_txt'] = 'Betreff'; +$wb['autoresponder_subject_txt'] = 'Subject'; ?> 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 9ac4be357efcb3ce2912c717d9e6f341e9f2941e..0df6e0b75bf88fda9af78ceecd9bb7d07e2ad87d 100644 --- a/interface/web/mailuser/lib/lang/ar_mail_user_filter.lng +++ b/interface/web/mailuser/lib/lang/ar_mail_user_filter.lng @@ -17,6 +17,10 @@ $wb['is_txt'] = 'Is'; $wb['begins_with_txt'] = 'Begins with'; $wb['ends_with_txt'] = 'Ends with'; $wb['move_to_txt'] = 'Move to'; +$wb['regex_txt'] = 'Matches Regex'; $wb['delete_txt'] = 'Delete'; $wb['mailbox_filter_txt'] = 'Mailbox filter'; +$wb['header_txt'] = 'Header'; +$wb['size_over_txt'] = 'Email size over (KB)'; +$wb['size_under_txt'] = 'Email size under (KB)'; ?> diff --git a/interface/web/mailuser/lib/lang/ar_mail_user_spamfilter.lng b/interface/web/mailuser/lib/lang/ar_mail_user_spamfilter.lng index be4bad90504b47914b13a01b95158a862024839e..fc355eb9200d2793eb6e3af79e1dc7d18c8bcd84 100644 --- a/interface/web/mailuser/lib/lang/ar_mail_user_spamfilter.lng +++ b/interface/web/mailuser/lib/lang/ar_mail_user_spamfilter.lng @@ -2,6 +2,6 @@ $wb['mailbox_spamfilter_txt'] = 'Spamfilter'; $wb['spamfilter_txt'] = 'Spamfilter'; $wb['email_txt'] = 'Email'; -$wb['no_policy'] = '- not enabled -'; +$wb['inherit_policy'] = '- Inherit domain setting -'; $wb['policy_txt'] = 'Policy'; ?> diff --git a/interface/web/mailuser/lib/lang/bg_mail_user_autoresponder.lng b/interface/web/mailuser/lib/lang/bg_mail_user_autoresponder.lng index 79f386a7dc9da88380ae34d006d729d79894b549..b913b5cfa13d256c5e55b7978669d18e56b6a3b4 100644 --- a/interface/web/mailuser/lib/lang/bg_mail_user_autoresponder.lng +++ b/interface/web/mailuser/lib/lang/bg_mail_user_autoresponder.lng @@ -6,8 +6,8 @@ $wb['autoresponder_txt'] = 'Active'; $wb['autoresponder_start_date_txt'] = 'Start on'; $wb['autoresponder_start_date_isfuture'] = 'Start date cannot be in the past.'; $wb['autoresponder_end_date_txt'] = 'End by'; -$wb['autoresponder_end_date_isgreater'] = 'End date must be set and be later than start date.'; +$wb['autoresponder_end_date_isgreater'] = 'End date must be later than start date.'; $wb['autoresponder_active'] = 'Enable the autoresponder'; $wb['now_txt'] = 'Now'; -$wb['autoresponder_subject_txt'] = 'Betreff'; +$wb['autoresponder_subject_txt'] = 'Subject'; ?> 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 9ac4be357efcb3ce2912c717d9e6f341e9f2941e..0df6e0b75bf88fda9af78ceecd9bb7d07e2ad87d 100644 --- a/interface/web/mailuser/lib/lang/bg_mail_user_filter.lng +++ b/interface/web/mailuser/lib/lang/bg_mail_user_filter.lng @@ -17,6 +17,10 @@ $wb['is_txt'] = 'Is'; $wb['begins_with_txt'] = 'Begins with'; $wb['ends_with_txt'] = 'Ends with'; $wb['move_to_txt'] = 'Move to'; +$wb['regex_txt'] = 'Matches Regex'; $wb['delete_txt'] = 'Delete'; $wb['mailbox_filter_txt'] = 'Mailbox filter'; +$wb['header_txt'] = 'Header'; +$wb['size_over_txt'] = 'Email size over (KB)'; +$wb['size_under_txt'] = 'Email size under (KB)'; ?> diff --git a/interface/web/mailuser/lib/lang/bg_mail_user_spamfilter.lng b/interface/web/mailuser/lib/lang/bg_mail_user_spamfilter.lng index be4bad90504b47914b13a01b95158a862024839e..fc355eb9200d2793eb6e3af79e1dc7d18c8bcd84 100644 --- a/interface/web/mailuser/lib/lang/bg_mail_user_spamfilter.lng +++ b/interface/web/mailuser/lib/lang/bg_mail_user_spamfilter.lng @@ -2,6 +2,6 @@ $wb['mailbox_spamfilter_txt'] = 'Spamfilter'; $wb['spamfilter_txt'] = 'Spamfilter'; $wb['email_txt'] = 'Email'; -$wb['no_policy'] = '- not enabled -'; +$wb['inherit_policy'] = '- Inherit domain setting -'; $wb['policy_txt'] = 'Policy'; ?> diff --git a/interface/web/mailuser/lib/lang/br_mail_user_autoresponder.lng b/interface/web/mailuser/lib/lang/br_mail_user_autoresponder.lng index 9de387d7988c1b3910083be4afd3d9e73ddb5981..3783bbcb7368e96d2d6b1dca99a67ec23f42064a 100644 --- a/interface/web/mailuser/lib/lang/br_mail_user_autoresponder.lng +++ b/interface/web/mailuser/lib/lang/br_mail_user_autoresponder.lng @@ -6,7 +6,7 @@ $wb['autoresponder_txt'] = 'Ativo'; $wb['autoresponder_start_date_txt'] = 'Iniciar em'; $wb['autoresponder_start_date_isfuture'] = 'O campo "Iniciar em" não pode ser menor que data atual.'; $wb['autoresponder_end_date_txt'] = 'Terminar em'; -$wb['autoresponder_end_date_isgreater'] = 'O campo "Terminar em" não pode ser menor que "Iniciar em".'; +$wb['autoresponder_end_date_isgreater'] = 'End date must be later than start date.'; $wb['autoresponder_active'] = 'Habilitar auto-resposta'; $wb['now_txt'] = 'Agora'; $wb['autoresponder_subject_txt'] = 'Assunto'; diff --git a/interface/web/mailuser/lib/lang/br_mail_user_filter.lng b/interface/web/mailuser/lib/lang/br_mail_user_filter.lng index acefe8be6eeff36105556b42011eefd2fb2f67c1..88a727139136839d0e79ca7e3b3bbffb37efc396 100644 --- a/interface/web/mailuser/lib/lang/br_mail_user_filter.lng +++ b/interface/web/mailuser/lib/lang/br_mail_user_filter.lng @@ -17,5 +17,9 @@ $wb['is_txt'] = 'é'; $wb['begins_with_txt'] = 'Iniciando com'; $wb['ends_with_txt'] = 'Finalizando com'; $wb['move_to_txt'] = 'Mover para'; +$wb['regex_txt'] = 'Matches Regex'; $wb['delete_txt'] = 'Remover'; +$wb['header_txt'] = 'Header'; +$wb['size_over_txt'] = 'Email size over (KB)'; +$wb['size_under_txt'] = 'Email size under (KB)'; ?> diff --git a/interface/web/mailuser/lib/lang/br_mail_user_spamfilter.lng b/interface/web/mailuser/lib/lang/br_mail_user_spamfilter.lng index eb369220412e340952738ed60bffcd81f943c356..360d47d9cc9855f876a078b2d7b8c2756fe920b4 100644 --- a/interface/web/mailuser/lib/lang/br_mail_user_spamfilter.lng +++ b/interface/web/mailuser/lib/lang/br_mail_user_spamfilter.lng @@ -2,6 +2,6 @@ $wb['mailbox_spamfilter_txt'] = 'Filtros anti-spam'; $wb['spamfilter_txt'] = 'Filtro anti-spam'; $wb['email_txt'] = 'e-Mail'; -$wb['no_policy'] = '-desabilitado-'; +$wb['inherit_policy'] = '- Inherit domain setting -'; $wb['policy_txt'] = 'PolÃtica'; ?> diff --git a/interface/web/mailuser/lib/lang/ca_mail_user_autoresponder.lng b/interface/web/mailuser/lib/lang/ca_mail_user_autoresponder.lng index 79f386a7dc9da88380ae34d006d729d79894b549..b913b5cfa13d256c5e55b7978669d18e56b6a3b4 100644 --- a/interface/web/mailuser/lib/lang/ca_mail_user_autoresponder.lng +++ b/interface/web/mailuser/lib/lang/ca_mail_user_autoresponder.lng @@ -6,8 +6,8 @@ $wb['autoresponder_txt'] = 'Active'; $wb['autoresponder_start_date_txt'] = 'Start on'; $wb['autoresponder_start_date_isfuture'] = 'Start date cannot be in the past.'; $wb['autoresponder_end_date_txt'] = 'End by'; -$wb['autoresponder_end_date_isgreater'] = 'End date must be set and be later than start date.'; +$wb['autoresponder_end_date_isgreater'] = 'End date must be later than start date.'; $wb['autoresponder_active'] = 'Enable the autoresponder'; $wb['now_txt'] = 'Now'; -$wb['autoresponder_subject_txt'] = 'Betreff'; +$wb['autoresponder_subject_txt'] = 'Subject'; ?> 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 9ac4be357efcb3ce2912c717d9e6f341e9f2941e..0df6e0b75bf88fda9af78ceecd9bb7d07e2ad87d 100644 --- a/interface/web/mailuser/lib/lang/ca_mail_user_filter.lng +++ b/interface/web/mailuser/lib/lang/ca_mail_user_filter.lng @@ -17,6 +17,10 @@ $wb['is_txt'] = 'Is'; $wb['begins_with_txt'] = 'Begins with'; $wb['ends_with_txt'] = 'Ends with'; $wb['move_to_txt'] = 'Move to'; +$wb['regex_txt'] = 'Matches Regex'; $wb['delete_txt'] = 'Delete'; $wb['mailbox_filter_txt'] = 'Mailbox filter'; +$wb['header_txt'] = 'Header'; +$wb['size_over_txt'] = 'Email size over (KB)'; +$wb['size_under_txt'] = 'Email size under (KB)'; ?> diff --git a/interface/web/mailuser/lib/lang/ca_mail_user_spamfilter.lng b/interface/web/mailuser/lib/lang/ca_mail_user_spamfilter.lng index 2b29913e5f50b9a91e43a10666b8ae2b0aa9add2..00ed8174f494712ea61ddedf8c60ce994849ddfb 100644 --- a/interface/web/mailuser/lib/lang/ca_mail_user_spamfilter.lng +++ b/interface/web/mailuser/lib/lang/ca_mail_user_spamfilter.lng @@ -2,6 +2,6 @@ $wb['mailbox_spamfilter_txt'] = 'Spamfilter'; $wb['spamfilter_txt'] = 'Spamfilter'; $wb['email_txt'] = 'Courriel'; -$wb['no_policy'] = '- not enabled -'; +$wb['inherit_policy'] = '- Inherit domain setting -'; $wb['policy_txt'] = 'Policy'; ?> diff --git a/interface/web/mailuser/lib/lang/cz_mail_user_autoresponder.lng b/interface/web/mailuser/lib/lang/cz_mail_user_autoresponder.lng index ef3aeb42da522378dbd954257bc39bd9b13f3c34..20134a87b5bafc1c1291da2f8e34863bbd18b4be 100644 --- a/interface/web/mailuser/lib/lang/cz_mail_user_autoresponder.lng +++ b/interface/web/mailuser/lib/lang/cz_mail_user_autoresponder.lng @@ -6,7 +6,7 @@ $wb['autoresponder_txt'] = 'AktivnÃ'; $wb['autoresponder_start_date_txt'] = 'ZaÄÃt od'; $wb['autoresponder_start_date_isfuture'] = 'Datum zahájenà nesmà být v minulosti.'; $wb['autoresponder_end_date_txt'] = 'SkonÄit'; -$wb['autoresponder_end_date_isgreater'] = 'Datum ukonÄenà musà být nastaven a musà být pozdÄ›jÅ¡Ã než datum zahájenÃ.'; +$wb['autoresponder_end_date_isgreater'] = 'End date must be later than start date.'; $wb['autoresponder_active'] = 'Povolit automatický odpovÃdaÄ'; $wb['now_txt'] = 'NynÃ'; $wb['autoresponder_subject_txt'] = 'PÅ™edmÄ›t e-mailu'; 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 27b54c1bc7724861e10999d50b093593e8e7757b..010427341ed27597ab4bbe9f3192f65b4939fa92 100644 --- a/interface/web/mailuser/lib/lang/cz_mail_user_filter.lng +++ b/interface/web/mailuser/lib/lang/cz_mail_user_filter.lng @@ -16,6 +16,10 @@ $wb['is_txt'] = 'Je'; $wb['begins_with_txt'] = 'ZaÄÃná na'; $wb['ends_with_txt'] = 'KonÄà na'; $wb['move_to_txt'] = 'PÅ™esunout do'; +$wb['regex_txt'] = 'Matches Regex'; $wb['delete_txt'] = 'Smazat'; $wb['mailbox_filter_txt'] = 'Mailbox filter'; +$wb['header_txt'] = 'Header'; +$wb['size_over_txt'] = 'Email size over (KB)'; +$wb['size_under_txt'] = 'Email size under (KB)'; ?> diff --git a/interface/web/mailuser/lib/lang/cz_mail_user_spamfilter.lng b/interface/web/mailuser/lib/lang/cz_mail_user_spamfilter.lng index 2a53036be6267f69d2f15db97ab7b2087e026eb2..e6a50b96f8c3f1b9c45dc557c95eee25baddff41 100644 --- a/interface/web/mailuser/lib/lang/cz_mail_user_spamfilter.lng +++ b/interface/web/mailuser/lib/lang/cz_mail_user_spamfilter.lng @@ -2,6 +2,6 @@ $wb['mailbox_spamfilter_txt'] = 'Spamový filtr'; $wb['spamfilter_txt'] = 'Spamový filtr'; $wb['email_txt'] = 'E-mail'; -$wb['no_policy'] = '- nepovoleno -'; +$wb['inherit_policy'] = '- Inherit domain setting -'; $wb['policy_txt'] = 'Politika'; ?> diff --git a/interface/web/mailuser/lib/lang/de_mail_user_autoresponder.lng b/interface/web/mailuser/lib/lang/de_mail_user_autoresponder.lng index f8d4e46b12109005789a7d61fd8720d44ac508d9..af164c475d2ce2f35195a211b8ea001f1a3a4d7a 100644 --- a/interface/web/mailuser/lib/lang/de_mail_user_autoresponder.lng +++ b/interface/web/mailuser/lib/lang/de_mail_user_autoresponder.lng @@ -6,7 +6,7 @@ $wb['autoresponder_txt'] = 'Aktiv'; $wb['autoresponder_start_date_txt'] = 'Start am'; $wb['autoresponder_start_date_isfuture'] = 'Start Datum kann nicht in der Vergangenheit sein.'; $wb['autoresponder_end_date_txt'] = 'Ende am'; -$wb['autoresponder_end_date_isgreater'] = 'End Datum muss gesetzt werden und nach dem Start Datum sein.'; +$wb['autoresponder_end_date_isgreater'] = 'End Datum muss nach dem Start Datum sein.'; $wb['autoresponder_active'] = 'Autoresponder aktivieren'; $wb['now_txt'] = 'Jetzt'; $wb['autoresponder_subject_txt'] = 'Betreff'; 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 1665ba14d22763412387e00b009f445090e78d4b..5c7d5c20d0bbd42993711cee5a3c92781a10af13 100644 --- a/interface/web/mailuser/lib/lang/de_mail_user_filter.lng +++ b/interface/web/mailuser/lib/lang/de_mail_user_filter.lng @@ -17,5 +17,9 @@ $wb['is_txt'] = 'Ist'; $wb['begins_with_txt'] = 'Startet mit'; $wb['ends_with_txt'] = 'Endet mit'; $wb['move_to_txt'] = 'Verschieben nach'; +$wb['regex_txt'] = 'Matches Regex'; $wb['delete_txt'] = 'Löschen'; +$wb['header_txt'] = 'Header'; +$wb['size_over_txt'] = 'Email size over (KB)'; +$wb['size_under_txt'] = 'Email size under (KB)'; ?> diff --git a/interface/web/mailuser/lib/lang/de_mail_user_spamfilter.lng b/interface/web/mailuser/lib/lang/de_mail_user_spamfilter.lng index 47ac53a006c373ca32e297350a4cc7929639f6db..d444899a8f8a86013861a657aa28e7628013be3a 100644 --- a/interface/web/mailuser/lib/lang/de_mail_user_spamfilter.lng +++ b/interface/web/mailuser/lib/lang/de_mail_user_spamfilter.lng @@ -2,6 +2,6 @@ $wb['mailbox_spamfilter_txt'] = 'Spamfilter'; $wb['spamfilter_txt'] = 'Spamfilter'; $wb['email_txt'] = 'E-Mail'; -$wb['no_policy'] = '- nicht aktiviert -'; +$wb['inherit_policy'] = '- Inherit domain setting -'; $wb['policy_txt'] = 'Richtlinie'; ?> diff --git a/interface/web/mailuser/lib/lang/dk_mail_user_autoresponder.lng b/interface/web/mailuser/lib/lang/dk_mail_user_autoresponder.lng index 81bee87afb6a1a4f98d8e2c304d8174a01298d5a..e9cf7ba82a58a53eab81f4c19f5a70199744ad33 100644 --- a/interface/web/mailuser/lib/lang/dk_mail_user_autoresponder.lng +++ b/interface/web/mailuser/lib/lang/dk_mail_user_autoresponder.lng @@ -6,7 +6,7 @@ $wb['autoresponder_txt'] = 'Aktiv'; $wb['autoresponder_start_date_txt'] = 'Start d.'; $wb['autoresponder_start_date_isfuture'] = 'Start dato kan ikke være i fortid.'; $wb['autoresponder_end_date_txt'] = 'Slut d.'; -$wb['autoresponder_end_date_isgreater'] = 'Slut dato skal indtastes og være senere end start dato.'; +$wb['autoresponder_end_date_isgreater'] = 'End date must be later than start date.'; $wb['autoresponder_active'] = 'Aktiver autosvarer'; $wb['now_txt'] = 'Nu'; $wb['autoresponder_subject_txt'] = 'Emne'; 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 0a92f580a10ab1548c4a3426f73e1a8cc8fece9b..e2325c6902c8117f2e777929cebe7323407a13c3 100644 --- a/interface/web/mailuser/lib/lang/dk_mail_user_filter.lng +++ b/interface/web/mailuser/lib/lang/dk_mail_user_filter.lng @@ -17,6 +17,10 @@ $wb['is_txt'] = 'Er'; $wb['begins_with_txt'] = 'Begynder med'; $wb['ends_with_txt'] = 'Slutter med'; $wb['move_to_txt'] = 'Flyt til'; +$wb['regex_txt'] = 'Matches Regex'; $wb['delete_txt'] = 'Slet'; $wb['mailbox_filter_txt'] = 'Mailbox filter'; +$wb['header_txt'] = 'Header'; +$wb['size_over_txt'] = 'Email size over (KB)'; +$wb['size_under_txt'] = 'Email size under (KB)'; ?> diff --git a/interface/web/mailuser/lib/lang/dk_mail_user_spamfilter.lng b/interface/web/mailuser/lib/lang/dk_mail_user_spamfilter.lng index f43190d492abf9b7f0a4d3ea87da4c30cfd98620..fb05b7565ce21b5dd5dfba2e7203f5ffe08e1294 100644 --- a/interface/web/mailuser/lib/lang/dk_mail_user_spamfilter.lng +++ b/interface/web/mailuser/lib/lang/dk_mail_user_spamfilter.lng @@ -2,6 +2,6 @@ $wb['mailbox_spamfilter_txt'] = 'Spamfilter'; $wb['spamfilter_txt'] = 'Spamfilter'; $wb['email_txt'] = 'E-mail'; -$wb['no_policy'] = '- ikke aktiveret -'; +$wb['inherit_policy'] = '- Inherit domain setting -'; $wb['policy_txt'] = 'Politik'; ?> diff --git a/interface/web/mailuser/lib/lang/el_mail_user_autoresponder.lng b/interface/web/mailuser/lib/lang/el_mail_user_autoresponder.lng index 79f386a7dc9da88380ae34d006d729d79894b549..b913b5cfa13d256c5e55b7978669d18e56b6a3b4 100644 --- a/interface/web/mailuser/lib/lang/el_mail_user_autoresponder.lng +++ b/interface/web/mailuser/lib/lang/el_mail_user_autoresponder.lng @@ -6,8 +6,8 @@ $wb['autoresponder_txt'] = 'Active'; $wb['autoresponder_start_date_txt'] = 'Start on'; $wb['autoresponder_start_date_isfuture'] = 'Start date cannot be in the past.'; $wb['autoresponder_end_date_txt'] = 'End by'; -$wb['autoresponder_end_date_isgreater'] = 'End date must be set and be later than start date.'; +$wb['autoresponder_end_date_isgreater'] = 'End date must be later than start date.'; $wb['autoresponder_active'] = 'Enable the autoresponder'; $wb['now_txt'] = 'Now'; -$wb['autoresponder_subject_txt'] = 'Betreff'; +$wb['autoresponder_subject_txt'] = 'Subject'; ?> 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 9ac4be357efcb3ce2912c717d9e6f341e9f2941e..0df6e0b75bf88fda9af78ceecd9bb7d07e2ad87d 100644 --- a/interface/web/mailuser/lib/lang/el_mail_user_filter.lng +++ b/interface/web/mailuser/lib/lang/el_mail_user_filter.lng @@ -17,6 +17,10 @@ $wb['is_txt'] = 'Is'; $wb['begins_with_txt'] = 'Begins with'; $wb['ends_with_txt'] = 'Ends with'; $wb['move_to_txt'] = 'Move to'; +$wb['regex_txt'] = 'Matches Regex'; $wb['delete_txt'] = 'Delete'; $wb['mailbox_filter_txt'] = 'Mailbox filter'; +$wb['header_txt'] = 'Header'; +$wb['size_over_txt'] = 'Email size over (KB)'; +$wb['size_under_txt'] = 'Email size under (KB)'; ?> diff --git a/interface/web/mailuser/lib/lang/el_mail_user_spamfilter.lng b/interface/web/mailuser/lib/lang/el_mail_user_spamfilter.lng index be4bad90504b47914b13a01b95158a862024839e..fc355eb9200d2793eb6e3af79e1dc7d18c8bcd84 100644 --- a/interface/web/mailuser/lib/lang/el_mail_user_spamfilter.lng +++ b/interface/web/mailuser/lib/lang/el_mail_user_spamfilter.lng @@ -2,6 +2,6 @@ $wb['mailbox_spamfilter_txt'] = 'Spamfilter'; $wb['spamfilter_txt'] = 'Spamfilter'; $wb['email_txt'] = 'Email'; -$wb['no_policy'] = '- not enabled -'; +$wb['inherit_policy'] = '- Inherit domain setting -'; $wb['policy_txt'] = 'Policy'; ?> diff --git a/interface/web/mailuser/lib/lang/en_mail_user_autoresponder.lng b/interface/web/mailuser/lib/lang/en_mail_user_autoresponder.lng index a736abf69082154b13322b64dba298c66a1927c3..e0028159433081752c19a822a3d2954b71f5b9ec 100644 --- a/interface/web/mailuser/lib/lang/en_mail_user_autoresponder.lng +++ b/interface/web/mailuser/lib/lang/en_mail_user_autoresponder.lng @@ -9,5 +9,5 @@ $wb["autoresponder_end_date_txt"] = 'End by'; $wb["autoresponder_end_date_isgreater"] = 'End date must be set and be later than start date.'; $wb['autoresponder_active'] = 'Enable the autoresponder'; $wb['now_txt']='Now'; -$wb['autoresponder_subject_txt'] = 'Betreff'; +$wb['autoresponder_subject_txt'] = 'Subject'; ?> 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 c26150ba1d183e8cea68c1aa9e3d0d3fc246664d..fb587d43805d11f0367cdcfc795af9582e31eb60 100644 --- a/interface/web/mailuser/lib/lang/en_mail_user_filter.lng +++ b/interface/web/mailuser/lib/lang/en_mail_user_filter.lng @@ -18,5 +18,9 @@ $wb['is_txt'] = 'Is'; $wb['begins_with_txt'] = 'Begins with'; $wb['ends_with_txt'] = 'Ends with'; $wb['move_to_txt'] = 'Move to'; +$wb['regex_txt'] = 'Matches Regex'; $wb['delete_txt'] = 'Delete'; +$wb['header_txt'] = 'Header'; +$wb['size_over_txt'] = 'Email size over (KB)'; +$wb['size_under_txt'] = 'Email size under (KB)'; ?> diff --git a/interface/web/mailuser/lib/lang/en_mail_user_spamfilter.lng b/interface/web/mailuser/lib/lang/en_mail_user_spamfilter.lng index 8f95dd37a7f189f860cfaf8bf81a7b809272b3c4..030e4fce593a656d5d953ee6a8d55a1f1df79754 100644 --- a/interface/web/mailuser/lib/lang/en_mail_user_spamfilter.lng +++ b/interface/web/mailuser/lib/lang/en_mail_user_spamfilter.lng @@ -2,6 +2,6 @@ $wb["mailbox_spamfilter_txt"] = 'Spamfilter'; $wb["spamfilter_txt"] = 'Spamfilter'; $wb["email_txt"] = 'Email'; -$wb["no_policy"] = '- not enabled -'; +$wb['inherit_policy'] = '- Inherit domain setting -'; $wb["policy_txt"] = 'Policy'; -?> \ No newline at end of file +?> diff --git a/interface/web/mailuser/lib/lang/es_mail_user_autoresponder.lng b/interface/web/mailuser/lib/lang/es_mail_user_autoresponder.lng index 577951ea2b3e48d743ff96b83fed676c4f8afc45..04e55b28b9a688a0b38168f315e6dbf9b846f2f2 100644 --- a/interface/web/mailuser/lib/lang/es_mail_user_autoresponder.lng +++ b/interface/web/mailuser/lib/lang/es_mail_user_autoresponder.lng @@ -1,6 +1,6 @@ <?php $wb['autoresponder_active'] = 'Activar auto respuesta'; -$wb['autoresponder_end_date_isgreater'] = 'Debe indicar la fecha de finalización y esta debe ser mayor a la de inicio.'; +$wb['autoresponder_end_date_isgreater'] = 'End date must be later than start date.'; $wb['autoresponder_end_date_txt'] = 'Finaliza el'; $wb['autoresponder_start_date_txt'] = 'Comienza el'; $wb['autoresponder_subject'] = 'Estoy fuera de la oficina'; 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 b8a19359f538c8da7ff662b0310b29eb3c95e96a..3485ea46014c3bf3c747159346fc234675d56ad6 100644 --- a/interface/web/mailuser/lib/lang/es_mail_user_filter.lng +++ b/interface/web/mailuser/lib/lang/es_mail_user_filter.lng @@ -3,6 +3,7 @@ $wb['action_txt'] = 'Acción'; $wb['active_txt'] = 'Habilitado'; $wb['begins_with_txt'] = 'Comienza con'; $wb['contains_txt'] = 'Contiene'; +$wb['regex_txt'] = 'Matches Regex'; $wb['delete_txt'] = 'Borrar'; $wb['ends_with_txt'] = 'Termina con'; $wb['from_txt'] = 'De'; @@ -19,4 +20,7 @@ $wb['target_txt'] = 'Carpeta'; $wb['to_txt'] = 'Para'; $wb['list_id_txt'] = 'List ID'; $wb['mailbox_filter_txt'] = 'Mailbox filter'; +$wb['header_txt'] = 'Header'; +$wb['size_over_txt'] = 'Email size over (KB)'; +$wb['size_under_txt'] = 'Email size under (KB)'; ?> diff --git a/interface/web/mailuser/lib/lang/es_mail_user_spamfilter.lng b/interface/web/mailuser/lib/lang/es_mail_user_spamfilter.lng index 31d7ba7c745979e7d380a11c91ff286e4b086ef1..2496d26f9343554b37b4bfe65f784fdbd7e51db5 100644 --- a/interface/web/mailuser/lib/lang/es_mail_user_spamfilter.lng +++ b/interface/web/mailuser/lib/lang/es_mail_user_spamfilter.lng @@ -1,7 +1,7 @@ <?php $wb['email_txt'] = 'Correo'; $wb['mailbox_spamfilter_txt'] = 'Filtro de spam'; -$wb['no_policy'] = '- no habilitado -'; +$wb['inherit_policy'] = '- Inherit domain setting -'; $wb['policy_txt'] = 'Directiva'; $wb['spamfilter_txt'] = 'Filtro de spam'; ?> diff --git a/interface/web/mailuser/lib/lang/fi_mail_user_autoresponder.lng b/interface/web/mailuser/lib/lang/fi_mail_user_autoresponder.lng index 79f386a7dc9da88380ae34d006d729d79894b549..b913b5cfa13d256c5e55b7978669d18e56b6a3b4 100644 --- a/interface/web/mailuser/lib/lang/fi_mail_user_autoresponder.lng +++ b/interface/web/mailuser/lib/lang/fi_mail_user_autoresponder.lng @@ -6,8 +6,8 @@ $wb['autoresponder_txt'] = 'Active'; $wb['autoresponder_start_date_txt'] = 'Start on'; $wb['autoresponder_start_date_isfuture'] = 'Start date cannot be in the past.'; $wb['autoresponder_end_date_txt'] = 'End by'; -$wb['autoresponder_end_date_isgreater'] = 'End date must be set and be later than start date.'; +$wb['autoresponder_end_date_isgreater'] = 'End date must be later than start date.'; $wb['autoresponder_active'] = 'Enable the autoresponder'; $wb['now_txt'] = 'Now'; -$wb['autoresponder_subject_txt'] = 'Betreff'; +$wb['autoresponder_subject_txt'] = 'Subject'; ?> 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 9ac4be357efcb3ce2912c717d9e6f341e9f2941e..0df6e0b75bf88fda9af78ceecd9bb7d07e2ad87d 100644 --- a/interface/web/mailuser/lib/lang/fi_mail_user_filter.lng +++ b/interface/web/mailuser/lib/lang/fi_mail_user_filter.lng @@ -17,6 +17,10 @@ $wb['is_txt'] = 'Is'; $wb['begins_with_txt'] = 'Begins with'; $wb['ends_with_txt'] = 'Ends with'; $wb['move_to_txt'] = 'Move to'; +$wb['regex_txt'] = 'Matches Regex'; $wb['delete_txt'] = 'Delete'; $wb['mailbox_filter_txt'] = 'Mailbox filter'; +$wb['header_txt'] = 'Header'; +$wb['size_over_txt'] = 'Email size over (KB)'; +$wb['size_under_txt'] = 'Email size under (KB)'; ?> diff --git a/interface/web/mailuser/lib/lang/fi_mail_user_spamfilter.lng b/interface/web/mailuser/lib/lang/fi_mail_user_spamfilter.lng index be4bad90504b47914b13a01b95158a862024839e..fc355eb9200d2793eb6e3af79e1dc7d18c8bcd84 100644 --- a/interface/web/mailuser/lib/lang/fi_mail_user_spamfilter.lng +++ b/interface/web/mailuser/lib/lang/fi_mail_user_spamfilter.lng @@ -2,6 +2,6 @@ $wb['mailbox_spamfilter_txt'] = 'Spamfilter'; $wb['spamfilter_txt'] = 'Spamfilter'; $wb['email_txt'] = 'Email'; -$wb['no_policy'] = '- not enabled -'; +$wb['inherit_policy'] = '- Inherit domain setting -'; $wb['policy_txt'] = 'Policy'; ?> 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 b630b05a796f592e64d7722dffef06db7bf8376b..d2b513b1556b933502763224c3b2ef0ec7c9a267 100644 --- a/interface/web/mailuser/lib/lang/fr_mail_user_filter.lng +++ b/interface/web/mailuser/lib/lang/fr_mail_user_filter.lng @@ -16,6 +16,10 @@ $wb['is_txt'] = 'est'; $wb['begins_with_txt'] = 'Commence par'; $wb['ends_with_txt'] = 'Fini par'; $wb['move_to_txt'] = 'Déplacer vers'; +$wb['regex_txt'] = 'Matches Regex'; $wb['delete_txt'] = 'Supprimer'; $wb['mailbox_filter_txt'] = 'Mailbox filter'; +$wb['header_txt'] = 'Header'; +$wb['size_over_txt'] = 'Email size over (KB)'; +$wb['size_under_txt'] = 'Email size under (KB)'; ?> diff --git a/interface/web/mailuser/lib/lang/fr_mail_user_spamfilter.lng b/interface/web/mailuser/lib/lang/fr_mail_user_spamfilter.lng index f6bcd5d32d56d5e23febc29484310978311cf27d..1574f45f3f1f33650325d8688daa2b2ae2d9fa8f 100644 --- a/interface/web/mailuser/lib/lang/fr_mail_user_spamfilter.lng +++ b/interface/web/mailuser/lib/lang/fr_mail_user_spamfilter.lng @@ -2,6 +2,6 @@ $wb['mailbox_spamfilter_txt'] = 'Filtre anti-spam'; $wb['spamfilter_txt'] = 'Filtre anti-spam'; $wb['email_txt'] = 'E-mail'; -$wb['no_policy'] = '- non activé -'; +$wb['inherit_policy'] = '- Inherit domain setting -'; $wb['policy_txt'] = 'Stratégie'; ?> diff --git a/interface/web/mailuser/lib/lang/hr_mail_user_autoresponder.lng b/interface/web/mailuser/lib/lang/hr_mail_user_autoresponder.lng index bbb3b79bc4f1bb311b5a0bd6fff0c22d353d31e2..711cfde14f935cf63a83956e05e6cb11d6a21a10 100644 --- a/interface/web/mailuser/lib/lang/hr_mail_user_autoresponder.lng +++ b/interface/web/mailuser/lib/lang/hr_mail_user_autoresponder.lng @@ -6,8 +6,8 @@ $wb['autoresponder_txt'] = 'Active'; $wb['autoresponder_start_date_txt'] = 'Start on'; $wb['autoresponder_start_date_isfuture'] = 'Start date cannot be in the past.'; $wb['autoresponder_end_date_txt'] = 'End by'; -$wb['autoresponder_end_date_isgreater'] = 'End date must be set and be later than start date.'; +$wb['autoresponder_end_date_isgreater'] = 'End date must be later than start date.'; $wb['autoresponder_active'] = 'Enable the autoresponder'; $wb['now_txt'] = 'Sada'; -$wb['autoresponder_subject_txt'] = 'Betreff'; +$wb['autoresponder_subject_txt'] = 'Subject'; ?> 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 b2793c38051161f8abb79e740d889c3bdf142ff1..dfb58bd3d2ed2f0c4deeb08204854a9d8f697666 100644 --- a/interface/web/mailuser/lib/lang/hr_mail_user_filter.lng +++ b/interface/web/mailuser/lib/lang/hr_mail_user_filter.lng @@ -16,6 +16,10 @@ $wb['is_txt'] = 'je'; $wb['begins_with_txt'] = 'PoÄinje sa'; $wb['ends_with_txt'] = 'ZavrÅ¡ava sa'; $wb['move_to_txt'] = 'Prebaci u '; +$wb['regex_txt'] = 'Matches Regex'; $wb['delete_txt'] = 'ObriÅ¡i'; $wb['mailbox_filter_txt'] = 'Mailbox filter'; +$wb['header_txt'] = 'Header'; +$wb['size_over_txt'] = 'Email size over (KB)'; +$wb['size_under_txt'] = 'Email size under (KB)'; ?> diff --git a/interface/web/mailuser/lib/lang/hr_mail_user_spamfilter.lng b/interface/web/mailuser/lib/lang/hr_mail_user_spamfilter.lng index 7d7130e816f07ff0e613203d47b8877069f37a36..b2d208a09884a3808d04c06cebd129dceb6bf8b7 100644 --- a/interface/web/mailuser/lib/lang/hr_mail_user_spamfilter.lng +++ b/interface/web/mailuser/lib/lang/hr_mail_user_spamfilter.lng @@ -2,6 +2,6 @@ $wb['mailbox_spamfilter_txt'] = 'Spam filter'; $wb['spamfilter_txt'] = 'Spam filter'; $wb['email_txt'] = 'Email'; -$wb['no_policy'] = '- iskljuÄeno -'; +$wb['inherit_policy'] = '- Inherit domain setting -'; $wb['policy_txt'] = 'Pravila'; ?> diff --git a/interface/web/mailuser/lib/lang/hu_mail_user_autoresponder.lng b/interface/web/mailuser/lib/lang/hu_mail_user_autoresponder.lng index 79f386a7dc9da88380ae34d006d729d79894b549..b913b5cfa13d256c5e55b7978669d18e56b6a3b4 100644 --- a/interface/web/mailuser/lib/lang/hu_mail_user_autoresponder.lng +++ b/interface/web/mailuser/lib/lang/hu_mail_user_autoresponder.lng @@ -6,8 +6,8 @@ $wb['autoresponder_txt'] = 'Active'; $wb['autoresponder_start_date_txt'] = 'Start on'; $wb['autoresponder_start_date_isfuture'] = 'Start date cannot be in the past.'; $wb['autoresponder_end_date_txt'] = 'End by'; -$wb['autoresponder_end_date_isgreater'] = 'End date must be set and be later than start date.'; +$wb['autoresponder_end_date_isgreater'] = 'End date must be later than start date.'; $wb['autoresponder_active'] = 'Enable the autoresponder'; $wb['now_txt'] = 'Now'; -$wb['autoresponder_subject_txt'] = 'Betreff'; +$wb['autoresponder_subject_txt'] = 'Subject'; ?> 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 9ac4be357efcb3ce2912c717d9e6f341e9f2941e..0df6e0b75bf88fda9af78ceecd9bb7d07e2ad87d 100644 --- a/interface/web/mailuser/lib/lang/hu_mail_user_filter.lng +++ b/interface/web/mailuser/lib/lang/hu_mail_user_filter.lng @@ -17,6 +17,10 @@ $wb['is_txt'] = 'Is'; $wb['begins_with_txt'] = 'Begins with'; $wb['ends_with_txt'] = 'Ends with'; $wb['move_to_txt'] = 'Move to'; +$wb['regex_txt'] = 'Matches Regex'; $wb['delete_txt'] = 'Delete'; $wb['mailbox_filter_txt'] = 'Mailbox filter'; +$wb['header_txt'] = 'Header'; +$wb['size_over_txt'] = 'Email size over (KB)'; +$wb['size_under_txt'] = 'Email size under (KB)'; ?> diff --git a/interface/web/mailuser/lib/lang/hu_mail_user_spamfilter.lng b/interface/web/mailuser/lib/lang/hu_mail_user_spamfilter.lng index be4bad90504b47914b13a01b95158a862024839e..fc355eb9200d2793eb6e3af79e1dc7d18c8bcd84 100644 --- a/interface/web/mailuser/lib/lang/hu_mail_user_spamfilter.lng +++ b/interface/web/mailuser/lib/lang/hu_mail_user_spamfilter.lng @@ -2,6 +2,6 @@ $wb['mailbox_spamfilter_txt'] = 'Spamfilter'; $wb['spamfilter_txt'] = 'Spamfilter'; $wb['email_txt'] = 'Email'; -$wb['no_policy'] = '- not enabled -'; +$wb['inherit_policy'] = '- Inherit domain setting -'; $wb['policy_txt'] = 'Policy'; ?> diff --git a/interface/web/mailuser/lib/lang/id_mail_user_autoresponder.lng b/interface/web/mailuser/lib/lang/id_mail_user_autoresponder.lng index 79f386a7dc9da88380ae34d006d729d79894b549..b913b5cfa13d256c5e55b7978669d18e56b6a3b4 100644 --- a/interface/web/mailuser/lib/lang/id_mail_user_autoresponder.lng +++ b/interface/web/mailuser/lib/lang/id_mail_user_autoresponder.lng @@ -6,8 +6,8 @@ $wb['autoresponder_txt'] = 'Active'; $wb['autoresponder_start_date_txt'] = 'Start on'; $wb['autoresponder_start_date_isfuture'] = 'Start date cannot be in the past.'; $wb['autoresponder_end_date_txt'] = 'End by'; -$wb['autoresponder_end_date_isgreater'] = 'End date must be set and be later than start date.'; +$wb['autoresponder_end_date_isgreater'] = 'End date must be later than start date.'; $wb['autoresponder_active'] = 'Enable the autoresponder'; $wb['now_txt'] = 'Now'; -$wb['autoresponder_subject_txt'] = 'Betreff'; +$wb['autoresponder_subject_txt'] = 'Subject'; ?> 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 9ac4be357efcb3ce2912c717d9e6f341e9f2941e..0df6e0b75bf88fda9af78ceecd9bb7d07e2ad87d 100644 --- a/interface/web/mailuser/lib/lang/id_mail_user_filter.lng +++ b/interface/web/mailuser/lib/lang/id_mail_user_filter.lng @@ -17,6 +17,10 @@ $wb['is_txt'] = 'Is'; $wb['begins_with_txt'] = 'Begins with'; $wb['ends_with_txt'] = 'Ends with'; $wb['move_to_txt'] = 'Move to'; +$wb['regex_txt'] = 'Matches Regex'; $wb['delete_txt'] = 'Delete'; $wb['mailbox_filter_txt'] = 'Mailbox filter'; +$wb['header_txt'] = 'Header'; +$wb['size_over_txt'] = 'Email size over (KB)'; +$wb['size_under_txt'] = 'Email size under (KB)'; ?> diff --git a/interface/web/mailuser/lib/lang/id_mail_user_spamfilter.lng b/interface/web/mailuser/lib/lang/id_mail_user_spamfilter.lng index be4bad90504b47914b13a01b95158a862024839e..fc355eb9200d2793eb6e3af79e1dc7d18c8bcd84 100644 --- a/interface/web/mailuser/lib/lang/id_mail_user_spamfilter.lng +++ b/interface/web/mailuser/lib/lang/id_mail_user_spamfilter.lng @@ -2,6 +2,6 @@ $wb['mailbox_spamfilter_txt'] = 'Spamfilter'; $wb['spamfilter_txt'] = 'Spamfilter'; $wb['email_txt'] = 'Email'; -$wb['no_policy'] = '- not enabled -'; +$wb['inherit_policy'] = '- Inherit domain setting -'; $wb['policy_txt'] = 'Policy'; ?> diff --git a/interface/web/mailuser/lib/lang/it_mail_user_autoresponder.lng b/interface/web/mailuser/lib/lang/it_mail_user_autoresponder.lng index caaac2e7c4d116ec1da199d82a8e9831fa60c8fa..0bc9b162f0f93e99ee468f432ab01d362774d7ec 100644 --- a/interface/web/mailuser/lib/lang/it_mail_user_autoresponder.lng +++ b/interface/web/mailuser/lib/lang/it_mail_user_autoresponder.lng @@ -6,8 +6,8 @@ $wb['autoresponder_txt'] = 'Attivo'; $wb['autoresponder_start_date_txt'] = 'Start on'; $wb['autoresponder_start_date_isfuture'] = 'Start date cannot be in the past.'; $wb['autoresponder_end_date_txt'] = 'End by'; -$wb['autoresponder_end_date_isgreater'] = 'End date must be set and be later than start date.'; +$wb['autoresponder_end_date_isgreater'] = 'End date must be later than start date.'; $wb['autoresponder_active'] = 'Enable the autoresponder'; $wb['now_txt'] = 'Now'; -$wb['autoresponder_subject_txt'] = 'Betreff'; +$wb['autoresponder_subject_txt'] = 'Subject'; ?> 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 49c335860182218e8edcfb036e935e647f5a7958..a0b9e360c2875f47f9846ea00a77436949d4d8ed 100644 --- a/interface/web/mailuser/lib/lang/it_mail_user_filter.lng +++ b/interface/web/mailuser/lib/lang/it_mail_user_filter.lng @@ -16,6 +16,10 @@ $wb['is_txt'] = 'è'; $wb['begins_with_txt'] = 'Inizia con'; $wb['ends_with_txt'] = 'Termina con'; $wb['move_to_txt'] = 'Sposta in'; +$wb['regex_txt'] = 'Matches Regex'; $wb['delete_txt'] = 'Elimina'; $wb['mailbox_filter_txt'] = 'Mailbox filter'; +$wb['header_txt'] = 'Header'; +$wb['size_over_txt'] = 'Email size over (KB)'; +$wb['size_under_txt'] = 'Email size under (KB)'; ?> diff --git a/interface/web/mailuser/lib/lang/it_mail_user_spamfilter.lng b/interface/web/mailuser/lib/lang/it_mail_user_spamfilter.lng index 9d4c5496ea57b829cbbcc4e00b1ef1f6994c3d9e..fc355eb9200d2793eb6e3af79e1dc7d18c8bcd84 100644 --- a/interface/web/mailuser/lib/lang/it_mail_user_spamfilter.lng +++ b/interface/web/mailuser/lib/lang/it_mail_user_spamfilter.lng @@ -2,6 +2,6 @@ $wb['mailbox_spamfilter_txt'] = 'Spamfilter'; $wb['spamfilter_txt'] = 'Spamfilter'; $wb['email_txt'] = 'Email'; -$wb['no_policy'] = '- non abilitato -'; +$wb['inherit_policy'] = '- Inherit domain setting -'; $wb['policy_txt'] = 'Policy'; ?> diff --git a/interface/web/mailuser/lib/lang/ja_mail_user_autoresponder.lng b/interface/web/mailuser/lib/lang/ja_mail_user_autoresponder.lng index 79f386a7dc9da88380ae34d006d729d79894b549..b913b5cfa13d256c5e55b7978669d18e56b6a3b4 100644 --- a/interface/web/mailuser/lib/lang/ja_mail_user_autoresponder.lng +++ b/interface/web/mailuser/lib/lang/ja_mail_user_autoresponder.lng @@ -6,8 +6,8 @@ $wb['autoresponder_txt'] = 'Active'; $wb['autoresponder_start_date_txt'] = 'Start on'; $wb['autoresponder_start_date_isfuture'] = 'Start date cannot be in the past.'; $wb['autoresponder_end_date_txt'] = 'End by'; -$wb['autoresponder_end_date_isgreater'] = 'End date must be set and be later than start date.'; +$wb['autoresponder_end_date_isgreater'] = 'End date must be later than start date.'; $wb['autoresponder_active'] = 'Enable the autoresponder'; $wb['now_txt'] = 'Now'; -$wb['autoresponder_subject_txt'] = 'Betreff'; +$wb['autoresponder_subject_txt'] = 'Subject'; ?> 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 9ac4be357efcb3ce2912c717d9e6f341e9f2941e..0df6e0b75bf88fda9af78ceecd9bb7d07e2ad87d 100644 --- a/interface/web/mailuser/lib/lang/ja_mail_user_filter.lng +++ b/interface/web/mailuser/lib/lang/ja_mail_user_filter.lng @@ -17,6 +17,10 @@ $wb['is_txt'] = 'Is'; $wb['begins_with_txt'] = 'Begins with'; $wb['ends_with_txt'] = 'Ends with'; $wb['move_to_txt'] = 'Move to'; +$wb['regex_txt'] = 'Matches Regex'; $wb['delete_txt'] = 'Delete'; $wb['mailbox_filter_txt'] = 'Mailbox filter'; +$wb['header_txt'] = 'Header'; +$wb['size_over_txt'] = 'Email size over (KB)'; +$wb['size_under_txt'] = 'Email size under (KB)'; ?> diff --git a/interface/web/mailuser/lib/lang/ja_mail_user_spamfilter.lng b/interface/web/mailuser/lib/lang/ja_mail_user_spamfilter.lng index be4bad90504b47914b13a01b95158a862024839e..fc355eb9200d2793eb6e3af79e1dc7d18c8bcd84 100644 --- a/interface/web/mailuser/lib/lang/ja_mail_user_spamfilter.lng +++ b/interface/web/mailuser/lib/lang/ja_mail_user_spamfilter.lng @@ -2,6 +2,6 @@ $wb['mailbox_spamfilter_txt'] = 'Spamfilter'; $wb['spamfilter_txt'] = 'Spamfilter'; $wb['email_txt'] = 'Email'; -$wb['no_policy'] = '- not enabled -'; +$wb['inherit_policy'] = '- Inherit domain setting -'; $wb['policy_txt'] = 'Policy'; ?> 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 0092c288a06a1845afa038f398c497dd2129e7b1..91dfd85373130da5060cdb0bad5ff159bde4d5c1 100644 --- a/interface/web/mailuser/lib/lang/nl_mail_user_filter.lng +++ b/interface/web/mailuser/lib/lang/nl_mail_user_filter.lng @@ -16,6 +16,10 @@ $wb['is_txt'] = "Is"; $wb['begins_with_txt'] = "Begint met"; $wb['ends_with_txt'] = "Endigt in"; $wb['move_to_txt'] = "Verplaatsen naar"; +$wb['regex_txt'] = 'Matches Regex'; $wb['delete_txt'] = "Verwijderen"; $wb['mailbox_filter_txt'] = "Mailbox filter"; +$wb['header_txt'] = 'Header'; +$wb['size_over_txt'] = 'Email size over (KB)'; +$wb['size_under_txt'] = 'Email size under (KB)'; ?> diff --git a/interface/web/mailuser/lib/lang/nl_mail_user_spamfilter.lng b/interface/web/mailuser/lib/lang/nl_mail_user_spamfilter.lng index be4bad90504b47914b13a01b95158a862024839e..fc355eb9200d2793eb6e3af79e1dc7d18c8bcd84 100644 --- a/interface/web/mailuser/lib/lang/nl_mail_user_spamfilter.lng +++ b/interface/web/mailuser/lib/lang/nl_mail_user_spamfilter.lng @@ -2,6 +2,6 @@ $wb['mailbox_spamfilter_txt'] = 'Spamfilter'; $wb['spamfilter_txt'] = 'Spamfilter'; $wb['email_txt'] = 'Email'; -$wb['no_policy'] = '- not enabled -'; +$wb['inherit_policy'] = '- Inherit domain setting -'; $wb['policy_txt'] = 'Policy'; ?> diff --git a/interface/web/mailuser/lib/lang/pl_mail_user_autoresponder.lng b/interface/web/mailuser/lib/lang/pl_mail_user_autoresponder.lng index 7a28409e5f440ea40a35f110191fc5d5f105aff4..79019190c66137724e818d10c861fce8e1303f84 100644 --- a/interface/web/mailuser/lib/lang/pl_mail_user_autoresponder.lng +++ b/interface/web/mailuser/lib/lang/pl_mail_user_autoresponder.lng @@ -6,7 +6,7 @@ $wb['autoresponder_txt'] = 'Aktywny'; $wb['autoresponder_start_date_txt'] = 'Start'; $wb['autoresponder_start_date_isfuture'] = 'Data startu nie może być z przeszÅ‚oÅ›ci'; $wb['autoresponder_end_date_txt'] = 'Koniec'; -$wb['autoresponder_end_date_isgreater'] = 'Data koÅ„cowa musi być ustawiona i być późniejsza niż startu.'; +$wb['autoresponder_end_date_isgreater'] = 'End date must be later than start date.'; $wb['autoresponder_active'] = 'WÅ‚Ä…cz autoresponder'; $wb['now_txt'] = 'Teraz'; $wb['autoresponder_subject_txt'] = 'Temat'; 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 9ac4be357efcb3ce2912c717d9e6f341e9f2941e..0df6e0b75bf88fda9af78ceecd9bb7d07e2ad87d 100644 --- a/interface/web/mailuser/lib/lang/pl_mail_user_filter.lng +++ b/interface/web/mailuser/lib/lang/pl_mail_user_filter.lng @@ -17,6 +17,10 @@ $wb['is_txt'] = 'Is'; $wb['begins_with_txt'] = 'Begins with'; $wb['ends_with_txt'] = 'Ends with'; $wb['move_to_txt'] = 'Move to'; +$wb['regex_txt'] = 'Matches Regex'; $wb['delete_txt'] = 'Delete'; $wb['mailbox_filter_txt'] = 'Mailbox filter'; +$wb['header_txt'] = 'Header'; +$wb['size_over_txt'] = 'Email size over (KB)'; +$wb['size_under_txt'] = 'Email size under (KB)'; ?> diff --git a/interface/web/mailuser/lib/lang/pl_mail_user_spamfilter.lng b/interface/web/mailuser/lib/lang/pl_mail_user_spamfilter.lng index b371f3ea75110524e3387db7708d06df87426121..5a530c0c5edd1720770bb5e12afe77a2b91ef694 100644 --- a/interface/web/mailuser/lib/lang/pl_mail_user_spamfilter.lng +++ b/interface/web/mailuser/lib/lang/pl_mail_user_spamfilter.lng @@ -2,6 +2,6 @@ $wb['mailbox_spamfilter_txt'] = 'Ustawienia filtra spamu'; $wb['spamfilter_txt'] = 'Filtr spamu'; $wb['email_txt'] = 'E-mail'; -$wb['no_policy'] = '- nie wÅ‚Ä…czony -'; +$wb['inherit_policy'] = '- Inherit domain setting -'; $wb['policy_txt'] = 'Polityka'; ?> diff --git a/interface/web/mailuser/lib/lang/pt_mail_user_autoresponder.lng b/interface/web/mailuser/lib/lang/pt_mail_user_autoresponder.lng index 79f386a7dc9da88380ae34d006d729d79894b549..b913b5cfa13d256c5e55b7978669d18e56b6a3b4 100644 --- a/interface/web/mailuser/lib/lang/pt_mail_user_autoresponder.lng +++ b/interface/web/mailuser/lib/lang/pt_mail_user_autoresponder.lng @@ -6,8 +6,8 @@ $wb['autoresponder_txt'] = 'Active'; $wb['autoresponder_start_date_txt'] = 'Start on'; $wb['autoresponder_start_date_isfuture'] = 'Start date cannot be in the past.'; $wb['autoresponder_end_date_txt'] = 'End by'; -$wb['autoresponder_end_date_isgreater'] = 'End date must be set and be later than start date.'; +$wb['autoresponder_end_date_isgreater'] = 'End date must be later than start date.'; $wb['autoresponder_active'] = 'Enable the autoresponder'; $wb['now_txt'] = 'Now'; -$wb['autoresponder_subject_txt'] = 'Betreff'; +$wb['autoresponder_subject_txt'] = 'Subject'; ?> 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 9ac4be357efcb3ce2912c717d9e6f341e9f2941e..0df6e0b75bf88fda9af78ceecd9bb7d07e2ad87d 100644 --- a/interface/web/mailuser/lib/lang/pt_mail_user_filter.lng +++ b/interface/web/mailuser/lib/lang/pt_mail_user_filter.lng @@ -17,6 +17,10 @@ $wb['is_txt'] = 'Is'; $wb['begins_with_txt'] = 'Begins with'; $wb['ends_with_txt'] = 'Ends with'; $wb['move_to_txt'] = 'Move to'; +$wb['regex_txt'] = 'Matches Regex'; $wb['delete_txt'] = 'Delete'; $wb['mailbox_filter_txt'] = 'Mailbox filter'; +$wb['header_txt'] = 'Header'; +$wb['size_over_txt'] = 'Email size over (KB)'; +$wb['size_under_txt'] = 'Email size under (KB)'; ?> diff --git a/interface/web/mailuser/lib/lang/pt_mail_user_spamfilter.lng b/interface/web/mailuser/lib/lang/pt_mail_user_spamfilter.lng index be4bad90504b47914b13a01b95158a862024839e..fc355eb9200d2793eb6e3af79e1dc7d18c8bcd84 100644 --- a/interface/web/mailuser/lib/lang/pt_mail_user_spamfilter.lng +++ b/interface/web/mailuser/lib/lang/pt_mail_user_spamfilter.lng @@ -2,6 +2,6 @@ $wb['mailbox_spamfilter_txt'] = 'Spamfilter'; $wb['spamfilter_txt'] = 'Spamfilter'; $wb['email_txt'] = 'Email'; -$wb['no_policy'] = '- not enabled -'; +$wb['inherit_policy'] = '- Inherit domain setting -'; $wb['policy_txt'] = 'Policy'; ?> diff --git a/interface/web/mailuser/lib/lang/ro_mail_user_autoresponder.lng b/interface/web/mailuser/lib/lang/ro_mail_user_autoresponder.lng index 79f386a7dc9da88380ae34d006d729d79894b549..b913b5cfa13d256c5e55b7978669d18e56b6a3b4 100644 --- a/interface/web/mailuser/lib/lang/ro_mail_user_autoresponder.lng +++ b/interface/web/mailuser/lib/lang/ro_mail_user_autoresponder.lng @@ -6,8 +6,8 @@ $wb['autoresponder_txt'] = 'Active'; $wb['autoresponder_start_date_txt'] = 'Start on'; $wb['autoresponder_start_date_isfuture'] = 'Start date cannot be in the past.'; $wb['autoresponder_end_date_txt'] = 'End by'; -$wb['autoresponder_end_date_isgreater'] = 'End date must be set and be later than start date.'; +$wb['autoresponder_end_date_isgreater'] = 'End date must be later than start date.'; $wb['autoresponder_active'] = 'Enable the autoresponder'; $wb['now_txt'] = 'Now'; -$wb['autoresponder_subject_txt'] = 'Betreff'; +$wb['autoresponder_subject_txt'] = 'Subject'; ?> 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 9ac4be357efcb3ce2912c717d9e6f341e9f2941e..0df6e0b75bf88fda9af78ceecd9bb7d07e2ad87d 100644 --- a/interface/web/mailuser/lib/lang/ro_mail_user_filter.lng +++ b/interface/web/mailuser/lib/lang/ro_mail_user_filter.lng @@ -17,6 +17,10 @@ $wb['is_txt'] = 'Is'; $wb['begins_with_txt'] = 'Begins with'; $wb['ends_with_txt'] = 'Ends with'; $wb['move_to_txt'] = 'Move to'; +$wb['regex_txt'] = 'Matches Regex'; $wb['delete_txt'] = 'Delete'; $wb['mailbox_filter_txt'] = 'Mailbox filter'; +$wb['header_txt'] = 'Header'; +$wb['size_over_txt'] = 'Email size over (KB)'; +$wb['size_under_txt'] = 'Email size under (KB)'; ?> diff --git a/interface/web/mailuser/lib/lang/ro_mail_user_spamfilter.lng b/interface/web/mailuser/lib/lang/ro_mail_user_spamfilter.lng index be4bad90504b47914b13a01b95158a862024839e..fc355eb9200d2793eb6e3af79e1dc7d18c8bcd84 100644 --- a/interface/web/mailuser/lib/lang/ro_mail_user_spamfilter.lng +++ b/interface/web/mailuser/lib/lang/ro_mail_user_spamfilter.lng @@ -2,6 +2,6 @@ $wb['mailbox_spamfilter_txt'] = 'Spamfilter'; $wb['spamfilter_txt'] = 'Spamfilter'; $wb['email_txt'] = 'Email'; -$wb['no_policy'] = '- not enabled -'; +$wb['inherit_policy'] = '- Inherit domain setting -'; $wb['policy_txt'] = 'Policy'; ?> diff --git a/interface/web/mailuser/lib/lang/ru_mail_user_autoresponder.lng b/interface/web/mailuser/lib/lang/ru_mail_user_autoresponder.lng index c7c864c5a513902aca615fe9e293d5ff09aaa668..0e5ec20601006535ba92bb1126e3af7d1f742042 100644 --- a/interface/web/mailuser/lib/lang/ru_mail_user_autoresponder.lng +++ b/interface/web/mailuser/lib/lang/ru_mail_user_autoresponder.lng @@ -6,7 +6,7 @@ $wb['autoresponder_txt'] = 'Ðктивно'; $wb['autoresponder_start_date_txt'] = 'ЗапуÑкать'; $wb['autoresponder_start_date_isfuture'] = 'Дата запуÑка не может быть в прошлом.'; $wb['autoresponder_end_date_txt'] = 'ОÑтанавливать'; -$wb['autoresponder_end_date_isgreater'] = 'Дата Ð¾ÐºÐ¾Ð½Ñ‡Ð°Ð½Ð¸Ñ Ð´Ð¾Ð»Ð¶Ð½Ð° быть позже даты запуÑка.'; +$wb['autoresponder_end_date_isgreater'] = 'End date must be later than start date.'; $wb['autoresponder_active'] = 'Включить автоответчик'; $wb['now_txt'] = 'СейчаÑ'; $wb['autoresponder_subject_txt'] = 'Тема'; diff --git a/interface/web/mailuser/lib/lang/ru_mail_user_filter.lng b/interface/web/mailuser/lib/lang/ru_mail_user_filter.lng index d834e4057a0688ee6c2302933a9edf07d1aa0d43..590763ed43fa656a5b61a81793d842c205fa47da 100644 --- a/interface/web/mailuser/lib/lang/ru_mail_user_filter.lng +++ b/interface/web/mailuser/lib/lang/ru_mail_user_filter.lng @@ -16,6 +16,10 @@ $wb['is_txt'] = 'Равно'; $wb['begins_with_txt'] = 'ÐачинаетÑÑ Ñ'; $wb['ends_with_txt'] = 'ЗаканчиваетÑÑ Ð½Ð°'; $wb['move_to_txt'] = 'ПеремеÑтить в'; +$wb['regex_txt'] = 'Matches Regex'; $wb['delete_txt'] = 'Удалить'; $wb['mailbox_filter_txt'] = 'Фильтр почтового Ñщика'; +$wb['header_txt'] = 'Header'; +$wb['size_over_txt'] = 'Email size over (KB)'; +$wb['size_under_txt'] = 'Email size under (KB)'; ?> diff --git a/interface/web/mailuser/lib/lang/ru_mail_user_spamfilter.lng b/interface/web/mailuser/lib/lang/ru_mail_user_spamfilter.lng index a4b7a48b7f8c5a80732a4ae7289a66a5aaa4509f..1a168b76107066136450eae9fe166925148d8a98 100644 --- a/interface/web/mailuser/lib/lang/ru_mail_user_spamfilter.lng +++ b/interface/web/mailuser/lib/lang/ru_mail_user_spamfilter.lng @@ -2,6 +2,6 @@ $wb['mailbox_spamfilter_txt'] = 'Спам-фильтр'; $wb['spamfilter_txt'] = 'СПÐÐœ-фильтр'; $wb['email_txt'] = 'ÐÐ´Ñ€ÐµÑ Ñл. почты'; -$wb['no_policy'] = '- ОтÑутÑтвует -'; +$wb['inherit_policy'] = '- Inherit domain setting -'; $wb['policy_txt'] = 'Правило'; ?> 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 da15d6f73b2e6e55713574c621590d632ee6416d..4f7e093d773f1fa72975e86856fd27d9f6c95d27 100644 --- a/interface/web/mailuser/lib/lang/se_mail_user_filter.lng +++ b/interface/web/mailuser/lib/lang/se_mail_user_filter.lng @@ -16,6 +16,10 @@ $wb['is_txt'] = 'Är'; $wb['begins_with_txt'] = 'Börjar med'; $wb['ends_with_txt'] = 'Slutar med'; $wb['move_to_txt'] = 'Flytta till'; +$wb['regex_txt'] = 'Matches Regex'; $wb['delete_txt'] = 'Radera'; $wb['mailbox_filter_txt'] = 'Mailbox filter'; +$wb['header_txt'] = 'Header'; +$wb['size_over_txt'] = 'Email size over (KB)'; +$wb['size_under_txt'] = 'Email size under (KB)'; ?> diff --git a/interface/web/mailuser/lib/lang/se_mail_user_spamfilter.lng b/interface/web/mailuser/lib/lang/se_mail_user_spamfilter.lng index 7ec5f2a7d8671cc2ca146de36ed9918c2d4ca9bd..8cc318e71c6e38040a48b8e73fb67ba76ac92e80 100644 --- a/interface/web/mailuser/lib/lang/se_mail_user_spamfilter.lng +++ b/interface/web/mailuser/lib/lang/se_mail_user_spamfilter.lng @@ -2,6 +2,6 @@ $wb['mailbox_spamfilter_txt'] = 'Spamfilter'; $wb['spamfilter_txt'] = 'Spamfilter'; $wb['email_txt'] = 'Epost'; -$wb['no_policy'] = '- ej aktiverat -'; +$wb['inherit_policy'] = '- Inherit domain setting -'; $wb['policy_txt'] = 'Policy'; ?> diff --git a/interface/web/mailuser/lib/lang/sk_mail_user_autoresponder.lng b/interface/web/mailuser/lib/lang/sk_mail_user_autoresponder.lng index 79f386a7dc9da88380ae34d006d729d79894b549..b913b5cfa13d256c5e55b7978669d18e56b6a3b4 100644 --- a/interface/web/mailuser/lib/lang/sk_mail_user_autoresponder.lng +++ b/interface/web/mailuser/lib/lang/sk_mail_user_autoresponder.lng @@ -6,8 +6,8 @@ $wb['autoresponder_txt'] = 'Active'; $wb['autoresponder_start_date_txt'] = 'Start on'; $wb['autoresponder_start_date_isfuture'] = 'Start date cannot be in the past.'; $wb['autoresponder_end_date_txt'] = 'End by'; -$wb['autoresponder_end_date_isgreater'] = 'End date must be set and be later than start date.'; +$wb['autoresponder_end_date_isgreater'] = 'End date must be later than start date.'; $wb['autoresponder_active'] = 'Enable the autoresponder'; $wb['now_txt'] = 'Now'; -$wb['autoresponder_subject_txt'] = 'Betreff'; +$wb['autoresponder_subject_txt'] = 'Subject'; ?> 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 9ac4be357efcb3ce2912c717d9e6f341e9f2941e..0df6e0b75bf88fda9af78ceecd9bb7d07e2ad87d 100644 --- a/interface/web/mailuser/lib/lang/sk_mail_user_filter.lng +++ b/interface/web/mailuser/lib/lang/sk_mail_user_filter.lng @@ -17,6 +17,10 @@ $wb['is_txt'] = 'Is'; $wb['begins_with_txt'] = 'Begins with'; $wb['ends_with_txt'] = 'Ends with'; $wb['move_to_txt'] = 'Move to'; +$wb['regex_txt'] = 'Matches Regex'; $wb['delete_txt'] = 'Delete'; $wb['mailbox_filter_txt'] = 'Mailbox filter'; +$wb['header_txt'] = 'Header'; +$wb['size_over_txt'] = 'Email size over (KB)'; +$wb['size_under_txt'] = 'Email size under (KB)'; ?> diff --git a/interface/web/mailuser/lib/lang/sk_mail_user_spamfilter.lng b/interface/web/mailuser/lib/lang/sk_mail_user_spamfilter.lng index be4bad90504b47914b13a01b95158a862024839e..fc355eb9200d2793eb6e3af79e1dc7d18c8bcd84 100644 --- a/interface/web/mailuser/lib/lang/sk_mail_user_spamfilter.lng +++ b/interface/web/mailuser/lib/lang/sk_mail_user_spamfilter.lng @@ -2,6 +2,6 @@ $wb['mailbox_spamfilter_txt'] = 'Spamfilter'; $wb['spamfilter_txt'] = 'Spamfilter'; $wb['email_txt'] = 'Email'; -$wb['no_policy'] = '- not enabled -'; +$wb['inherit_policy'] = '- Inherit domain setting -'; $wb['policy_txt'] = 'Policy'; ?> diff --git a/interface/web/mailuser/lib/lang/tr_mail_user_autoresponder.lng b/interface/web/mailuser/lib/lang/tr_mail_user_autoresponder.lng index ab776ef9454e0a14e33387e9e4c9d3219fe411ff..06fbddd0bc227a3f45db566f552c2cc5d992a93b 100644 --- a/interface/web/mailuser/lib/lang/tr_mail_user_autoresponder.lng +++ b/interface/web/mailuser/lib/lang/tr_mail_user_autoresponder.lng @@ -6,7 +6,7 @@ $wb['autoresponder_txt'] = 'Etkin'; $wb['autoresponder_start_date_txt'] = 'BaÅŸlangıç'; $wb['autoresponder_start_date_isfuture'] = 'BaÅŸlangıç tarihi geçmiÅŸ zamanda olamaz.'; $wb['autoresponder_end_date_txt'] = 'BitiÅŸ'; -$wb['autoresponder_end_date_isgreater'] = 'BitiÅŸ tarihi baÅŸlangıç tarihinden sonra olmalıdır.'; +$wb['autoresponder_end_date_isgreater'] = 'End date must be later than start date.'; $wb['autoresponder_active'] = 'EtkinleÅŸtir'; $wb['now_txt'] = 'Åžimdi'; $wb['autoresponder_subject_txt'] = 'Otoyanıt'; 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 57db1979013af74c8877a86dda4283395f99ceee..b59a4afbab720cec2ca2098eee46bc88031ca9d1 100644 --- a/interface/web/mailuser/lib/lang/tr_mail_user_filter.lng +++ b/interface/web/mailuser/lib/lang/tr_mail_user_filter.lng @@ -16,6 +16,10 @@ $wb['is_txt'] = 'Åžununla aynı'; $wb['begins_with_txt'] = 'Åžununla baÅŸlayan'; $wb['ends_with_txt'] = 'Åžununla biten'; $wb['move_to_txt'] = 'Åžuraya taşı'; +$wb['regex_txt'] = 'Matches Regex'; $wb['delete_txt'] = 'Sil'; $wb['mailbox_filter_txt'] = 'E-posta kutusu süzgeci'; +$wb['header_txt'] = 'Header'; +$wb['size_over_txt'] = 'Email size over (KB)'; +$wb['size_under_txt'] = 'Email size under (KB)'; ?> diff --git a/interface/web/mailuser/lib/lang/tr_mail_user_spamfilter.lng b/interface/web/mailuser/lib/lang/tr_mail_user_spamfilter.lng index 3426385a2effcb7bb7a449896f768a4e03b772b2..25bd43520a4c75e28369eff8599e3ecab65a5bdd 100644 --- a/interface/web/mailuser/lib/lang/tr_mail_user_spamfilter.lng +++ b/interface/web/mailuser/lib/lang/tr_mail_user_spamfilter.lng @@ -2,6 +2,6 @@ $wb['mailbox_spamfilter_txt'] = 'Önemsiz Ä°leti Süzgeci'; $wb['spamfilter_txt'] = 'Önemsiz ileti süzgeci'; $wb['email_txt'] = 'E-posta'; -$wb['no_policy'] = '- devre dışı -'; +$wb['inherit_policy'] = '- Inherit domain setting -'; $wb['policy_txt'] = 'Kural'; ?> diff --git a/interface/web/mailuser/mail_user_spamfilter_edit.php b/interface/web/mailuser/mail_user_spamfilter_edit.php index abbea219376204ce922762129849da67122a4738..75649b5a707f3b89e5c4606d7019bc84c967bf0f 100644 --- a/interface/web/mailuser/mail_user_spamfilter_edit.php +++ b/interface/web/mailuser/mail_user_spamfilter_edit.php @@ -52,7 +52,7 @@ class page_action extends tform_actions { function onShow() { global $app; - + $this->id = $app->functions->intval($_SESSION['s']['user']['mailuser_id']); parent::onShow(); @@ -118,7 +118,7 @@ class page_action extends tform_actions { $tmp_user = $app->db->queryOneRecord("SELECT policy_id FROM spamfilter_users WHERE email = ?", $rec['email']); $sql = "SELECT id, policy_name FROM spamfilter_policy WHERE ".$app->tform->getAuthSQL('r'); $policys = $app->db->queryAllRecords($sql); - $policy_select = "<option value='0'>".$app->tform->lng("no_policy")."</option>"; + $policy_select = "<option value='0'>".$app->tform->lng("inherit_policy")."</option>"; if(is_array($policys)) { foreach( $policys as $p) { $selected = ($p["id"] == $tmp_user["policy_id"])?'SELECTED':''; diff --git a/interface/web/monitor/lib/lang/ar.lng b/interface/web/monitor/lib/lang/ar.lng index 9d54ea1f5db7fbb85cff83b20b0065728efa5e13..6a63ea9ab572a4399fcbe56ad052be0fb1609b16 100644 --- a/interface/web/monitor/lib/lang/ar.lng +++ b/interface/web/monitor/lib/lang/ar.lng @@ -162,4 +162,6 @@ $wb['Show MongoDB-Log'] = 'Show MongoDB-Log'; $wb['monitor_services_mongodb_txt'] = 'MongoDB-Server:'; $wb['monitor_title_mongodb_txt'] = 'MongoDB Log'; $wb['Show Data Log History'] = 'Show Data Log History'; +$wb['Database size'] = 'Database size'; +$wb['Show MySQL Database size'] = 'Show MySQL Database size'; ?> diff --git a/interface/web/monitor/lib/lang/bg.lng b/interface/web/monitor/lib/lang/bg.lng index a8b7f491aca6e00f622fe0863bc3cc9aa14159e0..ec2896958159bc9059dcaf1f0196d06babe6b172 100644 --- a/interface/web/monitor/lib/lang/bg.lng +++ b/interface/web/monitor/lib/lang/bg.lng @@ -162,4 +162,6 @@ $wb['Show MongoDB-Log'] = 'Show MongoDB-Log'; $wb['monitor_services_mongodb_txt'] = 'MongoDB-Server:'; $wb['monitor_title_mongodb_txt'] = 'MongoDB Log'; $wb['Show Data Log History'] = 'Show Data Log History'; +$wb['Database size'] = 'Database size'; +$wb['Show MySQL Database size'] = 'Show MySQL Database size'; ?> diff --git a/interface/web/monitor/lib/lang/br.lng b/interface/web/monitor/lib/lang/br.lng index 172891cfd9bcf6c489b4f120917f621db3e9108b..781dd1e7e1d565bcf9f204d432b48fce7aedbc7d 100644 --- a/interface/web/monitor/lib/lang/br.lng +++ b/interface/web/monitor/lib/lang/br.lng @@ -163,4 +163,6 @@ $wb['no_permissions_to_view_monit_txt'] = 'Você não tem permissão para acessa $wb['Show Munin'] = 'Exibir Munin'; $wb['no_munin_url_defined_txt'] = 'Nenhuma URL do Munin definida.'; $wb['no_permissions_to_view_munin_txt'] = 'Você não tem permissão para acessar o Munin.'; +$wb['Database size'] = 'Database size'; +$wb['Show MySQL Database size'] = 'Show MySQL Database size'; ?> diff --git a/interface/web/monitor/lib/lang/ca.lng b/interface/web/monitor/lib/lang/ca.lng index b57b255a745abbd3252f91709843843d2198219b..ebceac346791643255b2e9b768bd74b5dcb53a4b 100644 --- a/interface/web/monitor/lib/lang/ca.lng +++ b/interface/web/monitor/lib/lang/ca.lng @@ -162,4 +162,6 @@ $wb['monitor_database_domain_txt'] = 'Domain'; $wb['monitor_services_mongodb_txt'] = 'MongoDB-Server:'; $wb['monitor_title_mongodb_txt'] = 'MongoDB Log'; $wb['Show Data Log History'] = 'Show Data Log History'; +$wb['Database size'] = 'Database size'; +$wb['Show MySQL Database size'] = 'Show MySQL Database size'; ?> diff --git a/interface/web/monitor/lib/lang/cz.lng b/interface/web/monitor/lib/lang/cz.lng index be2d9eadbb410a52ead1e3b0907d6c91fda03afa..604fbd5ceba54d48e0022f93d19c25bc10292c3a 100644 --- a/interface/web/monitor/lib/lang/cz.lng +++ b/interface/web/monitor/lib/lang/cz.lng @@ -162,4 +162,6 @@ $wb['monitor_database_domain_txt'] = 'Doména'; $wb['monitor_services_mongodb_txt'] = 'MongoDB-Server:'; $wb['monitor_title_mongodb_txt'] = 'MongoDB Log'; $wb['Show Data Log History'] = 'Zobrazit historii datového logu'; +$wb['Database size'] = 'Database size'; +$wb['Show MySQL Database size'] = 'Show MySQL Database size'; ?> diff --git a/interface/web/monitor/lib/lang/de.lng b/interface/web/monitor/lib/lang/de.lng index f8fabe7990633066917d01872f7ece90b2e72869..63cb5b9848b191074c7302c9e4fdca25ea09df0b 100644 --- a/interface/web/monitor/lib/lang/de.lng +++ b/interface/web/monitor/lib/lang/de.lng @@ -162,4 +162,6 @@ $wb['monitor_database_name_txt'] = 'Database'; $wb['monitor_database_size_txt'] = 'Size'; $wb['monitor_database_client_txt'] = 'Client'; $wb['monitor_database_domain_txt'] = 'Domain'; +$wb['Database size'] = 'Database size'; +$wb['Show MySQL Database size'] = 'Show MySQL Database size'; ?> diff --git a/interface/web/monitor/lib/lang/dk.lng b/interface/web/monitor/lib/lang/dk.lng index 4c7bfab1e750e91a1da8bf0bf4567b718c9414d9..0a7f8bc19e289bc3cd883b1fb0e52fb75287c49d 100644 --- a/interface/web/monitor/lib/lang/dk.lng +++ b/interface/web/monitor/lib/lang/dk.lng @@ -162,4 +162,6 @@ $wb['monitor_database_domain_txt'] = 'Domain'; $wb['monitor_services_mongodb_txt'] = 'MongoDB-Server:'; $wb['monitor_title_mongodb_txt'] = 'MongoDB Log'; $wb['Show Data Log History'] = 'Show Data Log History'; +$wb['Database size'] = 'Database size'; +$wb['Show MySQL Database size'] = 'Show MySQL Database size'; ?> diff --git a/interface/web/monitor/lib/lang/el.lng b/interface/web/monitor/lib/lang/el.lng index 245c80c6666b36b19050e298e1d05c3108e618a9..1d783f3da7edb9c02290bf6cfb76f6d925b65fc4 100644 --- a/interface/web/monitor/lib/lang/el.lng +++ b/interface/web/monitor/lib/lang/el.lng @@ -162,4 +162,6 @@ $wb['monitor_database_domain_txt'] = 'Domain'; $wb['monitor_services_mongodb_txt'] = 'MongoDB-Server:'; $wb['monitor_title_mongodb_txt'] = 'MongoDB Log'; $wb['Show Data Log History'] = 'Show Data Log History'; +$wb['Database size'] = 'Database size'; +$wb['Show MySQL Database size'] = 'Show MySQL Database size'; ?> diff --git a/interface/web/monitor/lib/lang/en.lng b/interface/web/monitor/lib/lang/en.lng index 194bbc5030fcfddd210f4ce9cf23f1e5039d367d..f507f54229b3685ef62dd100ec2cf3236457749d 100644 --- a/interface/web/monitor/lib/lang/en.lng +++ b/interface/web/monitor/lib/lang/en.lng @@ -162,4 +162,6 @@ $wb['no_permissions_to_view_monit_txt'] = 'You are not allowed to access Monit.' $wb['Show Munin'] = 'Show Munin'; $wb['no_munin_url_defined_txt'] = 'No Munin URL defined.'; $wb['no_permissions_to_view_munin_txt'] = 'You are not allowed to access Munin.'; +$wb['Database size'] = 'Database size'; +$wb['Show MySQL Database size'] = 'Show MySQL Database size'; ?> diff --git a/interface/web/monitor/lib/lang/es.lng b/interface/web/monitor/lib/lang/es.lng index f4acb3c45c0c9e80162986cce5d112c37f1e7180..56ce9a4222d73d78067090740ab275bf131a98be 100644 --- a/interface/web/monitor/lib/lang/es.lng +++ b/interface/web/monitor/lib/lang/es.lng @@ -162,4 +162,6 @@ $wb['System load 5 minutes'] = 'Carga del sistema hace 5 minutos'; $wb['System State (All Servers)'] = 'Estado de los sistemas'; $wb['Users online'] = 'Usuarios en lÃnea'; $wb['Show Data Log History'] = 'Show Data Log History'; +$wb['Database size'] = 'Database size'; +$wb['Show MySQL Database size'] = 'Show MySQL Database size'; ?> diff --git a/interface/web/monitor/lib/lang/fi.lng b/interface/web/monitor/lib/lang/fi.lng index 911aae9bd12fc4374ca4070a910dad087a7908cf..f825f6e20bc0d9768d3149e95bdabece11878505 100644 --- a/interface/web/monitor/lib/lang/fi.lng +++ b/interface/web/monitor/lib/lang/fi.lng @@ -162,4 +162,6 @@ $wb['Show MongoDB-Log'] = 'Show MongoDB-Log'; $wb['monitor_services_mongodb_txt'] = 'MongoDB-Server:'; $wb['monitor_title_mongodb_txt'] = 'MongoDB Log'; $wb['Show Data Log History'] = 'Show Data Log History'; +$wb['Database size'] = 'Database size'; +$wb['Show MySQL Database size'] = 'Show MySQL Database size'; ?> diff --git a/interface/web/monitor/lib/lang/fr.lng b/interface/web/monitor/lib/lang/fr.lng index c08fe749482b2731e68cb93226ebec2b554e7b61..8bf754cb9b76572b8e51f70e7a028f84238328f3 100644 --- a/interface/web/monitor/lib/lang/fr.lng +++ b/interface/web/monitor/lib/lang/fr.lng @@ -162,4 +162,6 @@ $wb['monitor_database_domain_txt'] = 'Domain'; $wb['monitor_services_mongodb_txt'] = 'MongoDB-Server:'; $wb['monitor_title_mongodb_txt'] = 'MongoDB Log'; $wb['Show Data Log History'] = 'Show Data Log History'; +$wb['Database size'] = 'Database size'; +$wb['Show MySQL Database size'] = 'Show MySQL Database size'; ?> diff --git a/interface/web/monitor/lib/lang/hr.lng b/interface/web/monitor/lib/lang/hr.lng index 17899ff3f0b30b8dfb4f589e151c9fcdd2d6e756..4c8037604a929d101deb3ccc232a168525f12773 100644 --- a/interface/web/monitor/lib/lang/hr.lng +++ b/interface/web/monitor/lib/lang/hr.lng @@ -162,4 +162,6 @@ $wb['monitor_database_domain_txt'] = 'Domain'; $wb['monitor_services_mongodb_txt'] = 'MongoDB-Server:'; $wb['monitor_title_mongodb_txt'] = 'MongoDB Log'; $wb['Show Data Log History'] = 'Show Data Log History'; +$wb['Database size'] = 'Database size'; +$wb['Show MySQL Database size'] = 'Show MySQL Database size'; ?> diff --git a/interface/web/monitor/lib/lang/hu.lng b/interface/web/monitor/lib/lang/hu.lng index 9a5c41654ff351cd5652a405bb2c7c40ee03691d..e9ac7009f07f70f35905faecf2d731b1fb9d9e70 100644 --- a/interface/web/monitor/lib/lang/hu.lng +++ b/interface/web/monitor/lib/lang/hu.lng @@ -162,4 +162,6 @@ $wb['Show MongoDB-Log'] = 'Show MongoDB-Log'; $wb['monitor_services_mongodb_txt'] = 'MongoDB-Server:'; $wb['monitor_title_mongodb_txt'] = 'MongoDB Log'; $wb['Show Data Log History'] = 'Show Data Log History'; +$wb['Database size'] = 'Database size'; +$wb['Show MySQL Database size'] = 'Show MySQL Database size'; ?> diff --git a/interface/web/monitor/lib/lang/id.lng b/interface/web/monitor/lib/lang/id.lng index 4cdbf5d8ba3e03cdccf1768a7f008613c90ce6b0..8a1bba91d8a43895ee5dc1a55ce5054269434803 100644 --- a/interface/web/monitor/lib/lang/id.lng +++ b/interface/web/monitor/lib/lang/id.lng @@ -162,4 +162,6 @@ $wb['Show MongoDB-Log'] = 'Show MongoDB-Log'; $wb['monitor_services_mongodb_txt'] = 'MongoDB-Server:'; $wb['monitor_title_mongodb_txt'] = 'MongoDB Log'; $wb['Show Data Log History'] = 'Show Data Log History'; +$wb['Database size'] = 'Database size'; +$wb['Show MySQL Database size'] = 'Show MySQL Database size'; ?> diff --git a/interface/web/monitor/lib/lang/it.lng b/interface/web/monitor/lib/lang/it.lng index e6feadf01f9e68d9429be17e13e0dddc896d97fc..675f27494b8c5a343e01221e2e2f3a4db74cfd12 100644 --- a/interface/web/monitor/lib/lang/it.lng +++ b/interface/web/monitor/lib/lang/it.lng @@ -162,4 +162,6 @@ $wb['monitor_database_domain_txt'] = 'Domain'; $wb['monitor_services_mongodb_txt'] = 'MongoDB-Server:'; $wb['monitor_title_mongodb_txt'] = 'MongoDB Log'; $wb['Show Data Log History'] = 'Show Data Log History'; +$wb['Database size'] = 'Database size'; +$wb['Show MySQL Database size'] = 'Show MySQL Database size'; ?> diff --git a/interface/web/monitor/lib/lang/ja.lng b/interface/web/monitor/lib/lang/ja.lng index cccd678cb7b9ba2351ba1518f04c7d7a7051d866..3ea8fb1dfd888fe37561f9360dc7002d678d5048 100644 --- a/interface/web/monitor/lib/lang/ja.lng +++ b/interface/web/monitor/lib/lang/ja.lng @@ -162,4 +162,6 @@ $wb['Show MongoDB-Log'] = 'Show MongoDB-Log'; $wb['monitor_services_mongodb_txt'] = 'MongoDB-Server:'; $wb['monitor_title_mongodb_txt'] = 'MongoDB Log'; $wb['Show Data Log History'] = 'Show Data Log History'; +$wb['Database size'] = 'Database size'; +$wb['Show MySQL Database size'] = 'Show MySQL Database size'; ?> diff --git a/interface/web/monitor/lib/lang/nl.lng b/interface/web/monitor/lib/lang/nl.lng index a534b9afb36a6a5038211a54f3008755da7cb690..bef9eb80a26ad8fbf297d8792c64f02405724d05 100644 --- a/interface/web/monitor/lib/lang/nl.lng +++ b/interface/web/monitor/lib/lang/nl.lng @@ -162,4 +162,6 @@ $wb['Show MongoDB-Log'] = 'Show MongoDB-Log'; $wb['monitor_services_mongodb_txt'] = 'MongoDB-Server:'; $wb['monitor_title_mongodb_txt'] = 'MongoDB Log'; $wb['Show Data Log History'] = 'Show Data Log History'; +$wb['Database size'] = 'Database size'; +$wb['Show MySQL Database size'] = 'Show MySQL Database size'; ?> diff --git a/interface/web/monitor/lib/lang/pl.lng b/interface/web/monitor/lib/lang/pl.lng index a8e1b3e53c2086a8b4d1dee058c2e40562f88899..6900d31b9236c998eaeaf77a5c763052afc9cbd1 100644 --- a/interface/web/monitor/lib/lang/pl.lng +++ b/interface/web/monitor/lib/lang/pl.lng @@ -162,4 +162,6 @@ $wb['Show MongoDB-Log'] = 'Show MongoDB-Log'; $wb['monitor_services_mongodb_txt'] = 'MongoDB-Server:'; $wb['monitor_title_mongodb_txt'] = 'MongoDB Log'; $wb['Show Data Log History'] = 'Show Data Log History'; +$wb['Database size'] = 'Database size'; +$wb['Show MySQL Database size'] = 'Show MySQL Database size'; ?> diff --git a/interface/web/monitor/lib/lang/pt.lng b/interface/web/monitor/lib/lang/pt.lng index 7930febda22cb515d5e6462f0b809037fffc2878..f48c41e9fea25e64c9ab6ea003216f784f0ad772 100644 --- a/interface/web/monitor/lib/lang/pt.lng +++ b/interface/web/monitor/lib/lang/pt.lng @@ -162,4 +162,6 @@ $wb['Show MongoDB-Log'] = 'Show MongoDB-Log'; $wb['monitor_services_mongodb_txt'] = 'MongoDB-Server:'; $wb['monitor_title_mongodb_txt'] = 'MongoDB Log'; $wb['Show Data Log History'] = 'Show Data Log History'; +$wb['Database size'] = 'Database size'; +$wb['Show MySQL Database size'] = 'Show MySQL Database size'; ?> diff --git a/interface/web/monitor/lib/lang/ro.lng b/interface/web/monitor/lib/lang/ro.lng index 96a2ce10e69d4dc9e7f5d1fe83130c427cc4b7c4..2a2423927fcc51495ffdccd70bfdbba8ad8a5b1d 100644 --- a/interface/web/monitor/lib/lang/ro.lng +++ b/interface/web/monitor/lib/lang/ro.lng @@ -162,4 +162,6 @@ $wb['Show MongoDB-Log'] = 'Show MongoDB-Log'; $wb['monitor_services_mongodb_txt'] = 'MongoDB-Server:'; $wb['monitor_title_mongodb_txt'] = 'MongoDB Log'; $wb['Show Data Log History'] = 'Show Data Log History'; +$wb['Database size'] = 'Database size'; +$wb['Show MySQL Database size'] = 'Show MySQL Database size'; ?> diff --git a/interface/web/monitor/lib/lang/ru.lng b/interface/web/monitor/lib/lang/ru.lng index 823174b71665e3d318652d22f3252ba480398c2b..c256c2faafdd47c343f0eebac9dfd0fa0b9f71d7 100644 --- a/interface/web/monitor/lib/lang/ru.lng +++ b/interface/web/monitor/lib/lang/ru.lng @@ -162,4 +162,6 @@ $wb['Show MongoDB-Log'] = 'Показать журнал MongoDB'; $wb['monitor_services_mongodb_txt'] = 'MongoDB-Ñервер:'; $wb['monitor_title_mongodb_txt'] = 'Журнал MongoDB'; $wb['Show Data Log History'] = 'Show Data Log History'; +$wb['Database size'] = 'Database size'; +$wb['Show MySQL Database size'] = 'Show MySQL Database size'; ?> diff --git a/interface/web/monitor/lib/lang/se.lng b/interface/web/monitor/lib/lang/se.lng index 78dd5ed1be944dc9ca00ddf4c3d86acb3ee6703e..54b504c9bbd1eb837946dd630c5aa78972a886ed 100644 --- a/interface/web/monitor/lib/lang/se.lng +++ b/interface/web/monitor/lib/lang/se.lng @@ -162,4 +162,6 @@ $wb['Show MongoDB-Log'] = 'Show MongoDB-Log'; $wb['monitor_services_mongodb_txt'] = 'MongoDB-Server:'; $wb['monitor_title_mongodb_txt'] = 'MongoDB Log'; $wb['Show Data Log History'] = 'Show Data Log History'; +$wb['Database size'] = 'Database size'; +$wb['Show MySQL Database size'] = 'Show MySQL Database size'; ?> diff --git a/interface/web/monitor/lib/lang/sk.lng b/interface/web/monitor/lib/lang/sk.lng index 36af834eaf26eeda4a3806896d327c91ee804f45..59af60685618eb45ce5ce5c390ef0f8ff2f1b8ae 100644 --- a/interface/web/monitor/lib/lang/sk.lng +++ b/interface/web/monitor/lib/lang/sk.lng @@ -162,4 +162,6 @@ $wb['Show MongoDB-Log'] = 'Show MongoDB-Log'; $wb['monitor_services_mongodb_txt'] = 'MongoDB-Server:'; $wb['monitor_title_mongodb_txt'] = 'MongoDB Log'; $wb['Show Data Log History'] = 'Show Data Log History'; +$wb['Database size'] = 'Database size'; +$wb['Show MySQL Database size'] = 'Show MySQL Database size'; ?> diff --git a/interface/web/monitor/lib/lang/tr.lng b/interface/web/monitor/lib/lang/tr.lng index 20a9e8e140167eb5b56b989256986ea53b237f31..836f38ce9715cb34cde5d22252736ef884484efc 100644 --- a/interface/web/monitor/lib/lang/tr.lng +++ b/interface/web/monitor/lib/lang/tr.lng @@ -161,4 +161,6 @@ $wb['no_permissions_to_view_monit_txt'] = 'Monit eriÅŸimi izniniz yok.'; $wb['Show Munin'] = 'Munin Durumu'; $wb['no_munin_url_defined_txt'] = 'Munin adresi belirtilmemiÅŸ.'; $wb['no_permissions_to_view_munin_txt'] = 'Munin eriÅŸimi izniniz yok.'; +$wb['Database size'] = 'Database size'; +$wb['Show MySQL Database size'] = 'Show MySQL Database size'; ?> diff --git a/interface/web/sites/ajax_get_json.php b/interface/web/sites/ajax_get_json.php index 298fbdb0190b16e20b0a1f282236bf11095f29b0..8ca9cae31d620bd22bf205d1c045d99a58647aea 100644 --- a/interface/web/sites/ajax_get_json.php +++ b/interface/web/sites/ajax_get_json.php @@ -63,7 +63,7 @@ if($type == 'getserverid'){ $json .= '"}'; } -if($type == 'getphpfastcgi'){ +if($type == 'getserverphp'){ $json = '{'; $server_type = 'apache'; @@ -105,14 +105,14 @@ if($type == 'getphpfastcgi'){ if(is_array($php_records) && !empty($php_records)) { foreach( $php_records as $php_record) { if($php_type == 'php-fpm' || ($php_type == 'hhvm' && $server_type == 'nginx')){ - $php_version = $php_record['name'].':'.$php_record['php_fpm_init_script'].':'.$php_record['php_fpm_ini_dir'].':'.$php_record['php_fpm_pool_dir']; + $php_version = $php_record['server_php_id']; } else { - $php_version = $php_record['name'].':'.$php_record['php_fastcgi_binary'].':'.$php_record['php_fastcgi_ini_dir']; + $php_version = $php_record['server_php_id']; } if($php_record['name'] != $web_config['php_default_name']) { $json .= '"'.$php_version.'": "'.$php_record['name'].'",'; } else { - $json .= '"": "'.$php_record['name'].'",'; + $json .= '"0": "'.$php_record['name'].'",'; } } } diff --git a/interface/web/sites/form/web_vhost_domain.tform.php b/interface/web/sites/form/web_vhost_domain.tform.php index 7da71281cfb2b041ca88d7403689357ec0812359..eecb634c989be6e610e56784a9cb0b1afa4b7178 100644 --- a/interface/web/sites/form/web_vhost_domain.tform.php +++ b/interface/web/sites/form/web_vhost_domain.tform.php @@ -254,10 +254,10 @@ $form["tabs"]['domain'] = array ( 'value' => array('no' => 'disabled_txt', 'fast-cgi' => 'Fast-CGI', 'cgi' => 'CGI', 'mod' => 'Mod-PHP', 'suphp' => 'SuPHP', 'php-fpm' => 'PHP-FPM', 'hhvm' => 'HHVM'), 'searchable' => 2 ), - 'fastcgi_php_version' => array ( - 'datatype' => 'VARCHAR', + 'server_php_id' => array ( + 'datatype' => 'INTEGER', 'formtype' => 'SELECT', - 'default' => '', + 'default' => '0', /*'datasource' => array ( 'type' => 'SQL', 'querystring' => "SELECT ip_address,ip_address FROM server_ip WHERE ip_type = 'IPv4' AND {AUTHSQL} ORDER BY ip_address", 'keyfield'=> 'ip_address', @@ -629,7 +629,7 @@ $form["tabs"]['stats'] = array ( 'datatype' => 'VARCHAR', 'formtype' => 'SELECT', 'default' => 'awstats', - 'value' => array('webalizer' => 'Webalizer', 'awstats' => 'AWStats', '' => 'None') + 'value' => array('awstats' => 'AWStats', 'goaccess' => 'GoAccess', 'webalizer' => 'Webalizer','' => 'None') ), //################################# // END Datatable fields diff --git a/interface/web/sites/lib/lang/ar_web_aliasdomain.lng b/interface/web/sites/lib/lang/ar_web_aliasdomain.lng index 4149c711493e6b6f06d0e99656a1c65744d4ec46..74697bdb33298e0eada396548274aebeacda4022 100644 --- a/interface/web/sites/lib/lang/ar_web_aliasdomain.lng +++ b/interface/web/sites/lib/lang/ar_web_aliasdomain.lng @@ -95,7 +95,7 @@ $wb['pm_min_spare_servers_error_regex'] = 'PHP-FPM pm.min_spare_servers must be $wb['pm_max_spare_servers_error_regex'] = 'PHP-FPM pm.max_spare_servers must be a positive integer value.'; $wb['hd_quota_error_regex'] = 'Harddisk quota is invalid.'; $wb['traffic_quota_error_regex'] = 'Traffic quota is invalid.'; -$wb['fastcgi_php_version_txt'] = 'PHP Version'; +$wb['server_php_id_txt'] = 'PHP Version'; $wb['pm_txt'] = 'PHP-FPM Process Manager'; $wb['pm_process_idle_timeout_txt'] = 'PHP-FPM pm.process_idle_timeout'; $wb['pm_max_requests_txt'] = 'PHP-FPM pm.max_requests'; diff --git a/interface/web/sites/lib/lang/ar_web_childdomain.lng b/interface/web/sites/lib/lang/ar_web_childdomain.lng index 636505f2487e4367810b7e453616ff82d29c30f1..95c9944f124ac962747005782b28dd4848613006 100644 --- a/interface/web/sites/lib/lang/ar_web_childdomain.lng +++ b/interface/web/sites/lib/lang/ar_web_childdomain.lng @@ -101,7 +101,7 @@ $wb['pm_min_spare_servers_error_regex'] = 'PHP-FPM pm.min_spare_servers must be $wb['pm_max_spare_servers_error_regex'] = 'PHP-FPM pm.max_spare_servers must be a positive integer value.'; $wb['hd_quota_error_regex'] = 'Harddisk quota is invalid.'; $wb['traffic_quota_error_regex'] = 'Traffic quota is invalid.'; -$wb['fastcgi_php_version_txt'] = 'PHP Version'; +$wb['server_php_id_txt'] = 'PHP Version'; $wb['pm_txt'] = 'PHP-FPM Process Manager'; $wb['pm_process_idle_timeout_txt'] = 'PHP-FPM pm.process_idle_timeout'; $wb['pm_max_requests_txt'] = 'PHP-FPM pm.max_requests'; diff --git a/interface/web/sites/lib/lang/ar_web_domain.lng b/interface/web/sites/lib/lang/ar_web_domain.lng index 1ab9c55d3d9f88099cdfb79a0166d46d39189308..11247be982e25fc479e038e4e11cfe9022997020 100644 --- a/interface/web/sites/lib/lang/ar_web_domain.lng +++ b/interface/web/sites/lib/lang/ar_web_domain.lng @@ -93,7 +93,7 @@ $wb['hd_quota_error_regex'] = 'Harddisk quota is invalid.'; $wb['traffic_quota_error_regex'] = 'Traffic quota is invalid.'; $wb['ssl_key_txt'] = 'SSL Key'; $wb['perl_txt'] = 'Perl'; -$wb['fastcgi_php_version_txt'] = 'PHP Version'; +$wb['server_php_id_txt'] = 'PHP Version'; $wb['pm_txt'] = 'PHP-FPM Process Manager'; $wb['pm_process_idle_timeout_txt'] = 'PHP-FPM pm.process_idle_timeout'; $wb['pm_max_requests_txt'] = 'PHP-FPM pm.max_requests'; diff --git a/interface/web/sites/lib/lang/ar_web_vhost_domain.lng b/interface/web/sites/lib/lang/ar_web_vhost_domain.lng index 136829a7b276cbd1b689d04dca3afa8818055f3d..93bc26badc5f476a52077ee2d0cb2d69655ceac5 100644 --- a/interface/web/sites/lib/lang/ar_web_vhost_domain.lng +++ b/interface/web/sites/lib/lang/ar_web_vhost_domain.lng @@ -96,9 +96,9 @@ $wb['hd_quota_error_regex'] = 'Harddisk quota is invalid.'; $wb['traffic_quota_error_regex'] = 'Traffic quota is invalid.'; $wb['ssl_key_txt'] = 'SSL Key'; $wb['perl_txt'] = 'Perl'; -$wb['fastcgi_php_version_txt'] = 'PHP Version'; -$wb['fastcgi_php_version_invalid_txt'] = 'PHP Version is invalid.'; -$wb['fastcgi_php_version_default_hidden_warning_txt'] = 'PHP Version was set to "default" but that can no longer be selected. Choose your desired PHP Version and save your settings.'; +$wb['server_php_id_txt'] = 'PHP Version'; +$wb['server_php_id_invalid_txt'] = 'PHP Version is invalid.'; +$wb['server_php_id_default_hidden_warning_txt'] = 'PHP Version was set to "default" but that can no longer be selected. Choose your desired PHP Version and save your settings.'; $wb['pm_txt'] = 'PHP-FPM Process Manager'; $wb['pm_process_idle_timeout_txt'] = 'PHP-FPM pm.process_idle_timeout'; $wb['pm_max_requests_txt'] = 'PHP-FPM pm.max_requests'; @@ -157,10 +157,9 @@ $wb['limit_web_quota_not_0_txt'] = 'Harddisk Quota cannot be set to 0.'; $wb['proxy_protocol_txt'] = 'Enable PROXY Protocol'; $wb["backup_format_web_txt"] = 'Backup format for web files'; $wb["backup_format_db_txt"] = 'Backup format for database'; -$wb["backup_format_web_note_txt"] = 'In "default" mode ISPConfig has the following behaviour: if backup mode is set as web user, then "zip" format is used for web files, otherwise backup mode is set as root user and "tar (gzip)" format is used; database is compressed in "gzip" format. Only "tar" based formats and "rar" preserve file ownership and permissions of web files and guarantee correct restore.'; -$wb["backup_missing_utils_txt"] = 'Note: some utils are missing in the system that may prevent you from using some compression formats. Please, install the following utils to avoid possible backup problems: '; +$wb["backup_missing_utils_txt"] = 'The following formats can not be used because they are not installed on the webserver: '; $wb["backup_compression_options_txt"] = 'Compression options'; -$wb["backup_encryption_note_txt"] = "Encryption is available only for the following backup formats: \"7z\", \"RAR\", \"zip\" (not secure). If any other format is used then encryption can't be applied and encryption settings are ignored. You can safely change the password at anytime: the \"Restore\" button will still work for old backups encrypted with a previous password. You don't need to type a password to restore backups using the \"Restore\" button. Password is required when you extract the archives manually. Please, don't forget your password, because it's impossible to restore it."; +$wb["backup_encryption_note_txt"] = "Encryption is only available for 7z, RAR, and zip (not secure)."; $wb["backup_encryption_options_txt"] = 'Encryption options'; $wb["backup_enable_encryption_txt"] = 'Enable encryption'; $wb["backup_password_txt"] = 'Password'; @@ -182,4 +181,8 @@ $wb["backup_format_tar_7z_lzma_txt"] = 'tar + 7z (LZMA)'; $wb["backup_format_tar_7z_lzma2_txt"] = 'tar + 7z (LZMA2)'; $wb["backup_format_tar_7z_ppmd_txt"] = 'tar + 7z (PPMd)'; $wb["backup_format_tar_7z_bzip2_txt"] = 'tar + 7z (BZip2)'; +$wb['error_ipv4_change_forbidden'] = 'The IP cannot be changed. Please contact your administrator if you want to change the IPv4 address.'; +$wb['error_ipv6_change_forbidden'] = 'The IP cannot be changed. Please contact your administrator if you want to change the IPv6 address.'; +$wb['error_domain_change_forbidden'] = 'The domain name cannot be changed. Please contact your administrator if you want to change the domain name.'; +$wb['error_server_change_not_possible'] = 'The server cannot be changed.'; ?> 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 35c9298e710d663f63a4269e06dd1db22c1e644b..4ded131f4a7164181c1786bd1071c891cec2f252 100644 --- a/interface/web/sites/lib/lang/ar_web_vhost_subdomain.lng +++ b/interface/web/sites/lib/lang/ar_web_vhost_subdomain.lng @@ -99,7 +99,7 @@ $wb['pm_min_spare_servers_error_regex'] = 'PHP-FPM pm.min_spare_servers must be $wb['pm_max_spare_servers_error_regex'] = 'PHP-FPM pm.max_spare_servers must be a positive integer value.'; $wb['hd_quota_error_regex'] = 'Harddisk quota is invalid.'; $wb['traffic_quota_error_regex'] = 'Traffic quota is invalid.'; -$wb['fastcgi_php_version_txt'] = 'PHP Version'; +$wb['server_php_id_txt'] = 'PHP Version'; $wb['pm_txt'] = 'PHP-FPM Process Manager'; $wb['pm_process_idle_timeout_txt'] = 'PHP-FPM pm.process_idle_timeout'; $wb['pm_max_requests_txt'] = 'PHP-FPM pm.max_requests'; diff --git a/interface/web/sites/lib/lang/bg_web_aliasdomain.lng b/interface/web/sites/lib/lang/bg_web_aliasdomain.lng index 4149c711493e6b6f06d0e99656a1c65744d4ec46..74697bdb33298e0eada396548274aebeacda4022 100644 --- a/interface/web/sites/lib/lang/bg_web_aliasdomain.lng +++ b/interface/web/sites/lib/lang/bg_web_aliasdomain.lng @@ -95,7 +95,7 @@ $wb['pm_min_spare_servers_error_regex'] = 'PHP-FPM pm.min_spare_servers must be $wb['pm_max_spare_servers_error_regex'] = 'PHP-FPM pm.max_spare_servers must be a positive integer value.'; $wb['hd_quota_error_regex'] = 'Harddisk quota is invalid.'; $wb['traffic_quota_error_regex'] = 'Traffic quota is invalid.'; -$wb['fastcgi_php_version_txt'] = 'PHP Version'; +$wb['server_php_id_txt'] = 'PHP Version'; $wb['pm_txt'] = 'PHP-FPM Process Manager'; $wb['pm_process_idle_timeout_txt'] = 'PHP-FPM pm.process_idle_timeout'; $wb['pm_max_requests_txt'] = 'PHP-FPM pm.max_requests'; diff --git a/interface/web/sites/lib/lang/bg_web_childdomain.lng b/interface/web/sites/lib/lang/bg_web_childdomain.lng index c7549b76f7ef95a2ce18cae7301a826f375c4029..e62b0af4d5a2d212c38412e41f100cd95626d258 100644 --- a/interface/web/sites/lib/lang/bg_web_childdomain.lng +++ b/interface/web/sites/lib/lang/bg_web_childdomain.lng @@ -100,7 +100,7 @@ $wb['pm_min_spare_servers_error_regex'] = 'PHP-FPM pm.min_spare_servers must be $wb['pm_max_spare_servers_error_regex'] = 'PHP-FPM pm.max_spare_servers must be a positive integer value.'; $wb['hd_quota_error_regex'] = 'Harddisk quota is invalid.'; $wb['traffic_quota_error_regex'] = 'Traffic quota is invalid.'; -$wb['fastcgi_php_version_txt'] = 'PHP Version'; +$wb['server_php_id_txt'] = 'PHP Version'; $wb['pm_txt'] = 'PHP-FPM Process Manager'; $wb['pm_process_idle_timeout_txt'] = 'PHP-FPM pm.process_idle_timeout'; $wb['pm_max_requests_txt'] = 'PHP-FPM pm.max_requests'; diff --git a/interface/web/sites/lib/lang/bg_web_domain.lng b/interface/web/sites/lib/lang/bg_web_domain.lng index 901c34a6ec85fd026c53c08f3e79b88d2c11d37b..2146229cd01cf02b3da2ba7fe845176c009ac727 100644 --- a/interface/web/sites/lib/lang/bg_web_domain.lng +++ b/interface/web/sites/lib/lang/bg_web_domain.lng @@ -91,7 +91,7 @@ $wb['pm_min_spare_servers_error_regex'] = 'PHP-FPM pm.min_spare_servers must be $wb['pm_max_spare_servers_error_regex'] = 'PHP-FPM pm.max_spare_servers must be a positive integer value.'; $wb['hd_quota_error_regex'] = 'квотата за диÑковото проÑтранÑтво е грешна.'; $wb['traffic_quota_error_regex'] = 'Трафик квота е грешна.'; -$wb['fastcgi_php_version_txt'] = 'PHP Version'; +$wb['server_php_id_txt'] = 'PHP Version'; $wb['pm_txt'] = 'PHP-FPM Process Manager'; $wb['pm_process_idle_timeout_txt'] = 'PHP-FPM pm.process_idle_timeout'; $wb['pm_max_requests_txt'] = 'PHP-FPM pm.max_requests'; diff --git a/interface/web/sites/lib/lang/bg_web_vhost_domain.lng b/interface/web/sites/lib/lang/bg_web_vhost_domain.lng index 8c48f035fe4c577273a0e0bc4d7359426b3fa48a..384c6de545d0d47a459a98d99d433ed1212603e6 100644 --- a/interface/web/sites/lib/lang/bg_web_vhost_domain.lng +++ b/interface/web/sites/lib/lang/bg_web_vhost_domain.lng @@ -93,9 +93,9 @@ $wb['pm_min_spare_servers_error_regex'] = 'PHP-FPM pm.min_spare_servers must be $wb['pm_max_spare_servers_error_regex'] = 'PHP-FPM pm.max_spare_servers must be a positive integer value.'; $wb['hd_quota_error_regex'] = 'квотата за диÑковото проÑтранÑтво е грешна.'; $wb['traffic_quota_error_regex'] = 'Трафик квота е грешна.'; -$wb['fastcgi_php_version_txt'] = 'PHP Version'; -$wb['fastcgi_php_version_invalid_txt'] = 'PHP Version is invalid.'; -$wb['fastcgi_php_version_default_hidden_warning_txt'] = 'PHP Version was set to "default" but that can no longer be selected. Choose your desired PHP Version and save your settings.'; +$wb['server_php_id_txt'] = 'PHP Version'; +$wb['server_php_id_invalid_txt'] = 'PHP Version is invalid.'; +$wb['server_php_id_default_hidden_warning_txt'] = 'PHP Version was set to "default" but that can no longer be selected. Choose your desired PHP Version and save your settings.'; $wb['pm_txt'] = 'PHP-FPM Process Manager'; $wb['pm_process_idle_timeout_txt'] = 'PHP-FPM pm.process_idle_timeout'; $wb['pm_max_requests_txt'] = 'PHP-FPM pm.max_requests'; @@ -157,10 +157,9 @@ $wb['limit_web_quota_not_0_txt'] = 'Harddisk Quota cannot be set to 0.'; $wb['proxy_protocol_txt'] = 'Enable PROXY Protocol'; $wb["backup_format_web_txt"] = 'Backup format for web files'; $wb["backup_format_db_txt"] = 'Backup format for database'; -$wb["backup_format_web_note_txt"] = 'In "default" mode ISPConfig has the following behaviour: if backup mode is set as web user, then "zip" format is used for web files, otherwise backup mode is set as root user and "tar (gzip)" format is used; database is compressed in "gzip" format. Only "tar" based formats and "rar" preserve file ownership and permissions of web files and guarantee correct restore.'; -$wb["backup_missing_utils_txt"] = 'Note: some utils are missing in the system that may prevent you from using some compression formats. Please, install the following utils to avoid possible backup problems: '; +$wb["backup_missing_utils_txt"] = 'The following formats can not be used because they are not installed on the webserver: '; $wb["backup_compression_options_txt"] = 'Compression options'; -$wb["backup_encryption_note_txt"] = "Encryption is available only for the following backup formats: \"7z\", \"RAR\", \"zip\" (not secure). If any other format is used then encryption can't be applied and encryption settings are ignored. You can safely change the password at anytime: the \"Restore\" button will still work for old backups encrypted with a previous password. You don't need to type a password to restore backups using the \"Restore\" button. Password is required when you extract the archives manually. Please, don't forget your password, because it's impossible to restore it."; +$wb["backup_encryption_note_txt"] = "Encryption is only available for 7z, RAR, and zip (not secure)."; $wb["backup_encryption_options_txt"] = 'Encryption options'; $wb["backup_enable_encryption_txt"] = 'Enable encryption'; $wb["backup_password_txt"] = 'Password'; @@ -182,4 +181,8 @@ $wb["backup_format_tar_7z_lzma_txt"] = 'tar + 7z (LZMA)'; $wb["backup_format_tar_7z_lzma2_txt"] = 'tar + 7z (LZMA2)'; $wb["backup_format_tar_7z_ppmd_txt"] = 'tar + 7z (PPMd)'; $wb["backup_format_tar_7z_bzip2_txt"] = 'tar + 7z (BZip2)'; +$wb['error_ipv4_change_forbidden'] = 'The IP cannot be changed. Please contact your administrator if you want to change the IPv4 address.'; +$wb['error_ipv6_change_forbidden'] = 'The IP cannot be changed. Please contact your administrator if you want to change the IPv6 address.'; +$wb['error_domain_change_forbidden'] = 'The domain name cannot be changed. Please contact your administrator if you want to change the domain name.'; +$wb['error_server_change_not_possible'] = 'The server cannot be changed.'; ?> 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 35c9298e710d663f63a4269e06dd1db22c1e644b..4ded131f4a7164181c1786bd1071c891cec2f252 100644 --- a/interface/web/sites/lib/lang/bg_web_vhost_subdomain.lng +++ b/interface/web/sites/lib/lang/bg_web_vhost_subdomain.lng @@ -99,7 +99,7 @@ $wb['pm_min_spare_servers_error_regex'] = 'PHP-FPM pm.min_spare_servers must be $wb['pm_max_spare_servers_error_regex'] = 'PHP-FPM pm.max_spare_servers must be a positive integer value.'; $wb['hd_quota_error_regex'] = 'Harddisk quota is invalid.'; $wb['traffic_quota_error_regex'] = 'Traffic quota is invalid.'; -$wb['fastcgi_php_version_txt'] = 'PHP Version'; +$wb['server_php_id_txt'] = 'PHP Version'; $wb['pm_txt'] = 'PHP-FPM Process Manager'; $wb['pm_process_idle_timeout_txt'] = 'PHP-FPM pm.process_idle_timeout'; $wb['pm_max_requests_txt'] = 'PHP-FPM pm.max_requests'; diff --git a/interface/web/sites/lib/lang/br_web_aliasdomain.lng b/interface/web/sites/lib/lang/br_web_aliasdomain.lng index d6142fd3746ff05f90251f95afce755fdec1b7da..779d2c2383dd64795a4fbe77e707e6f69c9a37aa 100644 --- a/interface/web/sites/lib/lang/br_web_aliasdomain.lng +++ b/interface/web/sites/lib/lang/br_web_aliasdomain.lng @@ -95,7 +95,7 @@ $wb['pm_min_spare_servers_error_regex'] = 'PHP-FPM pm.min_spare_servers deve ter $wb['pm_max_spare_servers_error_regex'] = 'PHP-FPM pm.max_spare_servers deve ter um valor inteiro positivo.'; $wb['hd_quota_error_regex'] = 'Cota do disco é inválida.'; $wb['traffic_quota_error_regex'] = 'Cota de tráfego é inválida.'; -$wb['fastcgi_php_version_txt'] = 'Versão do php'; +$wb['server_php_id_txt'] = 'Versão do php'; $wb['pm_txt'] = 'Gerenciador de Processos do php-fpm'; $wb['pm_process_idle_timeout_txt'] = 'PHP-FPM pm.process_idle_timeout'; $wb['pm_max_requests_txt'] = 'PHP-FPM pm.max_requests'; diff --git a/interface/web/sites/lib/lang/br_web_childdomain.lng b/interface/web/sites/lib/lang/br_web_childdomain.lng index fbbb40635e040b52992c0059ab56709f035e6301..fc5f31a2ec26c0743f7cce2e54c9fbf7abba64b1 100644 --- a/interface/web/sites/lib/lang/br_web_childdomain.lng +++ b/interface/web/sites/lib/lang/br_web_childdomain.lng @@ -101,7 +101,7 @@ $wb['pm_min_spare_servers_error_regex'] = 'PHP-FPM pm.min_spare_servers deve ter $wb['pm_max_spare_servers_error_regex'] = 'PHP-FPM pm.max_spare_servers deve ter um valor inteiro positivo.'; $wb['hd_quota_error_regex'] = 'Cota do disco é inválida.'; $wb['traffic_quota_error_regex'] = 'Cota de tráfego é inválida.'; -$wb['fastcgi_php_version_txt'] = 'Versão do php'; +$wb['server_php_id_txt'] = 'Versão do php'; $wb['pm_txt'] = 'Gerenciador de processos do php-fpm'; $wb['pm_process_idle_timeout_txt'] = 'PHP-FPM pm.process_idle_timeout'; $wb['pm_max_requests_txt'] = 'PHP-FPM pm.max_requests'; diff --git a/interface/web/sites/lib/lang/br_web_domain.lng b/interface/web/sites/lib/lang/br_web_domain.lng index 1a2a2b301b9a18d1067daa89699e540f344f3681..31b39974f19d11b7137866aca6aea10b2a378780 100644 --- a/interface/web/sites/lib/lang/br_web_domain.lng +++ b/interface/web/sites/lib/lang/br_web_domain.lng @@ -94,7 +94,7 @@ $wb['pm_min_spare_servers_error_regex'] = 'PHP-FPM pm.min_spare_servers deve ter $wb['pm_max_spare_servers_error_regex'] = 'PHP-FPM pm.max_spare_servers deve ter um valor inteiro positivo.'; $wb['hd_quota_error_regex'] = 'Cota do disco é inválida.'; $wb['traffic_quota_error_regex'] = 'Cota de tráfego é inválida.'; -$wb['fastcgi_php_version_txt'] = 'Versão do php'; +$wb['server_php_id_txt'] = 'Versão do php'; $wb['pm_txt'] = 'Gerenciador de Processos do php-fpm'; $wb['pm_process_idle_timeout_txt'] = 'PHP-FPM pm.process_idle_timeout'; $wb['pm_max_requests_txt'] = 'PHP-FPM pm.max_requests'; 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 a3a14e335b971636585325f8637563460b9ca4ab..acd10622fec1898e7bcedbe6d08506478406922f 100644 --- a/interface/web/sites/lib/lang/br_web_vhost_domain.lng +++ b/interface/web/sites/lib/lang/br_web_vhost_domain.lng @@ -97,9 +97,9 @@ $wb['pm_min_spare_servers_error_regex'] = 'PHP-FPM pm.min_spare_servers deve ter $wb['pm_max_spare_servers_error_regex'] = 'PHP-FPM pm.max_spare_servers deve ter um valor inteiro positivo.'; $wb['hd_quota_error_regex'] = 'Cota do disco é inválida.'; $wb['traffic_quota_error_regex'] = 'Cota de tráfego é inválida.'; -$wb['fastcgi_php_version_txt'] = 'Versão do php'; -$wb['fastcgi_php_version_invalid_txt'] = 'PHP Version is invalid.'; -$wb['fastcgi_php_version_default_hidden_warning_txt'] = 'PHP Version was set to "default" but that can no longer be selected. Choose your desired PHP Version and save your settings.'; +$wb['server_php_id_txt'] = 'Versão do php'; +$wb['server_php_id_invalid_txt'] = 'PHP Version is invalid.'; +$wb['server_php_id_default_hidden_warning_txt'] = 'PHP Version was set to "default" but that can no longer be selected. Choose your desired PHP Version and save your settings.'; $wb['pm_txt'] = 'Gerenciador de Processos do php-fpm'; $wb['pm_process_idle_timeout_txt'] = 'PHP-FPM pm.process_idle_timeout'; $wb['pm_max_requests_txt'] = 'PHP-FPM pm.max_requests'; @@ -162,10 +162,9 @@ $wb['limit_web_quota_not_0_txt'] = 'Cota de disco não pode ser configurada para $wb['proxy_protocol_txt'] = 'Enable PROXY Protocol'; $wb["backup_format_web_txt"] = 'Backup format for web files'; $wb["backup_format_db_txt"] = 'Backup format for database'; -$wb["backup_format_web_note_txt"] = 'In "default" mode ISPConfig has the following behaviour: if backup mode is set as web user, then "zip" format is used for web files, otherwise backup mode is set as root user and "tar (gzip)" format is used; database is compressed in "gzip" format. Only "tar" based formats and "rar" preserve file ownership and permissions of web files and guarantee correct restore.'; -$wb["backup_missing_utils_txt"] = 'Note: some utils are missing in the system that may prevent you from using some compression formats. Please, install the following utils to avoid possible backup problems: '; +$wb["backup_missing_utils_txt"] = 'The following formats can not be used because they are not installed on the webserver: '; $wb["backup_compression_options_txt"] = 'Compression options'; -$wb["backup_encryption_note_txt"] = "Encryption is available only for the following backup formats: \"7z\", \"RAR\", \"zip\" (not secure). If any other format is used then encryption can't be applied and encryption settings are ignored. You can safely change the password at anytime: the \"Restore\" button will still work for old backups encrypted with a previous password. You don't need to type a password to restore backups using the \"Restore\" button. Password is required when you extract the archives manually. Please, don't forget your password, because it's impossible to restore it."; +$wb["backup_encryption_note_txt"] = "Encryption is only available for 7z, RAR, and zip (not secure)."; $wb["backup_encryption_options_txt"] = 'Encryption options'; $wb["backup_enable_encryption_txt"] = 'Enable encryption'; $wb["backup_password_txt"] = 'Password'; @@ -187,4 +186,8 @@ $wb["backup_format_tar_7z_lzma_txt"] = 'tar + 7z (LZMA)'; $wb["backup_format_tar_7z_lzma2_txt"] = 'tar + 7z (LZMA2)'; $wb["backup_format_tar_7z_ppmd_txt"] = 'tar + 7z (PPMd)'; $wb["backup_format_tar_7z_bzip2_txt"] = 'tar + 7z (BZip2)'; +$wb['error_ipv4_change_forbidden'] = 'The IP cannot be changed. Please contact your administrator if you want to change the IPv4 address.'; +$wb['error_ipv6_change_forbidden'] = 'The IP cannot be changed. Please contact your administrator if you want to change the IPv6 address.'; +$wb['error_domain_change_forbidden'] = 'The domain name cannot be changed. Please contact your administrator if you want to change the domain name.'; +$wb['error_server_change_not_possible'] = 'The server cannot be changed.'; ?> 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 390b7402e7059332b1a766442ebc26c1454e0f2c..03526d049b00b294c6dba728d85944e1ee8c87c5 100644 --- a/interface/web/sites/lib/lang/br_web_vhost_subdomain.lng +++ b/interface/web/sites/lib/lang/br_web_vhost_subdomain.lng @@ -100,7 +100,7 @@ $wb['pm_min_spare_servers_error_regex'] = 'PHP-FPM pm.min_spare_servers deve ter $wb['pm_max_spare_servers_error_regex'] = 'PHP-FPM pm.max_spare_servers deve ter um valor inteiro positivo.'; $wb['hd_quota_error_regex'] = 'Cota do disco é inválida.'; $wb['traffic_quota_error_regex'] = 'Cota de tráfego é inválida.'; -$wb['fastcgi_php_version_txt'] = 'Versão do php'; +$wb['server_php_id_txt'] = 'Versão do php'; $wb['pm_txt'] = 'Gerenciador de Processos do php-fpm'; $wb['pm_process_idle_timeout_txt'] = 'PHP-FPM pm.process_idle_timeout'; $wb['pm_max_requests_txt'] = 'PHP-FPM pm.max_requests'; diff --git a/interface/web/sites/lib/lang/ca_web_aliasdomain.lng b/interface/web/sites/lib/lang/ca_web_aliasdomain.lng index 92c9c3553872723e7520f8e13a0eb05468f61b88..990a5342ccaefe08ff10312f532989909a2e06b4 100644 --- a/interface/web/sites/lib/lang/ca_web_aliasdomain.lng +++ b/interface/web/sites/lib/lang/ca_web_aliasdomain.lng @@ -95,7 +95,7 @@ $wb['pm_min_spare_servers_error_regex'] = 'La valeur de PHP-FPM pm.min_spare_ser $wb['pm_max_spare_servers_error_regex'] = 'La valeur de PHP-FPM pm.max_spare_servers doit être un entier positif.'; $wb['hd_quota_error_regex'] = 'Le quota de disque dur est invalide.'; $wb['traffic_quota_error_regex'] = 'Le quota de trafic est invalide.'; -$wb['fastcgi_php_version_txt'] = 'Version de PHP'; +$wb['server_php_id_txt'] = 'Version de PHP'; $wb['pm_txt'] = 'Manager de process PHP-FPM'; $wb['pm_process_idle_timeout_txt'] = 'PHP-FPM pm.process_idle_timeout'; $wb['pm_max_requests_txt'] = 'PHP-FPM pm.max_requests'; diff --git a/interface/web/sites/lib/lang/ca_web_childdomain.lng b/interface/web/sites/lib/lang/ca_web_childdomain.lng index 762acfe244fe2f8c158625c679821afe56d7740d..c766bae8818d3b1c3583a72f0c85cf8a6bd261b0 100644 --- a/interface/web/sites/lib/lang/ca_web_childdomain.lng +++ b/interface/web/sites/lib/lang/ca_web_childdomain.lng @@ -101,7 +101,7 @@ $wb['pm_min_spare_servers_error_regex'] = 'PHP-FPM pm.min_spare_servers must be $wb['pm_max_spare_servers_error_regex'] = 'PHP-FPM pm.max_spare_servers must be a positive integer value.'; $wb['hd_quota_error_regex'] = 'Harddisk quota is invalid.'; $wb['traffic_quota_error_regex'] = 'Traffic quota is invalid.'; -$wb['fastcgi_php_version_txt'] = 'PHP Version'; +$wb['server_php_id_txt'] = 'PHP Version'; $wb['pm_txt'] = 'PHP-FPM Process Manager'; $wb['pm_process_idle_timeout_txt'] = 'PHP-FPM pm.process_idle_timeout'; $wb['pm_max_requests_txt'] = 'PHP-FPM pm.max_requests'; diff --git a/interface/web/sites/lib/lang/ca_web_domain.lng b/interface/web/sites/lib/lang/ca_web_domain.lng index a3475c43c2d58dd7b3e2232032926af144882c71..c240d5c349f1eba4fce560515d81c0c19bceac11 100644 --- a/interface/web/sites/lib/lang/ca_web_domain.lng +++ b/interface/web/sites/lib/lang/ca_web_domain.lng @@ -93,7 +93,7 @@ $wb['hd_quota_error_regex'] = 'Le quota de disque dur est invalide.'; $wb['traffic_quota_error_regex'] = 'Le quota de trafic est invalide.'; $wb['ssl_key_txt'] = 'Clé SSL'; $wb['perl_txt'] = 'Perl'; -$wb['fastcgi_php_version_txt'] = 'Version de PHP'; +$wb['server_php_id_txt'] = 'Version de PHP'; $wb['pm_txt'] = 'Manager de process PHP-FPM'; $wb['pm_process_idle_timeout_txt'] = 'PHP-FPM pm.process_idle_timeout'; $wb['pm_max_requests_txt'] = 'PHP-FPM pm.max_requests'; diff --git a/interface/web/sites/lib/lang/ca_web_vhost_domain.lng b/interface/web/sites/lib/lang/ca_web_vhost_domain.lng index cf25d81260bbce5d74fda473550f4ef15023687f..f1b755827dd49d9a42b6764fdf4b9ec2f5aff227 100644 --- a/interface/web/sites/lib/lang/ca_web_vhost_domain.lng +++ b/interface/web/sites/lib/lang/ca_web_vhost_domain.lng @@ -97,9 +97,9 @@ $wb['pm_min_spare_servers_error_regex'] = 'PHP-FPM pm.min_spare_servers must be $wb['pm_max_spare_servers_error_regex'] = 'PHP-FPM pm.max_spare_servers must be a positive integer value.'; $wb['hd_quota_error_regex'] = 'Harddisk quota is invalid.'; $wb['traffic_quota_error_regex'] = 'Traffic quota is invalid.'; -$wb['fastcgi_php_version_txt'] = 'PHP Version'; -$wb['fastcgi_php_version_invalid_txt'] = 'PHP Version is invalid.'; -$wb['fastcgi_php_version_default_hidden_warning_txt'] = 'PHP Version was set to "default" but that can no longer be selected. Choose your desired PHP Version and save your settings.'; +$wb['server_php_id_txt'] = 'PHP Version'; +$wb['server_php_id_invalid_txt'] = 'PHP Version is invalid.'; +$wb['server_php_id_default_hidden_warning_txt'] = 'PHP Version was set to "default" but that can no longer be selected. Choose your desired PHP Version and save your settings.'; $wb['pm_txt'] = 'PHP-FPM Process Manager'; $wb['pm_process_idle_timeout_txt'] = 'PHP-FPM pm.process_idle_timeout'; $wb['pm_max_requests_txt'] = 'PHP-FPM pm.max_requests'; @@ -157,10 +157,9 @@ $wb['limit_web_quota_not_0_txt'] = 'Harddisk Quota cannot be set to 0.'; $wb['proxy_protocol_txt'] = 'Enable PROXY Protocol'; $wb["backup_format_web_txt"] = 'Backup format for web files'; $wb["backup_format_db_txt"] = 'Backup format for database'; -$wb["backup_format_web_note_txt"] = 'In "default" mode ISPConfig has the following behaviour: if backup mode is set as web user, then "zip" format is used for web files, otherwise backup mode is set as root user and "tar (gzip)" format is used; database is compressed in "gzip" format. Only "tar" based formats and "rar" preserve file ownership and permissions of web files and guarantee correct restore.'; -$wb["backup_missing_utils_txt"] = 'Note: some utils are missing in the system that may prevent you from using some compression formats. Please, install the following utils to avoid possible backup problems: '; +$wb["backup_missing_utils_txt"] = 'The following formats can not be used because they are not installed on the webserver: '; $wb["backup_compression_options_txt"] = 'Compression options'; -$wb["backup_encryption_note_txt"] = "Encryption is available only for the following backup formats: \"7z\", \"RAR\", \"zip\" (not secure). If any other format is used then encryption can't be applied and encryption settings are ignored. You can safely change the password at anytime: the \"Restore\" button will still work for old backups encrypted with a previous password. You don't need to type a password to restore backups using the \"Restore\" button. Password is required when you extract the archives manually. Please, don't forget your password, because it's impossible to restore it."; +$wb["backup_encryption_note_txt"] = "Encryption is only available for 7z, RAR, and zip (not secure)."; $wb["backup_encryption_options_txt"] = 'Encryption options'; $wb["backup_enable_encryption_txt"] = 'Enable encryption'; $wb["backup_password_txt"] = 'Password'; @@ -182,4 +181,8 @@ $wb["backup_format_tar_7z_lzma_txt"] = 'tar + 7z (LZMA)'; $wb["backup_format_tar_7z_lzma2_txt"] = 'tar + 7z (LZMA2)'; $wb["backup_format_tar_7z_ppmd_txt"] = 'tar + 7z (PPMd)'; $wb["backup_format_tar_7z_bzip2_txt"] = 'tar + 7z (BZip2)'; +$wb['error_ipv4_change_forbidden'] = 'The IP cannot be changed. Please contact your administrator if you want to change the IPv4 address.'; +$wb['error_ipv6_change_forbidden'] = 'The IP cannot be changed. Please contact your administrator if you want to change the IPv6 address.'; +$wb['error_domain_change_forbidden'] = 'The domain name cannot be changed. Please contact your administrator if you want to change the domain name.'; +$wb['error_server_change_not_possible'] = 'The server cannot be changed.'; ?> 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 c9a46866089adc1e4bc6c1d21d3560087f9d215e..faae8ba2b0f89f3d777366f7d8d75db1bdf5e356 100644 --- a/interface/web/sites/lib/lang/ca_web_vhost_subdomain.lng +++ b/interface/web/sites/lib/lang/ca_web_vhost_subdomain.lng @@ -99,7 +99,7 @@ $wb['pm_min_spare_servers_error_regex'] = 'PHP-FPM pm.min_spare_servers must be $wb['pm_max_spare_servers_error_regex'] = 'PHP-FPM pm.max_spare_servers must be a positive integer value.'; $wb['hd_quota_error_regex'] = 'Harddisk quota is invalid.'; $wb['traffic_quota_error_regex'] = 'Traffic quota is invalid.'; -$wb['fastcgi_php_version_txt'] = 'PHP Version'; +$wb['server_php_id_txt'] = 'PHP Version'; $wb['pm_txt'] = 'PHP-FPM Process Manager'; $wb['pm_process_idle_timeout_txt'] = 'PHP-FPM pm.process_idle_timeout'; $wb['pm_max_requests_txt'] = 'PHP-FPM pm.max_requests'; diff --git a/interface/web/sites/lib/lang/cz_web_aliasdomain.lng b/interface/web/sites/lib/lang/cz_web_aliasdomain.lng index 0f8d3e5dec8edfb1a86dd2908a36ec9a7541b04e..9861b62046170895e441dc45bd17a6d8a5de641a 100644 --- a/interface/web/sites/lib/lang/cz_web_aliasdomain.lng +++ b/interface/web/sites/lib/lang/cz_web_aliasdomain.lng @@ -95,7 +95,7 @@ $wb['pm_min_spare_servers_error_regex'] = 'PHP-FPM pm.min_spare_servers must be $wb['pm_max_spare_servers_error_regex'] = 'PHP-FPM pm.max_spare_servers must be a positive integer value.'; $wb['hd_quota_error_regex'] = 'Harddisk quota is invalid.'; $wb['traffic_quota_error_regex'] = 'Traffic quota is invalid.'; -$wb['fastcgi_php_version_txt'] = 'PHP Verze'; +$wb['server_php_id_txt'] = 'PHP Verze'; $wb['pm_txt'] = 'PHP-FPM Process Manager'; $wb['pm_process_idle_timeout_txt'] = 'PHP-FPM pm.process_idle_timeout'; $wb['pm_max_requests_txt'] = 'PHP-FPM pm.max_requests'; diff --git a/interface/web/sites/lib/lang/cz_web_childdomain.lng b/interface/web/sites/lib/lang/cz_web_childdomain.lng index b159976b29e044529665f4ceeabdce18fc7f3b0b..6838d351ee658c75f6c8f97af11c47cff8eaf6a2 100644 --- a/interface/web/sites/lib/lang/cz_web_childdomain.lng +++ b/interface/web/sites/lib/lang/cz_web_childdomain.lng @@ -100,7 +100,7 @@ $wb['pm_min_spare_servers_error_regex'] = 'PHP-FPM pm.min_spare_servers must be $wb['pm_max_spare_servers_error_regex'] = 'PHP-FPM pm.max_spare_servers must be a positive integer value.'; $wb['hd_quota_error_regex'] = 'Harddisk quota is invalid.'; $wb['traffic_quota_error_regex'] = 'Traffic quota is invalid.'; -$wb['fastcgi_php_version_txt'] = 'PHP Verze'; +$wb['server_php_id_txt'] = 'PHP Verze'; $wb['pm_txt'] = 'PHP-FPM Process Manager'; $wb['pm_process_idle_timeout_txt'] = 'PHP-FPM pm.process_idle_timeout'; $wb['pm_max_requests_txt'] = 'PHP-FPM pm.max_requests'; diff --git a/interface/web/sites/lib/lang/cz_web_domain.lng b/interface/web/sites/lib/lang/cz_web_domain.lng index 0998cb1264a385b11957d85915ae7ea184bbc154..b61ca0741ae2f6ce1a29573f2cb97fab966d8f2e 100644 --- a/interface/web/sites/lib/lang/cz_web_domain.lng +++ b/interface/web/sites/lib/lang/cz_web_domain.lng @@ -93,7 +93,7 @@ $wb['hd_quota_error_regex'] = 'Kvóta pevného disku je neplatná.'; $wb['traffic_quota_error_regex'] = 'Traffik kvóta je neplatná.'; $wb['ssl_key_txt'] = 'SSL klÃÄ'; $wb['perl_txt'] = 'Perl'; -$wb['fastcgi_php_version_txt'] = 'VýbÄ›r PHP verze'; +$wb['server_php_id_txt'] = 'VýbÄ›r PHP verze'; $wb['pm_txt'] = 'PHP-FPM Process Manager'; $wb['pm_process_idle_timeout_txt'] = 'PHP-FPM pm.process_idle_timeout'; $wb['pm_max_requests_txt'] = 'PHP-FPM pm.max_requests'; diff --git a/interface/web/sites/lib/lang/cz_web_vhost_domain.lng b/interface/web/sites/lib/lang/cz_web_vhost_domain.lng index ea814b0cb9b3a59adc0557461266e87a82199b4a..88b3cb3e5a25343b608a1d6f270509dbef413753 100644 --- a/interface/web/sites/lib/lang/cz_web_vhost_domain.lng +++ b/interface/web/sites/lib/lang/cz_web_vhost_domain.lng @@ -99,9 +99,9 @@ $wb['hd_quota_error_regex'] = 'Kvóta pevného disku je neplatná.'; $wb['traffic_quota_error_regex'] = 'Traffik kvóta je neplatná.'; $wb['ssl_key_txt'] = 'SSL klÃÄ'; $wb['perl_txt'] = 'Perl'; -$wb['fastcgi_php_version_txt'] = 'VýbÄ›r PHP verze'; -$wb['fastcgi_php_version_invalid_txt'] = 'PHP Version is invalid.'; -$wb['fastcgi_php_version_default_hidden_warning_txt'] = 'PHP Version was set to "default" but that can no longer be selected. Choose your desired PHP Version and save your settings.'; +$wb['server_php_id_txt'] = 'VýbÄ›r PHP verze'; +$wb['server_php_id_invalid_txt'] = 'PHP Version is invalid.'; +$wb['server_php_id_default_hidden_warning_txt'] = 'PHP Version was set to "default" but that can no longer be selected. Choose your desired PHP Version and save your settings.'; $wb['pm_txt'] = 'PHP-FPM Process Manager'; $wb['pm_process_idle_timeout_txt'] = 'PHP-FPM pm.process_idle_timeout'; $wb['pm_max_requests_txt'] = 'PHP-FPM pm.max_requests'; @@ -157,10 +157,9 @@ $wb['limit_web_quota_not_0_txt'] = 'Harddisk Quota cannot be set to 0.'; $wb['proxy_protocol_txt'] = 'Enable PROXY Protocol'; $wb["backup_format_web_txt"] = 'Backup format for web files'; $wb["backup_format_db_txt"] = 'Backup format for database'; -$wb["backup_format_web_note_txt"] = 'In "default" mode ISPConfig has the following behaviour: if backup mode is set as web user, then "zip" format is used for web files, otherwise backup mode is set as root user and "tar (gzip)" format is used; database is compressed in "gzip" format. Only "tar" based formats and "rar" preserve file ownership and permissions of web files and guarantee correct restore.'; -$wb["backup_missing_utils_txt"] = 'Note: some utils are missing in the system that may prevent you from using some compression formats. Please, install the following utils to avoid possible backup problems: '; +$wb["backup_missing_utils_txt"] = 'The following formats can not be used because they are not installed on the webserver: '; $wb["backup_compression_options_txt"] = 'Compression options'; -$wb["backup_encryption_note_txt"] = "Encryption is available only for the following backup formats: \"7z\", \"RAR\", \"zip\" (not secure). If any other format is used then encryption can't be applied and encryption settings are ignored. You can safely change the password at anytime: the \"Restore\" button will still work for old backups encrypted with a previous password. You don't need to type a password to restore backups using the \"Restore\" button. Password is required when you extract the archives manually. Please, don't forget your password, because it's impossible to restore it."; +$wb["backup_encryption_note_txt"] = "Encryption is only available for 7z, RAR, and zip (not secure)."; $wb["backup_encryption_options_txt"] = 'Encryption options'; $wb["backup_enable_encryption_txt"] = 'Enable encryption'; $wb["backup_password_txt"] = 'Password'; @@ -182,4 +181,8 @@ $wb["backup_format_tar_7z_lzma_txt"] = 'tar + 7z (LZMA)'; $wb["backup_format_tar_7z_lzma2_txt"] = 'tar + 7z (LZMA2)'; $wb["backup_format_tar_7z_ppmd_txt"] = 'tar + 7z (PPMd)'; $wb["backup_format_tar_7z_bzip2_txt"] = 'tar + 7z (BZip2)'; +$wb['error_ipv4_change_forbidden'] = 'The IP cannot be changed. Please contact your administrator if you want to change the IPv4 address.'; +$wb['error_ipv6_change_forbidden'] = 'The IP cannot be changed. Please contact your administrator if you want to change the IPv6 address.'; +$wb['error_domain_change_forbidden'] = 'The domain name cannot be changed. Please contact your administrator if you want to change the domain name.'; +$wb['error_server_change_not_possible'] = 'The server cannot be changed.'; ?> 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 268368c139b6192ddf3c9dcc1b7580d4cad86572..e15b9c58633661206e08400f01b728c08e600045 100644 --- a/interface/web/sites/lib/lang/cz_web_vhost_subdomain.lng +++ b/interface/web/sites/lib/lang/cz_web_vhost_subdomain.lng @@ -99,7 +99,7 @@ $wb['pm_min_spare_servers_error_regex'] = 'PHP-FPM pm.min_spare_servers must be $wb['pm_max_spare_servers_error_regex'] = 'PHP-FPM pm.max_spare_servers must be a positive integer value.'; $wb['hd_quota_error_regex'] = 'Kvóta pevného disku je neplatná.'; $wb['traffic_quota_error_regex'] = 'Traffik kvóta je neplatná.'; -$wb['fastcgi_php_version_txt'] = 'VýbÄ›r PHP verze'; +$wb['server_php_id_txt'] = 'VýbÄ›r PHP verze'; $wb['pm_txt'] = 'PHP-FPM Process Manager'; $wb['pm_process_idle_timeout_txt'] = 'PHP-FPM pm.process_idle_timeout'; $wb['pm_max_requests_txt'] = 'PHP-FPM pm.max_requests'; diff --git a/interface/web/sites/lib/lang/de.lng b/interface/web/sites/lib/lang/de.lng index 48e0a9a9a77432462558a73e0e1b1f5cf5be2c09..f5cf2e2052f88c852180c9d4d9ddeb4987f0641f 100644 --- a/interface/web/sites/lib/lang/de.lng +++ b/interface/web/sites/lib/lang/de.lng @@ -14,7 +14,7 @@ $wb['Command Line'] = 'Kommandozeile'; $wb['Shell-User'] = 'Shell Benutzer'; $wb['Cron Jobs'] = 'Cronjobs'; $wb['Statistics'] = 'Statistik'; -$wb['Web traffic'] = 'Datentransfer'; +$wb['Web traffic'] = 'Web-Datentransfer'; $wb['Website quota (Harddisk)'] = 'Speicherplatzbeschränkung'; $wb['Cron'] = 'Cron'; $wb['Stats'] = 'Statistiken'; @@ -32,4 +32,7 @@ $wb['Installed packages'] = 'Installierte Pakete'; $wb['Update Packagelist'] = 'Paketliste aktualisieren'; $wb['error_proxy_requires_url'] = 'Weiterleitungstyp '; $wb['Subdomain (Vhost)'] = 'Subdomain (vHost)'; +$wb['Database quota'] = 'Datenbank-Quota'; +$wb['FTP traffic'] = 'FTP-Datentransfer'; +$wb['Backup Stats'] = 'Backup-Statistiken'; ?> diff --git a/interface/web/sites/lib/lang/de_backup_stats_list.lng b/interface/web/sites/lib/lang/de_backup_stats_list.lng index 01797ea9c42ee4109e753d0062643007264d9ba9..763e3db27524bf93021170db3094e1a6946457db 100644 --- a/interface/web/sites/lib/lang/de_backup_stats_list.lng +++ b/interface/web/sites/lib/lang/de_backup_stats_list.lng @@ -6,5 +6,5 @@ $wb['domain_txt'] = 'Domain'; $wb['backup_count_txt'] = 'Anz. Backups'; $wb['backup_server_txt'] = 'Server'; $wb['backup_interval_txt'] = 'Intervall / Anz.'; -$wb['backup_size_txt'] = 'Backupgrösse'; +$wb['backup_size_txt'] = 'Backupgröße'; ?> diff --git a/interface/web/sites/lib/lang/de_database_quota_stats_list.lng b/interface/web/sites/lib/lang/de_database_quota_stats_list.lng index 3bc9874bf105333a5ae9d0a6517f909b075d4772..087756104a3cdcd706ae4de1805193a403083851 100644 --- a/interface/web/sites/lib/lang/de_database_quota_stats_list.lng +++ b/interface/web/sites/lib/lang/de_database_quota_stats_list.lng @@ -5,5 +5,5 @@ $wb['client_txt'] = 'Kunde'; $wb['used_txt'] = 'Verwendeter Speicherplatz'; $wb['quota_txt'] = 'Quota'; $wb['percentage_txt'] = 'Verbraucht in %'; -$wb['list_head_txt'] = 'Database Quota'; +$wb['list_head_txt'] = 'Datenbank-Quota'; ?> diff --git a/interface/web/sites/lib/lang/de_ftp_sites_stats_list.lng b/interface/web/sites/lib/lang/de_ftp_sites_stats_list.lng index e44025a715dbf435bdca9faee0b109ba25bf611d..c2df2b397c58bdbde1366ee1bbd6135b6671b298 100644 --- a/interface/web/sites/lib/lang/de_ftp_sites_stats_list.lng +++ b/interface/web/sites/lib/lang/de_ftp_sites_stats_list.lng @@ -1,10 +1,10 @@ <?php -$wb['list_head_txt'] = 'FTP traffic'; +$wb['list_head_txt'] = 'FTP-Transfer'; $wb['domain_txt'] = 'Domain'; -$wb['this_month_txt'] = 'This month'; -$wb['last_month_txt'] = 'Last month'; -$wb['this_year_txt'] = 'This year'; -$wb['last_year_txt'] = 'Last year'; -$wb['sum_txt'] = 'Sum (Download + Upload)'; +$wb['this_month_txt'] = 'Dieser Month'; +$wb['last_month_txt'] = 'Letzter Monat'; +$wb['this_year_txt'] = 'Dieses Jahr'; +$wb['last_year_txt'] = 'Letztes Jahr'; +$wb['sum_txt'] = 'Gesamt (Download + Upload)'; $wb['in_out_txt'] = 'DL/UL'; ?> diff --git a/interface/web/sites/lib/lang/de_shell_user.lng b/interface/web/sites/lib/lang/de_shell_user.lng index 9130b456e345e32b661ff72b78b8d39d7a217a49..6b5dac53c3a5a1ed6558e733ed9572eb695154d4 100644 --- a/interface/web/sites/lib/lang/de_shell_user.lng +++ b/interface/web/sites/lib/lang/de_shell_user.lng @@ -28,9 +28,9 @@ $wb['password_mismatch_txt'] = 'Die Passwörter stimmen nicht überein.'; $wb['password_match_txt'] = 'Die Passwörter stimmen überein.'; $wb['username_must_not_exceed_32_chars_txt'] = 'Der Benutzername darf 32 Zeichen nicht überschreiten.'; $wb['username_not_allowed_txt'] = 'Dieser Benutzername ist nicht erlaubt.'; -$wb['invalid_system_user_or_group_txt'] = 'Invalid system user or group'; -$wb['directory_error_regex'] = 'Invalid directory'; -$wb['shell_error_regex'] = 'Invalid shell'; -$wb['invalid_username_txt'] = 'Invalid Username'; -$wb['directory_error_notinweb'] = 'The directory has to be inside the web root.'; +$wb['invalid_system_user_or_group_txt'] = 'Ungültiger Web Benutzername oder Gruppe'; +$wb['directory_error_regex'] = 'Ungültiges Verzeichnis'; +$wb['shell_error_regex'] = 'Ungültige Shell'; +$wb['invalid_username_txt'] = 'Ungültiger Benutzername'; +$wb['directory_error_notinweb'] = 'Das Verzeichnis muss innerhalb des Web-Verzeichnisses liegen.'; ?> diff --git a/interface/web/sites/lib/lang/de_web_aliasdomain.lng b/interface/web/sites/lib/lang/de_web_aliasdomain.lng index 5889b17d5745a6082ee2ea40693551600c938941..14e4c79d25ac03856dcb51a99b63fdcb67ea759d 100644 --- a/interface/web/sites/lib/lang/de_web_aliasdomain.lng +++ b/interface/web/sites/lib/lang/de_web_aliasdomain.lng @@ -95,7 +95,7 @@ $wb['pm_min_spare_servers_error_regex'] = 'PHP-FPM pm.min_spare_servers muss ein $wb['pm_max_spare_servers_error_regex'] = 'PHP-FPM pm.max_spare_servers muss ein positiver integer Wert sein.'; $wb['hd_quota_error_regex'] = 'Speicherplatz-Beschränkung ist ungültig.'; $wb['traffic_quota_error_regex'] = 'Datentransfer-Beschränkung ist ungültig.'; -$wb['fastcgi_php_version_txt'] = 'PHP-Version'; +$wb['server_php_id_txt'] = 'PHP-Version'; $wb['pm_txt'] = 'PHP-FPM Prozess Manager'; $wb['pm_process_idle_timeout_txt'] = 'PHP-FPM pm.process_idle_timeout'; $wb['pm_max_requests_txt'] = 'PHP-FPM pm.max_requests'; diff --git a/interface/web/sites/lib/lang/de_web_childdomain.lng b/interface/web/sites/lib/lang/de_web_childdomain.lng index 05b1f1d51d902ff0b4cdb1699b5740b28187137a..2f1248740ddf543942903d656b20f3b409f096af 100644 --- a/interface/web/sites/lib/lang/de_web_childdomain.lng +++ b/interface/web/sites/lib/lang/de_web_childdomain.lng @@ -100,7 +100,7 @@ $wb['pm_min_spare_servers_error_regex'] = 'PHP-FPM pm.min_spare_servers muss ein $wb['pm_max_spare_servers_error_regex'] = 'PHP-FPM pm.max_spare_servers muss ein positiver integer Wert sein.'; $wb['hd_quota_error_regex'] = 'Speicherplatz-Beschränkung ist ungültig.'; $wb['traffic_quota_error_regex'] = 'Datentransfer-Beschränkung ist ungültig.'; -$wb['fastcgi_php_version_txt'] = 'PHP-Version'; +$wb['server_php_id_txt'] = 'PHP-Version'; $wb['pm_txt'] = 'PHP-FPM Prozess Manager'; $wb['pm_process_idle_timeout_txt'] = 'PHP-FPM pm.process_idle_timeout'; $wb['pm_max_requests_txt'] = 'PHP-FPM pm.max_requests'; diff --git a/interface/web/sites/lib/lang/de_web_domain.lng b/interface/web/sites/lib/lang/de_web_domain.lng index 7232d8fa5f79141cb420ec53768617c132a60f55..b9c77a8b7bd98483c62f1fef9060b39d3c77fa1e 100644 --- a/interface/web/sites/lib/lang/de_web_domain.lng +++ b/interface/web/sites/lib/lang/de_web_domain.lng @@ -95,7 +95,7 @@ $wb['pm_min_spare_servers_error_regex'] = 'PHP-FPM pm.min_spare_servers muß ein $wb['pm_max_spare_servers_error_regex'] = 'PHP-FPM pm.max_spare_servers muß eine positive ganze Zahl sein.'; $wb['hd_quota_error_regex'] = 'Speicherplatzbeschränkung ist ungültig.'; $wb['traffic_quota_error_regex'] = 'Transfervolumenbeschränkung ist ungültig.'; -$wb['fastcgi_php_version_txt'] = 'PHP Version'; +$wb['server_php_id_txt'] = 'PHP Version'; $wb['pm_txt'] = 'PHP-FPM FastCGI Prozess Manager'; $wb['pm_process_idle_timeout_txt'] = 'PHP-FPM pm.process_idle_timeout'; $wb['pm_max_requests_txt'] = 'PHP-FPM pm.max_requests'; diff --git a/interface/web/sites/lib/lang/de_web_subdomain.lng b/interface/web/sites/lib/lang/de_web_subdomain.lng index 586c90adc38f69190b75a1723f6641b92ed4558f..4f34874a11f1d7490f6c8536c502faabea09492a 100644 --- a/interface/web/sites/lib/lang/de_web_subdomain.lng +++ b/interface/web/sites/lib/lang/de_web_subdomain.lng @@ -45,6 +45,6 @@ $wb['available_proxy_directive_snippets_txt'] = 'Verfügbare Proxy Direktiven Sc $wb['error_proxy_requires_url'] = 'Weiterleitungstyp \\"proxy\\" erfordert eine URL als Weiterleitungspfad.'; $wb['http_port_txt'] = 'HTTP Port'; $wb['https_port_txt'] = 'HTTPS Port'; -$wb['http_port_error_regex'] = 'HTTP Port invalid.'; -$wb['https_port_error_regex'] = 'HTTPS Port invalid.'; +$wb['http_port_error_regex'] = 'HTTP Port ungültig.'; +$wb['https_port_error_regex'] = 'HTTPS Port ungültig.'; ?> 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 449bcb588a546a85a349e77bb5495516ff2747d1..4fab6000843113b1d02396bc7d356bd98a0628a5 100644 --- a/interface/web/sites/lib/lang/de_web_vhost_domain.lng +++ b/interface/web/sites/lib/lang/de_web_vhost_domain.lng @@ -98,9 +98,9 @@ $wb['pm_min_spare_servers_error_regex'] = 'PHP-FPM pm.min_spare_servers muß ein $wb['pm_max_spare_servers_error_regex'] = 'PHP-FPM pm.max_spare_servers muß eine positive ganze Zahl sein.'; $wb['hd_quota_error_regex'] = 'Speicherplatzbeschränkung ist ungültig.'; $wb['traffic_quota_error_regex'] = 'Transfervolumenbeschränkung ist ungültig.'; -$wb['fastcgi_php_version_txt'] = 'PHP Version'; -$wb['fastcgi_php_version_invalid_txt'] = 'PHP Version is invalid.'; -$wb['fastcgi_php_version_default_hidden_warning_txt'] = 'PHP Version was set to "default" but that can no longer be selected. Choose your desired PHP Version and save your settings.'; +$wb['server_php_id_txt'] = 'PHP Version'; +$wb['server_php_id_invalid_txt'] = 'PHP Version is ungültig.'; +$wb['server_php_id_default_hidden_warning_txt'] = 'PHP Version was set to "default" but that can no longer be selected. Choose your desired PHP Version and save your settings.'; $wb['pm_txt'] = 'PHP-FPM FastCGI Prozess Manager'; $wb['pm_process_idle_timeout_txt'] = 'PHP-FPM pm.process_idle_timeout'; $wb['pm_max_requests_txt'] = 'PHP-FPM pm.max_requests'; @@ -141,15 +141,15 @@ $wb['btn_cancel_txt'] = 'Abbrechen'; $wb['load_client_data_txt'] = 'Kundendaten übernehmen'; $wb['load_my_data_txt'] = 'Meine Kontaktdaten laden'; $wb['reset_client_data_txt'] = 'Daten verwerfen'; -$wb['server_chosen_not_ok'] = 'The selected server is not allowed for this account.'; -$wb['subdomain_error_empty'] = 'The subdommain field is empty or contains invalid characters.'; -$wb['rewrite_to_https_txt'] = 'Rewrite HTTP to HTTPS'; -$wb['password_strength_txt'] = 'Password strength'; +$wb['server_chosen_not_ok'] = 'Der ausgewählte Server ist nicht zulässig für diesen Account.'; +$wb['subdomain_error_empty'] = 'Die Subdomain ist leer oder ungültig.'; +$wb['rewrite_to_https_txt'] = 'HTTP zu HTTPS weiterleiten'; +$wb['password_strength_txt'] = 'Passwortstärke'; $wb['directive_snippets_id_txt'] = 'Webserver-Konfiguration'; $wb['http_port_txt'] = 'HTTP Port'; $wb['https_port_txt'] = 'HTTPS Port'; -$wb['http_port_error_regex'] = 'HTTP Port invalid.'; -$wb['https_port_error_regex'] = 'HTTPS Port invalid.'; +$wb['http_port_error_regex'] = 'HTTP Port ungültig.'; +$wb['https_port_error_regex'] = 'HTTPS Port ungültig.'; $wb['enable_pagespeed_txt'] = 'Enable PageSpeed'; $wb['log_retention_txt'] = 'Log-Dateien Aufbewahrungszeit'; $wb['log_retention_error_regex'] = 'Aufbewahrungszeit in Tagen (Erlaubte Werte: min. 0 - max. 9999)'; @@ -157,10 +157,9 @@ $wb['limit_web_quota_not_0_txt'] = 'Harddisk Quota kann nicht 0 sein.'; $wb['proxy_protocol_txt'] = 'Enable PROXY Protocol'; $wb["backup_format_web_txt"] = 'Backup format for web files'; $wb["backup_format_db_txt"] = 'Backup format for database'; -$wb["backup_format_web_note_txt"] = 'In "default" mode ISPConfig has the following behaviour: if backup mode is set as web user, then "zip" format is used for web files, otherwise backup mode is set as root user and "tar (gzip)" format is used; database is compressed in "gzip" format. Only "tar" based formats and "rar" preserve file ownership and permissions of web files and guarantee correct restore.'; -$wb["backup_missing_utils_txt"] = 'Note: some utils are missing in the system that may prevent you from using some compression formats. Please, install the following utils to avoid possible backup problems: '; +$wb["backup_missing_utils_txt"] = 'The following formats can not be used because they are not installed on the webserver: '; $wb["backup_compression_options_txt"] = 'Compression options'; -$wb["backup_encryption_note_txt"] = "Encryption is available only for the following backup formats: \"7z\", \"RAR\", \"zip\" (not secure). If any other format is used then encryption can't be applied and encryption settings are ignored. You can safely change the password at anytime: the \"Restore\" button will still work for old backups encrypted with a previous password. You don't need to type a password to restore backups using the \"Restore\" button. Password is required when you extract the archives manually. Please, don't forget your password, because it's impossible to restore it."; +$wb["backup_encryption_note_txt"] = "Encryption is only available for 7z, RAR, and zip (not secure)."; $wb["backup_encryption_options_txt"] = 'Encryption options'; $wb["backup_enable_encryption_txt"] = 'Enable encryption'; $wb["backup_password_txt"] = 'Password'; @@ -182,4 +181,8 @@ $wb["backup_format_tar_7z_lzma_txt"] = 'tar + 7z (LZMA)'; $wb["backup_format_tar_7z_lzma2_txt"] = 'tar + 7z (LZMA2)'; $wb["backup_format_tar_7z_ppmd_txt"] = 'tar + 7z (PPMd)'; $wb["backup_format_tar_7z_bzip2_txt"] = 'tar + 7z (BZip2)'; +$wb['error_ipv4_change_forbidden'] = 'The IP cannot be changed. Please contact your administrator if you want to change the IPv4 address.'; +$wb['error_ipv6_change_forbidden'] = 'The IP cannot be changed. Please contact your administrator if you want to change the IPv6 address.'; +$wb['error_domain_change_forbidden'] = 'The domain name cannot be changed. Please contact your administrator if you want to change the domain name.'; +$wb['error_server_change_not_possible'] = 'The server cannot be changed.'; ?> 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 89e50f2df4c027deb6ab46e200f9e47ea22f3d20..b2211e314bd94da3c5aaf6e19a1007597fe7ec2e 100644 --- a/interface/web/sites/lib/lang/de_web_vhost_subdomain.lng +++ b/interface/web/sites/lib/lang/de_web_vhost_subdomain.lng @@ -99,7 +99,7 @@ $wb['pm_min_spare_servers_error_regex'] = 'PHP-FPM pm.min_spare_servers muß ein $wb['pm_max_spare_servers_error_regex'] = 'PHP-FPM pm.max_spare_servers muß eine positive ganze Zahl sein.'; $wb['hd_quota_error_regex'] = 'Harddisk-Quota ist ungültig.'; $wb['traffic_quota_error_regex'] = 'Traffic-Quota ist ungültig.'; -$wb['fastcgi_php_version_txt'] = 'PHP-Version'; +$wb['server_php_id_txt'] = 'PHP-Version'; $wb['pm_txt'] = 'PHP-FPM Prozess Manager'; $wb['pm_process_idle_timeout_txt'] = 'PHP-FPM pm.process_idle_timeout'; $wb['pm_max_requests_txt'] = 'PHP-FPM pm.max_requests'; diff --git a/interface/web/sites/lib/lang/dk_web_aliasdomain.lng b/interface/web/sites/lib/lang/dk_web_aliasdomain.lng index 98b7e4d898b4640e2e904dfddaf82ce0b602767c..6a324cca90843da819ed87294c0a462ad7788f0b 100644 --- a/interface/web/sites/lib/lang/dk_web_aliasdomain.lng +++ b/interface/web/sites/lib/lang/dk_web_aliasdomain.lng @@ -95,7 +95,7 @@ $wb['pm_min_spare_servers_error_regex'] = 'PHP-FPM pm.min_spare_servers must be $wb['pm_max_spare_servers_error_regex'] = 'PHP-FPM pm.max_spare_servers must be a positive integer value.'; $wb['hd_quota_error_regex'] = 'Harddisk kvote is ugyldigt.'; $wb['traffic_quota_error_regex'] = 'Trafik kvote is ugyldigt.'; -$wb['fastcgi_php_version_txt'] = 'PHP Version'; +$wb['server_php_id_txt'] = 'PHP Version'; $wb['pm_txt'] = 'PHP-FPM Process Manager'; $wb['pm_process_idle_timeout_txt'] = 'PHP-FPM pm.process_idle_timeout'; $wb['pm_max_requests_txt'] = 'PHP-FPM pm.max_requests'; diff --git a/interface/web/sites/lib/lang/dk_web_childdomain.lng b/interface/web/sites/lib/lang/dk_web_childdomain.lng index 762acfe244fe2f8c158625c679821afe56d7740d..c766bae8818d3b1c3583a72f0c85cf8a6bd261b0 100644 --- a/interface/web/sites/lib/lang/dk_web_childdomain.lng +++ b/interface/web/sites/lib/lang/dk_web_childdomain.lng @@ -101,7 +101,7 @@ $wb['pm_min_spare_servers_error_regex'] = 'PHP-FPM pm.min_spare_servers must be $wb['pm_max_spare_servers_error_regex'] = 'PHP-FPM pm.max_spare_servers must be a positive integer value.'; $wb['hd_quota_error_regex'] = 'Harddisk quota is invalid.'; $wb['traffic_quota_error_regex'] = 'Traffic quota is invalid.'; -$wb['fastcgi_php_version_txt'] = 'PHP Version'; +$wb['server_php_id_txt'] = 'PHP Version'; $wb['pm_txt'] = 'PHP-FPM Process Manager'; $wb['pm_process_idle_timeout_txt'] = 'PHP-FPM pm.process_idle_timeout'; $wb['pm_max_requests_txt'] = 'PHP-FPM pm.max_requests'; diff --git a/interface/web/sites/lib/lang/dk_web_domain.lng b/interface/web/sites/lib/lang/dk_web_domain.lng index 7b6183554314151740697ca33197f37a6bcfca78..05920d39d228c475c1814d77b14b457dc0b1fcba 100644 --- a/interface/web/sites/lib/lang/dk_web_domain.lng +++ b/interface/web/sites/lib/lang/dk_web_domain.lng @@ -95,7 +95,7 @@ $wb['pm_min_spare_servers_error_regex'] = 'PHP-FPM pm.min_spare_servers must be $wb['pm_max_spare_servers_error_regex'] = 'PHP-FPM pm.max_spare_servers must be a positive integer value.'; $wb['hd_quota_error_regex'] = 'Harddisk kvote is ugyldigt.'; $wb['traffic_quota_error_regex'] = 'Trafik kvote is ugyldigt.'; -$wb['fastcgi_php_version_txt'] = 'PHP Version'; +$wb['server_php_id_txt'] = 'PHP Version'; $wb['pm_txt'] = 'PHP-FPM Process Manager'; $wb['pm_process_idle_timeout_txt'] = 'PHP-FPM pm.process_idle_timeout'; $wb['pm_max_requests_txt'] = 'PHP-FPM pm.max_requests'; diff --git a/interface/web/sites/lib/lang/dk_web_vhost_domain.lng b/interface/web/sites/lib/lang/dk_web_vhost_domain.lng index cf25d81260bbce5d74fda473550f4ef15023687f..f1b755827dd49d9a42b6764fdf4b9ec2f5aff227 100644 --- a/interface/web/sites/lib/lang/dk_web_vhost_domain.lng +++ b/interface/web/sites/lib/lang/dk_web_vhost_domain.lng @@ -97,9 +97,9 @@ $wb['pm_min_spare_servers_error_regex'] = 'PHP-FPM pm.min_spare_servers must be $wb['pm_max_spare_servers_error_regex'] = 'PHP-FPM pm.max_spare_servers must be a positive integer value.'; $wb['hd_quota_error_regex'] = 'Harddisk quota is invalid.'; $wb['traffic_quota_error_regex'] = 'Traffic quota is invalid.'; -$wb['fastcgi_php_version_txt'] = 'PHP Version'; -$wb['fastcgi_php_version_invalid_txt'] = 'PHP Version is invalid.'; -$wb['fastcgi_php_version_default_hidden_warning_txt'] = 'PHP Version was set to "default" but that can no longer be selected. Choose your desired PHP Version and save your settings.'; +$wb['server_php_id_txt'] = 'PHP Version'; +$wb['server_php_id_invalid_txt'] = 'PHP Version is invalid.'; +$wb['server_php_id_default_hidden_warning_txt'] = 'PHP Version was set to "default" but that can no longer be selected. Choose your desired PHP Version and save your settings.'; $wb['pm_txt'] = 'PHP-FPM Process Manager'; $wb['pm_process_idle_timeout_txt'] = 'PHP-FPM pm.process_idle_timeout'; $wb['pm_max_requests_txt'] = 'PHP-FPM pm.max_requests'; @@ -157,10 +157,9 @@ $wb['limit_web_quota_not_0_txt'] = 'Harddisk Quota cannot be set to 0.'; $wb['proxy_protocol_txt'] = 'Enable PROXY Protocol'; $wb["backup_format_web_txt"] = 'Backup format for web files'; $wb["backup_format_db_txt"] = 'Backup format for database'; -$wb["backup_format_web_note_txt"] = 'In "default" mode ISPConfig has the following behaviour: if backup mode is set as web user, then "zip" format is used for web files, otherwise backup mode is set as root user and "tar (gzip)" format is used; database is compressed in "gzip" format. Only "tar" based formats and "rar" preserve file ownership and permissions of web files and guarantee correct restore.'; -$wb["backup_missing_utils_txt"] = 'Note: some utils are missing in the system that may prevent you from using some compression formats. Please, install the following utils to avoid possible backup problems: '; +$wb["backup_missing_utils_txt"] = 'The following formats can not be used because they are not installed on the webserver: '; $wb["backup_compression_options_txt"] = 'Compression options'; -$wb["backup_encryption_note_txt"] = "Encryption is available only for the following backup formats: \"7z\", \"RAR\", \"zip\" (not secure). If any other format is used then encryption can't be applied and encryption settings are ignored. You can safely change the password at anytime: the \"Restore\" button will still work for old backups encrypted with a previous password. You don't need to type a password to restore backups using the \"Restore\" button. Password is required when you extract the archives manually. Please, don't forget your password, because it's impossible to restore it."; +$wb["backup_encryption_note_txt"] = "Encryption is only available for 7z, RAR, and zip (not secure)."; $wb["backup_encryption_options_txt"] = 'Encryption options'; $wb["backup_enable_encryption_txt"] = 'Enable encryption'; $wb["backup_password_txt"] = 'Password'; @@ -182,4 +181,8 @@ $wb["backup_format_tar_7z_lzma_txt"] = 'tar + 7z (LZMA)'; $wb["backup_format_tar_7z_lzma2_txt"] = 'tar + 7z (LZMA2)'; $wb["backup_format_tar_7z_ppmd_txt"] = 'tar + 7z (PPMd)'; $wb["backup_format_tar_7z_bzip2_txt"] = 'tar + 7z (BZip2)'; +$wb['error_ipv4_change_forbidden'] = 'The IP cannot be changed. Please contact your administrator if you want to change the IPv4 address.'; +$wb['error_ipv6_change_forbidden'] = 'The IP cannot be changed. Please contact your administrator if you want to change the IPv6 address.'; +$wb['error_domain_change_forbidden'] = 'The domain name cannot be changed. Please contact your administrator if you want to change the domain name.'; +$wb['error_server_change_not_possible'] = 'The server cannot be changed.'; ?> 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 ba7aad0403c23669b9ea793cb7a522448f8e035c..18eebc266565947fe8ad41dba38b48b1936c8a34 100644 --- a/interface/web/sites/lib/lang/dk_web_vhost_subdomain.lng +++ b/interface/web/sites/lib/lang/dk_web_vhost_subdomain.lng @@ -99,7 +99,7 @@ $wb['pm_min_spare_servers_error_regex'] = 'PHP-FPM pm.min_spare_servers must be $wb['pm_max_spare_servers_error_regex'] = 'PHP-FPM pm.max_spare_servers must be a positive integer value.'; $wb['hd_quota_error_regex'] = 'Harddisk kvote is ugyldigt.'; $wb['traffic_quota_error_regex'] = 'Trafik kvote is ugyldigt.'; -$wb['fastcgi_php_version_txt'] = 'PHP Version'; +$wb['server_php_id_txt'] = 'PHP Version'; $wb['pm_txt'] = 'PHP-FPM Process Manager'; $wb['pm_process_idle_timeout_txt'] = 'PHP-FPM pm.process_idle_timeout'; $wb['pm_max_requests_txt'] = 'PHP-FPM pm.max_requests'; diff --git a/interface/web/sites/lib/lang/el_web_aliasdomain.lng b/interface/web/sites/lib/lang/el_web_aliasdomain.lng index 4149c711493e6b6f06d0e99656a1c65744d4ec46..74697bdb33298e0eada396548274aebeacda4022 100644 --- a/interface/web/sites/lib/lang/el_web_aliasdomain.lng +++ b/interface/web/sites/lib/lang/el_web_aliasdomain.lng @@ -95,7 +95,7 @@ $wb['pm_min_spare_servers_error_regex'] = 'PHP-FPM pm.min_spare_servers must be $wb['pm_max_spare_servers_error_regex'] = 'PHP-FPM pm.max_spare_servers must be a positive integer value.'; $wb['hd_quota_error_regex'] = 'Harddisk quota is invalid.'; $wb['traffic_quota_error_regex'] = 'Traffic quota is invalid.'; -$wb['fastcgi_php_version_txt'] = 'PHP Version'; +$wb['server_php_id_txt'] = 'PHP Version'; $wb['pm_txt'] = 'PHP-FPM Process Manager'; $wb['pm_process_idle_timeout_txt'] = 'PHP-FPM pm.process_idle_timeout'; $wb['pm_max_requests_txt'] = 'PHP-FPM pm.max_requests'; diff --git a/interface/web/sites/lib/lang/el_web_childdomain.lng b/interface/web/sites/lib/lang/el_web_childdomain.lng index 3c5cb7a9368eb9dc7e1e1c7452917906db572fe5..f6c2c743bff9d4b561f474ffc3e2e93d484e93d6 100644 --- a/interface/web/sites/lib/lang/el_web_childdomain.lng +++ b/interface/web/sites/lib/lang/el_web_childdomain.lng @@ -100,7 +100,7 @@ $wb['pm_min_spare_servers_error_regex'] = 'PHP-FPM pm.min_spare_servers must be $wb['pm_max_spare_servers_error_regex'] = 'PHP-FPM pm.max_spare_servers must be a positive integer value.'; $wb['hd_quota_error_regex'] = 'Harddisk quota is invalid.'; $wb['traffic_quota_error_regex'] = 'Traffic quota is invalid.'; -$wb['fastcgi_php_version_txt'] = 'PHP Version'; +$wb['server_php_id_txt'] = 'PHP Version'; $wb['pm_txt'] = 'PHP-FPM Process Manager'; $wb['pm_process_idle_timeout_txt'] = 'PHP-FPM pm.process_idle_timeout'; $wb['pm_max_requests_txt'] = 'PHP-FPM pm.max_requests'; diff --git a/interface/web/sites/lib/lang/el_web_domain.lng b/interface/web/sites/lib/lang/el_web_domain.lng index 1787aa0e33fbeedff7b8d897bcf2a683501143d3..1d067f9f8cb9a9646c0086757736867022b84fe0 100644 --- a/interface/web/sites/lib/lang/el_web_domain.lng +++ b/interface/web/sites/lib/lang/el_web_domain.lng @@ -93,7 +93,7 @@ $wb['hd_quota_error_regex'] = 'Harddisk quota is invalid.'; $wb['traffic_quota_error_regex'] = 'Traffic quota is invalid.'; $wb['ssl_key_txt'] = 'SSL Key'; $wb['perl_txt'] = 'Perl'; -$wb['fastcgi_php_version_txt'] = 'PHP Version'; +$wb['server_php_id_txt'] = 'PHP Version'; $wb['pm_txt'] = 'PHP-FPM Process Manager'; $wb['pm_process_idle_timeout_txt'] = 'PHP-FPM pm.process_idle_timeout'; $wb['pm_max_requests_txt'] = 'PHP-FPM pm.max_requests'; diff --git a/interface/web/sites/lib/lang/el_web_vhost_domain.lng b/interface/web/sites/lib/lang/el_web_vhost_domain.lng index f39ce19a9bb431e26f95a7c7641c317a7d5afea0..15d51f3a5a0f3612399f2e300bdb71b9b2cd33b7 100644 --- a/interface/web/sites/lib/lang/el_web_vhost_domain.lng +++ b/interface/web/sites/lib/lang/el_web_vhost_domain.lng @@ -96,9 +96,9 @@ $wb['hd_quota_error_regex'] = 'Harddisk quota is invalid.'; $wb['traffic_quota_error_regex'] = 'Traffic quota is invalid.'; $wb['ssl_key_txt'] = 'SSL Key'; $wb['perl_txt'] = 'Perl'; -$wb['fastcgi_php_version_txt'] = 'PHP Version'; -$wb['fastcgi_php_version_invalid_txt'] = 'PHP Version is invalid.'; -$wb['fastcgi_php_version_default_hidden_warning_txt'] = 'PHP Version was set to "default" but that can no longer be selected. Choose your desired PHP Version and save your settings.'; +$wb['server_php_id_txt'] = 'PHP Version'; +$wb['server_php_id_invalid_txt'] = 'PHP Version is invalid.'; +$wb['server_php_id_default_hidden_warning_txt'] = 'PHP Version was set to "default" but that can no longer be selected. Choose your desired PHP Version and save your settings.'; $wb['pm_txt'] = 'PHP-FPM Process Manager'; $wb['pm_process_idle_timeout_txt'] = 'PHP-FPM pm.process_idle_timeout'; $wb['pm_max_requests_txt'] = 'PHP-FPM pm.max_requests'; @@ -157,10 +157,9 @@ $wb['limit_web_quota_not_0_txt'] = 'Harddisk Quota cannot be set to 0.'; $wb['proxy_protocol_txt'] = 'Enable PROXY Protocol'; $wb["backup_format_web_txt"] = 'Backup format for web files'; $wb["backup_format_db_txt"] = 'Backup format for database'; -$wb["backup_format_web_note_txt"] = 'In "default" mode ISPConfig has the following behaviour: if backup mode is set as web user, then "zip" format is used for web files, otherwise backup mode is set as root user and "tar (gzip)" format is used; database is compressed in "gzip" format. Only "tar" based formats and "rar" preserve file ownership and permissions of web files and guarantee correct restore.'; -$wb["backup_missing_utils_txt"] = 'Note: some utils are missing in the system that may prevent you from using some compression formats. Please, install the following utils to avoid possible backup problems: '; +$wb["backup_missing_utils_txt"] = 'The following formats can not be used because they are not installed on the webserver: '; $wb["backup_compression_options_txt"] = 'Compression options'; -$wb["backup_encryption_note_txt"] = "Encryption is available only for the following backup formats: \"7z\", \"RAR\", \"zip\" (not secure). If any other format is used then encryption can't be applied and encryption settings are ignored. You can safely change the password at anytime: the \"Restore\" button will still work for old backups encrypted with a previous password. You don't need to type a password to restore backups using the \"Restore\" button. Password is required when you extract the archives manually. Please, don't forget your password, because it's impossible to restore it."; +$wb["backup_encryption_note_txt"] = "Encryption is only available for 7z, RAR, and zip (not secure)."; $wb["backup_encryption_options_txt"] = 'Encryption options'; $wb["backup_enable_encryption_txt"] = 'Enable encryption'; $wb["backup_password_txt"] = 'Password'; @@ -182,4 +181,8 @@ $wb["backup_format_tar_7z_lzma_txt"] = 'tar + 7z (LZMA)'; $wb["backup_format_tar_7z_lzma2_txt"] = 'tar + 7z (LZMA2)'; $wb["backup_format_tar_7z_ppmd_txt"] = 'tar + 7z (PPMd)'; $wb["backup_format_tar_7z_bzip2_txt"] = 'tar + 7z (BZip2)'; +$wb['error_ipv4_change_forbidden'] = 'The IP cannot be changed. Please contact your administrator if you want to change the IPv4 address.'; +$wb['error_ipv6_change_forbidden'] = 'The IP cannot be changed. Please contact your administrator if you want to change the IPv6 address.'; +$wb['error_domain_change_forbidden'] = 'The domain name cannot be changed. Please contact your administrator if you want to change the domain name.'; +$wb['error_server_change_not_possible'] = 'The server cannot be changed.'; ?> 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 35c9298e710d663f63a4269e06dd1db22c1e644b..4ded131f4a7164181c1786bd1071c891cec2f252 100644 --- a/interface/web/sites/lib/lang/el_web_vhost_subdomain.lng +++ b/interface/web/sites/lib/lang/el_web_vhost_subdomain.lng @@ -99,7 +99,7 @@ $wb['pm_min_spare_servers_error_regex'] = 'PHP-FPM pm.min_spare_servers must be $wb['pm_max_spare_servers_error_regex'] = 'PHP-FPM pm.max_spare_servers must be a positive integer value.'; $wb['hd_quota_error_regex'] = 'Harddisk quota is invalid.'; $wb['traffic_quota_error_regex'] = 'Traffic quota is invalid.'; -$wb['fastcgi_php_version_txt'] = 'PHP Version'; +$wb['server_php_id_txt'] = 'PHP Version'; $wb['pm_txt'] = 'PHP-FPM Process Manager'; $wb['pm_process_idle_timeout_txt'] = 'PHP-FPM pm.process_idle_timeout'; $wb['pm_max_requests_txt'] = 'PHP-FPM pm.max_requests'; diff --git a/interface/web/sites/lib/lang/en_web_aliasdomain.lng b/interface/web/sites/lib/lang/en_web_aliasdomain.lng index eeae6770c6a516930c14d6ec6f67a10efc138b4a..5499768e06060d98e5a4503ccb8c036f9f9ffff9 100644 --- a/interface/web/sites/lib/lang/en_web_aliasdomain.lng +++ b/interface/web/sites/lib/lang/en_web_aliasdomain.lng @@ -95,7 +95,7 @@ $wb["pm_min_spare_servers_error_regex"] = 'PHP-FPM pm.min_spare_servers must be $wb["pm_max_spare_servers_error_regex"] = 'PHP-FPM pm.max_spare_servers must be a positive integer value.'; $wb["hd_quota_error_regex"] = 'Harddisk quota is invalid.'; $wb["traffic_quota_error_regex"] = 'Traffic quota is invalid.'; -$wb["fastcgi_php_version_txt"] = 'PHP Version'; +$wb["server_php_id_txt"] = 'PHP Version'; $wb["pm_txt"] = 'PHP-FPM Process Manager'; $wb["pm_process_idle_timeout_txt"] = 'PHP-FPM pm.process_idle_timeout'; $wb["pm_max_requests_txt"] = 'PHP-FPM pm.max_requests'; diff --git a/interface/web/sites/lib/lang/en_web_childdomain.lng b/interface/web/sites/lib/lang/en_web_childdomain.lng index 54def692147f0da11aa51d3d490741d422f04040..b4dd9e9326fb6f6e8c4e68befc6def717ddedcd0 100644 --- a/interface/web/sites/lib/lang/en_web_childdomain.lng +++ b/interface/web/sites/lib/lang/en_web_childdomain.lng @@ -101,7 +101,7 @@ $wb['pm_min_spare_servers_error_regex'] = 'PHP-FPM pm.min_spare_servers must be $wb['pm_max_spare_servers_error_regex'] = 'PHP-FPM pm.max_spare_servers must be a positive integer value.'; $wb['hd_quota_error_regex'] = 'Harddisk quota is invalid.'; $wb['traffic_quota_error_regex'] = 'Traffic quota is invalid.'; -$wb['fastcgi_php_version_txt'] = 'PHP Version'; +$wb['server_php_id_txt'] = 'PHP Version'; $wb['pm_txt'] = 'PHP-FPM Process Manager'; $wb['pm_process_idle_timeout_txt'] = 'PHP-FPM pm.process_idle_timeout'; $wb['pm_max_requests_txt'] = 'PHP-FPM pm.max_requests'; diff --git a/interface/web/sites/lib/lang/en_web_domain.lng b/interface/web/sites/lib/lang/en_web_domain.lng index 28c7c3e4e1b52483e56b8c63149179a1040b192c..1785358209ba995c208cc490a547263f99dc37ee 100644 --- a/interface/web/sites/lib/lang/en_web_domain.lng +++ b/interface/web/sites/lib/lang/en_web_domain.lng @@ -95,7 +95,7 @@ $wb["pm_min_spare_servers_error_regex"] = 'PHP-FPM pm.min_spare_servers must be $wb["pm_max_spare_servers_error_regex"] = 'PHP-FPM pm.max_spare_servers must be a positive integer value.'; $wb["hd_quota_error_regex"] = 'Harddisk quota is invalid.'; $wb["traffic_quota_error_regex"] = 'Traffic quota is invalid.'; -$wb["fastcgi_php_version_txt"] = 'PHP Version'; +$wb["server_php_id_txt"] = 'PHP Version'; $wb["pm_txt"] = 'PHP-FPM Process Manager'; $wb["pm_process_idle_timeout_txt"] = 'PHP-FPM pm.process_idle_timeout'; $wb["pm_max_requests_txt"] = 'PHP-FPM pm.max_requests'; diff --git a/interface/web/sites/lib/lang/en_web_vhost_domain.lng b/interface/web/sites/lib/lang/en_web_vhost_domain.lng index 497fcd1993f98f4c58eaf5f3d5dd0221475f5fb9..b31f157718fa70a5c0a3c780d4b4196036038057 100644 --- a/interface/web/sites/lib/lang/en_web_vhost_domain.lng +++ b/interface/web/sites/lib/lang/en_web_vhost_domain.lng @@ -97,9 +97,9 @@ $wb['pm_min_spare_servers_error_regex'] = 'PHP-FPM pm.min_spare_servers must be $wb['pm_max_spare_servers_error_regex'] = 'PHP-FPM pm.max_spare_servers must be a positive integer value.'; $wb['hd_quota_error_regex'] = 'Harddisk quota is invalid.'; $wb['traffic_quota_error_regex'] = 'Traffic quota is invalid.'; -$wb['fastcgi_php_version_txt'] = 'PHP Version'; -$wb['fastcgi_php_version_invalid_txt'] = 'PHP Version is invalid.'; -$wb['fastcgi_php_version_default_hidden_warning_txt'] = 'PHP Version was set to "default" but that can no longer be selected. Choose your desired PHP Version and save your settings.'; +$wb['server_php_id_txt'] = 'PHP Version'; +$wb['server_php_id_invalid_txt'] = 'PHP Version is invalid.'; +$wb['server_php_id_default_hidden_warning_txt'] = 'PHP Version was set to "default" but that can no longer be selected. Choose your desired PHP Version and save your settings.'; $wb['pm_txt'] = 'PHP-FPM Process Manager'; $wb['pm_process_idle_timeout_txt'] = 'PHP-FPM pm.process_idle_timeout'; $wb['pm_max_requests_txt'] = 'PHP-FPM pm.max_requests'; @@ -162,10 +162,9 @@ $wb['limit_web_quota_not_0_txt'] = 'Harddisk Quota cannot be set to 0.'; $wb['proxy_protocol_txt'] = 'Enable PROXY Protocol'; $wb["backup_format_web_txt"] = 'Backup format for web files'; $wb["backup_format_db_txt"] = 'Backup format for database'; -$wb["backup_format_web_note_txt"] = 'In "default" mode ISPConfig has the following behaviour: if backup mode is set as web user, then "zip" format is used for web files, otherwise backup mode is set as root user and "tar (gzip)" format is used; database is compressed in "gzip" format. Only "tar" based formats and "rar" preserve file ownership and permissions of web files and guarantee correct restore.'; -$wb["backup_missing_utils_txt"] = 'Note: some utils are missing in the system that may prevent you from using some compression formats. Please, install the following utils to avoid possible backup problems: '; +$wb["backup_missing_utils_txt"] = 'The following formats can not be used because they are not installed on the webserver: '; $wb["backup_compression_options_txt"] = 'Compression options'; -$wb["backup_encryption_note_txt"] = "Encryption is available only for the following backup formats: \"7z\", \"RAR\", \"zip\" (not secure). If any other format is used then encryption can't be applied and encryption settings are ignored. You can safely change the password at anytime: the \"Restore\" button will still work for old backups encrypted with a previous password. You don't need to type a password to restore backups using the \"Restore\" button. Password is required when you extract the archives manually. Please, don't forget your password, because it's impossible to restore it."; +$wb["backup_encryption_note_txt"] = "Encryption is only available for 7z, RAR, and zip (not secure)."; $wb["backup_encryption_options_txt"] = 'Encryption options'; $wb["backup_enable_encryption_txt"] = 'Enable encryption'; $wb["backup_password_txt"] = 'Password'; @@ -187,4 +186,8 @@ $wb["backup_format_tar_7z_lzma_txt"] = 'tar + 7z (LZMA)'; $wb["backup_format_tar_7z_lzma2_txt"] = 'tar + 7z (LZMA2)'; $wb["backup_format_tar_7z_ppmd_txt"] = 'tar + 7z (PPMd)'; $wb["backup_format_tar_7z_bzip2_txt"] = 'tar + 7z (BZip2)'; +$wb['error_ipv4_change_forbidden'] = 'The IP cannot be changed. Please contact your administrator if you want to change the IPv4 address.'; +$wb['error_ipv6_change_forbidden'] = 'The IP cannot be changed. Please contact your administrator if you want to change the IPv6 address.'; +$wb['error_domain_change_forbidden'] = 'The domain name cannot be changed. Please contact your administrator if you want to change the domain name.'; +$wb['error_server_change_not_possible'] = 'The server cannot be changed.'; ?> 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 0c7ac92c61bde8ad4755a9485a3e6e71ca104722..f8acd2d26b5ef25294b4aa23dd9adf88a5a3a8dc 100644 --- a/interface/web/sites/lib/lang/en_web_vhost_subdomain.lng +++ b/interface/web/sites/lib/lang/en_web_vhost_subdomain.lng @@ -100,7 +100,7 @@ $wb["pm_min_spare_servers_error_regex"] = 'PHP-FPM pm.min_spare_servers must be $wb["pm_max_spare_servers_error_regex"] = 'PHP-FPM pm.max_spare_servers must be a positive integer value.'; $wb["hd_quota_error_regex"] = 'Harddisk quota is invalid.'; $wb["traffic_quota_error_regex"] = 'Traffic quota is invalid.'; -$wb["fastcgi_php_version_txt"] = 'PHP Version'; +$wb["server_php_id_txt"] = 'PHP Version'; $wb["pm_txt"] = 'PHP-FPM Process Manager'; $wb["pm_process_idle_timeout_txt"] = 'PHP-FPM pm.process_idle_timeout'; $wb["pm_max_requests_txt"] = 'PHP-FPM pm.max_requests'; diff --git a/interface/web/sites/lib/lang/es_web_aliasdomain.lng b/interface/web/sites/lib/lang/es_web_aliasdomain.lng index 4149c711493e6b6f06d0e99656a1c65744d4ec46..74697bdb33298e0eada396548274aebeacda4022 100644 --- a/interface/web/sites/lib/lang/es_web_aliasdomain.lng +++ b/interface/web/sites/lib/lang/es_web_aliasdomain.lng @@ -95,7 +95,7 @@ $wb['pm_min_spare_servers_error_regex'] = 'PHP-FPM pm.min_spare_servers must be $wb['pm_max_spare_servers_error_regex'] = 'PHP-FPM pm.max_spare_servers must be a positive integer value.'; $wb['hd_quota_error_regex'] = 'Harddisk quota is invalid.'; $wb['traffic_quota_error_regex'] = 'Traffic quota is invalid.'; -$wb['fastcgi_php_version_txt'] = 'PHP Version'; +$wb['server_php_id_txt'] = 'PHP Version'; $wb['pm_txt'] = 'PHP-FPM Process Manager'; $wb['pm_process_idle_timeout_txt'] = 'PHP-FPM pm.process_idle_timeout'; $wb['pm_max_requests_txt'] = 'PHP-FPM pm.max_requests'; diff --git a/interface/web/sites/lib/lang/es_web_childdomain.lng b/interface/web/sites/lib/lang/es_web_childdomain.lng index 25843a0e21f0f9f854d74b07633315a33777c305..6cf662c2ffcc7ea9e6a767620c8659ed0795ceb6 100644 --- a/interface/web/sites/lib/lang/es_web_childdomain.lng +++ b/interface/web/sites/lib/lang/es_web_childdomain.lng @@ -98,7 +98,7 @@ $wb['pm_max_children_error_regex'] = 'PHP-FPM pm.max_children debe ser un valor $wb['pm_start_servers_error_regex'] = 'PHP-FPM pm.start_servers debe ser un valor entero positivo.'; $wb['pm_min_spare_servers_error_regex'] = 'PHP-FPM pm.min_spare_servers debe ser un valor entero positivo.'; $wb['pm_max_spare_servers_error_regex'] = 'PHP-FPM pm.max_spare_servers debe ser un valor entero positivo.'; -$wb['fastcgi_php_version_txt'] = 'Versión de PHP'; +$wb['server_php_id_txt'] = 'Versión de PHP'; $wb['pm_txt'] = 'PHP-FPM Gestor de Procesos'; $wb['pm_process_idle_timeout_txt'] = 'PHP-FPM pm.process_idle_timeout'; $wb['pm_max_requests_txt'] = 'PHP-FPM pm.max_requests'; diff --git a/interface/web/sites/lib/lang/es_web_domain.lng b/interface/web/sites/lib/lang/es_web_domain.lng index 889d29bd9536cbffa55b01f413bf48b6577692cd..2dfe3d6cac3805813c97c6936d7ae26c9ce7d42d 100644 --- a/interface/web/sites/lib/lang/es_web_domain.lng +++ b/interface/web/sites/lib/lang/es_web_domain.lng @@ -95,7 +95,7 @@ $wb['domain_error_autosub'] = 'There is already a subdomain with these settings. $wb['perl_txt'] = 'Perl'; $wb['hd_quota_error_regex'] = 'Harddisk quota is invalid.'; $wb['traffic_quota_error_regex'] = 'Traffic quota is invalid.'; -$wb['fastcgi_php_version_txt'] = 'PHP Version'; +$wb['server_php_id_txt'] = 'PHP Version'; $wb['pm_txt'] = 'PHP-FPM Process Manager'; $wb['pm_process_idle_timeout_txt'] = 'PHP-FPM pm.process_idle_timeout'; $wb['pm_max_requests_txt'] = 'PHP-FPM pm.max_requests'; diff --git a/interface/web/sites/lib/lang/es_web_vhost_domain.lng b/interface/web/sites/lib/lang/es_web_vhost_domain.lng index 3f60826008e06eaef91a0330f73b1dbfcb729f7e..f49636a9ad8e53860e2fdd86bfcdc4154f40a42b 100644 --- a/interface/web/sites/lib/lang/es_web_vhost_domain.lng +++ b/interface/web/sites/lib/lang/es_web_vhost_domain.lng @@ -96,9 +96,9 @@ $wb['domain_error_autosub'] = 'Ya hay un subdominio con estas configuraciones.'; $wb['perl_txt'] = 'Perl'; $wb['hd_quota_error_regex'] = 'Cuota de disco no es válida.'; $wb['traffic_quota_error_regex'] = 'Cuota de tráfico no es válida.'; -$wb['fastcgi_php_version_txt'] = 'Versión de PHP'; -$wb['fastcgi_php_version_invalid_txt'] = 'PHP Version is invalid.'; -$wb['fastcgi_php_version_default_hidden_warning_txt'] = 'PHP Version was set to "default" but that can no longer be selected. Choose your desired PHP Version and save your settings.'; +$wb['server_php_id_txt'] = 'Versión de PHP'; +$wb['server_php_id_invalid_txt'] = 'PHP Version is invalid.'; +$wb['server_php_id_default_hidden_warning_txt'] = 'PHP Version was set to "default" but that can no longer be selected. Choose your desired PHP Version and save your settings.'; $wb['pm_txt'] = 'PHP-FPM Gestor de Procesos'; $wb['pm_process_idle_timeout_txt'] = 'PHP-FPM pm.process_idle_timeout'; $wb['pm_max_requests_txt'] = 'PHP-FPM pm.max_requests'; @@ -157,10 +157,9 @@ $wb['limit_web_quota_not_0_txt'] = 'Harddisk Quota cannot be set to 0.'; $wb['proxy_protocol_txt'] = 'Enable PROXY Protocol'; $wb["backup_format_web_txt"] = 'Backup format for web files'; $wb["backup_format_db_txt"] = 'Backup format for database'; -$wb["backup_format_web_note_txt"] = 'In "default" mode ISPConfig has the following behaviour: if backup mode is set as web user, then "zip" format is used for web files, otherwise backup mode is set as root user and "tar (gzip)" format is used; database is compressed in "gzip" format. Only "tar" based formats and "rar" preserve file ownership and permissions of web files and guarantee correct restore.'; -$wb["backup_missing_utils_txt"] = 'Note: some utils are missing in the system that may prevent you from using some compression formats. Please, install the following utils to avoid possible backup problems: '; +$wb["backup_missing_utils_txt"] = 'The following formats can not be used because they are not installed on the webserver: '; $wb["backup_compression_options_txt"] = 'Compression options'; -$wb["backup_encryption_note_txt"] = "Encryption is available only for the following backup formats: \"7z\", \"RAR\", \"zip\" (not secure). If any other format is used then encryption can't be applied and encryption settings are ignored. You can safely change the password at anytime: the \"Restore\" button will still work for old backups encrypted with a previous password. You don't need to type a password to restore backups using the \"Restore\" button. Password is required when you extract the archives manually. Please, don't forget your password, because it's impossible to restore it."; +$wb["backup_encryption_note_txt"] = "Encryption is only available for 7z, RAR, and zip (not secure)."; $wb["backup_encryption_options_txt"] = 'Encryption options'; $wb["backup_enable_encryption_txt"] = 'Enable encryption'; $wb["backup_password_txt"] = 'Password'; @@ -182,4 +181,8 @@ $wb["backup_format_tar_7z_lzma_txt"] = 'tar + 7z (LZMA)'; $wb["backup_format_tar_7z_lzma2_txt"] = 'tar + 7z (LZMA2)'; $wb["backup_format_tar_7z_ppmd_txt"] = 'tar + 7z (PPMd)'; $wb["backup_format_tar_7z_bzip2_txt"] = 'tar + 7z (BZip2)'; +$wb['error_ipv4_change_forbidden'] = 'The IP cannot be changed. Please contact your administrator if you want to change the IPv4 address.'; +$wb['error_ipv6_change_forbidden'] = 'The IP cannot be changed. Please contact your administrator if you want to change the IPv6 address.'; +$wb['error_domain_change_forbidden'] = 'The domain name cannot be changed. Please contact your administrator if you want to change the domain name.'; +$wb['error_server_change_not_possible'] = 'The server cannot be changed.'; ?> 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 35c9298e710d663f63a4269e06dd1db22c1e644b..4ded131f4a7164181c1786bd1071c891cec2f252 100644 --- a/interface/web/sites/lib/lang/es_web_vhost_subdomain.lng +++ b/interface/web/sites/lib/lang/es_web_vhost_subdomain.lng @@ -99,7 +99,7 @@ $wb['pm_min_spare_servers_error_regex'] = 'PHP-FPM pm.min_spare_servers must be $wb['pm_max_spare_servers_error_regex'] = 'PHP-FPM pm.max_spare_servers must be a positive integer value.'; $wb['hd_quota_error_regex'] = 'Harddisk quota is invalid.'; $wb['traffic_quota_error_regex'] = 'Traffic quota is invalid.'; -$wb['fastcgi_php_version_txt'] = 'PHP Version'; +$wb['server_php_id_txt'] = 'PHP Version'; $wb['pm_txt'] = 'PHP-FPM Process Manager'; $wb['pm_process_idle_timeout_txt'] = 'PHP-FPM pm.process_idle_timeout'; $wb['pm_max_requests_txt'] = 'PHP-FPM pm.max_requests'; diff --git a/interface/web/sites/lib/lang/fi_web_aliasdomain.lng b/interface/web/sites/lib/lang/fi_web_aliasdomain.lng index 4149c711493e6b6f06d0e99656a1c65744d4ec46..74697bdb33298e0eada396548274aebeacda4022 100644 --- a/interface/web/sites/lib/lang/fi_web_aliasdomain.lng +++ b/interface/web/sites/lib/lang/fi_web_aliasdomain.lng @@ -95,7 +95,7 @@ $wb['pm_min_spare_servers_error_regex'] = 'PHP-FPM pm.min_spare_servers must be $wb['pm_max_spare_servers_error_regex'] = 'PHP-FPM pm.max_spare_servers must be a positive integer value.'; $wb['hd_quota_error_regex'] = 'Harddisk quota is invalid.'; $wb['traffic_quota_error_regex'] = 'Traffic quota is invalid.'; -$wb['fastcgi_php_version_txt'] = 'PHP Version'; +$wb['server_php_id_txt'] = 'PHP Version'; $wb['pm_txt'] = 'PHP-FPM Process Manager'; $wb['pm_process_idle_timeout_txt'] = 'PHP-FPM pm.process_idle_timeout'; $wb['pm_max_requests_txt'] = 'PHP-FPM pm.max_requests'; diff --git a/interface/web/sites/lib/lang/fi_web_childdomain.lng b/interface/web/sites/lib/lang/fi_web_childdomain.lng index 5105ba3f2e63dfae2a652b24d331f4f550ed91f7..bbc12a35fd1a99a88399d7e450ffe0ccaf5a8dab 100644 --- a/interface/web/sites/lib/lang/fi_web_childdomain.lng +++ b/interface/web/sites/lib/lang/fi_web_childdomain.lng @@ -100,7 +100,7 @@ $wb['pm_min_spare_servers_error_regex'] = 'PHP-FPM pm.min_spare_servers must be $wb['pm_max_spare_servers_error_regex'] = 'PHP-FPM pm.max_spare_servers must be a positive integer value.'; $wb['hd_quota_error_regex'] = 'Harddisk quota is invalid.'; $wb['traffic_quota_error_regex'] = 'Traffic quota is invalid.'; -$wb['fastcgi_php_version_txt'] = 'PHP Version'; +$wb['server_php_id_txt'] = 'PHP Version'; $wb['pm_txt'] = 'PHP-FPM Process Manager'; $wb['pm_process_idle_timeout_txt'] = 'PHP-FPM pm.process_idle_timeout'; $wb['pm_max_requests_txt'] = 'PHP-FPM pm.max_requests'; diff --git a/interface/web/sites/lib/lang/fi_web_domain.lng b/interface/web/sites/lib/lang/fi_web_domain.lng index 1cc2a2024d93b2d268622cf6a7f9bb25e30ce75c..38434653ef32eb37b981c740b61c784f016c307d 100644 --- a/interface/web/sites/lib/lang/fi_web_domain.lng +++ b/interface/web/sites/lib/lang/fi_web_domain.lng @@ -93,7 +93,7 @@ $wb['hd_quota_error_regex'] = 'Harddisk quota is invalid.'; $wb['traffic_quota_error_regex'] = 'Traffic quota is invalid.'; $wb['ssl_key_txt'] = 'SSL Key'; $wb['perl_txt'] = 'Perl'; -$wb['fastcgi_php_version_txt'] = 'PHP Version'; +$wb['server_php_id_txt'] = 'PHP Version'; $wb['pm_txt'] = 'PHP-FPM Process Manager'; $wb['pm_process_idle_timeout_txt'] = 'PHP-FPM pm.process_idle_timeout'; $wb['pm_max_requests_txt'] = 'PHP-FPM pm.max_requests'; diff --git a/interface/web/sites/lib/lang/fi_web_vhost_domain.lng b/interface/web/sites/lib/lang/fi_web_vhost_domain.lng index 82fd44a56ac09c51a5bab207ef7acc2cb6a2196f..e85b33e9cce39e7b201f58d49a51a88c7ae6cee9 100644 --- a/interface/web/sites/lib/lang/fi_web_vhost_domain.lng +++ b/interface/web/sites/lib/lang/fi_web_vhost_domain.lng @@ -95,9 +95,9 @@ $wb['hd_quota_error_regex'] = 'Harddisk quota is invalid.'; $wb['traffic_quota_error_regex'] = 'Traffic quota is invalid.'; $wb['ssl_key_txt'] = 'SSL Key'; $wb['perl_txt'] = 'Perl'; -$wb['fastcgi_php_version_txt'] = 'PHP Version'; -$wb['fastcgi_php_version_invalid_txt'] = 'PHP Version is invalid.'; -$wb['fastcgi_php_version_default_hidden_warning_txt'] = 'PHP Version was set to "default" but that can no longer be selected. Choose your desired PHP Version and save your settings.'; +$wb['server_php_id_txt'] = 'PHP Version'; +$wb['server_php_id_invalid_txt'] = 'PHP Version is invalid.'; +$wb['server_php_id_default_hidden_warning_txt'] = 'PHP Version was set to "default" but that can no longer be selected. Choose your desired PHP Version and save your settings.'; $wb['pm_txt'] = 'PHP-FPM Process Manager'; $wb['pm_process_idle_timeout_txt'] = 'PHP-FPM pm.process_idle_timeout'; $wb['pm_max_requests_txt'] = 'PHP-FPM pm.max_requests'; @@ -157,10 +157,9 @@ $wb['limit_web_quota_not_0_txt'] = 'Harddisk Quota cannot be set to 0.'; $wb['proxy_protocol_txt'] = 'Enable PROXY Protocol'; $wb["backup_format_web_txt"] = 'Backup format for web files'; $wb["backup_format_db_txt"] = 'Backup format for database'; -$wb["backup_format_web_note_txt"] = 'In "default" mode ISPConfig has the following behaviour: if backup mode is set as web user, then "zip" format is used for web files, otherwise backup mode is set as root user and "tar (gzip)" format is used; database is compressed in "gzip" format. Only "tar" based formats and "rar" preserve file ownership and permissions of web files and guarantee correct restore.'; -$wb["backup_missing_utils_txt"] = 'Note: some utils are missing in the system that may prevent you from using some compression formats. Please, install the following utils to avoid possible backup problems: '; +$wb["backup_missing_utils_txt"] = 'The following formats can not be used because they are not installed on the webserver: '; $wb["backup_compression_options_txt"] = 'Compression options'; -$wb["backup_encryption_note_txt"] = "Encryption is available only for the following backup formats: \"7z\", \"RAR\", \"zip\" (not secure). If any other format is used then encryption can't be applied and encryption settings are ignored. You can safely change the password at anytime: the \"Restore\" button will still work for old backups encrypted with a previous password. You don't need to type a password to restore backups using the \"Restore\" button. Password is required when you extract the archives manually. Please, don't forget your password, because it's impossible to restore it."; +$wb["backup_encryption_note_txt"] = "Encryption is only available for 7z, RAR, and zip (not secure)."; $wb["backup_encryption_options_txt"] = 'Encryption options'; $wb["backup_enable_encryption_txt"] = 'Enable encryption'; $wb["backup_password_txt"] = 'Password'; @@ -182,4 +181,8 @@ $wb["backup_format_tar_7z_lzma_txt"] = 'tar + 7z (LZMA)'; $wb["backup_format_tar_7z_lzma2_txt"] = 'tar + 7z (LZMA2)'; $wb["backup_format_tar_7z_ppmd_txt"] = 'tar + 7z (PPMd)'; $wb["backup_format_tar_7z_bzip2_txt"] = 'tar + 7z (BZip2)'; +$wb['error_ipv4_change_forbidden'] = 'The IP cannot be changed. Please contact your administrator if you want to change the IPv4 address.'; +$wb['error_ipv6_change_forbidden'] = 'The IP cannot be changed. Please contact your administrator if you want to change the IPv6 address.'; +$wb['error_domain_change_forbidden'] = 'The domain name cannot be changed. Please contact your administrator if you want to change the domain name.'; +$wb['error_server_change_not_possible'] = 'The server cannot be changed.'; ?> 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 35c9298e710d663f63a4269e06dd1db22c1e644b..4ded131f4a7164181c1786bd1071c891cec2f252 100644 --- a/interface/web/sites/lib/lang/fi_web_vhost_subdomain.lng +++ b/interface/web/sites/lib/lang/fi_web_vhost_subdomain.lng @@ -99,7 +99,7 @@ $wb['pm_min_spare_servers_error_regex'] = 'PHP-FPM pm.min_spare_servers must be $wb['pm_max_spare_servers_error_regex'] = 'PHP-FPM pm.max_spare_servers must be a positive integer value.'; $wb['hd_quota_error_regex'] = 'Harddisk quota is invalid.'; $wb['traffic_quota_error_regex'] = 'Traffic quota is invalid.'; -$wb['fastcgi_php_version_txt'] = 'PHP Version'; +$wb['server_php_id_txt'] = 'PHP Version'; $wb['pm_txt'] = 'PHP-FPM Process Manager'; $wb['pm_process_idle_timeout_txt'] = 'PHP-FPM pm.process_idle_timeout'; $wb['pm_max_requests_txt'] = 'PHP-FPM pm.max_requests'; diff --git a/interface/web/sites/lib/lang/fr_web_aliasdomain.lng b/interface/web/sites/lib/lang/fr_web_aliasdomain.lng index 59a69d4f23e7cb7687b5ac85b5ae4dbb72d62bfe..5ce638002b17efb91bdd67913dbfd039207f7897 100644 --- a/interface/web/sites/lib/lang/fr_web_aliasdomain.lng +++ b/interface/web/sites/lib/lang/fr_web_aliasdomain.lng @@ -95,7 +95,7 @@ $wb['pm_min_spare_servers_error_regex'] = 'La valeur de PHP-FPM pm.min_spare_ser $wb['pm_max_spare_servers_error_regex'] = 'La valeur de PHP-FPM pm.max_spare_servers doit être un entier positif.'; $wb['hd_quota_error_regex'] = 'Le quota de disque dur est invalide.'; $wb['traffic_quota_error_regex'] = 'Le quota de trafic est invalide.'; -$wb['fastcgi_php_version_txt'] = 'Version de PHP'; +$wb['server_php_id_txt'] = 'Version de PHP'; $wb['pm_txt'] = 'Manager de process PHP-FPM'; $wb['pm_process_idle_timeout_txt'] = 'PHP-FPM pm.process_idle_timeout'; $wb['pm_max_requests_txt'] = 'PHP-FPM pm.max_requests'; diff --git a/interface/web/sites/lib/lang/fr_web_childdomain.lng b/interface/web/sites/lib/lang/fr_web_childdomain.lng index 1be206e1222358a13af16980c93dc0e766bb9fce..d636dc2d487a27c175e4644a1b4fa4eb91f7575b 100644 --- a/interface/web/sites/lib/lang/fr_web_childdomain.lng +++ b/interface/web/sites/lib/lang/fr_web_childdomain.lng @@ -100,7 +100,7 @@ $wb['pm_min_spare_servers_error_regex'] = 'PHP-FPM pm.min_spare_servers must be $wb['pm_max_spare_servers_error_regex'] = 'PHP-FPM pm.max_spare_servers must be a positive integer value.'; $wb['hd_quota_error_regex'] = 'Harddisk quota is invalid.'; $wb['traffic_quota_error_regex'] = 'Traffic quota is invalid.'; -$wb['fastcgi_php_version_txt'] = 'PHP Version'; +$wb['server_php_id_txt'] = 'PHP Version'; $wb['pm_txt'] = 'PHP-FPM Process Manager'; $wb['pm_process_idle_timeout_txt'] = 'PHP-FPM pm.process_idle_timeout'; $wb['pm_max_requests_txt'] = 'PHP-FPM pm.max_requests'; diff --git a/interface/web/sites/lib/lang/fr_web_domain.lng b/interface/web/sites/lib/lang/fr_web_domain.lng index 421693a0e64cb0cbdcb92578911115fd12704e5b..a0e6ff9847b919bd8101f0c76006cb929145538e 100644 --- a/interface/web/sites/lib/lang/fr_web_domain.lng +++ b/interface/web/sites/lib/lang/fr_web_domain.lng @@ -93,7 +93,7 @@ $wb['hd_quota_error_regex'] = 'Le quota de disque dur est invalide.'; $wb['traffic_quota_error_regex'] = 'Le quota de trafic est invalide.'; $wb['ssl_key_txt'] = 'Clé SSL'; $wb['perl_txt'] = 'Perl'; -$wb['fastcgi_php_version_txt'] = 'Version de PHP'; +$wb['server_php_id_txt'] = 'Version de PHP'; $wb['pm_txt'] = 'Manager de process PHP-FPM'; $wb['pm_process_idle_timeout_txt'] = 'PHP-FPM pm.process_idle_timeout'; $wb['pm_max_requests_txt'] = 'PHP-FPM pm.max_requests'; diff --git a/interface/web/sites/lib/lang/fr_web_vhost_domain.lng b/interface/web/sites/lib/lang/fr_web_vhost_domain.lng index 5d817c611b9748e723658833de0875eaef2f0b47..30963cd01c935e2ea7ac2d5b4d17519b62e4d0de 100644 --- a/interface/web/sites/lib/lang/fr_web_vhost_domain.lng +++ b/interface/web/sites/lib/lang/fr_web_vhost_domain.lng @@ -95,9 +95,9 @@ $wb['hd_quota_error_regex'] = 'Le quota de disque dur est invalide.'; $wb['traffic_quota_error_regex'] = 'Le quota de trafic est invalide.'; $wb['ssl_key_txt'] = 'Clé SSL'; $wb['perl_txt'] = 'Perl'; -$wb['fastcgi_php_version_txt'] = 'Version de PHP'; -$wb['fastcgi_php_version_invalid_txt'] = 'PHP Version is invalid.'; -$wb['fastcgi_php_version_default_hidden_warning_txt'] = 'PHP Version was set to "default" but that can no longer be selected. Choose your desired PHP Version and save your settings.'; +$wb['server_php_id_txt'] = 'Version de PHP'; +$wb['server_php_id_invalid_txt'] = 'PHP Version is invalid.'; +$wb['server_php_id_default_hidden_warning_txt'] = 'PHP Version was set to "default" but that can no longer be selected. Choose your desired PHP Version and save your settings.'; $wb['pm_txt'] = 'Manager de process PHP-FPM'; $wb['pm_process_idle_timeout_txt'] = 'PHP-FPM pm.process_idle_timeout'; $wb['pm_max_requests_txt'] = 'PHP-FPM pm.max_requests'; @@ -157,10 +157,9 @@ $wb['limit_web_quota_not_0_txt'] = 'Harddisk Quota cannot be set to 0.'; $wb['proxy_protocol_txt'] = 'Enable PROXY Protocol'; $wb["backup_format_web_txt"] = 'Backup format for web files'; $wb["backup_format_db_txt"] = 'Backup format for database'; -$wb["backup_format_web_note_txt"] = 'In "default" mode ISPConfig has the following behaviour: if backup mode is set as web user, then "zip" format is used for web files, otherwise backup mode is set as root user and "tar (gzip)" format is used; database is compressed in "gzip" format. Only "tar" based formats and "rar" preserve file ownership and permissions of web files and guarantee correct restore.'; -$wb["backup_missing_utils_txt"] = 'Note: some utils are missing in the system that may prevent you from using some compression formats. Please, install the following utils to avoid possible backup problems: '; +$wb["backup_missing_utils_txt"] = 'The following formats can not be used because they are not installed on the webserver: '; $wb["backup_compression_options_txt"] = 'Compression options'; -$wb["backup_encryption_note_txt"] = "Encryption is available only for the following backup formats: \"7z\", \"RAR\", \"zip\" (not secure). If any other format is used then encryption can't be applied and encryption settings are ignored. You can safely change the password at anytime: the \"Restore\" button will still work for old backups encrypted with a previous password. You don't need to type a password to restore backups using the \"Restore\" button. Password is required when you extract the archives manually. Please, don't forget your password, because it's impossible to restore it."; +$wb["backup_encryption_note_txt"] = "Encryption is only available for 7z, RAR, and zip (not secure)."; $wb["backup_encryption_options_txt"] = 'Encryption options'; $wb["backup_enable_encryption_txt"] = 'Enable encryption'; $wb["backup_password_txt"] = 'Password'; @@ -182,4 +181,8 @@ $wb["backup_format_tar_7z_lzma_txt"] = 'tar + 7z (LZMA)'; $wb["backup_format_tar_7z_lzma2_txt"] = 'tar + 7z (LZMA2)'; $wb["backup_format_tar_7z_ppmd_txt"] = 'tar + 7z (PPMd)'; $wb["backup_format_tar_7z_bzip2_txt"] = 'tar + 7z (BZip2)'; +$wb['error_ipv4_change_forbidden'] = 'The IP cannot be changed. Please contact your administrator if you want to change the IPv4 address.'; +$wb['error_ipv6_change_forbidden'] = 'The IP cannot be changed. Please contact your administrator if you want to change the IPv6 address.'; +$wb['error_domain_change_forbidden'] = 'The domain name cannot be changed. Please contact your administrator if you want to change the domain name.'; +$wb['error_server_change_not_possible'] = 'The server cannot be changed.'; ?> 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 a97883fe46afcaadde1b6b4658db562a0f28c5c2..bdd704f93be621b43936c71c224d5478d1010589 100644 --- a/interface/web/sites/lib/lang/fr_web_vhost_subdomain.lng +++ b/interface/web/sites/lib/lang/fr_web_vhost_subdomain.lng @@ -99,7 +99,7 @@ $wb['pm_min_spare_servers_error_regex'] = 'PHP-FPM pm.min_spare_servers must be $wb['pm_max_spare_servers_error_regex'] = 'PHP-FPM pm.max_spare_servers must be a positive integer value.'; $wb['hd_quota_error_regex'] = 'Harddisk quota is invalid.'; $wb['traffic_quota_error_regex'] = 'Traffic quota is invalid.'; -$wb['fastcgi_php_version_txt'] = 'PHP Version'; +$wb['server_php_id_txt'] = 'PHP Version'; $wb['pm_txt'] = 'PHP-FPM Process Manager'; $wb['pm_process_idle_timeout_txt'] = 'PHP-FPM pm.process_idle_timeout'; $wb['pm_max_requests_txt'] = 'PHP-FPM pm.max_requests'; diff --git a/interface/web/sites/lib/lang/hr_web_aliasdomain.lng b/interface/web/sites/lib/lang/hr_web_aliasdomain.lng index 67eb8363f503f6d26442fe58b3a7bc8724b27511..7a2df148e160932870394aeb0a5935b72bfa2716 100644 --- a/interface/web/sites/lib/lang/hr_web_aliasdomain.lng +++ b/interface/web/sites/lib/lang/hr_web_aliasdomain.lng @@ -95,7 +95,7 @@ $wb['pm_min_spare_servers_error_regex'] = 'PHP-FPM pm.min_spare_servers must be $wb['pm_max_spare_servers_error_regex'] = 'PHP-FPM pm.max_spare_servers must be a positive integer value.'; $wb['hd_quota_error_regex'] = 'Harddisk quota is invalid.'; $wb['traffic_quota_error_regex'] = 'Traffic quota is invalid.'; -$wb['fastcgi_php_version_txt'] = 'PHP verzija'; +$wb['server_php_id_txt'] = 'PHP verzija'; $wb['pm_txt'] = 'PHP-FPM Process Manager'; $wb['pm_process_idle_timeout_txt'] = 'PHP-FPM pm.process_idle_timeout'; $wb['pm_max_requests_txt'] = 'PHP-FPM pm.max_requests'; diff --git a/interface/web/sites/lib/lang/hr_web_childdomain.lng b/interface/web/sites/lib/lang/hr_web_childdomain.lng index 99df0d2fdf5bb7ca009d376df5913203dc4b0857..b0f7a1f2db595d8efbd2dcffe4d7bcafb55064ca 100644 --- a/interface/web/sites/lib/lang/hr_web_childdomain.lng +++ b/interface/web/sites/lib/lang/hr_web_childdomain.lng @@ -100,7 +100,7 @@ $wb['pm_min_spare_servers_error_regex'] = 'PHP-FPM pm.min_spare_servers must be $wb['pm_max_spare_servers_error_regex'] = 'PHP-FPM pm.max_spare_servers must be a positive integer value.'; $wb['hd_quota_error_regex'] = 'Harddisk quota is invalid.'; $wb['traffic_quota_error_regex'] = 'Traffic quota is invalid.'; -$wb['fastcgi_php_version_txt'] = 'PHP Version'; +$wb['server_php_id_txt'] = 'PHP Version'; $wb['pm_txt'] = 'PHP-FPM Process Manager'; $wb['pm_process_idle_timeout_txt'] = 'PHP-FPM pm.process_idle_timeout'; $wb['pm_max_requests_txt'] = 'PHP-FPM pm.max_requests'; diff --git a/interface/web/sites/lib/lang/hr_web_domain.lng b/interface/web/sites/lib/lang/hr_web_domain.lng index 8a089e6ba5f365147feb61e20d0de0de4e9ed9cf..0b27cc5e65dee1d260b3bd78a51f98531317452b 100644 --- a/interface/web/sites/lib/lang/hr_web_domain.lng +++ b/interface/web/sites/lib/lang/hr_web_domain.lng @@ -93,7 +93,7 @@ $wb['hd_quota_error_regex'] = 'Harddisk quota is invalid.'; $wb['traffic_quota_error_regex'] = 'Traffic quota is invalid.'; $wb['ssl_key_txt'] = 'SSL Key'; $wb['perl_txt'] = 'Perl'; -$wb['fastcgi_php_version_txt'] = 'PHP Version'; +$wb['server_php_id_txt'] = 'PHP Version'; $wb['pm_txt'] = 'PHP-FPM Process Manager'; $wb['pm_process_idle_timeout_txt'] = 'PHP-FPM pm.process_idle_timeout'; $wb['pm_max_requests_txt'] = 'PHP-FPM pm.max_requests'; diff --git a/interface/web/sites/lib/lang/hr_web_vhost_domain.lng b/interface/web/sites/lib/lang/hr_web_vhost_domain.lng index 4d70565928c0e8addfd0cdc3c8df101e61d34525..5ef073a0931ff40e965b75119710f0aa77d1d839 100644 --- a/interface/web/sites/lib/lang/hr_web_vhost_domain.lng +++ b/interface/web/sites/lib/lang/hr_web_vhost_domain.lng @@ -95,9 +95,9 @@ $wb['hd_quota_error_regex'] = 'Harddisk quota is invalid.'; $wb['traffic_quota_error_regex'] = 'Traffic quota is invalid.'; $wb['ssl_key_txt'] = 'SSL Key'; $wb['perl_txt'] = 'Perl'; -$wb['fastcgi_php_version_txt'] = 'PHP Version'; -$wb['fastcgi_php_version_invalid_txt'] = 'PHP Version is invalid.'; -$wb['fastcgi_php_version_default_hidden_warning_txt'] = 'PHP Version was set to "default" but that can no longer be selected. Choose your desired PHP Version and save your settings.'; +$wb['server_php_id_txt'] = 'PHP Version'; +$wb['server_php_id_invalid_txt'] = 'PHP Version is invalid.'; +$wb['server_php_id_default_hidden_warning_txt'] = 'PHP Version was set to "default" but that can no longer be selected. Choose your desired PHP Version and save your settings.'; $wb['pm_txt'] = 'PHP-FPM Process Manager'; $wb['pm_process_idle_timeout_txt'] = 'PHP-FPM pm.process_idle_timeout'; $wb['pm_max_requests_txt'] = 'PHP-FPM pm.max_requests'; @@ -157,10 +157,9 @@ $wb['limit_web_quota_not_0_txt'] = 'Harddisk Quota cannot be set to 0.'; $wb['proxy_protocol_txt'] = 'Enable PROXY Protocol'; $wb["backup_format_web_txt"] = 'Backup format for web files'; $wb["backup_format_db_txt"] = 'Backup format for database'; -$wb["backup_format_web_note_txt"] = 'In "default" mode ISPConfig has the following behaviour: if backup mode is set as web user, then "zip" format is used for web files, otherwise backup mode is set as root user and "tar (gzip)" format is used; database is compressed in "gzip" format. Only "tar" based formats and "rar" preserve file ownership and permissions of web files and guarantee correct restore.'; -$wb["backup_missing_utils_txt"] = 'Note: some utils are missing in the system that may prevent you from using some compression formats. Please, install the following utils to avoid possible backup problems: '; +$wb["backup_missing_utils_txt"] = 'The following formats can not be used because they are not installed on the webserver: '; $wb["backup_compression_options_txt"] = 'Compression options'; -$wb["backup_encryption_note_txt"] = "Encryption is available only for the following backup formats: \"7z\", \"RAR\", \"zip\" (not secure). If any other format is used then encryption can't be applied and encryption settings are ignored. You can safely change the password at anytime: the \"Restore\" button will still work for old backups encrypted with a previous password. You don't need to type a password to restore backups using the \"Restore\" button. Password is required when you extract the archives manually. Please, don't forget your password, because it's impossible to restore it."; +$wb["backup_encryption_note_txt"] = "Encryption is only available for 7z, RAR, and zip (not secure)."; $wb["backup_encryption_options_txt"] = 'Encryption options'; $wb["backup_enable_encryption_txt"] = 'Enable encryption'; $wb["backup_password_txt"] = 'Password'; @@ -182,4 +181,8 @@ $wb["backup_format_tar_7z_lzma_txt"] = 'tar + 7z (LZMA)'; $wb["backup_format_tar_7z_lzma2_txt"] = 'tar + 7z (LZMA2)'; $wb["backup_format_tar_7z_ppmd_txt"] = 'tar + 7z (PPMd)'; $wb["backup_format_tar_7z_bzip2_txt"] = 'tar + 7z (BZip2)'; +$wb['error_ipv4_change_forbidden'] = 'The IP cannot be changed. Please contact your administrator if you want to change the IPv4 address.'; +$wb['error_ipv6_change_forbidden'] = 'The IP cannot be changed. Please contact your administrator if you want to change the IPv6 address.'; +$wb['error_domain_change_forbidden'] = 'The domain name cannot be changed. Please contact your administrator if you want to change the domain name.'; +$wb['error_server_change_not_possible'] = 'The server cannot be changed.'; ?> 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 82fa901c1f93c14598500da95fe59b7429139dea..5f5f74062fa3af954ac9a1415f78e0ce20cedd77 100644 --- a/interface/web/sites/lib/lang/hr_web_vhost_subdomain.lng +++ b/interface/web/sites/lib/lang/hr_web_vhost_subdomain.lng @@ -99,7 +99,7 @@ $wb['pm_min_spare_servers_error_regex'] = 'PHP-FPM pm.min_spare_servers must be $wb['pm_max_spare_servers_error_regex'] = 'PHP-FPM pm.max_spare_servers must be a positive integer value.'; $wb['hd_quota_error_regex'] = 'Harddisk quota is invalid.'; $wb['traffic_quota_error_regex'] = 'Traffic quota is invalid.'; -$wb['fastcgi_php_version_txt'] = 'PHP verzija'; +$wb['server_php_id_txt'] = 'PHP verzija'; $wb['pm_txt'] = 'PHP-FPM Process Manager'; $wb['pm_process_idle_timeout_txt'] = 'PHP-FPM pm.process_idle_timeout'; $wb['pm_max_requests_txt'] = 'PHP-FPM pm.max_requests'; diff --git a/interface/web/sites/lib/lang/hu_web_aliasdomain.lng b/interface/web/sites/lib/lang/hu_web_aliasdomain.lng index 4149c711493e6b6f06d0e99656a1c65744d4ec46..74697bdb33298e0eada396548274aebeacda4022 100644 --- a/interface/web/sites/lib/lang/hu_web_aliasdomain.lng +++ b/interface/web/sites/lib/lang/hu_web_aliasdomain.lng @@ -95,7 +95,7 @@ $wb['pm_min_spare_servers_error_regex'] = 'PHP-FPM pm.min_spare_servers must be $wb['pm_max_spare_servers_error_regex'] = 'PHP-FPM pm.max_spare_servers must be a positive integer value.'; $wb['hd_quota_error_regex'] = 'Harddisk quota is invalid.'; $wb['traffic_quota_error_regex'] = 'Traffic quota is invalid.'; -$wb['fastcgi_php_version_txt'] = 'PHP Version'; +$wb['server_php_id_txt'] = 'PHP Version'; $wb['pm_txt'] = 'PHP-FPM Process Manager'; $wb['pm_process_idle_timeout_txt'] = 'PHP-FPM pm.process_idle_timeout'; $wb['pm_max_requests_txt'] = 'PHP-FPM pm.max_requests'; diff --git a/interface/web/sites/lib/lang/hu_web_childdomain.lng b/interface/web/sites/lib/lang/hu_web_childdomain.lng index 5ac19c3bbc25194eff853e3eb75463ff3bbd218e..a05534c4f70e3557376707b392abb053004b5ebf 100644 --- a/interface/web/sites/lib/lang/hu_web_childdomain.lng +++ b/interface/web/sites/lib/lang/hu_web_childdomain.lng @@ -100,7 +100,7 @@ $wb['pm_min_spare_servers_error_regex'] = 'PHP-FPM pm.min_spare_servers must be $wb['pm_max_spare_servers_error_regex'] = 'PHP-FPM pm.max_spare_servers must be a positive integer value.'; $wb['hd_quota_error_regex'] = 'Harddisk quota is invalid.'; $wb['traffic_quota_error_regex'] = 'Traffic quota is invalid.'; -$wb['fastcgi_php_version_txt'] = 'PHP Version'; +$wb['server_php_id_txt'] = 'PHP Version'; $wb['pm_txt'] = 'PHP-FPM Process Manager'; $wb['pm_process_idle_timeout_txt'] = 'PHP-FPM pm.process_idle_timeout'; $wb['pm_max_requests_txt'] = 'PHP-FPM pm.max_requests'; diff --git a/interface/web/sites/lib/lang/hu_web_domain.lng b/interface/web/sites/lib/lang/hu_web_domain.lng index 5ddf06593ded5ab4740f467055c1c63e46d53176..711f0abee28d80fafdc3e70184ad7fc779699ee0 100644 --- a/interface/web/sites/lib/lang/hu_web_domain.lng +++ b/interface/web/sites/lib/lang/hu_web_domain.lng @@ -93,7 +93,7 @@ $wb['hd_quota_error_regex'] = 'Harddisk quota is invalid.'; $wb['traffic_quota_error_regex'] = 'Traffic quota is invalid.'; $wb['ssl_key_txt'] = 'SSL Key'; $wb['perl_txt'] = 'Perl'; -$wb['fastcgi_php_version_txt'] = 'PHP Version'; +$wb['server_php_id_txt'] = 'PHP Version'; $wb['pm_txt'] = 'PHP-FPM Process Manager'; $wb['pm_process_idle_timeout_txt'] = 'PHP-FPM pm.process_idle_timeout'; $wb['pm_max_requests_txt'] = 'PHP-FPM pm.max_requests'; diff --git a/interface/web/sites/lib/lang/hu_web_vhost_domain.lng b/interface/web/sites/lib/lang/hu_web_vhost_domain.lng index d8bb15537ba42884153bb82674a88fde3c091b91..92f6a0d8b713a4f9978a1d33e33ecee7eef81a27 100644 --- a/interface/web/sites/lib/lang/hu_web_vhost_domain.lng +++ b/interface/web/sites/lib/lang/hu_web_vhost_domain.lng @@ -95,9 +95,9 @@ $wb['hd_quota_error_regex'] = 'Harddisk quota is invalid.'; $wb['traffic_quota_error_regex'] = 'Traffic quota is invalid.'; $wb['ssl_key_txt'] = 'SSL Key'; $wb['perl_txt'] = 'Perl'; -$wb['fastcgi_php_version_txt'] = 'PHP Version'; -$wb['fastcgi_php_version_invalid_txt'] = 'PHP Version is invalid.'; -$wb['fastcgi_php_version_default_hidden_warning_txt'] = 'PHP Version was set to "default" but that can no longer be selected. Choose your desired PHP Version and save your settings.'; +$wb['server_php_id_txt'] = 'PHP Version'; +$wb['server_php_id_invalid_txt'] = 'PHP Version is invalid.'; +$wb['server_php_id_default_hidden_warning_txt'] = 'PHP Version was set to "default" but that can no longer be selected. Choose your desired PHP Version and save your settings.'; $wb['pm_txt'] = 'PHP-FPM Process Manager'; $wb['pm_process_idle_timeout_txt'] = 'PHP-FPM pm.process_idle_timeout'; $wb['pm_max_requests_txt'] = 'PHP-FPM pm.max_requests'; @@ -157,10 +157,9 @@ $wb['limit_web_quota_not_0_txt'] = 'Harddisk Quota cannot be set to 0.'; $wb['proxy_protocol_txt'] = 'Enable PROXY Protocol'; $wb["backup_format_web_txt"] = 'Backup format for web files'; $wb["backup_format_db_txt"] = 'Backup format for database'; -$wb["backup_format_web_note_txt"] = 'In "default" mode ISPConfig has the following behaviour: if backup mode is set as web user, then "zip" format is used for web files, otherwise backup mode is set as root user and "tar (gzip)" format is used; database is compressed in "gzip" format. Only "tar" based formats and "rar" preserve file ownership and permissions of web files and guarantee correct restore.'; -$wb["backup_missing_utils_txt"] = 'Note: some utils are missing in the system that may prevent you from using some compression formats. Please, install the following utils to avoid possible backup problems: '; +$wb["backup_missing_utils_txt"] = 'The following formats can not be used because they are not installed on the webserver: '; $wb["backup_compression_options_txt"] = 'Compression options'; -$wb["backup_encryption_note_txt"] = "Encryption is available only for the following backup formats: \"7z\", \"RAR\", \"zip\" (not secure). If any other format is used then encryption can't be applied and encryption settings are ignored. You can safely change the password at anytime: the \"Restore\" button will still work for old backups encrypted with a previous password. You don't need to type a password to restore backups using the \"Restore\" button. Password is required when you extract the archives manually. Please, don't forget your password, because it's impossible to restore it."; +$wb["backup_encryption_note_txt"] = "Encryption is only available for 7z, RAR, and zip (not secure)."; $wb["backup_encryption_options_txt"] = 'Encryption options'; $wb["backup_enable_encryption_txt"] = 'Enable encryption'; $wb["backup_password_txt"] = 'Password'; @@ -182,4 +181,8 @@ $wb["backup_format_tar_7z_lzma_txt"] = 'tar + 7z (LZMA)'; $wb["backup_format_tar_7z_lzma2_txt"] = 'tar + 7z (LZMA2)'; $wb["backup_format_tar_7z_ppmd_txt"] = 'tar + 7z (PPMd)'; $wb["backup_format_tar_7z_bzip2_txt"] = 'tar + 7z (BZip2)'; +$wb['error_ipv4_change_forbidden'] = 'The IP cannot be changed. Please contact your administrator if you want to change the IPv4 address.'; +$wb['error_ipv6_change_forbidden'] = 'The IP cannot be changed. Please contact your administrator if you want to change the IPv6 address.'; +$wb['error_domain_change_forbidden'] = 'The domain name cannot be changed. Please contact your administrator if you want to change the domain name.'; +$wb['error_server_change_not_possible'] = 'The server cannot be changed.'; ?> 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 35c9298e710d663f63a4269e06dd1db22c1e644b..4ded131f4a7164181c1786bd1071c891cec2f252 100644 --- a/interface/web/sites/lib/lang/hu_web_vhost_subdomain.lng +++ b/interface/web/sites/lib/lang/hu_web_vhost_subdomain.lng @@ -99,7 +99,7 @@ $wb['pm_min_spare_servers_error_regex'] = 'PHP-FPM pm.min_spare_servers must be $wb['pm_max_spare_servers_error_regex'] = 'PHP-FPM pm.max_spare_servers must be a positive integer value.'; $wb['hd_quota_error_regex'] = 'Harddisk quota is invalid.'; $wb['traffic_quota_error_regex'] = 'Traffic quota is invalid.'; -$wb['fastcgi_php_version_txt'] = 'PHP Version'; +$wb['server_php_id_txt'] = 'PHP Version'; $wb['pm_txt'] = 'PHP-FPM Process Manager'; $wb['pm_process_idle_timeout_txt'] = 'PHP-FPM pm.process_idle_timeout'; $wb['pm_max_requests_txt'] = 'PHP-FPM pm.max_requests'; diff --git a/interface/web/sites/lib/lang/id_web_aliasdomain.lng b/interface/web/sites/lib/lang/id_web_aliasdomain.lng index 4149c711493e6b6f06d0e99656a1c65744d4ec46..74697bdb33298e0eada396548274aebeacda4022 100644 --- a/interface/web/sites/lib/lang/id_web_aliasdomain.lng +++ b/interface/web/sites/lib/lang/id_web_aliasdomain.lng @@ -95,7 +95,7 @@ $wb['pm_min_spare_servers_error_regex'] = 'PHP-FPM pm.min_spare_servers must be $wb['pm_max_spare_servers_error_regex'] = 'PHP-FPM pm.max_spare_servers must be a positive integer value.'; $wb['hd_quota_error_regex'] = 'Harddisk quota is invalid.'; $wb['traffic_quota_error_regex'] = 'Traffic quota is invalid.'; -$wb['fastcgi_php_version_txt'] = 'PHP Version'; +$wb['server_php_id_txt'] = 'PHP Version'; $wb['pm_txt'] = 'PHP-FPM Process Manager'; $wb['pm_process_idle_timeout_txt'] = 'PHP-FPM pm.process_idle_timeout'; $wb['pm_max_requests_txt'] = 'PHP-FPM pm.max_requests'; diff --git a/interface/web/sites/lib/lang/id_web_childdomain.lng b/interface/web/sites/lib/lang/id_web_childdomain.lng index d5fd9711a4f08c985d682a09125106caf8d23780..d839094ff93e1b4998f49e6f1e547a38f7490e6e 100644 --- a/interface/web/sites/lib/lang/id_web_childdomain.lng +++ b/interface/web/sites/lib/lang/id_web_childdomain.lng @@ -100,7 +100,7 @@ $wb['pm_min_spare_servers_error_regex'] = 'PHP-FPM pm.min_spare_servers must be $wb['pm_max_spare_servers_error_regex'] = 'PHP-FPM pm.max_spare_servers must be a positive integer value.'; $wb['hd_quota_error_regex'] = 'Harddisk quota is invalid.'; $wb['traffic_quota_error_regex'] = 'Traffic quota is invalid.'; -$wb['fastcgi_php_version_txt'] = 'PHP Version'; +$wb['server_php_id_txt'] = 'PHP Version'; $wb['pm_txt'] = 'PHP-FPM Process Manager'; $wb['pm_process_idle_timeout_txt'] = 'PHP-FPM pm.process_idle_timeout'; $wb['pm_max_requests_txt'] = 'PHP-FPM pm.max_requests'; diff --git a/interface/web/sites/lib/lang/id_web_domain.lng b/interface/web/sites/lib/lang/id_web_domain.lng index 785d7fc0daa9655cc0d4cbebf704ca89a95223b8..1dbdae9059af86604cda6e5318e8846e7ac0c551 100644 --- a/interface/web/sites/lib/lang/id_web_domain.lng +++ b/interface/web/sites/lib/lang/id_web_domain.lng @@ -93,7 +93,7 @@ $wb['hd_quota_error_regex'] = 'Harddisk quota is invalid.'; $wb['traffic_quota_error_regex'] = 'Traffic quota is invalid.'; $wb['ssl_key_txt'] = 'SSL Key'; $wb['perl_txt'] = 'Perl'; -$wb['fastcgi_php_version_txt'] = 'PHP Version'; +$wb['server_php_id_txt'] = 'PHP Version'; $wb['pm_txt'] = 'PHP-FPM Process Manager'; $wb['pm_process_idle_timeout_txt'] = 'PHP-FPM pm.process_idle_timeout'; $wb['pm_max_requests_txt'] = 'PHP-FPM pm.max_requests'; diff --git a/interface/web/sites/lib/lang/id_web_vhost_domain.lng b/interface/web/sites/lib/lang/id_web_vhost_domain.lng index 39df360c89fb1b0a7af3ea3d1fe57b71b0f41dd6..765081669f5f8f16cea630182d45caa43194a2f2 100644 --- a/interface/web/sites/lib/lang/id_web_vhost_domain.lng +++ b/interface/web/sites/lib/lang/id_web_vhost_domain.lng @@ -95,9 +95,9 @@ $wb['hd_quota_error_regex'] = 'Harddisk quota is invalid.'; $wb['traffic_quota_error_regex'] = 'Traffic quota is invalid.'; $wb['ssl_key_txt'] = 'SSL Key'; $wb['perl_txt'] = 'Perl'; -$wb['fastcgi_php_version_txt'] = 'PHP Version'; -$wb['fastcgi_php_version_invalid_txt'] = 'PHP Version is invalid.'; -$wb['fastcgi_php_version_default_hidden_warning_txt'] = 'PHP Version was set to "default" but that can no longer be selected. Choose your desired PHP Version and save your settings.'; +$wb['server_php_id_txt'] = 'PHP Version'; +$wb['server_php_id_invalid_txt'] = 'PHP Version is invalid.'; +$wb['server_php_id_default_hidden_warning_txt'] = 'PHP Version was set to "default" but that can no longer be selected. Choose your desired PHP Version and save your settings.'; $wb['pm_txt'] = 'PHP-FPM Process Manager'; $wb['pm_process_idle_timeout_txt'] = 'PHP-FPM pm.process_idle_timeout'; $wb['pm_max_requests_txt'] = 'PHP-FPM pm.max_requests'; @@ -157,10 +157,9 @@ $wb['limit_web_quota_not_0_txt'] = 'Harddisk Quota cannot be set to 0.'; $wb['proxy_protocol_txt'] = 'Enable PROXY Protocol'; $wb["backup_format_web_txt"] = 'Backup format for web files'; $wb["backup_format_db_txt"] = 'Backup format for database'; -$wb["backup_format_web_note_txt"] = 'In "default" mode ISPConfig has the following behaviour: if backup mode is set as web user, then "zip" format is used for web files, otherwise backup mode is set as root user and "tar (gzip)" format is used; database is compressed in "gzip" format. Only "tar" based formats and "rar" preserve file ownership and permissions of web files and guarantee correct restore.'; -$wb["backup_missing_utils_txt"] = 'Note: some utils are missing in the system that may prevent you from using some compression formats. Please, install the following utils to avoid possible backup problems: '; +$wb["backup_missing_utils_txt"] = 'The following formats can not be used because they are not installed on the webserver: '; $wb["backup_compression_options_txt"] = 'Compression options'; -$wb["backup_encryption_note_txt"] = "Encryption is available only for the following backup formats: \"7z\", \"RAR\", \"zip\" (not secure). If any other format is used then encryption can't be applied and encryption settings are ignored. You can safely change the password at anytime: the \"Restore\" button will still work for old backups encrypted with a previous password. You don't need to type a password to restore backups using the \"Restore\" button. Password is required when you extract the archives manually. Please, don't forget your password, because it's impossible to restore it."; +$wb["backup_encryption_note_txt"] = "Encryption is only available for 7z, RAR, and zip (not secure)."; $wb["backup_encryption_options_txt"] = 'Encryption options'; $wb["backup_enable_encryption_txt"] = 'Enable encryption'; $wb["backup_password_txt"] = 'Password'; @@ -182,4 +181,8 @@ $wb["backup_format_tar_7z_lzma_txt"] = 'tar + 7z (LZMA)'; $wb["backup_format_tar_7z_lzma2_txt"] = 'tar + 7z (LZMA2)'; $wb["backup_format_tar_7z_ppmd_txt"] = 'tar + 7z (PPMd)'; $wb["backup_format_tar_7z_bzip2_txt"] = 'tar + 7z (BZip2)'; +$wb['error_ipv4_change_forbidden'] = 'The IP cannot be changed. Please contact your administrator if you want to change the IPv4 address.'; +$wb['error_ipv6_change_forbidden'] = 'The IP cannot be changed. Please contact your administrator if you want to change the IPv6 address.'; +$wb['error_domain_change_forbidden'] = 'The domain name cannot be changed. Please contact your administrator if you want to change the domain name.'; +$wb['error_server_change_not_possible'] = 'The server cannot be changed.'; ?> 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 35c9298e710d663f63a4269e06dd1db22c1e644b..4ded131f4a7164181c1786bd1071c891cec2f252 100644 --- a/interface/web/sites/lib/lang/id_web_vhost_subdomain.lng +++ b/interface/web/sites/lib/lang/id_web_vhost_subdomain.lng @@ -99,7 +99,7 @@ $wb['pm_min_spare_servers_error_regex'] = 'PHP-FPM pm.min_spare_servers must be $wb['pm_max_spare_servers_error_regex'] = 'PHP-FPM pm.max_spare_servers must be a positive integer value.'; $wb['hd_quota_error_regex'] = 'Harddisk quota is invalid.'; $wb['traffic_quota_error_regex'] = 'Traffic quota is invalid.'; -$wb['fastcgi_php_version_txt'] = 'PHP Version'; +$wb['server_php_id_txt'] = 'PHP Version'; $wb['pm_txt'] = 'PHP-FPM Process Manager'; $wb['pm_process_idle_timeout_txt'] = 'PHP-FPM pm.process_idle_timeout'; $wb['pm_max_requests_txt'] = 'PHP-FPM pm.max_requests'; diff --git a/interface/web/sites/lib/lang/it_web_aliasdomain.lng b/interface/web/sites/lib/lang/it_web_aliasdomain.lng index 472378320131037312ad5d1b5fb43c4c564f023e..0dc91e1371076bd976c7af459a5627d9db83391d 100644 --- a/interface/web/sites/lib/lang/it_web_aliasdomain.lng +++ b/interface/web/sites/lib/lang/it_web_aliasdomain.lng @@ -94,7 +94,7 @@ $wb['pm_min_spare_servers_error_regex'] = 'PHP-FPM pm.min_spare_servers deve ess $wb['pm_max_spare_servers_error_regex'] = 'PHP-FPM pm.max_spare_servers deve essere un valore intero postivo.'; $wb['hd_quota_error_regex'] = 'Quota Spazio Disco non valido.'; $wb['traffic_quota_error_regex'] = 'Quota Traffico non valido.'; -$wb['fastcgi_php_version_txt'] = 'Versione PHP'; +$wb['server_php_id_txt'] = 'Versione PHP'; $wb['pm_txt'] = 'PHP-FPM Process Manager'; $wb['pm_process_idle_timeout_txt'] = 'PHP-FPM pm.process_idle_timeout'; $wb['pm_max_requests_txt'] = 'PHP-FPM pm.max_requests'; diff --git a/interface/web/sites/lib/lang/it_web_childdomain.lng b/interface/web/sites/lib/lang/it_web_childdomain.lng index 3a214e298ed8bdcf56e1c7979760a986a7a20b13..e10211cdf75969d2c3fde546538c0b2869196e20 100644 --- a/interface/web/sites/lib/lang/it_web_childdomain.lng +++ b/interface/web/sites/lib/lang/it_web_childdomain.lng @@ -101,7 +101,7 @@ $wb['pm_min_spare_servers_error_regex'] = 'PHP-FPM pm.min_spare_servers must be $wb['pm_max_spare_servers_error_regex'] = 'PHP-FPM pm.max_spare_servers must be a positive integer value.'; $wb['hd_quota_error_regex'] = 'Harddisk quota is invalid.'; $wb['traffic_quota_error_regex'] = 'Traffic quota is invalid.'; -$wb['fastcgi_php_version_txt'] = 'PHP Version'; +$wb['server_php_id_txt'] = 'PHP Version'; $wb['pm_txt'] = 'PHP-FPM Process Manager'; $wb['pm_process_idle_timeout_txt'] = 'PHP-FPM pm.process_idle_timeout'; $wb['pm_max_requests_txt'] = 'PHP-FPM pm.max_requests'; diff --git a/interface/web/sites/lib/lang/it_web_domain.lng b/interface/web/sites/lib/lang/it_web_domain.lng index 68eae554fc16b20070359dd0f29e051d334ae9bf..497f41d74c514770f243b5d0a3ee262f81b420fb 100644 --- a/interface/web/sites/lib/lang/it_web_domain.lng +++ b/interface/web/sites/lib/lang/it_web_domain.lng @@ -93,7 +93,7 @@ $wb['hd_quota_error_regex'] = 'Quota spazio disco non valida.'; $wb['traffic_quota_error_regex'] = 'Quota Traffico non valida.'; $wb['ssl_key_txt'] = 'SSL Key'; $wb['perl_txt'] = 'Perl'; -$wb['fastcgi_php_version_txt'] = 'PHP Versione'; +$wb['server_php_id_txt'] = 'PHP Versione'; $wb['pm_txt'] = 'PHP-FPM Process Manager'; $wb['pm_process_idle_timeout_txt'] = 'PHP-FPM pm.process_idle_timeout'; $wb['pm_max_requests_txt'] = 'PHP-FPM pm.max_requests'; diff --git a/interface/web/sites/lib/lang/it_web_vhost_domain.lng b/interface/web/sites/lib/lang/it_web_vhost_domain.lng index 807039ca6c2113e9bf76e86892af3a1839bb6aad..40a2e5117b593af69a39c994c2e933345ea7e008 100644 --- a/interface/web/sites/lib/lang/it_web_vhost_domain.lng +++ b/interface/web/sites/lib/lang/it_web_vhost_domain.lng @@ -96,9 +96,9 @@ $wb['hd_quota_error_regex'] = 'Harddisk quota is invalid.'; $wb['traffic_quota_error_regex'] = 'Traffic quota is invalid.'; $wb['ssl_key_txt'] = 'SSL Key'; $wb['perl_txt'] = 'Perl'; -$wb['fastcgi_php_version_txt'] = 'PHP Version'; -$wb['fastcgi_php_version_invalid_txt'] = 'PHP Version is invalid.'; -$wb['fastcgi_php_version_default_hidden_warning_txt'] = 'PHP Version was set to "default" but that can no longer be selected. Choose your desired PHP Version and save your settings.'; +$wb['server_php_id_txt'] = 'PHP Version'; +$wb['server_php_id_invalid_txt'] = 'PHP Version is invalid.'; +$wb['server_php_id_default_hidden_warning_txt'] = 'PHP Version was set to "default" but that can no longer be selected. Choose your desired PHP Version and save your settings.'; $wb['pm_txt'] = 'PHP-FPM Process Manager'; $wb['pm_process_idle_timeout_txt'] = 'PHP-FPM pm.process_idle_timeout'; $wb['pm_max_requests_txt'] = 'PHP-FPM pm.max_requests'; @@ -157,10 +157,9 @@ $wb['limit_web_quota_not_0_txt'] = 'Harddisk Quota cannot be set to 0.'; $wb['proxy_protocol_txt'] = 'Enable PROXY Protocol'; $wb["backup_format_web_txt"] = 'Backup format for web files'; $wb["backup_format_db_txt"] = 'Backup format for database'; -$wb["backup_format_web_note_txt"] = 'In "default" mode ISPConfig has the following behaviour: if backup mode is set as web user, then "zip" format is used for web files, otherwise backup mode is set as root user and "tar (gzip)" format is used; database is compressed in "gzip" format. Only "tar" based formats and "rar" preserve file ownership and permissions of web files and guarantee correct restore.'; -$wb["backup_missing_utils_txt"] = 'Note: some utils are missing in the system that may prevent you from using some compression formats. Please, install the following utils to avoid possible backup problems: '; +$wb["backup_missing_utils_txt"] = 'The following formats can not be used because they are not installed on the webserver: '; $wb["backup_compression_options_txt"] = 'Compression options'; -$wb["backup_encryption_note_txt"] = "Encryption is available only for the following backup formats: \"7z\", \"RAR\", \"zip\" (not secure). If any other format is used then encryption can't be applied and encryption settings are ignored. You can safely change the password at anytime: the \"Restore\" button will still work for old backups encrypted with a previous password. You don't need to type a password to restore backups using the \"Restore\" button. Password is required when you extract the archives manually. Please, don't forget your password, because it's impossible to restore it."; +$wb["backup_encryption_note_txt"] = "Encryption is only available for 7z, RAR, and zip (not secure)."; $wb["backup_encryption_options_txt"] = 'Encryption options'; $wb["backup_enable_encryption_txt"] = 'Enable encryption'; $wb["backup_password_txt"] = 'Password'; @@ -182,4 +181,8 @@ $wb["backup_format_tar_7z_lzma_txt"] = 'tar + 7z (LZMA)'; $wb["backup_format_tar_7z_lzma2_txt"] = 'tar + 7z (LZMA2)'; $wb["backup_format_tar_7z_ppmd_txt"] = 'tar + 7z (PPMd)'; $wb["backup_format_tar_7z_bzip2_txt"] = 'tar + 7z (BZip2)'; +$wb['error_ipv4_change_forbidden'] = 'The IP cannot be changed. Please contact your administrator if you want to change the IPv4 address.'; +$wb['error_ipv6_change_forbidden'] = 'The IP cannot be changed. Please contact your administrator if you want to change the IPv6 address.'; +$wb['error_domain_change_forbidden'] = 'The domain name cannot be changed. Please contact your administrator if you want to change the domain name.'; +$wb['error_server_change_not_possible'] = 'The server cannot be changed.'; ?> 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 259d1c820c02a2308a3062df4ce55e166d74d66d..d1bb71c625fd72d2ce0703eb76c39f8221beabe6 100644 --- a/interface/web/sites/lib/lang/it_web_vhost_subdomain.lng +++ b/interface/web/sites/lib/lang/it_web_vhost_subdomain.lng @@ -99,7 +99,7 @@ $wb['pm_min_spare_servers_error_regex'] = 'PHP-FPM pm.min_spare_servers deve es $wb['pm_max_spare_servers_error_regex'] = 'PHP-FPM pm.max_spare_servers deve essere un valore intero positivo.'; $wb['hd_quota_error_regex'] = 'Harddisk quota is invalid.'; $wb['traffic_quota_error_regex'] = 'Traffic quota is invalid.'; -$wb['fastcgi_php_version_txt'] = 'PHP Version'; +$wb['server_php_id_txt'] = 'PHP Version'; $wb['pm_txt'] = 'PHP-FPM Process Manager'; $wb['pm_process_idle_timeout_txt'] = 'PHP-FPM pm.process_idle_timeout'; $wb['pm_max_requests_txt'] = 'PHP-FPM pm.max_requests'; diff --git a/interface/web/sites/lib/lang/ja_web_aliasdomain.lng b/interface/web/sites/lib/lang/ja_web_aliasdomain.lng index 4149c711493e6b6f06d0e99656a1c65744d4ec46..74697bdb33298e0eada396548274aebeacda4022 100644 --- a/interface/web/sites/lib/lang/ja_web_aliasdomain.lng +++ b/interface/web/sites/lib/lang/ja_web_aliasdomain.lng @@ -95,7 +95,7 @@ $wb['pm_min_spare_servers_error_regex'] = 'PHP-FPM pm.min_spare_servers must be $wb['pm_max_spare_servers_error_regex'] = 'PHP-FPM pm.max_spare_servers must be a positive integer value.'; $wb['hd_quota_error_regex'] = 'Harddisk quota is invalid.'; $wb['traffic_quota_error_regex'] = 'Traffic quota is invalid.'; -$wb['fastcgi_php_version_txt'] = 'PHP Version'; +$wb['server_php_id_txt'] = 'PHP Version'; $wb['pm_txt'] = 'PHP-FPM Process Manager'; $wb['pm_process_idle_timeout_txt'] = 'PHP-FPM pm.process_idle_timeout'; $wb['pm_max_requests_txt'] = 'PHP-FPM pm.max_requests'; diff --git a/interface/web/sites/lib/lang/ja_web_childdomain.lng b/interface/web/sites/lib/lang/ja_web_childdomain.lng index d59d7bbda5f8b0e1ba839103ea6ed36b1d460d00..fb705f1af54611d0eb197604ed1212f9dac3c54a 100644 --- a/interface/web/sites/lib/lang/ja_web_childdomain.lng +++ b/interface/web/sites/lib/lang/ja_web_childdomain.lng @@ -100,7 +100,7 @@ $wb['pm_min_spare_servers_error_regex'] = 'PHP-FPM pm.min_spare_servers must be $wb['pm_max_spare_servers_error_regex'] = 'PHP-FPM pm.max_spare_servers must be a positive integer value.'; $wb['hd_quota_error_regex'] = 'Harddisk quota is invalid.'; $wb['traffic_quota_error_regex'] = 'Traffic quota is invalid.'; -$wb['fastcgi_php_version_txt'] = 'PHP Version'; +$wb['server_php_id_txt'] = 'PHP Version'; $wb['pm_txt'] = 'PHP-FPM Process Manager'; $wb['pm_process_idle_timeout_txt'] = 'PHP-FPM pm.process_idle_timeout'; $wb['pm_max_requests_txt'] = 'PHP-FPM pm.max_requests'; diff --git a/interface/web/sites/lib/lang/ja_web_domain.lng b/interface/web/sites/lib/lang/ja_web_domain.lng index 2dbf65d2e5a162fb94e1bcc6726bc916f778f197..5582ad82a545dc34f14d228e6576e42d6aec870f 100644 --- a/interface/web/sites/lib/lang/ja_web_domain.lng +++ b/interface/web/sites/lib/lang/ja_web_domain.lng @@ -93,7 +93,7 @@ $wb['hd_quota_error_regex'] = 'Harddisk quota is invalid.'; $wb['traffic_quota_error_regex'] = 'Traffic quota is invalid.'; $wb['ssl_key_txt'] = 'SSL Key'; $wb['perl_txt'] = 'Perl'; -$wb['fastcgi_php_version_txt'] = 'PHP Version'; +$wb['server_php_id_txt'] = 'PHP Version'; $wb['pm_txt'] = 'PHP-FPM Process Manager'; $wb['pm_process_idle_timeout_txt'] = 'PHP-FPM pm.process_idle_timeout'; $wb['pm_max_requests_txt'] = 'PHP-FPM pm.max_requests'; diff --git a/interface/web/sites/lib/lang/ja_web_vhost_domain.lng b/interface/web/sites/lib/lang/ja_web_vhost_domain.lng index 288b9fab1107bbb25191209d2ca58160f8c7001b..fefa3b277ef7eb73bae4e9a5edf883c883460caa 100644 --- a/interface/web/sites/lib/lang/ja_web_vhost_domain.lng +++ b/interface/web/sites/lib/lang/ja_web_vhost_domain.lng @@ -95,9 +95,9 @@ $wb['hd_quota_error_regex'] = 'Harddisk quota is invalid.'; $wb['traffic_quota_error_regex'] = 'Traffic quota is invalid.'; $wb['ssl_key_txt'] = 'SSL Key'; $wb['perl_txt'] = 'Perl'; -$wb['fastcgi_php_version_txt'] = 'PHP Version'; -$wb['fastcgi_php_version_invalid_txt'] = 'PHP Version is invalid.'; -$wb['fastcgi_php_version_default_hidden_warning_txt'] = 'PHP Version was set to "default" but that can no longer be selected. Choose your desired PHP Version and save your settings.'; +$wb['server_php_id_txt'] = 'PHP Version'; +$wb['server_php_id_invalid_txt'] = 'PHP Version is invalid.'; +$wb['server_php_id_default_hidden_warning_txt'] = 'PHP Version was set to "default" but that can no longer be selected. Choose your desired PHP Version and save your settings.'; $wb['pm_txt'] = 'PHP-FPM Process Manager'; $wb['pm_process_idle_timeout_txt'] = 'PHP-FPM pm.process_idle_timeout'; $wb['pm_max_requests_txt'] = 'PHP-FPM pm.max_requests'; @@ -157,10 +157,9 @@ $wb['limit_web_quota_not_0_txt'] = 'Harddisk Quota cannot be set to 0.'; $wb['proxy_protocol_txt'] = 'Enable PROXY Protocol'; $wb["backup_format_web_txt"] = 'Backup format for web files'; $wb["backup_format_db_txt"] = 'Backup format for database'; -$wb["backup_format_web_note_txt"] = 'In "default" mode ISPConfig has the following behaviour: if backup mode is set as web user, then "zip" format is used for web files, otherwise backup mode is set as root user and "tar (gzip)" format is used; database is compressed in "gzip" format. Only "tar" based formats and "rar" preserve file ownership and permissions of web files and guarantee correct restore.'; -$wb["backup_missing_utils_txt"] = 'Note: some utils are missing in the system that may prevent you from using some compression formats. Please, install the following utils to avoid possible backup problems: '; +$wb["backup_missing_utils_txt"] = 'The following formats can not be used because they are not installed on the webserver: '; $wb["backup_compression_options_txt"] = 'Compression options'; -$wb["backup_encryption_note_txt"] = "Encryption is available only for the following backup formats: \"7z\", \"RAR\", \"zip\" (not secure). If any other format is used then encryption can't be applied and encryption settings are ignored. You can safely change the password at anytime: the \"Restore\" button will still work for old backups encrypted with a previous password. You don't need to type a password to restore backups using the \"Restore\" button. Password is required when you extract the archives manually. Please, don't forget your password, because it's impossible to restore it."; +$wb["backup_encryption_note_txt"] = "Encryption is only available for 7z, RAR, and zip (not secure)."; $wb["backup_encryption_options_txt"] = 'Encryption options'; $wb["backup_enable_encryption_txt"] = 'Enable encryption'; $wb["backup_password_txt"] = 'Password'; @@ -182,4 +181,8 @@ $wb["backup_format_tar_7z_lzma_txt"] = 'tar + 7z (LZMA)'; $wb["backup_format_tar_7z_lzma2_txt"] = 'tar + 7z (LZMA2)'; $wb["backup_format_tar_7z_ppmd_txt"] = 'tar + 7z (PPMd)'; $wb["backup_format_tar_7z_bzip2_txt"] = 'tar + 7z (BZip2)'; +$wb['error_ipv4_change_forbidden'] = 'The IP cannot be changed. Please contact your administrator if you want to change the IPv4 address.'; +$wb['error_ipv6_change_forbidden'] = 'The IP cannot be changed. Please contact your administrator if you want to change the IPv6 address.'; +$wb['error_domain_change_forbidden'] = 'The domain name cannot be changed. Please contact your administrator if you want to change the domain name.'; +$wb['error_server_change_not_possible'] = 'The server cannot be changed.'; ?> 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 35c9298e710d663f63a4269e06dd1db22c1e644b..4ded131f4a7164181c1786bd1071c891cec2f252 100644 --- a/interface/web/sites/lib/lang/ja_web_vhost_subdomain.lng +++ b/interface/web/sites/lib/lang/ja_web_vhost_subdomain.lng @@ -99,7 +99,7 @@ $wb['pm_min_spare_servers_error_regex'] = 'PHP-FPM pm.min_spare_servers must be $wb['pm_max_spare_servers_error_regex'] = 'PHP-FPM pm.max_spare_servers must be a positive integer value.'; $wb['hd_quota_error_regex'] = 'Harddisk quota is invalid.'; $wb['traffic_quota_error_regex'] = 'Traffic quota is invalid.'; -$wb['fastcgi_php_version_txt'] = 'PHP Version'; +$wb['server_php_id_txt'] = 'PHP Version'; $wb['pm_txt'] = 'PHP-FPM Process Manager'; $wb['pm_process_idle_timeout_txt'] = 'PHP-FPM pm.process_idle_timeout'; $wb['pm_max_requests_txt'] = 'PHP-FPM pm.max_requests'; diff --git a/interface/web/sites/lib/lang/nl_web_aliasdomain.lng b/interface/web/sites/lib/lang/nl_web_aliasdomain.lng index 4149c711493e6b6f06d0e99656a1c65744d4ec46..74697bdb33298e0eada396548274aebeacda4022 100644 --- a/interface/web/sites/lib/lang/nl_web_aliasdomain.lng +++ b/interface/web/sites/lib/lang/nl_web_aliasdomain.lng @@ -95,7 +95,7 @@ $wb['pm_min_spare_servers_error_regex'] = 'PHP-FPM pm.min_spare_servers must be $wb['pm_max_spare_servers_error_regex'] = 'PHP-FPM pm.max_spare_servers must be a positive integer value.'; $wb['hd_quota_error_regex'] = 'Harddisk quota is invalid.'; $wb['traffic_quota_error_regex'] = 'Traffic quota is invalid.'; -$wb['fastcgi_php_version_txt'] = 'PHP Version'; +$wb['server_php_id_txt'] = 'PHP Version'; $wb['pm_txt'] = 'PHP-FPM Process Manager'; $wb['pm_process_idle_timeout_txt'] = 'PHP-FPM pm.process_idle_timeout'; $wb['pm_max_requests_txt'] = 'PHP-FPM pm.max_requests'; diff --git a/interface/web/sites/lib/lang/nl_web_childdomain.lng b/interface/web/sites/lib/lang/nl_web_childdomain.lng index e99616ce11c4b607c2eb8f8c1a66211b26f35b6f..9b73b148a2d3e8588f007c54d0caf221aaac38b3 100644 --- a/interface/web/sites/lib/lang/nl_web_childdomain.lng +++ b/interface/web/sites/lib/lang/nl_web_childdomain.lng @@ -100,7 +100,7 @@ $wb['pm_min_spare_servers_error_regex'] = 'PHP-FPM pm.min_spare_servers must be $wb['pm_max_spare_servers_error_regex'] = 'PHP-FPM pm.max_spare_servers must be a positive integer value.'; $wb['hd_quota_error_regex'] = 'Harddisk quota is invalid.'; $wb['traffic_quota_error_regex'] = 'Traffic quota is invalid.'; -$wb['fastcgi_php_version_txt'] = 'PHP Version'; +$wb['server_php_id_txt'] = 'PHP Version'; $wb['pm_txt'] = 'PHP-FPM Process Manager'; $wb['pm_process_idle_timeout_txt'] = 'PHP-FPM pm.process_idle_timeout'; $wb['pm_max_requests_txt'] = 'PHP-FPM pm.max_requests'; diff --git a/interface/web/sites/lib/lang/nl_web_domain.lng b/interface/web/sites/lib/lang/nl_web_domain.lng index aa57c6e012a65b8029489878bb90e582bb3a1b9f..f50539ae7cf079f85b493ede8fab555130f999d9 100644 --- a/interface/web/sites/lib/lang/nl_web_domain.lng +++ b/interface/web/sites/lib/lang/nl_web_domain.lng @@ -93,7 +93,7 @@ $wb['hd_quota_error_regex'] = 'Harddisk quota is ongeldig.'; $wb['traffic_quota_error_regex'] = 'Traffic quota is ongeldig.'; $wb['ssl_key_txt'] = 'SSL Key'; $wb['perl_txt'] = 'Perl'; -$wb['fastcgi_php_version_txt'] = 'PHP Versie'; +$wb['server_php_id_txt'] = 'PHP Versie'; $wb['pm_txt'] = 'PHP-FPM Process Manager'; $wb['pm_process_idle_timeout_txt'] = 'PHP-FPM pm.process_idle_timeout'; $wb['pm_max_requests_txt'] = 'PHP-FPM pm.max_requests'; diff --git a/interface/web/sites/lib/lang/nl_web_vhost_domain.lng b/interface/web/sites/lib/lang/nl_web_vhost_domain.lng index 27371eee355d897d3c1372bb487f4a40dfb47d49..34f43d1e67a56cbf11c2cedaa04e071aedf64654 100644 --- a/interface/web/sites/lib/lang/nl_web_vhost_domain.lng +++ b/interface/web/sites/lib/lang/nl_web_vhost_domain.lng @@ -95,9 +95,9 @@ $wb['hd_quota_error_regex'] = 'Harddisk quota is niet correct.'; $wb['traffic_quota_error_regex'] = 'Traffic quota is niet correct.'; $wb['ssl_key_txt'] = 'SSL Key'; $wb['perl_txt'] = 'Perl'; -$wb['fastcgi_php_version_txt'] = 'PHP Versie'; -$wb['fastcgi_php_version_invalid_txt'] = 'PHP Version is invalid.'; -$wb['fastcgi_php_version_default_hidden_warning_txt'] = 'PHP Version was set to "default" but that can no longer be selected. Choose your desired PHP Version and save your settings.'; +$wb['server_php_id_txt'] = 'PHP Versie'; +$wb['server_php_id_invalid_txt'] = 'PHP Version is invalid.'; +$wb['server_php_id_default_hidden_warning_txt'] = 'PHP Version was set to "default" but that can no longer be selected. Choose your desired PHP Version and save your settings.'; $wb['pm_txt'] = 'PHP-FPM Process Manager'; $wb['pm_process_idle_timeout_txt'] = 'PHP-FPM pm.process_idle_timeout'; $wb['pm_max_requests_txt'] = 'PHP-FPM pm.max_requests'; @@ -157,10 +157,9 @@ $wb['limit_web_quota_not_0_txt'] = 'Harddisk Quota cannot be set to 0.'; $wb['proxy_protocol_txt'] = 'Enable PROXY Protocol'; $wb["backup_format_web_txt"] = 'Backup format for web files'; $wb["backup_format_db_txt"] = 'Backup format for database'; -$wb["backup_format_web_note_txt"] = 'In "default" mode ISPConfig has the following behaviour: if backup mode is set as web user, then "zip" format is used for web files, otherwise backup mode is set as root user and "tar (gzip)" format is used; database is compressed in "gzip" format. Only "tar" based formats and "rar" preserve file ownership and permissions of web files and guarantee correct restore.'; -$wb["backup_missing_utils_txt"] = 'Note: some utils are missing in the system that may prevent you from using some compression formats. Please, install the following utils to avoid possible backup problems: '; +$wb["backup_missing_utils_txt"] = 'The following formats can not be used because they are not installed on the webserver: '; $wb["backup_compression_options_txt"] = 'Compression options'; -$wb["backup_encryption_note_txt"] = "Encryption is available only for the following backup formats: \"7z\", \"RAR\", \"zip\" (not secure). If any other format is used then encryption can't be applied and encryption settings are ignored. You can safely change the password at anytime: the \"Restore\" button will still work for old backups encrypted with a previous password. You don't need to type a password to restore backups using the \"Restore\" button. Password is required when you extract the archives manually. Please, don't forget your password, because it's impossible to restore it."; +$wb["backup_encryption_note_txt"] = "Encryption is only available for 7z, RAR, and zip (not secure)."; $wb["backup_encryption_options_txt"] = 'Encryption options'; $wb["backup_enable_encryption_txt"] = 'Enable encryption'; $wb["backup_password_txt"] = 'Password'; @@ -182,4 +181,8 @@ $wb["backup_format_tar_7z_lzma_txt"] = 'tar + 7z (LZMA)'; $wb["backup_format_tar_7z_lzma2_txt"] = 'tar + 7z (LZMA2)'; $wb["backup_format_tar_7z_ppmd_txt"] = 'tar + 7z (PPMd)'; $wb["backup_format_tar_7z_bzip2_txt"] = 'tar + 7z (BZip2)'; +$wb['error_ipv4_change_forbidden'] = 'The IP cannot be changed. Please contact your administrator if you want to change the IPv4 address.'; +$wb['error_ipv6_change_forbidden'] = 'The IP cannot be changed. Please contact your administrator if you want to change the IPv6 address.'; +$wb['error_domain_change_forbidden'] = 'The domain name cannot be changed. Please contact your administrator if you want to change the domain name.'; +$wb['error_server_change_not_possible'] = 'The server cannot be changed.'; ?> 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 35c9298e710d663f63a4269e06dd1db22c1e644b..4ded131f4a7164181c1786bd1071c891cec2f252 100644 --- a/interface/web/sites/lib/lang/nl_web_vhost_subdomain.lng +++ b/interface/web/sites/lib/lang/nl_web_vhost_subdomain.lng @@ -99,7 +99,7 @@ $wb['pm_min_spare_servers_error_regex'] = 'PHP-FPM pm.min_spare_servers must be $wb['pm_max_spare_servers_error_regex'] = 'PHP-FPM pm.max_spare_servers must be a positive integer value.'; $wb['hd_quota_error_regex'] = 'Harddisk quota is invalid.'; $wb['traffic_quota_error_regex'] = 'Traffic quota is invalid.'; -$wb['fastcgi_php_version_txt'] = 'PHP Version'; +$wb['server_php_id_txt'] = 'PHP Version'; $wb['pm_txt'] = 'PHP-FPM Process Manager'; $wb['pm_process_idle_timeout_txt'] = 'PHP-FPM pm.process_idle_timeout'; $wb['pm_max_requests_txt'] = 'PHP-FPM pm.max_requests'; diff --git a/interface/web/sites/lib/lang/pl_web_aliasdomain.lng b/interface/web/sites/lib/lang/pl_web_aliasdomain.lng index 19cd691bebf7ae8790e13ac6c382abda472de6fb..618ae50e8426820c84a74adff93a8b6310fc7697 100644 --- a/interface/web/sites/lib/lang/pl_web_aliasdomain.lng +++ b/interface/web/sites/lib/lang/pl_web_aliasdomain.lng @@ -95,7 +95,7 @@ $wb['pm_min_spare_servers_error_regex'] = 'PHP-FPM pm.min_spare_servers musi by $wb['pm_max_spare_servers_error_regex'] = 'PHP-FPM pm.max_spare_servers musi być dodatniÄ… wartoÅ›ciÄ… caÅ‚kowitÄ….'; $wb['hd_quota_error_regex'] = 'Limit dysku jest nieprawidÅ‚owy'; $wb['traffic_quota_error_regex'] = 'Limit transferu jest nieprawidÅ‚owy'; -$wb['fastcgi_php_version_txt'] = 'Wersja PHP'; +$wb['server_php_id_txt'] = 'Wersja PHP'; $wb['pm_txt'] = 'PHP-FPM Process Manager'; $wb['pm_process_idle_timeout_txt'] = 'PHP-FPM pm.process_idle_timeout'; $wb['pm_max_requests_txt'] = 'PHP-FPM pm.max_requests'; diff --git a/interface/web/sites/lib/lang/pl_web_childdomain.lng b/interface/web/sites/lib/lang/pl_web_childdomain.lng index 9b8a2b56ba56c8c0433b313ea0db921217eeae6b..ab3a61582a9797f860edf883fc477c8328f65ca6 100644 --- a/interface/web/sites/lib/lang/pl_web_childdomain.lng +++ b/interface/web/sites/lib/lang/pl_web_childdomain.lng @@ -100,7 +100,7 @@ $wb['pm_min_spare_servers_error_regex'] = 'PHP-FPM pm.min_spare_servers musi by $wb['pm_max_spare_servers_error_regex'] = 'PHP-FPM pm.max_spare_servers musi być dodatniÄ… wartoÅ›ciÄ… caÅ‚kowitÄ….'; $wb['hd_quota_error_regex'] = 'Limit dysku jest nieprawidÅ‚owy'; $wb['traffic_quota_error_regex'] = 'Limit transferu jest nieprawidÅ‚owy'; -$wb['fastcgi_php_version_txt'] = 'Wersja PHP'; +$wb['server_php_id_txt'] = 'Wersja PHP'; $wb['pm_txt'] = 'PHP-FPM Process Manager'; $wb['pm_process_idle_timeout_txt'] = 'PHP-FPM pm.process_idle_timeout'; $wb['pm_max_requests_txt'] = 'PHP-FPM pm.max_requests'; diff --git a/interface/web/sites/lib/lang/pl_web_domain.lng b/interface/web/sites/lib/lang/pl_web_domain.lng index 2521f174069e5ee125e76df6eb7a2e44c5302e37..e615f70303f4540f5750346d06f7095671ec90c4 100644 --- a/interface/web/sites/lib/lang/pl_web_domain.lng +++ b/interface/web/sites/lib/lang/pl_web_domain.lng @@ -95,7 +95,7 @@ $wb['ssl_key_txt'] = 'Klucz SSL'; $wb['web_folder_error_regex'] = 'Wprowadzono nieprawidÅ‚owy katalog. ProszÄ™ nie wpisywać znaku slash [ / ]'; $wb['domain_error_autosub'] = 'Istnieje już subdomena z tymi ustawieniami.'; $wb['perl_txt'] = 'Perl'; -$wb['fastcgi_php_version_txt'] = 'Wersja PHP'; +$wb['server_php_id_txt'] = 'Wersja PHP'; $wb['pm_txt'] = 'PHP-FPM Process Manager'; $wb['pm_process_idle_timeout_txt'] = 'PHP-FPM pm.process_idle_timeout'; $wb['pm_max_requests_txt'] = 'PHP-FPM pm.max_requests'; diff --git a/interface/web/sites/lib/lang/pl_web_vhost_domain.lng b/interface/web/sites/lib/lang/pl_web_vhost_domain.lng index f1e945df6f12dd92acd5fb82af5863d0dbfa3dd6..faa5dd0e627c5cfe11452ff7259fb4c47c352c3c 100644 --- a/interface/web/sites/lib/lang/pl_web_vhost_domain.lng +++ b/interface/web/sites/lib/lang/pl_web_vhost_domain.lng @@ -97,9 +97,9 @@ $wb['ssl_key_txt'] = 'Klucz SSL'; $wb['web_folder_error_regex'] = 'Wprowadzono nieprawidÅ‚owy katalog. ProszÄ™ nie wpisywać znaku slash [ / ]'; $wb['domain_error_autosub'] = 'Istnieje już subdomena z tymi ustawieniami.'; $wb['perl_txt'] = 'Perl'; -$wb['fastcgi_php_version_txt'] = 'Wersja PHP'; -$wb['fastcgi_php_version_invalid_txt'] = 'PHP Version is invalid.'; -$wb['fastcgi_php_version_default_hidden_warning_txt'] = 'PHP Version was set to "default" but that can no longer be selected. Choose your desired PHP Version and save your settings.'; +$wb['server_php_id_txt'] = 'Wersja PHP'; +$wb['server_php_id_invalid_txt'] = 'PHP Version is invalid.'; +$wb['server_php_id_default_hidden_warning_txt'] = 'PHP Version was set to "default" but that can no longer be selected. Choose your desired PHP Version and save your settings.'; $wb['pm_txt'] = 'PHP-FPM Process Manager'; $wb['pm_process_idle_timeout_txt'] = 'PHP-FPM pm.process_idle_timeout'; $wb['pm_max_requests_txt'] = 'PHP-FPM pm.max_requests'; @@ -157,10 +157,9 @@ $wb['limit_web_quota_not_0_txt'] = 'Harddisk Quota cannot be set to 0.'; $wb['proxy_protocol_txt'] = 'Enable PROXY Protocol'; $wb["backup_format_web_txt"] = 'Backup format for web files'; $wb["backup_format_db_txt"] = 'Backup format for database'; -$wb["backup_format_web_note_txt"] = 'In "default" mode ISPConfig has the following behaviour: if backup mode is set as web user, then "zip" format is used for web files, otherwise backup mode is set as root user and "tar (gzip)" format is used; database is compressed in "gzip" format. Only "tar" based formats and "rar" preserve file ownership and permissions of web files and guarantee correct restore.'; -$wb["backup_missing_utils_txt"] = 'Note: some utils are missing in the system that may prevent you from using some compression formats. Please, install the following utils to avoid possible backup problems: '; +$wb["backup_missing_utils_txt"] = 'The following formats can not be used because they are not installed on the webserver: '; $wb["backup_compression_options_txt"] = 'Compression options'; -$wb["backup_encryption_note_txt"] = "Encryption is available only for the following backup formats: \"7z\", \"RAR\", \"zip\" (not secure). If any other format is used then encryption can't be applied and encryption settings are ignored. You can safely change the password at anytime: the \"Restore\" button will still work for old backups encrypted with a previous password. You don't need to type a password to restore backups using the \"Restore\" button. Password is required when you extract the archives manually. Please, don't forget your password, because it's impossible to restore it."; +$wb["backup_encryption_note_txt"] = "Encryption is only available for 7z, RAR, and zip (not secure)."; $wb["backup_encryption_options_txt"] = 'Encryption options'; $wb["backup_enable_encryption_txt"] = 'Enable encryption'; $wb["backup_password_txt"] = 'Password'; @@ -182,4 +181,8 @@ $wb["backup_format_tar_7z_lzma_txt"] = 'tar + 7z (LZMA)'; $wb["backup_format_tar_7z_lzma2_txt"] = 'tar + 7z (LZMA2)'; $wb["backup_format_tar_7z_ppmd_txt"] = 'tar + 7z (PPMd)'; $wb["backup_format_tar_7z_bzip2_txt"] = 'tar + 7z (BZip2)'; +$wb['error_ipv4_change_forbidden'] = 'The IP cannot be changed. Please contact your administrator if you want to change the IPv4 address.'; +$wb['error_ipv6_change_forbidden'] = 'The IP cannot be changed. Please contact your administrator if you want to change the IPv6 address.'; +$wb['error_domain_change_forbidden'] = 'The domain name cannot be changed. Please contact your administrator if you want to change the domain name.'; +$wb['error_server_change_not_possible'] = 'The server cannot be changed.'; ?> 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 cc2431dbeccf7bcc34b839c1520e39986bfe4f9b..884210be39dfcc488d6e55f100d2879482de195e 100644 --- a/interface/web/sites/lib/lang/pl_web_vhost_subdomain.lng +++ b/interface/web/sites/lib/lang/pl_web_vhost_subdomain.lng @@ -99,7 +99,7 @@ $wb['pm_min_spare_servers_error_regex'] = 'PHP-FPM pm.min_spare_servers musi by $wb['pm_max_spare_servers_error_regex'] = 'PHP-FPM pm.max_spare_servers musi być dodatniÄ… wartoÅ›ciÄ… caÅ‚kowitÄ….'; $wb['hd_quota_error_regex'] = 'Limit dyski jest nieprawidÅ‚owy'; $wb['traffic_quota_error_regex'] = 'Limit transferu jest nieprawidÅ‚owy'; -$wb['fastcgi_php_version_txt'] = 'Wersja PHP'; +$wb['server_php_id_txt'] = 'Wersja PHP'; $wb['pm_txt'] = 'PHP-FPM Process Manager'; $wb['pm_process_idle_timeout_txt'] = 'PHP-FPM pm.process_idle_timeout'; $wb['pm_max_requests_txt'] = 'PHP-FPM pm.max_requests'; diff --git a/interface/web/sites/lib/lang/pt_web_aliasdomain.lng b/interface/web/sites/lib/lang/pt_web_aliasdomain.lng index 4149c711493e6b6f06d0e99656a1c65744d4ec46..74697bdb33298e0eada396548274aebeacda4022 100644 --- a/interface/web/sites/lib/lang/pt_web_aliasdomain.lng +++ b/interface/web/sites/lib/lang/pt_web_aliasdomain.lng @@ -95,7 +95,7 @@ $wb['pm_min_spare_servers_error_regex'] = 'PHP-FPM pm.min_spare_servers must be $wb['pm_max_spare_servers_error_regex'] = 'PHP-FPM pm.max_spare_servers must be a positive integer value.'; $wb['hd_quota_error_regex'] = 'Harddisk quota is invalid.'; $wb['traffic_quota_error_regex'] = 'Traffic quota is invalid.'; -$wb['fastcgi_php_version_txt'] = 'PHP Version'; +$wb['server_php_id_txt'] = 'PHP Version'; $wb['pm_txt'] = 'PHP-FPM Process Manager'; $wb['pm_process_idle_timeout_txt'] = 'PHP-FPM pm.process_idle_timeout'; $wb['pm_max_requests_txt'] = 'PHP-FPM pm.max_requests'; diff --git a/interface/web/sites/lib/lang/pt_web_childdomain.lng b/interface/web/sites/lib/lang/pt_web_childdomain.lng index 4cbc032c198098cf07e042df3b1bf7d87216066d..48ee53c85681c54bf5efd42a016a96ccfa92e4ea 100644 --- a/interface/web/sites/lib/lang/pt_web_childdomain.lng +++ b/interface/web/sites/lib/lang/pt_web_childdomain.lng @@ -100,7 +100,7 @@ $wb['pm_min_spare_servers_error_regex'] = 'PHP-FPM pm.min_spare_servers must be $wb['pm_max_spare_servers_error_regex'] = 'PHP-FPM pm.max_spare_servers must be a positive integer value.'; $wb['hd_quota_error_regex'] = 'Harddisk quota is invalid.'; $wb['traffic_quota_error_regex'] = 'Traffic quota is invalid.'; -$wb['fastcgi_php_version_txt'] = 'PHP Version'; +$wb['server_php_id_txt'] = 'PHP Version'; $wb['pm_txt'] = 'PHP-FPM Process Manager'; $wb['pm_process_idle_timeout_txt'] = 'PHP-FPM pm.process_idle_timeout'; $wb['pm_max_requests_txt'] = 'PHP-FPM pm.max_requests'; diff --git a/interface/web/sites/lib/lang/pt_web_domain.lng b/interface/web/sites/lib/lang/pt_web_domain.lng index fc7add5d896a6299f65ef0c96fa60a3cec2310a1..5ed2112e1ecf19145bd474819818cc081ec5ed8a 100644 --- a/interface/web/sites/lib/lang/pt_web_domain.lng +++ b/interface/web/sites/lib/lang/pt_web_domain.lng @@ -93,7 +93,7 @@ $wb['hd_quota_error_regex'] = 'Harddisk quota is invalid.'; $wb['traffic_quota_error_regex'] = 'Traffic quota is invalid.'; $wb['ssl_key_txt'] = 'SSL Key'; $wb['perl_txt'] = 'Perl'; -$wb['fastcgi_php_version_txt'] = 'PHP Version'; +$wb['server_php_id_txt'] = 'PHP Version'; $wb['pm_txt'] = 'PHP-FPM Process Manager'; $wb['pm_process_idle_timeout_txt'] = 'PHP-FPM pm.process_idle_timeout'; $wb['pm_max_requests_txt'] = 'PHP-FPM pm.max_requests'; diff --git a/interface/web/sites/lib/lang/pt_web_vhost_domain.lng b/interface/web/sites/lib/lang/pt_web_vhost_domain.lng index 9eb927f000346acfa3aae49b0b4744ad48972497..d5e554463c8f1f52460f45ad1d153551474c61a9 100644 --- a/interface/web/sites/lib/lang/pt_web_vhost_domain.lng +++ b/interface/web/sites/lib/lang/pt_web_vhost_domain.lng @@ -95,9 +95,9 @@ $wb['hd_quota_error_regex'] = 'Harddisk quota is invalid.'; $wb['traffic_quota_error_regex'] = 'Traffic quota is invalid.'; $wb['ssl_key_txt'] = 'SSL Key'; $wb['perl_txt'] = 'Perl'; -$wb['fastcgi_php_version_txt'] = 'PHP Version'; -$wb['fastcgi_php_version_invalid_txt'] = 'PHP Version is invalid.'; -$wb['fastcgi_php_version_default_hidden_warning_txt'] = 'PHP Version was set to "default" but that can no longer be selected. Choose your desired PHP Version and save your settings.'; +$wb['server_php_id_txt'] = 'PHP Version'; +$wb['server_php_id_invalid_txt'] = 'PHP Version is invalid.'; +$wb['server_php_id_default_hidden_warning_txt'] = 'PHP Version was set to "default" but that can no longer be selected. Choose your desired PHP Version and save your settings.'; $wb['pm_txt'] = 'PHP-FPM Process Manager'; $wb['pm_process_idle_timeout_txt'] = 'PHP-FPM pm.process_idle_timeout'; $wb['pm_max_requests_txt'] = 'PHP-FPM pm.max_requests'; @@ -157,10 +157,9 @@ $wb['limit_web_quota_not_0_txt'] = 'Harddisk Quota cannot be set to 0.'; $wb['proxy_protocol_txt'] = 'Enable PROXY Protocol'; $wb["backup_format_web_txt"] = 'Backup format for web files'; $wb["backup_format_db_txt"] = 'Backup format for database'; -$wb["backup_format_web_note_txt"] = 'In "default" mode ISPConfig has the following behaviour: if backup mode is set as web user, then "zip" format is used for web files, otherwise backup mode is set as root user and "tar (gzip)" format is used; database is compressed in "gzip" format. Only "tar" based formats and "rar" preserve file ownership and permissions of web files and guarantee correct restore.'; -$wb["backup_missing_utils_txt"] = 'Note: some utils are missing in the system that may prevent you from using some compression formats. Please, install the following utils to avoid possible backup problems: '; +$wb["backup_missing_utils_txt"] = 'The following formats can not be used because they are not installed on the webserver: '; $wb["backup_compression_options_txt"] = 'Compression options'; -$wb["backup_encryption_note_txt"] = "Encryption is available only for the following backup formats: \"7z\", \"RAR\", \"zip\" (not secure). If any other format is used then encryption can't be applied and encryption settings are ignored. You can safely change the password at anytime: the \"Restore\" button will still work for old backups encrypted with a previous password. You don't need to type a password to restore backups using the \"Restore\" button. Password is required when you extract the archives manually. Please, don't forget your password, because it's impossible to restore it."; +$wb["backup_encryption_note_txt"] = "Encryption is only available for 7z, RAR, and zip (not secure)."; $wb["backup_encryption_options_txt"] = 'Encryption options'; $wb["backup_enable_encryption_txt"] = 'Enable encryption'; $wb["backup_password_txt"] = 'Password'; @@ -182,4 +181,8 @@ $wb["backup_format_tar_7z_lzma_txt"] = 'tar + 7z (LZMA)'; $wb["backup_format_tar_7z_lzma2_txt"] = 'tar + 7z (LZMA2)'; $wb["backup_format_tar_7z_ppmd_txt"] = 'tar + 7z (PPMd)'; $wb["backup_format_tar_7z_bzip2_txt"] = 'tar + 7z (BZip2)'; +$wb['error_ipv4_change_forbidden'] = 'The IP cannot be changed. Please contact your administrator if you want to change the IPv4 address.'; +$wb['error_ipv6_change_forbidden'] = 'The IP cannot be changed. Please contact your administrator if you want to change the IPv6 address.'; +$wb['error_domain_change_forbidden'] = 'The domain name cannot be changed. Please contact your administrator if you want to change the domain name.'; +$wb['error_server_change_not_possible'] = 'The server cannot be changed.'; ?> 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 35c9298e710d663f63a4269e06dd1db22c1e644b..4ded131f4a7164181c1786bd1071c891cec2f252 100644 --- a/interface/web/sites/lib/lang/pt_web_vhost_subdomain.lng +++ b/interface/web/sites/lib/lang/pt_web_vhost_subdomain.lng @@ -99,7 +99,7 @@ $wb['pm_min_spare_servers_error_regex'] = 'PHP-FPM pm.min_spare_servers must be $wb['pm_max_spare_servers_error_regex'] = 'PHP-FPM pm.max_spare_servers must be a positive integer value.'; $wb['hd_quota_error_regex'] = 'Harddisk quota is invalid.'; $wb['traffic_quota_error_regex'] = 'Traffic quota is invalid.'; -$wb['fastcgi_php_version_txt'] = 'PHP Version'; +$wb['server_php_id_txt'] = 'PHP Version'; $wb['pm_txt'] = 'PHP-FPM Process Manager'; $wb['pm_process_idle_timeout_txt'] = 'PHP-FPM pm.process_idle_timeout'; $wb['pm_max_requests_txt'] = 'PHP-FPM pm.max_requests'; diff --git a/interface/web/sites/lib/lang/ro_web_aliasdomain.lng b/interface/web/sites/lib/lang/ro_web_aliasdomain.lng index 4149c711493e6b6f06d0e99656a1c65744d4ec46..74697bdb33298e0eada396548274aebeacda4022 100644 --- a/interface/web/sites/lib/lang/ro_web_aliasdomain.lng +++ b/interface/web/sites/lib/lang/ro_web_aliasdomain.lng @@ -95,7 +95,7 @@ $wb['pm_min_spare_servers_error_regex'] = 'PHP-FPM pm.min_spare_servers must be $wb['pm_max_spare_servers_error_regex'] = 'PHP-FPM pm.max_spare_servers must be a positive integer value.'; $wb['hd_quota_error_regex'] = 'Harddisk quota is invalid.'; $wb['traffic_quota_error_regex'] = 'Traffic quota is invalid.'; -$wb['fastcgi_php_version_txt'] = 'PHP Version'; +$wb['server_php_id_txt'] = 'PHP Version'; $wb['pm_txt'] = 'PHP-FPM Process Manager'; $wb['pm_process_idle_timeout_txt'] = 'PHP-FPM pm.process_idle_timeout'; $wb['pm_max_requests_txt'] = 'PHP-FPM pm.max_requests'; diff --git a/interface/web/sites/lib/lang/ro_web_childdomain.lng b/interface/web/sites/lib/lang/ro_web_childdomain.lng index 30f83e72832e3ea2731b52d04a9253adeae2a843..c172b3d70f9b9d152fc898d5b3f67908b17d9991 100644 --- a/interface/web/sites/lib/lang/ro_web_childdomain.lng +++ b/interface/web/sites/lib/lang/ro_web_childdomain.lng @@ -101,7 +101,7 @@ $wb['pm_min_spare_servers_error_regex'] = 'PHP-FPM pm.min_spare_servers must be $wb['pm_max_spare_servers_error_regex'] = 'PHP-FPM pm.max_spare_servers must be a positive integer value.'; $wb['hd_quota_error_regex'] = 'Harddisk quota is invalid.'; $wb['traffic_quota_error_regex'] = 'Traffic quota is invalid.'; -$wb['fastcgi_php_version_txt'] = 'PHP Version'; +$wb['server_php_id_txt'] = 'PHP Version'; $wb['pm_txt'] = 'PHP-FPM Process Manager'; $wb['pm_process_idle_timeout_txt'] = 'PHP-FPM pm.process_idle_timeout'; $wb['pm_max_requests_txt'] = 'PHP-FPM pm.max_requests'; diff --git a/interface/web/sites/lib/lang/ro_web_domain.lng b/interface/web/sites/lib/lang/ro_web_domain.lng index 7e98b45d02221301f5257938c6dcbf9336d075cd..3b3e8b339acbac459cc646d08c87a4563808e243 100644 --- a/interface/web/sites/lib/lang/ro_web_domain.lng +++ b/interface/web/sites/lib/lang/ro_web_domain.lng @@ -93,7 +93,7 @@ $wb['hd_quota_error_regex'] = 'Harddisk quota is invalid.'; $wb['traffic_quota_error_regex'] = 'Traffic quota is invalid.'; $wb['ssl_key_txt'] = 'SSL Key'; $wb['perl_txt'] = 'Perl'; -$wb['fastcgi_php_version_txt'] = 'PHP Version'; +$wb['server_php_id_txt'] = 'PHP Version'; $wb['pm_txt'] = 'PHP-FPM Process Manager'; $wb['pm_process_idle_timeout_txt'] = 'PHP-FPM pm.process_idle_timeout'; $wb['pm_max_requests_txt'] = 'PHP-FPM pm.max_requests'; diff --git a/interface/web/sites/lib/lang/ro_web_vhost_domain.lng b/interface/web/sites/lib/lang/ro_web_vhost_domain.lng index 0127c4ee8058580ec56ed24d9545d8ee8f8d8ce1..7906eb8f9943d1c980ab5923106c9f06c2ed6e89 100644 --- a/interface/web/sites/lib/lang/ro_web_vhost_domain.lng +++ b/interface/web/sites/lib/lang/ro_web_vhost_domain.lng @@ -96,9 +96,9 @@ $wb['hd_quota_error_regex'] = 'Harddisk quota is invalid.'; $wb['traffic_quota_error_regex'] = 'Traffic quota is invalid.'; $wb['ssl_key_txt'] = 'SSL Key'; $wb['perl_txt'] = 'Perl'; -$wb['fastcgi_php_version_txt'] = 'PHP Version'; -$wb['fastcgi_php_version_invalid_txt'] = 'PHP Version is invalid.'; -$wb['fastcgi_php_version_default_hidden_warning_txt'] = 'PHP Version was set to "default" but that can no longer be selected. Choose your desired PHP Version and save your settings.'; +$wb['server_php_id_txt'] = 'PHP Version'; +$wb['server_php_id_invalid_txt'] = 'PHP Version is invalid.'; +$wb['server_php_id_default_hidden_warning_txt'] = 'PHP Version was set to "default" but that can no longer be selected. Choose your desired PHP Version and save your settings.'; $wb['pm_txt'] = 'PHP-FPM Process Manager'; $wb['pm_process_idle_timeout_txt'] = 'PHP-FPM pm.process_idle_timeout'; $wb['pm_max_requests_txt'] = 'PHP-FPM pm.max_requests'; @@ -157,10 +157,9 @@ $wb['limit_web_quota_not_0_txt'] = 'Harddisk Quota cannot be set to 0.'; $wb['proxy_protocol_txt'] = 'Enable PROXY Protocol'; $wb["backup_format_web_txt"] = 'Backup format for web files'; $wb["backup_format_db_txt"] = 'Backup format for database'; -$wb["backup_format_web_note_txt"] = 'In "default" mode ISPConfig has the following behaviour: if backup mode is set as web user, then "zip" format is used for web files, otherwise backup mode is set as root user and "tar (gzip)" format is used; database is compressed in "gzip" format. Only "tar" based formats and "rar" preserve file ownership and permissions of web files and guarantee correct restore.'; -$wb["backup_missing_utils_txt"] = 'Note: some utils are missing in the system that may prevent you from using some compression formats. Please, install the following utils to avoid possible backup problems: '; +$wb["backup_missing_utils_txt"] = 'The following formats can not be used because they are not installed on the webserver: '; $wb["backup_compression_options_txt"] = 'Compression options'; -$wb["backup_encryption_note_txt"] = "Encryption is available only for the following backup formats: \"7z\", \"RAR\", \"zip\" (not secure). If any other format is used then encryption can't be applied and encryption settings are ignored. You can safely change the password at anytime: the \"Restore\" button will still work for old backups encrypted with a previous password. You don't need to type a password to restore backups using the \"Restore\" button. Password is required when you extract the archives manually. Please, don't forget your password, because it's impossible to restore it."; +$wb["backup_encryption_note_txt"] = "Encryption is only available for 7z, RAR, and zip (not secure)."; $wb["backup_encryption_options_txt"] = 'Encryption options'; $wb["backup_enable_encryption_txt"] = 'Enable encryption'; $wb["backup_password_txt"] = 'Password'; @@ -182,4 +181,8 @@ $wb["backup_format_tar_7z_lzma_txt"] = 'tar + 7z (LZMA)'; $wb["backup_format_tar_7z_lzma2_txt"] = 'tar + 7z (LZMA2)'; $wb["backup_format_tar_7z_ppmd_txt"] = 'tar + 7z (PPMd)'; $wb["backup_format_tar_7z_bzip2_txt"] = 'tar + 7z (BZip2)'; +$wb['error_ipv4_change_forbidden'] = 'The IP cannot be changed. Please contact your administrator if you want to change the IPv4 address.'; +$wb['error_ipv6_change_forbidden'] = 'The IP cannot be changed. Please contact your administrator if you want to change the IPv6 address.'; +$wb['error_domain_change_forbidden'] = 'The domain name cannot be changed. Please contact your administrator if you want to change the domain name.'; +$wb['error_server_change_not_possible'] = 'The server cannot be changed.'; ?> 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 35c9298e710d663f63a4269e06dd1db22c1e644b..4ded131f4a7164181c1786bd1071c891cec2f252 100644 --- a/interface/web/sites/lib/lang/ro_web_vhost_subdomain.lng +++ b/interface/web/sites/lib/lang/ro_web_vhost_subdomain.lng @@ -99,7 +99,7 @@ $wb['pm_min_spare_servers_error_regex'] = 'PHP-FPM pm.min_spare_servers must be $wb['pm_max_spare_servers_error_regex'] = 'PHP-FPM pm.max_spare_servers must be a positive integer value.'; $wb['hd_quota_error_regex'] = 'Harddisk quota is invalid.'; $wb['traffic_quota_error_regex'] = 'Traffic quota is invalid.'; -$wb['fastcgi_php_version_txt'] = 'PHP Version'; +$wb['server_php_id_txt'] = 'PHP Version'; $wb['pm_txt'] = 'PHP-FPM Process Manager'; $wb['pm_process_idle_timeout_txt'] = 'PHP-FPM pm.process_idle_timeout'; $wb['pm_max_requests_txt'] = 'PHP-FPM pm.max_requests'; diff --git a/interface/web/sites/lib/lang/ru_web_aliasdomain.lng b/interface/web/sites/lib/lang/ru_web_aliasdomain.lng index 7555b823b0bbb7b75a994da598e26c46611a5980..e63d9b039fa62f1d85aabb319b42bf302f18f681 100644 --- a/interface/web/sites/lib/lang/ru_web_aliasdomain.lng +++ b/interface/web/sites/lib/lang/ru_web_aliasdomain.lng @@ -95,7 +95,7 @@ $wb['pm_min_spare_servers_error_regex'] = 'PHP-FPM pm.min_spare_servers долж $wb['pm_max_spare_servers_error_regex'] = 'PHP-FPM pm.max_spare_servers должен быть положительным целым чиÑлом.'; $wb['hd_quota_error_regex'] = 'ÐÐµÐºÐ¾Ñ€Ñ€ÐµÐºÑ‚Ð½Ð°Ñ ÐºÐ²Ð¾Ñ‚Ð° HDD.'; $wb['traffic_quota_error_regex'] = 'ÐÐµÐºÐ¾Ñ€Ñ€ÐµÐºÑ‚Ð½Ð°Ñ ÐºÐ²Ð¾Ñ‚Ð° трафика.'; -$wb['fastcgi_php_version_txt'] = 'ВерÑÐ¸Ñ PHP'; +$wb['server_php_id_txt'] = 'ВерÑÐ¸Ñ PHP'; $wb['pm_txt'] = 'Менеджер процеÑÑов PHP-FPM'; $wb['pm_process_idle_timeout_txt'] = 'PHP-FPM pm.process_idle_timeout'; $wb['pm_max_requests_txt'] = 'PHP-FPM pm.max_requests'; diff --git a/interface/web/sites/lib/lang/ru_web_childdomain.lng b/interface/web/sites/lib/lang/ru_web_childdomain.lng index af71669a474529a1078bb9504eb062bf8e6d2532..ffe19805ab6749d8b7d1f9e6f79de5063686bde9 100644 --- a/interface/web/sites/lib/lang/ru_web_childdomain.lng +++ b/interface/web/sites/lib/lang/ru_web_childdomain.lng @@ -100,7 +100,7 @@ $wb['pm_min_spare_servers_error_regex'] = 'PHP-FPM pm.min_spare_servers долж $wb['pm_max_spare_servers_error_regex'] = 'PHP-FPM pm.max_spare_servers должен быть положительным целым чиÑлом.'; $wb['hd_quota_error_regex'] = 'ÐÐµÐºÐ¾Ñ€Ñ€ÐµÐºÑ‚Ð½Ð°Ñ ÐºÐ²Ð¾Ñ‚Ð° HDD.'; $wb['traffic_quota_error_regex'] = 'ÐÐµÐºÐ¾Ñ€Ñ€ÐµÐºÑ‚Ð½Ð°Ñ ÐºÐ²Ð¾Ñ‚Ð° трафика.'; -$wb['fastcgi_php_version_txt'] = 'ВерÑÐ¸Ñ PHP'; +$wb['server_php_id_txt'] = 'ВерÑÐ¸Ñ PHP'; $wb['pm_txt'] = 'Менеджер процеÑÑов PHP-FPM'; $wb['pm_process_idle_timeout_txt'] = 'PHP-FPM pm.process_idle_timeout'; $wb['pm_max_requests_txt'] = 'PHP-FPM pm.max_requests'; diff --git a/interface/web/sites/lib/lang/ru_web_domain.lng b/interface/web/sites/lib/lang/ru_web_domain.lng index 6cba45f1b7e065079da9d7bf900c41c09c9900c9..bc47bfff7ec282a0f9c82acb231436f39a06d6cd 100644 --- a/interface/web/sites/lib/lang/ru_web_domain.lng +++ b/interface/web/sites/lib/lang/ru_web_domain.lng @@ -93,7 +93,7 @@ $wb['hd_quota_error_regex'] = 'ÐÐµÐºÐ¾Ñ€Ñ€ÐµÐºÑ‚Ð½Ð°Ñ ÐºÐ²Ð¾Ñ‚Ð° HDD.'; $wb['traffic_quota_error_regex'] = 'ÐÐµÐºÐ¾Ñ€Ñ€ÐµÐºÑ‚Ð½Ð°Ñ ÐºÐ²Ð¾Ñ‚Ð° трафика.'; $wb['ssl_key_txt'] = 'SSL-ключ'; $wb['perl_txt'] = 'Perl'; -$wb['fastcgi_php_version_txt'] = 'ВерÑÐ¸Ñ PHP'; +$wb['server_php_id_txt'] = 'ВерÑÐ¸Ñ PHP'; $wb['pm_txt'] = 'Менеджер процеÑÑов PHP-FPM'; $wb['pm_process_idle_timeout_txt'] = 'PHP-FPM pm.process_idle_timeout'; $wb['pm_max_requests_txt'] = 'PHP-FPM pm.max_requests'; diff --git a/interface/web/sites/lib/lang/ru_web_vhost_domain.lng b/interface/web/sites/lib/lang/ru_web_vhost_domain.lng index 827f149dd856797e6161c5d28df64ce5a59010aa..afb9d72fab01fae11c183d9bf63d94e3972faf84 100644 --- a/interface/web/sites/lib/lang/ru_web_vhost_domain.lng +++ b/interface/web/sites/lib/lang/ru_web_vhost_domain.lng @@ -95,9 +95,9 @@ $wb['hd_quota_error_regex'] = 'ÐÐµÐºÐ¾Ñ€Ñ€ÐµÐºÑ‚Ð½Ð°Ñ ÐºÐ²Ð¾Ñ‚Ð° HDD.'; $wb['traffic_quota_error_regex'] = 'ÐÐµÐºÐ¾Ñ€Ñ€ÐµÐºÑ‚Ð½Ð°Ñ ÐºÐ²Ð¾Ñ‚Ð° трафика.'; $wb['ssl_key_txt'] = 'SSL-ключ'; $wb['perl_txt'] = 'Perl'; -$wb['fastcgi_php_version_txt'] = 'ВерÑÐ¸Ñ PHP'; -$wb['fastcgi_php_version_invalid_txt'] = 'PHP Version is invalid.'; -$wb['fastcgi_php_version_default_hidden_warning_txt'] = 'PHP Version was set to "default" but that can no longer be selected. Choose your desired PHP Version and save your settings.'; +$wb['server_php_id_txt'] = 'ВерÑÐ¸Ñ PHP'; +$wb['server_php_id_invalid_txt'] = 'PHP Version is invalid.'; +$wb['server_php_id_default_hidden_warning_txt'] = 'PHP Version was set to "default" but that can no longer be selected. Choose your desired PHP Version and save your settings.'; $wb['pm_txt'] = 'Менеджер процеÑÑов PHP-FPM'; $wb['pm_process_idle_timeout_txt'] = 'PHP-FPM pm.process_idle_timeout'; $wb['pm_max_requests_txt'] = 'PHP-FPM pm.max_requests'; @@ -157,10 +157,9 @@ $wb['limit_web_quota_not_0_txt'] = 'Harddisk Quota cannot be set to 0.'; $wb['proxy_protocol_txt'] = 'Enable PROXY Protocol'; $wb["backup_format_web_txt"] = 'Backup format for web files'; $wb["backup_format_db_txt"] = 'Backup format for database'; -$wb["backup_format_web_note_txt"] = 'In "default" mode ISPConfig has the following behaviour: if backup mode is set as web user, then "zip" format is used for web files, otherwise backup mode is set as root user and "tar (gzip)" format is used; database is compressed in "gzip" format. Only "tar" based formats and "rar" preserve file ownership and permissions of web files and guarantee correct restore.'; -$wb["backup_missing_utils_txt"] = 'Note: some utils are missing in the system that may prevent you from using some compression formats. Please, install the following utils to avoid possible backup problems: '; +$wb["backup_missing_utils_txt"] = 'The following formats can not be used because they are not installed on the webserver: '; $wb["backup_compression_options_txt"] = 'Compression options'; -$wb["backup_encryption_note_txt"] = "Encryption is available only for the following backup formats: \"7z\", \"RAR\", \"zip\" (not secure). If any other format is used then encryption can't be applied and encryption settings are ignored. You can safely change the password at anytime: the \"Restore\" button will still work for old backups encrypted with a previous password. You don't need to type a password to restore backups using the \"Restore\" button. Password is required when you extract the archives manually. Please, don't forget your password, because it's impossible to restore it."; +$wb["backup_encryption_note_txt"] = "Encryption is only available for 7z, RAR, and zip (not secure)."; $wb["backup_encryption_options_txt"] = 'Encryption options'; $wb["backup_enable_encryption_txt"] = 'Enable encryption'; $wb["backup_password_txt"] = 'Password'; @@ -182,4 +181,8 @@ $wb["backup_format_tar_7z_lzma_txt"] = 'tar + 7z (LZMA)'; $wb["backup_format_tar_7z_lzma2_txt"] = 'tar + 7z (LZMA2)'; $wb["backup_format_tar_7z_ppmd_txt"] = 'tar + 7z (PPMd)'; $wb["backup_format_tar_7z_bzip2_txt"] = 'tar + 7z (BZip2)'; +$wb['error_ipv4_change_forbidden'] = 'The IP cannot be changed. Please contact your administrator if you want to change the IPv4 address.'; +$wb['error_ipv6_change_forbidden'] = 'The IP cannot be changed. Please contact your administrator if you want to change the IPv6 address.'; +$wb['error_domain_change_forbidden'] = 'The domain name cannot be changed. Please contact your administrator if you want to change the domain name.'; +$wb['error_server_change_not_possible'] = 'The server cannot be changed.'; ?> 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 d548c2abe24f48b5c444d7fff73f9a28a7569314..e504af3dad5e31a2fcabc99e581c8079a96c758b 100644 --- a/interface/web/sites/lib/lang/ru_web_vhost_subdomain.lng +++ b/interface/web/sites/lib/lang/ru_web_vhost_subdomain.lng @@ -99,7 +99,7 @@ $wb['pm_min_spare_servers_error_regex'] = 'PHP-FPM pm.min_spare_servers долж $wb['pm_max_spare_servers_error_regex'] = 'PHP-FPM pm.max_spare_servers должен быть положительным целым чиÑлом.'; $wb['hd_quota_error_regex'] = 'ÐÐµÐºÐ¾Ñ€Ñ€ÐµÐºÑ‚Ð½Ð°Ñ ÐºÐ²Ð¾Ñ‚Ð° HDD.'; $wb['traffic_quota_error_regex'] = 'ÐÐµÐºÐ¾Ñ€Ñ€ÐµÐºÑ‚Ð½Ð°Ñ ÐºÐ²Ð¾Ñ‚Ð° трафика.'; -$wb['fastcgi_php_version_txt'] = 'ВерÑÐ¸Ñ PHP'; +$wb['server_php_id_txt'] = 'ВерÑÐ¸Ñ PHP'; $wb['pm_txt'] = 'Менеджер процеÑÑов PHP-FPM'; $wb['pm_process_idle_timeout_txt'] = 'PHP-FPM pm.process_idle_timeout'; $wb['pm_max_requests_txt'] = 'PHP-FPM pm.max_requests'; diff --git a/interface/web/sites/lib/lang/se_web_aliasdomain.lng b/interface/web/sites/lib/lang/se_web_aliasdomain.lng index 4149c711493e6b6f06d0e99656a1c65744d4ec46..74697bdb33298e0eada396548274aebeacda4022 100644 --- a/interface/web/sites/lib/lang/se_web_aliasdomain.lng +++ b/interface/web/sites/lib/lang/se_web_aliasdomain.lng @@ -95,7 +95,7 @@ $wb['pm_min_spare_servers_error_regex'] = 'PHP-FPM pm.min_spare_servers must be $wb['pm_max_spare_servers_error_regex'] = 'PHP-FPM pm.max_spare_servers must be a positive integer value.'; $wb['hd_quota_error_regex'] = 'Harddisk quota is invalid.'; $wb['traffic_quota_error_regex'] = 'Traffic quota is invalid.'; -$wb['fastcgi_php_version_txt'] = 'PHP Version'; +$wb['server_php_id_txt'] = 'PHP Version'; $wb['pm_txt'] = 'PHP-FPM Process Manager'; $wb['pm_process_idle_timeout_txt'] = 'PHP-FPM pm.process_idle_timeout'; $wb['pm_max_requests_txt'] = 'PHP-FPM pm.max_requests'; diff --git a/interface/web/sites/lib/lang/se_web_childdomain.lng b/interface/web/sites/lib/lang/se_web_childdomain.lng index eff6791c65ae3f4baca3b5f282e81100af8c802c..42e459183578819ff03f8317ce2b85255b0beaed 100644 --- a/interface/web/sites/lib/lang/se_web_childdomain.lng +++ b/interface/web/sites/lib/lang/se_web_childdomain.lng @@ -101,7 +101,7 @@ $wb['pm_min_spare_servers_error_regex'] = 'PHP-FPM pm.min_spare_servers must be $wb['pm_max_spare_servers_error_regex'] = 'PHP-FPM pm.max_spare_servers must be a positive integer value.'; $wb['hd_quota_error_regex'] = 'Harddisk quota is invalid.'; $wb['traffic_quota_error_regex'] = 'Traffic quota is invalid.'; -$wb['fastcgi_php_version_txt'] = 'PHP Version'; +$wb['server_php_id_txt'] = 'PHP Version'; $wb['pm_txt'] = 'PHP-FPM Process Manager'; $wb['pm_process_idle_timeout_txt'] = 'PHP-FPM pm.process_idle_timeout'; $wb['pm_max_requests_txt'] = 'PHP-FPM pm.max_requests'; diff --git a/interface/web/sites/lib/lang/se_web_domain.lng b/interface/web/sites/lib/lang/se_web_domain.lng index 91fa8c4db56627639c7a3519cad7bea8913bf62a..a293af77ea902036b48b5778c87855f102dea261 100644 --- a/interface/web/sites/lib/lang/se_web_domain.lng +++ b/interface/web/sites/lib/lang/se_web_domain.lng @@ -93,7 +93,7 @@ $wb['hd_quota_error_regex'] = 'Harddisk quota is invalid.'; $wb['traffic_quota_error_regex'] = 'Traffic quota is invalid.'; $wb['ssl_key_txt'] = 'SSL Key'; $wb['perl_txt'] = 'Perl'; -$wb['fastcgi_php_version_txt'] = 'PHP Version'; +$wb['server_php_id_txt'] = 'PHP Version'; $wb['pm_txt'] = 'PHP-FPM Process Manager'; $wb['pm_process_idle_timeout_txt'] = 'PHP-FPM pm.process_idle_timeout'; $wb['pm_max_requests_txt'] = 'PHP-FPM pm.max_requests'; diff --git a/interface/web/sites/lib/lang/se_web_vhost_domain.lng b/interface/web/sites/lib/lang/se_web_vhost_domain.lng index 1bac2468c15530a921633801befef70c2dbb1038..91c126b69a815bc109a509877f98c7032ba9df61 100644 --- a/interface/web/sites/lib/lang/se_web_vhost_domain.lng +++ b/interface/web/sites/lib/lang/se_web_vhost_domain.lng @@ -96,9 +96,9 @@ $wb['hd_quota_error_regex'] = 'Harddisk quota is invalid.'; $wb['traffic_quota_error_regex'] = 'Traffic quota is invalid.'; $wb['ssl_key_txt'] = 'SSL Key'; $wb['perl_txt'] = 'Perl'; -$wb['fastcgi_php_version_txt'] = 'PHP Version'; -$wb['fastcgi_php_version_invalid_txt'] = 'PHP Version is invalid.'; -$wb['fastcgi_php_version_default_hidden_warning_txt'] = 'PHP Version was set to "default" but that can no longer be selected. Choose your desired PHP Version and save your settings.'; +$wb['server_php_id_txt'] = 'PHP Version'; +$wb['server_php_id_invalid_txt'] = 'PHP Version is invalid.'; +$wb['server_php_id_default_hidden_warning_txt'] = 'PHP Version was set to "default" but that can no longer be selected. Choose your desired PHP Version and save your settings.'; $wb['pm_txt'] = 'PHP-FPM Process Manager'; $wb['pm_process_idle_timeout_txt'] = 'PHP-FPM pm.process_idle_timeout'; $wb['pm_max_requests_txt'] = 'PHP-FPM pm.max_requests'; @@ -157,10 +157,9 @@ $wb['limit_web_quota_not_0_txt'] = 'Harddisk Quota cannot be set to 0.'; $wb['proxy_protocol_txt'] = 'Enable PROXY Protocol'; $wb["backup_format_web_txt"] = 'Backup format for web files'; $wb["backup_format_db_txt"] = 'Backup format for database'; -$wb["backup_format_web_note_txt"] = 'In "default" mode ISPConfig has the following behaviour: if backup mode is set as web user, then "zip" format is used for web files, otherwise backup mode is set as root user and "tar (gzip)" format is used; database is compressed in "gzip" format. Only "tar" based formats and "rar" preserve file ownership and permissions of web files and guarantee correct restore.'; -$wb["backup_missing_utils_txt"] = 'Note: some utils are missing in the system that may prevent you from using some compression formats. Please, install the following utils to avoid possible backup problems: '; +$wb["backup_missing_utils_txt"] = 'The following formats can not be used because they are not installed on the webserver: '; $wb["backup_compression_options_txt"] = 'Compression options'; -$wb["backup_encryption_note_txt"] = "Encryption is available only for the following backup formats: \"7z\", \"RAR\", \"zip\" (not secure). If any other format is used then encryption can't be applied and encryption settings are ignored. You can safely change the password at anytime: the \"Restore\" button will still work for old backups encrypted with a previous password. You don't need to type a password to restore backups using the \"Restore\" button. Password is required when you extract the archives manually. Please, don't forget your password, because it's impossible to restore it."; +$wb["backup_encryption_note_txt"] = "Encryption is only available for 7z, RAR, and zip (not secure)."; $wb["backup_encryption_options_txt"] = 'Encryption options'; $wb["backup_enable_encryption_txt"] = 'Enable encryption'; $wb["backup_password_txt"] = 'Password'; @@ -182,4 +181,8 @@ $wb["backup_format_tar_7z_lzma_txt"] = 'tar + 7z (LZMA)'; $wb["backup_format_tar_7z_lzma2_txt"] = 'tar + 7z (LZMA2)'; $wb["backup_format_tar_7z_ppmd_txt"] = 'tar + 7z (PPMd)'; $wb["backup_format_tar_7z_bzip2_txt"] = 'tar + 7z (BZip2)'; +$wb['error_ipv4_change_forbidden'] = 'The IP cannot be changed. Please contact your administrator if you want to change the IPv4 address.'; +$wb['error_ipv6_change_forbidden'] = 'The IP cannot be changed. Please contact your administrator if you want to change the IPv6 address.'; +$wb['error_domain_change_forbidden'] = 'The domain name cannot be changed. Please contact your administrator if you want to change the domain name.'; +$wb['error_server_change_not_possible'] = 'The server cannot be changed.'; ?> 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 35c9298e710d663f63a4269e06dd1db22c1e644b..4ded131f4a7164181c1786bd1071c891cec2f252 100644 --- a/interface/web/sites/lib/lang/se_web_vhost_subdomain.lng +++ b/interface/web/sites/lib/lang/se_web_vhost_subdomain.lng @@ -99,7 +99,7 @@ $wb['pm_min_spare_servers_error_regex'] = 'PHP-FPM pm.min_spare_servers must be $wb['pm_max_spare_servers_error_regex'] = 'PHP-FPM pm.max_spare_servers must be a positive integer value.'; $wb['hd_quota_error_regex'] = 'Harddisk quota is invalid.'; $wb['traffic_quota_error_regex'] = 'Traffic quota is invalid.'; -$wb['fastcgi_php_version_txt'] = 'PHP Version'; +$wb['server_php_id_txt'] = 'PHP Version'; $wb['pm_txt'] = 'PHP-FPM Process Manager'; $wb['pm_process_idle_timeout_txt'] = 'PHP-FPM pm.process_idle_timeout'; $wb['pm_max_requests_txt'] = 'PHP-FPM pm.max_requests'; diff --git a/interface/web/sites/lib/lang/sk_web_aliasdomain.lng b/interface/web/sites/lib/lang/sk_web_aliasdomain.lng index 4149c711493e6b6f06d0e99656a1c65744d4ec46..74697bdb33298e0eada396548274aebeacda4022 100644 --- a/interface/web/sites/lib/lang/sk_web_aliasdomain.lng +++ b/interface/web/sites/lib/lang/sk_web_aliasdomain.lng @@ -95,7 +95,7 @@ $wb['pm_min_spare_servers_error_regex'] = 'PHP-FPM pm.min_spare_servers must be $wb['pm_max_spare_servers_error_regex'] = 'PHP-FPM pm.max_spare_servers must be a positive integer value.'; $wb['hd_quota_error_regex'] = 'Harddisk quota is invalid.'; $wb['traffic_quota_error_regex'] = 'Traffic quota is invalid.'; -$wb['fastcgi_php_version_txt'] = 'PHP Version'; +$wb['server_php_id_txt'] = 'PHP Version'; $wb['pm_txt'] = 'PHP-FPM Process Manager'; $wb['pm_process_idle_timeout_txt'] = 'PHP-FPM pm.process_idle_timeout'; $wb['pm_max_requests_txt'] = 'PHP-FPM pm.max_requests'; diff --git a/interface/web/sites/lib/lang/sk_web_childdomain.lng b/interface/web/sites/lib/lang/sk_web_childdomain.lng index e0d26667bc7252103db05d4e90deb8daf4985c4a..d14f9815f6d0be5083924da7b73f49b5ebafee72 100644 --- a/interface/web/sites/lib/lang/sk_web_childdomain.lng +++ b/interface/web/sites/lib/lang/sk_web_childdomain.lng @@ -100,7 +100,7 @@ $wb['pm_min_spare_servers_error_regex'] = 'PHP-FPM pm.min_spare_servers must be $wb['pm_max_spare_servers_error_regex'] = 'PHP-FPM pm.max_spare_servers must be a positive integer value.'; $wb['hd_quota_error_regex'] = 'Harddisk quota is invalid.'; $wb['traffic_quota_error_regex'] = 'Traffic quota is invalid.'; -$wb['fastcgi_php_version_txt'] = 'PHP Version'; +$wb['server_php_id_txt'] = 'PHP Version'; $wb['pm_txt'] = 'PHP-FPM Process Manager'; $wb['pm_process_idle_timeout_txt'] = 'PHP-FPM pm.process_idle_timeout'; $wb['pm_max_requests_txt'] = 'PHP-FPM pm.max_requests'; diff --git a/interface/web/sites/lib/lang/sk_web_domain.lng b/interface/web/sites/lib/lang/sk_web_domain.lng index f8f2f79b965f20526db9faf7d8e551d0892b6cf2..2b18602008778a02f07802b1fa491691fd4cee4d 100644 --- a/interface/web/sites/lib/lang/sk_web_domain.lng +++ b/interface/web/sites/lib/lang/sk_web_domain.lng @@ -93,7 +93,7 @@ $wb['hd_quota_error_regex'] = 'Harddisk quota is invalid.'; $wb['traffic_quota_error_regex'] = 'Traffic quota is invalid.'; $wb['ssl_key_txt'] = 'SSL Key'; $wb['perl_txt'] = 'Perl'; -$wb['fastcgi_php_version_txt'] = 'PHP Version'; +$wb['server_php_id_txt'] = 'PHP Version'; $wb['pm_txt'] = 'PHP-FPM Process Manager'; $wb['pm_process_idle_timeout_txt'] = 'PHP-FPM pm.process_idle_timeout'; $wb['pm_max_requests_txt'] = 'PHP-FPM pm.max_requests'; diff --git a/interface/web/sites/lib/lang/sk_web_vhost_domain.lng b/interface/web/sites/lib/lang/sk_web_vhost_domain.lng index c3b680b2b480c0be42b08f5c10a4b4f0affa0547..d61f814f57bce259a3ca0a7b74a40d917acd1d55 100644 --- a/interface/web/sites/lib/lang/sk_web_vhost_domain.lng +++ b/interface/web/sites/lib/lang/sk_web_vhost_domain.lng @@ -95,9 +95,9 @@ $wb['hd_quota_error_regex'] = 'Harddisk quota is invalid.'; $wb['traffic_quota_error_regex'] = 'Traffic quota is invalid.'; $wb['ssl_key_txt'] = 'SSL Key'; $wb['perl_txt'] = 'Perl'; -$wb['fastcgi_php_version_txt'] = 'PHP Version'; -$wb['fastcgi_php_version_invalid_txt'] = 'PHP Version is invalid.'; -$wb['fastcgi_php_version_default_hidden_warning_txt'] = 'PHP Version was set to "default" but that can no longer be selected. Choose your desired PHP Version and save your settings.'; +$wb['server_php_id_txt'] = 'PHP Version'; +$wb['server_php_id_invalid_txt'] = 'PHP Version is invalid.'; +$wb['server_php_id_default_hidden_warning_txt'] = 'PHP Version was set to "default" but that can no longer be selected. Choose your desired PHP Version and save your settings.'; $wb['pm_txt'] = 'PHP-FPM Process Manager'; $wb['pm_process_idle_timeout_txt'] = 'PHP-FPM pm.process_idle_timeout'; $wb['pm_max_requests_txt'] = 'PHP-FPM pm.max_requests'; @@ -157,10 +157,9 @@ $wb['limit_web_quota_not_0_txt'] = 'Harddisk Quota cannot be set to 0.'; $wb['proxy_protocol_txt'] = 'Enable PROXY Protocol'; $wb["backup_format_web_txt"] = 'Backup format for web files'; $wb["backup_format_db_txt"] = 'Backup format for database'; -$wb["backup_format_web_note_txt"] = 'In "default" mode ISPConfig has the following behaviour: if backup mode is set as web user, then "zip" format is used for web files, otherwise backup mode is set as root user and "tar (gzip)" format is used; database is compressed in "gzip" format. Only "tar" based formats and "rar" preserve file ownership and permissions of web files and guarantee correct restore.'; -$wb["backup_missing_utils_txt"] = 'Note: some utils are missing in the system that may prevent you from using some compression formats. Please, install the following utils to avoid possible backup problems: '; +$wb["backup_missing_utils_txt"] = 'The following formats can not be used because they are not installed on the webserver: '; $wb["backup_compression_options_txt"] = 'Compression options'; -$wb["backup_encryption_note_txt"] = "Encryption is available only for the following backup formats: \"7z\", \"RAR\", \"zip\" (not secure). If any other format is used then encryption can't be applied and encryption settings are ignored. You can safely change the password at anytime: the \"Restore\" button will still work for old backups encrypted with a previous password. You don't need to type a password to restore backups using the \"Restore\" button. Password is required when you extract the archives manually. Please, don't forget your password, because it's impossible to restore it."; +$wb["backup_encryption_note_txt"] = "Encryption is only available for 7z, RAR, and zip (not secure)."; $wb["backup_encryption_options_txt"] = 'Encryption options'; $wb["backup_enable_encryption_txt"] = 'Enable encryption'; $wb["backup_password_txt"] = 'Password'; @@ -182,4 +181,8 @@ $wb["backup_format_tar_7z_lzma_txt"] = 'tar + 7z (LZMA)'; $wb["backup_format_tar_7z_lzma2_txt"] = 'tar + 7z (LZMA2)'; $wb["backup_format_tar_7z_ppmd_txt"] = 'tar + 7z (PPMd)'; $wb["backup_format_tar_7z_bzip2_txt"] = 'tar + 7z (BZip2)'; +$wb['error_ipv4_change_forbidden'] = 'The IP cannot be changed. Please contact your administrator if you want to change the IPv4 address.'; +$wb['error_ipv6_change_forbidden'] = 'The IP cannot be changed. Please contact your administrator if you want to change the IPv6 address.'; +$wb['error_domain_change_forbidden'] = 'The domain name cannot be changed. Please contact your administrator if you want to change the domain name.'; +$wb['error_server_change_not_possible'] = 'The server cannot be changed.'; ?> 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 35c9298e710d663f63a4269e06dd1db22c1e644b..4ded131f4a7164181c1786bd1071c891cec2f252 100644 --- a/interface/web/sites/lib/lang/sk_web_vhost_subdomain.lng +++ b/interface/web/sites/lib/lang/sk_web_vhost_subdomain.lng @@ -99,7 +99,7 @@ $wb['pm_min_spare_servers_error_regex'] = 'PHP-FPM pm.min_spare_servers must be $wb['pm_max_spare_servers_error_regex'] = 'PHP-FPM pm.max_spare_servers must be a positive integer value.'; $wb['hd_quota_error_regex'] = 'Harddisk quota is invalid.'; $wb['traffic_quota_error_regex'] = 'Traffic quota is invalid.'; -$wb['fastcgi_php_version_txt'] = 'PHP Version'; +$wb['server_php_id_txt'] = 'PHP Version'; $wb['pm_txt'] = 'PHP-FPM Process Manager'; $wb['pm_process_idle_timeout_txt'] = 'PHP-FPM pm.process_idle_timeout'; $wb['pm_max_requests_txt'] = 'PHP-FPM pm.max_requests'; diff --git a/interface/web/sites/lib/lang/tr_web_aliasdomain.lng b/interface/web/sites/lib/lang/tr_web_aliasdomain.lng index d7ded7849a834ba048cac2e9017c527bbe3adc84..108f1d9a67d7e3e4c66c8d831a3b0e06652c7a88 100644 --- a/interface/web/sites/lib/lang/tr_web_aliasdomain.lng +++ b/interface/web/sites/lib/lang/tr_web_aliasdomain.lng @@ -95,7 +95,7 @@ $wb['pm_min_spare_servers_error_regex'] = 'PHP-FPM pm.min_spare_servers deÄŸeri $wb['pm_max_spare_servers_error_regex'] = 'PHP-FPM pm.max_spare_servers deÄŸeri pozitif bir tamsayı olmalıdır.'; $wb['hd_quota_error_regex'] = 'Disk kotası geçersiz.'; $wb['traffic_quota_error_regex'] = 'Trafik kotası geçersiz.'; -$wb['fastcgi_php_version_txt'] = 'PHP Sürümü'; +$wb['server_php_id_txt'] = 'PHP Sürümü'; $wb['pm_txt'] = 'PHP-FPM Ä°ÅŸlem Yöneticisi'; $wb['pm_process_idle_timeout_txt'] = 'PHP-FPM pm.process_idle_timeout'; $wb['pm_max_requests_txt'] = 'PHP-FPM pm.max_requests'; diff --git a/interface/web/sites/lib/lang/tr_web_childdomain.lng b/interface/web/sites/lib/lang/tr_web_childdomain.lng index 235e870117f6223af6c7e4a299f19a8d44326a16..55a82167d6dae5580bc87cd64c5bd32fd30fe9f0 100644 --- a/interface/web/sites/lib/lang/tr_web_childdomain.lng +++ b/interface/web/sites/lib/lang/tr_web_childdomain.lng @@ -101,7 +101,7 @@ $wb['pm_min_spare_servers_error_regex'] = 'PHP-FPM pm.min_spare_servers deÄŸeri $wb['pm_max_spare_servers_error_regex'] = 'PHP-FPM pm.max_spare_servers deÄŸeri pozitif bir tamsayı olmalıdır.'; $wb['hd_quota_error_regex'] = 'Sabit disk kotası geçersiz.'; $wb['traffic_quota_error_regex'] = 'Trafik kotası geçersiz.'; -$wb['fastcgi_php_version_txt'] = 'PHP Sürümü'; +$wb['server_php_id_txt'] = 'PHP Sürümü'; $wb['pm_txt'] = 'PHP-FPM Ä°ÅŸlem Yönetimi'; $wb['pm_process_idle_timeout_txt'] = 'PHP-FPM pm.process_idle_timeout'; $wb['pm_max_requests_txt'] = 'PHP-FPM pm.max_requests'; diff --git a/interface/web/sites/lib/lang/tr_web_domain.lng b/interface/web/sites/lib/lang/tr_web_domain.lng index 65db621f5692d5379411ed5a5fbc9fa50b868ceb..4d20d3efad7eb5f88dbedac41ef6b7bfec71e815 100644 --- a/interface/web/sites/lib/lang/tr_web_domain.lng +++ b/interface/web/sites/lib/lang/tr_web_domain.lng @@ -95,7 +95,7 @@ $wb['pm_min_spare_servers_error_regex'] = 'PHP-FPM pm.min_spare_servers deÄŸeri $wb['pm_max_spare_servers_error_regex'] = 'PHP-FPM pm.max_spare_servers deÄŸeri pozitif bir tamsayı olmalıdır.'; $wb['hd_quota_error_regex'] = 'Disk kotası geçersiz.'; $wb['traffic_quota_error_regex'] = 'Trafik kotası geçersiz.'; -$wb['fastcgi_php_version_txt'] = 'PHP Sürümü'; +$wb['server_php_id_txt'] = 'PHP Sürümü'; $wb['pm_txt'] = 'PHP-FPM Ä°ÅŸlem Yöneticisi'; $wb['pm_process_idle_timeout_txt'] = 'PHP-FPM pm.process_idle_timeout'; $wb['pm_max_requests_txt'] = 'PHP-FPM pm.max_requests'; diff --git a/interface/web/sites/lib/lang/tr_web_vhost_domain.lng b/interface/web/sites/lib/lang/tr_web_vhost_domain.lng index 2e004d87ef4049f5e644b53202e90f374cfc0d72..6b81451fdd591d73624b229396f9ec123e1caf2c 100644 --- a/interface/web/sites/lib/lang/tr_web_vhost_domain.lng +++ b/interface/web/sites/lib/lang/tr_web_vhost_domain.lng @@ -96,9 +96,9 @@ $wb['pm_min_spare_servers_error_regex'] = 'PHP-FPM pm.min_spare_servers deÄŸeri $wb['pm_max_spare_servers_error_regex'] = 'PHP-FPM pm.max_spare_servers deÄŸeri pozitif bir tamsayı olmalıdır.'; $wb['hd_quota_error_regex'] = 'Disk kotası geçersiz.'; $wb['traffic_quota_error_regex'] = 'Trafik kotası geçersiz.'; -$wb['fastcgi_php_version_txt'] = 'PHP Sürümü'; -$wb['fastcgi_php_version_invalid_txt'] = 'PHP Version is invalid.'; -$wb['fastcgi_php_version_default_hidden_warning_txt'] = 'PHP Version was set to "default" but that can no longer be selected. Choose your desired PHP Version and save your settings.'; +$wb['server_php_id_txt'] = 'PHP Sürümü'; +$wb['server_php_id_invalid_txt'] = 'PHP Version is invalid.'; +$wb['server_php_id_default_hidden_warning_txt'] = 'PHP Version was set to "default" but that can no longer be selected. Choose your desired PHP Version and save your settings.'; $wb['pm_txt'] = 'PHP-FPM Ä°ÅŸlem Yöneticisi'; $wb['pm_process_idle_timeout_txt'] = 'PHP-FPM pm.process_idle_timeout'; $wb['pm_max_requests_txt'] = 'PHP-FPM pm.max_requests'; @@ -159,10 +159,9 @@ $wb['log_retention_txt'] = 'Günlük Dosyalarının Silinme Sıklığı'; $wb['log_retention_error_regex'] = 'Gün cinsinden günlük dosyalarının silinme sıklığı (En küçük: 0 - En büyük: 9999)'; $wb["backup_format_web_txt"] = 'Backup format for web files'; $wb["backup_format_db_txt"] = 'Backup format for database'; -$wb["backup_format_web_note_txt"] = 'In "default" mode ISPConfig has the following behaviour: if backup mode is set as web user, then "zip" format is used for web files, otherwise backup mode is set as root user and "tar (gzip)" format is used; database is compressed in "gzip" format. Only "tar" based formats and "rar" preserve file ownership and permissions of web files and guarantee correct restore.'; -$wb["backup_missing_utils_txt"] = 'Note: some utils are missing in the system that may prevent you from using some compression formats. Please, install the following utils to avoid possible backup problems: '; +$wb["backup_missing_utils_txt"] = 'The following formats can not be used because they are not installed on the webserver: '; $wb["backup_compression_options_txt"] = 'Compression options'; -$wb["backup_encryption_note_txt"] = "Encryption is available only for the following backup formats: \"7z\", \"RAR\", \"zip\" (not secure). If any other format is used then encryption can't be applied and encryption settings are ignored. You can safely change the password at anytime: the \"Restore\" button will still work for old backups encrypted with a previous password. You don't need to type a password to restore backups using the \"Restore\" button. Password is required when you extract the archives manually. Please, don't forget your password, because it's impossible to restore it."; +$wb["backup_encryption_note_txt"] = "Encryption is only available for 7z, RAR, and zip (not secure)."; $wb["backup_encryption_options_txt"] = 'Encryption options'; $wb["backup_enable_encryption_txt"] = 'Enable encryption'; $wb["backup_password_txt"] = 'Password'; @@ -184,4 +183,8 @@ $wb["backup_format_tar_7z_lzma_txt"] = 'tar + 7z (LZMA)'; $wb["backup_format_tar_7z_lzma2_txt"] = 'tar + 7z (LZMA2)'; $wb["backup_format_tar_7z_ppmd_txt"] = 'tar + 7z (PPMd)'; $wb["backup_format_tar_7z_bzip2_txt"] = 'tar + 7z (BZip2)'; +$wb['error_ipv4_change_forbidden'] = 'The IP cannot be changed. Please contact your administrator if you want to change the IPv4 address.'; +$wb['error_ipv6_change_forbidden'] = 'The IP cannot be changed. Please contact your administrator if you want to change the IPv6 address.'; +$wb['error_domain_change_forbidden'] = 'The domain name cannot be changed. Please contact your administrator if you want to change the domain name.'; +$wb['error_server_change_not_possible'] = 'The server cannot be changed.'; ?> 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 a24883881f1667c12e8f46483322ebc714d4e999..7cdf15947a5935773654b863c7f506ebd5acb26a 100644 --- a/interface/web/sites/lib/lang/tr_web_vhost_subdomain.lng +++ b/interface/web/sites/lib/lang/tr_web_vhost_subdomain.lng @@ -100,7 +100,7 @@ $wb['pm_min_spare_servers_error_regex'] = 'PHP-FPM pm.min_spare_servers deÄŸeri $wb['pm_max_spare_servers_error_regex'] = 'PHP-FPM pm.max_spare_servers deÄŸeri pozitif bir tamsayı olmalıdır.'; $wb['hd_quota_error_regex'] = 'Disk kotası geçersiz.'; $wb['traffic_quota_error_regex'] = 'Trafik kotası geçersiz.'; -$wb['fastcgi_php_version_txt'] = 'PHP Sürümü'; +$wb['server_php_id_txt'] = 'PHP Sürümü'; $wb['pm_txt'] = 'PHP-FPM Ä°ÅŸlem Yöneticisi'; $wb['pm_process_idle_timeout_txt'] = 'PHP-FPM pm.process_idle_timeout'; $wb['pm_max_requests_txt'] = 'PHP-FPM pm.max_requests'; diff --git a/interface/web/sites/lib/module.conf.php b/interface/web/sites/lib/module.conf.php index a9aefad9675cc3a8b52f6e45b569e1149b796384..775a704873ef4b2239f6c4e5f06b2cd691c269d8 100644 --- a/interface/web/sites/lib/module.conf.php +++ b/interface/web/sites/lib/module.conf.php @@ -157,33 +157,37 @@ if($app->auth->get_client_limit($userid, 'shell_user') != 0 or $app->auth->get_c } // APS menu -if($app->auth->get_client_limit($userid, 'aps') != 0) -{ - $items = array(); - - $items[] = array( 'title' => 'Available packages', - 'target' => 'content', - 'link' => 'sites/aps_availablepackages_list.php', - 'html_id' => 'aps_availablepackages_list'); - - $items[] = array( 'title' => 'Installed packages', - 'target' => 'content', - 'link' => 'sites/aps_installedpackages_list.php', - 'html_id' => 'aps_installedpackages_list'); - - - // Second menu group, available only for admins - if($_SESSION['s']['user']['typ'] == 'admin') - { - $items[] = array( 'title' => 'Update Packagelist', - 'target' => 'content', - 'link' => 'sites/aps_update_packagelist.php', - 'html_id' => 'aps_packagedetails_show'); - } - - $module['nav'][] = array( 'title' => 'APS Installer', - 'open' => 1, - 'items' => $items); +if($app->auth->get_client_limit($userid, 'aps') != 0) { + // read web config + $app->uses('getconf'); + $global_config = $app->getconf->get_global_config('sites'); + if($global_config['show_aps_menu'] == 'y') { + $items = array(); + + $items[] = array( 'title' => 'Available packages', + 'target' => 'content', + 'link' => 'sites/aps_availablepackages_list.php', + 'html_id' => 'aps_availablepackages_list'); + + $items[] = array( 'title' => 'Installed packages', + 'target' => 'content', + 'link' => 'sites/aps_installedpackages_list.php', + 'html_id' => 'aps_installedpackages_list'); + + + // Second menu group, available only for admins + if($_SESSION['s']['user']['typ'] == 'admin') + { + $items[] = array( 'title' => 'Update Packagelist', + 'target' => 'content', + 'link' => 'sites/aps_update_packagelist.php', + 'html_id' => 'aps_packagedetails_show'); + } + + $module['nav'][] = array( 'title' => 'APS Installer', + 'open' => 1, + 'items' => $items); + } } // Statistics menu diff --git a/interface/web/sites/templates/web_backup_list.htm b/interface/web/sites/templates/web_backup_list.htm index 95c51d0c15e9ebd885b1fbaa71ec472133874ce5..47c08d4413d8e7153045974467630618f10640c8 100644 --- a/interface/web/sites/templates/web_backup_list.htm +++ b/interface/web/sites/templates/web_backup_list.htm @@ -3,13 +3,15 @@ <button class="btn btn-default formbutton-default" type="button" onclick="ISPConfig.confirm_action('sites/web_vhost_domain_edit.php?id={tmpl_var name='parent_id'}&next_tab=backup&make_backup=web&','{tmpl_var name='make_backup_confirm_txt'}');">{tmpl_var name="make_backup_web_txt"}</button> <tmpl_if name="msg"> - <div id="OKMsg" class="tab-content bg-success text-success text-center"><p><tmpl_var name="msg"></p></div> + <br><br> + <div id="OKMsg" class="tab-content alert alert-success text-center"><p><tmpl_var name="msg"></p></div> </tmpl_if> <tmpl_if name="error"> - <div id="errorMsg" class="tab-content bg-danger text-danger text-center"> - <h4><tmpl_var name="error_txt"></h4> - <p><tmpl_var name="error"></p> - </div> + <br><br> + <div id="errorMsg" class="tab-content alert alert-danger text-center"> + <h4><tmpl_var name="error_txt"></h4> + <p><tmpl_var name="error"></p> + </div> </tmpl_if> <h3><tmpl_var name="list_head_txt"></h3> @@ -57,5 +59,5 @@ </tbody> </table> </div> - + </div> diff --git a/interface/web/sites/templates/web_vhost_domain_backup.htm b/interface/web/sites/templates/web_vhost_domain_backup.htm index 0228ae76bbc4ce80830038c714807697910b1b8f..222ae1e3c365af5463e556bbc6b552abf25d49a6 100644 --- a/interface/web/sites/templates/web_vhost_domain_backup.htm +++ b/interface/web/sites/templates/web_vhost_domain_backup.htm @@ -1,81 +1,104 @@ <tmpl_if name="config_error_msg"> -<div style="background: #ffdfdf; border: 1px solid #df7d7d; border-width: 1px 0; margin: 1.5em 0 1.5em 0; padding: 7px;"> - <p style="font-face:bold">{tmpl_var name='configuration_error_txt'}</p> - <div> - <div style="float:left;width:150px;">{tmpl_var name='config_error_tstamp'} : </div><div style="padding-left:150px;">{tmpl_var name='config_error_msg'}</div> - </div> -</div> + <div style="background: #ffdfdf; border: 1px solid #df7d7d; border-width: 1px 0; margin: 1.5em 0 1.5em 0; padding: 7px;"> + <p style="font-face:bold">{tmpl_var name='configuration_error_txt'}</p> + <div> + <div style="float:left;width:150px;">{tmpl_var name='config_error_tstamp'} : </div> + <div style="padding-left:150px;">{tmpl_var name='config_error_msg'}</div> + </div> + </div> </tmpl_if> - <div class="form-group"> - <label for="backup_interval" class="col-sm-3 control-label">{tmpl_var name='backup_interval_txt'}</label> - <div class="col-sm-9"><select name="backup_interval" id="backup_interval" class="form-control"> - {tmpl_var name='backup_interval'} - </select></div> - </div> - <div class="form-group"> - <label for="backup_copies" class="col-sm-3 control-label">{tmpl_var name='backup_copies_txt'}</label> - <div class="col-sm-9"><select name="backup_copies" id="backup_copies" class="form-control"> - {tmpl_var name='backup_copies'} - </select></div> - </div> - <div class="form-group"> - <label for="backup_excludes" class="col-sm-3 control-label">{tmpl_var name='backup_excludes_txt'}</label> - <div class="col-sm-6"><input type="text" name="backup_excludes" id="backup_excludes" value="{tmpl_var name='backup_excludes'}" class="form-control" /></div><div class="col-sm-3 input-sm"> {tmpl_var name='backup_excludes_note_txt'} - </div></div> - - <legend>{tmpl_var name='backup_compression_options_txt'}</legend> - <div class="tab-content"> - {tmpl_var name='backup_format_web_note_txt'} - </div> - <tmpl_if name="missing_utils"> - <div class="tab-content bg-warning text-warning"> - {tmpl_var name='backup_missing_utils_txt'} {tmpl_var name='missing_utils'} - </div> - </tmpl_if> - <div class="form-group"> - <label for="backup_format_web" class="col-sm-3 control-label">{tmpl_var name='backup_format_web_txt'}</label> - <div class="col-sm-9"> - <select name="backup_format_web" id="backup_format_web" class="form-control"> - {tmpl_var name='backup_format_web'} - </select> - </div> - </div> - <div class="form-group"> - <label for="backup_format_db" class="col-sm-3 control-label">{tmpl_var name='backup_format_db_txt'}</label> - <div class="col-sm-9"> - <select name="backup_format_db" id="backup_format_db" class="form-control"> - {tmpl_var name='backup_format_db'} - </select> - </div> - </div> - - <legend>{tmpl_var name='backup_encryption_options_txt'}</legend> - <div class="tab-content"> - {tmpl_var name='backup_encryption_note_txt'} - </div> - <div class="form-group"> - <label class="col-sm-3 control-label"> - {tmpl_var name='backup_enable_encryption_txt'} - </label> - <div class="col-sm-9"> - {tmpl_var name="backup_encrypt"} - </div> - </div> - <div class="form-group"> - <label for="backup_password" class="col-sm-3 control-label"> - {tmpl_var name='backup_password_txt'} - </label> - <div class="col-sm-9"> - <input type="text" name="backup_password" id="backup_password" value="{tmpl_var name='backup_password'}" class="form-control" /> - </div> - </div> - - {tmpl_var name='backup_records'} - - <input type="hidden" name="id" value="{tmpl_var name='id'}"> - <div class="clear"><div class="right"> - <button class="btn btn-default formbutton-success" type="button" value="{tmpl_var name='btn_save_txt'}" data-submit-form="pageForm" data-form-action="sites/web_vhost_domain_edit.php">{tmpl_var name='btn_save_txt'}</button> - <button class="btn btn-default formbutton-default" type="button" value="{tmpl_var name='btn_cancel_txt'}" data-load-content="sites/web_vhost_domain_list.php">{tmpl_var name='btn_cancel_txt'}</button> - </div></div> +<div class="form-group"> + <label for="backup_interval" class="col-sm-3 control-label">{tmpl_var name='backup_interval_txt'}</label> + <div class="col-sm-9"><select name="backup_interval" id="backup_interval" class="form-control"> + {tmpl_var name='backup_interval'} + </select> + </div> +</div> +<div class="form-group"> + <label for="backup_copies" class="col-sm-3 control-label">{tmpl_var name='backup_copies_txt'}</label> + <div class="col-sm-9"><select name="backup_copies" id="backup_copies" class="form-control"> + {tmpl_var name='backup_copies'} + </select> + </div> +</div> +<div class="form-group"> + <label for="backup_excludes" class="col-sm-3 control-label">{tmpl_var name='backup_excludes_txt'}</label> + <div class="col-sm-6"><input type="text" name="backup_excludes" id="backup_excludes" value="{tmpl_var name='backup_excludes'}" class="form-control" /></div> + <div class="col-sm-3 input-sm"> {tmpl_var name='backup_excludes_note_txt'} + </div> +</div> +<br> +<div class="panel panel-default"> + <div class="panel-heading" role="tab" id="headingCompression"> + <h4 class="panel-title"> + <a class="collapsed" role="button" data-toggle="collapse" data-parent="#accordion" href="#collapseCompression" aria-expanded="false" aria-controls="collapseCompression"> + {tmpl_var name='backup_compression_options_txt'} + </a> + </h4> + </div> + <div id="collapseCompression" class="panel-collapse collapse" role="tabpanel" aria-labelledby="headingCompression"> + <div class="panel-body"> + <tmpl_if name="missing_utils"> + <div class="tab-content alert alert-warning"> + {tmpl_var name='backup_missing_utils_txt'} {tmpl_var name='missing_utils'} + </div> + </tmpl_if> + <div class="form-group"> + <label for="backup_format_web" class="col-sm-3 control-label">{tmpl_var name='backup_format_web_txt'}</label> + <div class="col-sm-9"> + <select name="backup_format_web" id="backup_format_web" class="form-control"> + {tmpl_var name='backup_format_web'} + </select> + </div> + </div> + <div class="form-group"> + <label for="backup_format_db" class="col-sm-3 control-label">{tmpl_var name='backup_format_db_txt'}</label> + <div class="col-sm-9"> + <select name="backup_format_db" id="backup_format_db" class="form-control"> + {tmpl_var name='backup_format_db'} + </select> + </div> + </div> + </div> + </div> + <div class="panel-heading" role="tab" id="headingEncryption"> + <h4 class="panel-title"> + <a class="collapsed" role="button" data-toggle="collapse" data-parent="#accordion" href="#collapseEncryption" aria-expanded="false" aria-controls="collapseEncryption"> + {tmpl_var name='backup_encryption_options_txt'} + </a> + </h4> + </div> + <div id="collapseEncryption" class="panel-collapse collapse" role="tabpanel" aria-labelledby="headingEncryption"> + <div class="panel-body"> + <div class="alert alert-info"> + {tmpl_var name='backup_encryption_note_txt'} + </div> + <div class="form-group"> + <label class="col-sm-3 control-label"> + {tmpl_var name='backup_enable_encryption_txt'} + </label> + <div class="col-sm-9"> + {tmpl_var name="backup_encrypt"} + </div> + </div> + <div class="form-group"> + <label for="backup_password" class="col-sm-3 control-label"> + {tmpl_var name='backup_password_txt'} + </label> + <div class="col-sm-9"> + <input type="text" name="backup_password" id="backup_password" value="{tmpl_var name='backup_password'}" class="form-control" /> + </div> + </div> + </div> + </div> +</div> +{tmpl_var name='backup_records'} +<input type="hidden" name="id" value="{tmpl_var name='id'}"> +<div class="clear"> + <div class="right"> + <button class="btn btn-default formbutton-success" type="button" value="{tmpl_var name='btn_save_txt'}" data-submit-form="pageForm" data-form-action="sites/web_vhost_domain_edit.php">{tmpl_var name='btn_save_txt'}</button> + <button class="btn btn-default formbutton-default" type="button" value="{tmpl_var name='btn_cancel_txt'}" data-load-content="sites/web_vhost_domain_list.php">{tmpl_var name='btn_cancel_txt'}</button> + </div> +</div> diff --git a/interface/web/sites/templates/web_vhost_domain_edit.htm b/interface/web/sites/templates/web_vhost_domain_edit.htm index e39b889d4ce9abbcebf10b60b5c9592c7815844f..8728d9c571b038f7201363c00c20adbfef19859e 100644 --- a/interface/web/sites/templates/web_vhost_domain_edit.htm +++ b/interface/web/sites/templates/web_vhost_domain_edit.htm @@ -221,14 +221,14 @@ {tmpl_var name='php'} </select></div> </div> - {tmpl_hook name="field_fastcgi_php_version"} - <div class="form-group fastcgi_php_version"> - <label for="fastcgi_php_version" class="col-sm-3 control-label">{tmpl_var name='fastcgi_php_version_txt'}</label> - <div class="col-sm-9"><select name="fastcgi_php_version" id="fastcgi_php_version" class="form-control"> - {tmpl_var name='fastcgi_php_version'} + {tmpl_hook name="field_server_php_id"} + <div class="form-group server_php_id"> + <label for="server_php_id" class="col-sm-3 control-label">{tmpl_var name='server_php_id_txt'}</label> + <div class="col-sm-9"><select name="server_php_id" id="server_php_id" class="form-control"> + {tmpl_var name='server_php_id'} </select></div> - <tmpl_if name="fastcgi_php_version_default_hidden_warning_confirmed"> - <input type="hidden" id="fastcgi_php_version_default_hidden_warning_confirmed" name="fastcgi_php_version_default_hidden_warning_confirmed" value="{tmpl_var name='fastcgi_php_version_default_hidden_warning_confirmed'}" /> + <tmpl_if name="server_php_id_default_hidden_warning_confirmed"> + <input type="hidden" id="server_php_id_default_hidden_warning_confirmed" name="server_php_id_default_hidden_warning_confirmed" value="{tmpl_var name='server_php_id_default_hidden_warning_confirmed'}" /> </tmpl_if> </div> <tmpl_if name="limit_directive_snippets" op="==" value="y"><div class="form-group"> @@ -280,46 +280,56 @@ serverId = $(this).val(); adjustForm(); reloadWebIP(); - reloadFastcgiPHPVersions(); + reloadServerPHPVersions(); reloadDirectiveSnippets(); }); } adjustForm(true); - reloadFastcgiPHPVersions(true); + reloadServerPHPVersions(true); jQuery('#client_group_id').change(function(){ clientGroupId = $(this).val(); reloadWebIP(); - reloadFastcgiPHPVersions(); + reloadServerPHPVersions(); }); if(jQuery('#php').val() == 'fast-cgi' || jQuery('#php').val() == 'php-fpm' || (jQuery('#php').val() == 'hhvm' && serverType == 'nginx')){ - jQuery('.fastcgi_php_version:hidden').show(); + jQuery('.server_php_id:hidden').show(); + // This block can be removed? if(jQuery('#php').val() == 'hhvm'){ - jQuery('#fastcgi_php_version_txt').hide(); + // There is no element with id="server_php_id_txt" + jQuery('#server_php_id_txt').hide(); + // There is no element with id="#fastcgi_php_fallback_version_txt" jQuery('#fastcgi_php_fallback_version_txt').show(); } else { - jQuery('#fastcgi_php_version_txt').show(); + // There is no element with id="server_php_id_txt" + jQuery('#server_php_id_txt').show(); + // There is no element with id="#fastcgi_php_fallback_version_txt" jQuery('#fastcgi_php_fallback_version_txt').hide(); } } else { - jQuery('.fastcgi_php_version:visible').hide(); + jQuery('.server_php_id:visible').hide(); } //ISPConfig.resetFormChanged(); jQuery('#php').change(function(){ - reloadFastcgiPHPVersions(); + reloadServerPHPVersions(); if(jQuery(this).val() == 'fast-cgi' || jQuery(this).val() == 'php-fpm' || (jQuery(this).val() == 'hhvm' && serverType == 'nginx')){ - jQuery('.fastcgi_php_version:hidden').show(); + jQuery('.server_php_id:hidden').show(); + // This block can be removed? if(jQuery(this).val() == 'hhvm'){ - jQuery('#fastcgi_php_version_txt').hide(); + // There is no element with id="server_php_id_txt" + jQuery('#server_php_id_txt').hide(); + // There is no element with id="#fastcgi_php_fallback_version_txt" jQuery('#fastcgi_php_fallback_version_txt').show(); } else { - jQuery('#fastcgi_php_version_txt').show(); + // There is no element with id="server_php_id_txt" + jQuery('#server_php_id_txt').show(); + // There is no element with id="#fastcgi_php_fallback_version_txt" jQuery('#fastcgi_php_fallback_version_txt').hide(); } } else { - jQuery('.fastcgi_php_version:visible').hide(); + jQuery('.server_php_id:visible').hide(); } }); jQuery('#parent_domain_id').change(function() { @@ -348,7 +358,7 @@ jQuery.getJSON('sites/ajax_get_json.php'+ '?' + Math.round(new Date().getTime()), {web_id : parentWebId, type : "getserverid"}, function(data) { if(data.serverid) serverId = data.serverid; adjustForm(noFormChange); - if(noFormChange) reloadFastcgiPHPVersions(noFormChange); + if(noFormChange) reloadServerPHPVersions(noFormChange); }); } @@ -438,34 +448,34 @@ $('#'+elem).select2(); } - function reloadFastcgiPHPVersions(noFormChange) { - jQuery.getJSON('sites/ajax_get_json.php'+ '?' + Math.round(new Date().getTime()), {server_id : serverId, php_type : jQuery('#php').val(), type : "getphpfastcgi", client_group_id : clientGroupId}, function(data) { + function reloadServerPHPVersions(noFormChange) { + jQuery.getJSON('sites/ajax_get_json.php'+ '?' + Math.round(new Date().getTime()), {server_id : serverId, php_type : jQuery('#php').val(), type : "getserverphp", client_group_id : clientGroupId}, function(data) { //var options = '<option value="">Default</option>'; var options = ''; - var phpfastcgiselected = ''; + var serverphpidselected = ''; $.each(data, function(key, val) { <tmpl_if name="id"> - if($('#fastcgi_php_version').val() == key){ - phpfastcgiselected = ' selected="selected"'; + if($('#server_php_id').val() == key){ + serverphpidselected = ' selected="selected"'; } else { - phpfastcgiselected = ''; + serverphpidselected = ''; } </tmpl_else> - phpfastcgiselected = ''; + serverphpidselected = ''; </tmpl_if> - options += '<option value="'+key+'"'+phpfastcgiselected+'>'+val+'</option>'; + options += '<option value="'+key+'"'+serverphpidselected+'>'+val+'</option>'; }); <tmpl_if name="id"> - if($('#fastcgi_php_version').val() == ''){ - phpfastcgiselected = ' selected="selected"'; + if($('#server_php_id').val() == '0'){ + serverphpidselected = ' selected="selected"'; } else { - phpfastcgiselected = ''; + serverphpidselected = ''; } </tmpl_else> - phpfastcgiselected = ''; + serverphpidselected = ''; </tmpl_if> - //options += '<option value=""'+phpfastcgiselected+'>{tmpl_var name="default_php_txt"}</option>'; - $('#fastcgi_php_version').html(options).change(); + //options += '<option value=""'+serverphpidselected+'>{tmpl_var name="default_php_txt"}</option>'; + $('#server_php_id').html(options).change(); if(noFormChange) ISPConfig.resetFormChanged(); }); } diff --git a/interface/web/sites/web_vhost_domain_edit.php b/interface/web/sites/web_vhost_domain_edit.php index 0d770476d12bdea9b93a8f3b27aafde60fcf35d5..b6f2ac5fa822400471d177a2a4f4b7060f38df1a 100644 --- a/interface/web/sites/web_vhost_domain_edit.php +++ b/interface/web/sites/web_vhost_domain_edit.php @@ -258,20 +258,15 @@ class page_action extends tform_actions { } } if (empty($web_config['php_default_hide']) || 'n' === $web_config['php_default_hide']) { - $php_select = "<option value=''>".$app->functions->htmlentities($web_config['php_default_name'])."</option>"; + $php_select = "<option value='0'>".$app->functions->htmlentities($web_config['php_default_name'])."</option>"; } if(is_array($php_records) && !empty($php_records)) { foreach( $php_records as $php_record) { - if($this->dataRecord['php'] == 'php-fpm' || ($this->dataRecord['php'] == 'hhvm' && $server_type == 'nginx')){ - $php_version = $php_record['name'].':'.$php_record['php_fpm_init_script'].':'.$php_record['php_fpm_ini_dir'].':'.$php_record['php_fpm_pool_dir']; - } else { - $php_version = $php_record['name'].':'.$php_record['php_fastcgi_binary'].':'.$php_record['php_fastcgi_ini_dir']; - } - $selected = ($php_version == $this->dataRecord["fastcgi_php_version"])?'SELECTED':''; - $php_select .= "<option value='" . $app->functions->htmlentities($php_version) . "' $selected>".$app->functions->htmlentities($php_record['name'])."</option>\r\n"; + $selected = ($php_record['server_php_id'] == $this->dataRecord["server_php_id"])?'SELECTED':''; + $php_select .= "<option value='" . $php_record['server_php_id'] . "' $selected>".$app->functions->htmlentities($php_record['name'])."</option>\r\n"; } } - $app->tpl->setVar("fastcgi_php_version", $php_select); + $app->tpl->setVar("server_php_id", $php_select); unset($php_records); // add limits to template to be able to hide settings @@ -406,20 +401,15 @@ class page_action extends tform_actions { } } if (empty($web_config['php_default_hide']) || 'n' === $web_config['php_default_hide']) { - $php_select = "<option value=''>".$app->functions->htmlentities($web_config['php_default_name'])."</option>"; + $php_select = "<option value='0'>".$app->functions->htmlentities($web_config['php_default_name'])."</option>"; } if(is_array($php_records) && !empty($php_records)) { foreach( $php_records as $php_record) { - if($this->dataRecord['php'] == 'php-fpm' || ($this->dataRecord['php'] == 'hhvm' && $server_type == 'nginx')){ - $php_version = $php_record['name'].':'.$php_record['php_fpm_init_script'].':'.$php_record['php_fpm_ini_dir'].':'.$php_record['php_fpm_pool_dir']; - } else { - $php_version = $php_record['name'].':'.$php_record['php_fastcgi_binary'].':'.$php_record['php_fastcgi_ini_dir']; - } - $selected = ($php_version == $this->dataRecord["fastcgi_php_version"])?'SELECTED':''; - $php_select .= "<option value='" . $app->functions->htmlentities($php_version) . "' $selected>".$app->functions->htmlentities($php_record['name'])."</option>\r\n"; + $selected = ($php_record['server_php_id'] == $this->dataRecord["server_php_id"])?'SELECTED':''; + $php_select .= "<option value='" . $php_record['server_php_id'] . "' $selected>".$app->functions->htmlentities($php_record['name'])."</option>\r\n"; } } - $app->tpl->setVar("fastcgi_php_version", $php_select); + $app->tpl->setVar("server_php_id", $php_select); unset($php_records); // add limits to template to be able to hide settings @@ -628,20 +618,15 @@ class page_action extends tform_actions { } } if (empty($web_config['php_default_hide']) || 'n' === $web_config['php_default_hide']) { - $php_select = "<option value=''>".$app->functions->htmlentities($web_config['php_default_name'])."</option>"; + $php_select = "<option value='0'>".$app->functions->htmlentities($web_config['php_default_name'])."</option>"; } if(is_array($php_records) && !empty($php_records)) { foreach( $php_records as $php_record) { - if($this->dataRecord['php'] == 'php-fpm' || ($this->dataRecord['php'] == 'hhvm' && $server_type == 'nginx')){ - $php_version = $php_record['name'].':'.$php_record['php_fpm_init_script'].':'.$php_record['php_fpm_ini_dir'].':'.$php_record['php_fpm_pool_dir']; - } else { - $php_version = $php_record['name'].':'.$php_record['php_fastcgi_binary'].':'.$php_record['php_fastcgi_ini_dir']; - } - $selected = ($php_version == $this->dataRecord["fastcgi_php_version"])?'SELECTED':''; - $php_select .= "<option value='" . $app->functions->htmlentities($php_version) . "' $selected>".$app->functions->htmlentities($php_record['name'])."</option>\r\n"; + $selected = ($php_record['server_php_id'] == $this->dataRecord["server_php_id"])?'SELECTED':''; + $php_select .= "<option value='" . $php_record['server_php_id'] . "' $selected>".$app->functions->htmlentities($php_record['name'])."</option>\r\n"; } } - $app->tpl->setVar("fastcgi_php_version", $php_select); + $app->tpl->setVar("server_php_id", $php_select); unset($php_records); foreach($read_limits as $limit) $app->tpl->setVar($limit, ($limit == 'force_suexec' ? 'n' : 'y')); @@ -1030,11 +1015,7 @@ class page_action extends tform_actions { $this->dataRecord['web_folder'] = strtolower($this->dataRecord['web_folder']); if(substr($this->dataRecord['web_folder'], 0, 1) === '/') $this->dataRecord['web_folder'] = substr($this->dataRecord['web_folder'], 1); if(substr($this->dataRecord['web_folder'], -1) === '/') $this->dataRecord['web_folder'] = substr($this->dataRecord['web_folder'], 0, -1); - $forbidden_folders = array('', 'cgi-bin', 'log', 'private', 'ssl', 'tmp', 'webdav'); - $check_folder = strtolower($this->dataRecord['web_folder']); - if(substr($check_folder, 0, 1) === '/') $check_folder = substr($check_folder, 1); // strip / at beginning to check against forbidden entries - if(strpos($check_folder, '/') !== false) $check_folder = substr($check_folder, 0, strpos($check_folder, '/')); // get the first part of the path to check it - if(in_array($check_folder, $forbidden_folders)) { + if($app->system->is_blacklisted_web_path($this->dataRecord['web_folder'])) { $app->tform->errorMessage .= $app->tform->lng("web_folder_invalid_txt")."<br>"; } @@ -1208,6 +1189,9 @@ class page_action extends tform_actions { //* make sure that the domain is lowercase if(isset($this->dataRecord["domain"])) $this->dataRecord["domain"] = strtolower($this->dataRecord["domain"]); + //* server_id must be > 0 + if(isset($this->dataRecord["server_id"]) && $this->dataRecord["server_id"] < 1) $app->tform->errorMessage .= $app->lng("server_id_0_error_txt"); + //* get the server config for this server $app->uses("getconf"); if($this->id > 0){ @@ -1349,28 +1333,24 @@ class page_action extends tform_actions { } // Check custom PHP version - if(isset($this->dataRecord['fastcgi_php_version']) && $this->dataRecord['fastcgi_php_version'] != '') { + if(isset($this->dataRecord['server_php_id']) && $this->dataRecord['server_php_id'] != 0) { // Check php-fpm mode if($this->dataRecord['php'] == 'php-fpm'){ - $tmp = $app->db->queryOneRecord("SELECT * FROM server_php WHERE active = 'y' AND CONCAT(name,':',php_fpm_init_script,':',php_fpm_ini_dir,':',php_fpm_pool_dir) = '".$app->db->quote($this->dataRecord['fastcgi_php_version'])."'"); - if(is_array($tmp)) { - $this->dataRecord['fastcgi_php_version'] = $tmp['name'].':'.$tmp['php_fpm_init_script'].':'.$tmp['php_fpm_ini_dir'].':'.$tmp['php_fpm_pool_dir']; - } else { - $this->dataRecord['fastcgi_php_version'] = ''; + $tmp = $app->db->queryOneRecord("SELECT * FROM server_php WHERE active = 'y' AND server_php_id = ?", $this->dataRecord['server_php_id']); + if(!is_array($tmp) || !$tmp['php_fpm_init_script']) { + $this->dataRecord['server_php_id'] = 0; } unset($tmp); // Check fast-cgi mode } elseif($this->dataRecord['php'] == 'fast-cgi') { - $tmp = $app->db->queryOneRecord("SELECT * FROM server_php WHERE active = 'y' AND CONCAT(name,':',php_fastcgi_binary,':',php_fastcgi_ini_dir) = '".$app->db->quote($this->dataRecord['fastcgi_php_version'])."'"); - if(is_array($tmp)) { - $this->dataRecord['fastcgi_php_version'] = $tmp['name'].':'.$tmp['php_fastcgi_binary'].':'.$tmp['php_fastcgi_ini_dir']; - } else { - $this->dataRecord['fastcgi_php_version'] = ''; + $tmp = $app->db->queryOneRecord("SELECT * FROM server_php WHERE active = 'y' AND server_php_id = ?", $this->dataRecord['server_php_id']); + if(!is_array($tmp) || !$tmp['php_fastcgi_binary']) { + $this->dataRecord['server_php_id'] = 0; } unset($tmp); } else { - // Other PHP modes do not have custom versions, so we force the value to be empty - $this->dataRecord['fastcgi_php_version'] = ''; + // Other PHP modes do not have custom versions, so we force the value to be zero + $this->dataRecord['server_php_id'] = 0; } } @@ -1399,11 +1379,19 @@ class page_action extends tform_actions { function onAfterInsert() { global $app, $conf; - // make sure that the record belongs to the clinet group and not the admin group when admin inserts it - // also make sure that the user can not delete domain created by a admin + // make sure that the record belongs to the client group and not the admin group when admin inserts it + // also make sure that the user can not delete domain created by a admin if client protection is enabled if($_SESSION["s"]["user"]["typ"] == 'admin' && isset($this->dataRecord["client_group_id"])) { $client_group_id = $app->functions->intval($this->dataRecord["client_group_id"]); - $app->db->query("UPDATE web_domain SET sys_groupid = ?, sys_perm_group = 'ru' WHERE domain_id = ?", $client_group_id, $this->id); + $app->uses('getconf'); + $global_config = $app->getconf->get_global_config('sites'); + if($global_config['client_protection'] == 'y') { + $app->db->query("UPDATE web_domain SET sys_groupid = ?, sys_perm_group = 'ru' WHERE domain_id = ?", $client_group_id, $this->id); + } else { + $sysuser = $app->db->queryOneRecord('SELECT userid FROM sys_user WHERE default_group = ?',$client_group_id); + $sysuser_id = (is_array($sysuser) && isset($sysuser['userid']) && $sysuser['userid'] > 0)?$sysuser['userid']:1; + $app->db->query("UPDATE web_domain SET sys_userid = ?, sys_groupid = ?, sys_perm_group = 'riud' WHERE domain_id = ?", $sysuser_id, $client_group_id, $this->id); + } } if($app->auth->has_clients($_SESSION['s']['user']['userid']) && isset($this->dataRecord["client_group_id"])) { $client_group_id = $app->functions->intval($this->dataRecord["client_group_id"]); @@ -1502,7 +1490,7 @@ class page_action extends tform_actions { $rec = $app->db->queryOneRecord("SELECT server_id from web_domain WHERE domain_id = ?", $this->id); if($rec['server_id'] != $this->dataRecord["server_id"]) { //* Add a error message and switch back to old server - $app->tform->errorMessage .= $app->lng('The Server can not be changed.'); + $app->tform->errorMessage .= $app->lng('error_server_change_not_possible'); $this->dataRecord["server_id"] = $rec['server_id']; } unset($rec); @@ -1513,17 +1501,17 @@ class page_action extends tform_actions { $rec = $app->db->queryOneRecord("SELECT sys_perm_group, domain, ip_address, ipv6_address from web_domain WHERE domain_id = ?", $this->id); if(isset($this->dataRecord["domain"]) && $rec['domain'] != $this->dataRecord["domain"] && !$app->tform->checkPerm($this->id, 'u')) { //* Add a error message and switch back to old server - $app->tform->errorMessage .= $app->lng('The Domain can not be changed. Please ask your Administrator if you want to change the domain name.'); + $app->tform->errorMessage .= $app->lng('error_domain_change_forbidden'); $this->dataRecord["domain"] = $rec['domain']; } if(isset($this->dataRecord["ip_address"]) && $rec['ip_address'] != $this->dataRecord["ip_address"] && $rec['sys_perm_group'] != 'riud') { //* Add a error message and switch back to old server - $app->tform->errorMessage .= $app->lng('The IP can not be changed. Please ask your Administrator if you want to change the IPv4-Address.'); + $app->tform->errorMessage .= $app->lng('error_ipv4_change_forbidden'); $this->dataRecord["ip_address"] = $rec['ip_address']; } if(isset($this->dataRecord["ipv6_address"]) && $rec['ipv6_address'] != $this->dataRecord["ipv6_address"] && $rec['sys_perm_group'] != 'riud') { //* Add a error message and switch back to old server - $app->tform->errorMessage .= $app->lng('The IP can not be changed. Please ask your Administrator if you want to change the IPv6-Address.'); + $app->tform->errorMessage .= $app->lng('error_ipv6_change_forbidden'); $this->dataRecord["ipv6_address"] = $rec['ipv6_address']; } unset($rec); @@ -1564,27 +1552,27 @@ class page_action extends tform_actions { // The default PHP version is indicated by an empty string, so if the default PHP version is hidden // then an empty string is not a valid PHP version. - if (empty($this->dataRecord['fastcgi_php_version'])) { - $app->tform->errorMessage .= sprintf('%s<br>', $app->tform->lng('fastcgi_php_version_invalid_txt')); + if (empty($this->dataRecord['server_php_id'])) { + $app->tform->errorMessage .= sprintf('%s<br>', $app->tform->lng('server_php_id_invalid_txt')); return; } // If the default PHP version is now hidden but this vhost was using it, we don't want to implicitly // switch the user to some random Additional PHP version. So we show a warning instead. - $old_fastcgi_php_version = null; + $old_server_php_id = null; if ($this->id > 0) { - $existing = $app->db->queryOneRecord('SELECT fastcgi_php_version FROM web_domain WHERE domain_id = ?', $this->id); - $old_fastcgi_php_version = $existing['fastcgi_php_version']; + $existing = $app->db->queryOneRecord('SELECT server_php_id FROM web_domain WHERE domain_id = ?', $this->id); + $old_server_php_id = $existing['server_php_id']; } - if ('' === $old_fastcgi_php_version) { + if ('' === $old_server_php_id) { // Warning was already shown, user confirmed the new PHP version - if (!empty($_POST['fastcgi_php_version_default_hidden_warning_confirmed'])) { + if (!empty($_POST['server_php_id_default_hidden_warning_confirmed'])) { return; } - $app->tform->errorMessage .= sprintf('%s<br>', $app->tform->lng('fastcgi_php_version_default_hidden_warning_txt')); - $app->tpl->setVar('fastcgi_php_version_default_hidden_warning_confirmed', 1); + $app->tform->errorMessage .= sprintf('%s<br>', $app->tform->lng('server_php_id_default_hidden_warning_txt')); + $app->tpl->setVar('server_php_id_default_hidden_warning_confirmed', 1); } } } diff --git a/interface/web/themes/default/assets/javascripts/ispconfig.js b/interface/web/themes/default/assets/javascripts/ispconfig.js index 70e3a903a65dbf44576868151101c19015858bfd..e3a2bee3688d9144d82421c1464529ec0a973211 100644 --- a/interface/web/themes/default/assets/javascripts/ispconfig.js +++ b/interface/web/themes/default/assets/javascripts/ispconfig.js @@ -9,30 +9,30 @@ var ISPConfig = { registeredHooks: new Array(), new_tpl_add_id: 0, dataLogTimer: 0, - + options: { useLoadIndicator: false, useComboBox: false }, - + setOption: function(key, value) { ISPConfig.options[key] = value; }, - + setOptions: function(opts) { $.extend(ISPConfig.options, opts); }, - + reportError: function(request) { - + }, - + registerHook: function(name, callback) { if(!ISPConfig.registeredHooks[name]) ISPConfig.registeredHooks[name] = new Array(); var newindex = ISPConfig.registeredHooks[name].length; ISPConfig.registeredHooks[name][newindex] = callback; }, - + callHook: function(name, params) { if(!ISPConfig.registeredHooks[name]) return; for(var i = 0; i < ISPConfig.registeredHooks[name].length; i++) { @@ -40,14 +40,14 @@ var ISPConfig = { callback(name, params); } }, - + resetFormChanged: function() { ISPConfig.pageFormChanged = false; }, showLoadIndicator: function() { document.body.style.cursor = 'wait'; - + if(ISPConfig.options.useLoadIndicator == true) { ISPConfig.requestsRunning += 1; @@ -96,7 +96,7 @@ var ISPConfig = { onAfterContentLoad: function(url, data) { if(!data) data = ''; else data = '&' + data; - + if(ISPConfig.options.useComboBox == true) { $('#pageContent').find("select:not(.chosen-select)").select2({ placeholder: '', @@ -119,7 +119,7 @@ var ISPConfig = { } }); } - + $('input[data-input-element="date"]').datetimepicker({ 'language': 'en', // TODO 'todayHighlight': true, @@ -144,18 +144,18 @@ var ISPConfig = { $(this).prop('readonly', true) .tooltip({title: "Click to set", placement: "left"}); }); - $('input[type="password"]').on('click focus', function() { + $('input[type="password"]').on('click focus', function() { $(this).prop('readonly', false); $(this).tooltip('destroy'); }); - + ISPConfig.callHook('onAfterContentLoad', {'url': url, 'data': data }); }, submitForm: function(formname, target, confirmation) { var successMessage = arguments[3]; if(!confirmation) confirmation = false; - + if(!confirmation || window.confirm(confirmation)) { var submitFormObj = $.ajax({ type: "POST", @@ -210,12 +210,12 @@ var ISPConfig = { if(errormsg){ msg = msg+'<div id="errorMsg">'+errormsg+'</div>'; } - + var csrf_key = $response.find('input[name="_csrf_key"]').val(); var csrf_id = $response.find('input[name="_csrf_id"]').val(); - + msg = msg + '<input type="hidden" name="_csrf_id" value="' + csrf_id + '" /><input type="hidden" name="_csrf_key" value="' + csrf_key + '" />'; - + return msg; }; @@ -264,7 +264,7 @@ var ISPConfig = { } }); }, - + loadContent: function(pagename) { var params = arguments[1]; var pageContentObject2 = $.ajax({ @@ -350,7 +350,7 @@ var ISPConfig = { ISPConfig.reportError('Ajax Request was not successful. 114'); } }); - + ISPConfig.loadMenus(); ISPConfig.keepalive(); ISPConfig.dataLogNotification(); @@ -358,11 +358,11 @@ var ISPConfig = { try { $('form#pageForm').find('input[name="username"]').focus(); } catch (e) { - + } }, 1000); }, - + loadMenus: function() { var sideNavObject = $.ajax({ type: "GET", @@ -409,7 +409,7 @@ var ISPConfig = { console.log('tab change interrupted, request still running.'); return false; } - + document.pageForm.next_tab.value = tab; var idel = $('form#pageForm').find('[name="id"]'); @@ -487,7 +487,7 @@ var ISPConfig = { } }); }, - + keepalive: function() { var pageContentObject3 = $.ajax({ type: "GET", @@ -618,13 +618,13 @@ $(document).on('click', 'a[data-load-content],button[data-load-content]', functi console.log('preventing click because there is still a request running.'); return; } - + $page.on('scroll mousedown wheel DOMMouseScroll mousewheel keyup touchmove', function() { $page.stop(); }); $page.animate({scrollTop: 0}, 1000, function() { $page.off('scroll mousedown wheel DOMMouseScroll mousewheel keyup touchmove', function() { $page.stop(); }); }); - + var content_to_load = $(this).attr('data-load-content'); if(!content_to_load) return this; - + ISPConfig.loadContent(content_to_load); }); @@ -634,13 +634,13 @@ $(document).on('click', 'a[data-capp],button[data-capp]', function(e) { console.log('preventing click because there is still a request running.'); return; } - + $page.on('scroll mousedown wheel DOMMouseScroll mousewheel keyup touchmove', function() { $page.stop(); }); $page.animate({scrollTop: 0}, 1000, function() { $page.off('scroll mousedown wheel DOMMouseScroll mousewheel keyup touchmove', function() { $page.stop(); }); }); - + var content_to_load = $(this).attr('data-capp'); if(!content_to_load) return this; - + ISPConfig.capp(content_to_load); }); @@ -650,14 +650,14 @@ $(document).on('click', 'a[data-submit-form],button[data-submit-form]', function console.log('preventing click because there is still a request running.'); return; } - + $page.on('scroll mousedown wheel DOMMouseScroll mousewheel keyup touchmove', function() { $page.stop(); }); $page.animate({scrollTop: 0}, 1000, function() { $page.off('scroll mousedown wheel DOMMouseScroll mousewheel keyup touchmove', function() { $page.stop(); }); }); - + var $el = $(this); var act = $el.attr('data-form-action'); var form = $el.attr('data-submit-form'); - + if($el.attr('data-form-upload') == 'true') ISPConfig.submitUploadForm(form, act); else ISPConfig.submitForm(form, act); }); @@ -679,28 +679,28 @@ $(document).on('click', 'th[data-column]', function(e) { var $self = $(this); var column = $self.attr('data-column'); if(!column) return this; - + if($("#pageForm .table #Filter").length > 0 && $self.attr('data-sortable') != 'false') { var $el = $('#Filter'); var act = $el.attr('data-form-action'); var form = $el.attr('data-submit-form'); - + var dir = $self.attr('data-ordered'); - + var separator = '?'; if(act.indexOf("?") >= 0){ separator = '&'; } act = act + separator + 'orderby=' + column; ISPConfig.submitForm(form, act); - + $(document).ajaxComplete(function() { var $self = $('#pageForm .table th[data-column="' + column + '"]'); $self.parent().children('th[data-column]').removeAttr('data-ordered'); if(dir && dir == 'asc') $self.attr('data-ordered', 'desc'); else $self.attr('data-ordered', 'asc'); }); - + } }); @@ -765,25 +765,23 @@ $(document).on('ready', function () { }) } }); - + // Animierter Ladefortschritt $('.progress .progress-bar').css('width', function () { return $(this).attr('aria-valuenow') + '%'; }); - - ISPConfig.loadInitContent(); $('#searchform').submit(function(e) { e.preventDefault(); }); - + $("#pageForm").submit(function(e){ //Prevent form submit: e.preventDefault() in lists if ($("#pageForm .table #Filter").length > 0) { e.preventDefault(); } }); - + $.fn.setCursorPosition = function(pos) { var self = $(this).get(0); if(self.setSelectionRange) { @@ -799,11 +797,11 @@ $(document).on('ready', function () { range.select(); } }; - + $.fn.getCursorPosition = function() { var iCaretPos = 0; var self = $(this).get(0); - + if(typeof self.selectionStart === 'number') { iCaretPos = self.selectionDirection == 'backward' ? self.selectionStart : self.selectionEnd; } else if(document.selection) { @@ -815,4 +813,3 @@ $(document).on('ready', function () { return iCaretPos; }; }); - diff --git a/interface/web/themes/default/templates/main.tpl.htm b/interface/web/themes/default/templates/main.tpl.htm index 4cc88760bb33f3f4db9de9a5daf6b7a43b3a0eb7..39622548aa70e6a33e9b40c6713e4e5393a9c213 100644 --- a/interface/web/themes/default/templates/main.tpl.htm +++ b/interface/web/themes/default/templates/main.tpl.htm @@ -58,9 +58,9 @@ <div> <div> <div class='input-group'> - <input id='globalsearch' type='text' class='form-control' placeholder='Search' /> + <input id='globalsearch' type='text' class='form-control' placeholder='{tmpl_var name="globalsearch_searchfield_watermark_txt"}' /> <span class='input-group-btn'> - <button class='btn btn-default' title='Search…'> + <button class='btn btn-default' title='{tmpl_var name="globalsearch_searchfield_watermark_txt"}'> <span class='icon icon-lens'></span> </button> </span> @@ -90,7 +90,7 @@ </ul> </div> <div class="modal-footer"> - <button type="button" class="btn btn-default" data-dismiss="modal">Close</button> + <button type="button" class="btn btn-default" data-dismiss="modal">{tmpl_var name="datalog_changes_close_txt"}</button> </div> </div> </div> @@ -153,6 +153,8 @@ resultBoxPosition: '' }); + ISPConfig.loadInitContent(); + }); //--> </script> diff --git a/interface/web/tools/form/interface_settings.tform.php b/interface/web/tools/form/interface_settings.tform.php deleted file mode 100644 index 05eaba941655e0bbb4adac4e4c6e87188ec84694..0000000000000000000000000000000000000000 --- a/interface/web/tools/form/interface_settings.tform.php +++ /dev/null @@ -1,189 +0,0 @@ -<?php - -/* -Copyright (c) 2005, Till Brehm, projektfarm Gmbh -All rights reserved. - -Redistribution and use in source and binary forms, with or without modification, -are permitted provided that the following conditions are met: - - * Redistributions of source code must retain the above copyright notice, - this list of conditions and the following disclaimer. - * Redistributions in binary form must reproduce the above copyright notice, - this list of conditions and the following disclaimer in the documentation - and/or other materials provided with the distribution. - * Neither the name of ISPConfig nor the names of its contributors - may be used to endorse or promote products derived from this software without - specific prior written permission. - -THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS 'AS IS' AND -ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED -WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED. -IN NO EVENT SHALL THE COPYRIGHT OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, -INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, -BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, -DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY -OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING -NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, -EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. -*/ - -/* - Form Definition - - Tabellendefinition - - Datentypen: - - INTEGER (Wandelt Ausdr�cke in Int um) - - DOUBLE - - CURRENCY (Formatiert Zahlen nach W�hrungsnotation) - - VARCHAR (kein weiterer Format Check) - - TEXT (kein weiterer Format Check) - - DATE (Datumsformat, Timestamp Umwandlung) - - Formtype: - - TEXT (normales Textfeld) - - TEXTAREA (normales Textfeld) - - PASSWORD (Feldinhalt wird nicht angezeigt) - - SELECT (Gibt Werte als option Feld aus) - - RADIO - - CHECKBOX - - CHECKBOXARRAY - - FILE - - VALUE: - - Wert oder Array - - Hinweis: - Das ID-Feld ist nicht bei den Table Values einzuf�gen. - - -*/ - -$form['title'] = 'interface_head_txt'; -//*$form['description'] = 'interface_desc_txt'; -$form['name'] = 'interface'; -$form['action'] = 'interface_settings.php'; -$form['db_table'] = 'sys_user'; -$form['db_table_idx'] = 'userid'; -$form["db_history"] = "no"; -$form['tab_default'] = 'main'; -$form['list_default'] = 'index.php'; -$form['auth'] = 'no'; //?? - -//* 0 = id of the user, > 0 id must match with id of current user -$form['auth_preset']['userid'] = 0; -//* 0 = default groupid of the user, > 0 id must match with groupid of current user -$form['auth_preset']['groupid'] = 0; - -//** Permissions are: r = read, i = insert, u = update, d = delete -$form['auth_preset']['perm_user'] = 'riud'; -$form['auth_preset']['perm_group'] = 'riud'; -$form['auth_preset']['perm_other'] = ''; - -//* Pick out modules -//* TODO: limit to activated modules of the user -$modules_list = array(); -if($_SESSION["s"]["user"]["typ"] == 'admin') { - $handle = @opendir(ISPC_WEB_PATH); - while ($file = @readdir($handle)) { - if ($file != '.' && $file != '..') { - if(@is_dir(ISPC_WEB_PATH."/$file")) { - if(is_file(ISPC_WEB_PATH."/$file/lib/module.conf.php") and $file != 'login' && $file != 'designer' && $file != 'mailuser') { - $modules_list[$file] = $file; - } - } - } - } -} else { - $tmp = $app->db->queryOneRecord("SELECT * FROM sys_user where username = ?", $_SESSION["s"]["user"]['username']); - $modules = $tmp['modules']; - //$modules = $conf['interface_modules_enabled']; - if($_SESSION["s"]["user"]["typ"] != 'admin' && $app->auth->has_clients($_SESSION['s']['user']['userid'])) { - $modules .= ',client'; - } - $tmp = explode(',', $modules); - foreach($tmp as $m) { - $modules_list[$m] = $m; - } -} - -//* Languages -$language_list = array(); -$handle = @opendir(ISPC_ROOT_PATH.'/lib/lang'); -while ($file = @readdir($handle)) { - if ($file != '.' && $file != '..') { - if(@is_file(ISPC_ROOT_PATH.'/lib/lang/'.$file) and substr($file, -4, 4) == '.lng') { - $tmp = substr($file, 0, 2); - $language_list[$tmp] = $tmp; - } - } -} - -//* Load themes -$themes_list = array(); -$handle = @opendir(ISPC_THEMES_PATH); -while ($file = @readdir($handle)) { - if (substr($file, 0, 1) != '.') { - if(@is_dir(ISPC_THEMES_PATH."/$file")) { - if(!file_exists(ISPC_THEMES_PATH."/$file/ispconfig_version") || (@file_exists(ISPC_THEMES_PATH."/$file/ispconfig_version") && trim(@file_get_contents(ISPC_THEMES_PATH."/$file/ispconfig_version")) == ISPC_APP_VERSION)) { - $themes_list[$file] = $file; - } - } - } -} - -$form['tabs']['main'] = array ( - 'title' => 'Settings', - 'width' => 80, - 'template' => 'templates/interface_settings.htm', - 'fields' => array ( - //################################# - // Beginn Datenbankfelder - //################################# - 'startmodule' => array ( - 'datatype' => 'VARCHAR', - 'formtype' => 'SELECT', - 'validators' => array ( 0 => array ( 'type' => 'NOTEMPTY', - 'errmsg'=> 'startmodule_empty'), - 1 => array ( 'type' => 'REGEX', - 'regex' => '/^[a-z0-9\_]{0,64}$/', - 'errmsg'=> 'startmodule_regex'), - ), - 'regex' => '', - 'errmsg' => '', - 'default' => '', - 'value' => $modules_list, - 'separator' => '', - 'width' => '30', - 'maxlength' => '255', - 'rows' => '', - 'cols' => '' - ), - 'app_theme' => array ( - 'datatype' => 'VARCHAR', - 'formtype' => 'SELECT', - 'validators' => array ( 0 => array ( 'type' => 'NOTEMPTY', - 'errmsg'=> 'app_theme_empty'), - 1 => array ( 'type' => 'REGEX', - 'regex' => '/^[a-z0-9\_]{0,64}$/', - 'errmsg'=> 'app_theme_regex'), - ), - 'regex' => '', - 'errmsg' => '', - 'default' => 'default', - 'value' => $themes_list, - 'separator' => '', - 'width' => '30', - 'maxlength' => '255', - 'rows' => '', - 'cols' => '' - ) - //################################# - // ENDE Datenbankfelder - //################################# - ) -); - - -?> diff --git a/interface/web/tools/form/user_settings.tform.php b/interface/web/tools/form/user_settings.tform.php index 7daa1a7b84989713bc00186430b18c798e02ee04..f063634b0ccf96ed6222acb33274c81b7dbd9ea2 100644 --- a/interface/web/tools/form/user_settings.tform.php +++ b/interface/web/tools/form/user_settings.tform.php @@ -68,7 +68,7 @@ $form['db_table'] = 'sys_user'; $form['db_table_idx'] = 'userid'; $form["db_history"] = "no"; $form['tab_default'] = 'users'; -$form['list_default'] = 'index.php'; +$form['list_default'] = 'user_settings.php'; $form['auth'] = 'no'; //* 0 = id of the user, > 0 id must match with id of current user @@ -92,6 +92,46 @@ while ($file = @readdir($handle)) { } } } +//* Pick out modules +//* TODO: limit to activated modules of the user +$modules_list = array(); +if($_SESSION["s"]["user"]["typ"] == 'admin') { + $handle = @opendir(ISPC_WEB_PATH); + while ($file = @readdir($handle)) { + if ($file != '.' && $file != '..') { + if(@is_dir(ISPC_WEB_PATH."/$file")) { + if(is_file(ISPC_WEB_PATH."/$file/lib/module.conf.php") and $file != 'login' && $file != 'designer' && $file != 'mailuser') { + $modules_list[$file] = $file; + } + } + } + } +} else { + $tmp = $app->db->queryOneRecord("SELECT * FROM sys_user where username = ?", $_SESSION["s"]["user"]['username']); + $modules = $tmp['modules']; + //$modules = $conf['interface_modules_enabled']; + if($_SESSION["s"]["user"]["typ"] != 'admin' && $app->auth->has_clients($_SESSION['s']['user']['userid'])) { + $modules .= ',client'; + } + $tmp = explode(',', $modules); + foreach($tmp as $m) { + $modules_list[$m] = $m; + } +} + +//* Load themes +$themes_list = array(); +$handle = @opendir(ISPC_THEMES_PATH); +while ($file = @readdir($handle)) { + if (substr($file, 0, 1) != '.') { + if(@is_dir(ISPC_THEMES_PATH."/$file")) { + if(!file_exists(ISPC_THEMES_PATH."/$file/ispconfig_version") || (@file_exists(ISPC_THEMES_PATH."/$file/ispconfig_version") && trim(@file_get_contents(ISPC_THEMES_PATH."/$file/ispconfig_version")) == ISPC_APP_VERSION)) { + $themes_list[$file] = $file; + } + } + } +} + $form['tabs']['users'] = array ( 'title' => 'Settings', @@ -141,6 +181,44 @@ $form['tabs']['users'] = array ( 'maxlength' => '2', 'rows' => '', 'cols' => '' + ), + 'startmodule' => array ( + 'datatype' => 'VARCHAR', + 'formtype' => 'SELECT', + 'validators' => array ( 0 => array ( 'type' => 'NOTEMPTY', + 'errmsg'=> 'startmodule_empty'), + 1 => array ( 'type' => 'REGEX', + 'regex' => '/^[a-z0-9\_]{0,64}$/', + 'errmsg'=> 'startmodule_regex'), + ), + 'regex' => '', + 'errmsg' => '', + 'default' => '', + 'value' => $modules_list, + 'separator' => '', + 'width' => '30', + 'maxlength' => '255', + 'rows' => '', + 'cols' => '' + ), + 'app_theme' => array ( + 'datatype' => 'VARCHAR', + 'formtype' => 'SELECT', + 'validators' => array ( 0 => array ( 'type' => 'NOTEMPTY', + 'errmsg'=> 'app_theme_empty'), + 1 => array ( 'type' => 'REGEX', + 'regex' => '/^[a-z0-9\_]{0,64}$/', + 'errmsg'=> 'app_theme_regex'), + ), + 'regex' => '', + 'errmsg' => '', + 'default' => 'default', + 'value' => $themes_list, + 'separator' => '', + 'width' => '30', + 'maxlength' => '255', + 'rows' => '', + 'cols' => '' ) //################################# // ENDE Datenbankfelder diff --git a/interface/web/tools/interface_settings.php b/interface/web/tools/interface_settings.php deleted file mode 100644 index b14b63737541699b49eebb567b7a7bfe6a93d847..0000000000000000000000000000000000000000 --- a/interface/web/tools/interface_settings.php +++ /dev/null @@ -1,139 +0,0 @@ -<?php -/* -Copyright (c) 2008, Till Brehm, projektfarm Gmbh -All rights reserved. - -Redistribution and use in source and binary forms, with or without modification, -are permitted provided that the following conditions are met: - - * Redistributions of source code must retain the above copyright notice, - this list of conditions and the following disclaimer. - * Redistributions in binary form must reproduce the above copyright notice, - this list of conditions and the following disclaimer in the documentation - and/or other materials provided with the distribution. - * Neither the name of ISPConfig nor the names of its contributors - may be used to endorse or promote products derived from this software without - specific prior written permission. - -THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" AND -ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED -WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED. -IN NO EVENT SHALL THE COPYRIGHT OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, -INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, -BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, -DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY -OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING -NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, -EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. -*/ - - -/****************************************** -* Begin Form configuration -******************************************/ - -$tform_def_file = "form/interface_settings.tform.php"; - -/****************************************** -* End Form configuration -******************************************/ - -require_once '../../lib/config.inc.php'; -require_once '../../lib/app.inc.php'; - -//* Check permissions for module -$app->auth->check_module_permissions('tools'); - -// Loading classes -$app->uses('tpl,tform,tform_actions'); -$app->load('tform_actions'); - -class page_action extends tform_actions { - var $_theme_changed = false; - - function onLoad() { - global $app, $conf, $tform_def_file; - - // Loading template classes and initialize template - if(!is_object($app->tpl)) $app->uses('tpl'); - if(!is_object($app->tform)) $app->uses('tform'); - - $app->tpl->newTemplate("tabbed_form.tpl.htm"); - - // Load table definition from file - $app->tform->loadFormDef($tform_def_file); - - // Importing ID - $this->id = $_SESSION['s']['user']['userid']; - $_POST['id'] = $_SESSION['s']['user']['userid']; - - if(count($_POST) > 1) { - $this->dataRecord = $_POST; - $this->onSubmit(); - } else { - $this->onShow(); - } - } - - function onBeforeInsert() { - global $app, $conf; - - if(!in_array($this->dataRecord['startmodule'], $this->dataRecord['modules'])) { - $app->tform->errorMessage .= $app->tform->wordbook['startmodule_err']; - } - } - - function onInsert() { - die('No inserts allowed.'); - } - - function onBeforeUpdate() { - global $app, $conf; - - if($conf['demo_mode'] == true && $this->id <= 3) $app->tform->errorMessage .= 'This function is disabled in demo mode.'; - - if(@is_array($this->dataRecord['modules']) && !in_array($this->dataRecord['startmodule'], $this->dataRecord['modules'])) { - $app->tform->errorMessage .= $app->tform->wordbook['startmodule_err']; - } - } - - function updateSessionTheme() { - global $app, $conf; - - if($this->dataRecord['app_theme'] != 'default') { - $tmp_path = ISPC_THEMES_PATH."/".$this->dataRecord['app_theme']; - if(!@is_dir($tmp_path) || (@file_exists($tmp_path."/ispconfig_version") && trim(file_get_contents($tmp_path."/ispconfig_version")) != ISPC_APP_VERSION)) { - // fall back to default theme if this one is not compatible with current ispc version - $this->dataRecord['app_theme'] = 'default'; - } - } - if($this->dataRecord['app_theme'] != $_SESSION['s']['user']['theme']) $this->_theme_changed = true; - $_SESSION['s']['theme'] = $this->dataRecord['app_theme']; - $_SESSION['s']['user']['theme'] = $_SESSION['s']['theme']; - $_SESSION['s']['user']['app_theme'] = $_SESSION['s']['theme']; - } - - function onAfterInsert() { - $this->onAfterUpdate(); - } - - function onAfterUpdate() { - - $this->updateSessionTheme(); - - if($this->_theme_changed == true) { - // not the best way, but it works - header('Content-Type: text/html'); - print '<script type="text/javascript">document.location.reload();</script>'; - exit; - } - //else parent::onShow(); - } - - -} - -$page = new page_action; -$page->onLoad(); - -?> diff --git a/interface/web/tools/lib/lang/ar_interface.lng b/interface/web/tools/lib/lang/ar_interface.lng deleted file mode 100644 index aab4fc89ffe72aab7529d850c4e1dc3bbd92dc77..0000000000000000000000000000000000000000 --- a/interface/web/tools/lib/lang/ar_interface.lng +++ /dev/null @@ -1,7 +0,0 @@ -<?php -$wb['interface_head_txt'] = 'Interface Settings'; -$wb['interface_desc_txt'] = 'Modify your interface'; -$wb['language_txt'] = 'Language'; -$wb['startmodule_txt'] = 'Startmodule'; -$wb['app_theme_txt'] = 'Design'; -?> diff --git a/interface/web/tools/lib/lang/ar_usersettings.lng b/interface/web/tools/lib/lang/ar_usersettings.lng index 4ac506ab77c1d084eb975ff864fabc0ffb2ddfd7..c05b94e76e77b6f2c2548b8f3dc9607ba91d228f 100644 --- a/interface/web/tools/lib/lang/ar_usersettings.lng +++ b/interface/web/tools/lib/lang/ar_usersettings.lng @@ -9,4 +9,7 @@ $wb['generate_password_txt'] = 'Generate Password'; $wb['repeat_password_txt'] = 'Repeat Password'; $wb['password_mismatch_txt'] = 'The passwords do not match.'; $wb['password_match_txt'] = 'The passwords do match.'; +$wb['language_txt'] = 'Language'; +$wb['startmodule_txt'] = 'Startmodule'; +$wb['app_theme_txt'] = 'Design'; ?> diff --git a/interface/web/tools/lib/lang/bg_interface.lng b/interface/web/tools/lib/lang/bg_interface.lng deleted file mode 100644 index aab4fc89ffe72aab7529d850c4e1dc3bbd92dc77..0000000000000000000000000000000000000000 --- a/interface/web/tools/lib/lang/bg_interface.lng +++ /dev/null @@ -1,7 +0,0 @@ -<?php -$wb['interface_head_txt'] = 'Interface Settings'; -$wb['interface_desc_txt'] = 'Modify your interface'; -$wb['language_txt'] = 'Language'; -$wb['startmodule_txt'] = 'Startmodule'; -$wb['app_theme_txt'] = 'Design'; -?> diff --git a/interface/web/tools/lib/lang/bg_usersettings.lng b/interface/web/tools/lib/lang/bg_usersettings.lng index 838053f5637682cf67fa9987a58e896ac325c5f4..c30dcf37019f205569a250bd4addd21cf6961e6a 100644 --- a/interface/web/tools/lib/lang/bg_usersettings.lng +++ b/interface/web/tools/lib/lang/bg_usersettings.lng @@ -9,4 +9,7 @@ $wb['generate_password_txt'] = 'Generate Password'; $wb['repeat_password_txt'] = 'Repeat Password'; $wb['password_mismatch_txt'] = 'The passwords do not match.'; $wb['password_match_txt'] = 'The passwords do match.'; +$wb['language_txt'] = 'Language'; +$wb['startmodule_txt'] = 'Startmodule'; +$wb['app_theme_txt'] = 'Design'; ?> diff --git a/interface/web/tools/lib/lang/br_interface.lng b/interface/web/tools/lib/lang/br_interface.lng deleted file mode 100644 index 95677c4b591df5b53fef1108c767881885b68288..0000000000000000000000000000000000000000 --- a/interface/web/tools/lib/lang/br_interface.lng +++ /dev/null @@ -1,7 +0,0 @@ -<?php -$wb['interface_head_txt'] = 'Configurações da Interface'; -$wb['interface_desc_txt'] = 'Alterar a interface'; -$wb['language_txt'] = 'Idioma'; -$wb['startmodule_txt'] = 'Módulo Inicial'; -$wb['app_theme_txt'] = 'Tema'; -?> diff --git a/interface/web/tools/lib/lang/br_usersettings.lng b/interface/web/tools/lib/lang/br_usersettings.lng index cb3ae2dc4f82eed3915a33c5e4a10d53ba5d423d..e254e81a4f3005f3de39a18410d6af66b72f169e 100644 --- a/interface/web/tools/lib/lang/br_usersettings.lng +++ b/interface/web/tools/lib/lang/br_usersettings.lng @@ -9,4 +9,7 @@ $wb['generate_password_txt'] = 'Gerar Senha'; $wb['repeat_password_txt'] = 'Repetir Senha'; $wb['password_mismatch_txt'] = 'As senhas não coincidem.'; $wb['password_match_txt'] = 'As senhas coincidem.'; +$wb['language_txt'] = 'Idioma'; +$wb['startmodule_txt'] = 'Módulo Inicial'; +$wb['app_theme_txt'] = 'Tema'; ?> diff --git a/interface/web/tools/lib/lang/ca_interface.lng b/interface/web/tools/lib/lang/ca_interface.lng deleted file mode 100644 index b252103fd908f4022a457e2faca119739c96dc90..0000000000000000000000000000000000000000 --- a/interface/web/tools/lib/lang/ca_interface.lng +++ /dev/null @@ -1,7 +0,0 @@ -<?php -$wb['interface_head_txt'] = 'Paramètres d\'interface'; -$wb['interface_desc_txt'] = 'Modifier votre interface'; -$wb['language_txt'] = 'Language'; -$wb['startmodule_txt'] = 'Page d\'accueil'; -$wb['app_theme_txt'] = 'Interface'; -?> diff --git a/interface/web/tools/lib/lang/ca_usersettings.lng b/interface/web/tools/lib/lang/ca_usersettings.lng index fa40272aa08c094150913e5a3194e2cda2356128..4705660b9e1489cdd8fdcdaadd22561a4892d410 100644 --- a/interface/web/tools/lib/lang/ca_usersettings.lng +++ b/interface/web/tools/lib/lang/ca_usersettings.lng @@ -9,4 +9,7 @@ $wb['generate_password_txt'] = 'Générer mot de passe'; $wb['repeat_password_txt'] = 'Retaper le mot de passe'; $wb['password_mismatch_txt'] = 'Les mots de passe ne correspondent pas.'; $wb['password_match_txt'] = 'Les mots de passe correspondent.'; +$wb['language_txt'] = 'Language'; +$wb['startmodule_txt'] = 'Page d\'accueil'; +$wb['app_theme_txt'] = 'Interface'; ?> diff --git a/interface/web/tools/lib/lang/cz_interface.lng b/interface/web/tools/lib/lang/cz_interface.lng deleted file mode 100644 index 507b7c3cbeda904058d89d4929dfed78d349fa87..0000000000000000000000000000000000000000 --- a/interface/web/tools/lib/lang/cz_interface.lng +++ /dev/null @@ -1,7 +0,0 @@ -<?php -$wb['interface_head_txt'] = 'Nastavenà rozhranÃ'; -$wb['interface_desc_txt'] = 'Možnost úpravy rozhranÃ'; -$wb['language_txt'] = 'Jazyk'; -$wb['startmodule_txt'] = 'Výchozà modul po pÅ™ihlášenÃ'; -$wb['app_theme_txt'] = 'Výchozà grafické téma'; -?> diff --git a/interface/web/tools/lib/lang/cz_usersettings.lng b/interface/web/tools/lib/lang/cz_usersettings.lng index ab76b2261ddba6e3de82efe75c06f8472e4c07fb..f447299e0883850364fd41fd65f986f55ab5cf20 100644 --- a/interface/web/tools/lib/lang/cz_usersettings.lng +++ b/interface/web/tools/lib/lang/cz_usersettings.lng @@ -9,4 +9,7 @@ $wb['repeat_password_txt'] = 'Opakujte heslo'; $wb['password_mismatch_txt'] = 'Hesla se neshodujÃ.'; $wb['password_match_txt'] = 'Hesla se shodujÃ.'; $wb['password_txt'] = 'Heslo'; +$wb['language_txt'] = 'Jazyk'; +$wb['startmodule_txt'] = 'Výchozà modul po pÅ™ihlášenÃ'; +$wb['app_theme_txt'] = 'Výchozà grafické téma'; ?> diff --git a/interface/web/tools/lib/lang/de_interface.lng b/interface/web/tools/lib/lang/de_interface.lng deleted file mode 100644 index 2af008f7639d2806c904323588c719ba096c8605..0000000000000000000000000000000000000000 --- a/interface/web/tools/lib/lang/de_interface.lng +++ /dev/null @@ -1,7 +0,0 @@ -<?php -$wb['interface_head_txt'] = 'Benutzeroberflächen Einstellungen'; -$wb['interface_desc_txt'] = 'Passen Sie die Benutzeroberfläche für sich an'; -$wb['language_txt'] = 'Sprache'; -$wb['startmodule_txt'] = 'Startmodul'; -$wb['app_theme_txt'] = 'Design'; -?> diff --git a/interface/web/tools/lib/lang/de_usersettings.lng b/interface/web/tools/lib/lang/de_usersettings.lng index c643d38ff4e49bd5ba909380cf4af702715de985..dd5fefffae16a756fc596ae7566cedefe27d495f 100644 --- a/interface/web/tools/lib/lang/de_usersettings.lng +++ b/interface/web/tools/lib/lang/de_usersettings.lng @@ -9,4 +9,7 @@ $wb['generate_password_txt'] = 'Passwort erzeugen'; $wb['repeat_password_txt'] = 'Passwort wiederholen'; $wb['password_mismatch_txt'] = 'Die Passwörter stimmen nicht überein.'; $wb['password_match_txt'] = 'Die Passwörter stimmen überein.'; +$wb['language_txt'] = 'Sprache'; +$wb['startmodule_txt'] = 'Startmodul'; +$wb['app_theme_txt'] = 'Design'; ?> diff --git a/interface/web/tools/lib/lang/dk_interface.lng b/interface/web/tools/lib/lang/dk_interface.lng deleted file mode 100644 index cc17dd2f5c5c9e04c67f11a66d8d04de0c6c5f58..0000000000000000000000000000000000000000 --- a/interface/web/tools/lib/lang/dk_interface.lng +++ /dev/null @@ -1,7 +0,0 @@ -<?php -$wb['interface_head_txt'] = 'Interface Indstillinger'; -$wb['interface_desc_txt'] = 'Ændre din grænseflade'; -$wb['language_txt'] = 'Sprog'; -$wb['startmodule_txt'] = 'Startmodule'; -$wb['app_theme_txt'] = 'Design'; -?> diff --git a/interface/web/tools/lib/lang/dk_usersettings.lng b/interface/web/tools/lib/lang/dk_usersettings.lng index 9398f2626ade1697b6ce74f5c4db00421a8c1c1f..341d9db757b08e847b3d0aa5b7ece8781959764a 100644 --- a/interface/web/tools/lib/lang/dk_usersettings.lng +++ b/interface/web/tools/lib/lang/dk_usersettings.lng @@ -9,4 +9,7 @@ $wb['repeat_password_txt'] = 'Gentage Adgangskode'; $wb['password_mismatch_txt'] = 'Adgangskoderne stemmer ikke overens.'; $wb['password_match_txt'] = 'Adgangskoderne stemmer overens.'; $wb['password_txt'] = 'Password'; +$wb['language_txt'] = 'Sprog'; +$wb['startmodule_txt'] = 'Startmodule'; +$wb['app_theme_txt'] = 'Design'; ?> diff --git a/interface/web/tools/lib/lang/el_interface.lng b/interface/web/tools/lib/lang/el_interface.lng deleted file mode 100644 index aab4fc89ffe72aab7529d850c4e1dc3bbd92dc77..0000000000000000000000000000000000000000 --- a/interface/web/tools/lib/lang/el_interface.lng +++ /dev/null @@ -1,7 +0,0 @@ -<?php -$wb['interface_head_txt'] = 'Interface Settings'; -$wb['interface_desc_txt'] = 'Modify your interface'; -$wb['language_txt'] = 'Language'; -$wb['startmodule_txt'] = 'Startmodule'; -$wb['app_theme_txt'] = 'Design'; -?> diff --git a/interface/web/tools/lib/lang/el_usersettings.lng b/interface/web/tools/lib/lang/el_usersettings.lng index 57e8bcb17a2b7dfc6677e58efbda065b480fd12a..68ddcd657c44dac297d32edcc570ceb6bd06b10c 100644 --- a/interface/web/tools/lib/lang/el_usersettings.lng +++ b/interface/web/tools/lib/lang/el_usersettings.lng @@ -9,4 +9,6 @@ $wb['generate_password_txt'] = 'Generate Password'; $wb['repeat_password_txt'] = 'Repeat Password'; $wb['password_mismatch_txt'] = 'The passwords do not match.'; $wb['password_match_txt'] = 'The passwords do match.'; +$wb['startmodule_txt'] = 'Startmodule'; +$wb['app_theme_txt'] = 'Design'; ?> diff --git a/interface/web/tools/lib/lang/en_interface.lng b/interface/web/tools/lib/lang/en_interface.lng deleted file mode 100644 index 7cb0e2d8bc6b9b88da4863cc9d41234622956853..0000000000000000000000000000000000000000 --- a/interface/web/tools/lib/lang/en_interface.lng +++ /dev/null @@ -1,11 +0,0 @@ -<?php -$wb["interface_head_txt"] = 'Interface Settings'; -$wb["interface_desc_txt"] = 'Modify your interface'; -$wb["language_txt"] = 'Language'; -$wb["startmodule_txt"] = 'Startmodule'; -$wb["app_theme_txt"] = 'Design'; -$wb['startmodule_empty'] = 'Startmodule empty.'; -$wb['startmodule_regex'] = 'Invalid chars in Startmodule.'; -$wb['app_theme_empty'] = 'App theme empty.'; -$wb['app_theme_regex'] = 'Invalid chars in App theme.'; -?> \ No newline at end of file diff --git a/interface/web/tools/lib/lang/en_usersettings.lng b/interface/web/tools/lib/lang/en_usersettings.lng index 79c7437cb1b8882a75b3b3fc8ade2aeebcf4043f..601ae420ffb4120572a670e778a1887328a43fa4 100644 --- a/interface/web/tools/lib/lang/en_usersettings.lng +++ b/interface/web/tools/lib/lang/en_usersettings.lng @@ -9,4 +9,11 @@ $wb['generate_password_txt'] = 'Generate Password'; $wb['repeat_password_txt'] = 'Repeat Password'; $wb['password_mismatch_txt'] = 'The passwords do not match.'; $wb['password_match_txt'] = 'The passwords do match.'; +$wb["language_txt"] = 'Language'; +$wb["startmodule_txt"] = 'Startmodule'; +$wb["app_theme_txt"] = 'Design'; +$wb['startmodule_empty'] = 'Startmodule empty.'; +$wb['startmodule_regex'] = 'Invalid chars in Startmodule.'; +$wb['app_theme_empty'] = 'App theme empty.'; +$wb['app_theme_regex'] = 'Invalid chars in App theme.'; ?> diff --git a/interface/web/tools/lib/lang/es_interface.lng b/interface/web/tools/lib/lang/es_interface.lng deleted file mode 100644 index 87b94e4c4a7b6e3876b3429c299eaaaa83a5876d..0000000000000000000000000000000000000000 --- a/interface/web/tools/lib/lang/es_interface.lng +++ /dev/null @@ -1,7 +0,0 @@ -<?php -$wb['interface_head_txt'] = 'Configuración de la interfaz'; -$wb['interface_desc_txt'] = 'Modifique su interfaz'; -$wb['language_txt'] = 'Idioma'; -$wb['startmodule_txt'] = 'Módulo de inicio'; -$wb['app_theme_txt'] = 'Diseño'; -?> diff --git a/interface/web/tools/lib/lang/es_usersettings.lng b/interface/web/tools/lib/lang/es_usersettings.lng index 9b2de57bfbd3bcf118bddf3f7113d9f57a47812b..43a181a11c7337042c0faada5357b30b53aae228 100644 --- a/interface/web/tools/lib/lang/es_usersettings.lng +++ b/interface/web/tools/lib/lang/es_usersettings.lng @@ -9,4 +9,7 @@ $wb['generate_password_txt'] = 'Generar contraseña'; $wb['repeat_password_txt'] = 'Repetir contraseña'; $wb['password_mismatch_txt'] = 'Las contraseñas no coinciden.'; $wb['password_match_txt'] = 'Las contraseñas coinciden.'; +$wb['language_txt'] = 'Idioma'; +$wb['startmodule_txt'] = 'Módulo de inicio'; +$wb['app_theme_txt'] = 'Diseño'; ?> diff --git a/interface/web/tools/lib/lang/fi_interface.lng b/interface/web/tools/lib/lang/fi_interface.lng deleted file mode 100644 index aab4fc89ffe72aab7529d850c4e1dc3bbd92dc77..0000000000000000000000000000000000000000 --- a/interface/web/tools/lib/lang/fi_interface.lng +++ /dev/null @@ -1,7 +0,0 @@ -<?php -$wb['interface_head_txt'] = 'Interface Settings'; -$wb['interface_desc_txt'] = 'Modify your interface'; -$wb['language_txt'] = 'Language'; -$wb['startmodule_txt'] = 'Startmodule'; -$wb['app_theme_txt'] = 'Design'; -?> diff --git a/interface/web/tools/lib/lang/fi_usersettings.lng b/interface/web/tools/lib/lang/fi_usersettings.lng index 8267c8117a57f1969b107d87d015a5c53bd6773d..91d71739537e6d663f4a6e9fc043ab5f73af5fed 100644 --- a/interface/web/tools/lib/lang/fi_usersettings.lng +++ b/interface/web/tools/lib/lang/fi_usersettings.lng @@ -9,4 +9,7 @@ $wb['generate_password_txt'] = 'Generate Password'; $wb['repeat_password_txt'] = 'Repeat Password'; $wb['password_mismatch_txt'] = 'The passwords do not match.'; $wb['password_match_txt'] = 'The passwords do match.'; +$wb['language_txt'] = 'Language'; +$wb['startmodule_txt'] = 'Startmodule'; +$wb['app_theme_txt'] = 'Design'; ?> diff --git a/interface/web/tools/lib/lang/fr_interface.lng b/interface/web/tools/lib/lang/fr_interface.lng deleted file mode 100644 index aab4fc89ffe72aab7529d850c4e1dc3bbd92dc77..0000000000000000000000000000000000000000 --- a/interface/web/tools/lib/lang/fr_interface.lng +++ /dev/null @@ -1,7 +0,0 @@ -<?php -$wb['interface_head_txt'] = 'Interface Settings'; -$wb['interface_desc_txt'] = 'Modify your interface'; -$wb['language_txt'] = 'Language'; -$wb['startmodule_txt'] = 'Startmodule'; -$wb['app_theme_txt'] = 'Design'; -?> diff --git a/interface/web/tools/lib/lang/fr_usersettings.lng b/interface/web/tools/lib/lang/fr_usersettings.lng index bafccd3b97ba4a51252e6ab9a8932d07ff1856f0..b398e76e352ccb6b168473b29f74bcbf6c5b932f 100644 --- a/interface/web/tools/lib/lang/fr_usersettings.lng +++ b/interface/web/tools/lib/lang/fr_usersettings.lng @@ -9,4 +9,7 @@ $wb['generate_password_txt'] = 'Générer un mot de passe'; $wb['repeat_password_txt'] = 'Répéter le mot de passe'; $wb['password_mismatch_txt'] = 'Les mots de passe ne correspondent pas.'; $wb['password_match_txt'] = 'Les mots de passe correspondent.'; +$wb['language_txt'] = 'Language'; +$wb['startmodule_txt'] = 'Startmodule'; +$wb['app_theme_txt'] = 'Design'; ?> diff --git a/interface/web/tools/lib/lang/hr_interface.lng b/interface/web/tools/lib/lang/hr_interface.lng deleted file mode 100644 index 5cc9815a10c76d57884aa2056a06b2f765fc86e4..0000000000000000000000000000000000000000 --- a/interface/web/tools/lib/lang/hr_interface.lng +++ /dev/null @@ -1,7 +0,0 @@ -<?php -$wb['interface_head_txt'] = 'Postavke teme'; -$wb['interface_desc_txt'] = 'Podesi temu'; -$wb['language_txt'] = 'Jezik'; -$wb['startmodule_txt'] = 'PoÄetna stranica'; -$wb['app_theme_txt'] = 'Tema'; -?> diff --git a/interface/web/tools/lib/lang/hr_usersettings.lng b/interface/web/tools/lib/lang/hr_usersettings.lng index 50759d4883abbc64344f6b8bc4afa9e73fff949a..b707cce4da55bf35f0c771408c92f95fd0464457 100644 --- a/interface/web/tools/lib/lang/hr_usersettings.lng +++ b/interface/web/tools/lib/lang/hr_usersettings.lng @@ -9,4 +9,7 @@ $wb['generate_password_txt'] = 'Generiraj Å¡ifru'; $wb['repeat_password_txt'] = 'Ponovi Å¡ifru'; $wb['password_mismatch_txt'] = 'Å ifre nisu identiÄne.'; $wb['password_match_txt'] = 'Å ifre su identiÄne.'; +$wb['language_txt'] = 'Jezik'; +$wb['startmodule_txt'] = 'PoÄetna stranica'; +$wb['app_theme_txt'] = 'Tema'; ?> diff --git a/interface/web/tools/lib/lang/hu_interface.lng b/interface/web/tools/lib/lang/hu_interface.lng deleted file mode 100644 index aab4fc89ffe72aab7529d850c4e1dc3bbd92dc77..0000000000000000000000000000000000000000 --- a/interface/web/tools/lib/lang/hu_interface.lng +++ /dev/null @@ -1,7 +0,0 @@ -<?php -$wb['interface_head_txt'] = 'Interface Settings'; -$wb['interface_desc_txt'] = 'Modify your interface'; -$wb['language_txt'] = 'Language'; -$wb['startmodule_txt'] = 'Startmodule'; -$wb['app_theme_txt'] = 'Design'; -?> diff --git a/interface/web/tools/lib/lang/hu_usersettings.lng b/interface/web/tools/lib/lang/hu_usersettings.lng index 49aa75537fc06fa9fd9aaef184b5e16aa5408efd..2a89acf5b5f926929859300cc3e573566b55fc1c 100644 --- a/interface/web/tools/lib/lang/hu_usersettings.lng +++ b/interface/web/tools/lib/lang/hu_usersettings.lng @@ -9,4 +9,7 @@ $wb['generate_password_txt'] = 'Generate Password'; $wb['repeat_password_txt'] = 'Repeat Password'; $wb['password_mismatch_txt'] = 'The passwords do not match.'; $wb['password_match_txt'] = 'The passwords do match.'; +$wb['language_txt'] = 'Language'; +$wb['startmodule_txt'] = 'Startmodule'; +$wb['app_theme_txt'] = 'Design'; ?> diff --git a/interface/web/tools/lib/lang/id_interface.lng b/interface/web/tools/lib/lang/id_interface.lng deleted file mode 100644 index aab4fc89ffe72aab7529d850c4e1dc3bbd92dc77..0000000000000000000000000000000000000000 --- a/interface/web/tools/lib/lang/id_interface.lng +++ /dev/null @@ -1,7 +0,0 @@ -<?php -$wb['interface_head_txt'] = 'Interface Settings'; -$wb['interface_desc_txt'] = 'Modify your interface'; -$wb['language_txt'] = 'Language'; -$wb['startmodule_txt'] = 'Startmodule'; -$wb['app_theme_txt'] = 'Design'; -?> diff --git a/interface/web/tools/lib/lang/id_usersettings.lng b/interface/web/tools/lib/lang/id_usersettings.lng index 7b1bc225cad5a6e8d3631332e983cd88e92f5179..760cfe75f244d893433fc863f683093816a11c00 100644 --- a/interface/web/tools/lib/lang/id_usersettings.lng +++ b/interface/web/tools/lib/lang/id_usersettings.lng @@ -9,4 +9,7 @@ $wb['generate_password_txt'] = 'Generate Password'; $wb['repeat_password_txt'] = 'Repeat Password'; $wb['password_mismatch_txt'] = 'The passwords do not match.'; $wb['password_match_txt'] = 'The passwords do match.'; +$wb['language_txt'] = 'Language'; +$wb['startmodule_txt'] = 'Startmodule'; +$wb['app_theme_txt'] = 'Design'; ?> diff --git a/interface/web/tools/lib/lang/it_interface.lng b/interface/web/tools/lib/lang/it_interface.lng deleted file mode 100644 index aab4fc89ffe72aab7529d850c4e1dc3bbd92dc77..0000000000000000000000000000000000000000 --- a/interface/web/tools/lib/lang/it_interface.lng +++ /dev/null @@ -1,7 +0,0 @@ -<?php -$wb['interface_head_txt'] = 'Interface Settings'; -$wb['interface_desc_txt'] = 'Modify your interface'; -$wb['language_txt'] = 'Language'; -$wb['startmodule_txt'] = 'Startmodule'; -$wb['app_theme_txt'] = 'Design'; -?> diff --git a/interface/web/tools/lib/lang/it_usersettings.lng b/interface/web/tools/lib/lang/it_usersettings.lng index e75e8d28d2cf550d1893d81053c910d87584e7a3..a1ad8eba871125a2cf17c29a4e70b39f2f2f995d 100644 --- a/interface/web/tools/lib/lang/it_usersettings.lng +++ b/interface/web/tools/lib/lang/it_usersettings.lng @@ -9,4 +9,7 @@ $wb['generate_password_txt'] = 'Generate Password'; $wb['repeat_password_txt'] = 'Repeat Password'; $wb['password_mismatch_txt'] = 'The passwords do not match.'; $wb['password_match_txt'] = 'The passwords do match.'; +$wb['language_txt'] = 'Language'; +$wb['startmodule_txt'] = 'Startmodule'; +$wb['app_theme_txt'] = 'Design'; ?> diff --git a/interface/web/tools/lib/lang/ja_interface.lng b/interface/web/tools/lib/lang/ja_interface.lng deleted file mode 100644 index aab4fc89ffe72aab7529d850c4e1dc3bbd92dc77..0000000000000000000000000000000000000000 --- a/interface/web/tools/lib/lang/ja_interface.lng +++ /dev/null @@ -1,7 +0,0 @@ -<?php -$wb['interface_head_txt'] = 'Interface Settings'; -$wb['interface_desc_txt'] = 'Modify your interface'; -$wb['language_txt'] = 'Language'; -$wb['startmodule_txt'] = 'Startmodule'; -$wb['app_theme_txt'] = 'Design'; -?> diff --git a/interface/web/tools/lib/lang/ja_usersettings.lng b/interface/web/tools/lib/lang/ja_usersettings.lng index 443a4510543f83ab235d1e0dcf57a1f4770f5576..291aa94537208f694c4b6e49eabe059d7ac8f085 100644 --- a/interface/web/tools/lib/lang/ja_usersettings.lng +++ b/interface/web/tools/lib/lang/ja_usersettings.lng @@ -9,4 +9,7 @@ $wb['generate_password_txt'] = 'Generate Password'; $wb['repeat_password_txt'] = 'Repeat Password'; $wb['password_mismatch_txt'] = 'The passwords do not match.'; $wb['password_match_txt'] = 'The passwords do match.'; +$wb['language_txt'] = 'Language'; +$wb['startmodule_txt'] = 'Startmodule'; +$wb['app_theme_txt'] = 'Design'; ?> diff --git a/interface/web/tools/lib/lang/nl_interface.lng b/interface/web/tools/lib/lang/nl_interface.lng deleted file mode 100644 index aab4fc89ffe72aab7529d850c4e1dc3bbd92dc77..0000000000000000000000000000000000000000 --- a/interface/web/tools/lib/lang/nl_interface.lng +++ /dev/null @@ -1,7 +0,0 @@ -<?php -$wb['interface_head_txt'] = 'Interface Settings'; -$wb['interface_desc_txt'] = 'Modify your interface'; -$wb['language_txt'] = 'Language'; -$wb['startmodule_txt'] = 'Startmodule'; -$wb['app_theme_txt'] = 'Design'; -?> diff --git a/interface/web/tools/lib/lang/nl_usersettings.lng b/interface/web/tools/lib/lang/nl_usersettings.lng index 0a95f7ffa9024dfff4d9db8168f76769a6df4792..909df9dbecf4bcadca6266477ec37b276581f1ee 100644 --- a/interface/web/tools/lib/lang/nl_usersettings.lng +++ b/interface/web/tools/lib/lang/nl_usersettings.lng @@ -9,4 +9,7 @@ $wb['generate_password_txt'] = 'Generate Password'; $wb['repeat_password_txt'] = 'Repeat Password'; $wb['password_mismatch_txt'] = 'The passwords do not match.'; $wb['password_match_txt'] = 'The passwords do match.'; +$wb['language_txt'] = 'Taal'; +$wb['startmodule_txt'] = 'Startmodule'; +$wb['app_theme_txt'] = 'Design'; ?> diff --git a/interface/web/tools/lib/lang/pl_interface.lng b/interface/web/tools/lib/lang/pl_interface.lng deleted file mode 100644 index 0256fab376397535594b29404ab1b4d5cadb7a3e..0000000000000000000000000000000000000000 --- a/interface/web/tools/lib/lang/pl_interface.lng +++ /dev/null @@ -1,7 +0,0 @@ -<?php -$wb['interface_head_txt'] = 'Ustawienia interfejsu'; -$wb['interface_desc_txt'] = 'ZmieÅ„ temat interfejsu'; -$wb['language_txt'] = 'JÄ™zyk'; -$wb['startmodule_txt'] = 'ModuÅ‚ startowy'; -$wb['app_theme_txt'] = 'Temat'; -?> diff --git a/interface/web/tools/lib/lang/pl_usersettings.lng b/interface/web/tools/lib/lang/pl_usersettings.lng index 45081f681b6fce1de43062dd7602f154a15a5821..64396df2409dbb08ea741cd5d7ea7551ce5769c1 100644 --- a/interface/web/tools/lib/lang/pl_usersettings.lng +++ b/interface/web/tools/lib/lang/pl_usersettings.lng @@ -9,4 +9,7 @@ $wb['generate_password_txt'] = 'Wygeneruj hasÅ‚o'; $wb['repeat_password_txt'] = 'Powtórz hasÅ‚o'; $wb['password_mismatch_txt'] = 'HasÅ‚a siÄ™ nie zgadzajÄ…'; $wb['password_match_txt'] = 'HasÅ‚a siÄ™ zgadzajÄ…'; +$wb['language_txt'] = 'JÄ™zyk'; +$wb['startmodule_txt'] = 'ModuÅ‚ startowy'; +$wb['app_theme_txt'] = 'Temat'; ?> diff --git a/interface/web/tools/lib/lang/pt_interface.lng b/interface/web/tools/lib/lang/pt_interface.lng deleted file mode 100644 index aab4fc89ffe72aab7529d850c4e1dc3bbd92dc77..0000000000000000000000000000000000000000 --- a/interface/web/tools/lib/lang/pt_interface.lng +++ /dev/null @@ -1,7 +0,0 @@ -<?php -$wb['interface_head_txt'] = 'Interface Settings'; -$wb['interface_desc_txt'] = 'Modify your interface'; -$wb['language_txt'] = 'Language'; -$wb['startmodule_txt'] = 'Startmodule'; -$wb['app_theme_txt'] = 'Design'; -?> diff --git a/interface/web/tools/lib/lang/pt_usersettings.lng b/interface/web/tools/lib/lang/pt_usersettings.lng index 81fd824d303c8845fbe31e5110d226738fbcaad8..4925a3f7286da3e7a1fc9c74205d7dcd4217ccfe 100644 --- a/interface/web/tools/lib/lang/pt_usersettings.lng +++ b/interface/web/tools/lib/lang/pt_usersettings.lng @@ -9,4 +9,7 @@ $wb['generate_password_txt'] = 'Generate Password'; $wb['repeat_password_txt'] = 'Repeat Password'; $wb['password_mismatch_txt'] = 'The passwords do not match.'; $wb['password_match_txt'] = 'The passwords do match.'; +$wb['language_txt'] = 'Language'; +$wb['startmodule_txt'] = 'Startmodule'; +$wb['app_theme_txt'] = 'Design'; ?> diff --git a/interface/web/tools/lib/lang/ro_interface.lng b/interface/web/tools/lib/lang/ro_interface.lng deleted file mode 100644 index aab4fc89ffe72aab7529d850c4e1dc3bbd92dc77..0000000000000000000000000000000000000000 --- a/interface/web/tools/lib/lang/ro_interface.lng +++ /dev/null @@ -1,7 +0,0 @@ -<?php -$wb['interface_head_txt'] = 'Interface Settings'; -$wb['interface_desc_txt'] = 'Modify your interface'; -$wb['language_txt'] = 'Language'; -$wb['startmodule_txt'] = 'Startmodule'; -$wb['app_theme_txt'] = 'Design'; -?> diff --git a/interface/web/tools/lib/lang/ro_usersettings.lng b/interface/web/tools/lib/lang/ro_usersettings.lng index fae890fab609e6801b5e57f2de2e5059b37b1f50..8c43550f33cc56729cd5902089e60d21b5732e25 100644 --- a/interface/web/tools/lib/lang/ro_usersettings.lng +++ b/interface/web/tools/lib/lang/ro_usersettings.lng @@ -9,4 +9,7 @@ $wb['generate_password_txt'] = 'Generate Password'; $wb['repeat_password_txt'] = 'Repeat Password'; $wb['password_mismatch_txt'] = 'The passwords do not match.'; $wb['password_match_txt'] = 'The passwords do match.'; +$wb['language_txt'] = 'Language'; +$wb['startmodule_txt'] = 'Startmodule'; +$wb['app_theme_txt'] = 'Design'; ?> diff --git a/interface/web/tools/lib/lang/ru_interface.lng b/interface/web/tools/lib/lang/ru_interface.lng deleted file mode 100644 index 91644d5c2b71fcbf9d4bbeb13e3b510d956af1b5..0000000000000000000000000000000000000000 --- a/interface/web/tools/lib/lang/ru_interface.lng +++ /dev/null @@ -1,7 +0,0 @@ -<?php -$wb['interface_head_txt'] = 'ÐаÑтройки интерфейÑа'; -$wb['interface_desc_txt'] = 'Измените Ñвой интерфейÑ'; -$wb['language_txt'] = 'Язык'; -$wb['startmodule_txt'] = 'Стартовый модуль'; -$wb['app_theme_txt'] = 'Тема'; -?> diff --git a/interface/web/tools/lib/lang/ru_usersettings.lng b/interface/web/tools/lib/lang/ru_usersettings.lng index 609b69fdb0ae28b498da62f2050c15caed902e4d..ffa3f3bf03116cf1d8b3cd4b97c38114e4762b28 100644 --- a/interface/web/tools/lib/lang/ru_usersettings.lng +++ b/interface/web/tools/lib/lang/ru_usersettings.lng @@ -9,4 +9,9 @@ $wb['generate_password_txt'] = 'Создать пароль'; $wb['repeat_password_txt'] = 'Повторить пароль'; $wb['password_mismatch_txt'] = 'Пароли не Ñовпадают.'; $wb['password_match_txt'] = 'Ðти пароли Ñовпадают.'; +$wb['interface_head_txt'] = 'ÐаÑтройки интерфейÑа'; +$wb['interface_desc_txt'] = 'Измените Ñвой интерфейÑ'; +$wb['language_txt'] = 'Язык'; +$wb['startmodule_txt'] = 'Стартовый модуль'; +$wb['app_theme_txt'] = 'Тема'; ?> diff --git a/interface/web/tools/lib/lang/se_interface.lng b/interface/web/tools/lib/lang/se_interface.lng deleted file mode 100644 index 9a66f59e00d79e4940c7c3e50ebda5e7adcfc7a6..0000000000000000000000000000000000000000 --- a/interface/web/tools/lib/lang/se_interface.lng +++ /dev/null @@ -1,7 +0,0 @@ -<?php -$wb['interface_head_txt'] = 'Gränssnittsinställnignar'; -$wb['interface_desc_txt'] = 'Ändra ditt gränssnitt'; -$wb['language_txt'] = 'SprÃ¥k'; -$wb['startmodule_txt'] = 'Startmodul'; -$wb['app_theme_txt'] = 'Design'; -?> diff --git a/interface/web/tools/lib/lang/se_usersettings.lng b/interface/web/tools/lib/lang/se_usersettings.lng index 4461fff4968b7df639c080a81b5e9ddf6cb4113d..f6de2dc4eebe227af1be4cfe0e5de3bd5ee7eff1 100644 --- a/interface/web/tools/lib/lang/se_usersettings.lng +++ b/interface/web/tools/lib/lang/se_usersettings.lng @@ -9,4 +9,7 @@ $wb['generate_password_txt'] = 'Generera lösenord'; $wb['repeat_password_txt'] = 'Upprepa lösenord'; $wb['password_mismatch_txt'] = 'Lösenorden matchar inte'; $wb['password_match_txt'] = 'Lösenorden matchar'; +$wb['language_txt'] = 'SprÃ¥k'; +$wb['startmodule_txt'] = 'Startmodul'; +$wb['app_theme_txt'] = 'Design'; ?> diff --git a/interface/web/tools/lib/lang/sk_interface.lng b/interface/web/tools/lib/lang/sk_interface.lng deleted file mode 100644 index aab4fc89ffe72aab7529d850c4e1dc3bbd92dc77..0000000000000000000000000000000000000000 --- a/interface/web/tools/lib/lang/sk_interface.lng +++ /dev/null @@ -1,7 +0,0 @@ -<?php -$wb['interface_head_txt'] = 'Interface Settings'; -$wb['interface_desc_txt'] = 'Modify your interface'; -$wb['language_txt'] = 'Language'; -$wb['startmodule_txt'] = 'Startmodule'; -$wb['app_theme_txt'] = 'Design'; -?> diff --git a/interface/web/tools/lib/lang/sk_usersettings.lng b/interface/web/tools/lib/lang/sk_usersettings.lng index 4c8bcb900e742c83a7b65aa4c29293be8f866f1a..e00f5e664b1bb4bcb71a6614446dec2530c1aa21 100644 --- a/interface/web/tools/lib/lang/sk_usersettings.lng +++ b/interface/web/tools/lib/lang/sk_usersettings.lng @@ -9,4 +9,7 @@ $wb['generate_password_txt'] = 'Generate Password'; $wb['repeat_password_txt'] = 'Repeat Password'; $wb['password_mismatch_txt'] = 'The passwords do not match.'; $wb['password_match_txt'] = 'The passwords do match.'; +$wb['language_txt'] = 'Language'; +$wb['startmodule_txt'] = 'Startmodule'; +$wb['app_theme_txt'] = 'Design'; ?> diff --git a/interface/web/tools/lib/lang/tr_interface.lng b/interface/web/tools/lib/lang/tr_interface.lng deleted file mode 100644 index 2384c71107a76610744f471cb5f78bf290e6947c..0000000000000000000000000000000000000000 --- a/interface/web/tools/lib/lang/tr_interface.lng +++ /dev/null @@ -1,7 +0,0 @@ -<?php -$wb['interface_head_txt'] = 'Arayüz Ayarları'; -$wb['interface_desc_txt'] = 'Arayüzü Düzenle'; -$wb['language_txt'] = 'Dil'; -$wb['startmodule_txt'] = 'BaÅŸlangıç modülü'; -$wb['app_theme_txt'] = 'Tasarım'; -?> diff --git a/interface/web/tools/lib/lang/tr_usersettings.lng b/interface/web/tools/lib/lang/tr_usersettings.lng index fa2eff63d7419c17c4272505934e530214eae709..a1fd7c56d4cddc2fd47065819f46c37917369bfb 100644 --- a/interface/web/tools/lib/lang/tr_usersettings.lng +++ b/interface/web/tools/lib/lang/tr_usersettings.lng @@ -9,4 +9,7 @@ $wb['generate_password_txt'] = 'Parola Ãœret'; $wb['repeat_password_txt'] = 'Parola Onayı'; $wb['password_mismatch_txt'] = 'Parola ile onayı aynı deÄŸil.'; $wb['password_match_txt'] = 'Parola ile onayı aynı.'; +$wb['language_txt'] = 'Dil'; +$wb['startmodule_txt'] = 'BaÅŸlangıç modülü'; +$wb['app_theme_txt'] = 'Tasarım'; ?> diff --git a/interface/web/tools/lib/module.conf.php b/interface/web/tools/lib/module.conf.php index 617ab0b6cd6d354e96499bfecbf90b8700b86d0c..5911cdbebfe822898c5968bfe663bdb2746886d8 100644 --- a/interface/web/tools/lib/module.conf.php +++ b/interface/web/tools/lib/module.conf.php @@ -5,7 +5,7 @@ global $conf; $module['name'] = 'tools'; $module['title'] = 'top_menu_tools'; $module['template'] = 'module.tpl.htm'; -$module['startpage'] = 'tools/index.php'; +$module['startpage'] = 'tools/user_settings.php'; $module['tab_width'] = '60'; $module['order'] = '80'; @@ -13,7 +13,7 @@ $module['order'] = '80'; //**** Change User password $items = array(); -$items[] = array( 'title' => 'Password and Language', +$items[] = array( 'title' => 'User Settings', 'target' => 'content', 'link' => 'tools/user_settings.php', 'html_id' => 'user_settings'); @@ -24,23 +24,4 @@ $module['nav'][] = array( 'title' => 'User Settings', 'items' => $items); unset($items); - -//**** Change interface settings + load settings page of the activated theme -$items = array(); - -$items[] = array( 'title' => 'Interface', - 'target' => 'content', - 'link' => 'tools/interface_settings.php', - 'html_id' => 'interface_settings'); - -if(file_exists(ISPC_WEB_PATH.'/tools/lib/interface.d/tpl_' . $_SESSION['s']['user']['app_theme'] . '.menu.php')) include_once ISPC_WEB_PATH.'/tools/lib/interface.d/tpl_' . $_SESSION['s']['user']['app_theme'] . '.menu.php'; - -$module['nav'][] = array( 'title' => 'Interface', - 'open' => 1, - 'items' => $items); - -unset($items); - - - ?> diff --git a/interface/web/tools/templates/interface_settings.htm b/interface/web/tools/templates/interface_settings.htm deleted file mode 100644 index 6767287206140bca39b52268de0d75be409fa621..0000000000000000000000000000000000000000 --- a/interface/web/tools/templates/interface_settings.htm +++ /dev/null @@ -1,22 +0,0 @@ - <!-- TODO: If user theme change is activated --> - <div class="form-group"> - <label for="app_theme" class="col-sm-3 control-label">{tmpl_var name='app_theme_txt'}</label> - <div class="col-sm-9"><select name="app_theme" id="app_theme" class="form-control"> - {tmpl_var name='app_theme'} - </select></div> - </div> - <!-- TODO: Limit to activated modules --> - <div class="form-group"> - <label for="startmodule" class="col-sm-3 control-label">{tmpl_var name='startmodule_txt'}</label> - <div class="col-sm-9"><select name="startmodule" id="startmodule" class="form-control"> - {tmpl_var name='startmodule'} - </select></div> - </div> - - - <input type="hidden" name="id" value="{tmpl_var name='id'}"> - - <div class="clear"><div class="right"> - <button class="btn btn-default formbutton-success" type="button" value="{tmpl_var name='btn_save_txt'}" data-submit-form="pageForm" data-form-action="tools/interface_settings.php">{tmpl_var name='btn_save_txt'}</button> - <button class="btn btn-default formbutton-default" type="button" value="{tmpl_var name='btn_cancel_txt'}" data-load-content="tools/index.php">{tmpl_var name='btn_cancel_txt'}</button> - </div></div> diff --git a/interface/web/tools/templates/user_settings.htm b/interface/web/tools/templates/user_settings.htm index 4fa1c9de34d0b2007d6923f32f4f147f2957e8ad..a620f419c54d58ed5ad4e3b044c8410b10d46160 100644 --- a/interface/web/tools/templates/user_settings.htm +++ b/interface/web/tools/templates/user_settings.htm @@ -1,41 +1,58 @@ - <div class="form-group"> - <label for="passwort" class="col-sm-3 control-label">{tmpl_var name='password_txt'}</label> - <div class="col-sm-9"> - <div class="input-group"> - <input type="password" name="passwort" id="passwort" value="{tmpl_var name='passwort'}" class="form-control" autocomplete="off" onkeyup="pass_check(this.value);checkPassMatch('passwort','repeat_password');" /> - <span class="input-group-btn"> - <button class="btn btn-default" type="button" onclick="generatePassword('passwort','repeat_password');">{tmpl_var name='generate_password_txt'}</button> - </span> - </div> - </div> - </div> - <div class="form-group"> - <label class="col-sm-3 control-label">{tmpl_var name='password_strength_txt'}</label> - <div class="col-sm-9 checkbox"> - <div id="passBar"></div> - <span id="passText"> </span> - </div> - </div> - <div class="form-group"> - <label for="repeat_password" class="col-sm-3 control-label">{tmpl_var name='repeat_password_txt'}</label> - <div class="col-sm-9"><input type="password" name="repeat_password" id="repeat_password" value="" class="form-control" autocomplete="off" onkeyup="checkPassMatch('passwort','repeat_password');" /></div></div> - <div class="form-group"> - <div class="col-sm-offset-3 col-sm-9"> - <div id="confirmpasswordError" style="display:none;" class="confirmpassworderror">{tmpl_var name='password_mismatch_txt'}</div> - <div id="confirmpasswordOK" style="display:none;" class="confirmpasswordok">{tmpl_var name='password_match_txt'}</div> - </div> - </div> - <div class="form-group"> - <label for="language" class="col-sm-3 control-label">{tmpl_var name='language_txt'}</label> - <div class="col-sm-9"><select name="language" id="language" class="form-control flags"> - {tmpl_var name='language'} - </select></div> - </div> - - - <input type="hidden" name="id" value="{tmpl_var name='id'}"> - - <div class="clear"><div class="right"> - <button class="btn btn-default formbutton-success" type="button" value="{tmpl_var name='btn_save_txt'}" data-submit-form="pageForm" data-form-action="tools/user_settings.php">{tmpl_var name='btn_save_txt'}</button> - <button class="btn btn-default formbutton-default" type="button" value="{tmpl_var name='btn_cancel_txt'}" data-load-content="tools/index.php">{tmpl_var name='btn_cancel_txt'}</button> - </div></div> +<div class="form-group"> + <label for="passwort" class="col-sm-3 control-label">{tmpl_var name='password_txt'}</label> + <div class="col-sm-9"> + <div class="input-group"> + <input type="password" name="passwort" id="passwort" value="{tmpl_var name='passwort'}" class="form-control" autocomplete="off" onkeyup="pass_check(this.value);checkPassMatch('passwort','repeat_password');" /> + <span class="input-group-btn"> + <button class="btn btn-default" type="button" onclick="generatePassword('passwort','repeat_password');">{tmpl_var name='generate_password_txt'}</button> + </span> + </div> + </div> +</div> +<div class="form-group"> + <label class="col-sm-3 control-label">{tmpl_var name='password_strength_txt'}</label> + <div class="col-sm-9 checkbox"> + <div id="passBar"></div> + <span id="passText"> </span> + </div> +</div> +<div class="form-group"> + <label for="repeat_password" class="col-sm-3 control-label">{tmpl_var name='repeat_password_txt'}</label> + <div class="col-sm-9"><input type="password" name="repeat_password" id="repeat_password" value="" class="form-control" autocomplete="off" onkeyup="checkPassMatch('passwort','repeat_password');" /></div> +</div> +<div class="form-group"> + <div class="col-sm-offset-3 col-sm-9"> + <div id="confirmpasswordError" style="display:none;" class="confirmpassworderror">{tmpl_var name='password_mismatch_txt'}</div> + <div id="confirmpasswordOK" style="display:none;" class="confirmpasswordok">{tmpl_var name='password_match_txt'}</div> + </div> +</div> +<div class="form-group"> + <label for="language" class="col-sm-3 control-label">{tmpl_var name='language_txt'}</label> + <div class="col-sm-9"><select name="language" id="language" class="form-control flags"> + {tmpl_var name='language'} + </select> + </div> +</div> +<!-- TODO: If user theme change is activated --> +<div class="form-group"> + <label for="app_theme" class="col-sm-3 control-label">{tmpl_var name='app_theme_txt'}</label> + <div class="col-sm-9"><select name="app_theme" id="app_theme" class="form-control"> + {tmpl_var name='app_theme'} + </select> + </div> +</div> +<!-- TODO: Limit to activated modules --> +<div class="form-group"> + <label for="startmodule" class="col-sm-3 control-label">{tmpl_var name='startmodule_txt'}</label> + <div class="col-sm-9"><select name="startmodule" id="startmodule" class="form-control"> + {tmpl_var name='startmodule'} + </select> + </div> +</div> +<input type="hidden" name="id" value="{tmpl_var name='id'}"> +<div class="clear"> + <div class="right"> + <button class="btn btn-default formbutton-success" type="button" value="{tmpl_var name='btn_save_txt'}" data-submit-form="pageForm" data-form-action="tools/user_settings.php">{tmpl_var name='btn_save_txt'}</button> + <button class="btn btn-default formbutton-default" type="button" value="{tmpl_var name='btn_cancel_txt'}" data-load-content="tools/index.php">{tmpl_var name='btn_cancel_txt'}</button> + </div> +</div> diff --git a/interface/web/tools/user_settings.php b/interface/web/tools/user_settings.php index 5c3876fb864d8036338dda594437adcf0208d765..03c0b6a7e2ce23cd7ea9a24d7d8396d2f6aa4d5d 100644 --- a/interface/web/tools/user_settings.php +++ b/interface/web/tools/user_settings.php @@ -86,22 +86,50 @@ class page_action extends tform_actions { if($_POST['passwort'] != $_POST['repeat_password']) { $app->tform->errorMessage = $app->tform->lng('password_mismatch'); } - + $language = $app->functions->check_language($_POST['language']); $_SESSION['s']['user']['language'] = $language; $_SESSION['s']['language'] = $language; } - + function onAfterUpdate() { global $app; - + if($_POST['passwort'] != '') { $tmp_user = $app->db->queryOneRecord("SELECT passwort FROM sys_user WHERE userid = ?", $_SESSION['s']['user']['userid']); $_SESSION['s']['user']['passwort'] = $tmp_user['passwort']; unset($tmp_user); } + $this->updateSessionTheme(); + + if($this->_theme_changed == true) { + // not the best way, but it works + header('Content-Type: text/html'); + print '<script type="text/javascript">document.location.reload();</script>'; + exit; + } } + var $_theme_changed = false; + function updateSessionTheme() { + global $app, $conf; + + if($this->dataRecord['app_theme'] != 'default') { + $tmp_path = ISPC_THEMES_PATH."/".$this->dataRecord['app_theme']; + if(!@is_dir($tmp_path) || (@file_exists($tmp_path."/ispconfig_version") && trim(file_get_contents($tmp_path."/ispconfig_version")) != ISPC_APP_VERSION)) { + // fall back to default theme if this one is not compatible with current ispc version + $this->dataRecord['app_theme'] = 'default'; + } + } + if($this->dataRecord['app_theme'] != $_SESSION['s']['user']['theme']) $this->_theme_changed = true; + $_SESSION['s']['theme'] = $this->dataRecord['app_theme']; + $_SESSION['s']['user']['theme'] = $_SESSION['s']['theme']; + $_SESSION['s']['user']['app_theme'] = $_SESSION['s']['theme']; + } + + function onAfterInsert() { + $this->onAfterUpdate(); + } } diff --git a/remoting_client/API-docs/content.html b/remoting_client/API-docs/content.html index c8eb8151641e2e921e813b5751516b7b77ff53f4..00590071d584d34c9c1205e276f6a44d9165579d 100644 --- a/remoting_client/API-docs/content.html +++ b/remoting_client/API-docs/content.html @@ -1,44 +1,159 @@ <!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd"> -<html><head> - <title>ISPCOnfig 3 remote API documentation</title> - - - - <meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1"> - - - <style type="text/css"> -<!-- -.command { - padding: 1em; - border: 1px dashed #2f6fab; - color: black; - background-color: #f9f9f9; - line-height: 1.1em; - font-family: Courier New, Courier, mono; - font-size: 12px; - font-style: italic; -} - -.system { - color: black; - font-family: Courier New, Courier, mono; - font-size: 12px; - font-style: italic; -} - -.highlight { - color: #FF0000; - font-family: Georgia, "Times New Roman", Times, serif; - font-size: 12px; - text-decoration: underline; -} ---> - </style></head><body style="color: rgb(0, 0, 0); background-color:#FFFFFF;;" alink="#804080" link="#804080" vlink="#603060"> -<div style="padding:40px"> -<h2>Home</h2> -<br> -ISPConfig 3 remote API documentation. -</div> - -</body></html> +<html> + +<head> + <title>ISPCOnfig 3 remote API documentation</title> + + <meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1"> + + <style type="text/css"> + <!-- + .command { + padding: 1em; + border: 1px dashed #2f6fab; + color: black; + background-color: #f9f9f9; + line-height: 1.1em; + font-family: Courier New, Courier, mono; + font-size: 12px; + font-style: italic; + } + + .notes { + color: #17075c; + font-family: Georgia, "Times New Roman", Times, serif; + font-size: 14px; + + } + + .preface { + color: black; + font-family: Georgia, "Times New Roman", Times, serif; + font-size: 14px; + } + + a:link, + a:visited { + text-decoration: none; + } + + + a:hover, + a:active { + text-decoration: underline; + } + + .question { + font-size: 14px; + padding: 0em 0em 0em 1em; + } + + .answer { + padding: 0em 0em 0em 2em; + } + --> + </style> +</head> + +<body> + <div style="padding:40px"> + <h2>ISPConfig 3 Remote API Documentation</h2> + <div class="notes"> + <h3>Notes</h3> + + <p class="preface">These notes are new for v3.2 and the content will change.<br /> + This is currently in FAQ format, because the topics seem to be Frequently Asked Questions.<br /> + Over time, notes will also be added to individual function pages.<br /> + If you would like to help with this process, please visit the forum, and add your comments to <a + href="https://www.howtoforge.com/community/threads/api-doc-you-can-help.84944/">this thread</a> + which has been created for this purpose.<br /> + Thank you for your patience and collaboration. + </p> + + <h4 class="question">What do we do to get started with API calls?</h4> + <div class="answer"> + <p>Create a "Remote" User in the ISPConfig UI. Check boxes there to assign permissions for + the kinds of queries that can be processed by that user.</p> + <p>Almost all API queries require a session_id. To get that, call the login function, sending the remote + username and password. The response will be a single value which will be used as your session ID for + a limited time period for all other requests.</p> + <p>Finishing with a logout request is recommended, but optional since the session IDs expire.</p> + </div> + + <h4 class="question">How do I get all records with a _get request?</h4> + <div class="answer">Rather than using a single integer ID as a primary key selector (domain_id, group_id, + etc), use -1. Where the primary key for a _get request is a string, use an empty array ' [] '. Do not + use an empty string ' "" ', which is itself a valid string and will/should return an empty array result. + </div> + + <h4 class="question">Are defaults used if we only send some of the defined parameters?</h4> + <div class="answer">No, there are no default values except where explicitly noted. For example, in the + system_config_get function, the key element is optional because it is documented as defaulting to an + empty string. For all requests, except where documented otherwise, send all documented parameters.</div> + + <h4 class="question">Examples are provided for SOAP, why not for REST?</h4> + <div class="answer">The REST API supports all functions and can be exactly substituted for SOAP examples. + For all functions, the request and response parameters are the same for SOAP and REST.</div> + + <h4 class="question">Are there examples for cURL? Python? C#? JavaScript? (anything else...)</h4> + <div class="answer">The documentation details request and response parameters which can be passed using any + language or toolchain. The URL always includes the function name. Queries are always sent via POST. The + result is always in the same JSON format. Use Postman or another tool to generate code in your preferred + languages.</div> + + <h4 class="question">I created a new record (domain, mail user, etc). Why isn't it showing in the UI?</h4> + <div class="answer">If a parent ID is invalid, a transaction may be accepted, with a record created under a + different parent entity. + </div> + + <h4 class="question">Why does a response show a successful result when there is no data?</h4> + <div class="answer">Carefully check the names and values being sent. Invalid name/value pairs are ignored. A + request that does not include a valid request paramenter is requesting nothing, so the return value is + nothing. The query was successful, and returned no data.</div> + + <h4 class="question">Why are parameters $session_id and others being ignored?</h4> + <div class="answer">The documentation shows PHP function syntax. SOAP and REST parameters do not include the + leading $dollar-sign</div> + + <h4 class="question">Key Concept:</h4> + <div class="answer">Based on the above you may be thinking there is very little error checking with this + API. That is correct. As noted by Jesse Norell: <blockquote>"The api is largely just an interface to the + database tables, and will usually accept what you send, whether that's consistent/correct or not. It + can be a feature, eg. you can create a mail alias first before creating the mailbox to which it + forwards, but it does mean you have a lot more testing to do on your side because you can't just + rely on an error to be thrown if you send inconsistent data."</blockquote> + </div> + + <h4 class="question">What is sys_userid and sys_groupid?</h4> + <div class="answer"> + <p>These fields are referenced often in the developer forum and in code, usually with some confusion. + These internal database fields are used in SQL queries to determine parent/child client + relationships. The fields are not passed to API calls, with the exception of one function, + client_get_id which is a convenience function to return the client_id for a sys_userid. In the past + other functions included these keys in the request. Now, when a function request includes a + client_id, at query time a lookup is done to get the internal sys_userid for that client.</p> + <p>The sys_userid can identify the creator of a record. This may be the ID of the local/UI user or the + remote/API user that is logging in to create records. If a client record is created without a + reseller, both the sys_userid and the sys_groupid are the same user ID.</p> + <p>If a client record is created with a reseller, the meaning of the fields is completely different. The + sys_userid is not a logged-in user ID. It is a new ID that represents the client under the reseller. + The sys_groupid for a client under a reseller is (a foreign-key to) the sys_userid of the client + record for the reseller. In this scenario, the sys_groupid establishes a child-to-parent + relationship.</p> + </div> + + <h4 class="question">What domains are the 'domains_' functions operating on?</h4> + <div class="answer">The 'domains_' functions update the 'domains' table, which is used by the domain limit + module. Clients and resellers are restricted to the domains in this table. To activate domain limits, go + to System > Interface > Main Config, then to the Domains tab. Logout/in. Then go to Sites, Add or Edit a + site, the "Domain" dropdown list uses this table.</div> + + <h4 class="question">What will be here next?</h4> + <div class="answer">Maybe something you write... </div> + + </div> + </div> + +</body> + +</html> \ No newline at end of file diff --git a/remoting_client/API-docs/mail_user_add.html b/remoting_client/API-docs/mail_user_add.html index a893e24e3f72724372f32a968b5a66d8840604ee..dab28350577e0a3197dd54019d1608ddaf8590f8 100644 --- a/remoting_client/API-docs/mail_user_add.html +++ b/remoting_client/API-docs/mail_user_add.html @@ -38,7 +38,7 @@ <p class="margin"> autoresponder_end_date (<span class="paratype">datetime</span>)</p> <p class="margin"> autoresponder_text (<span class="paratype">mediumtext</span>)</p> <p class="margin"> autoresponder_subject (<span class="paratype">varchar(255)</span>)</p> -<p class="margin"> move_junk (<span class="paratype">enum('n','y')</span>)</p> +<p class="margin"> move_junk (<span class="paratype">enum('y','a','n')</span>)</p> <p class="margin"> custom_mailfilter (<span class="paratype">mediumtext</span>)</p> <p class="margin"> postfix (<span class="paratype">enum('n','y')</span>)</p> <p class="margin"> access (<span class="paratype">enum('n','y')</span>)</p> diff --git a/remoting_client/API-docs/mail_user_update.html b/remoting_client/API-docs/mail_user_update.html index 8cb900fb40ccd88d3e5c45a9c7c01faf2e405a23..d30b9323934e31125d50495a4d0b4ca6299fc7c6 100644 --- a/remoting_client/API-docs/mail_user_update.html +++ b/remoting_client/API-docs/mail_user_update.html @@ -36,7 +36,7 @@ <p class="margin"> autoresponder_start_date (<span class="paratype">datetime</span>)</p> <p class="margin"> autoresponder_end_date (<span class="paratype">datetime</span>)</p> <p class="margin"> autoresponder_text (<span class="paratype">mediumtext</span>)</p> -<p class="margin"> move_junk (<span class="paratype">enum('n','y')</span>)</p> +<p class="margin"> move_junk (<span class="paratype">enum('y','a','n')</span>)</p> <p class="margin"> custom_mailfilter (<span class="paratype">mediumtext</span>)</p> <p class="margin"> postfix (<span class="paratype">enum('n','y')</span>)</p> <p class="margin"> access (<span class="paratype">enum('n','y')</span>)</p> diff --git a/remoting_client/examples/client_change_password.php b/remoting_client/examples/client_change_password.php index 5e20b11bc49773daa09ea29d8a27197be0e1f414..9782cc95690cda5126847dce24d375b2bfbb0e93 100644 --- a/remoting_client/examples/client_change_password.php +++ b/remoting_client/examples/client_change_password.php @@ -15,11 +15,21 @@ try { } //* Set the function parameters. - $domain = 'test.int'; - $record_record = $client->mail_domain_get_by_domain($session_id, $domain); + $client_id = 1; + $new_password = 'YourNewPassword'; + + $success = $client->client_change_password($session_id, $client_id, $new_password); + + if ($success == 1) + { + echo "Password has been changed successfully"; + } + else + { + echo "Error"; + } - print_r($record_record); echo "<br>"; if($client->logout($session_id)) { diff --git a/security/apache_directives.blacklist b/security/apache_directives.blacklist index 6dd376d643cac4d52f2885b9da68d043b08821f2..1c6d41f21091faf37c591704a21f339bae8d1869 100644 --- a/security/apache_directives.blacklist +++ b/security/apache_directives.blacklist @@ -1,3 +1,4 @@ /^\s*(LoadModule|LoadFile|Include|IncludeOptional)(\s+|[\\\\])/mi /^\s*(SuexecUserGroup|suPHP_UserGroup|suPHP_PHPPath|suPHP_ConfigPath)(\s+|[\\\\])/mi -/^\s*(FCGIWrapper|FastCgiExternalServer)(\s+|[\\\\])/mi \ No newline at end of file +/^\s*(FCGIWrapper|FastCgiExternalServer)(\s+|[\\\\])/mi +/^\s*(CustomLog|ErrorLog)(\s+|[\\\\])/mi diff --git a/server/conf/apache_apps.vhost.master b/server/conf/apache_apps.vhost.master index fe73487fa05c569612ddbe5f3530b3c47d9636b1..f65f47df90cf5df9868aecd50cb1d2a593f3fade 100644 --- a/server/conf/apache_apps.vhost.master +++ b/server/conf/apache_apps.vhost.master @@ -1,4 +1,3 @@ - ###################################################### # This virtual host contains the configuration # for the ISPConfig apps vhost @@ -15,6 +14,56 @@ SetHandler None </FilesMatch> + # SSL Configuration + <tmpl_var name="ssl_comment">SSLEngine On + <tmpl_if name='apache_version' op='>=' value='2.3.16' format='version'> + <tmpl_var name="ssl_comment">SSLProtocol All -SSLv3 -TLSv1 -TLSv1.1 + <tmpl_else> + <tmpl_var name="ssl_comment">SSLProtocol All -SSLv2 -SSLv3 + </tmpl_if> + <tmpl_var name="ssl_comment">SSLCertificateFile /usr/local/ispconfig/interface/ssl/ispserver.crt + <tmpl_var name="ssl_comment">SSLCertificateKeyFile /usr/local/ispconfig/interface/ssl/ispserver.key + <tmpl_var name="ssl_bundle_comment">SSLCACertificateFile /usr/local/ispconfig/interface/ssl/ispserver.bundle + + <tmpl_var name="ssl_comment">SSLCipherSuite 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 + <tmpl_var name="ssl_comment">SSLHonorCipherOrder On + <tmpl_if name='apache_version' op='>=' value='2.4.3' format='version'> + <tmpl_var name="ssl_comment">SSLCompression Off + </tmpl_if> + <tmpl_if name='apache_version' op='>=' value='2.4.11' format='version'> + <tmpl_var name="ssl_comment">SSLSessionTickets Off + </tmpl_if> + + <IfModule mod_headers.c> + # ISPConfig 3.1 currently requires unsafe-line for both scripts and styles, as well as unsafe-eval + Header set Content-Security-Policy "default-src 'self' 'unsafe-inline' 'unsafe-eval'; img-src 'self' data:; object-src 'none'" + <tmpl_var name="ssl_comment">Header set Content-Security-Policy "default-src 'self' 'unsafe-inline' 'unsafe-eval'; img-src 'self' data:; object-src 'none'; upgrade-insecure-requests" + Header set X-Content-Type-Options: nosniff + Header set X-Frame-Options: SAMEORIGIN + Header set X-XSS-Protection: "1; mode=block" + Header always edit Set-Cookie (.*) "$1; HTTPOnly" + <tmpl_var name="ssl_comment">Header always edit Set-Cookie (.*) "$1; Secure" + <IfVersion >= 2.4.7> + Header setifempty Strict-Transport-Security "max-age=15768000" + </IfVersion> + <IfVersion < 2.4.7> + Header set Strict-Transport-Security "max-age=15768000" + </IfVersion> + RequestHeader unset Proxy early + </IfModule> + + <tmpl_if name='apache_version' op='>=' value='2.3.3' format='version'> + <tmpl_var name="ssl_comment">SSLUseStapling On + <tmpl_var name="ssl_comment">SSLStaplingResponderTimeout 5 + <tmpl_var name="ssl_comment">SSLStaplingReturnResponderErrors Off + </tmpl_if> + +<tmpl_if name='apache_version' op='>=' value='2.3.3' format='version'> +<IfModule mod_ssl.c> + <tmpl_var name="ssl_comment">SSLStaplingCache shmcb:/var/run/ocsp(128000) +</IfModule> +</tmpl_if> + <IfModule mod_headers.c> RequestHeader unset Proxy early </IfModule> @@ -55,9 +104,9 @@ <Directory {tmpl_var name='apps_vhost_dir'}> Options +Indexes +FollowSymLinks +MultiViews +ExecCGI AllowOverride AuthConfig Indexes Limit Options FileInfo - <FilesMatch "\.php$"> - SetHandler fcgid-script - </FilesMatch> + <FilesMatch "\.php$"> + SetHandler fcgid-script + </FilesMatch> FCGIWrapper {tmpl_var name='apps_vhost_basedir'}/php-fcgi-scripts/apps/.php-fcgi-starter .php <tmpl_if name='apache_version' op='>' value='2.2' format='version'> Require all granted @@ -78,4 +127,6 @@ RewriteRule ^/rspamd/(.*) http://127.0.0.1:11334/$1 [P] {/tmpl_if} + + </VirtualHost> diff --git a/server/conf/apache_ispconfig.conf.master b/server/conf/apache_ispconfig.conf.master index e30ccd6d3bc6235d79902b0472ccb4d13bb8d1b1..040de236257467644fa4c644eb422bb4f2eee7ac 100644 --- a/server/conf/apache_ispconfig.conf.master +++ b/server/conf/apache_ispconfig.conf.master @@ -35,6 +35,10 @@ CustomLog "| /usr/local/ispconfig/server/scripts/vlogger -s access.log -t \"%Y%m </tmpl_if> </Directory> +<Directory /var/www> + Options -Indexes +</Directory> + <Directory /var/www/conf> AllowOverride None <tmpl_if name='apache_version' op='>' value='2.2' format='version'> diff --git a/server/conf/awstats_index.php.master b/server/conf/awstats_index.php.master index f7222c968721c87da286dc0ec937e25346bd58cc..b3e694ebbf3441038b45508f8e1e1624c3a0f481 100644 --- a/server/conf/awstats_index.php.master +++ b/server/conf/awstats_index.php.master @@ -45,10 +45,21 @@ arsort($awprev); $options = ""; foreach ($awprev as $key => $value) { + + if(file_exists($value.'/awsindex.html') && file_exists($value.'/goaindex.html')) { + $awstatsindex = 'awsindex.html'; + } elseif(file_exists($value.'/awsindex.html') && !file_exists($value.'/goaindex.html')) { + $awstatsindex = 'awsindex.html'; + } else { + $awstatsindex = 'goaindex.html'; + } + if($key == $current) $options .= "<option selected=\"selected\" value=\"{$awstatsindex}\">{$value}</option>\n"; else $options .= "<option value=\"{$value}/{$awstatsindex}\">{$value}</option>\n"; } +$awstatsindex = 'awsindex.html'; + $html = "<!DOCTYPE html>\n<html>\n<head>\n<title>Stats</title>\n"; $html .= "<style>\nhtml,body {margin:0px;padding:0px;width:100%;height:100%;background-color: #ccc;}\n"; $html .= "#header\n{\nwidth:100%;margin:0px auto;\nheight:20px;\nposition:fixed;\npadding:4px;\ntext-align:center;\n}\n"; @@ -60,4 +71,4 @@ $html .= $options; $html .= "</select>\n</div>\n<iframe src=\"{$awstatsindex}\" id=\"content\"></iframe>\n"; $html .= "</body></html>"; echo $html; -?> \ No newline at end of file +?> diff --git a/server/conf/goaccess_index.php.master b/server/conf/goaccess_index.php.master new file mode 100644 index 0000000000000000000000000000000000000000..d0a8bf3c84a39a3e1cab901fef8f64f674a37315 --- /dev/null +++ b/server/conf/goaccess_index.php.master @@ -0,0 +1,73 @@ +<?php +$yearmonth_text = "Jump to previous stats: "; +$script = "<script>function load_content(url){var iframe = document.getElementById(\"content\");iframe.src = url;}</script>\n"; + +if ($handle = opendir('.')) +{ + while(false !== ($file = readdir($handle))) + { + if (substr($file,0,1) != "." && is_dir($file)) + { + $orderkey = substr($file,0,4).substr($file,5,2); + if (substr($file,5,2) < 10 ) + { + $orderkey = substr($file,0,4)."0".substr($file,5,2); + } + $goaprev[$orderkey] = $file; + } + } + + $month = date("n"); + $year = date("Y"); + + if (date("d") == 1) + { + $month = date("m")-1; + if (date("m") == 1) + { + $year = date("Y")-1; + $month = "12"; + } + } + + $current = $year.$month; + if ( $month < 10 ) { + $current = $year."0".$month; + } + $goaprev[$current] = $year."-".$month; + + closedir($handle); +} + +arsort($goaprev); + +$options = ""; +foreach ($goaprev as $key => $value) +{ + + if(file_exists($value.'/awsindex.html') && file_exists($value.'/goaindex.html')) { + $goaccessindex = 'goaindex.html'; + } elseif(file_exists($value.'/awsindex.html') && !file_exists($value.'/goaindex.html')) { + $goaccessindex = 'awsindex.html'; + } else { + $goaccessindex = 'goaindex.html'; + } + + if($key == $current) $options .= "<option selected=\"selected\" value=\"{$goaccessindex}\">{$value}</option>\n"; + else $options .= "<option value=\"{$value}/{$goaccessindex}\">{$value}</option>\n"; + +} +$goaccessindex = 'goaindex.html'; + +$html = "<!DOCTYPE html>\n<html>\n<head>\n<title>Stats</title>\n"; +$html .= "<style>\nhtml,body {margin:0px;padding:0px;width:100%;height:100%;background-color: #ccc;}\n"; +$html .= "#header\n{\nwidth:100%;margin:0px auto;\nheight:20px;\nposition:fixed;\npadding:4px;\ntext-align:center;\n}\n"; +$html .= "iframe {width:100%;height:95%;margin:0px;margin-top:40px;border:0px;padding:0px;}\n</style>\n</head>\n<body>\n"; +$html .= $script; +$html .= "<div id=\"header\">{$yearmonth_text}\n"; +$html .= "<select name=\"goadate\" onchange=\"load_content(this.value)\">\n"; +$html .= $options; +$html .= "</select>\n</div>\n<iframe src=\"{$goaccessindex}\" id=\"content\"></iframe>\n"; +$html .= "</body></html>"; +echo $html; +?> diff --git a/server/conf/nginx_apps.vhost.master b/server/conf/nginx_apps.vhost.master index 8a97f82a439cd596d341cf91b313ad4a52625a6b..0c82c4631e0a41d0888a811b9f3097db63fd326a 100644 --- a/server/conf/nginx_apps.vhost.master +++ b/server/conf/nginx_apps.vhost.master @@ -191,7 +191,7 @@ server { fastcgi_pass unix:{cgi_socket}; } - location /images/mailman { + location ^~ /images/mailman { alias /usr/share/images/mailman; } diff --git a/server/conf/nginx_vhost.conf.master b/server/conf/nginx_vhost.conf.master index ce245787a5ce02dcd14d745b87fb1fc780647f1e..3fc50cc10805845b7e6656234d683ddd88698505 100644 --- a/server/conf/nginx_vhost.conf.master +++ b/server/conf/nginx_vhost.conf.master @@ -168,6 +168,7 @@ server { index index.html index.php; auth_basic "Members Only"; auth_basic_user_file <tmpl_var name='stats_auth_passwd_file'>; + add_header Content-Security-Policy "default-src * 'self' 'unsafe-inline';"; } location ^~ /awstats-icon { diff --git a/server/conf/sieve_filter.master b/server/conf/sieve_filter.master index f72cd11d1f68539269e262e727db68bfb79fd1f9..b5dedebf293706ea67fd7a2aff107186663ccbb4 100644 --- a/server/conf/sieve_filter.master +++ b/server/conf/sieve_filter.master @@ -1,7 +1,18 @@ +<tmpl_if name="sieve_script" op="==" value="before"> # This sieve script is generated by ISPConfig, any changes made will be overwritten. # You can create and activate a per-user sieve script (manually or via managesieve), -# which will execute before this. -require ["fileinto", "regex", "date", "relational", "vacation", "imap4flags", "envelope", "subaddress", "copy", "reject"]; +# which will execute after this. + +require ["fileinto", "mailbox", "regex", "date", "relational", "vacation", "imap4flags", "envelope", "subaddress", "copy", "reject"]; + +<tmpl_if name="move_junk" op="==" value="y"> +# Move spam to spam folder +if anyof (header :contains "X-Spam-Flag" "YES", header :contains "X-Spam" "Yes", header :contains "subject" "*** SPAM ***", header :contains "subject" "***SPAM***") { + fileinto :create "Junk"; + # Stop here so that we do not reply on spams + stop; +} +</tmpl_if> <tmpl_if name="cc"> # Send a copy of email to @@ -10,19 +21,23 @@ redirect "<tmpl_var name='address'>"; </tmpl_loop> </tmpl_if> -<tmpl_if name="move_junk" op="==" value="y"> +<tmpl_var name='custom_mailfilter'> + +</tmpl_if> +<tmpl_if name="sieve_script" op="==" value="after"> +# This sieve script is generated by ISPConfig, any changes made will be overwritten. +# You can create and activate a per-user sieve script (manually or via managesieve), +# which will execute before this. + +<tmpl_if name="move_junk" op="==" value="a"> # Move spam to spam folder if anyof (header :contains "X-Spam-Flag" "YES", header :contains "X-Spam" "Yes", header :contains "subject" "*** SPAM ***", header :contains "subject" "***SPAM***") { - fileinto "Junk"; + fileinto :create "Junk"; # Stop here so that we do not reply on spams stop; } </tmpl_if> -<tmpl_var name='custom_mailfilter'> - -keep; - <tmpl_if name="autoresponder" op="==" value="y"> ################################################################# # Autoreply @@ -30,13 +45,28 @@ keep; # Move spam to spam folder if anyof (header :contains "X-Spam-Flag" "YES", header :contains "X-Spam" "Yes", header :contains "subject" "*** SPAM ***", header :contains "subject" "***SPAM***") { - fileinto "Junk"; # Stop here so that we do not reply on spams stop; } + +<tmpl_if name="start_date"> +if currentdate :value "ge" "iso8601" "<tmpl_var name='start_date'>" { +</tmpl_if> +<tmpl_if name="end_date"> +if currentdate :value "le" "iso8601" "<tmpl_var name='end_date'>" { +</tmpl_if> + vacation :days 1 :subject "<tmpl_var name='autoresponder_subject'>" - # :addresses ["test@test.int", "till@test.int"] <tmpl_var name='addresses'> "<tmpl_var name='autoresponder_text'>"; + +<tmpl_if name="end_date"> +} +</tmpl_if> +<tmpl_if name="start_date"> +} +</tmpl_if> +</tmpl_if> + </tmpl_if> diff --git a/server/conf/sieve_filter_1.2.master b/server/conf/sieve_filter_1.2.master deleted file mode 100644 index edd4060b9f8012ad874a6e0aafcdac30187cba59..0000000000000000000000000000000000000000 --- a/server/conf/sieve_filter_1.2.master +++ /dev/null @@ -1,50 +0,0 @@ -# This sieve script is generated by ISPConfig, any changes made will be overwritten. -# You can create and activate a per-user sieve script (manually or via managesieve), -# which will execute before this. -require ["fileinto", "regex", "date", "relational", "vacation", "imap4flags", "envelope", "subaddress", "copy", "reject"]; - -<tmpl_if name="move_junk" op="==" value="y"> -# Move spam to spam folder -if anyof (header :contains "X-Spam-Flag" "YES", header :contains "X-Spam" "Yes", header :contains "subject" "*** SPAM ***", header :contains "subject" "***SPAM***") { - fileinto "Junk"; - # Stop here so that we do not reply on spams - stop; -} -</tmpl_if> - -<tmpl_if name="cc"> -# Send a copy of email to -<tmpl_loop name="ccloop"> -redirect "<tmpl_var name='address'>"; -</tmpl_loop> -</tmpl_if> - -<tmpl_var name='custom_mailfilter'> - -keep; - -<tmpl_if name="autoresponder" op="==" value="y"> -################################################################# -# Autoreply -################################################################# - -# Move spam to spam folder -if anyof (header :contains "X-Spam-Flag" "YES", header :contains "X-Spam" "Yes", header :contains "subject" "*** SPAM ***", header :contains "subject" "***SPAM***") { - # Stop here so that we do not reply on spams - stop; -} - -<tmpl_if name="autoresponder_date_limit"> -if allof(currentdate :value "ge" "iso8601" "<tmpl_var name='start_date'>", currentdate :value "le" "iso8601" "<tmpl_var name='end_date'>") { -</tmpl_if> - -vacation :days 1 - :subject "<tmpl_var name='autoresponder_subject'>" - <tmpl_var name='addresses'> - "<tmpl_var name='autoresponder_text'>"; - -<tmpl_if name="autoresponder_date_limit"> -} -</tmpl_if> -</tmpl_if> - diff --git a/server/lib/classes/backup.inc.php b/server/lib/classes/backup.inc.php index ba28cd4c90559b0a2f323517eb929cfe4ea554c9..485bd996d3b2059401e61dc1a1360d71a69f0b81 100644 --- a/server/lib/classes/backup.inc.php +++ b/server/lib/classes/backup.inc.php @@ -1147,7 +1147,7 @@ class backup $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_ERROR); + $app->log('Skipping database backup for domain ' . $web_domain['domain_id'] . ', because no related databases found.', LOGLEVEL_DEBUG); return true; } @@ -1450,4 +1450,3 @@ class backup } ?> - diff --git a/server/lib/classes/cron.d/150-goaccess.inc.php b/server/lib/classes/cron.d/150-goaccess.inc.php new file mode 100644 index 0000000000000000000000000000000000000000..8f397c819a2bde230d49314a8e861fd385749165 --- /dev/null +++ b/server/lib/classes/cron.d/150-goaccess.inc.php @@ -0,0 +1,257 @@ +<?php + +/* +Copyright (c) 2013, Marius Cramer, pixcept KG +Copyright (c) 2020, Michael Seevogel +All rights reserved. + +Redistribution and use in source and binary forms, with or without modification, +are permitted provided that the following conditions are met: + + * Redistributions of source code must retain the above copyright notice, + this list of conditions and the following disclaimer. + * Redistributions in binary form must reproduce the above copyright notice, + this list of conditions and the following disclaimer in the documentation + and/or other materials provided with the distribution. + * Neither the name of ISPConfig nor the names of its contributors + may be used to endorse or promote products derived from this software without + specific prior written permission. + +THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" AND +ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED +WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED. +IN NO EVENT SHALL THE COPYRIGHT OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, +INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, +BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, +DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY +OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING +NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, +EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. +*/ + +class cronjob_goaccess extends cronjob { + + // job schedule + protected $_schedule = '0 0 * * *'; + + /* this function is optional if it contains no custom code */ + public function onPrepare() { + global $app; + + parent::onPrepare(); + } + + /* this function is optional if it contains no custom code */ + public function onBeforeRun() { + global $app; + + return parent::onBeforeRun(); + } + + public function onRunJob() { + global $app, $conf; + + + //###################################################################################################### + // Create goaccess statistics + //###################################################################################################### + + $sql = "SELECT domain_id, domain, document_root, web_folder, type, system_user, system_group, parent_domain_id FROM web_domain WHERE (type = 'vhost' or type = 'vhostsubdomain' or type = 'vhostalias') and stats_type = 'goaccess' AND server_id = ?"; + $records = $app->db->queryAllRecords($sql, $conf['server_id']); + + $web_config = $app->getconf->get_server_config($conf['server_id'], 'web'); + + if(is_array($records) && !empty($records)) { + + /* Check if goaccess binary is in path/installed */ + if($app->system->is_installed('goaccess')) { + + $goaccess_conf_locs = array('/etc/goaccess.conf', '/etc/goaccess/goaccess.conf'); + $count = 0; + + foreach($goaccess_conf_locs as $goa_loc) { + if(is_file($goa_loc) && (filesize($goa_loc) > 0)) { + $goaccess_conf_main = $goa_loc; + break; + } else { + $count++; + if($count == 2) { + $app->log("No GoAccess base config found. Make sure that GoAccess is installed and that the goaccess.conf does exist in /etc or /etc/goaccess", LOGLEVEL_ERROR); + } + } + } + + + foreach($records as $rec) { + $yesterday = date('Ymd', strtotime("-1 day", time())); + + $log_folder = 'log'; + + if($rec['type'] == 'vhostsubdomain' || $rec['type'] == 'vhostalias') { + $tmp = $app->db->queryOneRecord('SELECT `domain` FROM web_domain WHERE domain_id = ?', $rec['parent_domain_id']); + $subdomain_host = preg_replace('/^(.*)\.' . preg_quote($tmp['domain'], '/') . '$/', '$1', $rec['domain']); + if($subdomain_host == '') $subdomain_host = 'web'.$rec['domain_id']; + $log_folder .= '/' . $subdomain_host; + unset($tmp); + } + + $logfile = $rec['document_root'].'/' . $log_folder . '/'.$yesterday.'-access.log'; + + if(!@is_file($logfile)) { + $logfile = $rec['document_root'].'/' . $log_folder . '/'.$yesterday.'-access.log.gz'; + if(!@is_file($logfile)) { + continue; + } + } + + $web_folder = (($rec['type'] == 'vhostsubdomain' || $rec['type'] == 'vhostalias') ? $rec['web_folder'] : 'web'); + $domain = $rec['domain']; + $statsdir = $rec['document_root'].'/'.$web_folder.'/stats'; + $goaccess_conf = $rec['document_root'].'/log/goaccess.conf'; + + /* + In case that you use a different log format, you should use a custom goaccess.conf which you'll have to put into /usr/local/ispconfig/server/conf-custom/. + By default the originally, with GoAccess shipped goaccess.conf from /etc/ or /etc/goaccess will be used along with the log-format value COMBINED. + */ + + if(file_exists("/usr/local/ispconfig/server/conf-custom/goaccess.conf.master") && (!file_exists($goaccess_conf))) { + $app->system->copy("/usr/local/ispconfig/server/conf-custom/goaccess.conf.master", $goaccess_conf); + } elseif(!file_exists($goaccess_conf)) { + + /* + By default the goaccess.conf should get copied by the webserver plugin but in case it wasn't, or it got deleted by accident we gonna copy it again to the destination dir. + Also there was no /usr/local/ispconfig/server/conf-custom/goaccess.conf.master, so we gonna use /etc/goaccess.conf or /etc/goaccess/goaccess.conf as the base conf. + */ + + $app->system->copy($goaccess_conf_main, $goaccess_conf); + $content = $app->system->file_get_contents($goaccess_conf, true); + $content = preg_replace('/^(#)?log-format COMBINED/m', "log-format COMBINED", $content); + $app->system->file_put_contents($goaccess_conf, $content, true); + unset($content); + } + + /* Update the primary domain name in the title, it could occasionally change */ + if(is_file($goaccess_conf) && (filesize($goaccess_conf) > 0)) { + $content = $app->system->file_get_contents($goaccess_conf, true); + $content = preg_replace('/^(#)?html-report-title(.*)/m', "html-report-title $domain", $content); + $app->system->file_put_contents($goaccess_conf, $content, true); + unset($content); + } + + $username = $rec['system_user']; + $groupname = $rec['system_group']; + $docroot = $rec['document_root']; + + if(!@is_dir($statsdir)) $app->system->mkdirpath($statsdir, 0755, $username, $groupname); + + $goa_db_dir = $docroot.'/'.$web_folder.'/stats/.db/'; + $output_html = $docroot.'/'.$web_folder.'/stats/goaindex.html'; + if(!@is_dir($goa_db_dir)) $app->system->mkdirpath($goa_db_dir); + + if(is_link('/var/log/ispconfig/httpd/'.$domain.'/yesterday-access.log')) $app->system->unlink('/var/log/ispconfig/httpd/'.$domain.'/yesterday-access.log'); + + symlink($logfile, '/var/log/ispconfig/httpd/'.$domain.'/yesterday-access.log'); + $app->system->exec_safe('chown -R ?:? ?', $username, $groupname, $statsdir); + + $goamonth = date("n"); + $goayear = date("Y"); + + if (date("d") == 1) { + $goamonth = date("m")-1; + if (date("m") == 1) { + $goayear = date("Y")-1; + $goamonth = "12"; + } + } + + if (date("d") == 2) { + $goamonth = date("m")-1; + if (date("m") == 1) { + $goayear = date("Y")-1; + $goamonth = "12"; + } + + $statsdirold = $statsdir."/".$goayear."-".$goamonth."/"; + + if(!is_dir($statsdirold)) { + $app->system->mkdirpath($statsdirold, 0755, $username, $groupname); + } + + // don't rotate db files per month + //rename($goa_db_dir, $statsdirold.'db'); + //mkdir($goa_db_dir); + + + $files = scandir($statsdir); + + foreach ($files as $file) { + if (substr($file, 0, 1) != "." && !is_dir("$statsdir"."/"."$file") && substr($file, 0, 1) != "w" && substr($file, 0, 1) != "i") $app->system->copy("$statsdir"."/"."$file", "$statsdirold"."$file"); + } + } + + // Get the GoAccess version + $match = array(); + + $goaccess_version = $app->system->system_safe('goaccess --version 2>&1'); + + if(preg_match('/[0-9]\.[0-9]{1,2}/', $goaccess_version, $match)) { + $goaccess_version = $match[0]; + } + + + /* + * GoAccess removed with 1.4 btree support and supports from this version on only "In-Memory with On-Disk Persitance Storage". + * For versions prior 1.4 you need GoAccess with btree support compiled! + */ + + $cust_lang = $conf['language']."_".strtoupper($conf['language']); + + if(version_compare($goaccess_version,1.4) >= 0) { + $app->system->exec_safe("LANG=? goaccess -f ? --config-file ? --restore --persist --db-path=? --output=?", $cust_lang, $logfile, $goaccess_conf, $goa_db_dir, $output_html); + } else { + $output = $app->system->system_safe('goaccess --help 2>&1'); + preg_match('/keep-db-files/', $output, $match); + if($match[0] == "keep-db-files") { + $app->system->exec_safe("LANG=? goaccess -f ? --config-file ? --load-from-disk --keep-db-files --db-path=? --output=?", $cust_lang, $logfile, $goaccess_conf, $goa_db_dir, $output_html); + } else { + $app->log("Stats not generated. The GoAccess binary was not compiled with btree support. Please recompile/reinstall GoAccess with btree support, or install GoAccess version >= 1.4!", LOGLEVEL_ERROR); + } + unset($output); + } + unset($cust_lang); + + if(!is_file($rec['document_root']."/".$web_folder."/stats/index.php")) { + if(file_exists("/usr/local/ispconfig/server/conf-custom/goaccess_index.php.master")) { + $app->system->copy("/usr/local/ispconfig/server/conf-custom/goaccess_index.php.master", $rec['document_root']."/".$web_folder."/stats/index.php"); + } else { + $app->system->copy("/usr/local/ispconfig/server/conf/goaccess_index.php.master", $rec['document_root']."/".$web_folder."/stats/index.php"); + } + } + + $app->log('Created GoAccess statistics for ' . $domain, LOGLEVEL_DEBUG); + if(is_file($rec['document_root']."/".$web_folder."/stats/index.php")) { + $app->system->chown($rec['document_root']."/".$web_folder."/stats/index.php", $rec['system_user']); + $app->system->chgrp($rec['document_root']."/".$web_folder."/stats/index.php", $rec['system_group']); + } + + $app->system->exec_safe('chown -R ?:? ?', $username, $groupname, $statsdir); + } + } else { + $app->log("Stats not generated. The GoAccess binary couldn't be found. Make sure that GoAccess is installed and that it is in \$PATH", LOGLEVEL_ERROR); + } + + } + + 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/cron.d/150-webalizer.inc.php b/server/lib/classes/cron.d/150-webalizer.inc.php index 42aa125e0f9b427883196bf2d511e25a3ad6d182..6c68cef183a6bcad8532bc5cbb13edcf01201800 100644 --- a/server/lib/classes/cron.d/150-webalizer.inc.php +++ b/server/lib/classes/cron.d/150-webalizer.inc.php @@ -127,8 +127,8 @@ class cronjob_webalizer extends cronjob { chown($statsdir, $username); chgrp($statsdir, $groupname); $app->system->exec_safe("$webalizer -c ? -n ? -s ? -r ? -q -T -p -o ? ?", $webalizer_conf, $domain, $domain, $domain, $statsdir, $logfile); - - exec('chown -R ?:? ?', $username, $groupname, $statsdir); + + $app->system->exec_safe('chown -R ?:? ?', $username, $groupname, $statsdir); } diff --git a/server/lib/classes/cron.d/200-logfiles.inc.php b/server/lib/classes/cron.d/200-logfiles.inc.php index b0470b2ec76c539c89dc811716e2359a71145183..ef0bbb1201b0bf35a67d77e96fc6b3d4c1e1a408 100644 --- a/server/lib/classes/cron.d/200-logfiles.inc.php +++ b/server/lib/classes/cron.d/200-logfiles.inc.php @@ -124,7 +124,7 @@ class cronjob_logfiles extends cronjob { $cron_logfiles = array('cron.log', 'cron_error.log', 'cron_wget.log'); foreach($cron_logfiles as $cron_logfile) { - $cron_logfile = $rec['document_root'].'/' . $log_folder . '/' . $cron_logfile; + $cron_logfile = $rec['document_root'].'/private/' . $cron_logfile; // rename older files (move up by one) $num = $log_retention; @@ -193,7 +193,7 @@ class cronjob_logfiles extends cronjob { if(is_file($ispconfig_logfile . '.' . $num . '.gz')) rename($ispconfig_logfile . '.' . $num . '.gz', $ispconfig_logfile . '.' . ($num + 1) . '.gz'); $num--; } - // compress current logfile + //* compress current logfile if(is_file($ispconfig_logfile)) { $app->system->exec_safe("gzip -c ? > ?", $ispconfig_logfile, $ispconfig_logfile . '.1.gz'); $app->system->exec_safe("cat /dev/null > ?", $ispconfig_logfile); diff --git a/server/lib/classes/letsencrypt.inc.php b/server/lib/classes/letsencrypt.inc.php index 734663811921d799674fcc9e0cbe3b5e1b28bf60..3ce63b48b48d0a86f420c5b6a1fbc4415fa33644 100644 --- a/server/lib/classes/letsencrypt.inc.php +++ b/server/lib/classes/letsencrypt.inc.php @@ -30,7 +30,7 @@ EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. class letsencrypt { - /** + /** * Construct for this class * * @return system @@ -74,7 +74,7 @@ class letsencrypt { $cert_arg = '--fullchain-file ' . escapeshellarg($bundle_file) . ' --cert-file ' . escapeshellarg($cert_file); } - $cmd = 'R=0 ; C=0 ; ' . $letsencrypt . ' --issue ' . $cmd . ' -w /usr/local/ispconfig/interface/acme ; R=$? ; if [[ $R -eq 0 || $R -eq 2 ]] ; then ' . $letsencrypt . ' --install-cert ' . $cmd . ' --key-file ' . escapeshellarg($key_file) . ' ' . $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'; + $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; } @@ -542,4 +542,4 @@ class letsencrypt { return false; } } -} \ No newline at end of file +} diff --git a/server/lib/classes/system.inc.php b/server/lib/classes/system.inc.php index 0556578a963ad217dff169d260d176f469a2e4d3..ba86d1f11597c5f770fe332936dc1dc3ec1354c8 100644 --- a/server/lib/classes/system.inc.php +++ b/server/lib/classes/system.inc.php @@ -1787,6 +1787,18 @@ class system{ } } + public function is_blacklisted_web_path($path) { + $blacklist = array('bin', 'cgi-bin', 'dev', 'etc', 'home', 'lib', 'lib64', 'log', 'ssl', 'usr', 'var', 'proc', 'net', 'sys', 'srv', 'sbin', 'run'); + + $path = ltrim($path, '/'); + $parts = explode('/', $path); + if(in_array(strtolower($parts[0]), $blacklist, true)) { + return true; + } + + return false; + } + function web_folder_protection($document_root, $protect) { global $app, $conf; @@ -2215,7 +2227,7 @@ class system{ $program_args .= ' ' . escapeshellarg($prog); } - $cmd = 'jk_cp -k ?' . $program_args; + $cmd = 'jk_cp -j ?' . $program_args; $this->exec_safe($cmd, $home_dir); return true; @@ -2238,7 +2250,7 @@ class system{ } // Initialize the chroot into the specified directory with the specified applications - $cmd = 'jk_init -f -k -c /etc/jailkit/jk_init.ini -j ?' . $app_args; + $cmd = 'jk_init -f -c /etc/jailkit/jk_init.ini -j ?' . $app_args; $this->exec_safe($cmd, $home_dir); // Create the temp directory diff --git a/server/mods-available/remoteaction_core_module.inc.php b/server/mods-available/remoteaction_core_module.inc.php index 3b6bb9fb497366c4e2d05d2324777a6eb0273620..a32f99f87f007b0926b5c21df54e0558fb9015a8 100644 --- a/server/mods-available/remoteaction_core_module.inc.php +++ b/server/mods-available/remoteaction_core_module.inc.php @@ -172,16 +172,17 @@ class remoteaction_core_module { /* * Do the update */ - exec("aptitude update"); - exec("aptitude safe-upgrade -y"); + //Guess this is not wanted here? + //exec("aptitude update"); + //exec("aptitude safe-upgrade -y"); //TODO : change this when distribution information has been integrated into server record if(file_exists('/etc/gentoo-release')) { exec("glsa-check -f --nocolor affected"); } else { - exec("aptitude update"); - exec("aptitude safe-upgrade -y"); + exec("apt-get update"); + exec("apt-get -y upgrade"); } /* @@ -192,7 +193,7 @@ class remoteaction_core_module { private function _doIspCUpdate($action) { global $app; - + // Ensure that this code is not executed twice as this would cause a loop in case of a failure $this->_actionDone($action['action_id'], 'ok'); diff --git a/server/mods-available/web_module.inc.php b/server/mods-available/web_module.inc.php index 02f31510c2a2001c3c2ef4cada45cfa3c1a76377..609e9212dc3a6fd6b6a74c2fcb3b9622039a915c 100644 --- a/server/mods-available/web_module.inc.php +++ b/server/mods-available/web_module.inc.php @@ -32,7 +32,8 @@ class web_module { var $module_name = 'web_module'; var $class_name = 'web_module'; - var $actions_available = array( 'web_domain_insert', + var $actions_available = array( + 'web_domain_insert', 'web_domain_update', 'web_domain_delete', 'ftp_user_insert', @@ -64,7 +65,9 @@ class web_module { 'aps_package_delete', 'aps_setting_insert', 'aps_setting_update', - 'aps_setting_delete'); + 'aps_setting_delete', + 'directive_snippets_update' + ); //* This function is called during ispconfig installation to determine // if a symlink shall be created for this plugin. @@ -114,6 +117,7 @@ class web_module { $app->modules->registerTableHook('aps_instances_settings', 'web_module', 'process'); $app->modules->registerTableHook('aps_packages', 'web_module', 'process'); $app->modules->registerTableHook('aps_settings', 'web_module', 'process'); + $app->modules->registerTableHook('directive_snippets', 'web_module', 'process'); // Register service $app->services->registerService('httpd', 'web_module', 'restartHttpd'); @@ -185,6 +189,11 @@ class web_module { if($action == 'u') $app->plugins->raiseEvent('aps_setting_update', $data); if($action == 'd') $app->plugins->raiseEvent('aps_setting_delete', $data); break; + case 'directive_snippets': + if($action == 'i') $app->plugins->raiseEvent('directive_snippets_insert', $data); + if($action == 'u') $app->plugins->raiseEvent('directive_snippets_update', $data); + if($action == 'd') $app->plugins->raiseEvent('directive_snippets_delete', $data); + break; } // end switch } // end function diff --git a/server/plugins-available/apache2_plugin.inc.php b/server/plugins-available/apache2_plugin.inc.php index 61116d00411fcc97e4ea76936991b61e8abdc71e..f11476b4021f3a224d763b646433e66347b4066d 100644 --- a/server/plugins-available/apache2_plugin.inc.php +++ b/server/plugins-available/apache2_plugin.inc.php @@ -93,6 +93,34 @@ class apache2_plugin { $app->plugins->registerEvent('ftp_user_delete', $this->plugin_name, 'ftp_user_delete'); $app->plugins->registerAction('php_ini_changed', $this->plugin_name, 'php_ini_changed'); + + $app->plugins->registerEvent('directive_snippets_update', $this->plugin_name, 'directive_snippets'); + } + + function directive_snippets($event_name, $data) { + global $app, $conf; + + $snippet = $data['new']; + if($snippet['active'] == 'y' && $snippet['update_sites'] == 'y') { + if($snippet['type'] == 'php') { + $rlike = $snippet['directive_snippets_id'].'|,'.$snippet['directive_snippets_id'].'|'.$snippet['directive_snippets_id'].','; + $affected_snippets = $app->db->queryAllRecords('SELECT directive_snippets_id FROM directive_snippets WHERE required_php_snippets RLIKE(?) AND type = ?', $rlike, 'apache'); + if(is_array($affected_snippets) && !empty($affected_snippets)) { + foreach($affected_snippets as $snippet) $sql_in[] = $snippet['directive_snippets_id']; + $affected_sites = $app->db->queryAllRecords('SELECT domain_id FROM web_domain WHERE server_id = ? AND directive_snippets_id IN ?', $conf['server_id'], $sql_in); + } + } + if($snippet['type'] == 'apache') $affected_sites = $app->db->queryAllRecords('SELECT domain_id FROM web_domain WHERE server_id = ? AND directive_snippets_id = ?', $conf['server_id'], $snippet['directive_snippets_id']); + + if(is_array($affected_sites) && !empty($affected_sites)) { + foreach($affected_sites as $site) { + $website = $app->db->queryOneRecord('SELECT * FROM web_domain WHERE domain_id = ?', $site['domain_id']); + $new_data['old'] = $website; + $new_data['new'] = $website; + $this->update('web_domain_update', $new_data); + } + } + } } private function get_master_php_ini_content($web_data) { @@ -109,10 +137,14 @@ class apache2_plugin { $master_php_ini_path = $web_config['php_ini_path_apache']; } else { // check for custom php - if($web_data['fastcgi_php_version'] != '') { - $tmp = explode(':', $web_data['fastcgi_php_version']); - if(isset($tmp[2])) { - $tmppath = $tmp[2]; + if($web_data['server_php_id'] != 0) { + $tmp = $app->db->queryOneRecord('SELECT * FROM server_php WHERE server_php_id = ?', $web_data['server_php_id']); + $ini_key = 'php_fastcgi_ini_dir'; + if($web_data['php'] === 'php-fpm') { + $ini_key = 'php_fpm_ini_dir'; + } + if($tmp && $tmp[$ini_key]) { + $tmppath = $tmp[$ini_key]; if(substr($tmppath, -7) != 'php.ini') { if(substr($tmppath, -1) != '/') $tmppath .= '/'; $tmppath .= 'php.ini'; @@ -169,21 +201,21 @@ class apache2_plugin { $qrystr .= " AND php = 'mod'"; } elseif($data['mode'] == 'fast-cgi') { $qrystr .= " AND php = 'fast-cgi'"; - if($data['php_version']) { - $qrystr .= " AND fastcgi_php_version LIKE ?"; - $param = '%:' . $data['php_version']; + if(isset($data['php_version'])) { + $qrystr .= " AND server_php_id = ?"; + $param = $data['php_version']; } } elseif($data['mode'] == 'php-fpm') { $qrystr .= " AND php = 'php-fpm'"; - if($data['php_version']) { - $qrystr .= " AND fastcgi_php_version LIKE ?"; - $param = '%:' . $data['php_version'] . ':%'; + if(isset($data['php_version'])) { + $qrystr .= " AND server_php_id = ?"; + $param = $data['php_version']; } } elseif($data['mode'] == 'hhvm') { $qrystr .= " AND php = 'hhvm'"; - if($data['php_version']) { - $qrystr .= " AND fastcgi_php_version LIKE ?"; - $param = '%:' . $data['php_version'] . ':%'; + if(isset($data['php_version'])) { + $qrystr .= " AND server_php_id = ?"; + $param = $data['php_version']; } } else { $qrystr .= " AND php != 'mod' AND php != 'fast-cgi'"; @@ -580,6 +612,11 @@ class apache2_plugin { $log_folder .= '/' . $subdomain_host; unset($tmp); + if($app->system->is_blacklisted_web_path($web_folder)) { + $app->log('Vhost ' . $subdomain_host . ' is using a blacklisted web folder: ' . $web_folder, LOGLEVEL_ERROR); + return 0; + } + if(isset($data['old']['parent_domain_id'])) { // old one $tmp = $app->db->queryOneRecord('SELECT `domain` FROM web_domain WHERE domain_id = ?', $data['old']['parent_domain_id']); @@ -731,7 +768,13 @@ class apache2_plugin { // Check if the directories are there and create them if necessary. $app->system->web_folder_protection($data['new']['document_root'], false); - if(!is_dir($data['new']['document_root'].'/' . $web_folder)) $app->system->mkdirpath($data['new']['document_root'].'/' . $web_folder); + if(!is_dir($data['new']['document_root'].'/' . $web_folder)) { + if($web_folder !== 'web') { //vhost sub/alias + $app->system->mkdirpath($data['new']['document_root'].'/' . $web_folder, 0755, $username, $groupname); + } else { + $app->system->mkdirpath($data['new']['document_root'].'/' . $web_folder); + } + } if(!is_dir($data['new']['document_root'].'/' . $web_folder . '/error') and $data['new']['errordocs']) $app->system->mkdirpath($data['new']['document_root'].'/' . $web_folder . '/error'); if($data['new']['stats_type'] != '' && !is_dir($data['new']['document_root'].'/' . $web_folder . '/stats')) $app->system->mkdirpath($data['new']['document_root'].'/' . $web_folder . '/stats'); if(!is_dir($data['new']['document_root'].'/ssl')) $app->system->mkdirpath($data['new']['document_root'].'/ssl'); @@ -1113,11 +1156,21 @@ class apache2_plugin { } $fastcgi_config = $app->getconf->get_server_config($conf['server_id'], 'fastcgi'); - - if(trim($data['new']['fastcgi_php_version']) != ''){ - list($custom_fastcgi_php_name, $custom_fastcgi_php_executable, $custom_fastcgi_php_ini_dir) = explode(':', trim($data['new']['fastcgi_php_version'])); - if(is_file($custom_fastcgi_php_ini_dir)) $custom_fastcgi_php_ini_dir = dirname($custom_fastcgi_php_ini_dir); - if(substr($custom_fastcgi_php_ini_dir, -1) == '/') $custom_fastcgi_php_ini_dir = substr($custom_fastcgi_php_ini_dir, 0, -1); + $custom_fastcgi_php_executable = ''; + + if($data['new']['server_php_id'] != 0){ + $tmp_php = $app->db->queryOneRecord('SELECT * FROM server_php WHERE server_php_id = ?', $data['new']['server_php_id']); + if($tmp_php) { + if($data['new']['php'] === 'php-fpm') { + $custom_fastcgi_php_ini_dir = $tmp_php['php_fpm_ini_dir']; + $custom_fastcgi_php_executable = $tmp_php['php_fpm_init_script']; + } else { + $custom_fastcgi_php_ini_dir = $tmp_php['php_fastcgi_ini_dir']; + $custom_fastcgi_php_executable = $tmp_php['php_fastcgi_binary']; + } + if(is_file($custom_fastcgi_php_ini_dir)) $custom_fastcgi_php_ini_dir = dirname($custom_fastcgi_php_ini_dir); + if(substr($custom_fastcgi_php_ini_dir, -1) == '/') $custom_fastcgi_php_ini_dir = substr($custom_fastcgi_php_ini_dir, 0, -1); + } } //* Create custom php.ini @@ -1180,6 +1233,11 @@ class apache2_plugin { $vhost_data['apache_directives'] = $snippet['snippet']; } } + + if(!$vhost_data['apache_directives']) { + $vhost_data['apache_directives'] = ''; // ensure it is not null + } + // Make sure we only have Unix linebreaks $vhost_data['apache_directives'] = str_replace("\r\n", "\n", $vhost_data['apache_directives']); $vhost_data['apache_directives'] = str_replace("\r", "\n", $vhost_data['apache_directives']); @@ -1466,7 +1524,7 @@ class apache2_plugin { $fcgi_tpl->setVar('apache_version', $app->system->getapacheversion()); // Support for multiple PHP versions (FastCGI) - if(trim($data['new']['fastcgi_php_version']) != ''){ + if($data['new']['server_php_id'] != 0){ $default_fastcgi_php = false; if(substr($custom_fastcgi_php_ini_dir, -1) != '/') $custom_fastcgi_php_ini_dir .= '/'; } else { @@ -1541,18 +1599,28 @@ class apache2_plugin { */ // Support for multiple PHP versions if($data['new']['php'] == 'php-fpm'){ - if(trim($data['new']['fastcgi_php_version']) != ''){ + if($data['new']['server_php_id'] != 0){ $default_php_fpm = false; - list($custom_php_fpm_name, $custom_php_fpm_init_script, $custom_php_fpm_ini_dir, $custom_php_fpm_pool_dir) = explode(':', trim($data['new']['fastcgi_php_version'])); - if(substr($custom_php_fpm_ini_dir, -1) != '/') $custom_php_fpm_ini_dir .= '/'; + $tmp_php = $app->db->queryOneRecord('SELECT * FROM server_php WHERE server_php_id = ?', $data['new']['server_php_id']); + if($tmp_php) { + $custom_php_fpm_ini_dir = $tmp_php['php_fpm_ini_dir']; + $custom_php_fpm_init_script = $tmp_php['php_fpm_init_script']; + $custom_php_fpm_pool_dir = $tmp_php['php_fpm_pool_dir']; + if(substr($custom_php_fpm_ini_dir, -1) != '/') $custom_php_fpm_ini_dir .= '/'; + } } else { $default_php_fpm = true; } } else { - if(trim($data['old']['fastcgi_php_version']) != '' && ($data['old']['php'] == 'php-fpm' || $data['old']['php'] == 'hhvm')){ + if($data['old']['server_php_id'] != 0 && ($data['old']['php'] == 'php-fpm' || $data['old']['php'] == 'hhvm')){ $default_php_fpm = false; - list($custom_php_fpm_name, $custom_php_fpm_init_script, $custom_php_fpm_ini_dir, $custom_php_fpm_pool_dir) = explode(':', trim($data['old']['fastcgi_php_version'])); - if(substr($custom_php_fpm_ini_dir, -1) != '/') $custom_php_fpm_ini_dir .= '/'; + $tmp_php = $app->db->queryOneRecord('SELECT * FROM server_php WHERE server_php_id = ?', $data['old']['server_php_id']); + if($tmp_php) { + $custom_php_fpm_ini_dir = $tmp_php['php_fpm_ini_dir']; + $custom_php_fpm_init_script = $tmp_php['php_fpm_init_script']; + $custom_php_fpm_pool_dir = $tmp_php['php_fpm_pool_dir']; + if(substr($custom_php_fpm_ini_dir, -1) != '/') $custom_php_fpm_ini_dir .= '/'; + } } else { $default_php_fpm = true; } @@ -1825,7 +1893,7 @@ class apache2_plugin { if($data['new']['stats_type'] != '') { if(!is_dir($data['new']['document_root'].'/' . $web_folder . '/stats')) $app->system->mkdir($data['new']['document_root'].'/' . $web_folder . '/stats'); - $ht_file = "AuthType Basic\nAuthName \"Members Only\"\nAuthUserFile ".$data['new']['document_root']."/web/stats/.htpasswd_stats\nrequire valid-user"; + $ht_file = "AuthType Basic\nAuthName \"Members Only\"\nAuthUserFile ".$data['new']['document_root']."/web/stats/.htpasswd_stats\nrequire valid-user\nDirectoryIndex index.html index.php\nHeader unset Content-Security-Policy"; $app->system->file_put_contents($data['new']['document_root'].'/' . $web_folder . '/stats/.htaccess', $ht_file); $app->system->chmod($data['new']['document_root'].'/' . $web_folder . '/stats/.htaccess', 0755); unset($ht_file); @@ -1847,11 +1915,31 @@ class apache2_plugin { $this->awstats_update($data, $web_config); } + //* Create GoAccess configuration + if($data['new']['stats_type'] == 'goaccess' && ($data['new']['type'] == 'vhost' || $data['new']['type'] == 'vhostsubdomain' || $data['new']['type'] == 'vhostalias')) { + $this->goaccess_update($data, $web_config); + } + //* Remove Stats-Folder when Statistics set to none if($data['new']['stats_type'] == '' && ($data['new']['type'] == 'vhost' || $data['new']['type'] == 'vhostsubdomain' || $data['new']['type'] == 'vhostalias')) { $app->file->removeDirectory($data['new']['document_root'].'/web/stats'); } + //* Remove the AWstats configuration file + if($data['old']['stats_type'] == 'awstats' && $data['new']['stats_type'] != 'awstats') { + $this->awstats_delete($data, $web_config); + } + + //* Remove the GoAccess configuration file + if($data['old']['stats_type'] == 'goaccess' && $data['new']['stats_type'] != 'goaccess') { + $this->goaccess_delete($data, $web_config); + } + + //* Remove the Webalizer configuration file + if($data['old']['stats_type'] == 'webalizer' && $data['new']['stats_type'] != 'webalizer') { + $this->webalizer_delete($data, $web_config); + } + $this->php_fpm_pool_update($data, $web_config, $pool_dir, $pool_name, $socket_dir, $web_folder); $this->hhvm_update($data, $web_config); @@ -2255,7 +2343,7 @@ class apache2_plugin { } - //* Remove the awstats configuration file + //* Remove the AWstats configuration file if($data['old']['stats_type'] == 'awstats') { $this->awstats_delete($data, $web_config); } @@ -2957,18 +3045,111 @@ class apache2_plugin { } } - //* Delete the awstats configuration file - private function awstats_delete ($data, $web_config) { + //* Delete the awstats configuration file + private function awstats_delete ($data, $web_config) { + global $app; + + $awstats_conf_dir = $web_config['awstats_conf_dir']; + + if ( @is_file($awstats_conf_dir.'/awstats.'.$data['old']['domain'].'.conf') ) { + $app->system->unlink($awstats_conf_dir.'/awstats.'.$data['old']['domain'].'.conf'); + $app->log('Removed AWStats config file: '.$awstats_conf_dir.'/awstats.'.$data['old']['domain'].'.conf', LOGLEVEL_DEBUG); + } + } + + //* Update the GoAccess configuration file + private function goaccess_update ($data, $web_config) { + global $app; + + $web_folder = $data['new']['web_folder']; + if($data['new']['type'] == 'vhost') $web_folder = 'web'; + + $goaccess_conf_locs = array('/etc/goaccess.conf', '/etc/goaccess/goaccess.conf'); + $count = 0; + + foreach($goaccess_conf_locs as $goa_loc) { + if(is_file($goa_loc) && (filesize($goa_loc) > 0)) { + $goaccess_conf_main = $goa_loc; + break; + } else { + $count++; + if($count == 2) { + $app->log("No GoAccess base config found. Make sure that GoAccess is installed and that the goaccess.conf does exist in /etc or /etc/goaccess", LOGLEVEL_WARN); + } + } + } + + if(!is_dir($data['new']['document_root']."/" . $web_folder . "/stats/.db")) $app->system->mkdirpath($data['new']['document_root'] . "/" . $web_folder . "/stats/.db"); + $goaccess_conf = $data['new']['document_root'].'/log/goaccess.conf'; + + /* + In case that you use a different log format, you should use a custom goaccess.conf which you'll have to put into /usr/local/ispconfig/server/conf-custom/. + By default the originaly with GoAccess shipped goaccess.conf from /etc/ will be used along with the log-format value COMBINED. + */ + + if(file_exists("/usr/local/ispconfig/server/conf-custom/goaccess.conf.master")) { + $app->system->copy("/usr/local/ispconfig/server/conf-custom/goaccess_index.php.master", $goaccess_conf); + + } elseif(!file_exists($goaccess_conf)) { + + /* + By default the goaccess.conf should get copied by the webserver plugin but in case it wasn't, or it got deleted by accident we gonna copy it again to the destination dir. + Also there was no /usr/local/ispconfig/server/conf-custom/goaccess.conf.master, so we gonna use /etc/goaccess.conf as the base conf. + */ + + $app->system->copy($goaccess_conf_main, $goaccess_conf); + $content = $app->system->file_get_contents($goaccess_conf, true); + $content = preg_replace('/^(#)?log-format COMBINED/m', "log-format COMBINED", $content); + $app->system->file_put_contents($goaccess_conf, $content, true); + unset($content); + + } + + if(file_exists($goaccess_conf)) { + $domain = $data['new']['domain']; + $content = $app->system->file_get_contents($goaccess_conf, true); + $content = preg_replace('/^(#)?html-report-title(.*)/m', "html-report-title $domain", $content); + $app->system->file_put_contents($goaccess_conf, $content, true); + unset($content); + + } + + if(is_file($goaccess_conf) && (filesize($goaccess_conf) > 0)) { + $app->log('Created GoAccess config file: '.$goaccess_conf, LOGLEVEL_DEBUG); + } + + if(is_file($data['new']['document_root']."/" . $web_folder . "/stats/index.html")) $app->system->unlink($data['new']['document_root']."/" . $web_folder . "/stats/index.html"); + if(file_exists("/usr/local/ispconfig/server/conf-custom/goaccess_index.php.master")) { + $app->system->copy("/usr/local/ispconfig/server/conf-custom/goaccess_index.php.master", $data['new']['document_root']."/" . $web_folder . "/stats/index.php"); + } else { + $app->system->copy("/usr/local/ispconfig/server/conf/goaccess_index.php.master", $data['new']['document_root']."/" . $web_folder . "/stats/index.php"); + } + } + + //* Delete the GoAccess configuration file + private function goaccess_delete ($data, $web_config) { global $app; - $awstats_conf_dir = $web_config['awstats_conf_dir']; + $goaccess_conf = $data['old']['document_root'] . "/log/goaccess.conf"; - if ( @is_file($awstats_conf_dir.'/awstats.'.$data['old']['domain'].'.conf') ) { - $app->system->unlink($awstats_conf_dir.'/awstats.'.$data['old']['domain'].'.conf'); - $app->log('Removed AWStats config file: '.$awstats_conf_dir.'/awstats.'.$data['old']['domain'].'.conf', LOGLEVEL_DEBUG); + if ( @is_file($goaccess_conf) ) { + $app->system->unlink($goaccess_conf); + $app->log('Removed GoAccess config file: '.$goaccess_conf, LOGLEVEL_DEBUG); } } + //* Delete the Webalizer configuration file + private function webalizer_delete ($data, $web_config) { + global $app; + + $webalizer_conf = $data['old']['document_root'] . "/log/webalizer.conf"; + + if ( @is_file($webalizer_conf) ) { + $app->system->unlink($webalizer_conf); + $app->log('Removed Webalizer config file: '.$webalizer_conf, LOGLEVEL_DEBUG); + } + } + private function hhvm_update($data, $web_config) { global $app, $conf; @@ -3054,18 +3235,28 @@ class apache2_plugin { //$reload = false; if($data['new']['php'] == 'php-fpm'){ - if(trim($data['new']['fastcgi_php_version']) != ''){ + if($data['new']['server_php_id'] != 0){ $default_php_fpm = false; - list($custom_php_fpm_name, $custom_php_fpm_init_script, $custom_php_fpm_ini_dir, $custom_php_fpm_pool_dir) = explode(':', trim($data['new']['fastcgi_php_version'])); - if(substr($custom_php_fpm_ini_dir, -1) != '/') $custom_php_fpm_ini_dir .= '/'; + $tmp_php = $app->db->queryOneRecord('SELECT * FROM server_php WHERE server_php_id = ?', $data['new']['server_php_id']); + if($tmp_php) { + $custom_php_fpm_ini_dir = $tmp_php['php_fpm_ini_dir']; + $custom_php_fpm_init_script = $tmp_php['php_fpm_init_script']; + $custom_php_fpm_pool_dir = $tmp_php['php_fpm_pool_dir']; + if(substr($custom_php_fpm_ini_dir, -1) != '/') $custom_php_fpm_ini_dir .= '/'; + } } else { $default_php_fpm = true; } } else { - if(trim($data['old']['fastcgi_php_version']) != '' && $data['old']['php'] == 'php-fpm'){ + if($data['old']['server_php_id'] != 0 && $data['old']['php'] == 'php-fpm'){ $default_php_fpm = false; - list($custom_php_fpm_name, $custom_php_fpm_init_script, $custom_php_fpm_ini_dir, $custom_php_fpm_pool_dir) = explode(':', trim($data['old']['fastcgi_php_version'])); - if(substr($custom_php_fpm_ini_dir, -1) != '/') $custom_php_fpm_ini_dir .= '/'; + $tmp_php = $app->db->queryOneRecord('SELECT * FROM server_php WHERE server_php_id = ?', $data['old']['server_php_id']); + if($tmp_php) { + $custom_php_fpm_ini_dir = $tmp_php['php_fpm_ini_dir']; + $custom_php_fpm_init_script = $tmp_php['php_fpm_init_script']; + $custom_php_fpm_pool_dir = $tmp_php['php_fpm_pool_dir']; + if(substr($custom_php_fpm_ini_dir, -1) != '/') $custom_php_fpm_ini_dir .= '/'; + } } else { $default_php_fpm = true; } @@ -3262,10 +3453,15 @@ class apache2_plugin { $php_fpm_reload_mode = ($web_config['php_fpm_reload_mode'] == 'reload')?'reload':'restart'; - if(trim($data['old']['fastcgi_php_version']) != '' && $data['old']['php'] == 'php-fpm'){ + if($data['old']['server_php_id'] != 0 && $data['old']['php'] == 'php-fpm'){ $default_php_fpm = false; - list($custom_php_fpm_name, $custom_php_fpm_init_script, $custom_php_fpm_ini_dir, $custom_php_fpm_pool_dir) = explode(':', trim($data['old']['fastcgi_php_version'])); - if(substr($custom_php_fpm_ini_dir, -1) != '/') $custom_php_fpm_ini_dir .= '/'; + $tmp_php = $app->db->queryOneRecord('SELECT * FROM server_php WHERE server_php_id = ?', $data['old']['server_php_id']); + if($tmp_php) { + $custom_php_fpm_ini_dir = $tmp_php['php_fpm_ini_dir']; + $custom_php_fpm_init_script = $tmp_php['php_fpm_init_script']; + $custom_php_fpm_pool_dir = $tmp_php['php_fpm_pool_dir']; + if(substr($custom_php_fpm_ini_dir, -1) != '/') $custom_php_fpm_ini_dir .= '/'; + } } else { $default_php_fpm = true; } diff --git a/server/plugins-available/bind_plugin.inc.php b/server/plugins-available/bind_plugin.inc.php index d4b4a7c01c0516e582c1128c6180a6d3e6320aa1..b152a8758db795ad17b708ffe80ed27b1a8928d8 100644 --- a/server/plugins-available/bind_plugin.inc.php +++ b/server/plugins-available/bind_plugin.inc.php @@ -85,75 +85,114 @@ class bind_plugin { //* load the server configuration options $dns_config = $app->getconf->get_server_config($conf["server_id"], 'dns'); - + $domain = substr($data['new']['origin'], 0, strlen($data['new']['origin'])-1); if (!file_exists($dns_config['bind_zonefiles_dir'].'/'.$this->zone_file_prefix().$domain)) return false; - + //* Check Entropy if (file_get_contents('/proc/sys/kernel/random/entropy_avail') < 400) { $app->log('DNSSEC ERROR: We are low on entropy. Not generating new Keys for '.$domain.'. Please consider installing package haveged.', LOGLEVEL_WARN); echo "DNSSEC ERROR: We are low on entropy. Not generating new Keys for $domain. Please consider installing package haveged.\n"; return false; } - + //* Verify that we do not already have keys (overwriting-protection) - if (file_exists($dns_config['bind_zonefiles_dir'].'/dsset-'.$domain.'.')) { - return $this->soa_dnssec_update($data); - } else if ($data['new']['dnssec_initialized'] == 'Y') { //In case that we generated keys but the dsset-file was not generated - $keycount=0; - foreach (glob($dns_config['bind_zonefiles_dir'].'/K'.$domain.'*.key') as $keyfile) { - $keycount++; - } - if ($keycount > 0) { - $this->soa_dnssec_sign($data); - return true; + if($data['old']['dnssec_algo'] == $data['new']['dnssec_algo']) { + if (file_exists($dns_config['bind_zonefiles_dir'].'/dsset-'.$domain.'.')) { + return $this->soa_dnssec_update($data); + } else if ($data['new']['dnssec_initialized'] == 'Y') { //In case that we generated keys but the dsset-file was not generated + $keycount=0; + foreach (glob($dns_config['bind_zonefiles_dir'].'/K'.$domain.'*.key') as $keyfile) { + $keycount++; + } + if ($keycount > 0) { + $this->soa_dnssec_sign($data); + return true; + } } } - - //Do some magic... - $app->system->exec_safe('cd ?; dnssec-keygen -a NSEC3RSASHA1 -b 2048 -n ZONE ?; dnssec-keygen -f KSK -a NSEC3RSASHA1 -b 4096 -n ZONE ?', $dns_config['bind_zonefiles_dir'], $domain, $domain); + + // Get DNSSEC Algorithms + $dnssec_algo = explode(',',$data['new']['dnssec_algo']); + + //* Create the Zone Signing and Key Signing Keys + if(in_array('ECDSAP256SHA256',$dnssec_algo) && count(glob($dns_config['bind_zonefiles_dir'].'/K'.$domain.'.+013*.key')) == 0) { + $app->system->exec_safe('cd ?; dnssec-keygen -3 -a ECDSAP256SHA256 -n ZONE ?; dnssec-keygen -f KSK -3 -a ECDSAP256SHA256 -n ZONE ?', $dns_config['bind_zonefiles_dir'], $domain, $domain); + } + if(in_array('NSEC3RSASHA1',$dnssec_algo) && count(glob($dns_config['bind_zonefiles_dir'].'/K'.$domain.'.+007*.key')) == 0) { + $app->system->exec_safe('cd ?; dnssec-keygen -a NSEC3RSASHA1 -b 2048 -n ZONE ?; dnssec-keygen -f KSK -a NSEC3RSASHA1 -b 4096 -n ZONE ?', $dns_config['bind_zonefiles_dir'], $domain, $domain); + } $this->soa_dnssec_sign($data); //Now sign the zone for the first time $data['new']['dnssec_initialized']='Y'; } - + function soa_dnssec_sign(&$data) { global $app, $conf; - + //* Load libraries $app->uses("getconf,tpl"); //* load the server configuration options $dns_config = $app->getconf->get_server_config($conf["server_id"], 'dns'); - + $filespre = $this->zone_file_prefix(); $domain = substr($data['new']['origin'], 0, strlen($data['new']['origin'])-1); if (!file_exists($dns_config['bind_zonefiles_dir'].'/'.$filespre.$domain)) return false; - + + //* Get DNSSEC Algorithms + $dnssec_algo = explode(',',$data['new']['dnssec_algo']); + + //* Get Zone file content $zonefile = file_get_contents($dns_config['bind_zonefiles_dir'].'/'.$filespre.$domain); $keycount=0; - foreach (glob($dns_config['bind_zonefiles_dir'].'/K'.$domain.'*.key') as $keyfile) { - $includeline = '$INCLUDE '.basename($keyfile); - if (!preg_match('@'.preg_quote($includeline).'@', $zonefile)) $zonefile .= "\n".$includeline."\n"; - $keycount++; + + //* Include ECDSAP256SHA256 keys in zone + if(in_array('ECDSAP256SHA256',$dnssec_algo)) { + foreach (glob($dns_config['bind_zonefiles_dir'].'/K'.$domain.'.+013*.key') as $keyfile) { + $includeline = '$INCLUDE '.basename($keyfile); + if (!preg_match('@'.preg_quote($includeline).'@', $zonefile)) $zonefile .= "\n".$includeline."\n"; + $keycount++; + } } - if ($keycount != 2) $app->log('DNSSEC Warning: There are more or less than 2 keyfiles for zone '.$domain, LOGLEVEL_WARN); + + //* Include NSEC3RSASHA1 keys in zone + if(in_array('NSEC3RSASHA1',$dnssec_algo)) { + foreach (glob($dns_config['bind_zonefiles_dir'].'/K'.$domain.'.+007*.key') as $keyfile) { + $includeline = '$INCLUDE '.basename($keyfile); + if (!preg_match('@'.preg_quote($includeline).'@', $zonefile)) $zonefile .= "\n".$includeline."\n"; + $keycount++; + } + } + + $keycount_wanted = count(explode(',',$data['new']['dnssec_algo']))*2; + + if ($keycount != $keycount_wanted) $app->log('DNSSEC Warning: There are more or less than 2 keyfiles for each algorithm for zone '.$domain.'. Found: '.$keycount. ' Expected: '.$keycount_wanted, LOGLEVEL_WARN); file_put_contents($dns_config['bind_zonefiles_dir'].'/'.$filespre.$domain, $zonefile); - - //Sign the zone and set it valid for max. 16 days + + //* Sign the zone and set it valid for max. 16 days $app->system->exec_safe('cd ?; dnssec-signzone -A -e +1382400 -3 $(head -c 1000 /dev/random | sha1sum | cut -b 1-16) -N increment -o ? -t ?', $dns_config['bind_zonefiles_dir'], $domain, $filespre.$domain); - - //Write Data back ino DB + + //* Write Data back ino DB $dnssecdata = "DS-Records:\n".file_get_contents($dns_config['bind_zonefiles_dir'].'/dsset-'.$domain.'.'); $dnssecdata .= "\n------------------------------------\n\nDNSKEY-Records:\n"; - foreach (glob($dns_config['bind_zonefiles_dir'].'/K'.$domain.'*.key') as $keyfile) { - $dnssecdata .= file_get_contents($keyfile)."\n\n"; + + if(in_array('ECDSAP256SHA256',$dnssec_algo)) { + foreach (glob($dns_config['bind_zonefiles_dir'].'/K'.$domain.'.+013*.key') as $keyfile) { + $dnssecdata .= file_get_contents($keyfile)."\n\n"; + } } - + + if(in_array('NSEC3RSASHA1',$dnssec_algo)) { + foreach (glob($dns_config['bind_zonefiles_dir'].'/K'.$domain.'.+007*.key') as $keyfile) { + $dnssecdata .= file_get_contents($keyfile)."\n\n"; + } + } + if ($app->dbmaster !== $app->db) $app->dbmaster->query('UPDATE dns_soa SET dnssec_info=?, dnssec_initialized=\'Y\', dnssec_last_signed=? WHERE id=?', $dnssecdata, intval(time()), intval($data['new']['id'])); $app->db->query('UPDATE dns_soa SET dnssec_info=?, dnssec_initialized=\'Y\', dnssec_last_signed=? WHERE id=?', $dnssecdata, intval(time()), intval($data['new']['id'])); } - + function soa_dnssec_update(&$data, $new=false) { global $app, $conf; @@ -162,20 +201,20 @@ class bind_plugin { //* load the server configuration options $dns_config = $app->getconf->get_server_config($conf["server_id"], 'dns'); - + $filespre = $this->zone_file_prefix(); $domain = substr($data['new']['origin'], 0, strlen($data['new']['origin'])-1); if (!file_exists($dns_config['bind_zonefiles_dir'].'/'.$filespre.$domain)) return false; - + //* Check for available entropy if (file_get_contents('/proc/sys/kernel/random/entropy_avail') < 200) { $app->log('DNSSEC ERROR: We are low on entropy. This could cause server script to fail. Please consider installing package haveged.', LOGLEVEL_ERR); echo "DNSSEC ERROR: We are low on entropy. This could cause server script to fail. Please consider installing package haveged.\n"; return false; } - + if (!$new && !file_exists($dns_config['bind_zonefiles_dir'].'/dsset-'.$domain.'.')) $this->soa_dnssec_create($data); - + $dbdata = $app->db->queryOneRecord('SELECT id,serial FROM dns_soa WHERE id=?', intval($data['new']['id'])); $app->system->exec_safe('cd ?; named-checkzone ? ? | egrep -ho \'[0-9]{10}\'', $dns_config['bind_zonefiles_dir'], $domain, $dns_config['bind_zonefiles_dir'].'/'.$filespre.$domain); $retState = $app->system->last_exec_retcode(); @@ -183,10 +222,10 @@ class bind_plugin { $app->log('DNSSEC Error: Error in Zonefile for '.$domain, LOGLEVEL_ERR); return false; } - + $this->soa_dnssec_sign($data); } - + function soa_dnssec_delete(&$data) { global $app, $conf; @@ -195,13 +234,16 @@ class bind_plugin { //* load the server configuration options $dns_config = $app->getconf->get_server_config($conf["server_id"], 'dns'); - + $domain = substr($data['new']['origin'], 0, strlen($data['new']['origin'])-1); - - unlink($dns_config['bind_zonefiles_dir'].'/K'.$domain.'.+*'); + + $key_files = glob($dns_config['bind_zonefiles_dir'].'/K'.$domain.'.+*'); + foreach($key_files as $file) { + unlink($file); + } unlink($dns_config['bind_zonefiles_dir'].'/'.$this->zone_file_prefix().$domain.'.signed'); unlink($dns_config['bind_zonefiles_dir'].'/dsset-'.$domain.'.'); - + if ($app->dbmaster !== $app->db) $app->dbmaster->query('UPDATE dns_soa SET dnssec_info=\'\', dnssec_initialized=\'N\' WHERE id=?', intval($data['new']['id'])); $app->db->query('UPDATE dns_soa SET dnssec_info=\'\', dnssec_initialized=\'N\' WHERE id=?', intval($data['new']['id'])); } @@ -303,19 +345,24 @@ class bind_plugin { unset($records_out); unset($zone); } - + //* DNSSEC-Implementation - if($data['old']['origin'] != $data['new']['origin']) { + if($data['old']['origin'] != $data['new']['origin']) { if (@$data['old']['dnssec_initialized'] == 'Y' && strlen(@$data['old']['origin']) > 3) $this->soa_dnssec_delete($data); //delete old keys if ($data['new']['dnssec_wanted'] == 'Y') $this->soa_dnssec_create($data); - } - else if ($data['new']['dnssec_wanted'] == 'Y' && $data['old']['dnssec_initialized'] == 'N') $this->soa_dnssec_create($data); - else if ($data['new']['dnssec_wanted'] == 'N' && $data['old']['dnssec_initialized'] == 'Y') { //delete old signed file if dnssec is no longer wanted + } elseif($data['old']['dnssec_algo'] != $data['new']['dnssec_algo']) { + $app->log("DNSSEC Algorithm has changed: ".$data['new']['dnssec_algo'], LOGLEVEL_DEBUG); + if ($data['new']['dnssec_wanted'] == 'Y') $this->soa_dnssec_create($data); + } elseif ($data['new']['dnssec_wanted'] == 'Y' && $data['old']['dnssec_initialized'] == 'N') { + $this->soa_dnssec_create($data); + } elseif ($data['new']['dnssec_wanted'] == 'N' && $data['old']['dnssec_initialized'] == 'Y') { //delete old signed file if dnssec is no longer wanted $filename = $dns_config['bind_zonefiles_dir'].'/' . $this->zone_file_prefix() . str_replace("/", "_", substr($data['old']['origin'], 0, -1)); if(is_file($filename.'.signed')) unlink($filename.'.signed'); - } else if ($data['new']['dnssec_wanted'] == 'Y') $this->soa_dnssec_update($data); + } elseif ($data['new']['dnssec_wanted'] == 'Y') { + $this->soa_dnssec_update($data); + } // END DNSSEC - + //* rebuild the named.conf file if the origin has changed or when the origin is inserted. //if($this->action == 'insert' || $data['old']['origin'] != $data['new']['origin']) { $this->write_named_conf($data, $dns_config); @@ -329,7 +376,7 @@ class bind_plugin { if(is_file($filename.'.err')) unlink($filename.'.err'); if(is_file($filename.'.signed')) unlink($filename.'.signed'); } - + //* Restart bind nameserver if update_acl is not empty, otherwise reload it if($data['new']['update_acl'] != '') { $app->services->restartServiceDelayed('bind', 'restart'); @@ -360,7 +407,7 @@ class bind_plugin { //delete keys $app->system->exec_safe('/usr/local/ispconfig/server/scripts/dnssec-delete.sh ?', $data['old']['origin']); } - + //* Reload bind nameserver $app->services->restartServiceDelayed('bind', 'reload'); @@ -485,8 +532,6 @@ class bind_plugin { $options = ''; if(trim($tmp['xfer']) != '') { $options .= " allow-transfer {".str_replace(',', ';', $tmp['xfer']).";};\n"; - } else { - $options .= " allow-transfer {none;};\n"; } if(trim($tmp['also_notify']) != '') $options .= ' also-notify {'.str_replace(',', ';', $tmp['also_notify']).";};\n"; if(trim($tmp['update_acl']) != '') $options .= " allow-update {".str_replace(',', ';', $tmp['update_acl']).";};\n"; @@ -510,7 +555,7 @@ class bind_plugin { foreach($tmps_sec as $tmp) { // When you have more than one master, the serial number is used to determine which Master has the most current version of the zone by the - // slaves. The slaves actually ask for the SOA record from each Master when refreshing. + // slaves. The slaves actually ask for the SOA record from each Master when refreshing. $options = " masters {".str_replace(',', ';', $tmp['ns']).";};\n"; if(trim($tmp['xfer']) != '') { $options .= " allow-transfer {".str_replace(',', ';', $tmp['xfer']).";};\n"; diff --git a/server/plugins-available/cron_plugin.inc.php b/server/plugins-available/cron_plugin.inc.php index ad122807ba61edc34369f773c811f59f833c12f7..1d44a849aacf57d5edc6a92c9e8f208e6f275805 100644 --- a/server/plugins-available/cron_plugin.inc.php +++ b/server/plugins-available/cron_plugin.inc.php @@ -103,7 +103,7 @@ class cron_plugin { $app->log("Websites (and Crons) cannot be owned by the root user or group.", LOGLEVEL_WARN); return false; } - + // Get the client ID $client = $app->dbmaster->queryOneRecord("SELECT client_id FROM sys_group WHERE sys_group.groupid = ?", $data["new"]["sys_groupid"]); $client_id = intval($client["client_id"]); @@ -123,7 +123,7 @@ class cron_plugin { $app->system->exec_safe("useradd -d ? -g ? ? -s /bin/false", $parent_domain["document_root"], $groupname, $username); $app->log("Adding the user: $username", LOGLEVEL_DEBUG); } - + // Set the quota for the user if($username != '' && $app->system->is_user($username)) { if($parent_domain['hd_quota'] > 0) { @@ -144,7 +144,7 @@ class cron_plugin { $app->system->exec_safe('setquota -u ? ? ? 0 0 -a &> /dev/null', $username, $blocks_soft, $blocks_hard); $app->system->exec_safe('setquota -T -u ? 604800 604800 -a &> /dev/null', $username); } elseif ($file_system == 'xfs') { - + $app->system->exec_safe("xfs_quota -x -c ? ?", "limit -u bsoft=$mb_soft" . 'm'. " bhard=$mb_hard" . 'm'. " $username", $primitive_root); // xfs only supports timers globally, not per user. @@ -177,21 +177,23 @@ class cron_plugin { } function delete($event_name, $data) { - global $app, $conf; + global $app; //* get data from web $parent_domain = $app->db->queryOneRecord("SELECT `domain_id`, `system_user`, `system_group`, `document_root`, `hd_quota` FROM `web_domain` WHERE `domain_id` = ?", $data["old"]["parent_domain_id"]); - if(!$parent_domain["domain_id"]) { - $app->log("Parent domain not found", LOGLEVEL_WARN); - return 0; - } - - // Get the client ID - $client = $app->dbmaster->queryOneRecord("SELECT client_id FROM sys_group WHERE sys_group.groupid = ?", $data["old"]["sys_groupid"]); - $client_id = intval($client["client_id"]); - unset($client); - $this->parent_domain = $parent_domain; + if(!$parent_domain) { + $tmp = $app->db->queryOneRecord('SELECT * FROM sys_datalog WHERE dbtable = ? AND dbidx = ? AND `action` = ? ORDER BY `datalog_id` DESC', 'web_domain', 'domain_id:' . $data['old']['parent_domain_id'], 'd'); + $tmp = unserialize($tmp); + if($tmp && isset($tmp['old'])) { + $this->parent_domain = $tmp['old']; + } else { + $app->log("Parent domain not found", LOGLEVEL_WARN); + return 0; + } + } else { + $this->parent_domain = $parent_domain; + } $this->_write_crontab(); } @@ -223,18 +225,18 @@ class cron_plugin { } else { $cron_line = str_replace(" ", "", $job['run_min']) . "\t" . str_replace(" ", "", $job['run_hour']) . "\t" . str_replace(" ", "", $job['run_mday']) . "\t" . str_replace(" ", "", $job['run_month']) . "\t" . str_replace(" ", "", $job['run_wday']); } - + $log_target = ""; $log_wget_target = '/dev/null'; $log_root = ''; if($job['log'] == 'y') { if($job['type'] != 'chrooted') $log_root = $this->parent_domain['document_root']; $log_root .= '/private'; - + $log_target = '>>' . $log_root . '/cron.log 2>>' . $log_root . '/cron_error.log'; $log_wget_target = $log_root . '/cron_wget.log'; } - + $cron_line .= "\t{$this->parent_domain['system_user']}"; //* running as user if($job['type'] == 'url') { $cron_line .= "\t{$cron_config['wget']} --no-check-certificate --user-agent='Mozilla/5.0 (X11; Ubuntu; Linux x86_64; rv:47.0) Gecko/20100101 Firefox/47.0' -q -t 1 -T 7200 -O " . $log_wget_target . " " . escapeshellarg($job['command']) . " " . $log_target; @@ -243,7 +245,7 @@ class cron_plugin { $app->log("Insecure Cron job SKIPPED: " . $job['command'], LOGLEVEL_WARN); continue; } - + $web_root = ''; if($job['type'] == 'chrooted') { if(substr($job['command'], 0, strlen($this->parent_domain['document_root'])) == $this->parent_domain['document_root']) { @@ -253,7 +255,7 @@ class cron_plugin { } else { $web_root = $this->parent_domain['document_root']; } - + $web_root .= '/web'; $job['command'] = str_replace('[web_root]', $web_root, $job['command']); diff --git a/server/plugins-available/mail_plugin.inc.php b/server/plugins-available/mail_plugin.inc.php index 4d5ac826d3780f4d264f07c0060a9f0ffe13bd56..c584b6821592531b7f6ee3ffa11994bb74097fbb 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,61 +195,63 @@ class mail_plugin { } } - //* 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)."?="; + $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'); + } - //* 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) { @@ -261,7 +263,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); @@ -315,7 +317,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"]); @@ -323,7 +325,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"]); @@ -338,18 +340,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) { @@ -361,7 +363,7 @@ class mail_plugin { } } } - + if(!is_dir($data['new']['maildir'].'/.Sent')) { $app->system->maildirmake($maildomain_path, $user, 'Sent', $group); } @@ -374,11 +376,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'])) { @@ -470,7 +472,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/maildeliver_plugin.inc.php b/server/plugins-available/maildeliver_plugin.inc.php index 9c9939655c7dd3cdc802ee1a44521d385eb86845..130d0a7f187ccfe6baea029754e0501c5cbfc589 100644 --- a/server/plugins-available/maildeliver_plugin.inc.php +++ b/server/plugins-available/maildeliver_plugin.inc.php @@ -100,144 +100,140 @@ class maildeliver_plugin { $sieve_file = $data["new"]["maildir"].'/.sieve'; $sieve_file_svbin = $data["new"]["maildir"].'/.sieve.svbin'; $old_sieve_file_isp = $data["new"]["maildir"].'/sieve/ispconfig.sieve'; - $sieve_file_isp = $data["new"]["maildir"].'/.ispconfig.sieve'; - $sieve_file_isp_svbin = $data["new"]["maildir"].'/.ispconfig.svbin'; + $sieve_file_isp_before = $data["new"]["maildir"].'/.ispconfig-before.sieve'; + $sieve_file_isp_before_svbin = $data["new"]["maildir"].'/.ispconfig-before.svbin'; + $sieve_file_isp_after = $data["new"]["maildir"].'/.ispconfig.sieve'; + $sieve_file_isp_after_svbin = $data["new"]["maildir"].'/.ispconfig.svbin'; + if(is_file($old_sieve_file_isp)) unlink($old_sieve_file_isp) or $app->log("Unable to delete file: $old_sieve_file_isp", LOGLEVEL_WARN); // cleanup .sieve file if it is now a broken link if(is_link($sieve_file) && !file_exists($sieve_file)) unlink($sieve_file) or $app->log("Unable to delete file: $sieve_file", LOGLEVEL_WARN); if(is_file($sieve_file_svbin)) unlink($sieve_file_svbin) or $app->log("Unable to delete file: $sieve_file_svbin", LOGLEVEL_WARN); - if(is_file($sieve_file_isp)) unlink($sieve_file_isp) or $app->log("Unable to delete file: $sieve_file_isp", LOGLEVEL_WARN); - if(is_file($sieve_file_isp_svbin)) unlink($sieve_file_isp_svbin) or $app->log("Unable to delete file: $sieve_file_isp_svbin", LOGLEVEL_WARN); + if(is_file($sieve_file_isp_before)) unlink($sieve_file_isp_before) or $app->log("Unable to delete file: $sieve_file_isp_before", LOGLEVEL_WARN); + if(is_file($sieve_file_isp_before_svbin)) unlink($sieve_file_isp_before_svbin) or $app->log("Unable to delete file: $sieve_file_isp_before_svbin", LOGLEVEL_WARN); + if(is_file($sieve_file_isp_after)) unlink($sieve_file_isp_after) or $app->log("Unable to delete file: $sieve_file_isp_after", LOGLEVEL_WARN); + if(is_file($sieve_file_isp_after_svbin)) unlink($sieve_file_isp_after_svbin) or $app->log("Unable to delete file: $sieve_file_isp_after_svbin", LOGLEVEL_WARN); $app->load('tpl'); - //* Select sieve filter file for dovecot version - exec('dovecot --version', $tmp); - if(substr($tmp[0], 0, 3) == '1.0') { - $filter_file_template = "sieve_filter.master"; - } elseif(substr($tmp[0], 0, 3) == '1.2') { - $filter_file_template = "sieve_filter_1.2.master"; - } elseif(substr($tmp[0], 0, 1) == '2') { - $filter_file_template = "sieve_filter_1.2.master"; - } else { - $filter_file_template = "sieve_filter.master"; - } - unset($tmp); - - //* Create new filter file based on template - $tpl = new tpl(); - $tpl->newTemplate($filter_file_template); + foreach ( array('before', 'after') as $sieve_script ) { + //* Create new filter file based on template + $tpl = new tpl(); + $tpl->newTemplate("sieve_filter.master"); - // cc Field - $tmp_mails_arr = explode(',',$data["new"]["cc"]); - $tmp_addresses_arr = array(); - foreach($tmp_mails_arr as $address) { - if(trim($address) != '') $tmp_addresses_arr[] = array('address' => trim($address)); - } + // cc Field + $tmp_mails_arr = explode(',',$data["new"]["cc"]); + $tmp_addresses_arr = array(); + foreach($tmp_mails_arr as $address) { + if(trim($address) != '') $tmp_addresses_arr[] = array('address' => trim($address)); + } - $tpl->setVar('cc', $data["new"]["cc"]); - $tpl->setLoop('ccloop', $tmp_addresses_arr); - - // Custom filters - if($data["new"]["custom_mailfilter"] == 'NULL') $data["new"]["custom_mailfilter"] = ''; - $tpl->setVar('custom_mailfilter', str_replace("\r\n","\n",$data["new"]["custom_mailfilter"])); - - // Move junk - $tpl->setVar('move_junk', $data["new"]["move_junk"]); - - // Check autoresponder dates - if((!$data['new']['autoresponder_start_date'] || $data["new"]["autoresponder_start_date"] == '0000-00-00 00:00:00') && (!$data['new']['autoresponder_end_date'] || $data["new"]["autoresponder_end_date"] == '0000-00-00 00:00:00')) { - $tpl->setVar('autoresponder_date_limit', 0); - } else { - $tpl->setVar('autoresponder_date_limit', 1); - } - - - // Set autoresponder start date - $data["new"]["autoresponder_start_date"] = str_replace(" ", "T", $data["new"]["autoresponder_start_date"]); - $tpl->setVar('start_date', $data["new"]["autoresponder_start_date"]); - - // Set autoresponder end date - $data["new"]["autoresponder_end_date"] = str_replace(" ", "T", $data["new"]["autoresponder_end_date"]); - $tpl->setVar('end_date', $data["new"]["autoresponder_end_date"]); - - // Autoresponder - $tpl->setVar('autoresponder', $data["new"]["autoresponder"]); - - // Autoresponder Subject - $data["new"]["autoresponder_subject"] = str_replace("\"", "'", $data["new"]["autoresponder_subject"]); - $tpl->setVar('autoresponder_subject', $data["new"]["autoresponder_subject"]); - - // Autoresponder Text - $data["new"]["autoresponder_text"] = str_replace("\"", "'", $data["new"]["autoresponder_text"]); - $tpl->setVar('autoresponder_text', $data["new"]["autoresponder_text"]); + $tpl->setVar('cc', $data["new"]["cc"]); + $tpl->setLoop('ccloop', $tmp_addresses_arr); + + // Custom filters + if($data["new"]["custom_mailfilter"] == 'NULL') $data["new"]["custom_mailfilter"] = ''; + $tpl->setVar('custom_mailfilter', str_replace("\r\n","\n",$data["new"]["custom_mailfilter"])); + + // Move junk + $tpl->setVar('move_junk', $data["new"]["move_junk"]); + + // Set autoresponder start date + $data["new"]["autoresponder_start_date"] = str_replace(" ", "T", $data["new"]["autoresponder_start_date"]); + $tpl->setVar('start_date', $data["new"]["autoresponder_start_date"]); + + // Set autoresponder end date + $data["new"]["autoresponder_end_date"] = str_replace(" ", "T", $data["new"]["autoresponder_end_date"]); + $tpl->setVar('end_date', $data["new"]["autoresponder_end_date"]); + + // Autoresponder + $tpl->setVar('autoresponder', $data["new"]["autoresponder"]); + + // Autoresponder Subject + $data["new"]["autoresponder_subject"] = str_replace("\"", "'", $data["new"]["autoresponder_subject"]); + $tpl->setVar('autoresponder_subject', $data["new"]["autoresponder_subject"]); + + // Autoresponder Text + $data["new"]["autoresponder_text"] = str_replace("\"", "'", $data["new"]["autoresponder_text"]); + $tpl->setVar('autoresponder_text', $data["new"]["autoresponder_text"]); + + if (! defined($address_str)) { + //* Set alias addresses for autoresponder + $sql = "SELECT * FROM mail_forwarding WHERE type = 'alias' AND destination = ?"; + $records = $app->db->queryAllRecords($sql, $data["new"]["email"]); + + $addresses = array(); + $addresses[] = $data["new"]["email"]; + if(is_array($records) && count($records) > 0) { + foreach($records as $rec) { + $addresses[] = $rec['source']; + } + } - //* Set alias addresses for autoresponder - $sql = "SELECT * FROM mail_forwarding WHERE type = 'alias' AND destination = ?"; - $records = $app->db->queryAllRecords($sql, $data["new"]["email"]); + $app->log("Found " . count($addresses) . " addresses.", LOGLEVEL_DEBUG); + + $alias_addresses = array(); + + $email_parts = explode('@', $data["new"]["email"]); + $sql = "SELECT * FROM mail_forwarding WHERE type = 'aliasdomain' AND destination = ?"; + $records = $app->db->queryAllRecords($sql, '@'.$email_parts[1]); + if(is_array($records) && count($records) > 0) { + $app->log("Found " . count($records) . " records (aliasdomains).", LOGLEVEL_DEBUG); + foreach($records as $rec) { + $aliasdomain = substr($rec['source'], 1); + foreach($addresses as $email) { + $email_parts = explode('@', $email); + $alias_addresses[] = $email_parts[0].'@'.$aliasdomain; + } + } + } - $addresses = array(); - $addresses[] = $data["new"]["email"]; - if(is_array($records) && count($records) > 0) { - foreach($records as $rec) { - $addresses[] = $rec['source']; - } - } + $app->log("Found " . count($addresses) . " addresses at all.", LOGLEVEL_DEBUG); - $app->log("Found " . count($addresses) . " addresses.", LOGLEVEL_DEBUG); + $addresses = array_unique(array_merge($addresses, $alias_addresses)); - $alias_addresses = array(); + $app->log("Found " . count($addresses) . " unique addresses at all.", LOGLEVEL_DEBUG); - $email_parts = explode('@', $data["new"]["email"]); - $sql = "SELECT * FROM mail_forwarding WHERE type = 'aliasdomain' AND destination = ?"; - $records = $app->db->queryAllRecords($sql, '@'.$email_parts[1]); - if(is_array($records) && count($records) > 0) { - $app->log("Found " . count($records) . " records (aliasdomains).", LOGLEVEL_DEBUG); - foreach($records as $rec) { - $aliasdomain = substr($rec['source'], 1); - foreach($addresses as $email) { - $email_parts = explode('@', $email); - $alias_addresses[] = $email_parts[0].'@'.$aliasdomain; + $address_str = ''; + if(is_array($addresses) && count($addresses) > 0) { + $address_str .= ':addresses ['; + foreach($addresses as $rec) { + $address_str .= '"'.$rec.'",'; + } + $address_str = substr($address_str, 0, -1); + $address_str .= ']'; } } - } - $app->log("Found " . count($addresses) . " addresses at all.", LOGLEVEL_DEBUG); + $tpl->setVar('addresses', $address_str); - $addresses = array_unique(array_merge($addresses, $alias_addresses)); - - $app->log("Found " . count($addresses) . " unique addresses at all.", LOGLEVEL_DEBUG); - - $address_str = ''; - if(is_array($addresses) && count($addresses) > 0) { - $address_str .= ':addresses ['; - foreach($addresses as $rec) { - $address_str .= '"'.$rec.'",'; + if ( ! is_dir($data["new"]["maildir"].'/sieve/') ) { + $app->system->mkdirpath($data["new"]["maildir"].'/sieve/', 0700, $mail_config['mailuser_name'], $mail_config['mailuser_group']); } - $address_str = substr($address_str, 0, -1); - $address_str .= ']'; - } - - $tpl->setVar('addresses', $address_str); - - if ( ! is_dir($data["new"]["maildir"].'/sieve/') ) { - $app->system->mkdirpath($data["new"]["maildir"].'/sieve/', 0700, $mail_config['mailuser_name'], $mail_config['mailuser_group']); - } + $tpl->setVar('sieve_script', $sieve_script); + if ($sieve_script == 'before') { + $sieve_file_isp = $sieve_file_isp_before; + $sieve_file_isp_svbin = $sieve_file_isp_before_svbin; + } elseif ($sieve_script == 'after') { + $sieve_file_isp = $sieve_file_isp_after; + $sieve_file_isp_svbin = $sieve_file_isp_after_svbin; + } - file_put_contents($sieve_file_isp, $tpl->grab()) or $app->log("Unable to write sieve filter file", LOGLEVEL_WARN); - if ( is_file($sieve_file_isp) ) { - $app->system->chown($sieve_file_isp,$mail_config['mailuser_name'],false); - $app->system->chgrp($sieve_file_isp,$mail_config['mailuser_group'],false); + file_put_contents($sieve_file_isp, $tpl->grab()) or $app->log("Unable to write sieve filter file " . $sieve_file_isp, LOGLEVEL_WARN); + if ( is_file($sieve_file_isp) ) { + $app->system->chown($sieve_file_isp,$mail_config['mailuser_name'],false); + $app->system->chgrp($sieve_file_isp,$mail_config['mailuser_group'],false); - $app->system->exec_safe("sievec ?", "$sieve_file_isp"); - if ( is_file($sieve_file_isp_svbin) ) { - $app->system->chown($sieve_file_isp_svbin,$mail_config['mailuser_name'],false); - $app->system->chgrp($sieve_file_isp_svbin,$mail_config['mailuser_group'],false); + $app->system->exec_safe("sievec ?", "$sieve_file_isp"); + if ( is_file($sieve_file_isp_svbin) ) { + $app->system->chown($sieve_file_isp_svbin,$mail_config['mailuser_name'],false); + $app->system->chgrp($sieve_file_isp_svbin,$mail_config['mailuser_group'],false); + } } - } - unset($tpl); + unset($tpl); + } } } @@ -246,15 +242,20 @@ class maildeliver_plugin { $sieve_file = $data["old"]["maildir"].'/.sieve'; $sieve_file_svbin = $data["old"]["maildir"].'/.sieve.svbin'; - $old_sieve_file_isp = $data["old"]["maildir"].'/sieve/ispconfig.sieve'; - $sieve_file_isp = $data["old"]["maildir"].'/.ispconfig.sieve'; - $sieve_file_isp_svbin = $data["old"]["maildir"].'/.ispconfig.svbin'; + $old_sieve_file_isp = $data["new"]["maildir"].'/sieve/ispconfig.sieve'; + $sieve_file_isp_before = $data["old"]["maildir"].'/.ispconfig-before.sieve'; + $sieve_file_isp_before_svbin = $data["old"]["maildir"].'/.ispconfig-before.svbin'; + $sieve_file_isp_after = $data["old"]["maildir"].'/.ispconfig.sieve'; + $sieve_file_isp_after_svbin = $data["old"]["maildir"].'/.ispconfig.svbin'; + if(is_file($old_sieve_file_isp)) unlink($old_sieve_file_isp) or $app->log("Unable to delete file: $old_sieve_file_isp", LOGLEVEL_WARN); // cleanup .sieve file if it is now a broken link if(is_link($sieve_file) && !file_exists($sieve_file)) unlink($sieve_file) or $app->log("Unable to delete file: $sieve_file", LOGLEVEL_WARN); if(is_file($sieve_file_svbin)) unlink($sieve_file_svbin) or $app->log("Unable to delete file: $sieve_file_svbin", LOGLEVEL_WARN); - if(is_file($sieve_file_isp)) unlink($sieve_file_isp) or $app->log("Unable to delete file: $sieve_file_isp", LOGLEVEL_WARN); - if(is_file($sieve_file_isp_svbin)) unlink($sieve_file_isp_svbin) or $app->log("Unable to delete file: $sieve_file_isp_svbin", LOGLEVEL_WARN); + if(is_file($sieve_file_isp_before)) unlink($sieve_file_isp_before) or $app->log("Unable to delete file: $sieve_file_isp_before", LOGLEVEL_WARN); + if(is_file($sieve_file_isp_before_svbin)) unlink($sieve_file_isp_before_svbin) or $app->log("Unable to delete file: $sieve_file_isp_before_svbin", LOGLEVEL_WARN); + if(is_file($sieve_file_isp_after)) unlink($sieve_file_isp_after) or $app->log("Unable to delete file: $sieve_file_isp_after", LOGLEVEL_WARN); + if(is_file($sieve_file_isp_after_svbin)) unlink($sieve_file_isp_after_svbin) or $app->log("Unable to delete file: $sieve_file_isp_after_svbin", LOGLEVEL_WARN); } diff --git a/server/plugins-available/maildrop_plugin.inc.php b/server/plugins-available/maildrop_plugin.inc.php index 2fefa26cfc95cfc697dc456278f136258543628b..00777a1662e7c9a7dea5deddbf70ee6ac563a1a6 100644 --- a/server/plugins-available/maildrop_plugin.inc.php +++ b/server/plugins-available/maildrop_plugin.inc.php @@ -146,9 +146,12 @@ class maildrop_plugin { if ($data['new']['autoresponder_start_date'] && $data["new"]["autoresponder_start_date"] != '0000-00-00 00:00:00') { // Dates have been set $tpl = str_replace('{start_date}', strtotime($data["new"]["autoresponder_start_date"]), $tpl); - $tpl = str_replace('{end_date}', strtotime($data["new"]["autoresponder_end_date"]), $tpl); } else { $tpl = str_replace('{start_date}', -7200, $tpl); + } + if ($data['new']['autoresponder_end_date'] && $data["new"]["autoresponder_end_date"] != '0000-00-00 00:00:00') { // Dates have been set + $tpl = str_replace('{end_date}', strtotime($data["new"]["autoresponder_end_date"]), $tpl); + } else { $tpl = str_replace('{end_date}', 2147464800, $tpl); } @@ -204,7 +207,7 @@ class maildrop_plugin { $app->log("Added CC address ".$data["new"]["cc"].' to mailfilter file.', LOGLEVEL_DEBUG); } - if($data["new"]["move_junk"] == 'y') { + if($data["new"]["move_junk"] != 'n') { if(file_exists($conf["rootpath"].'/conf-custom/mailfilter_move_junk.master')) { $mailfilter_content .= file_get_contents($conf["rootpath"].'/conf-custom/mailfilter_move_junk.master')."\n"; } else { diff --git a/server/plugins-available/mailman_plugin.inc.php b/server/plugins-available/mailman_plugin.inc.php index e6251aedf10637a4891900f3ec2c9e13455660b9..da033b80ccfc846e9f82a7f54e97ea99393408d7 100644 --- a/server/plugins-available/mailman_plugin.inc.php +++ b/server/plugins-available/mailman_plugin.inc.php @@ -71,9 +71,12 @@ 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 $!;", $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 $!;", $opt_quiet, $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 { @@ -87,9 +90,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"]); @@ -100,7 +103,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"] != '') { @@ -108,7 +111,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'); } @@ -121,7 +124,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'); diff --git a/server/plugins-available/mysql_clientdb_plugin.inc.php b/server/plugins-available/mysql_clientdb_plugin.inc.php index 72f602f9dae2e7ac46da32d4aaf72803e9c979b6..e1fba6e18082c4fda64addbb5a293bc3b9940f95 100644 --- a/server/plugins-available/mysql_clientdb_plugin.inc.php +++ b/server/plugins-available/mysql_clientdb_plugin.inc.php @@ -529,7 +529,7 @@ class mysql_clientdb_plugin { //* Remote access option has changed. if($data['new']['remote_access'] != $data['old']['remote_access']) { - //* set new priveliges + //* set new privileges if($data['new']['remote_access'] == 'y') { if($db_user) { if($db_user['database_user'] == 'root'){ diff --git a/server/plugins-available/nginx_plugin.inc.php b/server/plugins-available/nginx_plugin.inc.php index 51f566a00c6f6574be20f90f1f2d634cee43e036..4b20a0339167f0ea41cf64c8bbc723ca0bba9be7 100644 --- a/server/plugins-available/nginx_plugin.inc.php +++ b/server/plugins-available/nginx_plugin.inc.php @@ -88,6 +88,35 @@ class nginx_plugin { $app->plugins->registerEvent('web_folder_update', $this->plugin_name, 'web_folder_update'); $app->plugins->registerEvent('web_folder_delete', $this->plugin_name, 'web_folder_delete'); + + $app->plugins->registerEvent('directive_snippets_update', $this->plugin_name, 'directive_snippets'); + } + + function directive_snippets($event_name, $data) { + global $app, $conf; + + $snippet = $data['new']; + + if($snippet['active'] == 'y' && $snippet['update_sites'] == 'y') { + if($snippet['type'] == 'php') { + $rlike = $snippet['directive_snippets_id'].'|,'.$snippet['directive_snippets_id'].'|'.$snippet['directive_snippets_id'].','; + $affected_snippets = $app->db->queryAllRecords('SELECT directive_snippets_id FROM directive_snippets WHERE required_php_snippets RLIKE(?) AND type = ?', $rlike, 'nginx'); + if(is_array($affected_snippets) && !empty($affected_snippets)) { + foreach($affected_snippets as $snippet) $sql_in[] = $snippet['directive_snippets_id']; + $affected_sites = $app->db->queryAllRecords('SELECT domain_id FROM web_domain WHERE server_id = ? AND directive_snippets_id IN ?', $conf['server_id'], $sql_in); + } + } + if($snippet['type'] == 'nginx') $affected_sites = $app->db->queryAllRecords('SELECT domain_id FROM web_domain WHERE server_id = ? AND directive_snippets_id = ?', $conf['server_id'], $snippet['directive_snippets_id']); + + if(is_array($affected_sites) && !empty($affected_sites)) { + foreach($affected_sites as $site) { + $website = $app->db->queryOneRecord('SELECT * FROM web_domain WHERE domain_id = ?', $site['domain_id']); + $new_data['old'] = $website; + $new_data['new'] = $website; + $this->update('web_domain_update', $new_data); + } + } + } } // Handle the creation of SSL certificates @@ -425,6 +454,11 @@ class nginx_plugin { $log_folder .= '/' . $subdomain_host; unset($tmp); + if($app->system->is_blacklisted_web_path($web_folder)) { + $app->log('Vhost ' . $subdomain_host . ' is using a blacklisted web folder: ' . $web_folder, LOGLEVEL_ERROR); + return 0; + } + if(isset($data['old']['parent_domain_id'])) { // old one $tmp = $app->db->queryOneRecord('SELECT `domain` FROM web_domain WHERE domain_id = ?', $data['old']['parent_domain_id']); @@ -573,7 +607,13 @@ class nginx_plugin { // Check if the directories are there and create them if necessary. $app->system->web_folder_protection($data['new']['document_root'], false); - if(!is_dir($data['new']['document_root'].'/' . $web_folder)) $app->system->mkdirpath($data['new']['document_root'].'/' . $web_folder); + if(!is_dir($data['new']['document_root'].'/' . $web_folder)) { + if($web_folder !== 'web') { //vhost sub/alias + $app->system->mkdirpath($data['new']['document_root'].'/' . $web_folder, 0755, $username, $groupname); + } else { + $app->system->mkdirpath($data['new']['document_root'].'/' . $web_folder); + } + } if(!is_dir($data['new']['document_root'].'/' . $web_folder . '/error') and $data['new']['errordocs']) $app->system->mkdirpath($data['new']['document_root'].'/' . $web_folder . '/error'); if($data['new']['stats_type'] != '' && !is_dir($data['new']['document_root'].'/' . $web_folder . '/stats')) $app->system->mkdirpath($data['new']['document_root'].'/' . $web_folder . '/stats'); if(!is_dir($data['new']['document_root'].'/ssl')) $app->system->mkdirpath($data['new']['document_root'].'/ssl'); @@ -994,30 +1034,29 @@ class nginx_plugin { } if($data['new']['ip_address'] == '*' && $data['new']['ipv6_address'] == '') $tpl->setVar('ipv6_wildcard', 1); - // PHP-FPM - // Support for multiple PHP versions - /* - if(trim($data['new']['fastcgi_php_version']) != ''){ - $default_php_fpm = false; - list($custom_php_fpm_name, $custom_php_fpm_init_script, $custom_php_fpm_ini_dir, $custom_php_fpm_pool_dir) = explode(':', trim($data['new']['fastcgi_php_version'])); - if(substr($custom_php_fpm_ini_dir,-1) != '/') $custom_php_fpm_ini_dir .= '/'; - } else { - $default_php_fpm = true; - } - */ if($data['new']['php'] == 'php-fpm' || $data['new']['php'] == 'hhvm'){ - if(trim($data['new']['fastcgi_php_version']) != ''){ + if($data['new']['server_php_id'] != 0){ $default_php_fpm = false; - list($custom_php_fpm_name, $custom_php_fpm_init_script, $custom_php_fpm_ini_dir, $custom_php_fpm_pool_dir) = explode(':', trim($data['new']['fastcgi_php_version'])); - if(substr($custom_php_fpm_ini_dir, -1) != '/') $custom_php_fpm_ini_dir .= '/'; + $tmp_php = $app->db->queryOneRecord('SELECT * FROM server_php WHERE server_php_id = ?', $data['new']['server_php_id']); + if($tmp_php) { + $custom_php_fpm_ini_dir = $tmp_php['php_fpm_ini_dir']; + $custom_php_fpm_init_script = $tmp_php['php_fpm_init_script']; + $custom_php_fpm_pool_dir = $tmp_php['php_fpm_pool_dir']; + if(substr($custom_php_fpm_ini_dir, -1) != '/') $custom_php_fpm_ini_dir .= '/'; + } } else { $default_php_fpm = true; } } else { - if(trim($data['old']['fastcgi_php_version']) != '' && $data['old']['php'] != 'no'){ + if($data['old']['server_php_id'] != 0 && $data['old']['php'] != 'no'){ $default_php_fpm = false; - list($custom_php_fpm_name, $custom_php_fpm_init_script, $custom_php_fpm_ini_dir, $custom_php_fpm_pool_dir) = explode(':', trim($data['old']['fastcgi_php_version'])); - if(substr($custom_php_fpm_ini_dir, -1) != '/') $custom_php_fpm_ini_dir .= '/'; + $tmp_php = $app->db->queryOneRecord('SELECT * FROM server_php WHERE server_php_id = ?', $data['old']['server_php_id']); + if($tmp_php) { + $custom_php_fpm_ini_dir = $tmp_php['php_fpm_ini_dir']; + $custom_php_fpm_init_script = $tmp_php['php_fpm_init_script']; + $custom_php_fpm_pool_dir = $tmp_php['php_fpm_pool_dir']; + if(substr($custom_php_fpm_ini_dir, -1) != '/') $custom_php_fpm_ini_dir .= '/'; + } } else { $default_php_fpm = true; } @@ -1194,6 +1233,9 @@ class nginx_plugin { $nginx_directives = $data['new']['nginx_directives']; // $vhost_data['enable_pagespeed'] = false; } + if(!$nginx_directives) { + $nginx_directives = ''; // ensure it is not null + } // folder_directive_snippets if(trim($data['new']['folder_directive_snippets']) != ''){ @@ -1892,6 +1934,26 @@ class nginx_plugin { $this->awstats_update($data, $web_config); } + //* Create GoAccess configuration + if($data['new']['stats_type'] == 'goaccess' && ($data['new']['type'] == 'vhost' || $data['new']['type'] == 'vhostsubdomain' || $data['new']['type'] == 'vhostalias')) { + $this->goaccess_update($data, $web_config); + } + + //* Remove the AWstats configuration file + if($data['old']['stats_type'] == 'awstats' && $data['new']['stats_type'] != 'awstats') { + $this->awstats_delete($data, $web_config); + } + + //* Remove the GoAccess configuration file + if($data['old']['stats_type'] == 'goaccess' && $data['new']['stats_type'] != 'goaccess') { + $this->goaccess_delete($data, $web_config); + } + + //* Remove the Webalizer configuration file + if($data['old']['stats_type'] == 'webalizer' && $data['new']['stats_type'] != 'webalizer') { + $this->webalizer_delete($data, $web_config); + } + //* Remove Stats-Folder when Statistics set to none if($data['new']['stats_type'] == '' && ($data['new']['type'] == 'vhost' || $data['new']['type'] == 'vhostsubdomain' || $data['new']['type'] == 'vhostalias')) { $app->file->removeDirectory($data['new']['document_root'].'/web/stats'); @@ -2518,6 +2580,101 @@ class nginx_plugin { //$app->services->restartServiceDelayed('httpd','reload'); } + + + //* Update the GoAccess configuration file + private function goaccess_update ($data, $web_config) { + global $app; + + $web_folder = $data['new']['web_folder']; + if($data['new']['type'] == 'vhost') $web_folder = 'web'; + + $goaccess_conf_locs = array('/etc/goaccess.conf', '/etc/goaccess/goaccess.conf'); + $count = 0; + + foreach($goaccess_conf_locs as $goa_loc) { + if(is_file($goa_loc) && (filesize($goa_loc) > 0)) { + $goaccess_conf_main = $goa_loc; + break; + } else { + $count++; + if($count == 2) { + $app->log("No GoAccess base config found. Make sure that GoAccess is installed and that the goaccess.conf does exist in /etc or /etc/goaccess", LOGLEVEL_WARN); + } + } + } + + if(!is_dir($data['new']['document_root']."/" . $web_folder . "/stats/.db")) $app->system->mkdirpath($data['new']['document_root'] . "/" . $web_folder . "/stats/.db"); + $goaccess_conf = $data['new']['document_root'].'/log/goaccess.conf'; + + /* + In case that you use a different log format, you should use a custom goaccess.conf which you'll have to put into /usr/local/ispconfig/server/conf-custom/. + By default the originaly with GoAccess shipped goaccess.conf from /etc/ will be used along with the log-format value COMBINED. + */ + + if(file_exists("/usr/local/ispconfig/server/conf-custom/goaccess.conf.master")) { + $app->system->copy("/usr/local/ispconfig/server/conf-custom/goaccess_index.php.master", $goaccess_conf); + + } elseif(!file_exists($goaccess_conf)) { + + /* + By default the goaccess.conf should get copied by the webserver plugin but in case it wasn't, or it got deleted by accident we gonna copy it again to the destination dir. + Also there was no /usr/local/ispconfig/server/conf-custom/goaccess.conf.master, so we gonna use /etc/goaccess.conf as the base conf. + */ + + $app->system->copy($goaccess_conf_main, $goaccess_conf); + $content = $app->system->file_get_contents($goaccess_conf, true); + $content = preg_replace('/^(#)?log-format COMBINED/m', "log-format COMBINED", $content); + $app->system->file_put_contents($goaccess_conf, $content, true); + unset($content); + + } + + if(file_exists($goaccess_conf)) { + $domain = $data['new']['domain']; + $content = $app->system->file_get_contents($goaccess_conf, true); + $content = preg_replace('/^(#)?html-report-title(.*)/m', "html-report-title $domain", $content); + $app->system->file_put_contents($goaccess_conf, $content, true); + unset($content); + + } + + if(is_file($goaccess_conf) && (filesize($goaccess_conf) > 0)) { + $app->log('Created GoAccess config file: '.$goaccess_conf, LOGLEVEL_DEBUG); + } + + if(is_file($data['new']['document_root']."/" . $web_folder . "/stats/index.html")) $app->system->unlink($data['new']['document_root']."/" . $web_folder . "/stats/index.html"); + if(file_exists("/usr/local/ispconfig/server/conf-custom/goaccess_index.php.master")) { + $app->system->copy("/usr/local/ispconfig/server/conf-custom/goaccess_index.php.master", $data['new']['document_root']."/" . $web_folder . "/stats/index.php"); + } else { + $app->system->copy("/usr/local/ispconfig/server/conf/goaccess_index.php.master", $data['new']['document_root']."/" . $web_folder . "/stats/index.php"); + } + } + + //* Delete the GoAccess configuration file + private function goaccess_delete ($data, $web_config) { + global $app; + + $goaccess_conf = $data['old']['document_root'] . "/log/goaccess.conf"; + + if ( @is_file($goaccess_conf) ) { + $app->system->unlink($goaccess_conf); + $app->log('Removed GoAccess config file: '.$goaccess_conf, LOGLEVEL_DEBUG); + } + } + + //* Delete the Webalizer configuration file + private function webalizer_delete ($data, $web_config) { + global $app; + + $webalizer_conf = $data['old']['document_root'] . "/log/webalizer.conf"; + + if ( @is_file($webalizer_conf) ) { + $app->system->unlink($webalizer_conf); + $app->log('Removed Webalizer config file: '.$webalizer_conf, LOGLEVEL_DEBUG); + } + } + //* Update the awstats configuration file private function awstats_update ($data, $web_config) { global $app; @@ -2657,18 +2814,28 @@ class nginx_plugin { // HHVM => PHP-FPM-Fallback if($data['new']['php'] == 'php-fpm' || $data['new']['php'] == 'hhvm'){ - if(trim($data['new']['fastcgi_php_version']) != ''){ + if($data['new']['server_php_id'] != 0){ $default_php_fpm = false; - list($custom_php_fpm_name, $custom_php_fpm_init_script, $custom_php_fpm_ini_dir, $custom_php_fpm_pool_dir) = explode(':', trim($data['new']['fastcgi_php_version'])); - if(substr($custom_php_fpm_ini_dir, -1) != '/') $custom_php_fpm_ini_dir .= '/'; + $tmp_php = $app->db->queryOneRecord('SELECT * FROM server_php WHERE server_php_id = ?', $data['new']['server_php_id']); + if($tmp_php) { + $custom_php_fpm_ini_dir = $tmp_php['php_fpm_ini_dir']; + $custom_php_fpm_init_script = $tmp_php['php_fpm_init_script']; + $custom_php_fpm_pool_dir = $tmp_php['php_fpm_pool_dir']; + if(substr($custom_php_fpm_ini_dir, -1) != '/') $custom_php_fpm_ini_dir .= '/'; + } } else { $default_php_fpm = true; } } else { - if(trim($data['old']['fastcgi_php_version']) != '' && $data['old']['php'] != 'no'){ + if($data['old']['server_php_id'] != 0 && $data['old']['php'] != 'no'){ $default_php_fpm = false; - list($custom_php_fpm_name, $custom_php_fpm_init_script, $custom_php_fpm_ini_dir, $custom_php_fpm_pool_dir) = explode(':', trim($data['old']['fastcgi_php_version'])); - if(substr($custom_php_fpm_ini_dir, -1) != '/') $custom_php_fpm_ini_dir .= '/'; + $tmp_php = $app->db->queryOneRecord('SELECT * FROM server_php WHERE server_php_id = ?', $data['old']['server_php_id']); + if($tmp_php) { + $custom_php_fpm_ini_dir = $tmp_php['php_fpm_ini_dir']; + $custom_php_fpm_init_script = $tmp_php['php_fpm_init_script']; + $custom_php_fpm_pool_dir = $tmp_php['php_fpm_pool_dir']; + if(substr($custom_php_fpm_ini_dir, -1) != '/') $custom_php_fpm_ini_dir .= '/'; + } } else { $default_php_fpm = true; } @@ -2869,10 +3036,15 @@ class nginx_plugin { private function php_fpm_pool_delete ($data, $web_config) { global $app, $conf; - if(trim($data['old']['fastcgi_php_version']) != '' && $data['old']['php'] != 'no'){ + if($data['old']['server_php_id'] != 0 && $data['old']['php'] != 'no'){ $default_php_fpm = false; - list($custom_php_fpm_name, $custom_php_fpm_init_script, $custom_php_fpm_ini_dir, $custom_php_fpm_pool_dir) = explode(':', trim($data['old']['fastcgi_php_version'])); - if(substr($custom_php_fpm_ini_dir, -1) != '/') $custom_php_fpm_ini_dir .= '/'; + $tmp_php = $app->db->queryOneRecord('SELECT * FROM server_php WHERE server_php_id = ?', $data['old']['server_php_id']); + if($tmp_php) { + $custom_php_fpm_ini_dir = $tmp_php['php_fpm_ini_dir']; + $custom_php_fpm_init_script = $tmp_php['php_fpm_init_script']; + $custom_php_fpm_pool_dir = $tmp_php['php_fpm_pool_dir']; + if(substr($custom_php_fpm_ini_dir, -1) != '/') $custom_php_fpm_ini_dir .= '/'; + } } else { $default_php_fpm = true; } diff --git a/server/plugins-available/nginx_reverseproxy_plugin.inc.php b/server/plugins-available/nginx_reverseproxy_plugin.inc.php index 1013042254ba2a2c63980394e6dc964021beb1f8..f35f40d34a2fd638de9532da7b7e30717c0c6e6b 100644 --- a/server/plugins-available/nginx_reverseproxy_plugin.inc.php +++ b/server/plugins-available/nginx_reverseproxy_plugin.inc.php @@ -111,7 +111,9 @@ class nginx_reverseproxy_plugin { $crt_file = $ssl_dir.'/'.$domain.'.crt'; $bundle_file = $ssl_dir.'/'.$domain.'.bundle'; - $vhost_data['nginx_directives'] = preg_replace("/\[IP\]/", $vhost_data['ip_address'], $vhost_data['nginx_directives']); + if($vhost_data['nginx_directives']) { + $vhost_data['nginx_directives'] = preg_replace("/\[IP\]/", $vhost_data['ip_address'], $vhost_data['nginx_directives']); + } if($data['new']['ssl'] == 'y' && @is_file($crt_file) && @is_file($key_file)) { diff --git a/server/plugins-available/postfix_server_plugin.inc.php b/server/plugins-available/postfix_server_plugin.inc.php index 80db1c102a08a8e3a0b21edb82d4621220336a1d..2d6f063cd855752aa730a5bda6c34961949a00e2 100644 --- a/server/plugins-available/postfix_server_plugin.inc.php +++ b/server/plugins-available/postfix_server_plugin.inc.php @@ -33,9 +33,6 @@ class postfix_server_plugin { var $plugin_name = 'postfix_server_plugin'; var $class_name = 'postfix_server_plugin'; - - var $postfix_config_dir = '/etc/postfix'; - //* This function is called during ispconfig installation to determine // if a symlink shall be created for this plugin. function onInstall() { @@ -73,17 +70,23 @@ class postfix_server_plugin { // The purpose of this plugin is to rewrite the main.cf file function update($event_name, $data) { global $app, $conf; + $postfix_restart = false; // get the config $app->uses("getconf,system"); $old_ini_data = $app->ini_parser->parse_ini_string($data['old']['config']); $mail_config = $app->getconf->get_server_config($conf['server_id'], 'mail'); + // Get postfix version + exec('postconf -d mail_version 2>&1', $out); + $postfix_version = preg_replace('/.*=\s*/', '', $out[0]); + unset($out); + copy('/etc/postfix/main.cf', '/etc/postfix/main.cf~'); - + if ($mail_config['relayhost'].$mail_config['relayhost_user'].$mail_config['relayhost_password'] != $old_ini_data['mail']['relayhost'].$old_ini_data['mail']['relayhost_user'].$old_ini_data['mail']['relayhost_password']) { $content = file_exists('/etc/postfix/sasl_passwd') ? file_get_contents('/etc/postfix/sasl_passwd') : ''; - $content = preg_replace('/^'.preg_quote($old_ini_data['email']['relayhost']).'\s+[^\n]*(:?\n|)/m','',$content); + $content = preg_replace('/^'.preg_quote($old_ini_data['email']['relayhost'], '/').'\s+[^\n]*(:?\n|)/m','',$content); if (!empty($mail_config['relayhost_user']) || !empty($mail_config['relayhost_password'])) { $content .= "\n".$mail_config['relayhost'].' '.$mail_config['relayhost_user'].':'.$mail_config['relayhost_password']; @@ -103,7 +106,7 @@ class postfix_server_plugin { exec("postconf -e 'smtp_sasl_password_maps = hash:/etc/postfix/sasl_passwd'"); exec("postconf -e 'smtp_sasl_security_options ='"); exec('postmap /etc/postfix/sasl_passwd'); - exec($conf['init_scripts'] . '/' . 'postfix restart'); + $postfix_restart=true; } if($mail_config['realtime_blackhole_list'] != $old_ini_data['mail']['realtime_blackhole_list']) { @@ -115,14 +118,16 @@ class postfix_server_plugin { $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 $key => $value) { - $value = trim($value); - if($value != '') $new_options[] = "reject_rbl_client ".$value; + foreach ($rbl_hosts as $key2 => $value2) { + $value2 = trim($value2); + if($value2 != '') $new_options[] = "reject_rbl_client ".$value2; } } } @@ -135,27 +140,147 @@ class postfix_server_plugin { } } $app->system->exec_safe("postconf -e ?", 'smtpd_recipient_restrictions = '.implode(", ", $new_options)); - exec('postfix reload'); } - - if($mail_config['reject_sender_login_mismatch'] != $old_ini_data['mail']['reject_sender_login_mismatch']) { - $options = explode(", ", exec("postconf -h smtpd_sender_restrictions")); + + if ($mail_config['reject_sender_login_mismatch'] != $old_ini_data['mail']['reject_sender_login_mismatch']) { + $options = preg_split("/,\s*/", exec("postconf -h smtpd_sender_restrictions")); $new_options = array(); foreach ($options as $key => $value) { - if (!preg_match('/reject_authenticated_sender_login_mismatch/', $value)) { - $new_options[] = $value; + $value = trim($value); + if ($value == '') continue; + if (preg_match('/reject_(authenticated_)?sender_login_mismatch/', $value)) { + continue; } + $new_options[] = $value; } - + if ($mail_config['reject_sender_login_mismatch'] == 'y') { - reset($new_options); $i = 0; - // insert after check_sender_access but before permit_... - while (isset($new_options[$i]) && substr($new_options[$i], 0, 19) == 'check_sender_access') ++$i; - array_splice($new_options, $i, 0, array('reject_authenticated_sender_login_mismatch')); + array_splice($new_options, 0, 0, array('reject_authenticated_sender_login_mismatch')); + + for ($i = 0; isset($new_options[$i]); $i++) { + if ($new_options[$i] == 'permit_mynetworks') { + array_splice($new_options, $i+1, 0, array('reject_sender_login_mismatch')); + break; + } + } } + $app->system->exec_safe("postconf -e ?", 'smtpd_sender_restrictions = '.implode(", ", $new_options)); - exec('postfix reload'); - } + } + + if ($mail_config['reject_unknown']) { + if (($mail_config['reject_unknown'] === 'client') || ($mail_config['reject_unknown'] === 'client_helo')) { + $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_unknown(_client)?_hostname/', $value)) { + continue; + } + $new_options[] = $value; + } + + // insert before explicit permit, or append + for ($i = 0; isset($new_options[$i]); $i++) { + if ($new_options[$i] == 'permit') { + array_splice($new_options, $i, 0, array('reject_unknown_client_hostname')); + break; + } + } + if ($i == count($new_options)) { + $new_options[] = array('reject_unknown_client_hostname'); + } + + $app->system->exec_safe("postconf -e ?", 'smtpd_client_restrictions = '.implode(", ", $new_options)); + } else { + $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_unknown(_client)?_hostname/', $value)) { + continue; + } + $new_options[] = $value; + } + $app->system->exec_safe("postconf -e ?", 'smtpd_client_restrictions = '.implode(", ", $new_options)); + } + + if (($mail_config['reject_unknown'] === 'helo') || ($mail_config['reject_unknown'] === 'client_helo')) { + $options = preg_split("/,\s*/", exec("postconf -h smtpd_helo_restrictions")); + $new_options = array(); + foreach ($options as $key => $value) { + $value = trim($value); + if ($value == '') continue; + if (preg_match('/reject_unknown(_helo)?_hostname/', $value)) { + continue; + } + $new_options[] = $value; + } + + // insert before explicit permit, or append + for ($i = 0; isset($new_options[$i]); $i++) { + if ($new_options[$i] == 'permit') { + array_splice($new_options, $i, 0, array('reject_unknown_helo_hostname')); + break; + } + } + if ($i == count($new_options)) { + $new_options[] = array('reject_unknown_helo_hostname'); + } + + $app->system->exec_safe("postconf -e ?", 'smtpd_helo_restrictions = '.implode(", ", $new_options)); + } else { + $options = preg_split("/,\s*/", exec("postconf -h smtpd_helo_restrictions")); + $new_options = array(); + foreach ($options as $key => $value) { + $value = trim($value); + if ($value == '') continue; + if (preg_match('/reject_unknown(_helo)?_hostname/', $value)) { + continue; + } + $new_options[] = $value; + } + $app->system->exec_safe("postconf -e ?", 'smtpd_helo_restrictions = '.implode(", ", $new_options)); + } + } + + if ($mail_config['stress_adaptive']) { + if ($mail_config['stress_adaptive'] == 'y') { + if (version_compare($postfix_version , '3.0', '>=')) { + $app->system->exec_safe("postconf -e ?", 'in_flow_delay = ${stress?{3}:{1}}s'); + $app->system->exec_safe("postconf -e ?", 'smtp_connect_timeout = ${stress?{10}:{30}}s'); + $app->system->exec_safe("postconf -e ?", 'smtp_helo_timeout = ${stress?{10}:{60}}s'); + $app->system->exec_safe("postconf -e ?", 'smtp_mail_timeout = ${stress?{10}:{60}}s'); + $app->system->exec_safe("postconf -e ?", 'smtpd_error_sleep_time = ${stress?{1}:{2}}s'); + $app->system->exec_safe("postconf -e ?", 'smtpd_hard_error_limit = ${stress?{1}:{10}}'); + $app->system->exec_safe("postconf -e ?", 'smtpd_recipient_overshoot_limit = ${stress?{60}:{600}}'); + $app->system->exec_safe("postconf -e ?", 'smtpd_soft_error_limit = ${stress?{2}:{5}}'); + $app->system->exec_safe("postconf -e ?", 'smtpd_timeout = ${stress?{10}:{60}}s'); + } elseif (version_compare($postfix_version , '2.5', '>=')) { + $app->system->exec_safe("postconf -e ?", 'in_flow_delay = ${stress?3}${stress:1}s'); + $app->system->exec_safe("postconf -e ?", 'smtp_connect_timeout = ${stress?10}${stress:30}s'); + $app->system->exec_safe("postconf -e ?", 'smtp_helo_timeout = ${stress?10}${stress:60}s'); + $app->system->exec_safe("postconf -e ?", 'smtp_mail_timeout = ${stress?10}${stress:60}s'); + $app->system->exec_safe("postconf -e ?", 'smtpd_error_sleep_time = ${stress?1}${stress:2}s'); + $app->system->exec_safe("postconf -e ?", 'smtpd_hard_error_limit = ${stress?1}${stress:10}'); + $app->system->exec_safe("postconf -e ?", 'smtpd_recipient_overshoot_limit = ${stress?60}${stress:600}'); + $app->system->exec_safe("postconf -e ?", 'smtpd_soft_error_limit = ${stress?2}${stress:5}'); + $app->system->exec_safe("postconf -e ?", 'smtpd_timeout = ${stress?10}${stress:60}s'); + } + } else { // mail_config['stress_adaptive'] == 'n' + exec("postconf -X 'in_flow_delay'"); + exec("postconf -X 'smtp_connect_timeout'"); + exec("postconf -X 'smtp_helo_timeout'"); + exec("postconf -X 'smtp_mail_timeout'"); + exec("postconf -X 'smtpd_error_sleep_time'"); + exec("postconf -X 'smtpd_hard_error_limit'"); + exec("postconf -X 'smtpd_recipient_overshoot_limit'"); + exec("postconf -X 'smtpd_soft_error_limit'"); + exec("postconf -X 'smtpd_timeout'"); + } + } if($app->system->is_installed('dovecot')) { $virtual_transport = 'dovecot'; @@ -190,7 +315,35 @@ class postfix_server_plugin { } } + $quoted_postfix_config_dir = preg_quote($conf['postfix']['config_dir'], '|'); + $new_options = array(); + $options = preg_split("/,\s*/", exec("postconf -h smtpd_recipient_restrictions")); + foreach ($options as $key => $value) { + $value = trim($value); + if ($value == '') continue; + if (preg_match("|check_recipient_access\s+proxy:mysql:${quoted_postfix_config_dir}/mysql-verify_recipients.cf|", $value)) { + continue; + } + $new_options[] = $value; + } + if (defined($configure_lmtp) && $configure_lmtp) { + for ($i = 0; isset($new_options[$i]); $i++) { + if ($new_options[$i] == 'reject_unlisted_recipient') { + array_splice($new_options, $i+1, 0, array("check_recipient_access proxy:mysql:${quoted_postfix_config_dir}/mysql-verify_recipients.cf")); + break; + } + } + # postfix < 3.3 needs this when using reject_unverified_recipient: + if(version_compare($postfix_version, 3.3, '<')) { + exec("postconf -e 'enable_original_recipient = yes'"); + } + } + exec("postconf -e 'smtpd_recipient_restrictions = ".implode(", ", $new_options)."'"); + if($mail_config['content_filter'] != $old_ini_data['mail']['content_filter']) { + $rslm = ($mail_config['reject_sender_login_mismatch'] == 'y') ? "reject_sender_login_mismatch," : ""; + $raslm = ($mail_config['reject_sender_login_mismatch'] == 'y') ? "reject_authenticated_sender_login_mismatch," : ""; + if($mail_config['content_filter'] == 'rspamd'){ exec("postconf -X 'receive_override_options'"); exec("postconf -X 'content_filter'"); @@ -200,15 +353,18 @@ class postfix_server_plugin { exec("postconf -e 'milter_protocol = 6'"); exec("postconf -e 'milter_mail_macros = i {mail_addr} {client_addr} {client_name} {auth_authen}'"); exec("postconf -e 'milter_default_action = accept'"); - - exec("postconf -e 'smtpd_sender_restrictions = check_sender_access mysql:/etc/postfix/mysql-virtual_sender.cf, permit_mynetworks, permit_sasl_authenticated'"); + + exec("postconf -e 'smtpd_sender_restrictions = ${raslm} permit_mynetworks, ${rslm} permit_sasl_authenticated, reject_non_fqdn_sender, check_sender_access proxy:mysql:/etc/postfix/mysql-virtual_sender.cf'"); $new_options = array(); $options = preg_split("/,\s*/", exec("postconf -h smtpd_recipient_restrictions")); foreach ($options as $key => $value) { - if (!preg_match('/check_policy_service\s+inet:127.0.0.1:10023/', $value)) { - $new_options[] = $value; + $value = trim($value); + if ($value == '') continue; + if (preg_match('/check_policy_service\s+inet:127.0.0.1:10023/', $value)) { + continue; } + $new_options[] = $value; } exec("postconf -e 'smtpd_recipient_restrictions = ".implode(", ", $new_options)."'"); @@ -234,8 +390,9 @@ class postfix_server_plugin { exec("postconf -e 'receive_override_options = no_address_mappings'"); exec("postconf -e 'content_filter = " . ($configure_lmtp ? "lmtp" : "amavis" ) . ":[127.0.0.1]:10024'"); - - exec("postconf -e 'smtpd_sender_restrictions = check_sender_access mysql:/etc/postfix/mysql-virtual_sender.cf regexp:/etc/postfix/tag_as_originating.re, permit_mynetworks, permit_sasl_authenticated, check_sender_access regexp:/etc/postfix/tag_as_foreign.re'"); + + // fixme: should read this from conf templates + exec("postconf -e 'smtpd_sender_restrictions = ${raslm} check_sender_access regexp:/etc/postfix/tag_as_originating.re, permit_mynetworks, ${rslm} permit_sasl_authenticated, reject_non_fqdn_sender, check_sender_access regexp:/etc/postfix/tag_as_foreign.re, check_sender_access proxy:mysql:/etc/postfix/mysql-virtual_sender.cf'"); } } @@ -258,6 +415,6 @@ class postfix_server_plugin { exec("postconf -e 'mailbox_size_limit = ".intval($mail_config['mailbox_size_limit']*1024*1024)."'"); exec("postconf -e 'message_size_limit = ".intval($mail_config['message_size_limit']*1024*1024)."'"); - $app->services->restartServiceDelayed('postfix', 'reload'); + $app->services->restartServiceDelayed('postfix', ($postfix_restart ? 'restart' : 'reload')); } } // end class diff --git a/server/plugins-available/shelluser_base_plugin.inc.php b/server/plugins-available/shelluser_base_plugin.inc.php index 9f19c2be58cb397f8b2fa4acf3b48c0ccca05440..e3276755bed03a99f0faa84d9e8983bed48f4e20 100755 --- a/server/plugins-available/shelluser_base_plugin.inc.php +++ b/server/plugins-available/shelluser_base_plugin.inc.php @@ -58,20 +58,20 @@ class shelluser_base_plugin { /* Register for the events */ - + $app->plugins->registerEvent('shell_user_insert', $this->plugin_name, 'insert'); $app->plugins->registerEvent('shell_user_update', $this->plugin_name, 'update'); $app->plugins->registerEvent('shell_user_delete', $this->plugin_name, 'delete'); - + } function insert($event_name, $data) { global $app, $conf; - + $app->uses('system,getconf'); - + $security_config = $app->getconf->get_security_config('permissions'); if($security_config['allow_shell_user'] != 'yes') { $app->log('Shell user plugin disabled by security settings.',LOGLEVEL_WARN); @@ -88,7 +88,7 @@ class shelluser_base_plugin { $app->log('Directory of the shell user is not valid.',LOGLEVEL_WARN); return false; } - + if(!$app->system->is_allowed_user($data['new']['username'], false, false) || !$app->system->is_allowed_user($data['new']['puser'], true, true) || !$app->system->is_allowed_group($data['new']['pgroup'], true, true)) { @@ -96,8 +96,8 @@ class shelluser_base_plugin { return false; } - if($data['new']['active'] != 'y') $data['new']['shell'] = '/bin/false'; - + if($data['new']['active'] != 'y' || $data['new']['chroot'] == "jailkit") $data['new']['shell'] = '/bin/false'; + if($app->system->is_user($data['new']['puser'])) { // Get the UID of the parent user @@ -105,24 +105,20 @@ class shelluser_base_plugin { if($uid > $this->min_uid) { //* Remove webfolder protection $app->system->web_folder_protection($web['document_root'], false); - + //* Home directory of the new shell user - if($data['new']['chroot'] == 'jailkit') { - $homedir = $data['new']['dir']; - } else { - $homedir = $data['new']['dir'].'/home/'.$data['new']['username']; - } - + $homedir = $data['new']['dir'].'/home/'.$data['new']['username']; + // Create home base directory if it does not exist if(!is_dir($data['new']['dir'].'/home')){ $app->file->mkdirs($data['new']['dir'].'/home', '0755'); } - + // Change ownership of home base dir to root user $app->system->chown($data['new']['dir'].'/home','root'); $app->system->chgrp($data['new']['dir'].'/home','root'); $app->system->chmod($data['new']['dir'].'/home',0755); - + if(!is_dir($homedir)){ $app->file->mkdirs($homedir, '0750'); $app->system->chown($homedir,$data['new']['puser'],false); @@ -142,10 +138,10 @@ class shelluser_base_plugin { $app->log("Command chpasswd failed for user ".$data['new']['username'] . ' with code ' . $retval . ': ' . $stderr, LOGLEVEL_WARN); } } - + $app->system->chown($data['new']['dir'],$data['new']['username'],false); $app->system->chgrp($data['new']['dir'],$data['new']['pgroup'],false); - + // call the ssh-rsa update function $app->uses("getconf"); @@ -186,7 +182,7 @@ class shelluser_base_plugin { global $app, $conf; $app->uses('system,getconf'); - + $security_config = $app->getconf->get_security_config('permissions'); if($security_config['allow_shell_user'] != 'yes') { $app->log('Shell user plugin disabled by security settings.',LOGLEVEL_WARN); @@ -199,7 +195,7 @@ class shelluser_base_plugin { $app->log('Directory of the shell user is outside of website docroot.',LOGLEVEL_WARN); return false; } - + if(strpos($data['new']['dir'], '/../') !== false || substr($data['new']['dir'],-3) == '/..') { $app->log('Directory of the shell user is not valid.',LOGLEVEL_WARN); return false; @@ -211,14 +207,14 @@ class shelluser_base_plugin { $app->log('Shell user must not be root or in group root.',LOGLEVEL_WARN); return false; } - + if($data['new']['active'] != 'y') $data['new']['shell'] = '/bin/false'; - + if($app->system->is_user($data['new']['puser'])) { // Get the UID of the parent user $uid = intval($app->system->getuid($data['new']['puser'])); if($uid > $this->min_uid) { - + //* Home directory of the shell user if($data['new']['chroot'] == 'jailkit') { $homedir = $data['new']['dir']; @@ -227,10 +223,10 @@ class shelluser_base_plugin { $homedir = $data['new']['dir'].'/home/'.$data['new']['username']; $homedir_old = $data['old']['dir'].'/home/'.$data['old']['username']; } - + $app->log("Homedir New: ".$homedir, LOGLEVEL_DEBUG); $app->log("Homedir Old: ".$homedir_old, LOGLEVEL_DEBUG); - + // Check if the user that we want to update exists, if not, we insert it if($app->system->is_user($data['old']['username'])) { //* Remove webfolder protection @@ -243,7 +239,7 @@ class shelluser_base_plugin { $app->log("New Homedir exists, renaming it to ".$homedir.'_bak', LOGLEVEL_DEBUG); $app->system->rename($homedir,$homedir.'_bak'); } - + // Move old directory to new path $app->system->rename($homedir_old,$homedir); $app->file->mkdirs($homedir, '0750'); @@ -280,7 +276,7 @@ class shelluser_base_plugin { $app->system->chown($homedir.'/.bash_history', $data['new']['username']); $app->system->chgrp($homedir.'/.bash_history', $data['new']['pgroup']); } - + //* Create .profile file if(!is_file($data['new']['dir']).'/.profile') { $app->system->touch($homedir.'/.profile'); @@ -307,7 +303,7 @@ class shelluser_base_plugin { global $app, $conf; $app->uses('system,getconf,services'); - + $security_config = $app->getconf->get_security_config('permissions'); if($security_config['allow_shell_user'] != 'yes') { $app->log('Shell user plugin disabled by security settings.',LOGLEVEL_WARN); @@ -319,21 +315,21 @@ class shelluser_base_plugin { $userid = intval($app->system->getuid($data['old']['username'])); if($userid > $this->min_uid) { $web = $app->db->queryOneRecord("SELECT * FROM web_domain WHERE domain_id = ".intval($data['old']['parent_domain_id'])); - + // check if we have to delete the dir $check = $app->db->queryOneRecord('SELECT shell_user_id FROM `shell_user` WHERE `dir` = ?', $data['old']['dir']); if(!$check && is_dir($data['old']['dir'])) { - + $web = $app->db->queryOneRecord("SELECT * FROM web_domain WHERE domain_id = ?", $data['old']['parent_domain_id']); $app->system->web_folder_protection($web['document_root'], false); - + // delete dir if($data['new']['chroot'] == 'jailkit') { $homedir = $data['old']['dir']; } else { $homedir = $data['old']['dir'].'/home/'.$data['old']['username']; } - + if(substr($homedir, -1) !== '/') $homedir .= '/'; $files = array('.bash_logout', '.bash_history', '.bashrc', '.profile'); $dirs = array('.ssh', '.cache'); @@ -359,17 +355,22 @@ class shelluser_base_plugin { } unset($files); unset($dirs); - + $app->system->web_folder_protection($web['document_root'], true); } - + // We delete only non jailkit users, jailkit users will be deleted by the jailkit plugin. if ($data['old']['chroot'] != "jailkit") { // if this web uses PHP-FPM, that PPH-FPM service must be stopped before we can delete this user if($web['php'] == 'php-fpm'){ - if(trim($web['fastcgi_php_version']) != ''){ + if($web['server_php_id'] != 0){ $default_php_fpm = false; - list($custom_php_fpm_name, $custom_php_fpm_init_script, $custom_php_fpm_ini_dir, $custom_php_fpm_pool_dir) = explode(':', trim($web['fastcgi_php_version'])); + $tmp_php = $app->db->queryOneRecord('SELECT * FROM server_php WHERE server_php_id = ?', $web['server_php_id']); + if($tmp_php) { + $custom_php_fpm_ini_dir = $tmp_php['php_fpm_ini_dir']; + $custom_php_fpm_init_script = $tmp_php['php_fpm_init_script']; + if(substr($custom_php_fpm_ini_dir, -1) != '/') $custom_php_fpm_ini_dir .= '/'; + } } else { $default_php_fpm = true; } diff --git a/server/plugins-available/webserver_plugin.inc.php b/server/plugins-available/webserver_plugin.inc.php index cca339ace01a5f123e6dd9167c568343d1906eed..3dae9216fa9371f9fac93c648441bfeaa11aeda7 100644 --- a/server/plugins-available/webserver_plugin.inc.php +++ b/server/plugins-available/webserver_plugin.inc.php @@ -89,20 +89,20 @@ class webserver_plugin { //** add default php.ini files to check $check_files[] = array('file' => $web_config['php_ini_path_apache'], 'mode' => 'mod', - 'php_version' => ''); // default; + 'php_version' => 0); // default; $check_files[] = array('file' => $web_config['php_ini_path_cgi'], 'mode' => '', // all but 'mod' and 'fast-cgi' - 'php_version' => ''); // default; + 'php_version' => 0); // default; if($fastcgi_config["fastcgi_phpini_path"] && $fastcgi_config["fastcgi_phpini_path"] != $web_config['php_ini_path_cgi']) { $check_files[] = array('file' => $fastcgi_config["fastcgi_phpini_path"], 'mode' => 'fast-cgi', - 'php_version' => ''); // default; + 'php_version' => 0); // default; } else { $check_files[] = array('file' => $web_config['php_ini_path_cgi'], 'mode' => 'fast-cgi', // all but 'mod' - 'php_version' => ''); // default; + 'php_version' => 0); // default; } @@ -112,11 +112,11 @@ class webserver_plugin { if($php['php_fastcgi_ini_dir'] && $php['php_fastcgi_ini_dir'] . '/php.ini' != $web_config['php_ini_path_cgi']) { $check_files[] = array('file' => $php['php_fastcgi_ini_dir'] . '/php.ini', 'mode' => 'fast-cgi', - 'php_version' => $php['php_fastcgi_ini_dir']); + 'php_version' => $php['server_php_id']); } elseif($php['php_fpm_ini_dir'] && $php['php_fpm_ini_dir'] . '/php.ini' != $web_config['php_ini_path_cgi']) { $check_files[] = array('file' => $php['php_fpm_ini_dir'] . '/php.ini', 'mode' => 'php-fpm', - 'php_version' => $php['php_fpm_ini_dir']); + 'php_version' => $php['server_php_id']); } } unset($php_versions); diff --git a/server/plugins-available/z_php_fpm_incron_reload_plugin.inc.php b/server/plugins-available/z_php_fpm_incron_reload_plugin.inc.php index 5a643a660a7a52db3596ec4a0312e6098e83f369..b2dd92265e8f638aae2addf1f34942fbb31e0448 100644 --- a/server/plugins-available/z_php_fpm_incron_reload_plugin.inc.php +++ b/server/plugins-available/z_php_fpm_incron_reload_plugin.inc.php @@ -66,7 +66,7 @@ class z_php_fpm_incron_reload_plugin { private function phpVersionUnchanged($data) { - return $data['new']['fastcgi_php_version'] === $data['old']['fastcgi_php_version']; + return $data['new']['server_php_id'] === $data['old']['server_php_id']; } private function setup($data) @@ -77,7 +77,7 @@ class z_php_fpm_incron_reload_plugin { $this->createIncronConfiguration( $triggerFile, $data['system_user'], - $data['fastcgi_php_version'] + $data['server_php_id'] ); $this->restartIncronService(); @@ -173,12 +173,14 @@ class z_php_fpm_incron_reload_plugin { } private function getPhpService($fastcgiPhpVersion) { - $phpInfo = explode(':', $fastcgiPhpVersion); + global $app; + + $phpInfo = $app->db->queryOneRecord('SELECT * FROM server_php WHERE server_php_id = ?', $fastcgiPhpVersion); if (empty($phpInfo)) { return null; } - $phpService = $phpInfo[1]; + $phpService = $phpInfo['php_fpm_init_script']; if (empty($phpService)) { return null; } diff --git a/server/scripts/create_jailkit_chroot.sh b/server/scripts/create_jailkit_chroot.sh index cc39b6e4cf1767d9a93c4db5b657c46c06cce891..dc0f948735abcbb73639094683fbb77c8e16a455 100755 --- a/server/scripts/create_jailkit_chroot.sh +++ b/server/scripts/create_jailkit_chroot.sh @@ -21,7 +21,7 @@ CHROOT_APP_SECTIONS=$2 chown root:root $CHROOT_HOMEDIR ## Initialize the chroot into the specified directory with the specified applications -jk_init -f -k -c /etc/jailkit/jk_init.ini -j $CHROOT_HOMEDIR $CHROOT_APP_SECTIONS +jk_init -f -c /etc/jailkit/jk_init.ini -j $CHROOT_HOMEDIR $CHROOT_APP_SECTIONS ## Create the temp directory if [ ! -d "$CHROOT_HOMEDIR/tmp" ] diff --git a/server/scripts/create_jailkit_programs.sh b/server/scripts/create_jailkit_programs.sh index 11641f2c1ff506db996cb3063b2cefb41f985ff7..62ea1b2dc9a3377b01e3f7fb7ebf5a3e9311687a 100755 --- a/server/scripts/create_jailkit_programs.sh +++ b/server/scripts/create_jailkit_programs.sh @@ -17,4 +17,4 @@ fi CHROOT_HOMEDIR=$1 CHROOT_APP_PROGRAMS=$2 -jk_cp -k $CHROOT_HOMEDIR $CHROOT_APP_PROGRAMS +jk_cp -j $CHROOT_HOMEDIR $CHROOT_APP_PROGRAMS