mirror of
https://github.com/Combodo/iTop.git
synced 2026-08-21 13:48:22 +02:00
N°9950 - Error loading structural data on upgrade
This commit is contained in:
@@ -117,6 +117,9 @@ class LoginBasic extends AbstractLoginFSMExtension
|
||||
}
|
||||
|
||||
// Decode without Bearer
|
||||
if (!utils::StartsWith($sAuthorization, 'Basic ')) {
|
||||
return null;
|
||||
}
|
||||
$sDecodedAuthorisation = base64_decode(substr($sAuthorization, 6));
|
||||
if (str_contains($sDecodedAuthorisation, ':')) {
|
||||
return explode(':', $sDecodedAuthorisation);
|
||||
|
||||
@@ -38,11 +38,43 @@ class LoginBasicTest extends ItopDataTestCase
|
||||
$sActualRes = $oLoginBasic->LoginAction(LoginWebPage::LOGIN_STATE_MODE_DETECTION, $iErrorCode);
|
||||
|
||||
// Then
|
||||
$this->assertTrue(Session::IsSet('login_mode'));
|
||||
$this->assertEquals(LoginWebPage::LOGIN_FSM_CONTINUE, $sActualRes);
|
||||
$this->assertEquals('basic', $_SESSION['login_mode'], 'Login mode should have detected basic mode');
|
||||
$this->assertEquals(LoginWebPage::LOGIN_FSM_CONTINUE, $sActualRes, 'No Login FSM error should have been detected');
|
||||
}
|
||||
|
||||
public function testOnModeDetectionForToken()
|
||||
public function testOnModeDetectionForRedirect()
|
||||
{
|
||||
// Given
|
||||
$oLoginBasic = new LoginBasic();
|
||||
$_SERVER['REDIRECT_HTTP_AUTHORIZATION'] = 'Basic '.base64_encode('Login:BasicTest');
|
||||
|
||||
// When
|
||||
$_SESSION = [];
|
||||
$iErrorCode = 0;
|
||||
$sActualRes = $oLoginBasic->LoginAction(LoginWebPage::LOGIN_STATE_MODE_DETECTION, $iErrorCode);
|
||||
|
||||
// Then
|
||||
$this->assertEquals('basic', $_SESSION['login_mode'], 'Login mode should have detected basic mode');
|
||||
$this->assertEquals(LoginWebPage::LOGIN_FSM_CONTINUE, $sActualRes, 'No Login FSM error should have been detected');
|
||||
}
|
||||
|
||||
public function testOnModeDetectionForBasicLoginPassword()
|
||||
{
|
||||
// Given
|
||||
$oLoginBasic = new LoginBasic();
|
||||
$_SERVER['REDIRECT_HTTP_AUTHORIZATION'] = 'Basic '.base64_encode('Login:BasicTest');
|
||||
|
||||
// When
|
||||
$_SESSION = [];
|
||||
$iErrorCode = 0;
|
||||
$sActualRes = $oLoginBasic->LoginAction(LoginWebPage::LOGIN_STATE_MODE_DETECTION, $iErrorCode);
|
||||
|
||||
// Then
|
||||
$this->assertEquals('basic', $_SESSION['login_mode'], 'Login mode should have detected basic mode');
|
||||
$this->assertEquals(LoginWebPage::LOGIN_FSM_CONTINUE, $sActualRes, 'No Login FSM error should have been detected');
|
||||
}
|
||||
|
||||
public function testOnModeDetectionForBearerToken()
|
||||
{
|
||||
// Given
|
||||
$oLoginBasic = new LoginBasic();
|
||||
@@ -54,7 +86,7 @@ class LoginBasicTest extends ItopDataTestCase
|
||||
$sActualRes = $oLoginBasic->LoginAction(LoginWebPage::LOGIN_STATE_MODE_DETECTION, $iErrorCode);
|
||||
|
||||
// Then
|
||||
$this->assertFalse(Session::IsSet('login_mode'));
|
||||
$this->assertEquals(LoginWebPage::LOGIN_FSM_CONTINUE, $sActualRes);
|
||||
$this->assertFalse(Session::IsSet('login_mode'), 'No basic login mode should have been detected');
|
||||
$this->assertEquals(LoginWebPage::LOGIN_FSM_CONTINUE, $sActualRes, 'No Login FSM error should have been detected');
|
||||
}
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user