Ejemplo n.º 1
0
 /**
  * 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;
     }
 }
Ejemplo n.º 2
0
 /**
  * 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();
     }
 }