![]() Server : Apache System : Linux server2.corals.io 4.18.0-348.2.1.el8_5.x86_64 #1 SMP Mon Nov 15 09:17:08 EST 2021 x86_64 User : corals ( 1002) PHP Version : 7.4.33 Disable Function : exec,passthru,shell_exec,system Directory : /home/corals/old/vendor/magento/module-captcha/Observer/ |
<?php /** * Copyright © Magento, Inc. All rights reserved. * See COPYING.txt for license details. */ namespace Magento\Captcha\Observer; use Magento\Framework\Event\ObserverInterface; /** * Class CheckUserCreateObserver * * @SuppressWarnings(PHPMD.CookieAndSessionMisuse) */ class CheckUserCreateObserver implements ObserverInterface { /** * @var \Magento\Captcha\Helper\Data */ protected $_helper; /** * @var \Magento\Framework\App\ActionFlag */ protected $_actionFlag; /** * @var \Magento\Framework\Message\ManagerInterface */ protected $messageManager; /** * @var \Magento\Framework\Session\SessionManagerInterface */ protected $_session; /** * * @var \Magento\Framework\UrlInterface */ protected $_urlManager; /** * @var CaptchaStringResolver */ protected $captchaStringResolver; /** * @var \Magento\Framework\App\Response\RedirectInterface */ protected $redirect; /** * @param \Magento\Captcha\Helper\Data $helper * @param \Magento\Framework\App\ActionFlag $actionFlag * @param \Magento\Framework\Message\ManagerInterface $messageManager * @param \Magento\Framework\Session\SessionManagerInterface $session * @param \Magento\Framework\UrlInterface $urlManager * @param \Magento\Framework\App\Response\RedirectInterface $redirect * @param CaptchaStringResolver $captchaStringResolver */ public function __construct( \Magento\Captcha\Helper\Data $helper, \Magento\Framework\App\ActionFlag $actionFlag, \Magento\Framework\Message\ManagerInterface $messageManager, \Magento\Framework\Session\SessionManagerInterface $session, \Magento\Framework\UrlInterface $urlManager, \Magento\Framework\App\Response\RedirectInterface $redirect, CaptchaStringResolver $captchaStringResolver ) { $this->_helper = $helper; $this->_actionFlag = $actionFlag; $this->messageManager = $messageManager; $this->_session = $session; $this->_urlManager = $urlManager; $this->redirect = $redirect; $this->captchaStringResolver = $captchaStringResolver; } /** * Check Captcha On User Login Page * * @param \Magento\Framework\Event\Observer $observer * @return $this */ public function execute(\Magento\Framework\Event\Observer $observer) { $formId = 'user_create'; $captchaModel = $this->_helper->getCaptcha($formId); if ($captchaModel->isRequired()) { /** @var \Magento\Framework\App\Action\Action $controller */ $controller = $observer->getControllerAction(); if (!$captchaModel->isCorrect($this->captchaStringResolver->resolve($controller->getRequest(), $formId))) { $this->messageManager->addErrorMessage(__('Incorrect CAPTCHA')); $this->_actionFlag->set('', \Magento\Framework\App\Action\Action::FLAG_NO_DISPATCH, true); $this->_session->setCustomerFormData($controller->getRequest()->getPostValue()); $url = $this->_urlManager->getUrl('*/*/create', ['_nosecret' => true]); $controller->getResponse()->setRedirect($this->redirect->error($url)); } } return $this; } }