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(); } // Initialisation des variables $user_login = isset($_POST["user_login"]) ? $_POST["user_login"] : (isset($_GET["user_login"]) ? $_GET["user_login"] : NULL); $valid = isset($_POST["valid"]) ? $_POST["valid"] : (isset($_GET["valid"]) ? $_GET["valid"] : NULL); $login_prof_remplace = isset($_POST["login_prof_remplace"]) ? $_POST["login_prof_remplace"] : (isset($_GET["login_prof_remplace"]) ? $_GET["login_prof_remplace"] : NULL); $form_nom = isset($_POST["form_nom"]) ? $_POST["form_nom"] : (isset($_GET["form_nom"]) ? $_GET["form_nom"] : NULL); $form_prenom = isset($_POST["form_prenom"]) ? $_POST["form_prenom"] : (isset($_GET["form_prenom"]) ? $_GET["form_prenom"] : NULL); $form_civilite = isset($_POST["form_civilite"]) ? $_POST["form_civilite"] : (isset($_GET["form_civilite"]) ? $_GET["form_civilite"] : NULL); $form_email= isset($_POST["form_email"]) ? $_POST["form_email"] : (isset($_GET["form_email"]) ? $_GET["form_email"] : NULL); $reg_auth_mode= isset($_POST["reg_auth_mode"]) ? $_POST["reg_auth_mode"] : (isset($_GET["reg_auth_mode"]) ? $_GET["reg_auth_mode"] : "gepi"); if(!in_array($reg_auth_mode, array("gepi", "sso", "ldap"))) { $reg_auth_mode="gepi"; } $afficher_inactifs=isset($_POST["afficher_inactifs"]) ? $_POST["afficher_inactifs"] : (isset($_GET["afficher_inactifs"]) ? $_GET["afficher_inactifs"] : "n"); $utiliser_compte_existant=isset($_POST["utiliser_compte_existant"]) ? $_POST["utiliser_compte_existant"] : "n"; $compte_existant=isset($_POST["compte_existant"]) ? $_POST["compte_existant"] : ""; $id_groupe=isset($_POST["id_groupe"]) ? $_POST["id_groupe"] : ""; $gepi_non_plugin_lcs_mais_recherche_ldap=false; if((getSettingAOui('gepi_non_plugin_lcs_mais_recherche_ldap'))&&(file_exists("../secure/config_ldap.inc.php"))) { include("../secure/config_ldap.inc.php"); $lcs_ldap_base_dn=$ldap_base_dn; $lcs_ldap_host=$ldap_host; $lcs_ldap_port=$ldap_port; $gepi_non_plugin_lcs_mais_recherche_ldap=true; $lcs_ldap_people_dn = 'ou=people,'.$lcs_ldap_base_dn; $lcs_ldap_groups_dn = 'ou=groups,'.$lcs_ldap_base_dn; } $temoin_erreur="n"; if (isset($_POST['valid']) and ($_POST['valid'] == "yes")) { check_token(); // Cas LCS : on teste s'il s'agit d'un utilisateur local ou non if (getSettingValue("use_sso") == "lcs") { if ($_POST['is_lcs'] == "y") { $is_pwd = 'n'; $reg_auth_mode="sso"; } else { $is_pwd = 'y'; } } elseif($reg_auth_mode=="sso") { $is_pwd = "n"; } else { // Et le cas LDAP avec/sans write...? $is_pwd = "y"; } if(($compte_existant!="")&&($utiliser_compte_existant=='y')) { $temoin_erreur_affect_compte_existant="n"; $sql="SELECT nom, prenom, civilite FROM utilisateurs WHERE (statut='professeur' AND login='$compte_existant');"; $res=mysqli_query($GLOBALS["mysqli"], $sql); if(mysqli_num_rows($res)==0) { $msg="Le compte choisi n'existe pas ou n'est pas professeur: '$compte_existant'
\n"; $temoin_erreur_affect_compte_existant="y"; } else { // Ajout au remplaçant des classes et matières enseignées du prof remplacé. // On recheche les matières du prof remplacé qui ne sont pas déjà affectées au prof //$sql_matieres = "select * from j_professeurs_matieres where id_professeur='$login_prof_remplace'"; $sql_matieres = "select * from j_professeurs_matieres where id_professeur='$login_prof_remplace' AND id_matiere NOT IN (SELECT id_matiere FROM j_professeurs_matieres where id_professeur='$compte_existant');"; $result_matieres = mysqli_query($GLOBALS["mysqli"], $sql_matieres); $nombre_matieres = mysqli_num_rows($result_matieres); $id_matiere_prof_remplace=array(); for ($i=0;$i<$nombre_matieres;$i++) { $id_matiere_prof_remplace[$i] = old_mysql_result($result_matieres,$i,'id_matiere'); $ordre_matiere_prof_remplace[$i] = old_mysql_result($result_matieres,$i,'ordre_matieres'); //echo "
".$id_matiere_prof_remplace[$i]." ".$ordre_matiere_prof_remplace[$i]."
"; } // On affecte les matières au prof remplaçant for ($i=0;$i".$sql_matieres; $insertion = mysqli_query($GLOBALS["mysqli"], $sql_matieres); if(!$insertion) {$temoin_erreur_affect_compte_existant="y";} } for($i=0;$i0) { $lig=mysqli_fetch_object($res); $sql_groupes = "insert into j_groupes_professeurs set id_groupe='$id_groupe[$i]', login='$compte_existant', ordre_prof='$lig->ordre_prof';"; //echo "
".$sql_groupes; $insertion = mysqli_query($GLOBALS["mysqli"], $sql_groupes); if(!$insertion) {$temoin_erreur_affect_compte_existant="y";} } } } } } else { if ($_POST['form_nom'] == '') { $msg = "Veuillez entrer un nom pour l'utilisateur !"; $remplacant_non_cree="y"; } else { $k = 0; if(isset($_POST['max_mat'])) { while ($k < $_POST['max_mat']) { $temp = "matiere_".$k; $reg_matiere[$k] = $_POST[$temp]; $k++; } } // // actions si un nouvel utilisateur a été défini // if (true) { //$resultat = ""; if($reg_auth_mode=="gepi") { $reg_password_c = md5($NON_PROTECT['password1']); if (($_POST['no_anti_inject_password1'] != $_POST['reg_password2']) and ($is_pwd == "y")) { $msg = "Erreur lors de la saisie : les deux mots de passe ne sont pas identiques, veuillez recommencer !"; $temoin_erreur="y"; } else if ((!(verif_mot_de_passe($_POST['no_anti_inject_password1'],0))) and ($is_pwd == "y")) { $msg = "Erreur lors de la saisie du mot de passe (voir les recommandations), veuillez recommencer !"; if((isset($info_verif_mot_de_passe))&&($info_verif_mot_de_passe!="")) {$msg.="
".$info_verif_mot_de_passe;} $temoin_erreur="y"; } } else { $reg_password_c=""; } if($temoin_erreur!="y") { $poursuivre_remplacement="y"; if((isset($user_login))&&($user_login!="")) { $sql="SELECT * FROM utilisateurs WHERE login='".$user_login."';"; $test_user_exist=mysqli_query($GLOBALS["mysqli"], $sql); if(mysqli_num_rows($test_user_exist)>0) { $lig_user=mysqli_fetch_object($test_user_exist); $msg="Un autre compte $lig_user->etat ($lig_user->nom $lig_user->prenom) de statut $lig_user->statut a déjà l'identifiant $user_login."; $remplacant_non_cree="y"; $poursuivre_remplacement="n"; } } if($poursuivre_remplacement!="n") { // CREATION DU LOGIN // partie du code reprise dans /init_xml/prof_csv $affiche[1] = $form_prenom; $affiche[0] = $form_nom; $prenoms = explode(" ",$affiche[1]); $premier_prenom = $prenoms[0]; $prenom_compose = ''; if (isset($prenoms[1])) $prenom_compose = $prenoms[0]."-".$prenoms[1]; $sql="select login from utilisateurs where ( nom='".traitement_magic_quotes($affiche[0])."' and prenom = '".traitement_magic_quotes($premier_prenom)."' and statut='professeur')"; // Pour debug: //echo "$sql
"; $test_exist = mysqli_query($GLOBALS["mysqli"], $sql); $result_test = mysqli_num_rows($test_exist); if ($result_test == 0) { if ($prenom_compose != '') { $test_exist2 = mysqli_query($GLOBALS["mysqli"], "select login from utilisateurs where ( nom='".traitement_magic_quotes($affiche[0])."' and prenom = '".traitement_magic_quotes($prenom_compose)."' and statut='professeur' )"); $result_test2 = mysqli_num_rows($test_exist2); if ($result_test2 == 0) { $exist = 'no'; } else { $exist = 'yes'; $login_prof_gepi = old_mysql_result($test_exist2,0,'login'); } } else { $exist = 'no'; } } else { $exist = 'yes'; $login_prof_gepi = old_mysql_result($test_exist,0,'login'); } if ($exist == 'no') { // Aucun professeur ne porte le même nom dans la base GEPI. On va donc rentrer ce professeur dans la base $mode_generation_login=getSettingValue("mode_generation_login"); if((isset($user_login))&&($user_login!="")) { $login_prof = $user_login; } else { $affiche[1] = traitement_magic_quotes(corriger_caracteres($affiche[1])); $login_prof = generate_unique_login($affiche[0],$affiche[1],$mode_generation_login); } if(!$login_prof) { $msg="Login non généré.
Le mode de génération choisi n'est peut-être pas valide : '$mode_generation_login'
Consultez la page Configuration générale pour corriger ou revalider le choix de format de login.
"; $remplacant_non_cree="y"; } else { /* //$login_prof = remplace_accents($temp1,"all"); // On teste l'unicité du login que l'on vient de créer $m = 2; $test_unicite = 'no'; $temp = $login_prof; while ($test_unicite != 'yes') { $test_unicite = test_unique_login($login_prof); if ($test_unicite != 'yes') { $login_prof = $temp.$m; $m++; } } $affiche[0] = traitement_magic_quotes(corriger_caracteres($affiche[0])); // Mot de passe if((!isset($_POST['sso']))||($_POST['sso']== "no")) { $pwd = md5(rand (1,9).rand (1,9).rand (1,9).rand (1,9).rand (1,9).rand (1,9)); $mess_mdp = $pwd; //echo "Choix 2: $pwd"; // $mess_mdp = "Inconnu (compte bloqué)"; } elseif ($_POST['sso'] == "yes") { $pwd = ''; $mess_mdp = "aucun (sso)"; // Non pris en compte... //echo "sso"; } */ // Fin code génération login de init_xml //choix du format //test du login $test = mysqli_query($GLOBALS["mysqli"], "SELECT * FROM utilisateurs WHERE login = '".$login_prof."'"); $nombreligne = mysqli_num_rows($test); if ($nombreligne != 0) { $msg = "*** Attention ! Un utilisateur ayant le même identifiant existe déjà. Enregistrement impossible ! ***"; $remplacant_non_cree="y"; } else { if ($is_pwd == "y") { $reg_data = mysqli_query($GLOBALS["mysqli"], "INSERT INTO utilisateurs SET nom='".$_POST['form_nom']."',prenom='".$_POST['form_prenom']."',civilite='".$_POST['form_civilite']."',login='".$login_prof."',password='$reg_password_c',statut='professeur',email='".$_POST['form_email']."',etat='actif', change_mdp='y', auth_mode='$reg_auth_mode'"); } else { $reg_data = mysqli_query($GLOBALS["mysqli"], "INSERT INTO utilisateurs SET nom='".$_POST['form_nom']."',prenom='".$_POST['form_prenom']."',civilite='".$_POST['form_civilite']."',login='".$login_prof."',password='',statut='professeur',email='".$_POST['form_email']."',etat='actif', change_mdp='n', auth_mode='$reg_auth_mode'"); } } $msg="Vous venez de créer un nouvel utilisateur !
Par défaut, cet utilisateur est considéré comme actif."; //$msg = $msg."
Pour imprimer les paramètres de l'utilisateur (identifiant, mot de passe, ...), cliquez ici !"; if($is_pwd == "y") { $msg.="
Pour imprimer les paramètres de l'utilisateur (identifiant, mot de passe, ...), cliquez ici !"; } else { $msg.="
Pour imprimer les paramètres de l'utilisateur (identifiant, mot de passe, ...), cliquez ici !"; } $msg.="
Attention : ultérieurement, il vous sera impossible d'imprimer à nouveau le mot de passe d'un utilisateur ! "; $user_login = $login_prof; // Ajout au remplaçant des classes et matières enseignées du prof remplacé. //on recheche les matières du prof remplacé $sql_matieres = "select * from j_professeurs_matieres where id_professeur='$login_prof_remplace'"; $result_matieres = mysqli_query($GLOBALS["mysqli"], $sql_matieres); $nombre_matieres = mysqli_num_rows($result_matieres); for ($i=0;$i<$nombre_matieres;$i++) { $id_matiere_prof_remplace[$i] = old_mysql_result($result_matieres,$i,'id_matiere'); $ordre_matiere_prof_remplace[$i] = old_mysql_result($result_matieres,$i,'ordre_matieres'); //echo "
".$id_matiere_prof_remplace[$i]." ".$ordre_matiere_prof_remplace[$i]."
"; } //on affecte les matières au prof remplaçant for ($i=0;$i".$sql_matieres; $insertion = mysqli_query($GLOBALS["mysqli"], $sql_matieres); } for($i=0;$i0) { $lig=mysqli_fetch_object($res); $sql_groupes = "insert into j_groupes_professeurs set id_groupe='$id_groupe[$i]', login='$login_prof', ordre_prof='$lig->ordre_prof';"; //echo "
".$sql_groupes; $insertion = mysqli_query($GLOBALS["mysqli"], $sql_groupes); } } } } else { $msg="La personne existe déjà dans la base (même nom et même prénom)"; $remplacant_non_cree="y"; } } } // //action s'il s'agit d'une modification // } else { $msg = "L'identifiant de l'utilisateur doit être constitué uniquement de lettres et de chiffres !"; $remplacant_non_cree="y"; } } } } //**************** EN-TETE ***************** $titre_page = "Gestion des utilisateurs | Créer un remplaçant"; require_once("../lib/header.inc.php"); //**************** FIN EN-TETE ***************** //debug_var(); if((isset($remplacant_non_cree))&&($remplacant_non_cree=="y")) { echo "

"; echo "Retour Retour"; echo "

"; echo "

Il s'est produit une erreur.

\n"; require("../lib/footer.inc.php"); die(); } else { echo "

"; echo "Retour Retour"; echo "

"; } /* //$sql_groupes = "select DISTINCT g.*, c.classe from j_groupes_professeurs jgp, g.id, j_groupes_classes jgc, classes c where jgp.login='$login_prof_remplace' AND jgp.id_groupe=g.id AND g.id=jgc.id_groupe AND jgc.id_classe=c.id;"; $sql_groupes = "select DISTINCT g.* from j_groupes_professeurs jgp, g.id, j_groupes_classes jgc WHERE jgp.login='$login_prof_remplace' AND jgp.id_groupe=g.id AND g.id=jgc.id_groupe;"; $result_groupes = mysql_query($sql_groupes); $nombre_groupes = mysql_num_rows($result_groupes); if($nombre_groupes==0) { echo "

Le professeur '$login_prof_remplace' n'a aucun enseignement.
Le remplacement ne se justifie pas.

\n"; require("../lib/footer.inc.php"); } else { while($lig=mysql_fetch_object($result_groupes)) { } } */ $groups=get_groups_for_prof($login_prof_remplace); if(count($groups)==0) { echo "

Le professeur '$login_prof_remplace' n'a aucun enseignement.
Le remplacement ne se justifie pas.

\n"; require("../lib/footer.inc.php"); die(); } //affichage du formulaire if ($valid!='yes') { // On appelle les informations de l'utilisateur pour les afficher : if (isset($login_prof_remplace) and ($login_prof_remplace!='')) { $call_user_info = mysqli_query($GLOBALS["mysqli"], "SELECT * FROM utilisateurs WHERE login='".$login_prof_remplace."'"); $user_nom = old_mysql_result($call_user_info, "0", "nom"); $user_prenom = old_mysql_result($call_user_info, "0", "prenom"); $user_civilite = old_mysql_result($call_user_info, "0", "civilite"); } if((getSettingValue("auth_sso")=='lcs')||($gepi_non_plugin_lcs_mais_recherche_ldap)) { echo "\n"; } echo "

Création d'un remplaçant pour l'identifiant : ".$login_prof_remplace." (".$user_civilite." ".$user_prenom." ".$user_nom.")

"; echo "
"; //Affichage formulaire echo "
Création d'un nouvel utilisateur\n"; echo add_token_field(); echo "
\n"; echo "\n"; echo "\n"; if((getSettingValue("auth_sso")=='lcs')||($gepi_non_plugin_lcs_mais_recherche_ldap)) { echo "\n"; echo "\n"; } else { echo "\n"; echo "\n"; } echo "\n"; echo "\n"; echo "
Identifiant : (*)
Nom :
Prénom : "; echo " \n"; echo "
Nom :
Prénom :
Civilité : \n"; echo "
Courriel :
\n"; if (!(isset($user_login)) or ($user_login=='')) { if (getSettingValue("use_sso") == "lcs") { echo "
"; echo " Utilisateur LCS"; echo "
Un utilisateur LCS est un utilisateur authentifié par LCS : dans ce cas, ne pas remplir les champs \"mot de passe\" ci-dessous."; echo "
"; echo " Utilisateur local"; echo "
Un utilisateur local doit systématiquement s'identifier sur GEPI avec le mot de passe ci-dessous, même s'il est un utilisateur authentifié par LCS."; echo "
Remarque : l'adresse pour se connecter localement est du type : http://mon.site.fr/gepi/login.php?local=y (ne pas omettre \"?local=y\")."; echo "

"; } echo ""; // A vérifier: Est-ce un bon critère pour afficher le champ auth_mode? //if(in_array(getSettingValue("auth_sso"), array('cas', 'lemon'))) { // Dans le cas LCS, une autre stratégie est utilisée ci-dessus if (getSettingValue("use_sso") != "lcs") { echo " "; } echo " "; echo "
Mode d'authentification :
Mot de passe (".getSettingValue("longmin_pwd") ." caractères minimum) :
Mot de passe (à confirmer) :
"; echo "
Attention : le mot de passe doit comporter ".getSettingValue("longmin_pwd")." caractères minimum et doit être composé à la fois de lettres et de chiffres."; echo "
Remarque : lors de la création d'un utilisateur, il est recommandé de choisir le NUMEN comme mot de passe.
"; if (getSettingValue("use_sso") == "lcs") { echo "
"; } } echo "
\n"; echo "\n"; if (isset($user_login)) echo "\n"; echo "

Liste des enseignements remplacés :
"; $cpt=0; foreach($groups as $current_group) { echo "
\n"; $cpt++; } echo "

\n"; echo "
\n"; echo "\n"; echo "
\n"; echo "
\n"; echo "
\n"; //============================================================================ echo "
\n"; echo "

Ou

\n"; echo "
Sélection d'un utilisateur existant\n"; echo add_token_field(); echo "
\n"; echo "Compte existant : \n"; echo "
\n"; echo "

Liste des enseignements remplacés :
"; $cpt=0; foreach($groups as $current_group) { echo "
\n"; $cpt++; } echo "

\n"; echo "\n"; echo "\n"; //if (isset($user_login)) {echo "\n";} echo "\n"; echo "\n"; echo "
\n"; echo "

Si un compte que vous savez existant n'apparait pas dans la liste, il se peut qu'il soit inactif.
Commencez alors par activer le compte ou bien cliquez ici pour afficher aussi les comptes inactifs.

\n"; echo "
\n"; echo "
\n"; echo "


\n"; } elseif(isset($temoin_erreur_affect_compte_existant)) { if($temoin_erreur_affect_compte_existant=="y") { echo "

Une erreur s'est produite lors de la déclaration de '$compte_existant' comme remplaçant de '$login_prof_remplace'.

\n"; } else { echo "

Le compte '$compte_existant' a été déclaré remplaçant de '$login_prof_remplace'.

\n"; if((getSettingAOui('autorise_edt_tous'))||(getSettingAOui('autorise_edt_admin'))) { echo "

Pensez à transférer l'emploi du temps après avoir pris soin d'imprimer la fiche bienvenue.

"; } } } elseif($temoin_erreur=="y") { echo "


Il s'est produit une erreur.
"; } else {// fin affichage formulaire echo "


Remplaçant créé
"; if((getSettingAOui('autorise_edt_tous'))||(getSettingAOui('autorise_edt_admin'))) { echo "

Pensez à transférer l'emploi du temps après avoir pris soin d'imprimer la fiche bienvenue.

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