diff --git a/include/class.ostsession.php b/include/class.ostsession.php index 94df679d2792046fda2b7373e598851f147a501b..b300f16ec7a826443e3e1fb52530a7c88bd6486b 100644 --- a/include/class.ostsession.php +++ b/include/class.ostsession.php @@ -69,6 +69,23 @@ class osTicketSession { $this->destroy($oldId); } + static function destroyCookie() { + setcookie(session_name(), 'deleted', 1, + ini_get('session.cookie_path'), + ini_get('session.cookie_domain'), + ini_get('session.cookie_secure'), + ini_get('session.cookie_httponly')); + } + + static function renewCookie($baseTime=false, $window=false) { + setcookie(session_name(), session_id(), + ($baseTime ?: time()) + ($window ?: SESSION_TTL), + ini_get('session.cookie_path'), + ini_get('session.cookie_domain'), + ini_get('session.cookie_secure'), + ini_get('session.cookie_httponly')); + } + function open($save_path, $session_name){ return (true); } diff --git a/include/class.usersession.php b/include/class.usersession.php index 250f6c05fceb0a3be0a5755458162e74775517e5..9447c109f784af9273642943158019f24e2d07b4 100644 --- a/include/class.usersession.php +++ b/include/class.usersession.php @@ -143,12 +143,7 @@ class ClientSession extends EndUser { $this->token = $this->getSessionToken(); //TODO: separate expire time from hash?? - setcookie(session_name(), session_id(), - ($time ?: time()) + ($cfg->getClientTimeout() ?: 604800), - ini_get('session.cookie_path'), - ini_get('session.cookie_domain'), - ini_get('session.cookie_secure'), - ini_get('session.cookie_httponly')); + osTicketSession::renewCookie($time, $cfg->getClientSessionTimeout()); } function getSession() { @@ -195,12 +190,7 @@ class StaffSession extends Staff { $this->token=$this->getSessionToken(); - setcookie(session_name(), session_id(), - ($time ?: time()) + ($cfg->getStaffTimeout() ?: 604800), - ini_get('session.cookie_path'), - ini_get('session.cookie_domain'), - ini_get('session.cookie_secure'), - ini_get('session.cookie_httponly')); + osTicketSession::renewCookie($time, $cfg->getStaffSessionTimeout()); } function getSession() { diff --git a/logout.php b/logout.php index 11e0e11fbf02c45ee3666fabcd9805cd90dc1238..9fb8037acd458c9998c126d6d17ec533fbac7b57 100644 --- a/logout.php +++ b/logout.php @@ -19,11 +19,7 @@ require('client.inc.php'); if ($thisclient && $_GET['auth'] && $ost->validateLinkToken($_GET['auth'])) $thisclient->logOut(); -setcookie(session_name(), 'deleted', 1, - ini_get('session.cookie_path'), - ini_get('session.cookie_domain'), - ini_get('session.cookie_secure'), - ini_get('session.cookie_httponly')); +osTicketSession::destroyCookie(); Http::redirect('index.php'); ?> diff --git a/scp/logout.php b/scp/logout.php index f51d9ed8aeb4b5f37aa5af5acac39107b3a380b8..1007d985c0bb8509514f42d55d91103571b3f965 100644 --- a/scp/logout.php +++ b/scp/logout.php @@ -31,11 +31,7 @@ TicketLock::removeStaffLocks($thisstaff->getId()); session_unset(); session_destroy(); -setcookie(session_name(), 'deleted', 1, - ini_get('session.cookie_path'), - ini_get('session.cookie_domain'), - ini_get('session.cookie_secure'), - ini_get('session.cookie_httponly')); +osTicketSession::destroyCookie(); @header('Location: login.php'); require('login.php');