示例#1
0
 public function forgotPasswordAction()
 {
     $form = new ForgotPasswordForm();
     if ($this->request->isPost()) {
         if ($form->isValid($this->request->getPost()) == false) {
             foreach ($form->getMessages() as $message) {
                 $this->flash->error($message);
             }
         } else {
             $user = Users::findFirstByEmail($this->request->getPost('email'));
             if (!$user) {
                 $this->flash->success('There is no account associated to this email');
             } else {
                 $resetPassword = new ResetPasswords();
                 $resetPassword->usersId = $user->id;
                 if ($resetPassword->save()) {
                     $this->flash->success('Success! Please check your messages for an email reset password');
                 } else {
                     foreach ($resetPassword->getMessages() as $message) {
                         $this->flash->error($message);
                     }
                 }
             }
         }
     }
     $this->view->form = $form;
 }
 public function resetPasswordAction()
 {
     $code = $this->dispatcher->getParam("code");
     $resetPassword = ResetPasswords::findFirstByCode($code);
     if (!$resetPassword) {
         return $this->dispatcher->formward(array('controller' => 'index', 'action' => 'index'));
     }
     if ($resetPassword->reset != 'N') {
         return $this->dispatcher->forward(array('controller' => 'session', 'action' => 'login'));
     }
     $resetPassword->reset = 'Y';
     if (!$resetPassword->save()) {
         foreach ($resetPassword->getMessages() as $message) {
             $this->flash->error($message);
         }
         return $this->dispatcher->forward(array('controller' => 'index', 'action' => 'index'));
     }
     $this->auth->authUserById($resetPassword->usersId);
     $this->flash->success('Please reset your password');
     return $this->dispatcher->forward(array('controller' => 'users', 'action' => 'changePassword'));
 }