diff --git a/CONTRIBUTING.md b/CONTRIBUTING.md index f6c528479a75f9dc20e4d7ea070b15d4e02c4be5..d8eac80ebd08e7199185c255e531555ae45f47a4 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 c916a6254792bb55369f825a462ad9e40b22f997..4df1a877dc1333fa09fec5975ba76d9c13313ec3 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 e817fcbd44b3cdcaa7518b6c6f4ed8a8ee697398..be6c15666c0d4facb9acbe2f2ebcfaab54f2ace9 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 e1fc1ada863f1cdc02c89a68dafe6f703096dee9..47aa517de8d76e347ead06db8a6ea7c12c6996d2 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 cb37cbefdd241ef9227eb596a4d64dc4ee6132df..d1b0a793e7926a0bfef0ff846c4dc75c58c23a9d 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 0a830014d8459104d5d61eccab6720f609b1bdd6..4ea9a6891940e531d8b030b8412c98a048cbb157 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 130cb596aabd7c6bf2b268293d0fbb16cd12f335..1ea00be94f8ddcd27f5e2e5fa0f4d709188c55c5 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 98bd4c9614c6732f9df036b7884606fe4f1d40cd..f1feae4768dfec085fd752c8bf8a07a7d2e03cf5 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 cc3c11c6c5ac86fe60180a49430fbc1963f9675e..d9dfcfaa664c9458020e38eabfbdf2ae21d44405 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 3660e1b689ff41613eb360826e4776321ab69700..e85b8ab9a5c617f966341ef7716afef790bc4ec7 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 76910e1db38f08283a060c67429355118ad643f6..21169ddf08f2a5c9bdc726edb98264ea2b50f87a 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 26b0fe7e78d1ba19b2799749ec357bdd17f2c71c..eb725ac5196a8d79f19cebe956e064ed965e4091 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 640d6f00a9e13e73a37b2e3797b48f1300d66cda..583bef7d39cfa96ec1909fd135e67dafbd1f5bf2 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 ef34493c9daed786fa16f342b056de52c3b58234..f43603f6b64eb541b28c935d10c6d0efa2204db1 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 043c52cfddc3b983f8d53b8f0bdeae6b5fa24b8f..f788117fd41376f357bd5a235e401a333e7006c0 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 c0972c49d87434a1ee1425df1258c4d9d759c612..9def05e14a764d20a6d6ea770c8e882b7c256489 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 18f0dbbed4e3dad9d5afc722473f3158f8525633..7150804aafac935eef912d03afb7f539dabd1da1 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 a7735647b17077ee3c84639d791fb1057959f3bc..21b79530356a62c17705d2569cf3a36d6f227592 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 cee497fe19daec3e77a93771dcddd9bca237eb63..8ef0acdeaec87acb75158ad0bc9eae1e23a4d57a 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 344185b84db08846103736929e6a8e341aa60799..5e76d45bf7e90d3f30a81db94597400aacb988a0 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 311b7c957c4f813008dfd9654cd6675f82d5a8b0..85464c3739f2249fb06a8380c21f85d071ab0a6c 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 aa5cc6a7a3e69963e8204e22aff4ff6f2fc756e9..744db787b80e81c5d8eb13855eabc4226e59d85c 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 44a58b7646e09c8fc06c112f3c1aa19dbeb9a7b4..f4b778d3379d3d470f40ca647611cc9af2382066 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 a809251ec1bb6d301742d7f0f2c216db7a8f2f00..95bf2f6ffce9898fc1116991a4cd2bd7ed3b7563 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 6fc26344c002abc772de985e3a2b835fad1d5b94..faaebeca2aa28bc833e1773c223d790494cf5c87 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 2a39a454e8cde25155f4e6cbf2c0abfd9212a692..e6ed186de75edfb6df10b17437646e42d57f161b 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 baed497b0eb238c8e3709656bbabc5a0842711c7..792628d49263bbf8b226db6f8f1a1e7cbe6f63b8 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 74ae16734fcf6936765dc7b6f59eab95a86a8f23..8f6c9a63f0fdca302c714636ea7a6752e8e40bb6 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 90418e87d5562c20909e541fa9bcfcdf0fc1f0db..2ea9666db5f22d7879d003a051d7071d942059e9 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 3ef8e26875e8b9bb38cf765a9c226e53ab62c220..0ccf846c1cacbdf488fd9fd3bfe8b784987ee0f0 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 45bdfcd2758b8a757f12b589e7ded692b1f284a5..00debd66dcee3cd0dd197c247081e6a15092a564 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 47030e438d8b6e8fca07394519736b72e3a10119..b5d5abc27bcad7a3f42b328709ade27e6ec1c7c3 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`=?";