/** * Remove a user session * * @param array $post * @return void */ public function remove(array $post) { if (isset($post['rm_sessions'])) { foreach ($post['rm_sessions'] as $id) { $session = Table\UserSessions::findById((int) $id); if (isset($session->id)) { $session->delete(); } } } }
/** * Record logout/session end * * @param \Pop\Application $application * @return void */ public static function logout(Application $application) { $sess = $application->getService('session'); $userUri = APP_URI; $key = 'user'; if (isset($sess->member) && $application->isRegistered('phire-members')) { $key = 'member'; $memberAdmin = new \Phire\Members\Model\MembersAdmin(); $memberAdmin->getByRoleId($sess->member->role_id); if (isset($memberAdmin->uri)) { $userUri = $memberAdmin->uri; } } if ($application->router()->getRouteMatch()->getRoute() == $userUri . '/logout') { $path = BASE_PATH . APP_URI; if ($path == '') { $path = '/'; } $cookie = Cookie::getInstance(['path' => $path]); $cookie->delete('phire_session_timeout'); $cookie->delete('phire_session_path'); $cookie->delete('phire_session_warning_dismiss'); $sess = $application->getService('session'); if (isset($sess[$key]) && isset($sess[$key]->session)) { $session = Table\UserSessions::findById((int) $sess[$key]->session->id); if (isset($session->id)) { $session->delete(); } } } }