/** * Remove action method * * @return void */ public function remove() { $sessId = $this->getSessionId(); $session = new Model\Session(); $session->remove([$sessId]); $this->console->write(); $this->console->write($this->console->colorize('Session Removed!', Console::BOLD_RED)); }
protected function updateSession() { $this->session_entry = $this->getSessionEntry(); if ($this->session_entry) { $lifetime = $this->token_handler->getTokenLifetime() + $this->options['update_gap']; $expired_at = (new \DateTime())->modify('+' . $lifetime . ' second'); $this->session_entry->setExpiredAt($expired_at); $this->session_entry->save(); } $this->updateSessionData(); }
/** * Logout a user * * @param \Pop\Session\Session $sess * @return void */ public function logout($sess) { $user = Table\Users::findById($sess->user->id); $session = new Session(); $session->clear($sess->user->sess_id, $sess->user->id, $sess->getId()); $cookie = Cookie::getInstance(['path' => '/']); $cookie->delete('pop_session'); $cookie->delete('pop_session_timeout'); $cookie->delete('pop_timeout_warning'); $cookie->delete('pop_current_width'); if (isset($user->id)) { $user->last_login = date('Y-m-d H:i:s'); $user->last_ip = isset($_SERVER['REMOTE_ADDR']) ? $_SERVER['REMOTE_ADDR'] : null; $user->last_ua = isset($_SERVER['HTTP_USER_AGENT']) ? $_SERVER['HTTP_USER_AGENT'] : null; $user->save(); } unset($sess->user); }
/** * Login action method * * @return void */ public function login() { $this->prepareView('login.phtml'); $this->view->title = 'Please Login'; $this->view->form = new Form\Login($this->application->config()['forms']['App\\Form\\Login']); if ($this->request->isPost()) { $auth = new Auth\Auth(new Auth\Adapter\Table('App\\Table\\Users', Auth\Auth::ENCRYPT_BCRYPT)); $this->view->form->addFilter('strip_tags')->addFilter('htmlentities', [ENT_QUOTES, 'UTF-8'])->setFieldValues($this->request->getPost(), $auth); $user = new Model\User(); $session = new Model\Session(); if ($this->view->form->isValid() && $session->validate($auth->adapter()->getUser(), $this->application->config())) { $user->login($auth->adapter()->getUser(), $this->sess, $this->application->config()); $this->redirect('/'); } else { if (null !== $auth->adapter()->getUser() && null !== $auth->adapter()->getUser()->id) { $user->failed($auth->adapter()->getUser()); if ($this->view->form->isValid()) { $this->sess->setRequestValue('failed', true); $this->redirect('/login'); } } } } $this->send(); }
/** * Remove action method * * @return void */ public function remove() { if ($this->request->isPost()) { $post = $this->request->getPost(); $session = new Model\Session(); if (isset($post['clear_all_sessions']) && (int) $post['clear_all_sessions'] == 1) { $session->clearSessions($this->sess->user->sess_id); $this->sess->setRequestValue('removed', true); } else { if (isset($post['clear_sessions_by']) && $post['clear_sessions_by'] != '----') { $session->clearSessions($this->sess->user->sess_id, $post['clear_sessions_by']); $this->sess->setRequestValue('removed', true); } else { if (isset($post['rm_sessions'])) { $session->remove($post['rm_sessions']); $this->sess->setRequestValue('removed', true); } } } } $this->redirect('/sessions'); }