Find this useful? Enter your email to receive occasional updates for securing PHP code.
Signing you up...
Thank you for signing up!
PHP Decode
<?php /** * Copyright Magento, Inc. All rights reserved. * See COPYING.txt for license ..
Decoded Output download
<?php
/**
* Copyright Magento, Inc. All rights reserved.
* See COPYING.txt for license details.
*/
namespace Magento\Captcha\Observer;
use Magento\Customer\Api\CustomerRepositoryInterface;
use Magento\Customer\Model\AuthenticationInterface;
use Magento\Framework\Event\ObserverInterface;
use Magento\Framework\Exception\NoSuchEntityException;
/**
* Check captcha on user login page observer.
*
* @SuppressWarnings(PHPMD.CouplingBetweenObjects)
* @SuppressWarnings(PHPMD.CookieAndSessionMisuse)
*/
class CheckUserLoginObserver 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 CaptchaStringResolver
*/
protected $captchaStringResolver;
/**
* Customer data
*
* @var \Magento\Customer\Model\Url
*/
protected $_customerUrl;
/**
* @var CustomerRepositoryInterface
*/
protected $customerRepository;
/**
* Authentication
*
* @var AuthenticationInterface
*/
protected $authentication;
/**
* CheckUserLoginObserver constructor.
*
* @param \Magento\Captcha\Helper\Data $helper
* @param \Magento\Framework\App\ActionFlag $actionFlag
* @param \Magento\Framework\Message\ManagerInterface $messageManager
* @param \Magento\Framework\Session\SessionManagerInterface $customerSession
* @param CaptchaStringResolver $captchaStringResolver
* @param \Magento\Customer\Model\Url $customerUrl
*/
public function __construct(
\Magento\Captcha\Helper\Data $helper,
\Magento\Framework\App\ActionFlag $actionFlag,
\Magento\Framework\Message\ManagerInterface $messageManager,
\Magento\Framework\Session\SessionManagerInterface $customerSession,
CaptchaStringResolver $captchaStringResolver,
\Magento\Customer\Model\Url $customerUrl
) {
$this->_helper = $helper;
$this->_actionFlag = $actionFlag;
$this->messageManager = $messageManager;
$this->_session = $customerSession;
$this->captchaStringResolver = $captchaStringResolver;
$this->_customerUrl = $customerUrl;
}
/**
* Get customer repository
*
* @return \Magento\Customer\Api\CustomerRepositoryInterface
*/
private function getCustomerRepository()
{
if (!($this->customerRepository instanceof \Magento\Customer\Api\CustomerRepositoryInterface)) {
return \Magento\Framework\App\ObjectManager::getInstance()->get(
\Magento\Customer\Api\CustomerRepositoryInterface::class
);
} else {
return $this->customerRepository;
}
}
/**
* Get authentication
*
* @return AuthenticationInterface
*/
private function getAuthentication()
{
if (!($this->authentication instanceof AuthenticationInterface)) {
return \Magento\Framework\App\ObjectManager::getInstance()->get(
AuthenticationInterface::class
);
} else {
return $this->authentication;
}
}
/**
* Check captcha on user login page
*
* @param \Magento\Framework\Event\Observer $observer
* @return $this|void
*/
public function execute(\Magento\Framework\Event\Observer $observer)
{
$formId = 'user_login';
$captchaModel = $this->_helper->getCaptcha($formId);
$controller = $observer->getControllerAction();
$loginParams = $controller->getRequest()->getPost('login');
$login = (is_array($loginParams) && array_key_exists('username', $loginParams))
? $loginParams['username']
: null;
if ($captchaModel->isRequired($login)) {
$word = $this->captchaStringResolver->resolve($controller->getRequest(), $formId);
if (!$captchaModel->isCorrect($word)) {
try {
$customer = $this->getCustomerRepository()->get($login);
$this->getAuthentication()->processAuthenticationFailure($customer->getId());
// phpcs:ignore Magento2.CodeAnalysis.EmptyBlock
} catch (NoSuchEntityException $e) {
//do nothing as customer existence is validated later in authenticate method
}
$this->messageManager->addErrorMessage(__('Incorrect CAPTCHA'));
$this->_actionFlag->set('', \Magento\Framework\App\Action\Action::FLAG_NO_DISPATCH, true);
$this->_session->setUsername($login);
$beforeUrl = $this->_session->getBeforeAuthUrl();
$url = $beforeUrl ? $beforeUrl : $this->_customerUrl->getLoginUrl();
$controller->getResponse()->setRedirect($url);
}
}
$captchaModel->logAttempt($login);
return $this;
}
}
?>
Did this file decode correctly?
Original Code
<?php
/**
* Copyright Magento, Inc. All rights reserved.
* See COPYING.txt for license details.
*/
namespace Magento\Captcha\Observer;
use Magento\Customer\Api\CustomerRepositoryInterface;
use Magento\Customer\Model\AuthenticationInterface;
use Magento\Framework\Event\ObserverInterface;
use Magento\Framework\Exception\NoSuchEntityException;
/**
* Check captcha on user login page observer.
*
* @SuppressWarnings(PHPMD.CouplingBetweenObjects)
* @SuppressWarnings(PHPMD.CookieAndSessionMisuse)
*/
class CheckUserLoginObserver 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 CaptchaStringResolver
*/
protected $captchaStringResolver;
/**
* Customer data
*
* @var \Magento\Customer\Model\Url
*/
protected $_customerUrl;
/**
* @var CustomerRepositoryInterface
*/
protected $customerRepository;
/**
* Authentication
*
* @var AuthenticationInterface
*/
protected $authentication;
/**
* CheckUserLoginObserver constructor.
*
* @param \Magento\Captcha\Helper\Data $helper
* @param \Magento\Framework\App\ActionFlag $actionFlag
* @param \Magento\Framework\Message\ManagerInterface $messageManager
* @param \Magento\Framework\Session\SessionManagerInterface $customerSession
* @param CaptchaStringResolver $captchaStringResolver
* @param \Magento\Customer\Model\Url $customerUrl
*/
public function __construct(
\Magento\Captcha\Helper\Data $helper,
\Magento\Framework\App\ActionFlag $actionFlag,
\Magento\Framework\Message\ManagerInterface $messageManager,
\Magento\Framework\Session\SessionManagerInterface $customerSession,
CaptchaStringResolver $captchaStringResolver,
\Magento\Customer\Model\Url $customerUrl
) {
$this->_helper = $helper;
$this->_actionFlag = $actionFlag;
$this->messageManager = $messageManager;
$this->_session = $customerSession;
$this->captchaStringResolver = $captchaStringResolver;
$this->_customerUrl = $customerUrl;
}
/**
* Get customer repository
*
* @return \Magento\Customer\Api\CustomerRepositoryInterface
*/
private function getCustomerRepository()
{
if (!($this->customerRepository instanceof \Magento\Customer\Api\CustomerRepositoryInterface)) {
return \Magento\Framework\App\ObjectManager::getInstance()->get(
\Magento\Customer\Api\CustomerRepositoryInterface::class
);
} else {
return $this->customerRepository;
}
}
/**
* Get authentication
*
* @return AuthenticationInterface
*/
private function getAuthentication()
{
if (!($this->authentication instanceof AuthenticationInterface)) {
return \Magento\Framework\App\ObjectManager::getInstance()->get(
AuthenticationInterface::class
);
} else {
return $this->authentication;
}
}
/**
* Check captcha on user login page
*
* @param \Magento\Framework\Event\Observer $observer
* @return $this|void
*/
public function execute(\Magento\Framework\Event\Observer $observer)
{
$formId = 'user_login';
$captchaModel = $this->_helper->getCaptcha($formId);
$controller = $observer->getControllerAction();
$loginParams = $controller->getRequest()->getPost('login');
$login = (is_array($loginParams) && array_key_exists('username', $loginParams))
? $loginParams['username']
: null;
if ($captchaModel->isRequired($login)) {
$word = $this->captchaStringResolver->resolve($controller->getRequest(), $formId);
if (!$captchaModel->isCorrect($word)) {
try {
$customer = $this->getCustomerRepository()->get($login);
$this->getAuthentication()->processAuthenticationFailure($customer->getId());
// phpcs:ignore Magento2.CodeAnalysis.EmptyBlock
} catch (NoSuchEntityException $e) {
//do nothing as customer existence is validated later in authenticate method
}
$this->messageManager->addErrorMessage(__('Incorrect CAPTCHA'));
$this->_actionFlag->set('', \Magento\Framework\App\Action\Action::FLAG_NO_DISPATCH, true);
$this->_session->setUsername($login);
$beforeUrl = $this->_session->getBeforeAuthUrl();
$url = $beforeUrl ? $beforeUrl : $this->_customerUrl->getLoginUrl();
$controller->getResponse()->setRedirect($url);
}
}
$captchaModel->logAttempt($login);
return $this;
}
}
Function Calls
None |
Stats
MD5 | 17efc2b75cc730a1f1090a1460efea25 |
Eval Count | 0 |
Decode Time | 112 ms |