Ejemplo n.º 1
0
 private function _validCaptcha($captchaReponse)
 {
     $recaptcha = new \ZendService\ReCaptcha\ReCaptcha($this->_getServConfig()['google']['publicKey'], $this->_getServConfig()['google']['privateKey']);
     if (empty($captchaReponse)) {
         $this->flashMessenger()->addMessage($this->_getServTranslator()->translate("Veuillez valider votre captcha."), 'error');
         return false;
     }
     $result = $recaptcha->verify($captchaReponse);
     if (!$result->isValid()) {
         $this->flashMessenger()->addMessage($this->_getServTranslator()->translate("Veuillez verifier votre captcha."), 'error');
         return false;
     } else {
         return true;
     }
 }
Ejemplo n.º 2
0
 /**
  * Construct the recaptcha helper
  *
  * @param ServiceManager $sm Service manager.
  *
  * @return \VuFind\Record\Loader
  */
 public static function getRecaptcha(ServiceManager $sm)
 {
     $config = $sm->get('VuFind\\Config')->get('config');
     $recaptcha = new \ZendService\ReCaptcha\ReCaptcha(isset($config->Captcha->publicKey) ? $config->Captcha->publicKey : '', isset($config->Captcha->privateKey) ? $config->Captcha->privateKey : '');
     if (isset($config->Captcha->theme)) {
         $recaptcha->setOption('theme', $config->Captcha->theme);
         $recaptcha->setOption('custom_theme_widget', 'custom_recaptcha_widget');
         $translator = $sm->get('VuFind\\Translator');
         $recaptcha->setOption('custom_translations', ['audio_challenge' => $translator->translate('recaptcha_audio_challenge'), 'cant_hear_this' => $translator->translate('recaptcha_cant_hear_this'), 'help_btn' => $translator->translate('recaptcha_help_btn'), 'image_alt_text' => $translator->translate('recaptcha_image_alt_text'), 'incorrect_try_again' => $translator->translate('recaptcha_incorrect_try_again'), 'instructions_audio' => $translator->translate('recaptcha_instructions_audio'), 'instructions_visual' => $translator->translate('recaptcha_instructions_visual'), 'play_again' => $translator->translate('recaptcha_play_again'), 'privacy_and_terms' => $translator->translate('recaptcha_privacy_and_terms'), 'refresh_btn' => $translator->translate('recaptcha_refresh_btn'), 'visual_challenge' => $translator->translate('recaptcha_visual_challenge')]);
     }
     return $recaptcha;
 }
Ejemplo n.º 3
0
 /**
  * Register new user
  */
 public function registerAction()
 {
     // if the user is logged in, we don't need to register
     if ($this->zfcUserAuthentication()->hasIdentity()) {
         // redirect to the login redirect route
         return $this->redirect()->toRoute($this->options->getLoginRedirectRoute());
     }
     // if registration is disabled
     if (!$this->options->getEnableRegistration()) {
         return array('enableRegistration' => false);
     }
     $request = $this->getRequest();
     $service = $this->userService;
     $form = $this->registerForm;
     if ($this->options->getUseRedirectParameterIfPresent() && $request->getQuery()->get('redirect')) {
         $redirect = $request->getQuery()->get('redirect');
     } else {
         $redirect = false;
     }
     $redirectUrl = $this->url()->fromRoute(static::ROUTE_REGISTER) . ($redirect ? '?redirect=' . rawurlencode($redirect) : '');
     $prg = $this->prg($redirectUrl, true);
     if ($prg instanceof Response) {
         return $prg;
     } elseif ($prg === false) {
         return array('registerForm' => $form, 'enableRegistration' => $this->options->getEnableRegistration(), 'redirect' => $redirect);
     }
     $post = $prg;
     $user = $service->register($post);
     $redirect = isset($prg['redirect']) ? $prg['redirect'] : null;
     // THS surcouche recaptcha
     $recaptcha = new \ZendService\ReCaptcha\ReCaptcha($this->getServiceLocator()->get('config')['google']['publicKey'], $this->getServiceLocator()->get('config')['google']['privateKey']);
     if (empty($prg['g-recaptcha-response'])) {
         $this->flashMessenger()->addMessage($this->_getServTranslator()->translate("Veuillez valider votre captcha."), 'error');
         return array('registerForm' => $form, 'enableRegistration' => $this->options->getEnableRegistration(), 'redirect' => $redirect);
     }
     $result = $recaptcha->verify($prg['g-recaptcha-response']);
     if (!$result->isValid()) {
         $this->flashMessenger()->addMessage($this->_getServTranslator()->translate("Veuillez verifier votre captcha."), 'error');
         return array('registerForm' => $form, 'enableRegistration' => $this->options->getEnableRegistration(), 'redirect' => $redirect);
     }
     // THS END
     if (!$user) {
         return array('registerForm' => $form, 'enableRegistration' => $this->options->getEnableRegistration(), 'redirect' => $redirect);
     }
     if ($service->getOptions()->getLoginAfterRegistration()) {
         $identityFields = $service->getOptions()->getAuthIdentityFields();
         if (in_array('email', $identityFields)) {
             $post['identity'] = $user->getEmail();
         } elseif (in_array('username', $identityFields)) {
             $post['identity'] = $user->getUsername();
         }
         $post['credential'] = $post['password'];
         $request->setPost(new Parameters($post));
         return $this->forward()->dispatch(static::CONTROLLER_NAME, array('action' => 'authenticate'));
     }
     // TODO: Add the redirect parameter here...
     // ths
     return $this->redirect()->toRoute('register-sendmail', array('mail' => base64_encode($post['email'])));
     // return $this->redirect()->toUrl($this->url()->fromRoute(static::ROUTE_LOGIN) . ($redirect ? '?redirect='. rawurlencode($redirect) : ''));
 }