Maintenance Mode

Problem

You are currently reworking the page/field/template/module structure of your site and have a local db dump of the live site on your system but you don't want the user to make changes in the meantime. A restore from local back to live would otherwise overwrite the user's changes.

Solution

Add this on top of your /site/templates/admin.php

// check if the user is logged in and if they are not a super user
if ($user->isLoggedIn() && $config->maintenance === true && !$user->isSuperuser()) {
    // logout the user
    $session->logout();
    // spit out an error message via session, so it still appears after the redirect
    $session->error('Database currently in maintenance - logged out');
    // redirect to the login page
    $session->redirect($config->urls->admin);
}

In your /site/config.php you add a config value maintenance and change it back to false if you're done maintaining.

$config->maintenance = true;

Version

1.0.3

View/correct recipe on GitHub

https://github.com/processwire-recipes/Recipes/blob/master/maintenance-mode.md

Author(s)