<?php
namespace App\Controller;
use App\Services\GrantedService;
use Sensio\Bundle\FrameworkExtraBundle\Configuration\IsGranted;
use Symfony\Bundle\FrameworkBundle\Controller\AbstractController;
use Symfony\Component\HttpFoundation\Response;
use Symfony\Component\HttpKernel\Event\RequestEvent;
use Symfony\Component\Routing\Annotation\Route;
use Symfony\Component\Security\Core\Security;
#[Route('/', name: 'app_base')]
class BaseController extends AbstractController
{
public function __construct(Security $security)
{
$this->security = $security;
$this->twigData = [
'user' => $security->getUser(),
];
}
#[Route('/', name: '_index')]
public function index(): Response
{
if($this->security->getUser() != false){
if($this->isGranted('ROLE_ADMIN')){
return $this->redirectToRoute('app_home_index');
}elseif($this->isGranted('ROLE_CONTENT_MANAGER')){
return $this->redirectToRoute('app_home_index');
}else{
return $this->redirectToRoute('app_dam_index');
}
}else{
return $this->redirectToRoute('app_login');
}
}
public function onKernelRequest(RequestEvent $event)
{
$request = $event->getRequest();
// some logic to determine the $locale
$request->setLocale('fr');
}
}