123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899 |
- <?php
- /**
- *
- * Copyright © Magento, Inc. All rights reserved.
- * See COPYING.txt for license details.
- */
- namespace Magento\Customer\Controller\Account;
- use Magento\Framework\App\Action\HttpPostActionInterface;
- use Magento\Framework\App\Action\HttpGetActionInterface;
- use Magento\Customer\Model\Session;
- use Magento\Framework\App\Action\Context;
- use Magento\Framework\App\ObjectManager;
- use Magento\Framework\Stdlib\Cookie\CookieMetadataFactory;
- use Magento\Framework\Stdlib\Cookie\PhpCookieManager;
- use Magento\Customer\Controller\AbstractAccount;
- /**
- * Sign out a customer.
- */
- class Logout extends AbstractAccount implements HttpGetActionInterface, HttpPostActionInterface
- {
- /**
- * @var Session
- */
- protected $session;
- /**
- * @var CookieMetadataFactory
- */
- private $cookieMetadataFactory;
- /**
- * @var PhpCookieManager
- */
- private $cookieMetadataManager;
- /**
- * @param Context $context
- * @param Session $customerSession
- */
- public function __construct(
- Context $context,
- Session $customerSession
- ) {
- $this->session = $customerSession;
- parent::__construct($context);
- }
- /**
- * Retrieve cookie manager
- *
- * @deprecated 100.1.0
- * @return PhpCookieManager
- */
- private function getCookieManager()
- {
- if (!$this->cookieMetadataManager) {
- $this->cookieMetadataManager = ObjectManager::getInstance()->get(PhpCookieManager::class);
- }
- return $this->cookieMetadataManager;
- }
- /**
- * Retrieve cookie metadata factory
- *
- * @deprecated 100.1.0
- * @return CookieMetadataFactory
- */
- private function getCookieMetadataFactory()
- {
- if (!$this->cookieMetadataFactory) {
- $this->cookieMetadataFactory = ObjectManager::getInstance()->get(CookieMetadataFactory::class);
- }
- return $this->cookieMetadataFactory;
- }
- /**
- * Customer logout action
- *
- * @return \Magento\Framework\Controller\Result\Redirect
- */
- public function execute()
- {
- $lastCustomerId = $this->session->getId();
- $this->session->logout()->setBeforeAuthUrl($this->_redirect->getRefererUrl())
- ->setLastCustomerId($lastCustomerId);
- if ($this->getCookieManager()->getCookie('mage-cache-sessid')) {
- $metadata = $this->getCookieMetadataFactory()->createCookieMetadata();
- $metadata->setPath('/');
- $this->getCookieManager()->deleteCookie('mage-cache-sessid', $metadata);
- }
- /** @var \Magento\Framework\Controller\Result\Redirect $resultRedirect */
- $resultRedirect = $this->resultRedirectFactory->create();
- $resultRedirect->setPath('*/*/logoutSuccess');
- return $resultRedirect;
- }
- }
|