Magento 2 Documentation  2.3
Documentation for Magento 2 CMS v2.3 (December 2018)
CheckUserCreateObserver.php
Go to the documentation of this file.
1 <?php
7 
9 
11 {
15  protected $_helper;
16 
20  protected $_actionFlag;
21 
25  protected $messageManager;
26 
30  protected $_session;
31 
36  protected $_urlManager;
37 
42 
46  protected $redirect;
47 
57  public function __construct(
58  \Magento\Captcha\Helper\Data $helper,
59  \Magento\Framework\App\ActionFlag $actionFlag,
60  \Magento\Framework\Message\ManagerInterface $messageManager,
62  \Magento\Framework\UrlInterface $urlManager,
63  \Magento\Framework\App\Response\RedirectInterface $redirect,
65  ) {
66  $this->_helper = $helper;
67  $this->_actionFlag = $actionFlag;
68  $this->messageManager = $messageManager;
69  $this->_session = $session;
70  $this->_urlManager = $urlManager;
71  $this->redirect = $redirect;
72  $this->captchaStringResolver = $captchaStringResolver;
73  }
74 
81  public function execute(\Magento\Framework\Event\Observer $observer)
82  {
83  $formId = 'user_create';
84  $captchaModel = $this->_helper->getCaptcha($formId);
85  if ($captchaModel->isRequired()) {
87  $controller = $observer->getControllerAction();
88  if (!$captchaModel->isCorrect($this->captchaStringResolver->resolve($controller->getRequest(), $formId))) {
89  $this->messageManager->addError(__('Incorrect CAPTCHA'));
90  $this->_actionFlag->set('', \Magento\Framework\App\Action\Action::FLAG_NO_DISPATCH, true);
91  $this->_session->setCustomerFormData($controller->getRequest()->getPostValue());
92  $url = $this->_urlManager->getUrl('*/*/create', ['_nosecret' => true]);
93  $controller->getResponse()->setRedirect($this->redirect->error($url));
94  }
95  }
96 
97  return $this;
98  }
99 }
$helper
Definition: iframe.phtml:13
__()
Definition: __.php:13
__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)
$controller
Definition: info.phtml:14