[ Index ] |
PHP Cross Reference of Unnamed Project |
[Summary view] [Print] [Text view]
1 <?php 2 3 4 /** 5 6 * Cree un nouveau parc 7 * @Version $Id: create_parc.php 7313 2012-06-29 16:00:20Z plouf $ 8 9 * @Projet LCS / SambaEdu 10 11 * @auteurs Equipe Tice académie de Caen 12 13 * @Licence Distribue selon les termes de la licence GPL 14 15 * @note 16 17 */ 18 19 /** 20 21 * @Repertoire: parcs/ 22 * file: create_parc.php 23 24 */ 25 26 27 28 29 include "entete.inc.php"; 30 include "ldap.inc.php"; 31 include "ihm.inc.php"; 32 33 // Traduction 34 require_once ("lang.inc.php"); 35 bindtextdomain('se3-parcs',"/var/www/se3/locale"); 36 textdomain ('se3-parcs'); 37 38 39 40 $parc=$_POST['parc']; 41 if ($parc==""){ $parc=$_GET['parc']; } 42 $newparc=$_POST['newparc']; 43 $create_parc=$_POST['create_parc']; 44 $createtemplateparc=$_POST['createtemplateparc']; 45 $new_computers=$_POST['new_computers']; 46 if($new_computers=="") { $new_computers=$_GET['new_computers']; } 47 $creationdossiertemplate=$_POST['creationdossiertemplate']; 48 if ($creationdossiertemplate=="") { $creationdossiertemplate=$_GET['creationdossiertemplate']; } 49 50 51 if (is_admin("computers_is_admin",$login)=="Y") { 52 53 //aide 54 $_SESSION["pageaide"]="Gestion_des_parcs#Ajout_de_machines"; 55 56 // Titre 57 echo "<h1>".gettext("Ajout - Création ")."</h1>"; 58 59 // Affichage du formulaire de sélection de parc 60 if ((!isset($parc))&&(!isset($newparc))) { 61 // Ajout de nouvelles machines dans les parcs 62 echo "<H3>".gettext("Sélection du parc à alimenter")."</H3>"; 63 $list_parcs=search_machines("objectclass=groupOfNames","parcs"); 64 if ( count($list_parcs)>0) { 65 echo "<FORM method=\"post\" action=\"create_parc.php\">\n"; 66 echo "<SELECT NAME=\"parc\" SIZE=\"1\">"; 67 for ($loop=0; $loop < count($list_parcs); $loop++) { 68 echo "<option value=\"".$list_parcs[$loop]["cn"]."\">".$list_parcs[$loop]["cn"]."\n"; 69 } 70 echo "</SELECT> \n"; 71 72 echo "<input type=\"hidden\" name=\"create_parc\" value=\"$create_parc\">\n"; 73 for ($loop=0; $loop < count($new_computers); $loop++) { 74 echo "<input type=\"hidden\" name=\"new_computers[]\" value=\"".$new_computers[$loop]."\">\n"; 75 } 76 77 echo "<input type=\"submit\" value=\"".gettext("Valider")."\">\n"; 78 echo "<u onmouseover=\"return escape".gettext("('Sélectionner un parc dans lequel vous souhaitez ajouter des machines.')")."\"><img name=\"action_image2\" src=\"../elements/images/system-help.png\" alt=\"help\"></u> "; 79 echo "</FORM>\n"; 80 } 81 echo "<BR>"; 82 83 84 // Création de nouveau parc 85 86 // on ne propose pas de creer un nouveau parc si la page d'origine est recherche 87 if ($new_computers == "") { 88 echo "<H3>".gettext("Création d'un nouveau parc")."</H3>"; 89 echo "<FORM method=\"post\" action=\"create_parc.php\">\n"; 90 echo "<INPUT TYPE=\"text\" SIZE=\"10\" name=\"newparc\">\n"; 91 92 echo "<u onmouseover=\"return escape".gettext("('Indiquer le nom du nouveau parc que vous souhaitez créer. Ne pas utiliser de caractères étranges.')")."\"><img name=\"action_image2\" src=\"../elements/images/system-help.png\" alt=\"help\"></u> "; 93 94 //============================================================= 95 //AJOUT 96 echo gettext("Créer le dossier de template pour ce parc ?"); 97 echo "<u onmouseover=\"return escape".gettext("('La création du template associé, permet de mettre en place des scripts de connexion pour ce parc. Il est toujours possible de le créer après.')")."\"><img name=\"action_image2\" src=\"../elements/images/system-help.png\" alt=\"help\"></u> "; 98 echo gettext("Oui:")."<INPUT TYPE=\"radio\" VALUE=\"yes\" name=\"createtemplateparc\"> - \n"; 99 echo "<INPUT TYPE=\"radio\" VALUE=\"no\" name=\"createtemplateparc\" CHECKED>:".gettext("Non")."<br>\n"; 100 //============================================================= 101 102 echo "<input type=\"submit\" value=\"".gettext("Valider")."\">\n"; 103 echo "</FORM>\n"; 104 105 106 // Creation des templates si pas deje crees 107 echo "<br>"; 108 echo "<H3>".gettext("Créer les dossiers de template pour les parcs existants")."</H3>"; 109 $list_parcs=search_machines("objectclass=groupOfNames","parcs"); 110 if ( count($list_parcs)>0) { 111 echo "<FORM method=\"post\" action=\"create_parc.php\">\n"; 112 echo "<table>\n"; 113 echo "<tr><td valign=\"top\">".gettext("Créer les dossiers pour les parcs:")." </td>\n"; 114 if (count($list_parcs)>10) $size=10; else $size=count($list_parcs); 115 echo "<td><SELECT NAME=\"parc[]\" SIZE=\"$size\" multiple=\"multiple\">"; 116 $cpt_verif=0; 117 for ($loop=0; $loop < count($list_parcs); $loop++) { 118 $tmpparc=$list_parcs[$loop]["cn"]; 119 if(!file_exists("/home/templates/$tmpparc")){ 120 echo "<option value=\"".$list_parcs[$loop]["cn"]."\">".$list_parcs[$loop]["cn"]."</option>\n"; 121 $cpt_verif++; 122 } 123 } 124 125 echo "</SELECT></td></tr>\n"; 126 echo "</table>\n"; 127 echo "<input type=\"hidden\" name=\"creationdossiertemplate\" value=\"oui\">\n"; 128 // echo "<input type=\"hidden\" name=\"parc\" value=\"temoin\">\n"; 129 echo "<input type=\"submit\" value=\"".gettext("Valider")."\">\n"; 130 echo "</FORM>\n"; 131 if($cpt_verif==0){ 132 echo "<p>".gettext("Tous les parcs existants ont leur dossier de template créé.")."</p>\n"; 133 } 134 //echo "<p>Dans le cas o— le dossier de template existe déjà, il n'est pas modifié et rien n'est ajouté.</p>"; 135 } 136 /**********************************************************************************/ 137 } 138 139 // Debut du traitement 140 } else { 141 // Affichage du formulaire de remplissage du parc 142 if ($creationdossiertemplate!="oui") { 143 if ( !$create_parc) { 144 if (isset($newparc)) { 145 146 //============================================================= 147 //PROPOSITION: 148 //Passer d'autorité en minuscules le nom du parc 149 $newparc=strtolower($newparc); 150 151 152 if(strlen($newparc)==0){ 153 echo "<p>".gettext("Le nom du parc ne doit pas être vide.")."</p>\n"; 154 include ("pdp.inc.php"); 155 exit; 156 } 157 158 //On pourrait meme ajouter un test ereg plus haut pour exclure les caracteres speciaux 159 //(je suppose que le test est aussi fait au niveau du script PERL plus bas;o) 160 if(strlen(preg_replace("/[0-9a-z_]/","",$newparc))!=0){ 161 echo "<p>".gettext("Le nom du parc proposé comporte des caractères non valides.")."<br>\n"; 162 echo gettext("Veuillez n'utiliser que des caractères alphanumériques en minuscules (<i>surtout les chiffres;o</i>) et éventuellement le caractère '_'.")."</p>\n"; 163 echo "<br><center>"; 164 echo "<a href=create_parc.php>Retour</a>"; 165 echo "</center>"; 166 include ("pdp.inc.php"); 167 exit; 168 } else { 169 //============================================================= 170 // Création d'un nouveau parc 171 echo gettext("Création du parc ").$_POST['newparc']; 172 echo "<br>"; 173 echo gettext("Vous devez obligatoirement ajouter une machine dedans."); 174 echo "<u onmouseover=\"return escape".gettext("('Vous devez obligatoirement mettre une machine dans le nouveau parc, sinon il ne sera pas créé.')")."\"><img name=\"action_image2\" src=\"../elements/images/system-help.png\" alt=\"help\"></u> "; 175 echo "<BR>\n"; 176 $parc=$newparc; 177 //============================================================= 178 } 179 } 180 181 $filtrecomp=isset($_POST['filtrecomp']) ? $_POST['filtrecomp'] : ""; 182 183 echo "<H3>".gettext("Alimentation du parc")." <U>$parc</U></H3>"; 184 // Filtrage des noms 185 echo "<FORM action=\"create_parc.php\" method=\"post\">\n"; 186 echo "<P>".gettext("Lister les noms contenant: "); 187 echo "<INPUT TYPE=\"text\" NAME=\"filtrecomp\"\n VALUE=\"$filtrecomp\" SIZE=\"8\">"; 188 189 echo "<input type=\"hidden\" name=\"createtemplateparc\" value=\"$createtemplateparc\">\n"; 190 if (isset($newparc)) { 191 echo "<input type=\"hidden\" name=\"newparc\" value=\"$newparc\">\n"; 192 } 193 if (isset($parc)) { 194 echo "<input type=\"hidden\" name=\"parc\" value=\"$parc\">\n"; 195 } 196 echo "<input type=\"submit\" value=\"".gettext("Valider")."\">\n"; 197 echo "</FORM>\n"; 198 // Initialisation: 199 $list_new_machines=array(); 200 // Lecture des membres du parc 201 $mp=gof_members($parc,"parcs",1); 202 // Creation d'un tableau des nouvelles machines à intégrer 203 if ($filtrecomp == '') $filtrel = '*'; 204 else $filtrel = "*$filtrecomp*"; 205 $list_machines=search_machines("(&(cn=$filtrel)(objectClass=ipHost))","computers"); 206 // tri des machines déja présentes dans le parc 207 $lmloop=0; 208 $mpcount=count($mp); 209 for ($loop=0; $loop < count($list_machines); $loop++) { 210 $loop1=0; 211 $mach=$list_machines[$loop]["cn"]; 212 while (("$mp[$loop1]" != "$mach") && ($loop1 < $mpcount)) $loop1++; 213 if ("$mp[$loop1]" != "$mach") $list_new_machines[$lmloop++]=$mach; 214 } 215 // Affichage menu de sélection des machines à ajouter au parc 216 if ( count($list_new_machines)>15) $size=15; else $size=count($list_new_machines); 217 if ( count($list_new_machines)>0) { 218 sort($list_new_machines); 219 $form = "<form action=\"create_parc.php\" method=\"post\">\n"; 220 $form.="<p>".gettext("Sélectionnez les nouvelles machines à intégrer au parc:")."</p>\n"; 221 $form.="<p><select size=\"".$size."\" name=\"new_computers[]\" multiple=\"multiple\">\n"; 222 echo $form; 223 for ($loop=0; $loop < count($list_new_machines); $loop++) { 224 if ("$list_new_machines[$loop]" != "$netbios_name") echo "<option value=\"".$list_new_machines[$loop]."\">".$list_new_machines[$loop]; 225 } 226 $form="</select></p>\n"; 227 228 $form.="<input type=\"hidden\" name=\"createtemplateparc\" value=\"$createtemplateparc\">\n"; 229 $form.="<input type=\"hidden\" name=\"newparc\" value=\"$newparc\">\n"; 230 $form.="<input type=\"hidden\" name=\"create_parc\" value=\"true\">\n"; 231 $form.="<input type=\"hidden\" name=\"parc\" value=\"$parc\">\n"; 232 $form.="<input type=\"reset\" value=\"".gettext("Réinitialiser la sélection")."\">\n"; 233 $form.="<input type=\"submit\" value=\"".gettext("Valider")."\">\n"; 234 $form.="</form>\n"; 235 echo $form; 236 } else { 237 $message = gettext("Il n'y a pas de nouvelles machines à ajouter !"); 238 echo $message; 239 } 240 } else { 241 242 // Remplissage du parc dans l'annuaire 243 // Et éventuellement création 244 // plus création du template 245 echo "<H3>".gettext("Alimentation du parc")." <U>$parc</U></H3>"; 246 echo "<P>".gettext("Vous avez sélectionné "). count($new_computers).gettext(" machine(s)")."<BR>\n"; 247 if((count($new_computers)=="0") && ($_POST['newparc']!="")) { 248 echo "<br>"; 249 echo gettext("Vous n'avez pas sélectionné au moins une machine.<br>Le parc ne sera pas créé."); 250 } 251 for ($loop=0; $loop < count($new_computers); $loop++) { 252 $computer=$new_computers[$loop]; 253 $cDn = "cn=".$computer.",".$computersRdn.",".$ldap_base_dn; 254 $pDn = "cn=".$parc.",".$parcsRdn.",".$ldap_base_dn; 255 256 // Création du template au premier passage uniquement 257 if(($_POST['createtemplateparc']=="yes") && $loop==0) { 258 echo "<p>".gettext("Création du dossier du template de parc "); 259 echo $_POST['newparc']; 260 echo "</p>"; 261 exec ("/bin/bash /usr/share/se3/scripts/createtemplateparc.sh \"$newparc\""); 262 } 263 264 echo gettext("Ajout de l'ordinateur")." $computer ".gettext("au parc")." <U>$parc</U><BR>"; 265 266 // Si on est en train de créer un nouveau parc 267 if ($newparc!="") { 268 exec ("/usr/share/se3/sbin/entryAdd.pl \"cn=$newparc,$parcsRdn,$ldap_base_dn\" \"cn=$newparc\" \"objectClass=groupOfNames\" \"member=$cDn\""); 269 exec ("/usr/share/se3/sbin/printers_group.pl"); 270 271 // Lance le script pour wpkg 272 $script_wpkg="/usr/share/se3/scripts/update_hosts_profiles_xml.sh"; 273 if (file_exists($script_wpkg)) { 274 exec ("/bin/bash /usr/share/se3/scripts/update_hosts_profiles_xml.sh ou=Computers ou=Parcs $ldap_base_dn"); 275 exec ("/bin/bash /usr/share/se3/scripts/update_droits_xml.sh"); 276 } 277 $newparc=""; 278 } else { 279 // Sinon on ajoute simplement 280 exec ("/usr/share/se3/sbin/groupAddEntry.pl \"$cDn\" \"$pDn\""); 281 282 // NJ 10-2004 reconstruction des partages imprimantes par parc 283 exec ("/usr/share/se3/sbin/printers_group.pl"); 284 285 // On relance le script pour italc 286 exec ("/usr/bin/sudo /usr/share/se3/scripts/italc_generate.sh"); 287 288 // Lance le script pour wpkg 289 $script_wpkg="/usr/share/se3/scripts/update_hosts_profiles_xml.sh"; 290 if (file_exists($script_wpkg)) { 291 exec ("/bin/bash /usr/share/se3/scripts/update_hosts_profiles_xml.sh ou=Computers ou=Parcs $ldap_base_dn"); 292 exec ("/bin/bash /usr/share/se3/scripts/update_droits_xml.sh"); 293 } 294 echo "<BR>"; 295 } 296 } 297 298 echo "<BR><BR><CENTER>\n"; 299 echo "<A HREF=\"show_parc.php?parc=$parc\">Retour</A>"; 300 } 301 } 302 303 // Création des templates apres 304 if($creationdossiertemplate=="oui") { 305 echo "<H3>".gettext("Création des dossiers de parc")."</H3>\n"; 306 if(count($parc)==0){ 307 echo "<p><b>".gettext("Erreur").":</b> ".gettext("Vous n'avez pas sélectionné de parc;o).")."</p>"; 308 } else { 309 for($loop=0;$loop<count($parc);$loop++){ 310 echo "<p>".gettext("Création du dossier de template pour le parc")." $parc[$loop]</p>\n"; 311 exec ("/bin/bash /usr/share/se3/scripts/createtemplateparc.sh \"$parc[$loop]\""); 312 } 313 } 314 315 } 316 317 318 319 } 320 } 321 322 include ("pdp.inc.php"); 323 ?>
title
Description
Body
title
Description
Body
title
Description
Body
title
Body
Generated: Tue Mar 17 22:47:18 2015 | Cross-referenced by PHPXref 0.7.1 |