private function gestionProfEnBase() { $entity = new User(); $session = new Session(); $login = $session->get('username'); $password = $session->get('password'); //On se connecte à l'AD, on chop tous les profs et leurs mails $lstProfAD = AuthentificationLDAP::getListeProf($login, $password); $em = $this->getDoctrine()->getManager(); //On vire les profs qui sont en BDD mais plus dans l'AD $lstProfBDD = $em->getRepository('GlpmrVirtualMachineBundle:User')->findAll(); //var_dump($lstProfBDD); $listAcomparer = array(); foreach ($lstProfBDD as $prof) { array_push($listAcomparer, clone $prof); } foreach ($listAcomparer as $prof) { $prof->setId(null); } //On regarde tous les profs de la BDD foreach ($listAcomparer as $profBDD) { //Si le prof de la BDD n'est pas contenu dans l'AD if (!in_array($profBDD, $lstProfAD)) { $em = $this->container->get('doctrine')->getManager(); $connection = $em->getConnection(); $statement = $connection->prepare("DELETE FROM User " . "WHERE nom = :nom " . "AND prenom = :prenom"); $statement->bindValue('nom', $profBDD->getNom()); $statement->bindValue('prenom', $profBDD->getPrenom()); $statement->execute(); } } //Ensuite on met en BDD tous les prof qui sont dans l'AD foreach ($lstProfAD as $prof) { //On cherche si l'enregistrement existe $entity = $em->getRepository('GlpmrVirtualMachineBundle:User')->findOneBy($truc = array('nom' => $prof->getNom(), 'prenom' => $prof->getPrenom())); //Si n'existe pas on l'ajoute if ($entity == null) { //var_dump("n'existe pas encore, ajout en BDD"); //var_dump($prof); $em->persist($prof); $em->flush(); } else { //Si l'adresse mail à changé if ($entity->getMail() != $prof->getMail()) { $entity->setMail($prof->getMail()); $em->flush(); //var_dump("Existe déjà, mise a jour en BDD"); } } } }