app/Customize/Event/CustomGoogleReCaptchaEvent.php line 54

Open in your IDE?
  1. <?php
  2. /*
  3. *
  4. * Plugin Name : Google reCAPTCHA v3 by FirstNetJapan
  5. *
  6. * Copyright (C) First Net Japan co.,Ltd All Rights Reserved.
  7. * https://www.1st-net.jp/
  8. *
  9. * For the full copyright and license information, please view the LICENSE
  10. * file that was distributed with this source code.
  11. *
  12. */
  13. namespace Customize\Event;
  14. use Eccube\Event\TemplateEvent;
  15. use GuzzleHttp\Client as HttpClient;
  16. use Plugin\FNJ_GoogleReCaptcha\Entity\GoogleReCaptchaConfig;
  17. use Plugin\FNJ_GoogleReCaptcha\Repository\GoogleReCaptchaConfigRepository;
  18. use Symfony\Component\EventDispatcher\EventSubscriberInterface;
  19. use Symfony\Component\HttpFoundation\Request;
  20. use Symfony\Component\HttpFoundation\RequestStack;
  21. class CustomGoogleReCaptchaEvent implements EventSubscriberInterface
  22. {
  23.     /**
  24.      * @var GoogleReCaptchaConfigRepository
  25.      */
  26.     protected $GoogleReCaptchaConfigRepository;
  27.     private $requestStack;
  28.     private $appEnv;
  29.     public function __construct(GoogleReCaptchaConfigRepository $GoogleReCaptchaConfigRepository, RequestStack $requestStack, string $appEnv)
  30.     {
  31.         $this->GoogleReCaptchaConfigRepository = $GoogleReCaptchaConfigRepository;
  32.         $this->requestStack = $requestStack;
  33.         $this->appEnv = $appEnv;
  34.     }
  35.     /**
  36.      * @return array
  37.      */
  38.     public static function getSubscribedEvents()
  39.     {
  40.         return [
  41.             'EstimateRequest/login.twig'         => 'customGoogleReCaptchaViews',
  42.         ];
  43.     }
  44.     /**
  45.      * @param TemplateEvent $event
  46.      * @param GoogleReCaptchaConfig $GoogleReCaptchaConfig
  47.      */
  48.     public function customGoogleReCaptchaViews(TemplateEvent $event)
  49.     {
  50.         if ($this->appEnv !== 'prod') {
  51.             return;
  52.         }
  53.         $Config = $this->GoogleReCaptchaConfigRepository->get();
  54.         if ($Config === null) {
  55.             return;
  56.         }
  57.         $request = Request::createFromGlobals();
  58.         $currentUrl = $request->getRequestUri(); 
  59.         $twig = 'FNJ_GoogleReCaptcha/Resource/template/default/set_google_re_captcha.twig';
  60.         $event->addSnippet($twig); 
  61.         $parameters = $event->getParameters();
  62.         $parameters['BadgeDisplay'] = $Config->getBadgeDisplay();
  63.         $parameters['BadgePosition'] = $Config->getBadgePosition();
  64.         $parameters['ScoreJudgement'] = $Config->getScoreJudgement();
  65.         $parameters['GoogleReCaptchaSiteKey'] = $Config->getGoogleReCaptchaSiteKey();
  66.         if (strpos($currentUrl, "/estimate_request/login") !== false) {
  67.             $parameters['SetCheck'] = $Config->getLoginPage();
  68.         }
  69.         $event->setParameters($parameters);
  70.     }
  71. }