X-Git-Url: https://git.immae.eu/?a=blobdiff_plain;f=application%2FLoginManager.php;h=347fb3b987b53d6bec634cef9ad454e107e29577;hb=c7721487b2459e6760cae9d6292b7d39c306d3d6;hp=d81c6c05811e178e747a097cb46a5ad2aa36808c;hpb=1b28c66cc77b59f716aa47e6207142a7f86c2c2d;p=github%2Fshaarli%2FShaarli.git diff --git a/application/LoginManager.php b/application/LoginManager.php index d81c6c05..347fb3b9 100644 --- a/application/LoginManager.php +++ b/application/LoginManager.php @@ -1,6 +1,8 @@ sessionManager->storeLoginInfo($server); + $this->sessionManager->storeLoginInfo($clientIpId); $this->isLoggedIn = true; } - // Logout when: - // - the session does not exist on the server side - // - the session has expired - // - the client IP address has changed - if (empty($session['uid']) - || ($this->configManager->get('security.session_protection_disabled') === false - && $session['ip'] != client_ip_id($server)) - || time() >= $session['expires_on'] + if ($this->sessionManager->hasSessionExpired() + || $this->sessionManager->hasClientIpChanged($clientIpId) ) { $this->sessionManager->logout($webPath); $this->isLoggedIn = false; return; } - // Extend session validity - if (! empty($session['longlastingsession'])) { - // "Stay signed in" is enabled - $session['expires_on'] = time() + $session['longlastingsession']; - } else { - $session['expires_on'] = time() + SessionManager::$INACTIVITY_TIMEOUT; - } + $this->sessionManager->extendSession(); } /** @@ -129,7 +121,8 @@ class LoginManager return false; } - $this->sessionManager->storeLoginInfo($server); + $clientIpId = client_ip_id($server); + $this->sessionManager->storeLoginInfo($clientIpId); logm( $this->configManager->get('resource.log'), $server['REMOTE_ADDR'],