/** * Authenticate controller action by login customer * * @param \Magento\Framework\App\Action\Action $action * @param bool|null $loginUrl * @return bool */ public function authenticate(\Magento\Framework\App\Action\Action $action, $loginUrl = null) { if ($this->isLoggedIn()) { return true; } $this->setBeforeAuthUrl($this->_createUrl()->getUrl('*/*/*', array('_current' => true))); if (isset($loginUrl)) { $action->getResponse()->setRedirect($loginUrl); } else { $arguments = $this->_customerData->getLoginUrlParams(); if ($this->_session->getCookieShouldBeReceived() && $this->_createUrl()->getUseSession()) { $arguments += array('_query' => array($this->sidResolver->getSessionIdQueryParam($this->_session) => $this->_session->getSessionId())); } $action->getResponse()->setRedirect($this->_createUrl()->getUrl(\Magento\Customer\Helper\Data::ROUTE_ACCOUNT_LOGIN, $arguments)); } return false; }
/** * Authenticate controller action by login customer * * @param bool|null $loginUrl * @return bool */ public function authenticate($loginUrl = null) { if ($this->isLoggedIn()) { return true; } $this->setBeforeAuthUrl($this->_createUrl()->getUrl('*/*/*', ['_current' => true])); if (isset($loginUrl)) { $this->response->setRedirect($loginUrl); } else { $arguments = $this->_customerUrl->getLoginUrlParams(); if ($this->_session->getCookieShouldBeReceived() && $this->_createUrl()->getUseSession()) { $arguments += ['_query' => [$this->sidResolver->getSessionIdQueryParam($this->_session) => $this->_session->getSessionId()]]; } $this->response->setRedirect($this->_createUrl()->getUrl(\Magento\Customer\Model\Url::ROUTE_ACCOUNT_LOGIN, $arguments)); } return false; }
/** * Replace Session ID value in URL * * @param string $html * @return string */ public function sessionUrlVar($html) { return preg_replace_callback( '#(\?|&|&)___SID=([SU])(&|&)?#', // @codingStandardsIgnoreStart /** * Callback function for session replace * * @param array $match * @return string */ // @codingStandardsIgnoreEnd function ($match) { if ($this->useSessionIdForUrl($match[2] == 'S' ? true : false)) { return $match[1] . $this->_sidResolver->getSessionIdQueryParam($this->_session) . '=' . $this->_session->getSessionId() . (isset($match[3]) ? $match[3] : ''); } else { if ($match[1] == '?') { return isset($match[3]) ? '?' : ''; } elseif ($match[1] == '&' || $match[1] == '&') { return isset($match[3]) ? $match[3] : ''; } } }, $html ); }
/** * Replace Session ID value in URL * * @param string $html * @return string */ public function sessionUrlVar($html) { return preg_replace_callback('#(\\?|&|&)___SID=([SU])(&|&)?#', function ($match) { if ($this->useSessionIdForUrl($match[2] == 'S' ? true : false)) { return $match[1] . $this->_sidResolver->getSessionIdQueryParam($this->_session) . '=' . $this->_session->getSessionId() . (isset($match[3]) ? $match[3] : ''); } else { if ($match[1] == '?') { return isset($match[3]) ? '?' : ''; } elseif ($match[1] == '&' || $match[1] == '&') { return isset($match[3]) ? $match[3] : ''; } } }, $html); }