factorisation de insere_machines et insertion de salles
This commit is contained in:
parent
47e9621c29
commit
befc9a573a
@ -14,70 +14,33 @@ $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);
|
||||||
|
|
||||||
// Lecture des salles dans AD : machines pédagogiques
|
// fonction d'insertion des machines dans la base de données à partir des base, filtre et attributs LDAP
|
||||||
$res_salles = ldap_search($ldap_con, $base_salles, $filtre_salles, $attr_salles);
|
// $salles est explicitement passé par référence
|
||||||
$entry_salles = ldap_get_entries($ldap_con, $res_salles);
|
function Insere_machines($ldap_con, $ldap_base, $ldap_filtre, $ldap_attr, $db, &$salles) {
|
||||||
|
$res = ldap_search($ldap_con, $ldap_base, $ldap_filtre, $ldap_attr);
|
||||||
// Lecture des salles dans AD : machines personnels
|
$entry = ldap_get_entries($ldap_con, $res);
|
||||||
$res_salles_personnel = ldap_search($ldap_con, $base_salles_personnel, $filtre_salles, $attr_salles);
|
for ($i = 0; $i < $entry["count"]; $i++) {
|
||||||
$entry_salles_personnel = ldap_get_entries($ldap_con, $res_salles_personnel);
|
$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
|
||||||
// Insertion des machines
|
array_push($salles, $nom_salle); // tableau des salles construit à la volée
|
||||||
db_query($db, $req_purge_machine);
|
$machine_id = $entry[$i]["cn"][0];
|
||||||
|
$os = "";
|
||||||
// salles pédagiques
|
$os_sp = "";
|
||||||
$salles = array(); // Ce tableau indexé contiendra les salles qui possèdent des machines
|
$os_version = "";
|
||||||
for ($i = 0; $i < $entry_salles["count"]; $i++) {
|
if (array_key_exists("operatingsystem", $entry[$i])) {
|
||||||
$dn_tab = ldap_explode_dn($entry_salles[$i]["dn"],1);
|
$os = db_escape_string($db, $entry[$i]["operatingsystem"][0]);
|
||||||
$salle = $dn_tab[1]; // le nom de la salle dans laquelle elle se trouve est le 2° élément du DN d'une machine
|
}
|
||||||
$salles[$i] = $salle; // tableau des salles construit à la volée
|
if (array_key_exists("operatingsystemservicepack", $entry[$i])) {
|
||||||
$machine_id = $entry_salles[$i]["cn"][0];
|
$os_sp = db_escape_string($db, $entry[$i]["operatingsystemservicepack"][0]);
|
||||||
$os = "";
|
}
|
||||||
$os_sp = "";
|
if (array_key_exists("operatingsystemversion", $entry[$i])) {
|
||||||
$os_version = "";
|
$os_version = db_escape_string($db, $entry[$i]["operatingsystemversion"][0]);
|
||||||
if (array_key_exists("operatingsystem", $entry_salles[$i])) { $os = addslashes($entry_salles[$i]["operatingsystem"][0]); }
|
}
|
||||||
if (array_key_exists("operatingsystemservicepack", $entry_salles[$i])) { $os_sp = addslashes($entry_salles[$i]["operatingsystemservicepack"][0]); }
|
|
||||||
if (array_key_exists("operatingsystemversion", $entry_salles[$i])) { $os_version = addslashes($entry_salles[$i]["operatingsystemversion"][0]); }
|
|
||||||
|
|
||||||
$req_machine = "INSERT INTO machines (machine_id, salle, os, os_sp, os_version) VALUES ('{$machine_id}', '{$salle}', '{$os}', '{$os_sp}', '{$os_version}')";
|
|
||||||
db_query($db, $req_machine);
|
|
||||||
}
|
|
||||||
|
|
||||||
// machines personnels
|
|
||||||
$salles_perso = array(); // Ce tableau indexé contiendra les salles qui possèdent des machines
|
|
||||||
for ($i = 0; $i < $entry_salles_personnel["count"]; $i++) {
|
|
||||||
$dn_tab = ldap_explode_dn($entry_salles_personnel[$i]["dn"],1);
|
|
||||||
$salle_perso = $dn_tab[1]; // le nom de la salle dans laquelle elle se trouve est le 2° élément du DN d'une machine
|
|
||||||
$salles_perso[$i] = $salle_perso; // tableau des salles construit à la volée
|
|
||||||
$machine_id = $entry_salles_personnel[$i]["cn"][0];
|
|
||||||
$os = "";
|
|
||||||
$os_sp = "";
|
|
||||||
$os_version = "";
|
|
||||||
if (array_key_exists("operatingsystem", $entry_salles[$i])) { $os = addslashes($entry_salles[$i]["operatingsystem"][0]); }
|
|
||||||
if (array_key_exists("operatingsystemservicepack", $entry_salles[$i])) { $os_sp = addslashes($entry_salles[$i]["operatingsystemservicepack"][0]); }
|
|
||||||
if (array_key_exists("operatingsystemversion", $entry_salles[$i])) { $os_version = addslashes($entry_salles[$i]["operatingsystemversion"][0]); }
|
|
||||||
$req_machine = "INSERT INTO machines (machine_id, salle, os, os_sp, os_version) VALUES ('{$machine_id}', '{$salle_perso}', '{$os}', '{$os_sp}', '{$os_version}')";
|
|
||||||
db_query($db, $req_machine);
|
|
||||||
}
|
|
||||||
|
|
||||||
// Insertion des salles pédagogiques
|
|
||||||
$salles = array_unique($salles); // suppression des doublons dans le tableau des salles
|
|
||||||
db_query($db, $req_purge_salle);
|
|
||||||
foreach($salles as $s) {
|
|
||||||
$req_salle = "INSERT INTO salles (salle_id) VALUES ('{$s}')";
|
|
||||||
db_query($db, $req_salle);
|
|
||||||
}
|
|
||||||
|
|
||||||
// Insertion des salles personnels
|
|
||||||
$salles_perso = array_unique($salles_perso); // suppression des doublons dans le tableau des salles
|
|
||||||
foreach($salles_perso as $s) {
|
|
||||||
$req_salle = "INSERT INTO salles (salle_id) VALUES ('{$s}')";
|
|
||||||
db_query($db, $req_salle);
|
|
||||||
}
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
$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);
|
||||||
|
}
|
||||||
|
};
|
||||||
|
|
||||||
// Fonction d'insertion des personnes dans la base de données à partir des base, filtre et attributs LDAP
|
// 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
|
// Si le $libelle_type est passé, il remplace la valeur du champ groupe dans la table
|
||||||
@ -106,6 +69,30 @@ function Insere_personnes($ldap_con, $ldap_base, $ldap_filtre, $ldap_attr, $db,
|
|||||||
};
|
};
|
||||||
|
|
||||||
|
|
||||||
|
// Insertion des machines
|
||||||
|
// ======================
|
||||||
|
$salles = array(); // tableau des salles contenant des machines
|
||||||
|
db_query($db, $req_purge_machine);
|
||||||
|
|
||||||
|
// boucle sur chaque branche déclarée dans $ldap_machines
|
||||||
|
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);
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
|
// Insertion des salles à partir du tableau $salles remplis par Insere_machines()
|
||||||
|
// ==============================================================================
|
||||||
|
array_unique($salles); // suppression des doublons dans le tableau des salles
|
||||||
|
db_query($db, $req_purge_salle);
|
||||||
|
foreach($salles as $s) {
|
||||||
|
$req_salle = "INSERT INTO salles (salle_id) VALUES ('{$s}')";
|
||||||
|
db_query($db, $req_salle);
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
// Insertion des personnes
|
// Insertion des personnes
|
||||||
// =======================
|
// =======================
|
||||||
|
|
||||||
@ -121,9 +108,8 @@ foreach ($ldap_personnes as $ldap_branche) {
|
|||||||
Insere_personnes($ldap_con, $ldap_base, $ldap_filtre, $ldap_attr, $db, $libelle_type);
|
Insere_personnes($ldap_con, $ldap_base, $ldap_filtre, $ldap_attr, $db, $libelle_type);
|
||||||
}
|
}
|
||||||
|
|
||||||
// fermeture ldap et base de données
|
// fermeture ldap
|
||||||
ldap_close($ldap_con);
|
ldap_close($ldap_con);
|
||||||
db_free($db);
|
|
||||||
|
|
||||||
// retour sur la page salles_live.php
|
// retour sur la page salles_live.php
|
||||||
header('Location: '.$winlog_url.'/admin/salles_live.php');
|
header('Location: '.$winlog_url.'/admin/salles_live.php');
|
||||||
|
Loading…
x
Reference in New Issue
Block a user