<?php
namespace App\Controller;
use Symfony\Contracts\Translation\TranslatorInterface;
use App\Entity\SettingsRol;
use App\Entity\MobileAppControlEvent;
use App\Entity\SettingsGeneral;
use Symfony\Bundle\FrameworkBundle\Controller\AbstractController;
use Symfony\Component\HttpFoundation\Request;
use Symfony\Component\Routing\Annotation\Route;
class HomeController extends AbstractController
{
private $translator;
public function __construct(TranslatorInterface $translator)
{
$this->translator = $translator;
}
/**
* @Route("/", name="homepage")
*/
public function index(Request $request)
{
$em = $this->getDoctrine()->getManager();
$user = $this->getUser();
if ($user) {
// 1) Cargamos rol y módulos
$userRole = $user->getUserrol();
$modules = $em->getRepository(SettingsRol::class)->find($userRole);
$request->getSession()->set('_modules', $modules);
// 2) Si no es admin, recogemos eventos asignados
if ($userRole !== 'ROLE_ADMIN' && !$modules->getMadmin()) {
$links = $em->getRepository(MobileAppControlEvent::class)
->findBy(['userId' => $user->getId()]);
$assigned = array_map(fn($link) => $link->getEventId(), $links);
$request->getSession()->set('_assignedEvent', $assigned);
// 3) Si solo tiene **uno**, redirigimos directo a /event/info/{eid}
if (count($assigned) === 1) {
return $this->redirectToRoute('get_event_select', [
'id' => $assigned[0],
]);
}
}
// (Opcional) variables para tu layout
$team = $user->getUserrol()->getTeam();
$rol = $user->getUserrol()->getRol();
}
// Lógica adicional de tu flujo…
if (isset($team) && $team === 'CLIENT' && $rol === 'N.Push') {
return $this->redirectToRoute('get_events_select');
}
// Por defecto, mostramos el selector de eventos
return $this->redirectToRoute('get_events_select');
}
/**
* @Route("/ChangeLanguage/{idioma}", name="change_language")
*/
public function changeLanguage(Request $request, $idioma)
{
$request->getSession()->set('_locale', $idioma);
return $this->redirect($request->headers->get('referer'));
}
}