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(); } $mdp_INE=isset($_POST["mdp_INE"]) ? $_POST["mdp_INE"] : NULL; $ine_password=isset($_POST["ine_password"]) ? $_POST["ine_password"] : NULL; $ine_password=my_ereg_replace("[^A-Za-z0-9]","",$ine_password); $envoi_mail=isset($_POST["envoi_mail"]) ? $_POST["envoi_mail"] : NULL; if (isset($_POST['valid']) and ($_POST['valid'] == "yes")) { check_token(); $user_statut = sql_query1("SELECT statut FROM utilisateurs WHERE login='".$user_login."'"); if (($user_statut == 'professeur') or ($user_statut == 'cpe') or ($user_statut == 'responsable')) { // Mot de passe comportant des lettres et des chiffres $flag = 0; } else { // Mot de passe comportant des lettres et des chiffres et au moins un caractère spécial $flag = 1; } if(($mdp_INE=='y')&&($user_statut=='eleve')&&($ine_password!="")) { $auth_mode = old_mysql_result(mysqli_query($GLOBALS["mysqli"], "SELECT auth_mode FROM utilisateurs WHERE login = '".$user_login."'"), 0); if ($auth_mode != "gepi" && $gepiSettings['ldap_write_access'] == 'yes') { // On est en mode d'écriture LDAP $ldap_server = new LDAPServer; $reg_data = $ldap_server->update_user($user_login, '', '', '', '', $ine_password,''); } else { // On est en mode base de données $reg_data = Session::change_password_gepi($user_login,$ine_password); } //ajout Eric En cas de réinitialisation par l'admin, il faut forcer à la première connexion la changement du mot de passe if ($_SESSION['statut'] == 'administrateur') { $reg_data = mysqli_query($GLOBALS["mysqli"], "UPDATE utilisateurs SET change_mdp = 'y' WHERE login='".$user_login."'"); } if (!$reg_data) { $msg = "Erreur lors de l'enregistrement du mot de passe !"; } else { $msg="Le mot de passe a été changé ($user_login:$ine_password) !"; if(isset($envoi_mail)) { $tab_user=get_infos_from_login_utilisateur($user_login); $user_email=$tab_user["email"]; $user_nom=$tab_user["nom"]; $user_prenom=$tab_user["prenom"]; if(check_mail($user_email)) { $tab_param_mail['destinataire']=$user_email; $texte_email="A l'attention de $user_prenom $user_nom
\n"; $texte_email.="Identifiant : $user_login
\n"; $texte_email.="Mot de passe : $ine_password
\n"; $impression = getSettingValue("ImpressionFicheEleve"); $texte_email.=$impression; $sujet_mail = "[GEPI] Compte Gepi"; $headers = ""; // On envoie le mail $envoi = envoi_mail($sujet_mail, $texte_email, $user_email, $headers, "html", $tab_param_mail); if($envoi) { $msg.="
Mail envoyé à destination de ".$user_email.".
"; } else { $msg.="
Echec de l'envoi de mail à destination de ".$user_email.".
"; } } } } } else { if ($_POST['no_anti_inject_password'] != $_POST['reg_password2']) { $msg = "Erreur lors de la saisie : les deux mots de passe ne sont pas identiques, veuillez recommencer !"; } else if (!(verif_mot_de_passe($NON_PROTECT['password'],$flag))) { $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;} } else { $auth_mode = old_mysql_result(mysqli_query($GLOBALS["mysqli"], "SELECT auth_mode FROM utilisateurs WHERE login = '".$user_login."'"), 0); if ($auth_mode != "gepi" && $gepiSettings['ldap_write_access'] == 'yes') { // On est en mode d'écriture LDAP $ldap_server = new LDAPServer; $reg_data = $ldap_server->update_user($user_login, '', '', '', '', $NON_PROTECT['password'],''); } else { // On est en mode base de données $reg_data = Session::change_password_gepi($user_login,$NON_PROTECT['password']); } //ajout Eric En cas de réinitialisation par l'admin, il faut forcer à la première connexion la changement du mot de passe if ($_SESSION['statut'] == 'administrateur') { $reg_data = mysqli_query($GLOBALS["mysqli"], "UPDATE utilisateurs SET change_mdp = 'y' WHERE login='".$user_login."'"); } if (!$reg_data) { $msg = "Erreur lors de l'enregistrement du mot de passe !"; } else { $msg="Le mot de passe a été changé !"; if(isset($envoi_mail)) { $tab_user=get_infos_from_login_utilisateur($user_login); $user_email=$tab_user["email"]; $user_nom=$tab_user["nom"]; $user_prenom=$tab_user["prenom"]; if(check_mail($user_email)) { $tab_param_mail['destinataire']=$user_email; $texte_email="A l'attention de $user_prenom $user_nom
\n"; $texte_email.="Identifiant : $user_login
\n"; $texte_email.="Mot de passe : ".$NON_PROTECT['password']."
\n"; if ($user_statut == "responsable") { $impression = getSettingValue("ImpressionFicheParent"); } elseif ($user_statut == "eleve") { $impression = getSettingValue("ImpressionFicheEleve"); } else { $impression = getSettingValue("Impression"); } $texte_email.=$impression; $sujet_mail = "[GEPI] Compte Gepi"; $headers = ""; // On envoie le mail $envoi = envoi_mail($sujet_mail, $texte_email, $user_email, $headers, "html", $tab_param_mail); if($envoi) { $msg.="
Mail envoyé à destination de ".$user_email.".
"; } else { $msg.="
Echec de l'envoi de mail à destination de ".$user_email.".
"; } } } } } } } // On appelle les informations de l'utilisateur if (isset($user_login) and ($user_login!='')) { $call_user_info = mysqli_query($GLOBALS["mysqli"], "SELECT nom,prenom,statut,auth_mode,email FROM utilisateurs WHERE login='".$user_login."'"); $auth_mode = old_mysql_result($call_user_info, "0", "auth_mode"); $user_statut = old_mysql_result($call_user_info, "0", "statut"); $user_nom = old_mysql_result($call_user_info, "0", "nom"); $user_prenom = old_mysql_result($call_user_info, "0", "prenom"); $user_email = old_mysql_result($call_user_info, "0", "email"); } //**************** EN-TETE ***************** $titre_page = "Gestion des utilisateurs | Modifier un mot de passe"; require_once("../lib/header.inc.php"); //**************** FIN EN-TETE ***************** echo "

Retour Retour | Aide

\n"; // dans le cas de LCS, existence d'utilisateurs locaux reprérés grâce au champ password non vide. $testpassword = sql_query1("select password from utilisateurs where login = '".$user_login."'"); if ($testpassword == -1) $testpassword = ''; if ($auth_mode != "gepi" && $gepiSettings['ldap_write_access'] != "yes" && !getSettingAOui('autoriser_sso_password_auth')) { echo "Vous ne pouvez pas changer le mot de passe des utilisateurs lorsque Gepi est configuré pour utiliser une authentification extérieure et que vous n'avez pas accès à l'annuaire LDAP en écriture."; echo "\n"; echo "\n"; die(); } echo "

Changement du mot de passe

\n"; if (mb_strtoupper($user_login) != mb_strtoupper($_SESSION['login'])) { if (($user_statut == 'professeur') or ($user_statut == 'cpe') or ($user_statut == 'responsable')) { // Mot de passe comportant des lettres et des chiffres $flag = 0; } else { // Mot de passe comportant des lettres et des chiffres et au moins un caractère spécial $flag = 1; } echo "
\n"; echo add_token_field(); echo "\n"; echo "\n"; echo "\n"; echo "\n"; echo "\n"; echo "\n"; echo "\n"; echo "\n"; echo "\n"; echo "\n"; echo "\n"; echo "\n"; echo "\n"; echo "\n"; echo "\n"; echo "\n"; echo "\n"; echo "
Identifiant : $user_login
Nom : $user_nom
Prénom : $user_prenom
Email : =18) {echo "Bonsoir";} else {echo "Bonjour";} echo ",%0d%0aCordialement.' title=\"Rédiger un mail à l'attention de cet utilisateur.\">"; echo $user_email."
\n"; echo "

Il est fortement conseillé de ne pas choisir un mot de passe trop simple.

Attention : le mot de passe doit comporter ".getSettingValue("longmin_pwd")." caractères minimum. "; if ($flag == 1) echo "Il doit comporter au moins une lettre, au moins un chiffre et au moins un caractère spécial (#, *,...)"; else echo "Il doit comporter au moins une lettre et au moins un chiffre."; echo "

\n"; echo "
\n"; echo "
Nouveau mot de passe (".getSettingValue("longmin_pwd")." caractères minimum) : ".input_password_to_text('no_anti_inject_password')."
Nouveau mot de passe (à confirmer) : ".input_password_to_text('reg_password2')."
"; if(check_mail($user_email)) { echo "\n"; } echo "
"; $user_statut = sql_query1("select statut from utilisateurs where login='".$user_login."';"); if($user_statut=='eleve') { $sql="SELECT no_gep FROM eleves WHERE login='$user_login';"; $res_ine=mysqli_query($GLOBALS["mysqli"], $sql); if(mysqli_num_rows($res_ine)>0){ $lig_ine=mysqli_fetch_object($res_ine); if($lig_ine->no_gep!='') { echo "no_gep\" />\n"; echo "

\n"; } } } echo "
\n"; } else { echo "

Pour des raisons de sécurité, veuillez utiliser le module \"mon compte\" accessible à partir de la page d'accueil pour changer votre mot de passe !

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