/** * * @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 }