\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="