Exemple #1
0
 public function reactiveAction()
 {
     $username = $this->request->get('username');
     if ($this->request->isAjax()) {
         if (!$username) {
             return $this->showErrorMessageAsJson(400, 'ERR_USER_REACTIVE_NO_USERNAME_INPUT');
         }
         $user = new Models\Register();
         try {
             $user->sendVerificationEmail($username);
             return $this->showResponseAsJson('SUCCESS_USER_ACTIVE_MAIL_SENT');
         } catch (\Exception $e) {
             return $this->showExceptionAsJson($e, $user->getMessages());
         }
     } else {
         if (!$username) {
             return $this->redirectHandler($this->getDI()->getConfig()->user->resetFailedRedirectUri);
         }
         $user = new Models\Register();
         try {
             $user->sendVerificationEmail($username);
             $this->flashSession->success('SUCCESS_USER_ACTIVE_MAIL_SENT');
             return $this->redirectHandler($this->getDI()->getConfig()->user->resetSuccessRedirectUri);
         } catch (\Exception $e) {
             $this->showException($e, $user->getMessages());
             return $this->redirectHandler($this->getDI()->getConfig()->user->resetFailedRedirectUri);
         }
     }
 }
 public function forgotAction()
 {
     if (!$this->request->isPost()) {
         return;
     }
     $email = $this->request->getPost('identify');
     if ($this->request->isAjax() || $this->request->get('ajax')) {
         if (!$email || !filter_var($email, FILTER_VALIDATE_EMAIL)) {
             return $this->showErrorMessageAsJson(401, 'ERR_EMAIL_FORMAT_NOT_CORRECT');
         }
         $user = new Models\ResetPassword();
         $user->assign(array('email' => $email));
         try {
             $user->requestResetPassword();
             return $this->showResponseAsJson('SUCCESS_USER_RESET_MAIL_SENT');
         } catch (\Exception $e) {
             // 邮箱未激活,直接发送验证邮件
             if ($e->getCode() == 1000) {
                 $registerUser = new Models\Register();
                 $registerUser->sendVerificationEmail($email);
             }
             return $this->showExceptionAsJson($e, $user->getMessages());
         }
     } else {
         if (!$email || !filter_var($email, FILTER_VALIDATE_EMAIL)) {
             return $this->redirectHandler($this->getDI()->getConfig()->user->resetFailedRedirectUri);
         }
         $user = new Models\ResetPassword();
         $user->assign(array('email' => $email));
         try {
             $user->requestResetPassword();
             $this->flashSession->success('SUCCESS_USER_RESET_MAIL_SENT');
         } catch (\Exception $e) {
             $this->showException($e, $user->getMessages());
             return $this->redirectHandler($this->getDI()->getConfig()->user->resetFailedRedirectUri);
         }
         return $this->redirectHandler($this->getDI()->getConfig()->user->resetSuccessRedirectUri);
     }
 }