コード例 #1
0
ファイル: prof_csv.php プロジェクト: rhertzog/lcs
     $j++;
 }
 $del = @mysqli_query($GLOBALS["mysqli"], "DELETE FROM tempo2");
 echo "<form enctype='multipart/form-data' action='" . $_SERVER['PHP_SELF'] . "' method=post>";
 echo add_token_field();
 echo "<p>Importation du fichier <b>F_wind.csv</b> contenant les données relatives aux professeurs.";
 echo "<p>Veuillez préciser le nom complet du fichier <b>F_wind.csv</b>.";
 echo "<input type=hidden name='is_posted' value='yes' />";
 echo "<input type=hidden name='step1' value='y' />";
 echo "<p><input type='file' size='80' name='dbf_file' />";
 echo "<br /><br /><p>Quelle formule appliquer pour la génération du login ?</p>\n";
 //if(getSettingValue("use_ent")!='y') {
 // A MODIFIER : Pouvoir gérer use_ent et NetCollege ITOP hors 27:
 if (getSettingValue("use_ent") != 'y' || preg_match("/^027/", getSettingValue('gepiSchoolRne'))) {
     $default_login_gen_type = getSettingValue('mode_generation_login');
     if ($default_login_gen_type == '' || !check_format_login($default_login_gen_type)) {
         $default_login_gen_type = 'nnnnnnnnnnnnnnnnnnnn';
     }
 } else {
     $default_login_gen_type = "";
 }
 if (getSettingValue('auth_sso') == "lcs") {
     echo "<span style='color:red'>Votre Gepi utilise une authentification LCS; Le format de login ci-dessous ne sera pas pris en compte. Les comptes doivent avoir été importés dans l'annuaire LDAP du LCS avant d'effectuer l'import dans GEPI.</span><br />\n";
 }
 echo champ_input_choix_format_login('login_gen_type', $default_login_gen_type);
 // A MODIFIER : Pouvoir gérer use_ent et NetCollege ITOP hors 27:
 if (getSettingValue("use_ent") == 'y' && !preg_match("/^027/", getSettingValue('gepiSchoolRne'))) {
     echo "<input type='radio' name='login_gen_type' id='login_gen_type_ent' value='ent' checked=\"checked\" />\n";
     echo "<label for='login_gen_type_ent'  style='cursor: pointer;'>Les logins sont produits par un ENT (<span title=\"cette case permet l'utilisation de la table 'ldap_bx', assurez vous qu'elle soit remplie avec les bonnes informations.\">Attention !</span>)</label>\n";
     echo "<br />\n";
 }
コード例 #2
0
ファイル: share.inc.php プロジェクト: alhousseyni/gepi
/**
 * Génére le login à partir du nom et du prénom
 * 
 * Génère puis nettoie un login pour qu'il soit valide et unique
 * 
 * Le mode de génération doit être passé en argument
 * 
 * cf. http://sacoche.sesamath.net/appel_doc.php?fichier=support_administrateur__gestion_format_logins
 * 
 * @param string $_nom nom de l'utilisateur
 * @param string $_prenom prénom de l'utilisateur
 * @param string $_mode Le mode de génération ou NULL
 * @param string $_casse La casse du login ('maj', 'min') est par défaut en minuscules
 * @return string|boolean Le login généré ou false si on obtient un login vide
 * @see test_unique_login()
 */
