/** * Refresh user data stored in the session from the database. * Returns null if no user is currently logged in. * * @return mixed */ public function refresh_session() { $user = $this->_session->get($this->_config['session_key']); if (!$user) { return null; } else { if ($this->_session->get('time') <= time() - \Phalcon\DI::getDefault()->getShared('config')->session->options['lifetime']) { // Get user's data from db $user = Users::findFirstById($user->id); $roles = $this->get_roles($user); // Regenerate session_id session_regenerate_id(TRUE); if (!session_id()) { if ($this->_session->isStarted()) { $this->_session->destroy(); } $this->_session->start(); session_regenerate_id(TRUE); } // Store user in session $this->_session->set($this->_config['session_key'], $user); $this->_session->set('time', time()); // Store user's roles in session if ($this->_config['session_roles']) { $this->_session->set($this->_config['session_roles'], $roles); } // add session to DB $this->sessionDb($user->id); } session_write_close(); return $user; } }
/** * Resend activation email */ public function resendAction() { if ($this->auth->logged_in()) { // user must be logged in to use this $user_id = $this->auth->get_user()->id; $user = Users::findFirstById($user_id); $this->view->setVar('user', $user); if ($this->request->isPost() == TRUE) { if ($this->request->getPost('email')) { $validation = new \Baseapp\Extension\Validation(); $validation->add('email', new \Phalcon\Validation\Validator\PresenceOf()); $validation->add('email', new \Phalcon\Validation\Validator\Email()); $validation->add('email', new \Baseapp\Extension\Uniqueness(array('model' => '\\Baseapp\\Models\\Users', 'message' => 'That email address is already in use!'))); $validation->setLabels(array('email' => 'Email')); $messages = $validation->validate($_POST); if (count($messages)) { $ms = FALSE; foreach ($validation->getMessages() as $msg) { $ms .= $msg->getMessage() . '<br>'; } $this->flashSession->error('<i class="close icon"></i>' . '<div class="ui header">' . __('Error') . '!</div> ' . '<div class="content">' . $ms . '</div>'); } else { $email = $this->request->getPost('email', 'email'); } } else { $email = FALSE; } if (!isset($messages)) { $resend = $user->resend($user_id, $email); if ($resend == TRUE) { $this->flashSession->notice('<i class="close icon"></i>' . '<div class="ui header">' . __('Check your inbox!') . '!</div> ' . '<div class="content">An activation email has been sent to you.</div>'); } } } else { $this->tag->setTitle(__('Activate')); } } else { return $this->notFoundAction(); } }