/**
* Initialize the controller
*
* 1. Import the user
* 2. Call the parent constructor
* 3. Authenticate the user
* 4. Load the language files
* DO NOT CHANGE THIS ORDER!
*/
public function __construct()
{
$this->import('BackendUser', 'User');
parent::__construct();
$this->User->authenticate();
// Password change required
if ($this->User->pwChange) {
/** @var SessionInterface $session */
$session = \System::getContainer()->get('session');
$objSession = $this->Database->prepare("SELECT su FROM tl_session WHERE sessionID=? AND pid=?")->execute($session->getId(), $this->User->id);
if (!$objSession->su) {
$this->redirect('contao/password.php');
}
}
// Front end redirect
if (\Input::get('do') == 'feRedirect') {
$this->redirectToFrontendPage(\Input::get('page'), \Input::get('article'));
}
// Convenience functions
if ($this->User->isAdmin) {
// Maintenance mode off
if (\Input::get('mmo')) {
\Config::persist('maintenanceMode', false);
$this->redirect($this->getReferer());
}
// Build internal cache
if (\Input::get('bic')) {
$this->import('Automator');
$this->Automator->generateInternalCache();
$this->redirect($this->getReferer());
}
}
\System::loadLanguageFile('default');
\System::loadLanguageFile('modules');
}