From e9ce41d262fb36e33953a086dfc0efd2609c98e0 Mon Sep 17 00:00:00 2001 From: maXi <66113913+rfcmaXi@users.noreply.github.com> Date: Mon, 17 Aug 2026 14:47:21 +0200 Subject: [PATCH 1/2] Enhance sorting logic in SessionsDataRetrieval Added sorting logic IP address --- Management/SessionsDataRetrieval.php | 12 ++++++++++++ 1 file changed, 12 insertions(+) diff --git a/Management/SessionsDataRetrieval.php b/Management/SessionsDataRetrieval.php index 14a018e..5831f39 100644 --- a/Management/SessionsDataRetrieval.php +++ b/Management/SessionsDataRetrieval.php @@ -184,6 +184,7 @@ private function getRelativPosition( array $user_b_values, string $direction ): int { + // Handle sorting for "Logged In" status if ($order_key === ManagementGUI::COLUMN_LOGGED_IN) { $user_a_session_active = $this->user_session_repo ->getSessionForUserId($user_a_values['usr_id']) @@ -204,6 +205,17 @@ private function getRelativPosition( return -1; } + // Handle sorting for IP address + if ($order_key === ManagementGUI::COLUMN_LAST_LOGIN_IP) { + $ip_a = $this->user_session_repo->getSessionForUserId($user_a_values['usr_id'])->getLoginIp(); + $ip_b = $this->user_session_repo->getSessionForUserId($user_b_values['usr_id'])->getLoginIp(); + if ($direction === 'ASC') { + return strnatcasecmp($ip_a, $ip_b); + } + return strnatcasecmp($ip_b, $ip_a); + } + + // Standard alphabetical sorting for all other basic user fields $value_a = $user_a_values[$order_key] ?? ''; $value_b = $user_b_values[$order_key] ?? ''; if ($direction === 'ASC') { From c03cbc131d657ff1d721452ce0c1ac6e89960c43 Mon Sep 17 00:00:00 2001 From: maXi <66113913+rfcmaXi@users.noreply.github.com> Date: Mon, 17 Aug 2026 14:58:02 +0200 Subject: [PATCH 2/2] Fix session comparison logic for user sessions --- Management/SessionsDataRetrieval.php | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/Management/SessionsDataRetrieval.php b/Management/SessionsDataRetrieval.php index 5831f39..f761c52 100644 --- a/Management/SessionsDataRetrieval.php +++ b/Management/SessionsDataRetrieval.php @@ -193,7 +193,7 @@ private function getRelativPosition( ->getSessionForUserId($user_b_values['usr_id']) ->isSessionActive(); - if ($user_a_session_active === $user_b_values) { + if ($user_a_session_active === $user_b_session_active) { return 0; }