auto login user if not already logged in

the user won't have a session, but will be granted access for the
http request

Conflicts:
	inc/inc.Authentication.php
This commit is contained in:
Uwe Steinmann 2015-07-14 21:23:54 +02:00
parent f35ae2736a
commit bdfb552204

View File

@ -18,38 +18,71 @@ if (!strncmp("/op", $refer, 3)) {
} else { } else {
$refer = urlencode($refer); $refer = urlencode($refer);
} }
if (!isset($_COOKIE["mydms_session"])) {
header("Location: " . $settings->_httpRoot . "out/out.Login.php?referuri=".$refer);
exit;
}
require_once("inc.Utils.php"); require_once("inc.Utils.php");
require_once("inc.ClassEmail.php"); require_once("inc.ClassEmail.php");
require_once("inc.ClassSession.php"); require_once("inc.ClassSession.php");
/* Load session */ if (!isset($_COOKIE["mydms_session"])) {
$dms_session = $_COOKIE["mydms_session"]; if($settings->_autoLoginUser) {
$session = new SeedDMS_Session($db); if(!($user = $dms->getUser($settings->_autoLoginUser))/* || !$user->isGuest()*/) {
if(!$resArr = $session->load($dms_session)) { header("Location: " . $settings->_httpRoot . "out/out.Login.php?referuri=".$refer);
setcookie("mydms_session", $dms_session, time()-3600, $settings->_httpRoot); //delete cookie exit;
header("Location: " . $settings->_httpRoot . "out/out.Login.php?referuri=".$refer); }
exit; $theme = $user->getTheme();
} if (strlen($theme)==0) {
$theme = $settings->_theme;
/* Update last access time */ $user->setTheme($theme);
$session->updateAccess($dms_session); }
/* Load user data */ $lang = $user->getLanguage();
if (strlen($lang)==0) {
$user = $dms->getUser($resArr["userID"]); $lang = $settings->_language;
if($user->isAdmin()) { $user->setLanguage($lang);
if($resArr["su"]) { }
$user = $dms->getUser($resArr["su"]); $session = new SeedDMS_Session($db);
if(!$id = $session->create(array('userid'=>$user->getID(), 'theme'=>$theme, 'lang'=>$lang))) {
header("Location: " . $settings->_httpRoot . "out/out.Login.php?referuri=".$refer);
exit;
}
/*
if($settings->_cookieLifetime)
$lifetime = time() + intval($settings->_cookieLifetime);
else
$lifetime = 0;
setcookie("mydms_session", $id, $lifetime, $settings->_httpRoot, null, null, !$settings->_enableLargeFileUpload);
*/
} else {
header("Location: " . $settings->_httpRoot . "out/out.Login.php?referuri=".$refer);
exit;
} }
} } else {
if (!is_object($user)) { /* Load session */
setcookie("mydms_session", $dms_session, time()-3600, $settings->_httpRoot); //delete cookie $dms_session = $_COOKIE["mydms_session"];
header("Location: " . $settings->_httpRoot . "out/out.Login.php?referuri=".$refer); $session = new SeedDMS_Session($db);
exit; if(!$resArr = $session->load($dms_session)) {
setcookie("mydms_session", $dms_session, time()-3600, $settings->_httpRoot); //delete cookie
header("Location: " . $settings->_httpRoot . "out/out.Login.php?referuri=".$refer);
exit;
}
/* Update last access time */
$session->updateAccess($dms_session);
/* Load user data */
$user = $dms->getUser($resArr["userID"]);
if($user->isAdmin()) {
if($resArr["su"]) {
$user = $dms->getUser($resArr["su"]);
} else {
$session->resetSu();
}
}
if (!is_object($user)) {
setcookie("mydms_session", $dms_session, time()-3600, $settings->_httpRoot); //delete cookie
header("Location: " . $settings->_httpRoot . "out/out.Login.php?referuri=".$refer);
exit;
}
$theme = $resArr["theme"];
$lang = $resArr["language"];
} }
$dms->setUser($user); $dms->setUser($user);
@ -73,9 +106,8 @@ if(file_exists($settings->_rootDir . "languages/" . $resArr["language"] . "/lang
} }
*/ */
$theme = $resArr["theme"]; if(file_exists($settings->_rootDir . "view/".$theme."/languages/" . $lang . "/lang.inc")) {
if(file_exists($settings->_rootDir . "view/".$theme."/languages/" . $resArr["language"] . "/lang.inc")) { include $settings->_rootDir . "view/".$theme."/languages/" . $lang . "/lang.inc";
include $settings->_rootDir . "view/".$theme."/languages/" . $resArr["language"] . "/lang.inc";
} }
/* Check if password needs to be changed because it expired. If it needs /* Check if password needs to be changed because it expired. If it needs