/** * @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()); } }
/** * 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; }