"); } echo "

".gettext("Réinitialisation/modification de mots de passe")."

\n"; //========================================================== // Phase de choix des parametres if(!isset($_POST['is_posted'])) { //echo "
\n"; echo "
\n"; echo "

Cette page est destinée à réinitialiser/modifier les mots de passe par lots.

\n"; echo "

Vous pouvez :

\n"; echo "\n"; // echo "\n"; // echo "\n"; // echo "\n"; echo "\n"; echo "\n"; echo "\n"; echo "\n"; echo "\n"; echo "\n"; echo "

"; echo "La politique de mot de passe actuelle est : "; switch ($pwdPolicy) { case 0: echo "basée sur la date de naissance"; break; case 1: echo "semi-aléatoire (6 car.)"; break; case 2: echo "aléatoire (8 car.)"; break; } echo "

\n"; echo "Le point-virgule en fin de ligne est recommandé pour éviter des blagues avec les fins de lignes DO$/Unix.
\n"; echo "Fichier CSV : \n"; echo "
\n"; // Etablissement des listes des groupes disponibles // affiche_all_groups(left, user); // $list_groups=search_groups("(&(cn=*) $filter )"); // // Etablissement des sous listes de groupes : // $j =0; $k =0; // $m = 0; $n=0; // for ($loop=0; $loop < count ($list_groups) ; $loop++) { // // Classe // if ( ereg ("Classe_", $list_groups[$loop]["cn"]) ) { // $classe[$j]["cn"] = $list_groups[$loop]["cn"]; // $classe[$j]["description"] = $list_groups[$loop]["description"]; // $j++; // } // // Equipe // elseif ( ereg ("Equipe_", $list_groups[$loop]["cn"]) ) { // $equipe[$k]["cn"] = $list_groups[$loop]["cn"]; // $equipe[$k]["description"] = $list_groups[$loop]["description"]; // $k++; // } // // Matiere // elseif ( ereg ("Matiere_", $list_groups[$loop]["cn"]) ) { // $matiere[$n]["cn"] = $list_groups[$loop]["cn"]; // $matiere[$n]["description"] = $list_groups[$loop]["description"]; // $n++; // } // // Autres // elseif (!ereg ("^overfill", $list_groups[$loop]["cn"]) && !ereg ("^lcs-users", $list_groups[$loop]["cn"]) && // //!ereg ("^admins", $list_groups[$loop]["cn"]) && // !ereg ("Cours_", $list_groups[$loop]["cn"]) && // !ereg ("^system", $list_groups[$loop]["cn"]) && // !ereg ("^slis", $list_groups[$loop]["cn"]) && // !ereg ("^machines", $list_groups[$loop]["cn"])) { // $autres[$m]["cn"] = $list_groups[$loop]["cn"]; // $autres[$m]["description"] = $list_groups[$loop]["description"]; // $m++; // } // } echo "
\n"; affiche_all_groups(left, user); // echo "

Choisissez les groupes auxquels appliquer le traitement :

\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 "
".gettext("Classes")."".gettext("Equipes")."".gettext("Matières")."".gettext("Autres")."
\n"; // echo "\n"; // echo "\n"; // echo "\n"; // echo "\n"; // echo "\n"; // echo ""; // 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"; include ("pdp.inc.php"); die(); } //========================================================== // Phase de traitement //echo "
\n"; $reinit_mode=isset($_POST['reinit_mode']) ? $_POST['reinit_mode'] : NULL; if(!isset($reinit_mode)) { echo "

Le mode de réinitialisation/changement des mots de passe n'a pas été choisi.

"; echo "

Retour

"; include ("pdp.inc.php"); die(); } $tab_reinit_mode=array('naissance','alea','semi','csv'); if(!in_array($reinit_mode, $tab_reinit_mode)) { echo "

Le mode de réinitialisation/changement des mots de passe choisi est invalide.

"; echo "

Retour

"; include ("pdp.inc.php"); die(); } if($reinit_mode=='csv') { if($_FILES["fich_csv_reinit"]["name"]=="") { echo "

ERREUR: Aucun fichier n'a été fourni!

\n"; echo "

Retour.

\n"; include ("pdp.inc.php"); exit(); } $tmp_csv_file=$HTTP_POST_FILES['fich_csv_reinit']['tmp_name']; $csv_file=$HTTP_POST_FILES['fich_csv_reinit']['name']; $size_ecsv_file=$HTTP_POST_FILES['fich_csv_reinit']['size']; if(($csv_file!='')&&($tmp_csv_file=='')) { echo "

L'upload du fichier $csv_file a semble-t-il échoué.

"; $upload_max_filesize=ini_get('upload_max_filesize'); $post_max_size=ini_get('post_max_size'); echo "

Il se peut que le fichier fourni ait été trop volumineux.
PHP est actuellement paramétré avec:
\n"; echo "

\n"; echo "
\n"; echo "upload_max_filesize=".$upload_max_filesize."
\n"; echo "post_max_size=".$post_max_size."
\n"; echo "
\n"; echo "

\n"; echo "Si ces valeurs sont insuffisantes pour vos fichiers XML, il est possible de modifier les valeurs limites dans /etc/php5/apache2/php.ini\n"; echo "

\n"; echo "

Retour.

