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
$create_mode = isset($_POST["mode"]) ? $_POST["mode"] : NULL;
$_POST['reg_auth_mode'] = (!isset($_POST['reg_auth_mode']) OR !in_array($_POST['reg_auth_mode'], array("auth_locale", "auth_ldap", "auth_sso"))) ? "auth_locale" : $_POST['reg_auth_mode'];
// Passer à 'y' pour provoquer l'affichage des requetes:
$debug_create_resp="n";
if ($create_mode == "classe" OR $create_mode == "individual") {
// On a une demande de création, on continue
check_token();
// On veut alimenter la variable $quels_parents avec un résultat mysql qui contient
// la liste des parents pour lesquels on veut créer un compte
$error = false;
$msg = "";
if ($create_mode == "individual") {
//echo "grouik : ".$_POST['pers_id'];
// $_POST['pers_id'] est filtré automatiquement contre les injections SQL, on l'utilise directement
$sql="SELECT count(e.login) FROM eleves e, responsables2 re WHERE (e.ele_id = re.ele_id AND re.pers_id = '" . $_POST['pers_id'] ."')";
if($debug_create_resp=="y") {echo "$sql
\n";}
$test = mysqli_query($GLOBALS["mysqli"], $sql);
if (old_mysql_result($test, 0) == "0") {
$error = true;
$msg .= "Erreur lors de la création de l'utilisateur : aucune association avec un élève n'a été trouvée !
";
} else {
//$quels_parents = mysql_query("SELECT r.* FROM resp_pers r, responsables2 re WHERE (" .
//$sql="SELECT DISTINCT(r.*) FROM resp_pers r, responsables2 re WHERE (" .
$sql="SELECT DISTINCT r.* FROM resp_pers r, responsables2 re WHERE (" .
"r.login = '' AND " .
"r.pers_id = re.pers_id AND " .
"re.pers_id = '" . $_POST['pers_id'] ."')";
if($debug_create_resp=="y") {echo "$sql
\n";}
$quels_parents = mysqli_query($GLOBALS["mysqli"], $sql);
}
} else {
// On est en mode 'classe'
if ($_POST['classe'] == "all") {
/*
$quels_parents = mysql_query("SELECT distinct(r.pers_id), r.nom, r.prenom, r.civilite, r.mel " .
"FROM resp_pers r, responsables2 re, classes c, j_eleves_classes jec, eleves e WHERE (" .
"r.login = '' AND " .
"r.pers_id = re.pers_id AND " .
"re.ele_id = e.ele_id AND " .
"e.login = jec.login AND " .
"jec.id_classe = c.id)");
*/
$sql = "SELECT distinct(r.pers_id), r.nom, r.prenom, r.civilite, r.mel, r.login " .
"FROM resp_pers r, responsables2 re, classes c, j_eleves_classes jec, eleves e WHERE (" .
"r.login = '' AND " .
"r.pers_id = re.pers_id AND " .
"re.ele_id = e.ele_id AND " .
"e.login = jec.login AND " .
"jec.id_classe = c.id AND " .
"(re.resp_legal='1' OR re.resp_legal='2'))";
if($debug_create_resp=="y") {echo "$sql
\n";}
$quels_parents = mysqli_query($GLOBALS["mysqli"], $sql);
if (!$quels_parents) $msg .= mysqli_error($GLOBALS["mysqli"]);
} elseif (is_numeric($_POST['classe'])) {
/*
$quels_parents = mysql_query("SELECT distinct(r.pers_id), r.nom, r.prenom, r.civilite, r.mel " .
"FROM resp_pers r, responsables2 re, classes c, j_eleves_classes jec, eleves e WHERE (" .
"r.login = '' AND " .
"r.pers_id = re.pers_id AND " .
"re.ele_id = e.ele_id AND " .
"e.login = jec.login AND " .
"jec.id_classe = '" . $_POST['classe']."')");
*/
$sql="SELECT distinct(r.pers_id), r.nom, r.prenom, r.civilite, r.mel, r.login " .
"FROM resp_pers r, responsables2 re, classes c, j_eleves_classes jec, eleves e WHERE (" .
"r.login = '' AND " .
"r.pers_id = re.pers_id AND " .
"re.ele_id = e.ele_id AND " .
"e.login = jec.login AND " .
"jec.id_classe = '" . $_POST['classe']."' AND " .
"(re.resp_legal='1' OR re.resp_legal='2'))";
if($debug_create_resp=="y") {echo "$sql
\n";}
$quels_parents = mysqli_query($GLOBALS["mysqli"], $sql);
if (!$quels_parents) $msg .= mysqli_error($GLOBALS["mysqli"]);
} else {
$error = true;
$msg .= "Vous devez sélectionner au moins une classe !
";
}
}
if (!$error) {
$nb_comptes = 0;
$liste_comptes_recuperes_avec_mdp="";
$nb_comptes_recuperes_avec_mdp=0;
$liste_compte_crees_liens_vers_modify_resp="";
while ($current_parent = mysqli_fetch_object($quels_parents)) {
unset($reg_login);
$reg_password="";
$reg_salt="";
// Dans le cas où Gepi est intégré dans un ENT, on va chercher les logins
if (getSettingValue("use_ent") == "y") {
// Charge à l'organisme utilisateur de pourvoir à cette fonctionnalité
// le code suivant n'est qu'une méthode proposée pour relier Gepi à un ENT
$bx = 'oui';
if (isset($bx) AND $bx == 'oui') {
// On va chercher le login de l'utilisateur dans la table créée
// C'est à ce niveau qu'il faut faire les modifications
$sql_p = "SELECT login_u FROM ldap_bx
WHERE nom_u = '".strtoupper($current_parent->nom)."'
AND prenom_u = '".strtoupper($current_parent->prenom)."'
AND statut_u = 'teacher'";
if($debug_create_resp=="y") {echo "$sql_p
\n";}
$query_p = mysqli_query($GLOBALS["mysqli"], $sql_p);
$nbre = mysqli_num_rows($query_p);
if ($nbre >= 1 AND $nbre < 2) {
$reg_login = old_mysql_result($query_p, 0,"login_u");
}
else {
//++++++++++++++++++++++++++++++++++++++++++++++++++++++
// 20150915
$test_login=$current_parent->login;
if($test_login!="") {
// Il y a déjà un login non vide dans resp_pers
// On vérifie que le login n'est pas déjà attribué à un autre
$sql="SELECT login FROM utilisateurs WHERE login='".$test_login."';";
if($debug_create_resp=="y") {echo "$sql
\n";}
$res_login=mysqli_query($GLOBALS["mysqli"], $sql);
if(mysqli_num_rows($res_login)==0) {
$sql="SELECT login FROM resp_pers WHERE login='".$test_login."' AND pers_id!='".$current_parent->pers_id."';";
if($debug_create_resp=="y") {echo "$sql
\n";}
$res_login=mysqli_query($GLOBALS["mysqli"], $sql);
if(mysqli_num_rows($res_login)==0) {
$sql="SELECT login FROM eleves WHERE login='".$test_login."';";
if($debug_create_resp=="y") {echo "$sql
\n";}
$res_login=mysqli_query($GLOBALS["mysqli"], $sql);
if(mysqli_num_rows($res_login)==0) {
$sql="SELECT * FROM tempo_utilisateurs WHERE login='".$test_login."';";
if($debug_create_resp=="y") {echo "$sql
\n";}
$res_tempo_u=mysqli_query($GLOBALS["mysqli"], $sql);
if(mysqli_num_rows($res_tempo_u)>0) {
$lig_tempo_u=mysqli_fetch_object($res_tempo_u);
if($lig_tempo_u->statut!='responsable') {
$msg.="Le login ($test_login) pré-existant du responsable ".$current_parent->nom." ".$current_parent->prenom." (".$current_parent->pers_id.") était attribué préalablement à un utilisateur de statut ".$lig_tempo_u->statut." (compte mis en réserve dans 'tempo_utilisateurs').
Un nouveau login va être généré pour le responsable.
";
}
elseif($lig_tempo_u->identifiant1!=$current_parent->pers_id) {
$msg.="Le login ($test_login) pré-existant du responsable ".$current_parent->nom." ".$current_parent->prenom." (".$current_parent->pers_id.") était attribué à un autre responsable : ".$lig_tempo_u->nom." ".$lig_tempo_u->prenom." (".$lig_tempo_u->identifiant1.") (compte mis en réserve dans 'tempo_utilisateurs').
Un nouveau login va être généré pour le responsable.
";
}
else {
if(test_unique_login($lig_tempo_u->login, "y")) {
// On écrase le login présent pour restaurer celui mis en réserve?
$reg_login=$lig_tempo_u->login;
$reg_password=$lig_tempo_u->password;
$reg_salt=$lig_tempo_u->salt;
$sql="UPDATE tempo_utilisateurs SET temoin='recree' WHERE identifiant1='".$current_parent->pers_id."' AND statut='responsable'";
if($debug_create_resp=="y") {echo "$sql
\n";}
$update=mysqli_query($GLOBALS["mysqli"], $sql);
if($liste_comptes_recuperes_avec_mdp!="") {
$liste_comptes_recuperes_avec_mdp.=", ";
}
$liste_comptes_recuperes_avec_mdp.="".casse_mot($current_parent->nom,"maj")." ".casse_mot($current_parent->prenom,"majf2")."";
$nb_comptes_recuperes_avec_mdp++;
}
elseif($test_login!=$lig_tempo_u->login) {
// Login tempo_utilisateurs déjà attribué
// On conserve le login présent dans resp_pers et testé plus haut comme unique
$reg_login=$test_login;
}
}
}
else {
$reg_login=$test_login;
}
}
}
}
}
if(($test_login=="")||(!isset($reg_login))) {
// On tente de récupérer un login mis en réserve
$sql="SELECT login, password, salt FROM tempo_utilisateurs WHERE identifiant1='".$current_parent->pers_id."' AND statut='responsable';";
if($debug_create_resp=="y") {echo "$sql
\n";}
$res_login=mysqli_query($GLOBALS["mysqli"], $sql);
if(mysqli_num_rows($res_login)>0) {
$lig_login=mysqli_fetch_object($res_login);
if(test_unique_login($lig_login->login, "y")) {
$reg_login=$lig_login->login;
$reg_password=$lig_login->password;
$reg_salt=$lig_login->salt;
$sql="UPDATE tempo_utilisateurs SET temoin='recree' WHERE identifiant1='".$current_parent->pers_id."' AND statut='responsable'";
if($debug_create_resp=="y") {echo "$sql
\n";}
$update=mysqli_query($GLOBALS["mysqli"], $sql);
if($liste_comptes_recuperes_avec_mdp!="") {
$liste_comptes_recuperes_avec_mdp.=", ";
}
$liste_comptes_recuperes_avec_mdp.="".casse_mot($current_parent->nom,"maj")." ".casse_mot($current_parent->prenom,"majf2")."";
$nb_comptes_recuperes_avec_mdp++;
}
}
}
//++++++++++++++++++++++++++++++++++++++++++++++++++++++
if(!isset($reg_login)) {
// Il faudrait alors proposer une alternative à ce cas et permettre de chercher à la main le bon responsable dans la source
//$reg_login = "erreur_".$k; // en attendant une solution viable, on génère le login du responsable
$reg_login = generate_unique_login($current_parent->nom, $current_parent->prenom, getSettingValue("mode_generation_login_responsable"), getSettingValue("mode_generation_login_responsable_casse"));
}
}
}
} else {
//++++++++++++++++++++++++++++++++++++++++++++++++++++++
// 20150915
$test_login=$current_parent->login;
if($test_login!="") {
// Il y a déjà un login non vide dans resp_pers
// On vérifie que le login n'est pas déjà attribué à un autre
$sql="SELECT login FROM utilisateurs WHERE login='".$test_login."';";
if($debug_create_resp=="y") {echo "$sql
\n";}
$res_login=mysqli_query($GLOBALS["mysqli"], $sql);
if(mysqli_num_rows($res_login)==0) {
$sql="SELECT login FROM resp_pers WHERE login='".$test_login."' AND pers_id!='".$current_parent->pers_id."';";
if($debug_create_resp=="y") {echo "$sql
\n";}
$res_login=mysqli_query($GLOBALS["mysqli"], $sql);
if(mysqli_num_rows($res_login)==0) {
$sql="SELECT login FROM eleves WHERE login='".$test_login."';";
if($debug_create_resp=="y") {echo "$sql
\n";}
$res_login=mysqli_query($GLOBALS["mysqli"], $sql);
if(mysqli_num_rows($res_login)==0) {
$sql="SELECT * FROM tempo_utilisateurs WHERE login='".$test_login."';";
if($debug_create_resp=="y") {echo "$sql
\n";}
$res_tempo_u=mysqli_query($GLOBALS["mysqli"], $sql);
if(mysqli_num_rows($res_tempo_u)>0) {
$lig_tempo_u=mysqli_fetch_object($res_tempo_u);
if($lig_tempo_u->statut!='responsable') {
$msg.="Le login ($test_login) pré-existant du responsable ".$current_parent->nom." ".$current_parent->prenom." (".$current_parent->pers_id.") était attribué préalablement à un utilisateur de statut ".$lig_tempo_u->statut." (compte mis en réserve dans 'tempo_utilisateurs').
Un nouveau login va être généré pour le responsable.
";
}
elseif($lig_tempo_u->identifiant1!=$current_parent->pers_id) {
$msg.="Le login ($test_login) pré-existant du responsable ".$current_parent->nom." ".$current_parent->prenom." (".$current_parent->pers_id.") était attribué à un autre responsable : ".$lig_tempo_u->nom." ".$lig_tempo_u->prenom." (".$lig_tempo_u->identifiant1.") (compte mis en réserve dans 'tempo_utilisateurs').
Un nouveau login va être généré pour le responsable.
";
}
else {
if(test_unique_login($lig_tempo_u->login, "y")) {
// On écrase le login présent pour restaurer celui mis en réserve?
$reg_login=$lig_tempo_u->login;
$reg_password=$lig_tempo_u->password;
$reg_salt=$lig_tempo_u->salt;
$sql="UPDATE tempo_utilisateurs SET temoin='recree' WHERE identifiant1='".$current_parent->pers_id."' AND statut='responsable'";
if($debug_create_resp=="y") {echo "$sql
\n";}
$update=mysqli_query($GLOBALS["mysqli"], $sql);
if($liste_comptes_recuperes_avec_mdp!="") {
$liste_comptes_recuperes_avec_mdp.=", ";
}
$liste_comptes_recuperes_avec_mdp.="".casse_mot($current_parent->nom,"maj")." ".casse_mot($current_parent->prenom,"majf2")."";
$nb_comptes_recuperes_avec_mdp++;
}
elseif($test_login!=$lig_tempo_u->login) {
// Login tempo_utilisateurs déjà attribué
// On conserve le login présent dans resp_pers et testé plus haut comme unique
$reg_login=$test_login;
}
}
}
else {
$reg_login=$test_login;
}
}
}
}
}
if(($test_login=="")||(!isset($reg_login))) {
// On tente de récupérer un login mis en réserve
$sql="SELECT login, password, salt FROM tempo_utilisateurs WHERE identifiant1='".$current_parent->pers_id."' AND statut='responsable';";
if($debug_create_resp=="y") {echo "$sql
\n";}
$res_login=mysqli_query($GLOBALS["mysqli"], $sql);
if(mysqli_num_rows($res_login)>0) {
$lig_login=mysqli_fetch_object($res_login);
if(test_unique_login($lig_login->login, "y")) {
$reg_login=$lig_login->login;
$reg_password=$lig_login->password;
$reg_salt=$lig_login->salt;
$sql="UPDATE tempo_utilisateurs SET temoin='recree' WHERE identifiant1='".$current_parent->pers_id."' AND statut='responsable'";
if($debug_create_resp=="y") {echo "$sql
\n";}
$update=mysqli_query($GLOBALS["mysqli"], $sql);
if($liste_comptes_recuperes_avec_mdp!="") {
$liste_comptes_recuperes_avec_mdp.=", ";
}
$liste_comptes_recuperes_avec_mdp.="".casse_mot($current_parent->nom,"maj")." ".casse_mot($current_parent->prenom,"majf2")."";
$nb_comptes_recuperes_avec_mdp++;
}
}
}
//++++++++++++++++++++++++++++++++++++++++++++++++++++++
// Création du compte utilisateur pour le responsable considéré
if(!isset($reg_login)) {
$reg_login = generate_unique_login($current_parent->nom, $current_parent->prenom, getSettingValue("mode_generation_login_responsable"), getSettingValue("mode_generation_login_responsable_casse"));
// generate_unique_login() peut retourner 'false' en cas de pb
}
}
if(($reg_login)&&($reg_login!='')) {
//check_token();
// Si on a un accès LDAP en écriture, on créé le compte sur le LDAP
// On ne procède que si le LDAP est configuré en écriture, qu'on a activé
// l'auth LDAP ou SSO, et que c'est un de ces deux modes qui a été choisi pour cet utilisateur.
if (LDAPServer::is_setup() && $gepiSettings["ldap_write_access"] == "yes" && ($session_gepi->auth_ldap || $session_gepi->auth_sso) && ($_POST['reg_auth_mode'] == 'auth_ldap' || $_POST['reg_auth_mode'] == 'auth_sso')) {
$write_ldap = true;
$write_ldap_success = false;
// On tente de créer l'utilisateur sur l'annuaire LDAP
$ldap_server = new LDAPServer();
if ($ldap_server->test_user($_POST['new_login'])) {
// L'utilisateur a été trouvé dans l'annuaire. On ne l'enregistre pas.
$write_ldap_success = true;
$msg.= "L'utilisateur n'a pas pu être ajouté à l'annuaire LDAP, car il y est déjà présent. Il va néanmoins être créé dans la base Gepi.";
} else {
$write_ldap_success = $ldap_server->add_user($reg_login, $current_parent->nom, $current_parent->prenom, $current_parent->mel, $current_parent->civilite, '', 'responsable');
}
} else {
$write_ldap = false;
}
if (!$write_ldap || ($write_ldap && $write_ldap_success)) {
$reg = true;
if ($_POST['reg_auth_mode'] == "auth_locale") {
$reg_auth = "gepi";
} elseif ($_POST['reg_auth_mode'] == "auth_ldap") {
$reg_auth = "ldap";
} elseif ($_POST['reg_auth_mode'] == "auth_sso") {
$reg_auth = "sso";
}
// Dans le cas d'un compte récupéré, au cas où le compte aurait préalablement été recréé...
$sql="SELECT * FROM utilisateurs WHERE login = '" . $reg_login . "';";
if($debug_create_resp=="y") {echo "$sql
\n";}
$test_user_exist = mysqli_query($GLOBALS["mysqli"], $sql);
if(mysqli_num_rows($test_user_exist)>0) {
$lig_user_exist=mysqli_fetch_object($test_user_exist);
// Vérifier si c'est un compre resp... on ne devrait pas tomber sur ce cas
if($lig_user_exist->statut!='responsable') {
$msg .= "Anomalie : le login $reg_login qui devait être attribué au responsable ".$current_parent->nom." ".$current_parent->prenom." () est attribué à un autre utilisateur ".$lig_user_exist->nom." ".$lig_user_exist->prenom." de statut ".$lig_user_exist->statut."
";
}
else {
$msg .= $current_parent->nom." ".$current_parent->prenom." (".$current_parent->pers_id.") : Un compte existe déjà dans la table 'utilisateurs' pour le login $reg_login attribué au responsable ".$lig_user_exist->nom." ".$lig_user_exist->prenom.".
";
// Faut il restaurer le MDP?
}
}
else {
$sql="INSERT INTO utilisateurs SET " .
"login = '" . $reg_login . "', " .
"nom = '" . addslashes($current_parent->nom) . "', " .
"prenom = '". addslashes($current_parent->prenom) ."', " .
"password = '".$reg_password."', " .
"salt = '".$reg_salt."', " .
"civilite = '" . $current_parent->civilite."', " .
"email = '" . $current_parent->mel . "', " .
"statut = 'responsable', " .
"etat = 'actif', " .
"auth_mode = '".$reg_auth."', " .
"change_mdp = 'n'";
if($debug_create_resp=="y") {echo "$sql
\n";}
$reg = mysqli_query($GLOBALS["mysqli"], $sql);
if (!$reg) {
$msg .= "Erreur lors de la création du compte ".$reg_login."
";
if($debug_create_resp=="y") {echo "Erreur lors de la création du compte ".$reg_login."
\n";}
} else {
$sql="UPDATE resp_pers SET login = '" . $reg_login . "' WHERE (pers_id = '" . $current_parent->pers_id . "')";
if($debug_create_resp=="y") {echo "$sql
\n";}
$reg2 = mysqli_query($GLOBALS["mysqli"], $sql);
if($debug_create_resp=="y") {echo "$sql
\n";}
//$msg.="$sql
";
$nb_comptes++;
// Ménage:
$sql="SELECT id FROM infos_actions WHERE titre LIKE 'Nouveau responsable%($current_parent->pers_id)';";
if($debug_create_resp=="y") {echo "$sql
\n";}
$res_actions=mysqli_query($GLOBALS["mysqli"], $sql);
if(mysqli_num_rows($res_actions)>0) {
while($lig_action=mysqli_fetch_object($res_actions)) {
$menage=del_info_action($lig_action->id);
if(!$menage) {$msg.="Erreur lors de la suppression de l'action en attente en page d'accueil à propos de $reg_login
";}
}
}
if($liste_compte_crees_liens_vers_modify_resp!="") {
$liste_compte_crees_liens_vers_modify_resp.=", ";
}
$liste_compte_crees_liens_vers_modify_resp.="".$current_parent->civilite." ".casse_mot($current_parent->nom, "maj")." ".mb_substr($current_parent->prenom, 0, 1)."";
}
}
} else {
$msg .= "Erreur lors de la création du compte ".$reg_login." : l'utilisateur n'a pas pu être créé sur l'annuaire LDAP.
";
}
}
else {
$msg .= "Erreur lors de la génération d'un login pour '$current_parent->nom $current_parent->prenom'.
";
}
}
if ($nb_comptes == 1) {
$msg .= "Un compte a été créé avec succès.
";
if($liste_compte_crees_liens_vers_modify_resp!="") {
$msg.="Le voici ".$liste_compte_crees_liens_vers_modify_resp."
";
}
} elseif ($nb_comptes > 1) {
$msg .= $nb_comptes." comptes ont été créés avec succès.
";
$msg.="Les voici ".$liste_compte_crees_liens_vers_modify_resp."
";
}
if($nb_comptes_recuperes_avec_mdp>0) {
if($nb_comptes>0) {
$msg.="Parmi ces comptes, $nb_comptes_recuperes_avec_mdp sont des comptes récupérés.
";
}
else {
$msg.="$nb_comptes_recuperes_avec_mdp compte(s) récupéré(s).
";
}
}
// On propose de mettre à zéro les mots de passe et d'imprimer les fiches bienvenue seulement
// si au moins un utilisateur a été créé et si on n'est pas en mode SSO (sauf accès LDAP en écriture).
// nouveaux_seulement
$chaine_nouveaux_seulement="";
if((isset($_POST['nouveaux_seulement']))&&($_POST['nouveaux_seulement'])) {
$chaine_nouveaux_seulement="&nouveaux_seulement=y";
saveSetting('creer_comptes_parents_nouveaux_seulement', 'y');
}
else {
saveSetting('creer_comptes_parents_nouveaux_seulement', 'n');
}
if(isset($_POST['fiches_bienvenue_un_jeu_par_parent'])) {
saveSetting('fiches_bienvenue_un_jeu_par_parent', 'y');
}
else {
saveSetting('fiches_bienvenue_un_jeu_par_parent', 'n');
}
if($liste_comptes_recuperes_avec_mdp!="") {
$msg.="Un ou des comptes ont été récupérés d'une mise en réserve des comptes/mots de passe de l'année passée.
Leurs comptes et mots de passe ne vont pas être modifiés et les fiches ne seront pas ré-éditées pour ces utilisateurs.
En voici la liste : ".$liste_comptes_recuperes_avec_mdp."
";
$chaine_nouveaux_seulement="&nouveaux_seulement=y";
}
if ($nb_comptes > 0 && ($_POST['reg_auth_mode'] == "auth_locale" || $gepiSettings['ldap_write_access'] == "yes")) {
if ($create_mode == "individual") {
// Mode de création de compte individuel. On fait un lien spécifique pour la fiche de bienvenue
$msg .= "
";
$msg .= "Pour initialiser le(s) mot(s) de passe, vous devez suivre ce lien maintenant !";
$msg .= "";
} else {
// On est ici en mode de création par classe
// Si on opère sur toutes les classes, on ne spécifie aucune classe
// =====================
if ($_POST['classe'] == "all") {
$msg .= "
Imprimer la ou les fiche(s) de bienvenue (Impression HTML)";
$msg .= " ou (Impression HTML avec adresse)";
$msg .= "
Imprimer la ou les fiche(s) de bienvenue (Export CSV)";
$msg.="
";
} elseif (is_numeric($_POST['classe'])) {
$msg .= "
Imprimer la ou les fiche(s) de bienvenue (Impression HTML)";
$msg .= " ou (Impression HTML avec adresse)";
$msg .= "
Imprimer la ou les fiche(s) de bienvenue (Export CSV)";
$msg.="
";
}
// =====================
$msg .= "Pour initialiser le(s) mot(s) de passe, vous devez suivre ce lien maintenant !";
}
// =====================
// MODIF: boireaus 20071102
//$msg .= "
Vous devez effectuer cette opération maintenant !";
//$msg .= "Pour initialiser le(s) mot(s) de passe, vous devez suivre ce lien maintenant !";
// =====================
} else {
if ($nb_comptes > 0) {
$msg .= "Vous avez créé un ou des comptes d'accès en mode SSO ou LDAP, mais sans avoir configuré l'accès LDAP en écriture. En conséquence, vous ne pouvez pas générer de mot de passe pour les utilisateurs.
";
}
}
}
}
//**************** EN-TETE *****************
$titre_page = "Créer des comptes d'accès responsables";
require_once("../lib/header.inc.php");
//**************** FIN EN-TETE *****************
?>
Informations :
\n"; } else{ echo "Tous les responsables légaux 1 et 2 ont un login, ou bien aucun responsable n'est présent dans la base de Gepi.
Informations :
\n"; //echo "\n"; echo "Les $nb responsables ci-dessous n'ont pas encore de compte utilisateur.
\n"; if($nb_resp_legal_1_ou_2_sans_compte>1) { echo "$nb_resp_legal_1_ou_2_sans_compte responsables légaux 1 ou 2 n'ont pas encore de compte utilisateur.
\n"; } elseif($nb_resp_legal_1_ou_2_sans_compte==1) { echo "$nb_resp_legal_1_ou_2_sans_compte responsable légal 1 ou 2 n'a pas encore de compte utilisateur.
\n"; } else { echo "Tous les responsables légaux 1 ou 2 ont un compte utilisateur.
\n"; } if($nb_resp_legal_0_sans_compte>0) { echo "$nb_resp_legal_0_sans_compte responsables non légaux n'ont pas encore de compte utilisateur.
\n"; } elseif($nb_resp_legal_0_sans_compte==1) { echo "$nb_resp_legal_0_sans_compte responsable non légal n'a pas encore de compte utilisateur.
\n"; } if($critere_recherche!="") { if($nb>1) { echo "$nb responsables correspondent à votre recherche.
\n"; } elseif($nb==1) { echo "$nb responsable correspond à votre recherche.
\n"; } else { echo "Aucun responsable ne correspond à votre recherche.
\n"; } } echo "Note : vous ne pouvez créer de comptes d'accès que pour les responsables d'élèves associés à des classes.
\n"; if ((getSettingValue("mode_generation_login_responsable") == null)||(getSettingValue("mode_generation_login_responsable") == "")) { echo "ATTENTION ! Vous n'avez pas défini le mode de génération des logins. Allez sur la page de gestion générale pour définir le mode que vous souhaitez utiliser. Par défaut, les logins seront générés au format pnom tronqué à 8 caractères (ex: ADURANT).
\n"; } if (!$session_gepi->auth_locale && $gepiSettings['ldap_write_access'] != "yes") { echo "Note : Vous utilisez une authentification externe à Gepi (LDAP ou SSO) sans avoir défini d'accès en écriture à l'annuaire LDAP. Aucun mot de passe ne sera donc assigné aux utilisateurs que vous vous apprêtez à créer. Soyez certain de générer les login selon le même format que pour votre source d'authentification SSO.
\n"; } echo "
Créer des comptes par lot :
\n"; echo "\n"; echo "\n"; include("randpass.php"); echo "\n"; //echo "Lors de la création, les comptes reçoivent un mot de passe aléatoire choisi parmi les caractères suivants : "; if (LOWER_AND_UPPER) { if(EXCLURE_CARACT_CONFUS) { $alphabet = array('a', 'b', 'c', 'd', 'e', 'f', 'g', 'h', 'j', 'k', 'm', 'n', 'p', 'q', 'r', 's', 't', 'u', 'v', 'w', 'x', 'y', 'z', 'A', 'B', 'C', 'D', 'E', 'F', 'G', 'H', 'J', 'K', 'L', 'M', 'N', 'P', 'Q', 'R', 'S', 'T', 'U', 'V', 'W', 'X', 'Y', 'Z'); } else { $alphabet = array('a', 'b', 'c', 'd', 'e', 'f', 'g', 'h', 'i', 'j', 'k', 'l', 'm', 'n', 'o', 'p', 'q', 'r', 's', 't', 'u', 'v', 'w', 'x', 'y', 'z', 'A', 'B', 'C', 'D', 'E', 'F', 'G', 'H', 'I', 'J', 'K', 'L', 'M', 'N', 'O', 'P', 'Q', 'R', 'S', 'T', 'U', 'V', 'W', 'X', 'Y', 'Z'); } } else { if(EXCLURE_CARACT_CONFUS) { $alphabet = array('a', 'b', 'c', 'd', 'e', 'f', 'g', 'h', 'j', 'k', 'm', 'n', 'p', 'q', 'r', 's', 't', 'u', 'v', 'w', 'x', 'y', 'z'); } else { $alphabet = array('a', 'b', 'c', 'd', 'e', 'f', 'g', 'h', 'i', 'j', 'k', 'l', 'm', 'n', 'o', 'p', 'q', 'r', 's', 't', 'u', 'v', 'w', 'x', 'y', 'z'); } } $cpt=0; foreach($alphabet as $key => $value) { if($cpt>0) {echo ", ";} echo $value; $cpt++; } if(EXCLURE_CARACT_CONFUS) { $cpt=2; } else { $cpt=0; } for($i=$cpt;$i<=9;$i++) { echo ", $i"; } echo ".
\n"; echo "
\n"; echo "
Créer des comptes individuellement :
\n"; echo "\n"; echo "\n"; } echo ""; if(($afficher_tous_les_resp!='y')&&($critere_recherche=="")){ echo "Au plus $nb2 responsables sont affichés ci-dessous (pour limiter le temps de chargement de la page).
\n"; //debug_var(); //=================================== //echo "
\n"; } echo "Utilisez le formulaire de recherche pour adapter la recherche."; echo "\n"; echo "\n"; //echo "\n"; //=================================== echo "
\n"; // A REVOIR: Le $reg_auth_mode n'a pas l'air initialisé $sql="SELECT DISTINCT auth_mode FROM utilisateurs WHERE statut='responsable';"; $test_auth_mode=mysqli_query($GLOBALS["mysqli"], $sql); if(mysqli_num_rows($test_auth_mode)==1) { $lig_auth_mode=mysqli_fetch_object($test_auth_mode); if($lig_auth_mode->auth_mode=="gepi") { $reg_auth_mode="auth_locale"; } elseif($lig_auth_mode->auth_mode=="sso") { $reg_auth_mode="auth_sso"; } } echo "Cliquez sur le bouton 'Créer' d'un responsable pour créer un compte associé.
\n"; echo ""; echo "
NOTES :
\n"; echo "Si vous générez des Fiches bienvenue avec Bloc adresse du responsable de l'élève, il peut arriver que si les paramètres sont mal choisis, l'adresse n'apparaisse pas... ou hors champ.
\n"; echo "Contrôler les paramétrages aberrants pour un format A4 ou un un format A3
"; if(isset($_GET['check_param_bloc_adresse_html'])) { if($_GET['check_param_bloc_adresse_html']=='a4') { echo "Contrôle des paramètres pour la version A4 :
"; $retour_check=check_param_bloc_adresse_html('a4'); } else { echo "Contrôle des paramètres pour la version A3 :
"; $retour_check=check_param_bloc_adresse_html('a3'); } if($retour_check=='') { echo ""; echo "Pas de valeur aberrante trouvée."; } else { echo "
"; echo "".$retour_check; } echo "
"; } echo "Remarque : Le bloc adresse des responsables d'un élève est positionné dans les bulletins HTML et Fiches Bienvenue avec les mêmes paramètres.
\n"; echo "
Ils sont définis dans la page Paramètres d'impression des bulletins