boucle sur les OU de personnes
This commit is contained in:
parent
a05a4452ed
commit
451841b604
@ -27,7 +27,7 @@ db_query($db, $req_purge_machine);
|
|||||||
|
|
||||||
// salles pédagiques
|
// salles pédagiques
|
||||||
$salles = array(); // Ce tableau indexé contiendra les salles qui possèdent des machines
|
$salles = array(); // Ce tableau indexé contiendra les salles qui possèdent des machines
|
||||||
for ($i=0; $i<$entry_salles["count"];$i++) {
|
for ($i = 0; $i < $entry_salles["count"]; $i++) {
|
||||||
$dn_tab = ldap_explode_dn($entry_salles[$i]["dn"],1);
|
$dn_tab = ldap_explode_dn($entry_salles[$i]["dn"],1);
|
||||||
$salle = $dn_tab[1]; // le nom de la salle dans laquelle elle se trouve est le 2° élément du DN d'une machine
|
$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
|
$salles[$i] = $salle; // tableau des salles construit à la volée
|
||||||
@ -45,10 +45,10 @@ for ($i=0; $i<$entry_salles["count"];$i++) {
|
|||||||
|
|
||||||
// machines personnels
|
// machines personnels
|
||||||
$salles_perso = array(); // Ce tableau indexé contiendra les salles qui possèdent des machines
|
$salles_perso = array(); // Ce tableau indexé contiendra les salles qui possèdent des machines
|
||||||
for ($i=0; $i<$entry_salles_personnel["count"];$i++) {
|
for ($i = 0; $i < $entry_salles_personnel["count"]; $i++) {
|
||||||
$dn_tab = ldap_explode_dn($entry_salles_personnel[$i]["dn"],1);
|
$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
|
$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
|
$salles_perso[$i] = $salle_perso; // tableau des salles construit à la volée
|
||||||
$machine_id = $entry_salles_personnel[$i]["cn"][0];
|
$machine_id = $entry_salles_personnel[$i]["cn"][0];
|
||||||
$os = "";
|
$os = "";
|
||||||
$os_sp = "";
|
$os_sp = "";
|
||||||
@ -75,41 +75,56 @@ foreach($salles_perso as $s) {
|
|||||||
db_query($db, $req_salle);
|
db_query($db, $req_salle);
|
||||||
}
|
}
|
||||||
|
|
||||||
// Lecture des enseignants dans AD
|
|
||||||
$res_enseignants = ldap_search($ldap_con, $base_enseignants, $filtre_enseignants, $attr_enseignants);
|
|
||||||
$entry_enseignants = ldap_get_entries($ldap_con, $res_enseignants);
|
|
||||||
|
|
||||||
// Insertions des enseignants
|
|
||||||
|
|
||||||
|
|
||||||
|
// 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 personnes
|
||||||
|
// =======================
|
||||||
|
|
||||||
|
// purge initiale de la table
|
||||||
db_query($db, $req_purge_compte);
|
db_query($db, $req_purge_compte);
|
||||||
for ($i=0; $i<$entry_enseignants["count"];$i++) {
|
|
||||||
$dn_tab = ldap_explode_dn($entry_salles[$i]["dn"],1);
|
// boucle sur chaque branche déclarée dans $ldap_personnes
|
||||||
$username = $entry_enseignants[$i]["samaccountname"][0];
|
foreach ($ldap_personnes as $ldap_branche) {
|
||||||
$prenom = "";
|
$ldap_base = $ldap_branche["base"];
|
||||||
$nom = "";
|
$ldap_filtre = $ldap_branche["filtre"];
|
||||||
if (array_key_exists("givenname", $entry_enseignants[$i])) { $prenom = addslashes($entry_enseignants[$i]["givenname"][0]); }
|
$ldap_attr = $ldap_branche["attr"];
|
||||||
if (array_key_exists("sn", $entry_enseignants[$i])) { $nom = addslashes($entry_enseignants[$i]["sn"][0]); }
|
$libelle_type = $ldap_branche["type"];
|
||||||
$req_enseignant = "INSERT INTO comptes (username, prenom, nom, groupe) VALUES ('{$username}', '{$prenom}', '{$nom}', 'Enseignant')";
|
Insere_personnes($ldap_con, $ldap_base, $ldap_filtre, $ldap_attr, $db, $libelle_type);
|
||||||
db_query($db, $req_enseignant);
|
|
||||||
}
|
|
||||||
|
|
||||||
// Lecture des étudiants dans AD
|
|
||||||
$res_etudiants = ldap_search($ldap_con, $base_etudiants, $filtre_etudiants, $attr_etudiants);
|
|
||||||
$entry_etudiants = ldap_get_entries($ldap_con, $res_etudiants);
|
|
||||||
|
|
||||||
// Insertions des étudiants
|
|
||||||
for ($i=0; $i<$entry_etudiants["count"];$i++) {
|
|
||||||
$dn_tab = ldap_explode_dn($entry_etudiants[$i]["dn"],1);
|
|
||||||
$groupe = $dn_tab[1];
|
|
||||||
$username = $entry_etudiants[$i]["cn"][0];
|
|
||||||
$prenom = "";
|
|
||||||
$nom = "";
|
|
||||||
if (array_key_exists("givenname", $entry_etudiants[$i])) { $prenom = addslashes($entry_etudiants[$i]["givenname"][0]); }
|
|
||||||
if (array_key_exists("sn", $entry_etudiants[$i])) { $nom = addslashes($entry_etudiants[$i]["sn"][0]); }
|
|
||||||
|
|
||||||
$req_etudiant = "INSERT INTO comptes (username, prenom, nom, groupe) VALUES ('{$username}', '{$prenom}', '{$nom}', '{$groupe}')";
|
|
||||||
db_query($db, $req_etudiant);
|
|
||||||
}
|
}
|
||||||
|
|
||||||
|
// fermeture ldap et base de données
|
||||||
ldap_close($ldap_con);
|
ldap_close($ldap_con);
|
||||||
|
db_free($db);
|
||||||
|
|
||||||
|
// 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