![]() 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/cartforge.co/vendor/magento/module-security/Model/Plugin/ |
<?php /** * Copyright © Magento, Inc. All rights reserved. * See COPYING.txt for license details. */ namespace Magento\Security\Model\Plugin; use Magento\Backend\Model\Auth\Session; use Magento\Security\Model\AdminSessionsManager; use Magento\Security\Model\UserExpirationManager; /** * Magento\Backend\Model\Auth\Session decorator */ class AuthSession { /** * @var \Magento\Framework\App\RequestInterface */ private $request; /** * @var \Magento\Framework\Message\ManagerInterface */ private $messageManager; /** * @var AdminSessionsManager */ private $sessionsManager; /** * @var \Magento\Security\Model\SecurityCookie */ protected $securityCookie; /** * @var UserExpirationManager */ private $userExpirationManager; /** * @param \Magento\Framework\App\RequestInterface $request * @param \Magento\Framework\Message\ManagerInterface $messageManager * @param AdminSessionsManager $sessionsManager * @param \Magento\Security\Model\SecurityCookie $securityCookie * @param UserExpirationManager|null $userExpirationManager */ public function __construct( \Magento\Framework\App\RequestInterface $request, \Magento\Framework\Message\ManagerInterface $messageManager, AdminSessionsManager $sessionsManager, \Magento\Security\Model\SecurityCookie $securityCookie, \Magento\Security\Model\UserExpirationManager $userExpirationManager = null ) { $this->request = $request; $this->messageManager = $messageManager; $this->sessionsManager = $sessionsManager; $this->securityCookie = $securityCookie; $this->userExpirationManager = $userExpirationManager ?: \Magento\Framework\App\ObjectManager::getInstance() ->get(\Magento\Security\Model\UserExpirationManager::class); } /** * Admin Session prolong functionality * * @param Session $session * @param \Closure $proceed * @return mixed */ public function aroundProlong(Session $session, \Closure $proceed) { if (!$this->sessionsManager->getCurrentSession()->isLoggedInStatus()) { $session->destroy(); $this->addUserLogoutNotification(); return null; } elseif ($this->userExpirationManager->isUserExpired($session->getUser()->getId())) { $this->userExpirationManager->deactivateExpiredUsersById([$session->getUser()->getId()]); $session->destroy(); $this->addUserLogoutNotification(); return null; } $result = $proceed(); $this->sessionsManager->processProlong(); return $result; } /** * Add user logout notification * * @return $this */ private function addUserLogoutNotification() { if ($this->isAjaxRequest()) { $this->securityCookie->setLogoutReasonCookie( $this->sessionsManager->getCurrentSession()->getStatus() ); } elseif ($message = $this->sessionsManager->getLogoutReasonMessage()) { $this->messageManager->addErrorMessage($message); } return $this; } /** * Check if a request is AJAX request * * @return bool */ private function isAjaxRequest() { return (bool) $this->request->getParam('isAjax'); } }