public function loginAction(Request $request)
 {
     // Récupération du login et mot de passe
     $login = $request->request->get("username");
     $pass = $request->request->get("password");
     if (!empty($login) && $login !== "" && !empty($pass) && $pass !== "") {
         //        $isConnected = AuthentificationLDAP::open($login, $pass);
         if (AuthentificationLDAP::open($login, $pass)) {
             AuthentificationLDAP::close();
             $session = new Session();
             // Rentre le nom d'utilisateur en session
             $session->set('username', $login);
             $session->set('password', $pass);
             // On recupère la promotion de l'étudiant qu'on met en session également
             $promotion = AuthentificationLDAP::getPromotion($login, $pass);
             $session->set('promotion', $promotion);
             // Ainsi qu'un boolean pour savoir si l'utilisateur est admin
             $isAdmin = AuthentificationLDAP::isAdmin($login, $pass);
             var_dump($isAdmin);
             if ($isAdmin) {
                 $session->set("admin", true);
             } else {
                 $session->set("admin", false);
             }
             $url = $this->generateUrl("glpmr_peripherique_gestion");
         } else {
             CustomError::showMessage("Identifiants incorrects");
             $url = $this->generateUrl("glpmr_authentification_homepage");
         }
     } else {
         CustomError::showMessage("Il faut renseigner tous les champs");
         $url = $this->generateUrl("glpmr_authentification_homepage");
     }
     return $this->redirect($url);
 }
 /**
  * Fonction qui renvoie la promotion de l'elève
  * @seealso SAD : schéma de l'AD pour les OU promotions
  */
 public static function getPromotion($login, $password)
 {
     $promotion = null;
     $isConnected = AuthentificationLDAP::open($login, $password);
     if ($isConnected) {
         $filter = "(sAMAccountName=" . $login . ")";
         $resultat = ldap_search(self::$connexion, self::$dn, $filter);
         if (FALSE !== $resultat) {
             $user = ldap_get_entries(self::$connexion, $resultat);
             $user = $user[0];
             $split = explode(",", $user["distinguishedname"][0]);
             // Ici pour choppé le mail
             //$user['mail'][0]
             //TODO : chopper l'OU des profs, et repasser en REGEX
             foreach ($split as $boutDeChaine) {
                 if (strpos($boutDeChaine, "SIOTP ")) {
                     $promotion = $boutDeChaine;
                 } else {
                     if (strpos($boutDeChaine, "SIOALT ")) {
                         $promotion = $boutDeChaine;
                     } else {
                         if (strpos($boutDeChaine, "ASI ")) {
                             $promotion = $boutDeChaine;
                         }
                     }
                 }
             }
             // Affiche le promotion du style : ASI 2016
             $promo = str_replace("OU=", "", $promotion);
             if (!$promo == '') {
                 // On transforme ça en ASI 1 ou 2 suivant l'année.
                 $promo = explode(" ", $promo);
                 $annee = self::calculPromotion($promo[1]);
                 $promo_etudiant = $promo[0] . " " . $annee;
             } else {
                 $promo_etudiant = "professeur";
             }
         }
     } else {
         // LEVER ERREUR ICI
     }
     return $promo_etudiant;
 }
 private function getUserCourant($isEleve)
 {
     $session = new Session();
     $login = $session->get('username');
     $password = $session->get('password');
     $user = new User();
     //On se connecte à l'AD, on chop tous les profs et leurs mails
     $user = AuthentificationLDAP::getUserCourant($login, $password, $isEleve);
     //var_dump($user);
     //Si c'est un prof on récupère l'ID
     if (!$isEleve) {
         //On récupère les utilisateurs en BDD
         $em = $this->getDoctrine()->getManager();
         //On vire les profs qui sont en BDD mais plus dans l'AD
         $lstProfBDD = $em->getRepository('GlpmrVirtualMachineBundle:User')->findAll();
         //On parcours tous les utilisateurs
         foreach ($lstProfBDD as $profBDD) {
             //On cherche le meme
             if ($profBDD->getNom() == $user->getNom() && $profBDD->getPrenom() == $user->getPrenom() && $profBDD->getMail() == $user->getMail()) {
                 //On set l'ID
                 $user->setId($profBDD->getId());
             }
         }
     }
     //var_dump($user);
     return $user;
 }