[ Index ]

PHP Cross Reference of Unnamed Project

title

Body

[close]

/se3master/var/www/se3/registre/ -> cle-maj.php (source)

   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&#233;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&#233;der &#224; 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 &#233t&#233 upload&#233");
  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&#233but 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 &#224; la ligne %d et &#224; 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&#232;re analyse des cl&#233;s &#224; 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("\"","&#34;",$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("\"", "&#34;", $export[$j]);
 268                  echo "<tr><td><INPUT TYPE=\"checkbox\" NAME=\"test$j\" value=\"".str_replace("\"","&#34;",$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&#233;fault, les cl&#233;s d&#233;j&#224; existantes et &#224; modifier seront modifi&#233;es !!") . " ( $exist )<br>";
 282          echo "<INPUT TYPE=\"submit\" value=\"" . gettext("Pret pour l'importation des cl&#233s nouvelles!") . "\"></FORM>";
 283      } else {
 284          echo "<br>" . gettext("Pas de cl&#233;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("&#34;", "\"", $_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]&nbsp;</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&#233") . "</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]&nbsp;</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&#233;s ont &#233;t&#233; cr&#233;&#233;es ou modifi&#233;es") . " <br>";
 389      }
 390  
 391      retour();
 392  }
 393  
 394  include("pdp.inc.php");
 395  ?>


Generated: Tue Mar 17 22:47:18 2015 Cross-referenced by PHPXref 0.7.1