function generate_unique_login($_nom, $_prenom, $_mode, $_casse = 'min')
{
    if ($_mode == NULL || !check_format_login($_mode)) {
        $_mode = "nnnnnnnnnnnnnnnnnnnn";
    }
    //==========================
    // Nettoyage des caractères du nom et du prénom
    $_prenom = remplace_accents(preg_replace("/Æ/", "AE", preg_replace("/æ/", "ae", preg_replace("/Œ/", "OE", preg_replace("/œ/", "oe", $_prenom)))));
    $prenoms = explode(" ", $_prenom);
    $premier_prenom = $prenoms[0];
    $prenom_compose = '';
    if (isset($prenoms[1])) {
        $prenom_compose = $prenoms[0] . "-" . $prenoms[1];
    }
    $_prenom = preg_replace("/[^a-zA-Z.\\-]/", "", $_prenom);
    $_nom = remplace_accents(preg_replace("/Æ/", "AE", preg_replace("/æ/", "ae", preg_replace("/Œ/", "OE", preg_replace("/œ/", "oe", $_nom)))));
    $_nom = preg_replace("/[^a-zA-Z.\\-]/", "", $_nom);
    //==========================
    // Nettoyage historique... éventuellement à revoir
    $_nom = preg_replace("/[ ']/", "", $_nom);
    $_nom = preg_replace("/-/", "_", $_nom);
    $_prenom = preg_replace("/[ ']/", "", $_prenom);
    $_prenom = preg_replace("/-/", "_", $_prenom);
    //==========================
    if (getSettingAOui("FiltrageStrictAlphaNomPrenomPourLogin")) {
        $_nom = preg_replace("/[^A-Za-z]/", "", $_nom);
        $_prenom = preg_replace("/[^A-Za-z]/", "", $_prenom);
    }
    //==========================
    // On génère le login
    if (preg_match('/n/', $_mode) && $_nom == "") {
        return false;
    } elseif (preg_match('/p/', $_mode) && $_prenom == "") {
        return false;
    } else {
        $nb_n = mb_strlen(preg_replace('/[^n]/', '', $_mode));
        $nb_p = mb_strlen(preg_replace('/[^p]/', '', $_mode));
        $separateur = preg_replace('/[^._-]/', '', $_mode);
        //echo "<br />";
        //echo "\$_prenom=$_prenom<br />";
        //echo "\$_nom=$_nom<br />";
        $part_prenom = mb_substr($_prenom, 0, min($nb_p, mb_strlen($_prenom)));
        $part_nom = mb_substr($_nom, 0, min($nb_n, mb_strlen($_nom)));
        //echo "\$part_prenom=$part_prenom<br />";
        //echo "\$part_nom=$part_nom<br />";
        if (preg_match('/^p/', $_mode)) {
            // C'est un mode commençant par une portion de prénom
            $temp1 = $part_prenom . $separateur . $part_nom;
        } else {
            // C'est un mode commençant par une portion de nom
            $temp1 = $part_nom . $separateur . $part_prenom;
        }
        //echo "\$temp1=$temp1<br />";
        // Révision de la casse
        if ($_casse == 'maj') {
            $temp1 = my_strtoupper($temp1);
        } else {
            $temp1 = my_strtolower($temp1);
        }
        // Suppression des _,-,. multiples
        $temp1 = preg_replace("/_{2,}/", "_", $temp1);
        $temp1 = preg_replace("/\\.{2,}/", ".", $temp1);
        $temp1 = preg_replace("/\\-{2,}/", "-", $temp1);
        $login_user = $temp1;
        //==========================
        // Nettoyage final
        $login_user = mb_substr($login_user, 0, 50);
        $login_user = preg_replace("/[^A-Za-z0-9._\\-]/", "", trim($login_user));
        $test1 = $login_user[0];
        while ($test1 == "_" or $test1 == "-" or $test1 == ".") {
            $login_user = mb_substr($login_user, 1);
            $test1 = $login_user[0];
        }
        $test1 = $login_user[mb_strlen($login_user) - 1];
        while ($test1 == "_" or $test1 == "-" or $test1 == ".") {
            $login_user = mb_substr($login_user, 0, mb_strlen($login_user) - 1);
            $test1 = $login_user[mb_strlen($login_user) - 1];
        }
        //==========================
        // On teste l'unicité du login que l'on vient de créer
        $m = '';
        $test_unicite = 'no';
        while ($test_unicite != 'yes') {
            if ($m != '' && $m > 99) {
                $login_user = false;
                break;
            } else {
                $test_unicite = test_unique_login($login_user . $m);
                if ($test_unicite != 'yes') {
                    if ($m == '') {
                        $m = 2;
                    } else {
                        $m++;
                    }
                } else {
                    $login_user = $login_user . $m;
                }
            }
        }
        //echo "\$login_user=$login_user<br />";
        return $login_user;
    }
}
コード例 #3
0
ファイル: maj_import3.php プロジェクト: rhertzog/lcs
									@ldap_free_result ( $result );
								}
								else {
									$texte.="<p>Echec de la recherche dans le LDAP de l'ELENOET pour $lig->ELENOET ($lig->ELENOM $lig->ELEPRE).</p>";
								}
							}
							else {
								// Génération d'un login élève type auth_native_gepi: NOM_P

								$tmp_nom=remplace_accents($lig->ELENOM);
								$tmp_prenom=remplace_accents($lig->ELEPRE);
		
								// Générer un login...
								$mode_generation_login_eleve=getSettingValue('mode_generation_login_eleve');
								if(!check_format_login($mode_generation_login_eleve)) {
									$mode_generation_login_eleve='nnnnnnnnn_p';

									$sql="SELECT * FROM infos_actions WHERE titre='Format des logins générés';";
									$test_ia=mysqli_query($GLOBALS["mysqli"], $sql);
									if(mysqli_num_rows($test_ia)==0) {
										enregistre_infos_actions("Format des logins générés","Le format des logins générés par Gepi pour les différentes catégories d'utilisateurs doit être contrôlé et revalidé dans la page <a href='./gestion/param_gen.php#format_login_pers'>Configuration générale</a>",array("administrateur"),'statut');
									}
								}
								$login_eleve=generate_unique_login($tmp_nom, $tmp_prenom, $mode_generation_login_eleve, 'maj');

								if(($login_eleve)&&($login_eleve!='')) {
									// On teste l'unicité du login que l'on vient de créer
									$k = 2;
									$test_unicite = 'no';
									$temp = $login_eleve;
コード例 #4
0
ファイル: 155_to_160.inc.php プロジェクト: rhertzog/lcs
  $result_inter = traite_requete("INSERT INTO setting VALUES ('utiliserMenuBarre', 'yes');");
  if ($result_inter == '') {
    $result.=msj_ok("Définition du paramètre utiliserMenuBarre : Ok !");
  } else {
    $result.=msj_erreur("Définition du paramètre utiliserMenuBarre : Erreur !");
  }
} else {
  $result .= msj_present("Le paramètre utiliserMenuBarre existe déjà dans la table setting.");
}

$result .= "<br />";
$result .= "<strong>Test des formats de login</strong><br />";
$tab_formats_login_a_tester=array('mode_generation_login', 'mode_generation_login_eleve', 'mode_generation_login_responsable');
for($loop=0;$loop<count($tab_formats_login_a_tester);$loop++) {
	$valeur_current_mode_generation_login=getSettingValue($tab_formats_login_a_tester[$loop]);
	if(!check_format_login($valeur_current_mode_generation_login)) {
		$sql="SELECT * FROM infos_actions WHERE titre='Format des logins générés';";
		$test_ia=mysqli_query($GLOBALS["mysqli"], $sql);
		if(mysqli_num_rows($test_ia)==0) {
			enregistre_infos_actions("Format des logins générés","Le format des logins générés par Gepi pour les différentes catégories d'utilisateurs doit être contrôlé et revalidé dans la page <a href='./gestion/param_gen.php#format_login_pers'>Configuration générale</a>",array("administrateur"),'statut');
		}

		$result .= "Format de login ";
		if($tab_formats_login_a_tester[$loop]=='mode_generation_login') {$result .= "<b>personnels</b>";}
		elseif($tab_formats_login_a_tester[$loop]=='mode_generation_login_eleve') {$result .= "<b>élèves</b>";}
		elseif($tab_formats_login_a_tester[$loop]=='mode_generation_login_responsable') {$result .= "<b>responsables</b>";}

		$result .= " invalide : $valeur_current_mode_generation_login<br />";
		if($valeur_current_mode_generation_login=="name") {
			$result .= "Conversion en 'nnnnnnnnnnnnnnnnnnnn' : ";
			if(saveSetting($tab_formats_login_a_tester[$loop], 'nnnnnnnnnnnnnnnnnnnn')) {$result .= msj_ok("Ok !");} else {$result .= msj_erreur("ECHEC");}