src/Controller/HomeController.php line 25

Open in your IDE?
  1. <?php
  2. namespace App\Controller;
  3. use Symfony\Contracts\Translation\TranslatorInterface;
  4. use App\Entity\SettingsRol;
  5. use App\Entity\MobileAppControlEvent;
  6. use App\Entity\SettingsGeneral;
  7. use Symfony\Bundle\FrameworkBundle\Controller\AbstractController;
  8. use Symfony\Component\HttpFoundation\Request;
  9. use Symfony\Component\Routing\Annotation\Route;
  10. class HomeController extends AbstractController
  11. {
  12.     private $translator;
  13.     public function __construct(TranslatorInterface $translator)
  14.     {
  15.         $this->translator $translator;
  16.     }
  17.     /**
  18.      * @Route("/", name="homepage")
  19.      */
  20.     public function index(Request $request)
  21.     {
  22.         $em   $this->getDoctrine()->getManager();
  23.         $user $this->getUser();
  24.         if ($user) {
  25.             // 1) Cargamos rol y módulos
  26.             $userRole $user->getUserrol();
  27.             $modules  $em->getRepository(SettingsRol::class)->find($userRole);
  28.             $request->getSession()->set('_modules'$modules);
  29.             // 2) Si no es admin, recogemos eventos asignados
  30.             if ($userRole !== 'ROLE_ADMIN' && !$modules->getMadmin()) {
  31.                 $links $em->getRepository(MobileAppControlEvent::class)
  32.                     ->findBy(['userId' => $user->getId()]);
  33.                 $assigned array_map(fn($link) => $link->getEventId(), $links);
  34.                 $request->getSession()->set('_assignedEvent'$assigned);
  35.                 // 3) Si solo tiene **uno**, redirigimos directo a /event/info/{eid}
  36.                 if (count($assigned) === 1) {
  37.                     return $this->redirectToRoute('get_event_select', [
  38.                         'id' => $assigned[0],
  39.                     ]);
  40.                 }
  41.             }
  42.             // (Opcional) variables para tu layout
  43.             $team $user->getUserrol()->getTeam();
  44.             $rol  $user->getUserrol()->getRol();
  45.         }
  46.         // Lógica adicional de tu flujo…
  47.         if (isset($team) && $team === 'CLIENT' && $rol === 'N.Push') {
  48.             return $this->redirectToRoute('get_events_select');
  49.         }
  50.         // Por defecto, mostramos el selector de eventos
  51.         return $this->redirectToRoute('get_events_select');
  52.     }
  53.     /**
  54.      * @Route("/ChangeLanguage/{idioma}", name="change_language")
  55.      */
  56.     public function changeLanguage(Request $request$idioma)
  57.     {
  58.         $request->getSession()->set('_locale'$idioma);
  59.         return $this->redirect($request->headers->get('referer'));
  60.     }
  61. }