-
Côme Chilliet authored
Removed phpstan.neon which will be in dev-tools instead. Fixed some phpstan reported problems to avoid having a huge baseline. issue #6114
Unverified6fbe75ea
<?php
/*
This code is part of FusionDirectory (http://www.fusiondirectory.org/)
Copyright (C) 2003-2010 Cajus Pollmeier
Copyright (C) 2011-2019 FusionDirectory
This program is free software; you can redistribute it and/or modify
it under the terms of the GNU General Public License as published by
the Free Software Foundation; either version 2 of the License, or
(at your option) any later version.
This program is distributed in the hope that it will be useful,
but WITHOUT ANY WARRANTY; without even the implied warranty of
MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
GNU General Public License for more details.
You should have received a copy of the GNU General Public License
along with this program; if not, write to the Free Software
Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301, USA.
*/
/**
* @var Smarty $smarty Defined in php_setup.inc
* @var string $BASE_DIR Defined in php_setup.inc
* @var string $ssl Defined in php_setup.inc
* @var string $error_collector Defined in php_setup.inc
* @var string $error_collector_mailto Defined in php_setup.inc
*/
/* Basic setup, remove eventually registered sessions */
require_once("../include/php_setup.inc");
require_once("functions.inc");
require_once("variables.inc");
/* Set headers */
header('Content-type: text/html; charset=UTF-8');
header('X-XSS-Protection: 1; mode=block');
header('X-Content-Type-Options: nosniff');
header('X-Frame-Options: deny');
/* Set the text domain as 'fusiondirectory' */
$domain = 'fusiondirectory';
bindtextdomain($domain, LOCALE_DIR);
textdomain($domain);
/* Remember everything we did after the last click */
session::start();
session::set('DEBUGLEVEL', 0);
reset_errors();
/* Force SSL for second factor */
if ($ssl != '') {
header("Location: $ssl");
exit;
}
CSRFProtection::check();
/* Logged in? Redirect to FD */
if (session::is_set('connected')) {
header('Location: main.php');
exit;
}
/* Missing data? Redirect to login */
if (!session::is_set('ui') || !session::is_set('config')) {
header('Location: index.php');
exit;
}
7172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112
$ui = session::get('ui');
$config = session::get('config');
timezone::setDefaultTimezoneFromConfig();
/* Check for invalid sessions */
if (session::get('_LAST_PAGE_REQUEST') != '') {
/* check FusionDirectory.conf for defined session lifetime */
$max_life = $config->get_cfg_value('sessionLifetime', 60 * 60 * 2);
if ($max_life > 0) {
/* get time difference between last page reload */
$request_time = (time() - session::get('_LAST_PAGE_REQUEST'));
/* If page wasn't reloaded for more than max_life seconds
* kill session
*/
if ($request_time > $max_life) {
session::destroy('main.php called with expired session');
header('Location: index.php?signout=1&message=expired');
exit;
}
}
}
session::set('_LAST_PAGE_REQUEST', time());
foreach (LoginPost::$secondFactorMethods as $secondFactorMethod) {
if (!class_available($secondFactorMethod)) {
continue;
}
$secondFactorMethod::earlyProcess();
}
session::set('DEBUGLEVEL', $config->get_cfg_value('DEBUGLEVEL'));
/* Set template compile directory */
$smarty->setCompileDir($config->get_cfg_value('templateCompileDirectory', SPOOL_DIR));
Language::init();
LoginPost::displaySecondFactorPage();