Пример #1
0
 /**
  *
  * @return unknown_type
  */
 public function resetpasswordAction()
 {
     $resetValue = $this->getRequest()->getParam('value');
     $resetEmail = $this->_getParam('email');
     $userModel = new User_Model_DbTable_User();
     $reset = new User_Model_DbTable_Reset();
     $resetResult = $reset->uniqueValue($resetEmail, $resetValue);
     if (!$resetResult) {
         $this->_helper->FlashMessenger->addMessage(array('error' => 'You have already used this one-time reset link.'));
         $this->_redirect('/');
     } else {
         $resetId = $reset->getResetId($resetEmail, $resetValue);
         $form = new User_Form_User_Resetpassword();
         $this->view->form = $form;
         if ($this->getRequest()->isPost()) {
             $formData = $this->getRequest()->getPost();
             if ($form->isValid($formData)) {
                 $email = $form->getValue('email');
                 $password = $form->getValue('password');
                 //update the password in user table
                 $data['password'] = md5($password);
                 $isupdated = $userModel->updateUserByEmail($data, $resetEmail);
                 if ($isupdated) {
                     //update the reset value in reset table
                     $resetData['reset_flag'] = 0;
                     $reset->update($resetData, array('reset_id' => $resetId));
                     $this->_helper->FlashMessenger->addMessage(array('message' => 'Your password has been changed sucessfully.'));
                 } else {
                     $this->_helper->FlashMessenger->addMessage(array('error' => 'Sorry some error occured please try again later.'));
                 }
                 $this->_redirect('/');
             }
         } else {
             $form->populate(array('email' => $resetEmail));
         }
     }
     //end of outer if
 }