security_check(); if ($resultat_session == 'c') { header("Location: ../utilisateurs/mon_compte.php?change_mdp=yes"); die(); } else if ($resultat_session == '0') { header("Location: ../logout.php?auto=1"); die(); } if (!checkAccess()) { header("Location: ../logout.php?auto=1"); die(); } function add_user($_login, $_nom, $_prenom, $_sexe, $_statut, $_email) { // Fonction d'ajout de l'utilisateur if ($_sexe == "M") { $_civilite = "M."; } else { $_civilite = "Mme"; } // Si l'utilisateur existe déjà, on met simplement à jour ses informations... $test = mysqli_query($GLOBALS["mysqli"], "SELECT login FROM utilisateurs WHERE login = '" . $_login . "'"); if (mysqli_num_rows($test) > 0) { $record = mysqli_query($GLOBALS["mysqli"], "UPDATE utilisateurs SET nom = '" . $_nom . "', prenom = '" . $_prenom . "', civilite = '" . $_civilite . "', email = '" . $_email . "', statut = '" . $_statut . "', etat = 'actif', auth_mode='sso' WHERE login = '" . $_login . "'"); } else { $query = "INSERT into utilisateurs SET login= '" . $_login . "', nom = '" . $_nom . "', prenom = '" . $_prenom . "', password = '', salt='', civilite = '" . $_civilite . "', email = '" . $_email . "', statut = '" . $_statut . "', etat ='actif', auth_mode='sso', change_mdp = 'n'"; $record = mysqli_query($GLOBALS["mysqli"], $query); } if ($record) { return true; } else { return false; } } // Initialisation $lcs_ldap_people_dn = 'ou=people,'.$lcs_ldap_base_dn; $lcs_ldap_groups_dn = 'ou=groups,'.$lcs_ldap_base_dn; //**************** EN-TETE ***************** $titre_page = "Outil d'initialisation de l'année : Importation des professeurs"; require_once("../lib/header.inc.php"); //**************** FIN EN-TETE ***************** echo "

Retour Retour

"; if (isset($_POST['is_posted'])) { check_token(); // L'admin a validé la procédure, on procède donc... // On se connecte au LDAP $ds = connect_ldap($lcs_ldap_host,$lcs_ldap_port,"",""); // LDAP attribute $ldap_people_attr = array( "uid", // login "cn", // Prenom Nom "sn", // Nom "givenname", // Pseudo "mail", // Mail "homedirectory", // Home directory personnal web space "description", "loginshell", "gecos" // Date de naissance,Sexe (F/M), ); echo "\n\n"; // On commence par récupérer tous les profs depuis le LDAP $attr[] = "memberuid"; $result = ldap_read ( $ds, "cn=Profs,".$lcs_ldap_groups_dn, "(objectclass=*)",$attr); // On met tous les professeurs en état inactif $update = mysqli_query($GLOBALS["mysqli"], "UPDATE utilisateurs SET etat='inactif' WHERE statut='professeur'"); $info = ldap_get_entries ( $ds, $result ); if ( $info["count"]) { for($i=0;$i<$info[0]["memberuid"]["count"];$i++) { $uid = $info[0]["memberuid"][$i]; if (($uid != "etabw") and ($uid!="webmaster.etab") and ($uid!="spip.manager")) { // Extraction des infos sur le professeur : $result2 = @ldap_read ( $ds, "uid=".$uid.",".$lcs_ldap_people_dn, "(objectclass=posixAccount)", $ldap_people_attr ); if ($result2) { $info2 = @ldap_get_entries ( $ds, $result2 ); if ( $info2["count"]) { // Traitement du champ gecos pour extraction de date de naissance, sexe $gecos = $info2[0]["gecos"][0]; $tmp = split ("[\,\]",$info2[0]["gecos"][0],4); $ret_people = array ( "nom" => stripslashes($info2[0]["sn"][0]), "fullname" => stripslashes($info2[0]["cn"][0]), "email" => $info2[0]["mail"][0], "sexe" => $tmp[2], ); $long = mb_strlen($ret_people["fullname"]) - mb_strlen($ret_people["nom"]); $prenom = mb_substr($ret_people["fullname"], 0, $long) ; } @ldap_free_result ( $result2 ); } // On ajoute l'utilisateur. La fonction s'occupe toute seule de vérifier que // le login n'existe pas déjà dans la base. S'il existe, on met simplement à jour // les informations // function add_user($_login, $_nom, $_prenom, $_statut) { $add = add_user($uid,$ret_people["nom"],$prenom,$ret_people["sexe"],"professeur",$ret_people["email"]); echo "\n"; } } echo "
Login ProfesseurNom PrénomSexeEmail
".$uid."".$ret_people["nom"]."".$prenom."".$tmp[2]."".$ret_people["email"]."
"; } echo "

Opération effectuée.

"; echo "

Vous pouvez vérifier l'importation en allant sur la page de gestion des utilisateurs.

"; } else { echo "

L'opération d'importation des professeurs depuis le LDAP de LCS va effectuer les opérations suivantes :

"; echo ""; echo ""; echo add_token_field(); echo ""; echo "

Etes-vous sûr de vouloir importer tous les utilisateurs depuis l'annuaire du serveur LCS vers Gepi ?

"; echo "
"; echo ""; echo ""; } require("../lib/footer.inc.php"); ?>