/**
  * 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));
 }
Example #2
0
 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();
 }
Example #3
0
 /**
  * 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);
 }
Example #4
0
 /**
  * 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();
 }
Example #5
0
 /**
  * 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');
 }