[ Index ] |
PHP Cross Reference of Unnamed Project |
[Summary view] [Print] [Text view]
1 <?php 2 3 /** 4 5 * Gestion des cles pour clients Windows (mise a jour des cles) 6 * @Version $Id: cle-maj.php 3032 2008-06-14 14:21:47Z plouf $ 7 8 9 * @Projet LCS / SambaEdu 10 11 * @auteurs Sandrine Dangreville 12 13 * @Licence Distribue selon les termes de la licence GPL 14 15 * @note 16 17 */ 18 /** 19 20 * @Repertoire: registre 21 * file: cle-maj.php 22 23 */ 24 include "entete.inc.php"; 25 include "ldap.inc.php"; 26 include "ihm.inc.php"; 27 require "include.inc.php"; 28 29 require_once ("lang.inc.php"); 30 bindtextdomain('se3-registre', "/var/www/se3/locale"); 31 textdomain('se3-registre'); 32 33 echo "<h1>Importation des clés</h1>"; 34 35 // connexion(); 36 37 if (ldap_get_right("computers_is_admin", $login) != "Y") 38 die(gettext("Vous n'avez pas les droits suffisants pour accéder à cette fonction") . "</BODY></HTML>"); 39 40 // Aide 41 $_SESSION["pageaide"] = "Gestion_des_clients_windows#Description_du_processus_de_configuration_du_registre_Windows"; 42 43 $act = $_GET['action']; 44 if (!$act) { 45 $act = $_POST['action']; 46 } 47 $ajout = $_POST['ajout']; 48 49 switch ($act) { 50 default: 51 break; 52 53 case "file": 54 if (isset($_POST['upload'])) { // si formulaire soumis 55 if (file_exists("/tmp/rules.xml")) 56 unlink("/tmp/rules.xml"); 57 $content_dir = '/tmp/'; // dossier ou sera deplace le fichier 58 $tmp_file = $_FILES['fichier']['tmp_name']; 59 60 if (!is_uploaded_file($tmp_file)) { 61 exit(gettext("Le fichier est introuvable")); 62 } 63 $type_file = $_FILES['fichier']['type']; 64 if (!strstr($type_file, 'xml')) { 65 exit(gettext("Le fichier n'est pas un fichier xml")); 66 } 67 // on copie le fichier dans le dossier de destination 68 $name_file = $_FILES['fichier']['name']; 69 70 if (!move_uploaded_file($tmp_file, $content_dir . $name_file)) { 71 exit(gettext("Impossible de copier le fichier dans") . " $content_dir"); 72 } 73 74 $fichier_xml = $content_dir . $name_file; 75 echo gettext("Le fichier") . " $name_file " . gettext("a bien été uploadé"); 76 } 77 78 break; 79 80 case "maj": 81 $fichier_xml = "/usr/share/se3/data/rules.xml"; 82 83 break; 84 } 85 86 if (($fichier_xml) && (!$retval_rules)) { 87 echo "<br>" . gettext("Début de l'analyse du fichier") . " $fichier_xml<br>"; 88 89 /** 90 91 * Fonctions Analyse le debut d'un fichier XML 92 93 * @Parametres 94 * @Return 95 96 */ 97 function gestionnaire_debut($analyseur, $nom, $attribut) { 98 global $nb; 99 global $ligne; 100 $nb++; 101 102 if (sizeof($attribut)) { 103 foreach ($attribut as $cle => $valeur) { 104 $ligne = $ligne . $valeur . "-:-"; 105 } 106 } 107 } 108 109 /** 110 111 * Fonctions Analyse la fin d'un fichier XML 112 113 * @Parametres 114 * @Return 115 116 */ 117 function gestionnaire_fin($analyseur, $nom) { 118 global $nb; 119 global $ligne; 120 $nb--; 121 122 if ($nb < 5) { 123 $ligne = $ligne . ";&;"; 124 } else { 125 $ligne = $ligne . "--"; 126 } 127 } 128 129 /** 130 131 * Fonctions Analyse le texte d'un fichier XML 132 133 * @Parametres 134 * @Return 135 136 */ 137 function gestionnaire_texte($analyseur, $texte) { 138 global $nb; 139 global $ligne; 140 if ($nb > 2) { 141 $ligne = $ligne . $texte; 142 } 143 } 144 145 // 146 $nb = 0; 147 $analyseur_xml = xml_parser_create(); 148 xml_set_element_handler($analyseur_xml, "gestionnaire_debut", "gestionnaire_fin"); 149 xml_set_character_data_handler($analyseur_xml, "gestionnaire_texte"); 150 151 if (!($id_fichier = fopen($fichier_xml, "r"))) { 152 die(gettext("Impossible d'ouvrir le fichier XML !")); 153 } 154 155 while ($donnee = fread($id_fichier, filesize($fichier_xml))) { 156 if (!xml_parse($analyseur_xml, $donnee, feof($id_fichier))) { 157 die(sprintf(gettext("Une erreur XML %s s'est produite à la ligne %d et à la colonne %d."), xml_error_string(xml_get_error_code($analyseur_xml)), xml_get_current_line_number($analyseur_xml), xml_get_current_column_number($analyseur_xml))); 158 } 159 } 160 xml_parser_free($analyseur_xml); 161 if ($fichier_xml != "/usr/share/se3/data/rules.xml") 162 unlink($fichier_xml); 163 164 $patterns[0] = "|CHECKBOX|"; 165 $patterns[1] = "|EDIT|"; 166 $patterns[2] = "|#DEL|"; 167 $patterns[3] = "|SELECT|"; 168 $patterns[4] = "|LECTEURS|"; 169 $patterns[5] = "|CHAINE|"; 170 $patterns[6] = "|REG_|"; 171 172 $replacements[0] = "restrict"; 173 $replacements[1] = "config"; 174 $replacements[2] = "SUPPR"; 175 $replacements[3] = "config"; 176 $replacements[4] = "config"; 177 $replacements[5] = "SZ"; 178 $replacements[6] = ""; 179 180 $liste = preg_replace($patterns, $replacements, $ligne); 181 182 $categorie = preg_replace("/\"/", "", $categorie); 183 $categorie = explode(";&;", $liste); 184 for ($j; $j < count($categorie); $j++) { 185 // print "$categorie[$j]<br>\n"; 186 if ((preg_match("/INFO/", $categorie[$j]))) { 187 $oldnom = $nom; 188 $tab = preg_split("#-:-#", $categorie[$j]); 189 if (count($tab) == 3) { 190 list($nom, $rest) = $tab; 191 $sscat = ""; 192 } elseif (count($tab) == 2) { 193 $reste = $tab[1]; 194 $tab2 = preg_split("#--#", $reste); 195 if ("$tab2[1]" == "") { 196 $sscat = $tab2[2]; 197 } else { 198 $sscat = $tab2[1]; 199 } 200 } 201 } else { 202 if (preg_match("/REGISTRE/", $categorie[$j])) { 203 list($partcomp1, $partcomp2, $partcomp3) = preg_split("#-:-#", $categorie[$j]); 204 list($OS, $reg, $Intitule, $type, $genre) = preg_split("#--#", $partcomp2); 205 list($finreg, $valeur, $antidote, $comment) = preg_split("#--#", $partcomp3); 206 if ($reg) { 207 list($poub, $reg) = preg_split("#reg:///#", $reg); 208 } 209 if ("$genre" == "") { 210 $genre = "EXPAND_SZ"; 211 } 212 $sscat = preg_replace("/\"/", "", $sscat); 213 $sscat = preg_replace("/([\r\n])/", "", $sscat); 214 $part1 = preg_replace("/\"/", "", $part1); 215 $envoi = trim($envoi) . trim($Intitule) . "--" . trim($valeur) . "--" . trim($antidote) . "--REG_" . trim($genre) . "--" . trim($OS) . "--" . trim($type) . "--" . trim($reg) . "\\" . trim($finreg) . "--" . trim($comment) . "--" . trim($nom) . "--" . trim($sscat) . ";&;"; 216 } 217 } 218 } 219 } 220 221 if ($envoi) { 222 $envoi = preg_replace("#(\r\n)|(\n)|(\r)#", "", $envoi); 223 echo "<br>" . gettext("Première analyse des clés à importer en cours :") . " <br>"; 224 if (mb_detect_encoding($envoi, "UTF-8")) { 225 $envoi = mb_convert_encoding($envoi, 'ISO-8859-1', 'UTF-8'); 226 } 227 $brutout = enleveantislash($envoi); 228 $result = preg_split("/;&;/", $brutout); 229 $nombre = count($result); 230 $nombre1 = $nombre - 1; 231 232 echo "<br><FORM METHOD=POST ACTION=\"cle-maj.php\" name=\"ajoute\">"; 233 connexion(); 234 echo "<table border=\"1\">"; 235 echo "<tr><td>" . gettext("Selectionner") . "</td><td>" . gettext("Etat") . "</td><td>" . gettext("Intitule") . "</td><td>" . gettext("Valeur") . "</td><td>" . gettext("Antidote") . "</td><td>" . gettext("Genre") . "</td><td>OS</td><td>" . gettext("Type") . "</td><td>" . gettext("Chemin") . "</td><td>" . gettext("Commentaires") . "</td><td>" . gettext("Categorie") . "</td></tr>"; 236 237 for ($j = 0; $j < $nombre; $j++) { 238 $export[$j] = enlevedoublebarre($result[$j]); 239 $cle = preg_split("/--/", $export[$j]); 240 241 if ($cle[6]) { 242 $cletrim = ajoutedoublebarre(($cle[6])); 243 $query = "SELECT Intitule,valeur,antidote,genre,OS,type,chemin,comment,categorie,sscat FROM corresp WHERE chemin='$cletrim';"; 244 $resultat = mysql_query($query); 245 if (mysql_num_rows($resultat)) { 246 $row = mysql_fetch_array($resultat); 247 if ($row[6]) { 248 if (($row[0] <> $cle[0]) or ($row[1] <> $cle[1]) or ($row[2] <> $cle[2]) or ($row[3] <> $cle[3]) or ($row[4] <> $cle[4]) or ($row[5] <> $cle[5]) or ($row[6] <> $cle[6]) or ($row[7] <> $cle[7]) or ($row[8] <> $cle[8]) or ($row[9] <> $cle[9])) { 249 echo "<tr><td><INPUT TYPE=\"checkbox\" NAME=\"test$j\" value=\"".str_replace("\"",""",$export[$j])."\" CHECKED ></td><td bgcolor=\"#FF3300\">" . gettext("A Modifier ?") . "</td>"; 250 $cle[6] = enlevedoublebarre($cle[6]); 251 for ($i = 0; $i < 10; $i++) { 252 $color = ""; 253 $title = ""; 254 if ($row[$i] <> $cle[$i]) { 255 $color = "#FF3300"; 256 $title = "ancien : " . $row[$i] . "<br> nouveau : "; 257 } 258 echo "<td bgcolor=\"" . $color . "\"><div>" . $title . $cle[$i] . "</div></td>"; 259 $title = ""; 260 } 261 echo "</tr>"; 262 $exist++; 263 } 264 } 265 } else { 266 $nouv++; 267 $valeur = str_replace("\"", """, $export[$j]); 268 echo "<tr><td><INPUT TYPE=\"checkbox\" NAME=\"test$j\" value=\"".str_replace("\"",""",$valeur)."\" CHECKED></td><td bgcolor=\"00CC33\" >New</td>"; 269 $cle[6] = enlevedoublebarre($cle[6]); 270 for ($i = 0; $i < 10; $i++) { 271 echo "<td>" . $cle[$i] . "</td>\n"; 272 } 273 echo "</tr>"; 274 } 275 } 276 } 277 echo"</table><INPUT TYPE=\"hidden\" name=\"ajout\" value=\"7\">"; 278 echo"<INPUT TYPE=\"hidden\" name=\"nombre\" value=\"$nombre1\">"; 279 280 if ($nouv) { 281 echo gettext("Attention par défault, les clés déjà existantes et à modifier seront modifiées !!") . " ( $exist )<br>"; 282 echo "<INPUT TYPE=\"submit\" value=\"" . gettext("Pret pour l'importation des clés nouvelles!") . "\"></FORM>"; 283 } else { 284 echo "<br>" . gettext("Pas de clés nouvelles !!") . "<br>"; 285 if ($exist) { 286 echo $exist." Cles a modifier<br><INPUT TYPE=\"submit\" value=\"" . gettext("Continuer") . "\"></FORM>"; 287 } 288 } 289 290 mysql_close(); 291 } 292 293 if ($ajout == 7) { 294 295 $test = $_POST['test']; 296 $test = preg_replace("/([\r\n])|([\n])|([\r])/", "", $test); 297 $test = preg_replace("/([\r\n])/", "", $test); 298 echo "<table border=1><tr><td>" . gettext("Etat") . "</td><td>" . gettext("Intitule") . "</td><td>" . gettext("Valeur") . "</td><td>" . gettext("Antidote") . "</td><td>" . gettext("Genre") . "</td><td>OS</td><td>" . gettext("Type") . "</td><td>" . gettext("Chemin") . "</td><td>" . gettext("Commentaires") . "</td><td>" . gettext("Categorie") . "</td></tr>"; 299 $nb = $_POST['nombre']; 300 301 for ($j = 0; $j < $nb; $j++) { 302 $valeur = str_replace(""", "\"", $_POST['test' . $j]); 303 $cle[$j] = $valeur; 304 // echo $valeur."<br>"; 305 if ($cle[$j]) { 306 $cleok = preg_split("/--/", $cle[$j]); 307 connexion(); 308 309 if ($cleok[5] == "config") { 310 $cleok[2] = ""; 311 } 312 $cleok[8] = strtolower($cleok[8]); 313 $cleok[9] = strtolower($cleok[9]); 314 $cleok[9] = preg_replace("/([\r\n])/", "", $cleok[9]); 315 $cleok[8] = trim($cleok[8]); 316 $cleok[9] = trim($cleok[9]); 317 $cletrim = ($cleok[6]); 318 $query1 = "SELECT chemin,CleID FROM corresp WHERE '".$cletrim."'=chemin"; 319 $resultat1 = mysql_query($query1); 320 $num = mysql_num_rows($resultat1); 321 if (!$num) { 322 echo $query."<br>"; 323 $query = "INSERT INTO corresp (Intitule,valeur,antidote,genre,OS,type,chemin,comment,categorie,sscat) VALUES ('$cleok[0]','$cleok[1]','$cleok[2]','$cleok[3]','$cleok[4]','$cleok[5]','$cleok[6]','$cleok[7]','$cleok[8]','$cleok[9]')"; 324 $insert = mysql_query($query); 325 // echo $query; 326 // if ($cleok[5]=="restrict") 327 // { 328 $query = "SELECT cleID FROM corresp WHERE '$cleok[6]'=chemin;"; 329 $resultat = mysql_query($query); 330 $row = mysql_fetch_array($resultat); 331 $querymod = "SELECT `cle` FROM modele WHERE `mod`='norestrict'"; 332 $resultmod = mysql_query($querymod); 333 if (!mysql_num_rows($resultmod)) { 334 $query2 = "INSERT INTO modele( `etat`, `cle`, `mod` ) VALUES ('0','$row[0]','norestrict');"; 335 $insert2 = mysql_query($query2); 336 } 337 338 // } 339 //insertion dans le modele norestrict 340 echo "<tr><td>" . gettext("Fait") . "</td>"; 341 for ($i = 0; $i < 9; $i++) { 342 $cleok[$i] = enlevedoublebarre($cleok[$i]); 343 $cleok[$i] = enleveantislash($cleok[$i]); 344 echo "<td>$cleok[$i] </td>"; 345 } 346 echo "</tr>"; 347 } else { 348 $query1 = "SELECT chemin,cleID FROM corresp WHERE chemin='$cletrim';"; 349 $resultat1 = mysql_query($query1); 350 if (mysql_num_rows($resultat1)) { 351 $row = mysql_fetch_array($resultat1); 352 353 $query = "UPDATE corresp SET intitule='$cleok[0]' where cleID='$row[1]'"; 354 $insert = mysql_query($query); 355 $query = "UPDATE corresp SET valeur='$cleok[1]' where cleID='$row[1]'"; 356 $insert = mysql_query($query); 357 $query1 = "UPDATE corresp SET antidote='$cleok[2]' where cleID='$row[1]'"; 358 $insert = mysql_query($query1); 359 $query1 = "UPDATE corresp SET genre='$cleok[3]' where cleID='$row[1]'"; 360 $insert = mysql_query($query1); 361 $query1 = "UPDATE corresp SET OS='$cleok[4]' where cleID='$row[1]'"; 362 $insert = mysql_query($query1); 363 $query1 = "UPDATE corresp SET type='$cleok[5]' where cleID='$row[1]'"; 364 $insert = mysql_query($query1); 365 $query1 = "UPDATE corresp SET comment='$cleok[7]' where cleID='$row[1]'"; 366 $insert = mysql_query($query1); 367 $query1 = "UPDATE corresp SET categorie='$cleok[8]' where cleID='$row[1]'"; 368 $insert = mysql_query($query1); 369 $query1 = "UPDATE corresp SET sscat='$cleok[9]' where cleID='$row[1]'"; 370 $insert = mysql_query($query1); 371 echo "<tr><td>" . gettext("Modifié") . "</td>"; 372 373 for ($i = 0; $i < 9; $i++) { 374 $cleok[$i] = enlevedoublebarre($cleok[$i]); 375 $cleok[$i] = enleveantislash($cleok[$i]); 376 echo "<td>$cleok[$i] </td>"; 377 } 378 echo "</tr>"; 379 } 380 } 381 $testclecree++; 382 } else { 383 $testcleignoree++; 384 } 385 } 386 echo "</table>"; 387 if ($testclecree) { 388 echo "<br> $testclecree " . gettext("clés ont été créées ou modifiées") . " <br>"; 389 } 390 391 retour(); 392 } 393 394 include("pdp.inc.php"); 395 ?>
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 |