From f4393490ffb793c91b0d060ff591848fe5f245cc Mon Sep 17 00:00:00 2001 From: Webslice <4052-webslice@users.noreply.git.ispconfig.org> Date: Mon, 30 Mar 2020 12:43:40 +0200 Subject: [PATCH] Exclude IP's from maintenance --- CONTRIBUTING.md | 2 +- install/tpl/system.ini.master | 1 + interface/lib/app.inc.php | 16 ++++++++++++++++ interface/lib/classes/remoting.inc.php | 4 +--- interface/web/admin/form/system_config.tform.php | 14 ++++++++++++++ .../web/admin/lib/lang/ar_system_config.lng | 2 ++ .../web/admin/lib/lang/bg_system_config.lng | 2 ++ .../web/admin/lib/lang/br_system_config.lng | 2 ++ .../web/admin/lib/lang/ca_system_config.lng | 2 ++ .../web/admin/lib/lang/cz_system_config.lng | 2 ++ .../web/admin/lib/lang/de_system_config.lng | 2 ++ .../web/admin/lib/lang/dk_system_config.lng | 2 ++ .../web/admin/lib/lang/el_system_config.lng | 2 ++ .../web/admin/lib/lang/en_system_config.lng | 2 ++ .../web/admin/lib/lang/es_system_config.lng | 2 ++ .../web/admin/lib/lang/fi_system_config.lng | 2 ++ .../web/admin/lib/lang/fr_system_config.lng | 2 ++ .../web/admin/lib/lang/hr_system_config.lng | 2 ++ .../web/admin/lib/lang/hu_system_config.lng | 2 ++ .../web/admin/lib/lang/id_system_config.lng | 2 ++ .../web/admin/lib/lang/it_system_config.lng | 2 ++ .../web/admin/lib/lang/ja_system_config.lng | 2 ++ .../web/admin/lib/lang/nl_system_config.lng | 2 ++ .../web/admin/lib/lang/pl_system_config.lng | 2 ++ .../web/admin/lib/lang/pt_system_config.lng | 2 ++ .../web/admin/lib/lang/ro_system_config.lng | 2 ++ .../web/admin/lib/lang/ru_system_config.lng | 2 ++ .../web/admin/lib/lang/se_system_config.lng | 2 ++ .../web/admin/lib/lang/sk_system_config.lng | 2 ++ .../web/admin/lib/lang/tr_system_config.lng | 2 ++ .../admin/templates/system_config_misc_edit.htm | 6 ++++++ interface/web/login/index.php | 5 ++--- 32 files changed, 91 insertions(+), 7 deletions(-) diff --git a/CONTRIBUTING.md b/CONTRIBUTING.md index f6c528479a..d8eac80ebd 100644 --- a/CONTRIBUTING.md +++ b/CONTRIBUTING.md @@ -123,4 +123,4 @@ $web_config = $app->getconf->get_server_config($server_id,'web'); # Learn about the form validators There are form validators in interface/lib/classes/tform.inc.php to make validating forms easier. -Read about: REGEX,UNIQUE,NOTEMPTY,ISEMAIL,ISINT,ISPOSITIVE,ISIPV4,CUSTOM +Read about: REGEX,UNIQUE,NOTEMPTY,ISEMAIL,ISINT,ISPOSITIVE,ISIPV4,ISIPV6,ISIP,CUSTOM diff --git a/install/tpl/system.ini.master b/install/tpl/system.ini.master index c916a62547..4df1a877dc 100644 --- a/install/tpl/system.ini.master +++ b/install/tpl/system.ini.master @@ -55,6 +55,7 @@ tab_change_warning=n use_loadindicator=y use_combobox=y maintenance_mode=n +maintenance_mode_exclude_ips= admin_dashlets_left= admin_dashlets_right= reseller_dashlets_left= diff --git a/interface/lib/app.inc.php b/interface/lib/app.inc.php index e817fcbd44..be6c15666c 100755 --- a/interface/lib/app.inc.php +++ b/interface/lib/app.inc.php @@ -333,6 +333,22 @@ class app { $this->tpl->setVar('globalsearch_noresults_limit_txt', $this->lng('globalsearch_noresults_limit_txt')); $this->tpl->setVar('globalsearch_searchfield_watermark_txt', $this->lng('globalsearch_searchfield_watermark_txt')); } + + public function is_under_maintenance() { + $system_config_misc = $this->getconf->get_global_config('misc'); + $maintenance_mode = 'n'; + $maintenance_mode_exclude_ips = []; + + if (!empty($system_config_misc['maintenance_mode'])) { + $maintenance_mode = $system_config_misc['maintenance_mode']; + } + + if (!empty($system_config_misc['maintenance_mode_exclude_ips'])) { + $maintenance_mode_exclude_ips = array_map('trim', explode(',', $system_config_misc['maintenance_mode_exclude_ips'])); + } + + 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'); diff --git a/interface/lib/classes/remoting.inc.php b/interface/lib/classes/remoting.inc.php index e1fc1ada86..47aa517de8 100644 --- a/interface/lib/classes/remoting.inc.php +++ b/interface/lib/classes/remoting.inc.php @@ -72,9 +72,7 @@ class remoting { global $app, $conf; // Maintenance mode - $app->uses('ini_parser,getconf'); - $server_config_array = $app->getconf->get_global_config('misc'); - if($server_config_array['maintenance_mode'] == 'y'){ + if($app->is_under_maintenance()){ throw new SoapFault('maintenance_mode', 'This ISPConfig installation is currently under maintenance. We should be back shortly. Thank you for your patience.'); return false; } diff --git a/interface/web/admin/form/system_config.tform.php b/interface/web/admin/form/system_config.tform.php index cb37cbefdd..d1b0a793e7 100644 --- a/interface/web/admin/form/system_config.tform.php +++ b/interface/web/admin/form/system_config.tform.php @@ -606,6 +606,20 @@ $form["tabs"]['misc'] = array ( 'default' => 'n', 'value' => array(0 => 'n', 1 => 'y') ), + 'maintenance_mode_exclude_ips' => array ( + 'datatype' => 'VARCHAR', + 'formtype' => 'TEXT', + 'validators' => array( + 0 => array ( + 'type' => 'ISIP', + 'allowempty' => true, + 'separator' => ',', + 'errmsg'=> 'maintenance_mode_exclude_ips_error_isip' + ), + ), + 'default' => '', + 'value' => '' + ), 'admin_dashlets_left' => array ( 'datatype' => 'VARCHAR', 'formtype' => 'TEXT', diff --git a/interface/web/admin/lib/lang/ar_system_config.lng b/interface/web/admin/lib/lang/ar_system_config.lng index 0a830014d8..4ea9a68919 100644 --- a/interface/web/admin/lib/lang/ar_system_config.lng +++ b/interface/web/admin/lib/lang/ar_system_config.lng @@ -29,6 +29,8 @@ $wb['admin_mail_txt'] = 'Administrators e-mail'; $wb['monitor_key_txt'] = 'Monitor keyword'; $wb['admin_name_txt'] = 'Administrators name'; $wb['maintenance_mode_txt'] = 'Maintenance Mode'; +$wb['maintenance_mode_exclude_ips_txt'] = 'Exclude IP\'s from maintenance'; +$wb['maintenance_mode_exclude_ips_error_isip'] = 'One or more invalid IP addresses in maintenance mode exclude list. Must be a list of comma-separated IPv4 and/or IPv6 addresses.'; $wb['smtp_enabled_txt'] = 'Use SMTP to send system mails'; $wb['smtp_host_txt'] = 'SMTP host'; $wb['smtp_port_txt'] = 'SMTP port'; diff --git a/interface/web/admin/lib/lang/bg_system_config.lng b/interface/web/admin/lib/lang/bg_system_config.lng index 130cb596aa..1ea00be94f 100644 --- a/interface/web/admin/lib/lang/bg_system_config.lng +++ b/interface/web/admin/lib/lang/bg_system_config.lng @@ -29,6 +29,8 @@ $wb['admin_mail_txt'] = 'ÐдминиÑтраторÑки емаил'; $wb['admin_name_txt'] = 'ÐдминиÑтраторÑки имена'; $wb['system_config_desc_txt'] = ''; $wb['maintenance_mode_txt'] = 'Maintenance Mode'; +$wb['maintenance_mode_exclude_ips_txt'] = 'Exclude IP\'s from maintenance'; +$wb['maintenance_mode_exclude_ips_error_isip'] = 'One or more invalid IP addresses in maintenance mode exclude list. Must be a list of comma-separated IPv4 and/or IPv6 addresses.'; $wb['smtp_enabled_txt'] = 'Use SMTP to send system mails'; $wb['smtp_host_txt'] = 'SMTP host'; $wb['smtp_port_txt'] = 'SMTP port'; diff --git a/interface/web/admin/lib/lang/br_system_config.lng b/interface/web/admin/lib/lang/br_system_config.lng index 98bd4c9614..f1feae4768 100644 --- a/interface/web/admin/lib/lang/br_system_config.lng +++ b/interface/web/admin/lib/lang/br_system_config.lng @@ -40,6 +40,8 @@ $wb['admin_mail_txt'] = 'Administrador(es) de e-mails'; $wb['monitor_key_txt'] = 'Palavras reservadas a monitorar'; $wb['admin_name_txt'] = 'Nome do administrador'; $wb['maintenance_mode_txt'] = 'Modo manutenção'; +$wb['maintenance_mode_exclude_ips_txt'] = 'Exclude IP\'s from maintenance'; +$wb['maintenance_mode_exclude_ips_error_isip'] = 'One or more invalid IP addresses in maintenance mode exclude list. Must be a list of comma-separated IPv4 and/or IPv6 addresses.'; $wb['smtp_enabled_txt'] = 'Usar SMTP para enviar e-mails do sistema'; $wb['smtp_host_txt'] = 'Host SMTP'; $wb['smtp_port_txt'] = 'Porta SMTP'; diff --git a/interface/web/admin/lib/lang/ca_system_config.lng b/interface/web/admin/lib/lang/ca_system_config.lng index cc3c11c6c5..d9dfcfaa66 100644 --- a/interface/web/admin/lib/lang/ca_system_config.lng +++ b/interface/web/admin/lib/lang/ca_system_config.lng @@ -40,6 +40,8 @@ $wb['admin_mail_txt'] = 'Administrator\'s e-mail'; $wb['monitor_key_txt'] = 'Monitor keyword'; $wb['admin_name_txt'] = 'Administrator\'s name'; $wb['maintenance_mode_txt'] = 'Maintenance Mode'; +$wb['maintenance_mode_exclude_ips_txt'] = 'Exclude IP\'s from maintenance'; +$wb['maintenance_mode_exclude_ips_error_isip'] = 'One or more invalid IP addresses in maintenance mode exclude list. Must be a list of comma-separated IPv4 and/or IPv6 addresses.'; $wb['smtp_enabled_txt'] = 'Use SMTP to send system mails'; $wb['smtp_host_txt'] = 'SMTP host'; $wb['smtp_port_txt'] = 'SMTP port'; diff --git a/interface/web/admin/lib/lang/cz_system_config.lng b/interface/web/admin/lib/lang/cz_system_config.lng index 3660e1b689..e85b8ab9a5 100644 --- a/interface/web/admin/lib/lang/cz_system_config.lng +++ b/interface/web/admin/lib/lang/cz_system_config.lng @@ -29,6 +29,8 @@ $wb['mailmailinglist_link_txt'] = 'Ikonový odkaz na aplikaci E-mailových konfe $wb['mailmailinglist_url_txt'] = 'E-mailové konference URL'; $wb['monitor_key_txt'] = 'Monitor keyword'; $wb['maintenance_mode_txt'] = 'Režim údržby'; +$wb['maintenance_mode_exclude_ips_txt'] = 'Exclude IP\'s from maintenance'; +$wb['maintenance_mode_exclude_ips_error_isip'] = 'One or more invalid IP addresses in maintenance mode exclude list. Must be a list of comma-separated IPv4 and/or IPv6 addresses.'; $wb['smtp_enabled_txt'] = 'PoužÃt (zvolit) SMTP server pro zasÃlánà systémových mailů'; $wb['smtp_host_txt'] = 'SMTP host'; $wb['smtp_port_txt'] = 'SMTP port'; diff --git a/interface/web/admin/lib/lang/de_system_config.lng b/interface/web/admin/lib/lang/de_system_config.lng index 76910e1db3..21169ddf08 100644 --- a/interface/web/admin/lib/lang/de_system_config.lng +++ b/interface/web/admin/lib/lang/de_system_config.lng @@ -37,6 +37,8 @@ $wb['admin_mail_txt'] = 'Administrator E-Mail'; $wb['monitor_key_txt'] = 'ISPConfig Monitor App Passwort'; $wb['admin_name_txt'] = 'Name des Administrators'; $wb['maintenance_mode_txt'] = 'Wartungsmodus'; +$wb['maintenance_mode_exclude_ips_txt'] = 'Exclude IP\'s from maintenance'; +$wb['maintenance_mode_exclude_ips_error_isip'] = 'One or more invalid IP addresses in maintenance mode exclude list. Must be a list of comma-separated IPv4 and/or IPv6 addresses.'; $wb['smtp_enabled_txt'] = 'SMTP zum System E-Mailversand nutzen'; $wb['smtp_host_txt'] = 'SMTP Server'; $wb['smtp_port_txt'] = 'SMTP Port'; diff --git a/interface/web/admin/lib/lang/dk_system_config.lng b/interface/web/admin/lib/lang/dk_system_config.lng index 26b0fe7e78..eb725ac519 100644 --- a/interface/web/admin/lib/lang/dk_system_config.lng +++ b/interface/web/admin/lib/lang/dk_system_config.lng @@ -35,6 +35,8 @@ $wb['admin_mail_txt'] = 'Administratorer e-mail'; $wb['monitor_key_txt'] = 'Monitor nøgleord'; $wb['admin_name_txt'] = 'Administratorer navn'; $wb['maintenance_mode_txt'] = 'Vedligeholdelsestilstand'; +$wb['maintenance_mode_exclude_ips_txt'] = 'Exclude IP\'s from maintenance'; +$wb['maintenance_mode_exclude_ips_error_isip'] = 'One or more invalid IP addresses in maintenance mode exclude list. Must be a list of comma-separated IPv4 and/or IPv6 addresses.'; $wb['smtp_enabled_txt'] = 'Brug SMTP for at sende system mails'; $wb['smtp_host_txt'] = 'SMTP host'; $wb['smtp_port_txt'] = 'SMTP port'; diff --git a/interface/web/admin/lib/lang/el_system_config.lng b/interface/web/admin/lib/lang/el_system_config.lng index 640d6f00a9..583bef7d39 100644 --- a/interface/web/admin/lib/lang/el_system_config.lng +++ b/interface/web/admin/lib/lang/el_system_config.lng @@ -29,6 +29,8 @@ $wb['admin_mail_txt'] = 'e-mail ΔιαχειÏιστών'; $wb['monitor_key_txt'] = 'Monitor keyword'; $wb['admin_name_txt'] = 'Όνομα Administrator'; $wb['maintenance_mode_txt'] = 'Maintenance Mode'; +$wb['maintenance_mode_exclude_ips_txt'] = 'Exclude IP\'s from maintenance'; +$wb['maintenance_mode_exclude_ips_error_isip'] = 'One or more invalid IP addresses in maintenance mode exclude list. Must be a list of comma-separated IPv4 and/or IPv6 addresses.'; $wb['smtp_enabled_txt'] = 'Use SMTP to send system mails'; $wb['smtp_host_txt'] = 'SMTP host'; $wb['smtp_port_txt'] = 'SMTP θÏÏα'; diff --git a/interface/web/admin/lib/lang/en_system_config.lng b/interface/web/admin/lib/lang/en_system_config.lng index ef34493c9d..f43603f6b6 100644 --- a/interface/web/admin/lib/lang/en_system_config.lng +++ b/interface/web/admin/lib/lang/en_system_config.lng @@ -40,6 +40,8 @@ $wb['admin_mail_txt'] = 'Administrator\'s e-mail'; $wb["monitor_key_txt"] = 'Monitor keyword'; $wb['admin_name_txt'] = 'Administrator\'s name'; $wb['maintenance_mode_txt'] = 'Maintenance Mode'; +$wb['maintenance_mode_exclude_ips_txt'] = 'Exclude IP\'s from maintenance'; +$wb['maintenance_mode_exclude_ips_error_isip'] = 'One or more invalid IP addresses in maintenance mode exclude list. Must be a list of comma-separated IPv4 and/or IPv6 addresses.'; $wb['smtp_enabled_txt'] = 'Use SMTP to send system mails'; $wb['smtp_host_txt'] = 'SMTP host'; $wb['smtp_port_txt'] = 'SMTP port'; diff --git a/interface/web/admin/lib/lang/es_system_config.lng b/interface/web/admin/lib/lang/es_system_config.lng index 043c52cfdd..f788117fd4 100755 --- a/interface/web/admin/lib/lang/es_system_config.lng +++ b/interface/web/admin/lib/lang/es_system_config.lng @@ -40,6 +40,8 @@ $wb['mailboxlist_webmail_link_txt'] = 'Vinculo a correo web en la lista de buzon $wb['mailmailinglist_link_txt'] = 'VÃnculo a la lista de correos en la lista de la Lista de correos'; $wb['mailmailinglist_url_txt'] = 'URL a la lista de correos'; $wb['maintenance_mode_txt'] = 'Modo de mantenimiento'; +$wb['maintenance_mode_exclude_ips_txt'] = 'Exclude IP\'s from maintenance'; +$wb['maintenance_mode_exclude_ips_error_isip'] = 'One or more invalid IP addresses in maintenance mode exclude list. Must be a list of comma-separated IPv4 and/or IPv6 addresses.'; $wb['min_password_length_txt'] = 'Longitud mÃnima de la contraseña'; $wb['min_password_strength_txt'] = 'Fortaleza mÃnima de la contraseña'; $wb['monitor_key_txt'] = 'Palabra clave del Monitor'; diff --git a/interface/web/admin/lib/lang/fi_system_config.lng b/interface/web/admin/lib/lang/fi_system_config.lng index c0972c49d8..9def05e14a 100644 --- a/interface/web/admin/lib/lang/fi_system_config.lng +++ b/interface/web/admin/lib/lang/fi_system_config.lng @@ -29,6 +29,8 @@ $wb['admin_mail_txt'] = 'Administrators e-mail'; $wb['monitor_key_txt'] = 'Monitor keyword'; $wb['admin_name_txt'] = 'Administrators name'; $wb['maintenance_mode_txt'] = 'Maintenance Mode'; +$wb['maintenance_mode_exclude_ips_txt'] = 'Exclude IP\'s from maintenance'; +$wb['maintenance_mode_exclude_ips_error_isip'] = 'One or more invalid IP addresses in maintenance mode exclude list. Must be a list of comma-separated IPv4 and/or IPv6 addresses.'; $wb['smtp_enabled_txt'] = 'Use SMTP to send system mails'; $wb['smtp_host_txt'] = 'SMTP host'; $wb['smtp_port_txt'] = 'SMTP port'; diff --git a/interface/web/admin/lib/lang/fr_system_config.lng b/interface/web/admin/lib/lang/fr_system_config.lng index 18f0dbbed4..7150804aaf 100644 --- a/interface/web/admin/lib/lang/fr_system_config.lng +++ b/interface/web/admin/lib/lang/fr_system_config.lng @@ -29,6 +29,8 @@ $wb['admin_mail_txt'] = 'E-mail de l’administrateur'; $wb['monitor_key_txt'] = 'Mot-clé du moniteur'; $wb['admin_name_txt'] = 'Nom des administrateurs'; $wb['maintenance_mode_txt'] = 'Maintenance Mode'; +$wb['maintenance_mode_exclude_ips_txt'] = 'Exclude IP\'s from maintenance'; +$wb['maintenance_mode_exclude_ips_error_isip'] = 'One or more invalid IP addresses in maintenance mode exclude list. Must be a list of comma-separated IPv4 and/or IPv6 addresses.'; $wb['smtp_enabled_txt'] = 'Use SMTP to send system mails'; $wb['smtp_host_txt'] = 'SMTP host'; $wb['smtp_port_txt'] = 'SMTP port'; diff --git a/interface/web/admin/lib/lang/hr_system_config.lng b/interface/web/admin/lib/lang/hr_system_config.lng index a7735647b1..21b7953035 100644 --- a/interface/web/admin/lib/lang/hr_system_config.lng +++ b/interface/web/admin/lib/lang/hr_system_config.lng @@ -29,6 +29,8 @@ $wb['mailmailinglist_url_txt'] = 'URL mailing liste'; $wb['admin_mail_txt'] = 'e-mail administratora'; $wb['admin_name_txt'] = 'Ime administratora'; $wb['maintenance_mode_txt'] = 'Maintenance Mode'; +$wb['maintenance_mode_exclude_ips_txt'] = 'Exclude IP\'s from maintenance'; +$wb['maintenance_mode_exclude_ips_error_isip'] = 'One or more invalid IP addresses in maintenance mode exclude list. Must be a list of comma-separated IPv4 and/or IPv6 addresses.'; $wb['smtp_enabled_txt'] = 'Use SMTP to send system mails'; $wb['smtp_host_txt'] = 'SMTP host'; $wb['smtp_port_txt'] = 'SMTP port'; diff --git a/interface/web/admin/lib/lang/hu_system_config.lng b/interface/web/admin/lib/lang/hu_system_config.lng index cee497fe19..8ef0acdeae 100644 --- a/interface/web/admin/lib/lang/hu_system_config.lng +++ b/interface/web/admin/lib/lang/hu_system_config.lng @@ -29,6 +29,8 @@ $wb['admin_name_txt'] = 'Administrators name'; $wb['enable_custom_login_txt'] = 'Allow custom login name'; $wb['monitor_key_txt'] = 'Monitor keyword'; $wb['maintenance_mode_txt'] = 'Maintenance Mode'; +$wb['maintenance_mode_exclude_ips_txt'] = 'Exclude IP\'s from maintenance'; +$wb['maintenance_mode_exclude_ips_error_isip'] = 'One or more invalid IP addresses in maintenance mode exclude list. Must be a list of comma-separated IPv4 and/or IPv6 addresses.'; $wb['smtp_enabled_txt'] = 'Use SMTP to send system mails'; $wb['smtp_host_txt'] = 'SMTP host'; $wb['smtp_port_txt'] = 'SMTP port'; diff --git a/interface/web/admin/lib/lang/id_system_config.lng b/interface/web/admin/lib/lang/id_system_config.lng index 344185b84d..5e76d45bf7 100644 --- a/interface/web/admin/lib/lang/id_system_config.lng +++ b/interface/web/admin/lib/lang/id_system_config.lng @@ -29,6 +29,8 @@ $wb['admin_mail_txt'] = 'Administrators e-mail'; $wb['monitor_key_txt'] = 'Monitor keyword'; $wb['admin_name_txt'] = 'Administrators name'; $wb['maintenance_mode_txt'] = 'Maintenance Mode'; +$wb['maintenance_mode_exclude_ips_txt'] = 'Exclude IP\'s from maintenance'; +$wb['maintenance_mode_exclude_ips_error_isip'] = 'One or more invalid IP addresses in maintenance mode exclude list. Must be a list of comma-separated IPv4 and/or IPv6 addresses.'; $wb['smtp_enabled_txt'] = 'Use SMTP to send system mails'; $wb['smtp_host_txt'] = 'SMTP host'; $wb['smtp_port_txt'] = 'SMTP port'; diff --git a/interface/web/admin/lib/lang/it_system_config.lng b/interface/web/admin/lib/lang/it_system_config.lng index 311b7c957c..85464c3739 100644 --- a/interface/web/admin/lib/lang/it_system_config.lng +++ b/interface/web/admin/lib/lang/it_system_config.lng @@ -29,6 +29,8 @@ $wb['mailmailinglist_url_txt'] = 'Mailing list URL'; $wb['admin_mail_txt'] = 'Administrators e-mail'; $wb['admin_name_txt'] = 'Administrators name'; $wb['maintenance_mode_txt'] = 'Maintenance Mode'; +$wb['maintenance_mode_exclude_ips_txt'] = 'Exclude IP\'s from maintenance'; +$wb['maintenance_mode_exclude_ips_error_isip'] = 'One or more invalid IP addresses in maintenance mode exclude list. Must be a list of comma-separated IPv4 and/or IPv6 addresses.'; $wb['smtp_enabled_txt'] = 'Use SMTP to send system mails'; $wb['smtp_host_txt'] = 'SMTP host'; $wb['smtp_port_txt'] = 'SMTP port'; diff --git a/interface/web/admin/lib/lang/ja_system_config.lng b/interface/web/admin/lib/lang/ja_system_config.lng index aa5cc6a7a3..744db787b8 100644 --- a/interface/web/admin/lib/lang/ja_system_config.lng +++ b/interface/web/admin/lib/lang/ja_system_config.lng @@ -29,6 +29,8 @@ $wb['admin_mail_txt'] = 'Administrators e-mail'; $wb['monitor_key_txt'] = 'Monitor keyword'; $wb['admin_name_txt'] = 'Administrators name'; $wb['maintenance_mode_txt'] = 'Maintenance Mode'; +$wb['maintenance_mode_exclude_ips_txt'] = 'Exclude IP\'s from maintenance'; +$wb['maintenance_mode_exclude_ips_error_isip'] = 'One or more invalid IP addresses in maintenance mode exclude list. Must be a list of comma-separated IPv4 and/or IPv6 addresses.'; $wb['smtp_enabled_txt'] = 'Use SMTP to send system mails'; $wb['smtp_host_txt'] = 'SMTP host'; $wb['smtp_port_txt'] = 'SMTP port'; diff --git a/interface/web/admin/lib/lang/nl_system_config.lng b/interface/web/admin/lib/lang/nl_system_config.lng index 44a58b7646..f4b778d337 100644 --- a/interface/web/admin/lib/lang/nl_system_config.lng +++ b/interface/web/admin/lib/lang/nl_system_config.lng @@ -32,6 +32,8 @@ $wb['admin_mail_txt'] = 'Administrators e-mail'; $wb['monitor_key_txt'] = 'Monitor keyword'; $wb['admin_name_txt'] = 'Administrators name'; $wb['maintenance_mode_txt'] = 'Maintenance Mode'; +$wb['maintenance_mode_exclude_ips_txt'] = 'Exclude IP\'s from maintenance'; +$wb['maintenance_mode_exclude_ips_error_isip'] = 'One or more invalid IP addresses in maintenance mode exclude list. Must be a list of comma-separated IPv4 and/or IPv6 addresses.'; $wb['smtp_enabled_txt'] = 'Use SMTP to send system mails'; $wb['smtp_host_txt'] = 'SMTP host'; $wb['smtp_port_txt'] = 'SMTP port'; diff --git a/interface/web/admin/lib/lang/pl_system_config.lng b/interface/web/admin/lib/lang/pl_system_config.lng index a809251ec1..95bf2f6ffc 100644 --- a/interface/web/admin/lib/lang/pl_system_config.lng +++ b/interface/web/admin/lib/lang/pl_system_config.lng @@ -37,6 +37,8 @@ $wb['vhost_subdomains_note_txt'] = 'Nie możesz wyłączyć tego tak dÅ‚ugo jak $wb['vhost_aliasdomains_txt'] = 'Twórz aliasdomeny jako strony web'; $wb['vhost_aliasdomains_note_txt'] = 'Nie możesz wyłączyć tego tak dÅ‚ugo jak istniejÄ… w systemie vhosty aliasdomen.'; $wb['maintenance_mode_txt'] = 'Tryb serwisowy'; +$wb['maintenance_mode_exclude_ips_txt'] = 'Exclude IP\'s from maintenance'; +$wb['maintenance_mode_exclude_ips_error_isip'] = 'One or more invalid IP addresses in maintenance mode exclude list. Must be a list of comma-separated IPv4 and/or IPv6 addresses.'; $wb['smtp_enabled_txt'] = 'Używaj SMTP do wysyÅ‚ania powiadomieÅ„ systemowych'; $wb['smtp_host_txt'] = 'Host SMTP'; $wb['smtp_port_txt'] = 'Port SMTP'; diff --git a/interface/web/admin/lib/lang/pt_system_config.lng b/interface/web/admin/lib/lang/pt_system_config.lng index 6fc26344c0..faaebeca2a 100644 --- a/interface/web/admin/lib/lang/pt_system_config.lng +++ b/interface/web/admin/lib/lang/pt_system_config.lng @@ -29,6 +29,8 @@ $wb['admin_mail_txt'] = 'Administrators e-mail'; $wb['monitor_key_txt'] = 'Monitor keyword'; $wb['admin_name_txt'] = 'Administrators name'; $wb['maintenance_mode_txt'] = 'Maintenance Mode'; +$wb['maintenance_mode_exclude_ips_txt'] = 'Exclude IP\'s from maintenance'; +$wb['maintenance_mode_exclude_ips_error_isip'] = 'One or more invalid IP addresses in maintenance mode exclude list. Must be a list of comma-separated IPv4 and/or IPv6 addresses.'; $wb['smtp_enabled_txt'] = 'Use SMTP to send system mails'; $wb['smtp_host_txt'] = 'SMTP host'; $wb['smtp_port_txt'] = 'SMTP port'; diff --git a/interface/web/admin/lib/lang/ro_system_config.lng b/interface/web/admin/lib/lang/ro_system_config.lng index 2a39a454e8..e6ed186de7 100644 --- a/interface/web/admin/lib/lang/ro_system_config.lng +++ b/interface/web/admin/lib/lang/ro_system_config.lng @@ -29,6 +29,8 @@ $wb['admin_mail_txt'] = 'Administrators e-mail'; $wb['monitor_key_txt'] = 'Monitor keyword'; $wb['admin_name_txt'] = 'Administrators name'; $wb['maintenance_mode_txt'] = 'Maintenance Mode'; +$wb['maintenance_mode_exclude_ips_txt'] = 'Exclude IP\'s from maintenance'; +$wb['maintenance_mode_exclude_ips_error_isip'] = 'One or more invalid IP addresses in maintenance mode exclude list. Must be a list of comma-separated IPv4 and/or IPv6 addresses.'; $wb['smtp_enabled_txt'] = 'Use SMTP to send system mails'; $wb['smtp_host_txt'] = 'SMTP host'; $wb['smtp_port_txt'] = 'SMTP port'; diff --git a/interface/web/admin/lib/lang/ru_system_config.lng b/interface/web/admin/lib/lang/ru_system_config.lng index baed497b0e..792628d492 100644 --- a/interface/web/admin/lib/lang/ru_system_config.lng +++ b/interface/web/admin/lib/lang/ru_system_config.lng @@ -29,6 +29,8 @@ $wb['mailmailinglist_url_txt'] = 'URL почтовой раÑÑылки'; $wb['admin_mail_txt'] = 'E-mail админиÑтратора'; $wb['admin_name_txt'] = 'Ð˜Ð¼Ñ Ð°Ð´Ð¼Ð¸Ð½Ð¸Ñтратора'; $wb['maintenance_mode_txt'] = 'Режим техничеÑкого бÑлуживаниÑ'; +$wb['maintenance_mode_exclude_ips_txt'] = 'Exclude IP\'s from maintenance'; +$wb['maintenance_mode_exclude_ips_error_isip'] = 'One or more invalid IP addresses in maintenance mode exclude list. Must be a list of comma-separated IPv4 and/or IPv6 addresses.'; $wb['smtp_enabled_txt'] = 'ИÑпользовать SMTP Ð´Ð»Ñ Ð¾Ñ‚Ð¿Ñ€Ð°Ð²ÐºÐ¸ ÑиÑтемных Ñообщений'; $wb['smtp_host_txt'] = 'ХоÑÑ‚ SMTP'; $wb['smtp_port_txt'] = 'Порт SMTP'; diff --git a/interface/web/admin/lib/lang/se_system_config.lng b/interface/web/admin/lib/lang/se_system_config.lng index 74ae16734f..8f6c9a63f0 100644 --- a/interface/web/admin/lib/lang/se_system_config.lng +++ b/interface/web/admin/lib/lang/se_system_config.lng @@ -29,6 +29,8 @@ $wb['admin_mail_txt'] = 'Administratörens epostadress'; $wb['monitor_key_txt'] = 'Bevakning nyckelord'; $wb['admin_name_txt'] = 'Administratörens namn'; $wb['maintenance_mode_txt'] = 'UnderhÃ¥llsläge'; +$wb['maintenance_mode_exclude_ips_txt'] = 'Exclude IP\'s from maintenance'; +$wb['maintenance_mode_exclude_ips_error_isip'] = 'One or more invalid IP addresses in maintenance mode exclude list. Must be a list of comma-separated IPv4 and/or IPv6 addresses.'; $wb['smtp_enabled_txt'] = 'Använd SMTP för att skicka systemmail'; $wb['smtp_host_txt'] = 'SMTP-värd'; $wb['smtp_port_txt'] = 'SMTP-port'; diff --git a/interface/web/admin/lib/lang/sk_system_config.lng b/interface/web/admin/lib/lang/sk_system_config.lng index 90418e87d5..2ea9666db5 100644 --- a/interface/web/admin/lib/lang/sk_system_config.lng +++ b/interface/web/admin/lib/lang/sk_system_config.lng @@ -29,6 +29,8 @@ $wb['admin_mail_txt'] = 'Administrators e-mail'; $wb['monitor_key_txt'] = 'Monitor keyword'; $wb['admin_name_txt'] = 'Administrators name'; $wb['maintenance_mode_txt'] = 'Maintenance Mode'; +$wb['maintenance_mode_exclude_ips_txt'] = 'Exclude IP\'s from maintenance'; +$wb['maintenance_mode_exclude_ips_error_isip'] = 'One or more invalid IP addresses in maintenance mode exclude list. Must be a list of comma-separated IPv4 and/or IPv6 addresses.'; $wb['smtp_enabled_txt'] = 'Use SMTP to send system mails'; $wb['smtp_host_txt'] = 'SMTP host'; $wb['smtp_port_txt'] = 'SMTP port'; diff --git a/interface/web/admin/lib/lang/tr_system_config.lng b/interface/web/admin/lib/lang/tr_system_config.lng index 3ef8e26875..0ccf846c1c 100644 --- a/interface/web/admin/lib/lang/tr_system_config.lng +++ b/interface/web/admin/lib/lang/tr_system_config.lng @@ -40,6 +40,8 @@ $wb['admin_mail_txt'] = 'Yönetici E-posta Adresi'; $wb['monitor_key_txt'] = 'İzlenecek Kelime'; $wb['admin_name_txt'] = 'Yönetici Adı'; $wb['maintenance_mode_txt'] = 'Bakım Kipi'; +$wb['maintenance_mode_exclude_ips_txt'] = 'Exclude IP\'s from maintenance'; +$wb['maintenance_mode_exclude_ips_error_isip'] = 'One or more invalid IP addresses in maintenance mode exclude list. Must be a list of comma-separated IPv4 and/or IPv6 addresses.'; $wb['smtp_enabled_txt'] = 'Sistem e-postaları SMTP ile gönderilsin'; $wb['smtp_host_txt'] = 'SMTP Sunucusu'; $wb['smtp_port_txt'] = 'SMTP Kapısı'; diff --git a/interface/web/admin/templates/system_config_misc_edit.htm b/interface/web/admin/templates/system_config_misc_edit.htm index 45bdfcd275..00debd66dc 100644 --- a/interface/web/admin/templates/system_config_misc_edit.htm +++ b/interface/web/admin/templates/system_config_misc_edit.htm @@ -113,6 +113,12 @@ {tmpl_var name='maintenance_mode'} </div> </div> + <div class="form-group"> + <label class="col-sm-3 control-label">{tmpl_var name='maintenance_mode_exclude_ips_txt'}</label> + <div class="col-sm-9"> + <input type="text" name="maintenance_mode_exclude_ips" id="maintenance_mode_exclude_ips" value="{tmpl_var name='maintenance_mode_exclude_ips'}" class="form-control" /> + </div> + </div> <tmpl_if name="msg"> <div id="OKMsg"><p><tmpl_var name="msg"></p></div> diff --git a/interface/web/login/index.php b/interface/web/login/index.php index 47030e438d..b5d5abc27b 100644 --- a/interface/web/login/index.php +++ b/interface/web/login/index.php @@ -48,9 +48,8 @@ $app->load_language_file('web/login/lib/lang/'.$conf["language"].'.lng'); // Maintenance mode $maintenance_mode = false; $maintenance_mode_error = ''; -$app->uses('ini_parser,getconf'); $server_config_array = $app->getconf->get_global_config('misc'); -if($server_config_array['maintenance_mode'] == 'y'){ +if($app->is_under_maintenance()) { $maintenance_mode = true; $maintenance_mode_error = $app->lng('error_maintenance_mode'); } @@ -208,7 +207,7 @@ if(count($_POST) > 0) { if($user) { if($user['active'] == 1) { // Maintenance mode - allow logins only when maintenance mode is off or if the user is admin - if(!$maintenance_mode || $user['typ'] == 'admin'){ + if(!$app->is_under_maintenance() || $user['typ'] == 'admin'){ // User login right, so attempts can be deleted $sql = "DELETE FROM `attempts_login` WHERE `ip`=?"; -- GitLab