} // Vérifier que l'identifiant sconet est disponible (parmi les utilisateurs de même type de profil) if ($sconet_id) { if (DB_STRUCTURE_ADMINISTRATEUR::DB_tester_utilisateur_identifiant('sconet_id', $sconet_id, NULL, $_SESSION['TAB_PROFILS_ADMIN']['TYPE'][$profil])) { exit('Erreur : n° sconet déjà utilisé !'); } } // Vérifier que la référence est disponible (parmi les utilisateurs de même type de profil) if ($reference) { if (DB_STRUCTURE_ADMINISTRATEUR::DB_tester_utilisateur_identifiant('reference', $reference, NULL, $_SESSION['TAB_PROFILS_ADMIN']['TYPE'][$profil])) { exit('Erreur : référence déjà utilisée !'); } } if ($box_login) { // Construire puis tester le login (parmi tous les utilisateurs de l'établissement) $login = fabriquer_login($prenom, $nom, $profil); if (DB_STRUCTURE_ADMINISTRATEUR::DB_tester_utilisateur_identifiant('login', $login)) { // Login pris : en chercher un autre en remplaçant la fin par des chiffres si besoin $login = DB_STRUCTURE_ADMINISTRATEUR::DB_rechercher_login_disponible($login); } } else { // Vérifier que le login transmis est disponible (parmi tous les utilisateurs de l'établissement) if (DB_STRUCTURE_ADMINISTRATEUR::DB_tester_utilisateur_identifiant('login', $login)) { exit('Erreur : login déjà existant !'); } } if ($box_password) { // Générer un mdp aléatoire $password = fabriquer_mdp($profil); } else { // Vérifier que le mdp transmis est d'une longueur compatible
{ if( DB_STRUCTURE_ADMINISTRATEUR::DB_tester_utilisateur_identifiant('sconet_id',$sconet_id,NULL,'directeur') ) { exit('Erreur : n° sconet déjà utilisé !'); } } // Vérifier que la référence est disponible (parmi les directeurs de cet établissement) if($reference) { if( DB_STRUCTURE_ADMINISTRATEUR::DB_tester_utilisateur_identifiant('reference',$reference,NULL,'directeur') ) { exit('Erreur : référence déjà utilisée !'); } } // Construire le login $login = fabriquer_login($prenom,$nom,'directeur'); // Puis tester le login (parmi tout le personnel de l'établissement) if( DB_STRUCTURE_ADMINISTRATEUR::DB_tester_utilisateur_identifiant('login',$login) ) { // Login pris : en chercher un autre en remplaçant la fin par des chiffres si besoin $login = DB_STRUCTURE_ADMINISTRATEUR::DB_rechercher_login_disponible($login); } // Insérer l'enregistrement $user_id = DB_STRUCTURE_COMMUN::DB_ajouter_utilisateur($sconet_id,$sconet_num=0,$reference,'directeur',$nom,$prenom,$login,crypter_mdp($password),0,$id_ent,$id_gepi); // Il peut (déjà !) falloir lui affecter une date de sortie... if($not_exit) { $sortie_date = '-' ; $sortie_date_mysql = SORTIE_DEFAUT_MYSQL; } else
// Nom sans extension des fichiers de sortie $fnom = 'identifiants_' . $_SESSION['BASE'] . '_' . $profil . '_' . fabriquer_fin_nom_fichier__date_et_alea(); // La classe n'est affichée que pour l'élève $avec_info = $profil == 'eleves' ? 'classe' : ($profil == 'parents' ? 'enfant' : ''); // //////////////////////////////////////////////////////////////////////////////////////////////////// // Initialiser plusieurs noms d'utilisateurs // //////////////////////////////////////////////////////////////////////////////////////////////////// if ($action == 'generer_login') { $tab_login = array(); // Récupérer les données des utilisateurs concernés (besoin de le faire maintenant, on a besoin des infos pour générer le login) $listing_champs = $profil != 'parents' ? 'user_id,user_sconet_id,user_sconet_elenoet,user_reference,user_profil_sigle,user_nom,user_prenom' : 'parent.user_id AS parent_id,parent.user_sconet_id AS parent_sconet_id,parent.user_sconet_elenoet AS parent_sconet_elenoet,parent.user_reference AS parent_reference,parent.user_profil_sigle AS parent_profil_sigle,parent.user_nom AS parent_nom,parent.user_prenom AS parent_prenom'; $DB_TAB = DB_STRUCTURE_ADMINISTRATEUR::DB_lister_users_cibles(implode(',', $tab_user), $listing_champs, $avec_info); // Mettre à jour les noms d'utilisateurs des utilisateurs concernés foreach ($DB_TAB as $DB_ROW) { // Construire le login $login = fabriquer_login($DB_ROW[$prefixe . 'prenom'], $DB_ROW[$prefixe . 'nom'], $DB_ROW[$prefixe . 'profil_sigle']); // Puis tester le login if (DB_STRUCTURE_ADMINISTRATEUR::DB_tester_utilisateur_identifiant('login', $login, $DB_ROW[$prefixe . 'id'])) { // Login pris : en chercher un autre en remplaçant la fin par des chiffres si besoin $login = DB_STRUCTURE_ADMINISTRATEUR::DB_rechercher_login_disponible($login); } DB_STRUCTURE_ADMINISTRATEUR::DB_modifier_user($DB_ROW[$prefixe . 'id'], array(':login' => $login)); $tab_login[$DB_ROW[$prefixe . 'id']] = $login; } } // //////////////////////////////////////////////////////////////////////////////////////////////////// // Initialiser plusieurs mots de passe // //////////////////////////////////////////////////////////////////////////////////////////////////// if ($action == 'generer_mdp') { $tab_password = array(); // Récupérer les données des utilisateurs concernés (besoin de le faire maintenant, on a besoin des infos pour générer le mdp)
$fcontenu_csv = 'SCONET_Id' . $separateur . 'SCONET_N°' . $separateur . 'REFERENCE' . $separateur . $classe_ou_profil . $separateur . 'NOM' . $separateur . 'PRENOM' . $separateur . 'LOGIN' . $separateur . 'MOT DE PASSE' . "\r\n\r\n"; $fcontenu_pdf_tab = array(); if (count($tab_add)) { // Récupérer les noms de classes pour le fichier avec les logins/mdp $tab_nom_classe = array(); if ($import_profil == 'eleve') { $DB_TAB = DB_STRUCTURE_ADMINISTRATEUR::DB_lister_classes(); foreach ($DB_TAB as $DB_ROW) { $tab_nom_classe[$DB_ROW['groupe_id']] = $DB_ROW['groupe_nom']; } } foreach ($tab_add as $i_fichier) { if (isset($tab_memo_analyse['ajouter'][$i_fichier])) { // Il peut théoriquement subsister un conflit de sconet_id pour des users ayant même reference, et réciproquement... // Construire le login $login = fabriquer_login($tab_memo_analyse['ajouter'][$i_fichier]['prenom'], $tab_memo_analyse['ajouter'][$i_fichier]['nom'], $tab_memo_analyse['ajouter'][$i_fichier]['profil_sigle']); // Puis tester le login (parmi tout le personnel de l'établissement) if (DB_STRUCTURE_ADMINISTRATEUR::DB_tester_utilisateur_identifiant('login', $login)) { // Login pris : en chercher un autre en remplaçant la fin par des chiffres si besoin $login = DB_STRUCTURE_ADMINISTRATEUR::DB_rechercher_login_disponible($login); } // Construire le password if ($import_profil != 'eleve' || !$_SESSION['TAB_PROFILS_ADMIN']['MDP_LONGUEUR_MINI']['ELV'] || empty($tab_memo_analyse['ajouter'][$i_fichier]['birth_date'])) { $password = fabriquer_mdp($tab_memo_analyse['ajouter'][$i_fichier]['profil_sigle']); } else { $password = str_replace('/', '', $tab_memo_analyse['ajouter'][$i_fichier]['birth_date']); } // Attention à la date de naissance, définie seulement pour les élèves $birth_date = empty($tab_memo_analyse['ajouter'][$i_fichier]['birth_date']) ? NULL : convert_date_french_to_mysql($tab_memo_analyse['ajouter'][$i_fichier]['birth_date']); // Ajouter l'utilisateur $user_id = DB_STRUCTURE_COMMUN::DB_ajouter_utilisateur($tab_memo_analyse['ajouter'][$i_fichier]['sconet_id'], $tab_memo_analyse['ajouter'][$i_fichier]['sconet_num'], $tab_memo_analyse['ajouter'][$i_fichier]['reference'], $tab_memo_analyse['ajouter'][$i_fichier]['profil_sigle'], $tab_memo_analyse['ajouter'][$i_fichier]['genre'], $tab_memo_analyse['ajouter'][$i_fichier]['nom'], $tab_memo_analyse['ajouter'][$i_fichier]['prenom'], $birth_date, $tab_memo_analyse['ajouter'][$i_fichier]['courriel'], $tab_memo_analyse['ajouter'][$i_fichier]['email_origine'], $login, crypter_mdp($password), $tab_memo_analyse['ajouter'][$i_fichier]['classe']);