/**
  * 
  * Resets password and send username and new password to user's email address
  */
 public function recoverAction()
 {
     // reset password
     $request = $this->getRequest();
     $form = new Application_Form_Recover();
     if ($request->isPost()) {
         if ($form->isValid($request->getPost())) {
             $email = $form->getValues('email');
             $userMapper = new Application_Model_UserMapper();
             $writer = new Zend_Log_Writer_Stream(APPLICATION_PATH . "/../tmp/log.txt");
             $logger = new Zend_Log($writer);
             try {
                 $user = $userMapper->fetchUserByEmail($email);
                 $password = $this->generatePassword();
                 $user->setPassword($password);
                 $userMapper->save($user);
                 //$this->view->email = var_dump($user);
                 $this->view->msg = "Your details have been sent.";
                 $this->sendRecoverEmail($user);
                 $logger->log("Recover email sent.", Zend_Log::INFO);
             } catch (Exception $e) {
                 // @TODO display and log error
                 $this->view->error = 'An error occurred: ' . $e->getMessage();
                 $logger->log("Recover failed." . $e->getMessage(), Zend_Log::EMERG);
             }
             $form = null;
         }
     }
     $this->view->form = $form;
 }