From b39d06a662d952e805e82bc1038f32f47953aec8 Mon Sep 17 00:00:00 2001 From: jbousquie Date: Thu, 24 Nov 2016 15:06:16 +0100 Subject: [PATCH] =?UTF-8?q?affichage=20donn=C3=A9es=20r=C3=A9cup=20salles?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- admin/recup_salles.php | 93 +++++++++++++++++++----------------------- 1 file changed, 41 insertions(+), 52 deletions(-) diff --git a/admin/recup_salles.php b/admin/recup_salles.php index 6d69da2..b8773ff 100644 --- a/admin/recup_salles.php +++ b/admin/recup_salles.php @@ -2,6 +2,7 @@ // Récupération des salles et des machines dans l'AD, chargement dans la base include_once('winlog_admin_conf.php'); include_once('db_access.php'); +include_once('custom.php'); // Connexion à la base winlog @@ -14,16 +15,23 @@ $req_purge_compte = "TRUNCATE comptes"; $ldap_con = ldap_connect($ldap_host, $ldap_port); $ldap_auth = ldap_bind($ldap_con, $ldap_rdn, $ldap_passwd); -// fonction d'insertion des machines dans la base de données à partir des base, filtre et attributs LDAP +// Gonction d'insertion des machines dans la base de données à partir des base, filtre et attributs LDAP // $salles est explicitement passé par référence -function Insere_machines($ldap_con, $ldap_base, $ldap_filtre, $ldap_attr, $db, &$salles) { +// retourne le nombre d'enregistrements ajoutés dans la base +function Insere_machines(&$ldap_con, $ldap_base, $ldap_filtre, &$ldap_attr, &$exclusion, &$db, &$salles) { + $res = ldap_search($ldap_con, $ldap_base, $ldap_filtre, $ldap_attr); $entry = ldap_get_entries($ldap_con, $res); + $count = 0; + for ($i = 0; $i < $entry["count"]; $i++) { - $dn_tab = ldap_explode_dn($entry[$i]["dn"],1); - $nom_salle = $dn_tab[1]; // le nom de la salle dans laquelle elle se trouve est le 2° élément du DN d'une machine - array_push($salles, $nom_salle); // tableau des salles construit à la volée $machine_id = $entry[$i]["cn"][0]; + $dn_tab = ldap_explode_dn($entry[$i]["dn"], 1); + if ( in_array($dn_tab, $exclusion) ) { + continue; + } + $nom_salle = SalleDeMachine($machine_id, $dn_tab[1]); // appel custom, le nom de la salle dans laquelle elle se trouve est le 2° élément du DN d'une machine + array_push($salles, $nom_salle); // tableau des salles construit à la volée $os = ""; $os_sp = ""; $os_version = ""; @@ -39,34 +47,11 @@ function Insere_machines($ldap_con, $ldap_base, $ldap_filtre, $ldap_attr, $db, & $req_machine = "INSERT INTO machines (machine_id, salle, os, os_sp, os_version) VALUES ('{$machine_id}', '{$nom_salle}', '{$os}', '{$os_sp}', '{$os_version}')"; db_query($db, $req_machine); + $count = $count + 1; } + return $count; }; -// Fonction d'insertion des personnes dans la base de données à partir des base, filtre et attributs LDAP -// Si le $libelle_type est passé, il remplace la valeur du champ groupe dans la table -function Insere_personnes($ldap_con, $ldap_base, $ldap_filtre, $ldap_attr, $db, $libelle_type) { - - $libelle_type = db_escape_string($db, $libelle_type); - $res = ldap_search($ldap_con, $ldap_base, $ldap_filtre, $ldap_attr); - $entry = ldap_get_entries($ldap_con, $res); - - for ($i = 0; $i < $entry["count"]; $i++) { - $dn_tab = ldap_explode_dn($entry[$i]["dn"], 1); - $groupe = array_key_exists(1, $dn_tab) ? $dn_tab[1] : ""; // s'il existe, le groupe est le $dn_tab[1] - $username = array_key_exists("samaccountname", $entry[$i]) ? $entry[$i]["samaccountname"][0] : $entry[$i]["cn"][0]; // le username est le samaccountname s'il existe, le cn sinon - $libelle_groupe = $libelle_type ? $libelle_type : $groupe; - $prenom = ""; - $nom = ""; - if (array_key_exists("givenname", $entry[$i])) { - $prenom = db_escape_string($db, $entry[$i]["givenname"][0]); - } - if (array_key_exists("sn", $entry[$i])) { - $nom = db_escape_string($db, $entry[$i]["sn"][0]); - } - $req = "INSERT INTO comptes (username, prenom, nom, groupe) VALUES ('{$username}', '{$prenom}', '{$nom}', '{$libelle_groupe}')"; - db_query($db, $req); - } -}; // Insertion des machines @@ -75,42 +60,46 @@ $salles = array(); // tableau des salles contenant des machines db_query($db, $req_purge_machine); // boucle sur chaque branche déclarée dans $ldap_machines +$nb_total = 0; +$nb = 0; foreach ($ldap_machines as $ldap_branche) { $ldap_base = $ldap_branche["base"]; $ldap_filtre = $ldap_branche["filtre"]; $ldap_attr = $ldap_branche["attr"]; - Insere_machines($ldap_con, $ldap_base, $ldap_filtre, $ldap_attr, $db, $salles); + $nb = Insere_machines($ldap_con, $ldap_base, $ldap_filtre, $ldap_attr, $OU_machines_exclusion, $db, $salles); + $nb_total = $nb_total + $nb; } // Insertion des salles à partir du tableau $salles remplis par Insere_machines() // ============================================================================== -array_unique($salles); // suppression des doublons dans le tableau des salles +$salles_uniques = array_unique($salles); // suppression des doublons dans le tableau des salles db_query($db, $req_purge_salle); -foreach($salles as $s) { +$nb_salles = 0; +foreach($salles_uniques as $s) { $req_salle = "INSERT INTO salles (salle_id) VALUES ('{$s}')"; db_query($db, $req_salle); -} - - -// Insertion des personnes -// ======================= - -// purge initiale de la table -db_query($db, $req_purge_compte); - -// boucle sur chaque branche déclarée dans $ldap_personnes -foreach ($ldap_personnes as $ldap_branche) { - $ldap_base = $ldap_branche["base"]; - $ldap_filtre = $ldap_branche["filtre"]; - $ldap_attr = $ldap_branche["attr"]; - $libelle_type = $ldap_branche["type"]; - Insere_personnes($ldap_con, $ldap_base, $ldap_filtre, $ldap_attr, $db, $libelle_type); + $nb_salles = $nb_salles + 1; } // fermeture ldap ldap_close($ldap_con); - -// retour sur la page salles_live.php -header('Location: '.$winlog_url.'/admin/salles_live.php'); ?> + + + + Winlog + + + + +

WINLOG

+

Récupération des machines et des salles

+

Ce traitement vient de récupérer les machines et les salles depuis le serveur Active Directory.
+ Les informations relatives aux machines et aux salles (noms des salles ou des machines, adresses IP, etc) préalablement dans la base Winlog viennent d'être effacées.

+

Nombre de machines chargées dans la base :
+ Nombre de salles chargées dans la base :

+

Retour menu principal

+ + + \ No newline at end of file