/** * Action: sign out */ public function action_out() { // Remove from online list Model_User_Online::factory(Session::instance()->id())->delete(); // Logout visitor Visitor::instance()->logout(); Request::back(); }
/** * Update current online user. * * @static * @param Model_User $user */ public static function update($user) { $session_id = Session::instance()->id(); $online = Model_User_Online::factory($session_id); if (!$online->loaded() && $session_id) { $online->id = $session_id; } $online->user_id = $user ? $user->id : null; $online->last_activity = time(); try { $online->save(); } catch (Validation_Exception $e) { } catch (Database_Exception $e) { // Might happen if no session id set } }