UnsetCookie.php 1.2 KB

1234567891011121314151617181920212223242526272829303132333435363738394041424344
  1. <?php
  2. /**
  3. * Copyright © Magento, Inc. All rights reserved.
  4. * See COPYING.txt for license details.
  5. */
  6. namespace Magento\Persistent\Controller\Index;
  7. use Magento\Persistent\Controller\Index;
  8. use Magento\Framework\Controller\ResultFactory;
  9. class UnsetCookie extends Index
  10. {
  11. /**
  12. * Unset persistent cookie action
  13. *
  14. * @return \Magento\Framework\Controller\Result\Redirect
  15. */
  16. public function execute()
  17. {
  18. if ($this->sessionHelper->isPersistent()) {
  19. $this->cleanup();
  20. }
  21. /** @var \Magento\Framework\Controller\Result\Redirect $resultRedirect */
  22. $resultRedirect = $this->resultFactory->create(ResultFactory::TYPE_REDIRECT);
  23. $resultRedirect->setPath('customer/account/login');
  24. return $resultRedirect;
  25. }
  26. /**
  27. * Revert all persistent data
  28. *
  29. * @return $this
  30. */
  31. protected function cleanup()
  32. {
  33. $this->_eventManager->dispatch('persistent_session_expired');
  34. $this->customerSession->setCustomerId(null)->setCustomerGroupId(null);
  35. if ($this->clearCheckoutSession) {
  36. $this->checkoutSession->clearStorage();
  37. }
  38. $this->sessionHelper->getSession()->removePersistentCookie();
  39. return $this;
  40. }
  41. }