Exemple #1
0
 public function indexAction()
 {
     $form = new Syj_Form_Newpwd(array('name' => 'newpwdform'));
     $request = $this->getRequest();
     $formData = $request->getPost();
     $this->view->form = $form;
     $httprequest = $request->isXmlHttpRequest();
     if (!$httprequest) {
         $this->_jsLocaleStrings();
     }
     if (empty($formData)) {
         $loggeduser = $this->_helper->SyjUserManager->current();
         if ($loggeduser) {
             $form->newpwd_email->setValue($loggeduser->email)->setAttrib('readonly', 'true');
         }
     }
     if (empty($formData) or !$form->isValid($formData)) {
         if ($httprequest) {
             throw new Syj_Exception_Request();
         } else {
             return;
         }
     }
     /* form has been filled */
     $userMapper = new Syj_Model_UserMapper();
     $user = new Syj_Model_User();
     if ($userMapper->findByEmail($formData['newpwd_email'], $user)) {
         // if no user exist with posted email, pretend everything went correct
         $loggeduser = isset($loggeduser) ? $loggeduser : $this->_helper->SyjUserManager->current();
         if ($loggeduser and $loggeduser != $user) {
             throw new Syj_Exception_Request();
         }
         $pending = new Syj_Model_Pending_ResetPassword();
         $pending->setUser($user);
         if (!$pending->notify()) {
             throw new Zend_Exception();
         }
     }
     if ($httprequest) {
         $api = $this->_helper->SyjApi->setCode(200);
     } else {
         $this->_helper->ViewRenderer->setViewScriptPathSpec(':controller/success.:suffix');
     }
 }