mirror of
https://github.com/Combodo/iTop.git
synced 2026-02-13 07:24:13 +01:00
N°3985 - Performance checks on the back end - Use Session helper
This commit is contained in:
@@ -1,5 +1,7 @@
|
|||||||
<?php
|
<?php
|
||||||
|
|
||||||
|
use Combodo\iTop\Application\Helper\Session;
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* Class LoginExternal
|
* Class LoginExternal
|
||||||
*
|
*
|
||||||
@@ -22,12 +24,12 @@ class LoginExternal extends AbstractLoginFSMExtension
|
|||||||
|
|
||||||
protected function OnModeDetection(&$iErrorCode)
|
protected function OnModeDetection(&$iErrorCode)
|
||||||
{
|
{
|
||||||
if (!isset($_SESSION['login_mode']))
|
if (!Session::IsSet('login_mode'))
|
||||||
{
|
{
|
||||||
$sAuthUser = $this->GetAuthUser();
|
$sAuthUser = $this->GetAuthUser();
|
||||||
if ($sAuthUser && (strlen($sAuthUser) > 0))
|
if ($sAuthUser && (strlen($sAuthUser) > 0))
|
||||||
{
|
{
|
||||||
$_SESSION['login_mode'] = 'external';
|
Session::Set('login_mode', 'external');
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
return LoginWebPage::LOGIN_FSM_CONTINUE;
|
return LoginWebPage::LOGIN_FSM_CONTINUE;
|
||||||
@@ -35,10 +37,10 @@ class LoginExternal extends AbstractLoginFSMExtension
|
|||||||
|
|
||||||
protected function OnCheckCredentials(&$iErrorCode)
|
protected function OnCheckCredentials(&$iErrorCode)
|
||||||
{
|
{
|
||||||
if ($_SESSION['login_mode'] == 'external')
|
if (Session::Get('login_mode') == 'external')
|
||||||
{
|
{
|
||||||
$sAuthUser = $this->GetAuthUser();
|
$sAuthUser = $this->GetAuthUser();
|
||||||
if (!UserRights::CheckCredentials($sAuthUser, '', $_SESSION['login_mode'], 'external'))
|
if (!UserRights::CheckCredentials($sAuthUser, '', Session::Get('login_mode'), 'external'))
|
||||||
{
|
{
|
||||||
$iErrorCode = LoginWebPage::EXIT_CODE_WRONGCREDENTIALS;
|
$iErrorCode = LoginWebPage::EXIT_CODE_WRONGCREDENTIALS;
|
||||||
return LoginWebPage::LOGIN_FSM_ERROR;
|
return LoginWebPage::LOGIN_FSM_ERROR;
|
||||||
@@ -49,19 +51,19 @@ class LoginExternal extends AbstractLoginFSMExtension
|
|||||||
|
|
||||||
protected function OnCredentialsOK(&$iErrorCode)
|
protected function OnCredentialsOK(&$iErrorCode)
|
||||||
{
|
{
|
||||||
if ($_SESSION['login_mode'] == 'external')
|
if (Session::Get('login_mode') == 'external')
|
||||||
{
|
{
|
||||||
$sAuthUser = $this->GetAuthUser();
|
$sAuthUser = $this->GetAuthUser();
|
||||||
LoginWebPage::OnLoginSuccess($sAuthUser, 'external', $_SESSION['login_mode']);
|
LoginWebPage::OnLoginSuccess($sAuthUser, 'external', Session::Get('login_mode'));
|
||||||
}
|
}
|
||||||
return LoginWebPage::LOGIN_FSM_CONTINUE;
|
return LoginWebPage::LOGIN_FSM_CONTINUE;
|
||||||
}
|
}
|
||||||
|
|
||||||
protected function OnConnected(&$iErrorCode)
|
protected function OnConnected(&$iErrorCode)
|
||||||
{
|
{
|
||||||
if ($_SESSION['login_mode'] == 'external')
|
if (Session::Get('login_mode') == 'external')
|
||||||
{
|
{
|
||||||
$_SESSION['can_logoff'] = false;
|
Session::Set('can_logoff', false);
|
||||||
return LoginWebPage::CheckLoggedUser($iErrorCode);
|
return LoginWebPage::CheckLoggedUser($iErrorCode);
|
||||||
}
|
}
|
||||||
return LoginWebPage::LOGIN_FSM_CONTINUE;
|
return LoginWebPage::LOGIN_FSM_CONTINUE;
|
||||||
@@ -69,7 +71,7 @@ class LoginExternal extends AbstractLoginFSMExtension
|
|||||||
|
|
||||||
protected function OnError(&$iErrorCode)
|
protected function OnError(&$iErrorCode)
|
||||||
{
|
{
|
||||||
if ($_SESSION['login_mode'] == 'external')
|
if (Session::Get('login_mode') == 'external')
|
||||||
{
|
{
|
||||||
LoginWebPage::HTTP401Error();
|
LoginWebPage::HTTP401Error();
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -5,6 +5,8 @@
|
|||||||
* @license http://opensource.org/licenses/AGPL-3.0
|
* @license http://opensource.org/licenses/AGPL-3.0
|
||||||
*/
|
*/
|
||||||
|
|
||||||
|
use Combodo\iTop\Application\Helper\Session;
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* Class LoginForm
|
* Class LoginForm
|
||||||
*
|
*
|
||||||
@@ -29,8 +31,7 @@ class LoginForm extends AbstractLoginFSMExtension implements iLoginUIExtension
|
|||||||
*/
|
*/
|
||||||
protected function OnReadCredentials(&$iErrorCode)
|
protected function OnReadCredentials(&$iErrorCode)
|
||||||
{
|
{
|
||||||
if (!isset($_SESSION['login_mode']) || ($_SESSION['login_mode'] == 'form'))
|
if (Session::Get('login_mode') == 'form') {
|
||||||
{
|
|
||||||
$sAuthUser = utils::ReadPostedParam('auth_user', '', 'raw_data');
|
$sAuthUser = utils::ReadPostedParam('auth_user', '', 'raw_data');
|
||||||
$sAuthPwd = utils::ReadPostedParam('auth_pwd', null, 'raw_data');
|
$sAuthPwd = utils::ReadPostedParam('auth_pwd', null, 'raw_data');
|
||||||
if ($this->bForceFormOnError || empty($sAuthUser) || empty($sAuthPwd))
|
if ($this->bForceFormOnError || empty($sAuthUser) || empty($sAuthPwd))
|
||||||
@@ -51,8 +52,8 @@ class LoginForm extends AbstractLoginFSMExtension implements iLoginUIExtension
|
|||||||
exit;
|
exit;
|
||||||
}
|
}
|
||||||
|
|
||||||
$_SESSION['login_temp_auth_user'] = $sAuthUser;
|
Session::Set('login_temp_auth_user', $sAuthUser);
|
||||||
$_SESSION['login_mode'] = 'form';
|
Session::Set('login_mode', 'form');
|
||||||
}
|
}
|
||||||
return LoginWebPage::LOGIN_FSM_CONTINUE;
|
return LoginWebPage::LOGIN_FSM_CONTINUE;
|
||||||
}
|
}
|
||||||
@@ -62,11 +63,11 @@ class LoginForm extends AbstractLoginFSMExtension implements iLoginUIExtension
|
|||||||
*/
|
*/
|
||||||
protected function OnCheckCredentials(&$iErrorCode)
|
protected function OnCheckCredentials(&$iErrorCode)
|
||||||
{
|
{
|
||||||
if ($_SESSION['login_mode'] == 'form')
|
if (Session::Get('login_mode') == 'form')
|
||||||
{
|
{
|
||||||
$sAuthUser = utils::ReadPostedParam('auth_user', '', 'raw_data');
|
$sAuthUser = utils::ReadPostedParam('auth_user', '', 'raw_data');
|
||||||
$sAuthPwd = utils::ReadPostedParam('auth_pwd', null, 'raw_data');
|
$sAuthPwd = utils::ReadPostedParam('auth_pwd', null, 'raw_data');
|
||||||
if (!UserRights::CheckCredentials($sAuthUser, $sAuthPwd, $_SESSION['login_mode'], 'internal'))
|
if (!UserRights::CheckCredentials($sAuthUser, $sAuthPwd, Session::Get('login_mode'), 'internal'))
|
||||||
{
|
{
|
||||||
$iErrorCode = LoginWebPage::EXIT_CODE_WRONGCREDENTIALS;
|
$iErrorCode = LoginWebPage::EXIT_CODE_WRONGCREDENTIALS;
|
||||||
return LoginWebPage::LOGIN_FSM_ERROR;
|
return LoginWebPage::LOGIN_FSM_ERROR;
|
||||||
@@ -80,19 +81,19 @@ class LoginForm extends AbstractLoginFSMExtension implements iLoginUIExtension
|
|||||||
*/
|
*/
|
||||||
protected function OnCredentialsOK(&$iErrorCode)
|
protected function OnCredentialsOK(&$iErrorCode)
|
||||||
{
|
{
|
||||||
if ($_SESSION['login_mode'] == 'form')
|
if (Session::Get('login_mode') == 'form')
|
||||||
{
|
{
|
||||||
if (isset($_SESSION['auth_user']))
|
if (Session::IsSet('auth_user'))
|
||||||
{
|
{
|
||||||
// If FSM reenter this state (example 2FA) then the auth_user is not resubmitted
|
// If FSM reenter this state (example 2FA) then the auth_user is not resubmitted
|
||||||
$sAuthUser = $_SESSION['auth_user'];
|
$sAuthUser =Session::Get('auth_user');
|
||||||
}
|
}
|
||||||
else
|
else
|
||||||
{
|
{
|
||||||
$sAuthUser = utils::ReadPostedParam('auth_user', '', 'raw_data');
|
$sAuthUser = utils::ReadPostedParam('auth_user', '', 'raw_data');
|
||||||
}
|
}
|
||||||
// Store 'auth_user' in session for further use
|
// Store 'auth_user' in session for further use
|
||||||
LoginWebPage::OnLoginSuccess($sAuthUser, 'internal', $_SESSION['login_mode']);
|
LoginWebPage::OnLoginSuccess($sAuthUser, 'internal', Session::Get('login_mode'));
|
||||||
}
|
}
|
||||||
return LoginWebPage::LOGIN_FSM_CONTINUE;
|
return LoginWebPage::LOGIN_FSM_CONTINUE;
|
||||||
}
|
}
|
||||||
@@ -102,7 +103,7 @@ class LoginForm extends AbstractLoginFSMExtension implements iLoginUIExtension
|
|||||||
*/
|
*/
|
||||||
protected function OnError(&$iErrorCode)
|
protected function OnError(&$iErrorCode)
|
||||||
{
|
{
|
||||||
if ($_SESSION['login_mode'] == 'form')
|
if (Session::Get('login_mode') == 'form')
|
||||||
{
|
{
|
||||||
$this->bForceFormOnError = true;
|
$this->bForceFormOnError = true;
|
||||||
}
|
}
|
||||||
@@ -114,9 +115,9 @@ class LoginForm extends AbstractLoginFSMExtension implements iLoginUIExtension
|
|||||||
*/
|
*/
|
||||||
protected function OnConnected(&$iErrorCode)
|
protected function OnConnected(&$iErrorCode)
|
||||||
{
|
{
|
||||||
if ($_SESSION['login_mode'] == 'form')
|
if (Session::Get('login_mode') == 'form')
|
||||||
{
|
{
|
||||||
$_SESSION['can_logoff'] = true;
|
Session::Set('can_logoff', true);
|
||||||
return LoginWebPage::CheckLoggedUser($iErrorCode);
|
return LoginWebPage::CheckLoggedUser($iErrorCode);
|
||||||
}
|
}
|
||||||
return LoginWebPage::LOGIN_FSM_CONTINUE;
|
return LoginWebPage::LOGIN_FSM_CONTINUE;
|
||||||
|
|||||||
@@ -1,5 +1,7 @@
|
|||||||
<?php
|
<?php
|
||||||
|
|
||||||
|
use Combodo\iTop\Application\Helper\Session;
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* Class LoginURL
|
* Class LoginURL
|
||||||
*
|
*
|
||||||
@@ -26,13 +28,13 @@ class LoginURL extends AbstractLoginFSMExtension
|
|||||||
|
|
||||||
protected function OnModeDetection(&$iErrorCode)
|
protected function OnModeDetection(&$iErrorCode)
|
||||||
{
|
{
|
||||||
if (!isset($_SESSION['login_mode']) && !$this->bErrorOccurred)
|
if (!Session::IsSet('login_mode') && !$this->bErrorOccurred)
|
||||||
{
|
{
|
||||||
$sAuthUser = utils::ReadParam('auth_user', '', false, 'raw_data');
|
$sAuthUser = utils::ReadParam('auth_user', '', false, 'raw_data');
|
||||||
$sAuthPwd = utils::ReadParam('auth_pwd', null, false, 'raw_data');
|
$sAuthPwd = utils::ReadParam('auth_pwd', null, false, 'raw_data');
|
||||||
if (!empty($sAuthUser) && !empty($sAuthPwd))
|
if (!empty($sAuthUser) && !empty($sAuthPwd))
|
||||||
{
|
{
|
||||||
$_SESSION['login_mode'] = 'url';
|
Session::Set('login_mode', 'url');
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
return LoginWebPage::LOGIN_FSM_CONTINUE;
|
return LoginWebPage::LOGIN_FSM_CONTINUE;
|
||||||
@@ -40,20 +42,20 @@ class LoginURL extends AbstractLoginFSMExtension
|
|||||||
|
|
||||||
protected function OnReadCredentials(&$iErrorCode)
|
protected function OnReadCredentials(&$iErrorCode)
|
||||||
{
|
{
|
||||||
if ($_SESSION['login_mode'] == 'url')
|
if (Session::Get('login_mode') == 'url')
|
||||||
{
|
{
|
||||||
$_SESSION['login_temp_auth_user'] = utils::ReadParam('auth_user', '', false, 'raw_data');
|
Session::Set('login_temp_auth_user', utils::ReadParam('auth_user', '', false, 'raw_data'));
|
||||||
}
|
}
|
||||||
return LoginWebPage::LOGIN_FSM_CONTINUE;
|
return LoginWebPage::LOGIN_FSM_CONTINUE;
|
||||||
}
|
}
|
||||||
|
|
||||||
protected function OnCheckCredentials(&$iErrorCode)
|
protected function OnCheckCredentials(&$iErrorCode)
|
||||||
{
|
{
|
||||||
if ($_SESSION['login_mode'] == 'url')
|
if (Session::Get('login_mode') == 'url')
|
||||||
{
|
{
|
||||||
$sAuthUser = utils::ReadParam('auth_user', '', false, 'raw_data');
|
$sAuthUser = utils::ReadParam('auth_user', '', false, 'raw_data');
|
||||||
$sAuthPwd = utils::ReadParam('auth_pwd', null, false, 'raw_data');
|
$sAuthPwd = utils::ReadParam('auth_pwd', null, false, 'raw_data');
|
||||||
if (!UserRights::CheckCredentials($sAuthUser, $sAuthPwd, $_SESSION['login_mode'], 'internal'))
|
if (!UserRights::CheckCredentials($sAuthUser, $sAuthPwd, Session::Get('login_mode'), 'internal'))
|
||||||
{
|
{
|
||||||
$iErrorCode = LoginWebPage::EXIT_CODE_WRONGCREDENTIALS;
|
$iErrorCode = LoginWebPage::EXIT_CODE_WRONGCREDENTIALS;
|
||||||
return LoginWebPage::LOGIN_FSM_ERROR;
|
return LoginWebPage::LOGIN_FSM_ERROR;
|
||||||
@@ -64,17 +66,17 @@ class LoginURL extends AbstractLoginFSMExtension
|
|||||||
|
|
||||||
protected function OnCredentialsOK(&$iErrorCode)
|
protected function OnCredentialsOK(&$iErrorCode)
|
||||||
{
|
{
|
||||||
if ($_SESSION['login_mode'] == 'url')
|
if (Session::Get('login_mode') == 'url')
|
||||||
{
|
{
|
||||||
$sAuthUser = utils::ReadParam('auth_user', '', false, 'raw_data');
|
$sAuthUser = utils::ReadParam('auth_user', '', false, 'raw_data');
|
||||||
LoginWebPage::OnLoginSuccess($sAuthUser, 'internal', $_SESSION['login_mode']);
|
LoginWebPage::OnLoginSuccess($sAuthUser, 'internal', Session::Get('login_mode'));
|
||||||
}
|
}
|
||||||
return LoginWebPage::LOGIN_FSM_CONTINUE;
|
return LoginWebPage::LOGIN_FSM_CONTINUE;
|
||||||
}
|
}
|
||||||
|
|
||||||
protected function OnError(&$iErrorCode)
|
protected function OnError(&$iErrorCode)
|
||||||
{
|
{
|
||||||
if ($_SESSION['login_mode'] == 'url')
|
if (Session::Get('login_mode') == 'url')
|
||||||
{
|
{
|
||||||
$this->bErrorOccurred = true;
|
$this->bErrorOccurred = true;
|
||||||
}
|
}
|
||||||
@@ -83,9 +85,9 @@ class LoginURL extends AbstractLoginFSMExtension
|
|||||||
|
|
||||||
protected function OnConnected(&$iErrorCode)
|
protected function OnConnected(&$iErrorCode)
|
||||||
{
|
{
|
||||||
if ($_SESSION['login_mode'] == 'url')
|
if (Session::Get('login_mode') == 'url')
|
||||||
{
|
{
|
||||||
$_SESSION['can_logoff'] = true;
|
Session::Set('can_logoff', true);
|
||||||
return LoginWebPage::CheckLoggedUser($iErrorCode);
|
return LoginWebPage::CheckLoggedUser($iErrorCode);
|
||||||
}
|
}
|
||||||
return LoginWebPage::LOGIN_FSM_CONTINUE;
|
return LoginWebPage::LOGIN_FSM_CONTINUE;
|
||||||
|
|||||||
@@ -24,6 +24,8 @@
|
|||||||
* @license http://opensource.org/licenses/AGPL-3.0
|
* @license http://opensource.org/licenses/AGPL-3.0
|
||||||
*/
|
*/
|
||||||
|
|
||||||
|
use Combodo\iTop\Application\Helper\Session;
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* Web page used for displaying the login form
|
* Web page used for displaying the login form
|
||||||
*/
|
*/
|
||||||
@@ -392,12 +394,14 @@ class LoginWebPage extends NiceWebPage
|
|||||||
public static function ResetSession()
|
public static function ResetSession()
|
||||||
{
|
{
|
||||||
// Unset all of the session variables.
|
// Unset all of the session variables.
|
||||||
unset($_SESSION['auth_user']);
|
Session::Start();
|
||||||
unset($_SESSION['login_state']);
|
Session::Unset('auth_user');
|
||||||
unset($_SESSION['can_logoff']);
|
Session::Unset('login_state');
|
||||||
unset($_SESSION['archive_mode']);
|
Session::Unset('can_logoff');
|
||||||
unset($_SESSION['impersonate_user']);
|
Session::Unset('archive_mode');
|
||||||
|
Session::Unset('impersonate_user');
|
||||||
UserRights::_ResetSessionCache();
|
UserRights::_ResetSessionCache();
|
||||||
|
Session::WriteClose();
|
||||||
// If it's desired to kill the session, also delete the session cookie.
|
// If it's desired to kill the session, also delete the session cookie.
|
||||||
// Note: This will destroy the session, and not just the session data!
|
// Note: This will destroy the session, and not just the session data!
|
||||||
}
|
}
|
||||||
@@ -442,11 +446,11 @@ class LoginWebPage extends NiceWebPage
|
|||||||
}
|
}
|
||||||
$bLoginDebug = MetaModel::GetConfig()->Get('login_debug');
|
$bLoginDebug = MetaModel::GetConfig()->Get('login_debug');
|
||||||
|
|
||||||
if (!isset($_SESSION['login_state']) || ($_SESSION['login_state'] == self::LOGIN_STATE_ERROR))
|
if (Session::Get('login_state') == self::LOGIN_STATE_ERROR)
|
||||||
{
|
{
|
||||||
$_SESSION['login_state'] = self::LOGIN_STATE_START;
|
Session::Set('login_state', self::LOGIN_STATE_START);
|
||||||
}
|
}
|
||||||
$sLoginState = $_SESSION['login_state'];
|
$sLoginState = Session::Get('login_state');
|
||||||
|
|
||||||
$sSessionLog = '';
|
$sSessionLog = '';
|
||||||
if ($bLoginDebug)
|
if ($bLoginDebug)
|
||||||
@@ -500,7 +504,7 @@ class LoginWebPage extends NiceWebPage
|
|||||||
|
|
||||||
// Every plugin has nothing else to do in this state, go forward
|
// Every plugin has nothing else to do in this state, go forward
|
||||||
$sLoginState = self::AdvanceLoginFSMState($sLoginState);
|
$sLoginState = self::AdvanceLoginFSMState($sLoginState);
|
||||||
$_SESSION['login_state'] = $sLoginState;
|
Session::Set('login_state', $sLoginState);
|
||||||
}
|
}
|
||||||
catch (Exception $e)
|
catch (Exception $e)
|
||||||
{
|
{
|
||||||
@@ -526,7 +530,7 @@ class LoginWebPage extends NiceWebPage
|
|||||||
|
|
||||||
if ($bFilterWithMode)
|
if ($bFilterWithMode)
|
||||||
{
|
{
|
||||||
$sCurrentLoginMode = isset($_SESSION['login_mode']) ? $_SESSION['login_mode'] : '';
|
$sCurrentLoginMode = Session::Get('login_mode', '');
|
||||||
}
|
}
|
||||||
else
|
else
|
||||||
{
|
{
|
||||||
@@ -665,8 +669,10 @@ class LoginWebPage extends NiceWebPage
|
|||||||
$oLog->DBInsertNoReload();
|
$oLog->DBInsertNoReload();
|
||||||
}
|
}
|
||||||
|
|
||||||
$_SESSION['auth_user'] = $sAuthUser;
|
Session::Start();
|
||||||
$_SESSION['login_mode'] = $sLoginMode;
|
Session::Set('auth_user', $sAuthUser);
|
||||||
|
Session::Set('login_mode', $sLoginMode);
|
||||||
|
Session::WriteClose();
|
||||||
UserRights::_InitSessionCache();
|
UserRights::_InitSessionCache();
|
||||||
}
|
}
|
||||||
|
|
||||||
@@ -681,10 +687,10 @@ class LoginWebPage extends NiceWebPage
|
|||||||
*/
|
*/
|
||||||
public static function CheckLoggedUser(&$iErrorCode)
|
public static function CheckLoggedUser(&$iErrorCode)
|
||||||
{
|
{
|
||||||
if (isset($_SESSION['auth_user']))
|
if (Session::IsSet('auth_user'))
|
||||||
{
|
{
|
||||||
// Already authenticated
|
// Already authenticated
|
||||||
$bRet = UserRights::Login($_SESSION['auth_user']); // Login & set the user's language
|
$bRet = UserRights::Login(Session::Get('auth_user')); // Login & set the user's language
|
||||||
if ($bRet)
|
if ($bRet)
|
||||||
{
|
{
|
||||||
$iErrorCode = self::EXIT_CODE_OK;
|
$iErrorCode = self::EXIT_CODE_OK;
|
||||||
@@ -712,11 +718,11 @@ class LoginWebPage extends NiceWebPage
|
|||||||
|
|
||||||
public static function SetLoginModeAndReload($sNewLoginMode)
|
public static function SetLoginModeAndReload($sNewLoginMode)
|
||||||
{
|
{
|
||||||
if (isset($_SESSION['login_mode']) && ($_SESSION['login_mode'] == $sNewLoginMode))
|
if (Session::Get('login_mode') == $sNewLoginMode)
|
||||||
{
|
{
|
||||||
return;
|
return;
|
||||||
}
|
}
|
||||||
$_SESSION['login_mode'] = $sNewLoginMode;
|
Session::Set('login_mode', $sNewLoginMode);
|
||||||
self::HTTPReload();
|
self::HTTPReload();
|
||||||
}
|
}
|
||||||
|
|
||||||
@@ -829,9 +835,9 @@ class LoginWebPage extends NiceWebPage
|
|||||||
{
|
{
|
||||||
CMDBObject::SetTrackOrigin('custom-extension');
|
CMDBObject::SetTrackOrigin('custom-extension');
|
||||||
$sInfo = 'External User provisioning';
|
$sInfo = 'External User provisioning';
|
||||||
if (isset($_SESSION['login_mode']))
|
if (Session::IsSet('login_mode'))
|
||||||
{
|
{
|
||||||
$sInfo .= " ({$_SESSION['login_mode']})";
|
$sInfo .= " (".Session::Get('login_mode').")";
|
||||||
}
|
}
|
||||||
CMDBObject::SetTrackInfo($sInfo);
|
CMDBObject::SetTrackInfo($sInfo);
|
||||||
|
|
||||||
@@ -883,9 +889,9 @@ class LoginWebPage extends NiceWebPage
|
|||||||
{
|
{
|
||||||
CMDBObject::SetTrackOrigin('custom-extension');
|
CMDBObject::SetTrackOrigin('custom-extension');
|
||||||
$sInfo = 'External User provisioning';
|
$sInfo = 'External User provisioning';
|
||||||
if (isset($_SESSION['login_mode']))
|
if (Session::IsSet('login_mode'))
|
||||||
{
|
{
|
||||||
$sInfo .= " ({$_SESSION['login_mode']})";
|
$sInfo .= " (".Session::Get('login_mode').")";
|
||||||
}
|
}
|
||||||
CMDBObject::SetTrackInfo($sInfo);
|
CMDBObject::SetTrackInfo($sInfo);
|
||||||
|
|
||||||
@@ -924,9 +930,9 @@ class LoginWebPage extends NiceWebPage
|
|||||||
|
|
||||||
// Now synchronize the profiles
|
// Now synchronize the profiles
|
||||||
$sOrigin = 'External User provisioning';
|
$sOrigin = 'External User provisioning';
|
||||||
if (isset($_SESSION['login_mode']))
|
if (Session::IsSet('login_mode'))
|
||||||
{
|
{
|
||||||
$sOrigin .= " ({$_SESSION['login_mode']})";
|
$sOrigin .= " (".Session::Get('login_mode').")";
|
||||||
}
|
}
|
||||||
$aExistingProfiles = self::SynchronizeProfiles($oUser, $aProfiles, $sOrigin);
|
$aExistingProfiles = self::SynchronizeProfiles($oUser, $aProfiles, $sOrigin);
|
||||||
if ($oUser->IsModified())
|
if ($oUser->IsModified())
|
||||||
@@ -1091,11 +1097,11 @@ class LoginWebPage extends NiceWebPage
|
|||||||
}
|
}
|
||||||
else if ($operation == 'change_pwd')
|
else if ($operation == 'change_pwd')
|
||||||
{
|
{
|
||||||
if (isset($_SESSION['auth_user']))
|
if (Session::IsSet('auth_user'))
|
||||||
{
|
{
|
||||||
$sAuthUser = $_SESSION['auth_user'];
|
$sAuthUser = Session::Get('auth_user');
|
||||||
$sIssue = $_SESSION['pwd_issue'] ?? null;
|
$sIssue = Session::Get('pwd_issue');
|
||||||
unset($_SESSION['pwd_issue']);
|
Session::Unset('pwd_issue');
|
||||||
$bFailedLogin = ($sIssue != null); // Force the "failed login" flag to display the "issue" message
|
$bFailedLogin = ($sIssue != null); // Force the "failed login" flag to display the "issue" message
|
||||||
|
|
||||||
UserRights::Login($sAuthUser); // Set the user's language
|
UserRights::Login($sAuthUser); // Set the user's language
|
||||||
@@ -1107,7 +1113,7 @@ class LoginWebPage extends NiceWebPage
|
|||||||
}
|
}
|
||||||
else if ($operation == 'check_pwd_policy')
|
else if ($operation == 'check_pwd_policy')
|
||||||
{
|
{
|
||||||
$sAuthUser = $_SESSION['auth_user'];
|
$sAuthUser = Session::Get('auth_user');
|
||||||
UserRights::Login($sAuthUser); // Set the user's language
|
UserRights::Login($sAuthUser); // Set the user's language
|
||||||
|
|
||||||
$aPwdMap = array();
|
$aPwdMap = array();
|
||||||
@@ -1125,9 +1131,9 @@ class LoginWebPage extends NiceWebPage
|
|||||||
}
|
}
|
||||||
if ($operation == 'do_change_pwd')
|
if ($operation == 'do_change_pwd')
|
||||||
{
|
{
|
||||||
if (isset($_SESSION['auth_user']))
|
if (Session::IsSet('auth_user'))
|
||||||
{
|
{
|
||||||
$sAuthUser = $_SESSION['auth_user'];
|
$sAuthUser = Session::Get('auth_user');
|
||||||
UserRights::Login($sAuthUser); // Set the user's language
|
UserRights::Login($sAuthUser); // Set the user's language
|
||||||
$sOldPwd = utils::ReadPostedParam('old_pwd', '', 'raw_data');
|
$sOldPwd = utils::ReadPostedParam('old_pwd', '', 'raw_data');
|
||||||
$sNewPwd = utils::ReadPostedParam('new_pwd', '', 'raw_data');
|
$sNewPwd = utils::ReadPostedParam('new_pwd', '', 'raw_data');
|
||||||
|
|||||||
@@ -74,9 +74,9 @@ Session::WriteClose();
|
|||||||
|
|
||||||
$sSwitchEnv = utils::ReadParam('switch_env', null);
|
$sSwitchEnv = utils::ReadParam('switch_env', null);
|
||||||
$bAllowCache = true;
|
$bAllowCache = true;
|
||||||
if (($sSwitchEnv != null) && (file_exists(APPCONF.$sSwitchEnv.'/'.ITOP_CONFIG_FILE)) && isset($_SESSION['itop_env']) && ($_SESSION['itop_env'] !== $sSwitchEnv))
|
if (($sSwitchEnv != null) && file_exists(APPCONF.$sSwitchEnv.'/'.ITOP_CONFIG_FILE) &&( Session::Get('itop_env') !== $sSwitchEnv))
|
||||||
{
|
{
|
||||||
$_SESSION['itop_env'] = $sSwitchEnv;
|
Session::Set('itop_env', $sSwitchEnv);
|
||||||
$sEnv = $sSwitchEnv;
|
$sEnv = $sSwitchEnv;
|
||||||
$bAllowCache = false;
|
$bAllowCache = false;
|
||||||
// Reset the opcache since otherwise the PHP "model" files may still be cached !!
|
// Reset the opcache since otherwise the PHP "model" files may still be cached !!
|
||||||
@@ -92,14 +92,14 @@ if (($sSwitchEnv != null) && (file_exists(APPCONF.$sSwitchEnv.'/'.ITOP_CONFIG_FI
|
|||||||
}
|
}
|
||||||
// TODO: reset the credentials as well ??
|
// TODO: reset the credentials as well ??
|
||||||
}
|
}
|
||||||
else if (isset($_SESSION['itop_env']))
|
else if (Session::IsSet('itop_env'))
|
||||||
{
|
{
|
||||||
$sEnv = $_SESSION['itop_env'];
|
$sEnv = Session::Get('itop_env');
|
||||||
}
|
}
|
||||||
else
|
else
|
||||||
{
|
{
|
||||||
$sEnv = ITOP_DEFAULT_ENV;
|
$sEnv = ITOP_DEFAULT_ENV;
|
||||||
$_SESSION['itop_env'] = ITOP_DEFAULT_ENV;
|
Session::Set('itop_env', ITOP_DEFAULT_ENV);
|
||||||
}
|
}
|
||||||
$sConfigFile = APPCONF.$sEnv.'/'.ITOP_CONFIG_FILE;
|
$sConfigFile = APPCONF.$sEnv.'/'.ITOP_CONFIG_FILE;
|
||||||
MetaModel::Startup($sConfigFile, false /* $bModelOnly */, $bAllowCache, false /* $bTraceSourceFiles */, $sEnv);
|
MetaModel::Startup($sConfigFile, false /* $bModelOnly */, $bAllowCache, false /* $bTraceSourceFiles */, $sEnv);
|
||||||
|
|||||||
@@ -101,7 +101,8 @@ class privUITransaction
|
|||||||
|
|
||||||
/**
|
/**
|
||||||
* The original (and by default) mechanism for storing transaction information
|
* The original (and by default) mechanism for storing transaction information
|
||||||
* as an array in the $_SESSION variable
|
* as an array in the _SESSION variable
|
||||||
|
* @see Session
|
||||||
*
|
*
|
||||||
*/
|
*/
|
||||||
class privUITransactionSession
|
class privUITransactionSession
|
||||||
|
|||||||
@@ -250,7 +250,7 @@ class utils
|
|||||||
}
|
}
|
||||||
// Read and record the value for switching the archive mode
|
// Read and record the value for switching the archive mode
|
||||||
$iCurrent = self::ReadParam('with-archive', $iDefault);
|
$iCurrent = self::ReadParam('with-archive', $iDefault);
|
||||||
if (isset($_SESSION))
|
if (Session::IsInitialized())
|
||||||
{
|
{
|
||||||
Session::Set('archive_mode', $iCurrent);
|
Session::Set('archive_mode', $iCurrent);
|
||||||
}
|
}
|
||||||
@@ -1220,7 +1220,7 @@ class utils
|
|||||||
*/
|
*/
|
||||||
public static function GetSessionLog()
|
public static function GetSessionLog()
|
||||||
{
|
{
|
||||||
return print_r($_SESSION, true);
|
return Session::GetLog();
|
||||||
}
|
}
|
||||||
|
|
||||||
static function DebugBacktrace($iLimit = 5)
|
static function DebugBacktrace($iLimit = 5)
|
||||||
|
|||||||
@@ -1905,8 +1905,10 @@ class UserRights
|
|||||||
|
|
||||||
public static function _ResetSessionCache()
|
public static function _ResetSessionCache()
|
||||||
{
|
{
|
||||||
|
Session::Start();
|
||||||
Session::Unset('profile_list');
|
Session::Unset('profile_list');
|
||||||
Session::Unset('archive_allowed');
|
Session::Unset('archive_allowed');
|
||||||
|
Session::WriteClose();
|
||||||
}
|
}
|
||||||
|
|
||||||
/**
|
/**
|
||||||
|
|||||||
@@ -9,6 +9,7 @@ namespace Combodo\iTop\Cas;
|
|||||||
|
|
||||||
use AbstractLoginFSMExtension;
|
use AbstractLoginFSMExtension;
|
||||||
use CMDBObject;
|
use CMDBObject;
|
||||||
|
use Combodo\iTop\Application\Helper\Session;
|
||||||
use DBObjectSearch;
|
use DBObjectSearch;
|
||||||
use DBObjectSet;
|
use DBObjectSet;
|
||||||
use Dict;
|
use Dict;
|
||||||
@@ -40,52 +41,54 @@ class CASLoginExtension extends AbstractLoginFSMExtension implements iLogoutExte
|
|||||||
|
|
||||||
protected function OnStart(&$iErrorCode)
|
protected function OnStart(&$iErrorCode)
|
||||||
{
|
{
|
||||||
unset($_SESSION['phpCAS']);
|
Session::Unset('phpCAS');
|
||||||
return LoginWebPage::LOGIN_FSM_CONTINUE;
|
return LoginWebPage::LOGIN_FSM_CONTINUE;
|
||||||
}
|
}
|
||||||
|
|
||||||
protected function OnReadCredentials(&$iErrorCode)
|
protected function OnReadCredentials(&$iErrorCode)
|
||||||
{
|
{
|
||||||
if (!isset($_SESSION['login_mode']) || ($_SESSION['login_mode'] == 'cas'))
|
if (Session::Get('login_mode') == 'cas')
|
||||||
{
|
{
|
||||||
|
Session::Start();
|
||||||
static::InitCASClient();
|
static::InitCASClient();
|
||||||
if (phpCAS::isAuthenticated())
|
if (phpCAS::isAuthenticated())
|
||||||
{
|
{
|
||||||
$_SESSION['login_mode'] = 'cas';
|
Session::Set('login_mode', 'cas');
|
||||||
$_SESSION['auth_user'] = phpCAS::getUser();
|
Session::Set('auth_user', phpCAS::getUser());
|
||||||
unset($_SESSION['login_will_redirect']);
|
Session::Unset('login_will_redirect');
|
||||||
}
|
}
|
||||||
else
|
else
|
||||||
{
|
{
|
||||||
if (!isset($_SESSION['login_will_redirect']))
|
if (!Session::IsSet('login_will_redirect'))
|
||||||
{
|
{
|
||||||
$_SESSION['login_will_redirect'] = true;
|
Session::Set('login_will_redirect', true);
|
||||||
}
|
}
|
||||||
else
|
else
|
||||||
{
|
{
|
||||||
unset($_SESSION['login_will_redirect']);
|
Session::Unset('login_will_redirect');
|
||||||
$iErrorCode = LoginWebPage::EXIT_CODE_MISSINGLOGIN;
|
$iErrorCode = LoginWebPage::EXIT_CODE_MISSINGLOGIN;
|
||||||
return LoginWebPage::LOGIN_FSM_ERROR;
|
return LoginWebPage::LOGIN_FSM_ERROR;
|
||||||
}
|
}
|
||||||
$_SESSION['login_mode'] = 'cas';
|
Session::Set('login_mode', 'cas');
|
||||||
phpCAS::forceAuthentication(); // Redirect to CAS and exit
|
phpCAS::forceAuthentication(); // Redirect to CAS and exit
|
||||||
}
|
}
|
||||||
|
Session::WriteClose();
|
||||||
}
|
}
|
||||||
return LoginWebPage::LOGIN_FSM_CONTINUE;
|
return LoginWebPage::LOGIN_FSM_CONTINUE;
|
||||||
}
|
}
|
||||||
|
|
||||||
protected function OnCheckCredentials(&$iErrorCode)
|
protected function OnCheckCredentials(&$iErrorCode)
|
||||||
{
|
{
|
||||||
if ($_SESSION['login_mode'] == 'cas')
|
if (Session::Get('login_mode') == 'cas')
|
||||||
{
|
{
|
||||||
if (!isset($_SESSION['auth_user']))
|
if (!Session::IsSet('auth_user'))
|
||||||
{
|
{
|
||||||
$iErrorCode = LoginWebPage::EXIT_CODE_WRONGCREDENTIALS;
|
$iErrorCode = LoginWebPage::EXIT_CODE_WRONGCREDENTIALS;
|
||||||
return LoginWebPage::LOGIN_FSM_ERROR;
|
return LoginWebPage::LOGIN_FSM_ERROR;
|
||||||
}
|
}
|
||||||
if (Config::Get('cas_user_synchro' ))
|
if (Config::Get('cas_user_synchro' ))
|
||||||
{
|
{
|
||||||
self::DoUserProvisioning($_SESSION['auth_user']);
|
self::DoUserProvisioning(Session::Get('auth_user'));
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
return LoginWebPage::LOGIN_FSM_CONTINUE;
|
return LoginWebPage::LOGIN_FSM_CONTINUE;
|
||||||
@@ -93,24 +96,24 @@ class CASLoginExtension extends AbstractLoginFSMExtension implements iLogoutExte
|
|||||||
|
|
||||||
protected function OnCredentialsOK(&$iErrorCode)
|
protected function OnCredentialsOK(&$iErrorCode)
|
||||||
{
|
{
|
||||||
if ($_SESSION['login_mode'] == 'cas')
|
if (Session::Get('login_mode') == 'cas')
|
||||||
{
|
{
|
||||||
$sAuthUser = $_SESSION['auth_user'];
|
$sAuthUser = Session::Get('auth_user');
|
||||||
if (!LoginWebPage::CheckUser($sAuthUser))
|
if (!LoginWebPage::CheckUser($sAuthUser))
|
||||||
{
|
{
|
||||||
$iErrorCode = LoginWebPage::EXIT_CODE_NOTAUTHORIZED;
|
$iErrorCode = LoginWebPage::EXIT_CODE_NOTAUTHORIZED;
|
||||||
return LoginWebPage::LOGIN_FSM_ERROR;
|
return LoginWebPage::LOGIN_FSM_ERROR;
|
||||||
}
|
}
|
||||||
LoginWebPage::OnLoginSuccess($sAuthUser, 'external', $_SESSION['login_mode']);
|
LoginWebPage::OnLoginSuccess($sAuthUser, 'external', Session::Get('login_mode'));
|
||||||
}
|
}
|
||||||
return LoginWebPage::LOGIN_FSM_CONTINUE;
|
return LoginWebPage::LOGIN_FSM_CONTINUE;
|
||||||
}
|
}
|
||||||
|
|
||||||
protected function OnError(&$iErrorCode)
|
protected function OnError(&$iErrorCode)
|
||||||
{
|
{
|
||||||
if ($_SESSION['login_mode'] == 'cas')
|
if (Session::Get('login_mode') == 'cas')
|
||||||
{
|
{
|
||||||
unset($_SESSION['phpCAS']);
|
Session::Unset('phpCAS');
|
||||||
if ($iErrorCode != LoginWebPage::EXIT_CODE_MISSINGLOGIN)
|
if ($iErrorCode != LoginWebPage::EXIT_CODE_MISSINGLOGIN)
|
||||||
{
|
{
|
||||||
$oLoginWebPage = new LoginWebPage();
|
$oLoginWebPage = new LoginWebPage();
|
||||||
@@ -123,9 +126,9 @@ class CASLoginExtension extends AbstractLoginFSMExtension implements iLogoutExte
|
|||||||
|
|
||||||
protected function OnConnected(&$iErrorCode)
|
protected function OnConnected(&$iErrorCode)
|
||||||
{
|
{
|
||||||
if ($_SESSION['login_mode'] == 'cas')
|
if (Session::Get('login_mode') == 'cas')
|
||||||
{
|
{
|
||||||
$_SESSION['can_logoff'] = true;
|
Session::Set('can_logoff', true);
|
||||||
return LoginWebPage::CheckLoggedUser($iErrorCode);
|
return LoginWebPage::CheckLoggedUser($iErrorCode);
|
||||||
}
|
}
|
||||||
return LoginWebPage::LOGIN_FSM_CONTINUE;
|
return LoginWebPage::LOGIN_FSM_CONTINUE;
|
||||||
|
|||||||
@@ -1174,7 +1174,7 @@ class phpCAS
|
|||||||
}
|
}
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* Checks whether authenticated based on $_SESSION. Useful to avoid
|
* Checks whether authenticated based on _SESSION. Useful to avoid
|
||||||
* server calls.
|
* server calls.
|
||||||
*
|
*
|
||||||
* @return bool true if authenticated, false otherwise.
|
* @return bool true if authenticated, false otherwise.
|
||||||
|
|||||||
@@ -4,6 +4,7 @@
|
|||||||
* @license http://opensource.org/licenses/AGPL-3.0
|
* @license http://opensource.org/licenses/AGPL-3.0
|
||||||
*/
|
*/
|
||||||
|
|
||||||
|
use Combodo\iTop\Application\Helper\Session;
|
||||||
use Combodo\iTop\Application\TwigBase\Twig\TwigHelper;
|
use Combodo\iTop\Application\TwigBase\Twig\TwigHelper;
|
||||||
use Combodo\iTop\Application\UI\Base\Component\Html\Html;
|
use Combodo\iTop\Application\UI\Base\Component\Html\Html;
|
||||||
use Combodo\iTop\Application\UI\Base\Component\Title\TitleUIBlockFactory;
|
use Combodo\iTop\Application\UI\Base\Component\Title\TitleUIBlockFactory;
|
||||||
@@ -181,7 +182,7 @@ try
|
|||||||
}
|
}
|
||||||
$oWidget = new UILinksWidget($sClass, $sAttCode, $iInputId, $sSuffix, $bDuplicates);
|
$oWidget = new UILinksWidget($sClass, $sAttCode, $iInputId, $sSuffix, $bDuplicates);
|
||||||
$oAppContext = new ApplicationContext();
|
$oAppContext = new ApplicationContext();
|
||||||
$aPrefillFormParam = array( 'user' => $_SESSION["auth_user"],
|
$aPrefillFormParam = array( 'user' => Session::Get("auth_user"),
|
||||||
'context' => $oAppContext->GetAsHash(),
|
'context' => $oAppContext->GetAsHash(),
|
||||||
'att_code' => $sAttCode,
|
'att_code' => $sAttCode,
|
||||||
'origin' => 'console',
|
'origin' => 'console',
|
||||||
@@ -261,7 +262,7 @@ try
|
|||||||
$iCurrObjectId = utils::ReadParam('iObjId', 0);
|
$iCurrObjectId = utils::ReadParam('iObjId', 0);
|
||||||
$oPage->SetContentType('text/html');
|
$oPage->SetContentType('text/html');
|
||||||
$oAppContext = new ApplicationContext();
|
$oAppContext = new ApplicationContext();
|
||||||
$aPrefillFormParam = array( 'user' => $_SESSION["auth_user"],
|
$aPrefillFormParam = array( 'user' => Session::Get('auth_user'),
|
||||||
'context' => $oAppContext->GetAsHash(),
|
'context' => $oAppContext->GetAsHash(),
|
||||||
'att_code' => $sAttCode,
|
'att_code' => $sAttCode,
|
||||||
'origin' => 'console',
|
'origin' => 'console',
|
||||||
@@ -290,7 +291,7 @@ try
|
|||||||
$oObj = $oWizardHelper->GetTargetObject();
|
$oObj = $oWizardHelper->GetTargetObject();
|
||||||
}
|
}
|
||||||
$oAppContext = new ApplicationContext();
|
$oAppContext = new ApplicationContext();
|
||||||
$aPrefillFormParam = array( 'user' => $_SESSION["auth_user"],
|
$aPrefillFormParam = array( 'user' => Session::Get('auth_user'),
|
||||||
'context' => $oAppContext->GetAsHash(),
|
'context' => $oAppContext->GetAsHash(),
|
||||||
'att_code' => $sAttCode,
|
'att_code' => $sAttCode,
|
||||||
'origin' => 'console',
|
'origin' => 'console',
|
||||||
@@ -441,7 +442,7 @@ try
|
|||||||
$oWizardHelper = WizardHelper::FromJSON($sJson);
|
$oWizardHelper = WizardHelper::FromJSON($sJson);
|
||||||
$oObj = $oWizardHelper->GetTargetObject();
|
$oObj = $oWizardHelper->GetTargetObject();
|
||||||
$oAppContext = new ApplicationContext();
|
$oAppContext = new ApplicationContext();
|
||||||
$aPrefillFormParam = array( 'user' => $_SESSION["auth_user"],
|
$aPrefillFormParam = array( 'user' => Session::Get('auth_user'),
|
||||||
'context' => $oAppContext->GetAsHash(),
|
'context' => $oAppContext->GetAsHash(),
|
||||||
'att_code' => $sAttCode,
|
'att_code' => $sAttCode,
|
||||||
'source_obj' => $oObj,
|
'source_obj' => $oObj,
|
||||||
|
|||||||
@@ -17,6 +17,8 @@
|
|||||||
* You should have received a copy of the GNU Affero General Public License
|
* You should have received a copy of the GNU Affero General Public License
|
||||||
*/
|
*/
|
||||||
|
|
||||||
|
use Combodo\iTop\Application\Helper\Session;
|
||||||
|
|
||||||
require_once('../approot.inc.php');
|
require_once('../approot.inc.php');
|
||||||
require_once(APPROOT.'/application/application.inc.php');
|
require_once(APPROOT.'/application/application.inc.php');
|
||||||
require_once(APPROOT.'/application/wizardhelper.class.inc.php');
|
require_once(APPROOT.'/application/wizardhelper.class.inc.php');
|
||||||
@@ -41,9 +43,9 @@ if ($operation == 'do_logoff')
|
|||||||
exit;
|
exit;
|
||||||
}
|
}
|
||||||
|
|
||||||
if (isset($_SESSION['auth_user']))
|
if (Session::IsSet('auth_user'))
|
||||||
{
|
{
|
||||||
$sAuthUser = $_SESSION['auth_user'];
|
$sAuthUser = Session::Get('auth_user');
|
||||||
UserRights::Login($sAuthUser); // Set the user's language
|
UserRights::Login($sAuthUser); // Set the user's language
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|||||||
@@ -19,10 +19,12 @@ use ExecutionKPI;
|
|||||||
class Session
|
class Session
|
||||||
{
|
{
|
||||||
public static $iSessionId = null;
|
public static $iSessionId = null;
|
||||||
public static $bSessionStarted = false;
|
protected static $bIsInitialized = false;
|
||||||
|
protected static $bSessionStarted = false;
|
||||||
|
|
||||||
public static function Start()
|
public static function Start()
|
||||||
{
|
{
|
||||||
|
self::$bIsInitialized = true;
|
||||||
if (!self::$bSessionStarted) {
|
if (!self::$bSessionStarted) {
|
||||||
$oKPI = new ExecutionKPI();
|
$oKPI = new ExecutionKPI();
|
||||||
session_name('itop-'.md5(APPROOT));
|
session_name('itop-'.md5(APPROOT));
|
||||||
@@ -140,6 +142,7 @@ class Session
|
|||||||
} else {
|
} else {
|
||||||
$sSessionVar = &$sSessionVar[$key];
|
$sSessionVar = &$sSessionVar[$key];
|
||||||
}
|
}
|
||||||
|
|
||||||
return isset($sSessionVar);
|
return isset($sSessionVar);
|
||||||
}
|
}
|
||||||
|
|
||||||
@@ -148,4 +151,19 @@ class Session
|
|||||||
return array_keys($_SESSION);
|
return array_keys($_SESSION);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* @return bool
|
||||||
|
*/
|
||||||
|
public static function IsInitialized(): bool
|
||||||
|
{
|
||||||
|
return self::$bIsInitialized;
|
||||||
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* @return bool|string
|
||||||
|
*/
|
||||||
|
public static function GetLog()
|
||||||
|
{
|
||||||
|
return print_r($_SESSION, true);
|
||||||
|
}
|
||||||
}
|
}
|
||||||
Reference in New Issue
Block a user