* @copyright Since 2007 PrestaShop SA and Contributors * @license https://opensource.org/licenses/OSL-3.0 Open Software License (OSL 3.0) */ class AuthControllerCore extends FrontController { /** @var bool */ public $ssl = true; /** @var string */ public $php_self = 'authentication'; /** @var bool */ public $auth = false; public function checkAccess() { if ($this->context->customer->isLogged() && !$this->ajax) { $this->redirect_after = $this->authRedirection ? urlencode($this->authRedirection) : 'my-account'; $this->redirect(); } return parent::checkAccess(); } public function initContent() { if (Tools::isSubmit('create_account')) { return $this->redirectWithNotifications('registration'); } $should_redirect = false; $login_form = $this->makeLoginForm()->fillWith( Tools::getAllValues() ); if (Tools::isSubmit('submitLogin')) { if ($login_form->submit()) { $should_redirect = true; } } $this->context->smarty->assign([ 'login_form' => $login_form->getProxy(), ]); $this->setTemplate('customer/authentication'); parent::initContent(); if ($should_redirect && !$this->ajax) { $back = rawurldecode(Tools::getValue('back')); if (Tools::urlBelongsToShop($back)) { // Checks to see if "back" is a fully qualified // URL that is on OUR domain, with the right protocol return $this->redirectWithNotifications($back); } // Well we're not redirecting to a URL, // so... if ($this->authRedirection) { // We may need to go there if defined return $this->redirectWithNotifications($this->authRedirection); } // go home return $this->redirectWithNotifications(__PS_BASE_URI__); } } public function getBreadcrumbLinks() { $breadcrumb = parent::getBreadcrumbLinks(); $breadcrumb['links'][] = [ 'title' => $this->trans('Log in to your account', [], 'Shop.Theme.Customeraccount'), 'url' => $this->context->link->getPageLink('authentication'), ]; return $breadcrumb; } /** * {@inheritdoc} */ public function getCanonicalURL() { return $this->context->link->getPageLink('authentication'); } }