/** * Prepare view * * @param string $template * @return void */ protected function prepareView($template) { $this->view = new View($this->viewPath . '/' . $template); $this->view->application_title = $this->application->config()['application_title']; if (isset($this->sess->failed)) { $this->view->failed = true; } if (isset($this->sess->expired)) { $this->view->expired = true; } if (isset($this->sess->saved)) { $this->view->saved = true; } if (isset($this->sess->removed)) { $this->view->removed = true; } if (isset($this->sess->user)) { $this->services['nav.top']->setRole($this->services['acl']->getRole($this->sess->user->role)); $this->services['nav.top']->returnFalse(true); if ($this->services->isAvailable('nav.fluid')) { $this->services['nav.fluid']->setRole($this->services['acl']->getRole($this->sess->user->role)); $this->services['nav.fluid']->returnFalse(true); } if ($this->services->isAvailable('nav.static')) { $this->services['nav.static']->setRole($this->services['acl']->getRole($this->sess->user->role)); $this->services['nav.static']->returnFalse(true); } $this->view->popNav = $this->services['nav.top']; $this->view->acl = $this->services['acl']; $this->view->user = $this->sess->user; $cookie = \Pop\Cookie\Cookie::getInstance(['path' => '/']); $this->view->windowWidth = $cookie['pop_current_width']; } }
/** * 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); }