<?php
namespace App\Controller\User;
use Symfony\Bundle\FrameworkBundle\Controller\AbstractController;
use Symfony\Component\HttpFoundation\Request;
use Symfony\Component\Security\Core\Security;
use Symfony\Component\Routing\Annotation\Route;
class SecurityController extends AbstractController
{
/**
* @Route("/logout", name="logout")
*/
public function logout()
{
// Cette méthode sera appelée automatiquement par Symfony pour gérer la déconnexion
}
/**
* @Route("/login_check", name="login_check")
*/
public function loginCheck()
{
// Cette méthode sera appelée automatiquement par Symfony, pas besoin de la définir manuellement.
}
/**
* @Route("/login", name="login")
*/
public function loginAction(Request $request)
{
$session = $request->getSession();
// Si le visiteur est déjà identifié, on le redirige vers l'accueil
if ($this->isGranted('IS_AUTHENTICATED_REMEMBERED')) {
return $this->redirect($this->generateUrl('malys_user_homepage'));
}
// On vérifie s'il y a des erreurs d'une précédente soumission du formulaire
if ($request->attributes->has(Security::AUTHENTICATION_ERROR)) {
$error = $request->attributes->get(Security::AUTHENTICATION_ERROR);
} else {
$error = $session->get(Security::AUTHENTICATION_ERROR);
$session->remove(Security::AUTHENTICATION_ERROR);
}
// on cherche un user-agent apparenté à une plateforme mobile dans la variable
$iphone = strpos($request->server->get('HTTP_USER_AGENT'), 'iPhone');
$ipad = strpos($request->server->get('HTTP_USER_AGENT'), 'iPad');
$android = strpos($request->server->get('HTTP_USER_AGENT'), 'Android');
$blackberry = strpos($request->server->get('HTTP_USER_AGENT'), 'BlackBerry');
// Si c'est un mobile
if ($iphone || $ipad || $android || $blackberry > -1) {
return $this->render('security/login_mobile.html.twig', array(
// Valeur du précédent nom d'utilisateur entré par l'internaute
'last_username' => $session->get(Security::LAST_USERNAME),
'error' => $error,
));
} else {
return $this->render('security/login.html.twig', array(
// Valeur du précédent nom d'utilisateur entré par l'internaute
'last_username' => $session->get(Security::LAST_USERNAME),
'error' => $error,
));
}
}
}
?>