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)); }