Implement a maintenance mode

Add support for a maintenance mode that disables both the website and
the SSH interface and can be enabled easily using a configuration
option.

Signed-off-by: Lukas Fleischer <lfleischer@archlinux.org>
This commit is contained in:
Lukas Fleischer 2015-06-11 14:26:47 +02:00
parent 2164750f1e
commit a45b5073ca
4 changed files with 27 additions and 0 deletions

15
web/html/503.php Normal file
View file

@ -0,0 +1,15 @@
<?php
set_include_path(get_include_path() . PATH_SEPARATOR . '../lib');
html_header( __("Service Unavailable") );
?>
<div id="error-page" class="box 503">
<h2>503 - <?= __("Service Unavailable") ?></h2>
<p><?= __("Don't panic! This site is down due to maintenance. We will be back soon.") ?></p>
</div>
<?php
html_footer(AURWEB_VERSION);

View file

@ -7,6 +7,12 @@ include_once("pkgfuncs.inc.php");
$path = $_SERVER['PATH_INFO'];
$tokens = explode('/', $path);
if (config_get_bool('options', 'enable-maintenance') && (empty($tokens[1]) || ($tokens[1] != "css" && $tokens[1] != "images"))) {
header("HTTP/1.0 503 Service Unavailable");
include "./503.php";
return;
}
if (!empty($tokens[1]) && '/' . $tokens[1] == get_pkg_route()) {
if (!empty($tokens[2])) {
/* TODO: Create a proper data structure to pass variables from