/** * Check for the user session * * @param Application $application * @return void */ public static function check(Application $application) { $sess = $application->getService('session'); $action = $application->router()->getRouteMatch()->getAction(); if (isset($sess->user) && isset($sess->user->sess_id) && !isset(Table\UserSessions::findById($sess->user->sess_id)->id)) { $user = new Model\User(); $user->logout($sess); unset($sess->user); $sess->setRequestValue('expired', true); Response::redirect('/login'); exit; } else { if (isset($sess->user) && ($action == 'login' || $action == 'forgot' || $action == 'verify')) { Response::redirect('/'); exit; } else { if (!isset($sess->user) && $action != 'login' && $action != 'forgot' && $action != 'verify') { Response::redirect('/login'); exit; } } } }
/** * Remove sessions * * @param array $rm * @return void */ public function remove(array $rm) { foreach ($rm as $id) { $session = Table\UserSessions::findById((int) $id); if (isset($session->id)) { $session->delete(); } } }