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 "