示例#1
0
 /**
  * Recover password (ajax)
  * @param AjaxString $login Login or e-mail
  * @param AjaxString $captcha
  * @throws Exception
  */
 public function indexAjaxAction(AjaxString $login, AjaxString $captcha)
 {
     // show recover form
     if (is_null($login)) {
         $this->root->appendChild($this->xml->createElement('recover'));
         Ajaxer::display(View::render($this->xml, 'auth-ajax', true));
         return;
     }
     $error = false;
     // login's empty
     if ($login->val() === '') {
         Ajaxer::required('login');
         $error = true;
     }
     if (!$captcha or $captcha->val() == '') {
         Ajaxer::required('captcha');
         $error = true;
     }
     /** @var \Difra\Plugins\Capcha $captchaClass */
     $captchaClass = \Difra\Plugger::getClass('captcha');
     if (!$captchaClass::getInstance()->verifyKey($captcha->val())) {
         Ajaxer::invalid('captcha');
         $error = true;
     }
     if ($error) {
         return;
     }
     // recover
     try {
         Recover::send($login->val());
         Ajaxer::close();
         Ajaxer::notify(Locales::get('auth/login/recovered'));
     } catch (Exception $ex) {
         Ajaxer::status('email', Locales::get('auth/login/' . $ex->getMessage()), 'problem');
     }
 }
示例#2
0
 /**
  * Validate captcha
  * @return string
  */
 private function verifyCaptcha()
 {
     /** @var \Difra\Plugins\Capcha $captcha */
     $captcha = Plugger::getClass('captcha');
     if (!$this->ignoreEmpty) {
         if (!$this->captcha) {
             return $this->failures['capcha'] = self::REGISTER_CAPTCHA_EMPTY;
         } elseif (!$captcha::getInstance()->verifyKey($this->captcha)) {
             return $this->failures['capcha'] = self::REGISTER_CAPTCHA_INVALID;
         } else {
             return $this->successful['capcha'] = self::REGISTER_CAPTCHA_OK;
         }
     } elseif ($this->captcha !== '') {
         if (!$captcha::getInstance()->verifyKey($this->captcha)) {
             return $this->failures['capcha'] = self::REGISTER_CAPTCHA_INVALID;
         }
     }
     return null;
 }