src/Controller/User/SecurityController.php line 66

Open in your IDE?
  1. <?php
  2. namespace App\Controller\User;
  3. use Symfony\Bundle\FrameworkBundle\Controller\AbstractController;
  4. use Symfony\Component\HttpFoundation\Request;
  5. use Symfony\Component\Security\Core\Security;
  6. use Symfony\Component\Routing\Annotation\Route;
  7. class SecurityController extends AbstractController
  8. {
  9. /**
  10. * @Route("/logout", name="logout")
  11. */
  12. public function logout()
  13. {
  14. // Cette méthode sera appelée automatiquement par Symfony pour gérer la déconnexion
  15. }
  16. /**
  17. * @Route("/login_check", name="login_check")
  18. */
  19. public function loginCheck()
  20. {
  21. // Cette méthode sera appelée automatiquement par Symfony, pas besoin de la définir manuellement.
  22. }
  23. /**
  24. * @Route("/login", name="login")
  25. */
  26. public function loginAction(Request $request)
  27. {
  28. $session = $request->getSession();
  29. // Si le visiteur est déjà identifié, on le redirige vers l'accueil
  30. if ($this->isGranted('IS_AUTHENTICATED_REMEMBERED')) {
  31. return $this->redirect($this->generateUrl('malys_user_homepage'));
  32. }
  33. // On vérifie s'il y a des erreurs d'une précédente soumission du formulaire
  34. if ($request->attributes->has(Security::AUTHENTICATION_ERROR)) {
  35. $error = $request->attributes->get(Security::AUTHENTICATION_ERROR);
  36. } else {
  37. $error = $session->get(Security::AUTHENTICATION_ERROR);
  38. $session->remove(Security::AUTHENTICATION_ERROR);
  39. }
  40. // on cherche un user-agent apparenté à une plateforme mobile dans la variable
  41. $iphone = strpos($request->server->get('HTTP_USER_AGENT'), 'iPhone');
  42. $ipad = strpos($request->server->get('HTTP_USER_AGENT'), 'iPad');
  43. $android = strpos($request->server->get('HTTP_USER_AGENT'), 'Android');
  44. $blackberry = strpos($request->server->get('HTTP_USER_AGENT'), 'BlackBerry');
  45. // Si c'est un mobile
  46. if ($iphone || $ipad || $android || $blackberry > -1) {
  47. return $this->render('security/login_mobile.html.twig', array(
  48. // Valeur du précédent nom d'utilisateur entré par l'internaute
  49. 'last_username' => $session->get(Security::LAST_USERNAME),
  50. 'error' => $error,
  51. ));
  52. } else {
  53. return $this->render('security/login.html.twig', array(
  54. // Valeur du précédent nom d'utilisateur entré par l'internaute
  55. 'last_username' => $session->get(Security::LAST_USERNAME),
  56. 'error' => $error,
  57. ));
  58. }
  59. }
  60. }
  61. ?>