src/Controller/MenuController.php line 30

Open in your IDE?
  1. <?php
  2. namespace App\Controller;
  3. use Symfony\Bundle\FrameworkBundle\Controller\AbstractController;
  4. use Psr\Log\LoggerInterface;
  5. use Symfony\Component\HttpFoundation\Session\SessionInterface;
  6. use App\Service\ConfigurationPropertyService;
  7. use App\Security\ClubAccess;
  8. use App\Entity\EntityFinder;
  9. use App\Entity\Club;
  10. class MenuController extends AbstractController
  11. {      
  12.     
  13.     private LoggerInterface $logger;
  14.     
  15.     public function __construct(LoggerInterface $logger)
  16.     {
  17.         $this->logger $logger;
  18.     }
  19.     
  20.     public function viewMenu(SessionInterface $session)
  21.     {
  22.         $doctrine $this->container->get('doctrine');
  23.         $propService = new ConfigurationPropertyService($doctrine->getManager());
  24.         $menuProperties $propService->findStartsWithToMap('menu.');
  25.         $club $session->get('club-selected');
  26.         $lessons $session->get('lessons-selected');
  27.         $canConfigure false;
  28.         if($club !== null) {
  29.             $entityFinder = new EntityFinder($doctrine);
  30.             $clubObj $entityFinder->findOneByOrThrow(Club::class, ['uuid' => $club->uuid]); // 404, never happen !
  31.             
  32.             $clubAccess = new ClubAccess($this->container$this->logger);
  33.             $canConfigure $clubAccess->hasAccessForUser($clubObj$this->getUser());
  34.         }
  35.         
  36.         return $this->render('modules/menu.html.twig', [
  37.             'club' => $club,
  38.             'lessons' => $lessons,
  39.             'menuProperties' => $menuProperties,
  40.             'canConfigure' => $canConfigure
  41.         ]);
  42.     }
  43. }