Ejemplo n.º 1
0
 public function forgotpasswordreAction()
 {
     $this->getHelper("layout")->setLayout('layout_no_sidebar_no_menu');
     //Page is comming from links
     if (!$this->getRequest()->isPost()) {
         $messages = 'Access denied.';
         $this->_forward('error', 'error', 'default', array('message' => $messages));
         return;
     }
     $session = new Zend_Session_Namespace();
     //Session Expired redirect to login page
     if (!isset($session) || !isset($session->forgot_pwd_login)) {
         $this->_forward('login', null, null, array('source' => 'forgotpasswordre'));
         return;
     }
     $login = $session->forgot_pwd_login;
     $form = new Application_Form_ForgotPwdRe();
     $form->setAction('forgotpasswordre');
     $form->setMethod('post');
     $form->setDecorators(array('FormElements', array('HtmlTag', array('tag' => 'dl', 'class' => 'formUl')), 'Form'));
     $this->view->form = $form;
     /*
     It is forwarded from forgotpasswordsqAction dispatch it now
     */
     if ($this->getRequest()->getParam('source') == 'forgotpasswordsq') {
         return;
     }
     //Validate the form now
     if (!$form->isValid($this->getRequest()->getPost())) {
         return;
     }
     $newPassWord = $this->getRequest()->getPost('newPassWord');
     $newPassWordRe = $this->getRequest()->getPost('newPassWordRe');
     if (!($newPassWord == $newPassWordRe)) {
         $form->getElement('newPassWordRe')->addError('Password does not match');
         return;
     }
     //Reset the password now
     /*
     Check if the user exists
     */
     $userTbl = new Application_Model_DbTable_Mstuser();
     $user = $userTbl->findByLogin($login);
     if (!$user) {
         $messages = 'Error occured.';
         $this->_forward('error', 'error', 'default', array('message' => $messages));
         return;
     }
     $userId = $user->id;
     $reset = $userTbl->resetPassword($login, $newPassWord);
     if ($reset['result'] == 'ok') {
         $messages = 'Successfully reset the password.';
         $this->view->messages = $messages;
         $this->_helper->viewRenderer('forgotpasswordrt');
         //Log
         Rgm_UserServices::log($userId, 'mst_user', 'Successfully reset password through forgot password method for user id = ' . $login, '');
         unset($session->forgot_pwd_login);
     } else {
         $messages = 'Error occured while restting the password. Please try again.';
         $this->view->messages = $messages;
         $this->_helper->viewRenderer('forgotpasswordrt');
         //Log
         Rgm_UserServices::log($userId, 'mst_user', 'Failed while tryed to reset password through forgot password method for user id = ' . $login, '');
         unset($session->forgot_pwd_login);
     }
 }