Ejemplo n.º 1
0
 /**
  * Emails user URL to change password
  *
  * @return void
  */
 public function forgotPasswordProcessAction()
 {
     if ($this->getRequest()->isPost()) {
         $email = $this->getRequest()->getPost('email');
         //recovery only active for three days
         $date = date('YYYY-MM-DD');
         $date = strtotime('+3 day', strtotime($date));
         $date = date('YYYY-MM-DD', $date);
         $user = new Model_DbTable_Users();
         $result = $user->emailExists($email);
         if ($result != false) {
             $guid = uniqid();
             $reset = new Model_DbTable_PasswordReset();
             $result = $reset->insert(array('guid' => $guid, 'id' => $result, 'expiry_date' => $date));
             if (!is_array($result)) {
                 $html = "<p>To reset your password, click <a href=\"" . $this->_baseURL . "/resetpass/id/{$guid}\">here</a>.</p>";
                 $text = "Go to the following link to reset your password " . $this->_baseURL . "/resetpass/id/{$guid}\n";
                 sendMail($username, $email, $html, $text, 'Password Reset');
                 $session = new Zend_Session_Namespace();
                 $session->flashMessengerClass = 'flashMessagesGreen';
                 $this->_helper->flashMessenger->addMessage('An email has been sent to you with instructions on how to reset your password.');
             }
         } else {
             //return with error
             $session = new Zend_Session_Namespace();
             $session->flashMessengerClass = 'flashMessagesRed';
             $this->_helper->flashMessenger->addMessage('We have no record of that email address.');
         }
     }
     $this->_redirect->gotoRoute(array(), 'forgot-password');
 }