affichage données récup salles
This commit is contained in:
parent
0fff5910e9
commit
b39d06a662
@ -2,6 +2,7 @@
|
|||||||
// Récupération des salles et des machines dans l'AD, chargement dans la base
|
// Récupération des salles et des machines dans l'AD, chargement dans la base
|
||||||
include_once('winlog_admin_conf.php');
|
include_once('winlog_admin_conf.php');
|
||||||
include_once('db_access.php');
|
include_once('db_access.php');
|
||||||
|
include_once('custom.php');
|
||||||
|
|
||||||
|
|
||||||
// Connexion à la base winlog
|
// Connexion à la base winlog
|
||||||
@ -14,16 +15,23 @@ $req_purge_compte = "TRUNCATE comptes";
|
|||||||
$ldap_con = ldap_connect($ldap_host, $ldap_port);
|
$ldap_con = ldap_connect($ldap_host, $ldap_port);
|
||||||
$ldap_auth = ldap_bind($ldap_con, $ldap_rdn, $ldap_passwd);
|
$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
|
// $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);
|
$res = ldap_search($ldap_con, $ldap_base, $ldap_filtre, $ldap_attr);
|
||||||
$entry = ldap_get_entries($ldap_con, $res);
|
$entry = ldap_get_entries($ldap_con, $res);
|
||||||
|
$count = 0;
|
||||||
|
|
||||||
for ($i = 0; $i < $entry["count"]; $i++) {
|
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];
|
$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 = "";
|
||||||
$os_sp = "";
|
$os_sp = "";
|
||||||
$os_version = "";
|
$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}')";
|
$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);
|
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
|
// Insertion des machines
|
||||||
@ -75,42 +60,46 @@ $salles = array(); // tableau des salles contenant des machines
|
|||||||
db_query($db, $req_purge_machine);
|
db_query($db, $req_purge_machine);
|
||||||
|
|
||||||
// boucle sur chaque branche déclarée dans $ldap_machines
|
// boucle sur chaque branche déclarée dans $ldap_machines
|
||||||
|
$nb_total = 0;
|
||||||
|
$nb = 0;
|
||||||
foreach ($ldap_machines as $ldap_branche) {
|
foreach ($ldap_machines as $ldap_branche) {
|
||||||
$ldap_base = $ldap_branche["base"];
|
$ldap_base = $ldap_branche["base"];
|
||||||
$ldap_filtre = $ldap_branche["filtre"];
|
$ldap_filtre = $ldap_branche["filtre"];
|
||||||
$ldap_attr = $ldap_branche["attr"];
|
$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()
|
// 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);
|
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}')";
|
$req_salle = "INSERT INTO salles (salle_id) VALUES ('{$s}')";
|
||||||
db_query($db, $req_salle);
|
db_query($db, $req_salle);
|
||||||
}
|
$nb_salles = $nb_salles + 1;
|
||||||
|
|
||||||
|
|
||||||
// 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);
|
|
||||||
}
|
}
|
||||||
|
|
||||||
// fermeture ldap
|
// fermeture ldap
|
||||||
ldap_close($ldap_con);
|
ldap_close($ldap_con);
|
||||||
|
|
||||||
// retour sur la page salles_live.php
|
|
||||||
header('Location: '.$winlog_url.'/admin/salles_live.php');
|
|
||||||
?>
|
?>
|
||||||
|
<!DOCTYPE HTML>
|
||||||
|
<html lang="fr">
|
||||||
|
<head>
|
||||||
|
<title>Winlog</title>
|
||||||
|
<meta charset="utf-8">
|
||||||
|
<link rel="stylesheet" media="screen" type="text/css" title="default" href="default.css">
|
||||||
|
</head>
|
||||||
|
<body>
|
||||||
|
<p class="header">WINLOG</p>
|
||||||
|
<h3>Récupération des machines et des salles</h3>
|
||||||
|
<p>Ce traitement vient de récupérer les machines et les salles depuis le serveur Active Directory.<br/>
|
||||||
|
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.</p>
|
||||||
|
<p>Nombre de machines chargées dans la base : <?php echo($nb_total); ?><br/>
|
||||||
|
Nombre de salles chargées dans la base : <?php echo($nb_salles); ?><p>
|
||||||
|
<p><a href="index.php">Retour menu principal</a></p>
|
||||||
|
<p class="footer">version <?php echo($winlog_version); ?></p>
|
||||||
|
</body>
|
||||||
|
</html>
|
Loading…
x
Reference in New Issue
Block a user