diff --git a/config.example.php b/config.example.php index abe5177c4..3c9ce31c5 100755 --- a/config.example.php +++ b/config.example.php @@ -43,6 +43,13 @@ $debug = false; // Permette di eseguire il cron anche se OSM è installato su localhost $forza_cron_localhost = false; +// Permette di disabilitare i cron e gli hooks +$disable_cron = false; +$disable_hooks = false; + +// Permette di accedere solo con un ip (da utilizzare per manutenzione) +$maintenance_ip = ''; + // Personalizzazione dei gestori dei tag personalizzati $HTMLWrapper = null; $HTMLHandlers = []; diff --git a/core.php b/core.php index 062311c1e..a410e50e7 100755 --- a/core.php +++ b/core.php @@ -169,7 +169,7 @@ $revision = Update::getRevision(); /* ACCESSO E INSTALLAZIONE */ // Controllo sulla presenza dei permessi di accesso basilari -$continue = $dbo->isInstalled() && !Update::isUpdateAvailable() && (Auth::check() || API\Response::isAPIRequest()); +$continue = $dbo->isInstalled() && !Update::isUpdateAvailable() && (Auth::check() || API\Response::isAPIRequest()) && (empty($config['maintenance_ip']) || $config['maintenance_ip'] == $_SERVER['REMOTE_ADDR']); if (!empty($skip_permissions)) { Permissions::skip(); diff --git a/include/bottom.php b/include/bottom.php index d3265c6a3..d72a083a8 100755 --- a/include/bottom.php +++ b/include/bottom.php @@ -65,22 +65,29 @@ if (Auth::check()) { '; } - // Hooks - echo ' + // Hooks + echo ' '; } diff --git a/include/init/maintenance.php b/include/init/maintenance.php new file mode 100644 index 000000000..63ce05a31 --- /dev/null +++ b/include/init/maintenance.php @@ -0,0 +1,47 @@ +. + */ + +include_once __DIR__.'/../../core.php'; + +if ($config['maintenance_ip'] != $_SERVER['REMOTE_ADDR']) { + include_once App::filepath('include|custom|', 'top.php'); + $img = App::getPaths()['img']; + + echo ' +
+
+ '.tr('OSM Logo').' +
+ +
+
+
+

'.tr('Manutenzione in corso!').'

+
+
+

'.tr('Il software si trova attualmente in modalità manutenzione, siete pregati di attendere sino alla conclusione dell\'intervento').'.

+
+
+
+
'; + + include_once App::filepath('include|custom|', 'bottom.php'); + + exit(); +} diff --git a/index.php b/index.php index 5ed86fb39..d86e4def4 100755 --- a/index.php +++ b/index.php @@ -76,6 +76,11 @@ if (Auth::check() && isset($dbo) && $dbo->isConnected() && $dbo->isInstalled()) exit(); } +// Modalità manutenzione +if (!empty($config['maintenance_ip'])) { + include_once base_dir().'/include/init/maintenance.php'; +} + // Procedura di installazione include_once base_dir().'/include/init/configuration.php';