public function supprimerGroupeValiderAction(Request $request)
 {
     AuthentificationController::isConnected();
     try {
         $promotion = $request->get('promotion');
         $dao = new PeripheriqueDAO($this->getDoctrine()->getConnection());
         $dao->supprimerGroupe($promotion);
         $dao->exportToJson();
         $title = "Success!";
         $message = "Les peripheriques de la classe " . $promotion . " ont bien ete supprimes!";
     } catch (Exception $e) {
         $title = "Erreur!";
         $message = "Erreur lors de la suppression des peripheriques";
     }
     return $this->render("GlpmrPeripheriqueBundle:Default:supprimer_peripherique.html.twig", array("title" => $title, "message" => $message));
 }
 public function creationAction(Request $request, $id)
 {
     AuthentificationController::isConnected();
     //On récupère l'id de l'utilisateur et on check si c'est un prof ou un eleve
     //        $eleve = new User();
     //        $eleve = $this->getUserCourant(true);
     //        //On rempli l'objet user avec les infos de l'active directory
     //        //On crée le nouvel objet demande
     $demande = new Demande();
     $eleve = new User();
     //
     //        $isEleve = true;
     //
     //        $demande->setEleve($eleve);
     //On se connecte à l'AD et on met à jour les prof qui sont dessus si besoin
     $this->gestionProfEnBase();
     //Si id != 0 c'est le prof qui vient de cliquer sur le mail qui doit valider à nouveau
     if ($id != 0) {
         $em = $this->getDoctrine()->getManager();
         $DemandeCree = new Demande();
         $DemandeCree = $em->getRepository('GlpmrVirtualMachineBundle:Demande')->findBy(array('id' => $id));
         //var_dump($DemandeCree);
         $demande = $DemandeCree[0];
         $prof = new User();
         $prof = $this->getUserCourant(false);
         //var_dump($prof);
         $prof = $this->getProfWithId($prof);
         //var_dump($prof);
         //var_dump("===================================================");
         $demande->setProf($prof);
         $demande = $this->getDoctrine()->getManager()->merge($demande);
         //var_dump($demande);
         //On ajoute les champs de l'entité que l'on veut à notre formulaire
         $form = $this->get('form.factory')->createBuilder('form', $demande)->add('nomVM', 'text')->add('mailEleve', 'email')->add('passwordRoot', 'text')->add("OS", "entity", array("label" => "Choix OS", "class" => "GlpmrVirtualMachineBundle:Os"))->add("adrsReseau", "entity", array("label" => "Choix adresse réseau", "class" => "GlpmrVirtualMachineBundle:AdresseIp"))->getForm();
         //var_dump($demande);
     } else {
         //On récupère l'id de l'utilisateur et on check si c'est un prof ou un eleve
         $eleve = new User();
         $eleve = $this->getUserCourant(true);
         $isEleve = true;
         $demande->setNomEleve($eleve->getNom());
         $demande->setPrenomEleve($eleve->getPrenom());
         $demande->setMailEleve($eleve->getMail());
         //On ajoute les champs de l'entité que l'on veut à notre formulaire
         $form = $this->get('form.factory')->createBuilder('form', $demande)->add('nomVM', 'text')->add('mailEleve', 'email')->add('passwordRoot', 'password')->add("OS", "entity", array("label" => "Choix OS", "class" => "GlpmrVirtualMachineBundle:Os"))->add("adrsReseau", "entity", array("label" => "Choix adresse réseau", "class" => "GlpmrVirtualMachineBundle:AdresseIp"))->add("prof", "entity", array("label" => "Choix professeur", "class" => "GlpmrVirtualMachineBundle:User"))->getForm();
     }
     //var_dump($demande);
     // On fait le lien Requête <-> Formulaire
     // À partir de maintenant, la variable $demande contient les valeurs entrées dans le formulaire par le visiteur
     $form->handleRequest($request);
     // On vérifie que les valeurs entrées sont correctes
     if ($form->isValid()) {
         $retour = "Rien à voir";
         // On l'enregistre notre objet $advert dans la base de données, par exemple
         $em = $this->getDoctrine()->getManager();
         if ($id == 0) {
             $demande->setPrenomEleve($eleve->getPrenom());
             $demande->setNomEleve($eleve->getNom());
         }
         $em->persist($demande);
         $em->flush();
         //Si l'eleve fait une demande
         if ($id == 0) {
             $id = $demande->getId();
             //On envoie le mail au prof
             $message = \Swift_Message::newInstance()->setSubject('Demande de création de VM')->setFrom('*****@*****.**')->setTo($demande->getProf()->getMail())->setBody($this->renderView('GlpmrVirtualMachineBundle:Default:mailProf.txt.twig', array('professeur' => $demande->getProf()->getNom() . " " . $demande->getProf()->getPrenom(), 'eleve' => $demande->getNomEleve() . " " . $demande->getPrenomEleve(), 'password' => $demande->getPasswordRoot(), 'OS' => $demande->getOS(), 'lien' => $this->generateUrl('glpmr_virtual_machine_creation', array('id' => $demande->getId()), true))), 'text/html');
             $this->get('mailer')->send($message);
             $retour = "Création";
             $eleve = true;
         } else {
             $professeur = $demande->getProf();
             $stringProf = $professeur->getNom() . " " . $professeur->getPrenom();
             //var_dump($stringProf);
             //On envoie le mail à l'eleve
             $message = \Swift_Message::newInstance()->setSubject('Demande de création de VM')->setFrom('*****@*****.**')->setTo($demande->getMailEleve())->setBody($this->renderView('GlpmrVirtualMachineBundle:Default:mailEleve.txt.twig', array('professeur' => $stringProf, 'eleve' => $demande->getNomEleve() . " " . $demande->getPrenomEleve(), 'demande' => $demande)), 'text/html');
             $this->get('mailer')->send($message);
             //on envoie une copie à obi
             $message = \Swift_Message::newInstance()->setSubject('Demande de création de VM (Copie)')->setFrom('*****@*****.**')->setTo('*****@*****.**')->setBody($this->renderView('GlpmrVirtualMachineBundle:Default:mailEleve.txt.twig', array('professeur' => $stringProf, 'eleve' => $demande->getNomEleve() . " " . $demande->getPrenomEleve(), 'demande' => $demande)), 'text/html');
             $this->get('mailer')->send($message);
             $osTemplate = $demande->getOs()->getLibelleProxMox();
             $ipAdresse = $demande->getAdrsReseau()->getAdresse();
             $hostname = $demande->getNomVM();
             $password = $demande->getPasswordRoot();
             $idVM = $this->getIdFromIP($ipAdresse);
             $lastsOctetsIP = $this->getLastsOctetsFromIP($ipAdresse);
             //On execute la methode qui se connecter en ssh au serveur puis executer le script de création de la vm
             $retour = exec("/var/www/glpmr-portail.reseau-labo.fr/web/assets/shell/proxmox.sh" . " " . $osTemplate . " " . $ipAdresse . " " . $hostname . " " . $password . " " . $idVM . " " . $lastsOctetsIP, $retour);
             var_dump("Retour Exec() : ");
             var_dump($retour);
         }
         //TODO Commenter ce return pour tester le php exec et le script sur le serveur
         // On redirige vers la page de visualisation de la VM nouvellement créée
         return $this->redirect($this->generateUrl('glpmr_virtual_machine_consultation', array('id' => $id, 'eleve' => $eleve, 'retour' => $retour)));
     }
     return $this->render('GlpmrVirtualMachineBundle:Default:creation.html.twig', array('form' => $form->createView(), 'demande' => $demande));
 }