src/Controller/LoginController.php line 19

Open in your IDE?
  1. <?php
  2. namespace App\Controller;
  3. use App\Beans\Login;
  4. use App\Repository\MembreRepository;
  5. use App\Repository\RoleRepository;
  6. use App\Form\LoginType;
  7. use Symfony\Bundle\FrameworkBundle\Controller\AbstractController;
  8. use Symfony\Component\HttpFoundation\Request;
  9. use Symfony\Component\HttpFoundation\Response;
  10. use Symfony\Component\Routing\Annotation\Route;
  11. class LoginController extends AbstractController {
  12.     /**
  13.      * @Route("/login", name="app_login", methods={"GET","POST"})
  14.      */
  15.     public function loginAction(
  16.             Request $request,
  17.             MembreRepository $membreRepo,
  18.             RoleRepository $roleRepo): Response {
  19.         $session $request->getSession();
  20.         $login = new Login();
  21.         $form $this->createForm(LoginType::class, $login);
  22.         $form->handleRequest($request);
  23.         if ($form->isSubmitted() && $form->isValid()) {
  24.             $this->getDoctrine()->getManager()->flush();
  25.             // on recherche Membre correspondant
  26.             $membre $membreRepo->findOneBy(array(
  27.                 'username' => $login->getUsername(),
  28.                 'password' => $login->getPassword()
  29.                     ));
  30.             // on recupère le password hashé via FormEvents::PRE_SUBMIT
  31. //            $passhash = $login->getPassword();
  32. //            $passhash = $form['passhash']->getData();
  33.             $passhash $login->getPasshash();
  34.             if ($membre != null) {
  35.                 $pass $membre->getPassword();
  36.                 $verif password_verify($pass$passhash);
  37.             }
  38.             if ($membre != null && $verif) {
  39. //            $session->getFlashBag ()->add ("message", $membre->getUsername () . " est connecté(e)");
  40. //            $session->set ('statut', 'warning');
  41.             //on met $membre à jour : droit
  42.             $droit $roleRepo->find ($membre->getRole ())->getRole ();
  43.             $membre->setDroit ($droit);
  44.      
  45.             // au chaud dans session
  46.             $session->set('membre'$membre);
  47.             $session->set('comite'$membre->getComite());
  48. //            $session->getFlashBag()->add("message", $membre->getComite()->__toString());
  49.             $session->getFlashBag()->add("message"'connexion réussie ' $session->get('membre')->getUsername() ." de "$session->get('membre')->getComite()->__toString() );
  50.             $session->set('statut''warning');
  51.             return $this->redirectToRoute ('app_init');
  52.             } else {
  53.                 $session->getFlashBag()->add("message""identifiant ET/OU mot de passe incorrects ");
  54.                 $session->set('statut''danger');
  55.                 return $this->redirectToRoute('app_login');
  56.             }
  57.         }
  58.         return $this->render('login/login.html.twig', [
  59.                     'login' => $login,
  60.                     'form' => $form->createView(),
  61.         ]);
  62.     }
  63.     /**
  64.      * @Route("/logout", name="app_logout", methods={"GET","POST"})
  65.      */
  66.     public function logoutAction(Request $request): Response {
  67.         $session $request->getSession();
  68. //        $membre = new Membre();
  69.         $membre $session->get('membre');
  70.         if ($membre != null) {
  71.             $session->getFlashBag()->add("message"$membre->getUsername() . " est déconnecté(e)");
  72.             $session->set('statut''danger');
  73.             //on met au chaud
  74.             $session->set('membre'null);
  75.             $session->set('comite'null);
  76.         }
  77.         return $this->redirectToRoute('app_init');
  78.     }
  79. }