\n"; include ("pdp.inc.php"); exit(); } $dossier_tmp="/var/lib/se3/import_comptes"; $dest_file="$dossier_tmp/fichier_csv_reinit_mdp.csv"; if(file_exists($dest_file)){ unlink($dest_file); } if(is_uploaded_file($tmp_csv_file)){ $source_file=stripslashes("$tmp_csv_file"); $res_copy=copy("$source_file" , "$dest_file"); echo "

".gettext("Modification des mots de passe d'après le fichier CSV fourni")."

\n"; echo "
";
		system ("/usr/bin/sudo /usr/share/se3/scripts/se3_reinit_mdp.sh 'csv=$dest_file' 'nettoyage'");
		echo "
\n"; echo "
\n"; } } else { switch ($pwdPolicy) { case 1: $option=" 'semi'"; break; case 2: $option=" 'alea'"; break; default: $option=""; } // Liste des groupes a traiter $classe_gr=isset($_POST['classe_gr']) ? $_POST['classe_gr'] : array(); $equipe_gr=isset($_POST['equipe_gr']) ? $_POST['equipe_gr'] : array(); $matiere_gr=isset($_POST['matiere_gr']) ? $_POST['matiere_gr'] : array(); $autres_gr=isset($_POST['autres_gr']) ? $_POST['autres_gr'] : array(); // On lance l'operation pour chaque groupe demande !!! if (count($classe_gr) ) { foreach ($classe_gr as $grp){ if($reinit_mode=='alea') { echo "

".gettext("Modification des mots de passe (pour une valeur aléatoire) pour les membres du groupe ".$grp." :")."

\n"; } else { echo "

".gettext("Réinitialisation des mots de passe à la date de naissance pour les membres du groupe ".$grp." :")."

\n"; } echo "
";
			system ("/usr/bin/sudo /usr/share/se3/scripts/se3_reinit_mdp.sh $grp $option");
			echo "
\n"; echo "
\n"; } } if (count($equipe_gr) ) { foreach ($equipe_gr as $grp){ if($reinit_mode=='alea') { echo "

".gettext("Modification des mots de passe (pour une valeur aléatoire) pour les membres du groupe ".$grp." :")."

\n"; } else { echo "

".gettext("Réinitialisation des mots de passe à la date de naissance pour les membres du groupe ".$grp." :")."

\n"; } echo "
";
			system ("/usr/bin/sudo /usr/share/se3/scripts/se3_reinit_mdp.sh $grp $option");
			echo "
\n"; echo "
\n"; } } if (count($matiere_gr) ) { foreach ($matiere_gr as $grp){ if($reinit_mode=='alea') { echo "

".gettext("Modification des mots de passe (pour une valeur aléatoire) pour les membres du groupe ".$grp." :")."

\n"; } else { echo "

".gettext("Réinitialisation des mots de passe à la date de naissance pour les membres du groupe ".$grp." :")."

\n"; } echo "
";
			system ("/usr/bin/sudo /usr/share/se3/scripts/se3_reinit_mdp.sh $grp $option");
			echo "
\n"; echo "
\n"; } } if (count($autres_gr) ) { foreach ($autres_gr as $grp){ if($reinit_mode=='alea') { echo "

".gettext("Modification des mots de passe (pour une valeur aléatoire) pour les membres du groupe ".$grp." :")."

\n"; } else { echo "

".gettext("Réinitialisation des mots de passe à la date de naissance pour les membres du groupe ".$grp." :")."

\n"; } echo "
";
			system ("/usr/bin/sudo /usr/share/se3/scripts/se3_reinit_mdp.sh $grp $option");
			echo "
\n"; echo "
\n"; } } } //echo "
\n"; if (file_exists("/tmp/changement_mdp.csv")) { // dédoublonner les utilisateurs qui auraient été modifiés plusieurs fois : garder le dernier uniquement if ($hdle = fopen("/tmp/changement_mdp.csv", "r")) { $listing = array(array()); // une ligne par compte ; le deuxieme parametre est, dans l'ordre nom, prenom, classe (si groupe classe), uid, password array_splice($listing, 0, 1); while ($data = fgetcsv($hdle, 0, ";")) { // nom;prenom;uid;mdp;classe $num = count($data); if ($num >= 5) { $nouveau = array('nom'=>"$data[0]", 'pre'=>"$data[1]", 'cla' => "$data[4]", 'uid'=>"$data[2]", 'pwd'=>"$data[3]"); $doublon = false; foreach($listing as &$key) { if ($key['uid'] == $nouveau['uid']){ // doublon $doublon = true; $key['pwd'] = $nouveau['pwd']; //mettre à jour la classe si besoin ou la conserver if ($nouveau['cla'] != '') { $key['cla'] = $nouveau['cla'] ;} break; } } unset($key); if (!$doublon) { $listing[] = $nouveau; } } } fclose($hdle); } } // Lien pour la récupération du mailing if (count($listing, COUNT_RECURSIVE) > 1) { $serial_listing=serialize($listing); $lien="Télécharger le listing des mots de passe modifiés..."; echo("
"); echo($lien); echo("
"); echo(""); echo(" Purger le fichier temporaire après téléchargement du fichier"); echo("
Il n'est peut-être pas très prudent de conserver inutilement ces données sur le serveur"); echo("
"); } include ("pdp.inc.php"); ?>