src/Controller/HomepageController.php line 43

Open in your IDE?
  1. <?php
  2. namespace App\Controller;
  3. use Symfony\Bundle\FrameworkBundle\Controller\AbstractController;
  4. use Symfony\Component\HttpFoundation\Request;
  5. use Symfony\Component\HttpFoundation\Response;
  6. /**
  7. * ══════════════════════════════════════════════════════════════════════════
  8. * RACINE DU SITE — `/`
  9. *
  10. * ⚠️ CETTE MÉTHODE RENVOYAIT UNE 500 SUR CHAQUE VISITE.
  11. *
  12. * return $this->redirectToRoute('login');
  13. *
  14. * Aucune route ne s'appelle `login`. Les noms réels sont `app_login`
  15. * (vitrine), `oauth2_login` (serveur d'autorisation) et `backend_login`
  16. * (backoffice). `redirectToRoute()` sur un nom inconnu lève
  17. * `RouteNotFoundException` — donc 500, dès la page d'accueil, sans que rien
  18. * n'indique le nom fautif ailleurs que dans les journaux.
  19. *
  20. * ── CE QUE FAIT LA RACINE DÉSORMAIS ──────────────────────────────────────
  21. *
  22. * Ce déploiement sert le backoffice et l'API ; il n'a pas de vitrine Twig.
  23. * La racine mène donc à l'administration :
  24. *
  25. * · déjà connecté en administrateur → tableau de bord
  26. * · sinon → formulaire de connexion
  27. *
  28. * ⚠️ L'API N'EST PAS CONCERNÉE. `/api/*` est servi par son propre pare-feu
  29. * (`^/api`, sans état, JWT) et ne passe jamais par ici. Rediriger la racine
  30. * ne ferme aucun point d'entrée de l'API.
  31. *
  32. * ⚠️ Le jour où une vitrine publique est branchée, c'est cette méthode
  33. * qu'il faut modifier — et elle seule.
  34. * ══════════════════════════════════════════════════════════════════════════
  35. */
  36. class HomepageController extends AbstractController
  37. {
  38. public function homepage(Request $request): Response
  39. {
  40. if ($this->isGranted('ROLE_ADMIN')) {
  41. return $this->redirectToRoute('backend_dashboard');
  42. }
  43. return $this->redirectToRoute('backend_login');
  44. }
  45. }