/**
  * @param AbstractAction $subject
  * @param RequestInterface $request
  * @return void
  * @SuppressWarnings(PHPMD.UnusedFormalParameter)
  */
 public function beforeDispatch(AbstractAction $subject, RequestInterface $request)
 {
     if ($this->state->getAreaCode() == Area::AREA_FRONTEND && $request->isPost() && $this->notificationStorage->isExists(NotificationStorage::UPDATE_CUSTOMER_SESSION, $this->session->getCustomerId())) {
         $customer = $this->customerRepository->getById($this->session->getCustomerId());
         $this->session->setCustomerData($customer);
         $this->session->setCustomerGroupId($customer->getGroupId());
         $this->session->regenerateId();
         $this->notificationStorage->remove(NotificationStorage::UPDATE_CUSTOMER_SESSION, $customer->getId());
     }
 }
Esempio n. 2
0
 /**
  * Forgot customer account information page
  *
  * @return \Magento\Framework\View\Result\Page
  */
 public function executeInternal()
 {
     /** @var \Magento\Framework\View\Result\Page $resultPage */
     $resultPage = $this->resultPageFactory->create();
     $block = $resultPage->getLayout()->getBlock('customer_edit');
     if ($block) {
         $block->setRefererUrl($this->_redirect->getRefererUrl());
     }
     $data = $this->session->getCustomerFormData(true);
     $customerId = $this->session->getCustomerId();
     $customerDataObject = $this->customerRepository->getById($customerId);
     if (!empty($data)) {
         $this->dataObjectHelper->populateWithArray($customerDataObject, $data, '\\Magento\\Customer\\Api\\Data\\CustomerInterface');
     }
     $this->session->setCustomerData($customerDataObject);
     $this->session->setChangePassword($this->getRequest()->getParam('changepass') == 1);
     $resultPage->getConfig()->getTitle()->set(__('Account Information'));
     $resultPage->getLayout()->getBlock('messages')->setEscapeMessageFlag(true);
     return $resultPage;
 }