diff --git a/4dev/tests/ACL/CoreLibsACLLoginTest.php b/4dev/tests/ACL/CoreLibsACLLoginTest.php
index 60958dcf..e2a28b0e 100644
--- a/4dev/tests/ACL/CoreLibsACLLoginTest.php
+++ b/4dev/tests/ACL/CoreLibsACLLoginTest.php
@@ -167,8 +167,10 @@ final class CoreLibsACLLoginTest extends TestCase
// change_password, pw_username, pw_old_password, pw_new_password,
// pw_new_password_confirm
// 3[session]: override session set
- // 4[error] : expected error code, 0 for all ok, 3000 for login page view
- // note that 1000 (no db), 2000 (no session) must be tested too
+ // 4[error] : expected error code, 0 for all ok, 100 for login page view
+ // note that 1000 (no db), 2000 (no session), 3000 (options set error)
+ // must be tested too
+ // <1000 info, >=1000 critical error
// 5[return] : expected return array, eg login_error code,
// or other info data to match
$tests = [
@@ -180,7 +182,7 @@ final class CoreLibsACLLoginTest extends TestCase
[],
[],
[],
- 3000,
+ 100,
[
'login_error' => 0,
'error_string' => 'Success: No error',
@@ -198,7 +200,7 @@ final class CoreLibsACLLoginTest extends TestCase
[],
[],
[],
- 3000,
+ 100,
[
'login_error' => 0,
'error_string' => 'Success: No error',
@@ -221,7 +223,7 @@ final class CoreLibsACLLoginTest extends TestCase
[],
[],
[],
- 3000,
+ 100,
[
'login_error' => 0,
'error_string' => 'Success: No error',
@@ -308,7 +310,7 @@ final class CoreLibsACLLoginTest extends TestCase
'login_password' => '',
],
[],
- 3000,
+ 100,
[
'login_error' => 102,
'error_string' => 'Fatal Error: '
@@ -329,7 +331,7 @@ final class CoreLibsACLLoginTest extends TestCase
'login_password' => 'abc',
],
[],
- 3000,
+ 100,
[
'login_error' => 102,
'error_string' => 'Fatal Error: '
@@ -350,7 +352,7 @@ final class CoreLibsACLLoginTest extends TestCase
'login_password' => '',
],
[],
- 3000,
+ 100,
[
'login_error' => 102,
'error_string' => 'Fatal Error: '
@@ -371,7 +373,7 @@ final class CoreLibsACLLoginTest extends TestCase
'login_password' => 'abc',
],
[],
- 3000,
+ 100,
[
'login_error' => 1010,
'error_string' => 'Fatal Error: '
@@ -395,7 +397,7 @@ final class CoreLibsACLLoginTest extends TestCase
'login_password' => 'abc',
],
[],
- 3000,
+ 100,
[
// default password is plain text
'login_error' => 1012,
@@ -421,7 +423,7 @@ final class CoreLibsACLLoginTest extends TestCase
'login_password' => 'admin',
],
[],
- 3000,
+ 100,
[
'login_error' => 106,
'error_string' => 'Fatal Error: '
@@ -446,7 +448,7 @@ final class CoreLibsACLLoginTest extends TestCase
'login_password' => 'admin',
],
[],
- 3000,
+ 100,
[
'login_error' => 104,
'error_string' => 'Fatal Error: '
@@ -471,7 +473,7 @@ final class CoreLibsACLLoginTest extends TestCase
'login_password' => 'admin',
],
[],
- 3000,
+ 100,
[
'login_error' => 105,
'error_string' => 'Fatal Error: '
@@ -520,7 +522,7 @@ final class CoreLibsACLLoginTest extends TestCase
'login_password' => 'admin',
],
[],
- 3000,
+ 100,
[
'login_error' => 107,
'error_string' => 'Fatal Error: '
@@ -574,7 +576,7 @@ final class CoreLibsACLLoginTest extends TestCase
'login_password' => 'admin',
],
[],
- 3000,
+ 100,
[
'login_error' => 107,
'error_string' => 'Fatal Error: '
@@ -600,7 +602,7 @@ final class CoreLibsACLLoginTest extends TestCase
'login_password' => 'admin',
],
[],
- 3000,
+ 100,
[
'login_error' => 107,
'error_string' => 'Fatal Error: '
@@ -625,7 +627,7 @@ final class CoreLibsACLLoginTest extends TestCase
'login_password' => 'admin',
],
[],
- 3000,
+ 100,
[
'login_error' => 108,
'error_string' => 'Fatal Error: '
@@ -761,7 +763,7 @@ final class CoreLibsACLLoginTest extends TestCase
],
[],
[],
- 3000,
+ 100,
[
'login_error' => 1010,
'error_string' => 'Fatal Error: '
@@ -853,7 +855,7 @@ final class CoreLibsACLLoginTest extends TestCase
],
[],
[],
- 3000,
+ 100,
[
'login_error' => 1101,
'error_string' => 'Fatal Error: '
@@ -909,7 +911,7 @@ final class CoreLibsACLLoginTest extends TestCase
],
[],
[],
- 3000,
+ 100,
[
'login_error' => 1102,
'error_string' => 'Fatal Error: '
@@ -965,7 +967,7 @@ final class CoreLibsACLLoginTest extends TestCase
],
[],
[],
- 3000,
+ 100,
[
'login_error' => 1102,
'error_string' => 'Fatal Error: '
@@ -992,7 +994,7 @@ final class CoreLibsACLLoginTest extends TestCase
],
[],
[],
- 3000,
+ 100,
[
'login_error' => 1102,
'error_string' => 'Fatal Error: '
@@ -1133,7 +1135,7 @@ final class CoreLibsACLLoginTest extends TestCase
$login_mock->expects($this->any())
->method('loginTerminate')
->will(
- $this->returnCallback(function ($code) {
+ $this->returnCallback(function ($message, $code) {
throw new \Exception('', $code);
})
);
@@ -1227,7 +1229,11 @@ final class CoreLibsACLLoginTest extends TestCase
$login_mock->loginSetMaxLoginErrorCount($mock_settings['max_login_error_count']);
// temporary wrong password
$_POST['login_password'] = 'wrong';
- for ($run = 1, $max_run = $login_mock->loginGetMaxLoginErrorCount(); $run <= $max_run; $run++) {
+ for (
+ $run = 1, $max_run = $login_mock->loginGetMaxLoginErrorCount();
+ $run <= $max_run;
+ $run++
+ ) {
try {
$login_mock->loginMainCall();
} catch (\Exception $e) {
@@ -1475,10 +1481,10 @@ final class CoreLibsACLLoginTest extends TestCase
// print "AJAX: " . $login_mock->loginGetAjaxFlag() . "\n";
// print "AJAX GLOBAL: " . ($GLOBALS['AJAX_PAGE'] ?? '{f}') . "\n";
// print "Login error expext: " . ($expected['login_error'] ?? '{0}') . "\n";
- // if this is 3000, then we do further error checks
+ // if this is 100, then we do further error checks
if (
- $e->getCode() == 3000 ||
- !empty($_POST['login_exit']) && $_POST['login_exit'] == 3000
+ $e->getCode() == 100 ||
+ !empty($_POST['login_exit']) && $_POST['login_exit'] == 100
) {
$this->assertEquals(
$expected['login_error'],
@@ -1816,7 +1822,7 @@ final class CoreLibsACLLoginTest extends TestCase
$login_mock->expects($this->any())
->method('loginTerminate')
->will(
- $this->returnCallback(function ($code) {
+ $this->returnCallback(function ($message, $code) {
throw new \Exception('', $code);
})
);
@@ -1930,7 +1936,7 @@ final class CoreLibsACLLoginTest extends TestCase
$login_mock->expects($this->any())
->method('loginTerminate')
->will(
- $this->returnCallback(function ($code) {
+ $this->returnCallback(function ($message, $code) {
throw new \Exception('', $code);
})
);
@@ -2018,7 +2024,7 @@ final class CoreLibsACLLoginTest extends TestCase
$login_mock->expects($this->any())
->method('loginTerminate')
->will(
- $this->returnCallback(function ($code) {
+ $this->returnCallback(function ($message, $code) {
throw new \Exception('', $code);
})
);
@@ -2114,7 +2120,7 @@ final class CoreLibsACLLoginTest extends TestCase
$login_mock->expects($this->any())
->method('loginTerminate')
->will(
- $this->returnCallback(function ($code) {
+ $this->returnCallback(function ($message, $code) {
throw new \Exception('', $code);
})
);
diff --git a/www/lib/CoreLibs/ACL/Login.php b/www/lib/CoreLibs/ACL/Login.php
index 9522d52c..1b3b8fee 100644
--- a/www/lib/CoreLibs/ACL/Login.php
+++ b/www/lib/CoreLibs/ACL/Login.php
@@ -240,7 +240,7 @@ class Login
if (false === $this->loginSetOptions($options)) {
// on failure, exit
echo "Could not set options";
- $this->loginTerminate(4000);
+ $this->loginTerminate('Could not set options', 3000);
}
// string key, msg: string, flag: e (error), o (ok)
@@ -392,11 +392,19 @@ class Login
/**
* Wrapper for exit calls
*
- * @param int $code
+ * @param string $message [='']
+ * @param int $code [=0]
* @return void
*/
- protected function loginTerminate($code = 0): void
+ protected function loginTerminate(string $message = '', int $code = 0): void
{
+ // all below 1000 are info end, all above 1000 are critical -> should throw exception?
+ if ($code < 1000) {
+ $this->log->info($message, ['code' => $code]);
+ } else {
+ $this->log->critical($message, ['code' => $code]);
+ // throw new \Exception($message, $code);
+ }
exit($code);
}
@@ -1810,14 +1818,14 @@ HTML;
$this->login_error = 1;
echo 'Could not connect to DB
';
// if I can't connect to the DB to auth exit hard. No access allowed
- $this->loginTerminate(1000);
+ $this->loginTerminate('Could not connect to DB', 1000);
}
// initial the session if there is no session running already
// check if session exists and could be created
if ($this->session->checkActiveSession() === false) {
$this->login_error = 2;
echo 'No active session found';
- $this->loginTerminate(2000);
+ $this->loginTerminate('No active session found', 2000);
}
// set internal page name
$this->page_name = $this->loginReadPageName();
@@ -1916,7 +1924,7 @@ HTML;
$this->loginPrintLogin();
}
// exit so we don't process anything further, at all
- $this->loginTerminate(3000);
+ $this->loginTerminate('Exit after non ajax page load', 100);
} else {
// if we are on an ajax page reset any POST/GET array data to avoid
// any accidentical processing going on
@@ -1924,7 +1932,7 @@ HTML;
$_GET = [];
// set the action to login so we can trigger special login html return
$_POST['action'] = 'login';
- $_POST['login_exit'] = 3000;
+ $_POST['login_exit'] = 100;
$_POST['login_error'] = $this->loginGetLastErrorCode();
$_POST['login_error_text'] = $this->loginGetErrorMsg(
$this->loginGetLastErrorCode(),