Fix revalidate after flow in ACL\Login
After revalidate time was reached, it was never reset because it used the original loginUserId set date. A new column has been added that gets reset every time the user logs in with username and password if a loginUserId is set in the database
This commit is contained in:
@@ -540,6 +540,8 @@ class Login
|
||||
. "eu.debug, eu.db_debug, "
|
||||
// enabled
|
||||
. "eu.enabled, eu.deleted, "
|
||||
// for checks only
|
||||
. "eu.login_user_id, "
|
||||
// login id validation
|
||||
. "CASE WHEN ("
|
||||
. "(eu.login_user_id_valid_from IS NULL "
|
||||
@@ -550,7 +552,7 @@ class Login
|
||||
// check if user must login
|
||||
. "CASE WHEN eu.login_user_id_revalidate_after IS NOT NULL "
|
||||
. "AND eu.login_user_id_revalidate_after > '0 days'::INTERVAL "
|
||||
. "AND (eu.login_user_id_set_date + eu.login_user_id_revalidate_after)::DATE "
|
||||
. "AND (eu.login_user_id_last_login + eu.login_user_id_revalidate_after)::DATE "
|
||||
. "<= NOW()::DATE "
|
||||
. "THEN 1::INT ELSE 0::INT END AS login_user_id_revalidate, "
|
||||
. "eu.login_user_id_locked, "
|
||||
@@ -653,6 +655,15 @@ class Login
|
||||
// check if user is okay
|
||||
$this->loginCheckPermissions();
|
||||
if ($this->login_error == 0) {
|
||||
if (
|
||||
!empty($res['login_user_id']) &&
|
||||
!empty($this->username) && !empty($this->password)
|
||||
) {
|
||||
$q = "UPDATE edit_user SET "
|
||||
. "login_user_id_last_login = NOW() "
|
||||
. "WHERE edit_user_id = " . $this->euid;
|
||||
$this->db->dbExec($q);
|
||||
}
|
||||
// now set all session vars and read page permissions
|
||||
$_SESSION['DEBUG_ALL'] = $this->db->dbBoolean($res['debug']);
|
||||
$_SESSION['DB_DEBUG'] = $this->db->dbBoolean($res['db_debug']);
|
||||
@@ -1891,7 +1902,7 @@ EOM;
|
||||
// check if user must login
|
||||
. "CASE WHEN eu.login_user_id_revalidate_after IS NOT NULL "
|
||||
. "AND eu.login_user_id_revalidate_after > '0 days'::INTERVAL "
|
||||
. "AND eu.login_user_id_set_date + eu.login_user_id_revalidate_after <= NOW()::DATE "
|
||||
. "AND eu.login_user_id_last_login + eu.login_user_id_revalidate_after <= NOW()::DATE "
|
||||
. "THEN 1::INT ELSE 0::INT END AS login_user_id_revalidate, "
|
||||
. "eu.login_user_id_locked "
|
||||
//
|
||||
|
||||
Reference in New Issue
Block a user