예제 #1
0
 public function forgotpassAction()
 {
     $oForm = new Form_ForgotPass('/login/forgotpass/');
     $bSubmitted = false;
     if ($this->_request->isPost()) {
         if ($oForm->isValid($this->_request->getPost())) {
             $oUser = new Users();
             $oPersonalData = $oUser->getPersonalDataFromEmail($this->_request->getPost('email_add'));
             $oAccountData = $oUser->getAccountDataFromUserId($oPersonalData->id);
             //generate random password
             $sNewPassword = substr(md5(rand()), 0, 7);
             $oUser->updatePasswordData($oAccountData->id, $sNewPassword);
             //send email for reset
             $oEmail = new Emails();
             $oEmail->mailReset($oPersonalData['email_add'], $oAccountData['username'], $sNewPassword);
             $bSubmitted = true;
         } else {
             $auth = Zend_Auth::getInstance();
             $auth->clearIdentity();
             $oForm->populate($this->_request->getPost());
         }
     }
     if (!$bSubmitted) {
         $this->view->form = $oForm;
     } else {
         $this->view->form = "<h1>You have successfully resetted your password. Please check your email.</h1>";
     }
 }