<?php
namespace App\Controller\Account;
use CoreShop\Bundle\CustomerBundle\Form\Type\CustomerLoginType;
use CoreShop\Bundle\FrontendBundle\Controller\FrontendController;
use CoreShop\Component\Core\Context\ShopperContextInterface;
use Symfony\Component\Form\FormFactoryInterface;
use Symfony\Component\HttpFoundation\Request;
use Symfony\Component\HttpFoundation\Response;
use Symfony\Component\Security\Http\Authentication\AuthenticationUtils;
class SecurityController extends FrontendController
{
public function __construct(
protected AuthenticationUtils $authenticationUtils,
protected FormFactoryInterface $formFactory,
protected ShopperContextInterface $shopperContext,
) {
}
public function loginAction(Request $request): Response
{
if ($this->shopperContext->hasCustomer()) {
return $this->redirect('/');
}
$lastError = $this->authenticationUtils->getLastAuthenticationError();
$lastUsername = $this->authenticationUtils->getLastUsername();
$form = $this->formFactory->createNamed('', CustomerLoginType::class);
$fullpage = $this->getParameterFromRequest($request, 'fullpage', true);
return $this->render($fullpage ? 'account/login.html.twig' : 'basket/customer/_login.html.twig', [
'form' => $form->createView(),
'last_username' => $lastUsername,
'last_error' => $lastError,
'target' => $this->getParameterFromRequest($request, 'target', null),
'failure' => $this->getParameterFromRequest($request, 'failure', null),
]);
}
}