[ticket/16470] Do not sync user last visit time with expired sessions time

PHPBB3-16470
PHPBB3-14173
This commit is contained in:
rxu 2023-06-21 00:02:29 +07:00
parent bbe2b21310
commit 735b826063
No known key found for this signature in database
GPG key ID: 955F0567380E586A

View file

@ -960,8 +960,8 @@ class session
} }
/** /**
* Get expired sessions for registered users, only most recent for each user * Get most recent session for each registered user to sync user last visit with it
* Inner SELECT gets most recent expired sessions for unique session_user_id * Inner SELECT gets most recent sessions for each unique session_user_id
* Outer SELECT gets data for them * Outer SELECT gets data for them
*/ */
$sql_select = 'SELECT s1.session_page, s1.session_user_id, s1.session_time AS recent_time $sql_select = 'SELECT s1.session_page, s1.session_user_id, s1.session_time AS recent_time
@ -969,8 +969,7 @@ class session
INNER JOIN ( INNER JOIN (
SELECT session_user_id, MAX(session_time) AS recent_time SELECT session_user_id, MAX(session_time) AS recent_time
FROM ' . SESSIONS_TABLE . ' FROM ' . SESSIONS_TABLE . '
WHERE session_time < ' . ($this->time_now - (int) $config['session_length']) . ' WHERE session_user_id <> ' . ANONYMOUS . '
AND session_user_id <> ' . ANONYMOUS . '
GROUP BY session_user_id GROUP BY session_user_id
) AS s2 ) AS s2
ON s1.session_user_id = s2.session_user_id ON s1.session_user_id = s2.session_user_id