<?php

/**
 * Page de traitement permettant la modification des informations des utilisateurs.
 */

session_start();
require_once ($_SERVER["DOCUMENT_ROOT"]."/services/fonctions/sessions/privileges.php");
testPrivileges();
require_once ($_SERVER["DOCUMENT_ROOT"]."/services/fonctions/bdd/utilisateurs.php");

$liste_utilisateurs = listeTousUtilisateursBdd($pdo);

foreach ($liste_utilisateurs as $enieme_utilisateur_liste => $infos_utilisateur_liste){
	// Vérification de la correspondance entre l'ID de l'utilisateur soumis par formulaire avec celui en base de données (évite l'usurpation d'utilisateurs)
	if (isset($_POST['utilisateur'][$enieme_utilisateur_liste]['id_utilisateur']) && $_POST['utilisateur'][$enieme_utilisateur_liste]['id_utilisateur'] === $infos_utilisateur_liste['id']) {
		if (isset($_POST['utilisateur'][$enieme_utilisateur_liste]['etat_utilisateur']) && isset($_POST['utilisateur'][$enieme_utilisateur_liste]['nom_complet_utilisateur']) && isset($_POST['utilisateur'][$enieme_utilisateur_liste]['prefixe_utilisateur']) && isset($_POST['utilisateur'][$enieme_utilisateur_liste]['choix_privilege_utilisateur']) && isset($_POST['utilisateur'][$enieme_utilisateur_liste]['mot_de_passe_utilisateur']) && isset($_POST['utilisateur'][$enieme_utilisateur_liste]['confirmation_mot_de_passe_utilisateur'])) {
			// Vérification de l'existence de changements pour l'utilisateur parcouru. Cette condition évite de réécrire les données inchangées des utilisateurs non modifiés
			if ($infos_utilisateur_liste['active'] != $_POST['utilisateur'][$enieme_utilisateur_liste]['etat_utilisateur'] || $infos_utilisateur_liste['nom_complet'] != $_POST['utilisateur'][$enieme_utilisateur_liste]['nom_complet_utilisateur'] || $infos_utilisateur_liste['prefixe'] != $_POST['utilisateur'][$enieme_utilisateur_liste]['prefixe_utilisateur'] || $infos_utilisateur_liste['privilege'] != $_POST['utilisateur'][$enieme_utilisateur_liste]['choix_privilege_utilisateur'] || !empty($_POST['utilisateur'][$enieme_utilisateur_liste]['mot_de_passe_utilisateur'])) {
				// Vérification de la validité des informations de privilèges et d'état soumises au formulaire
				if (($_POST['utilisateur'][$enieme_utilisateur_liste]['choix_privilege_utilisateur'] === "utilisateur" || $_POST['utilisateur'][$enieme_utilisateur_liste]['choix_privilege_utilisateur'] === "administrateur") && ($_POST['utilisateur'][$enieme_utilisateur_liste]['etat_utilisateur'] === "0" || $_POST['utilisateur'][$enieme_utilisateur_liste]['etat_utilisateur'] === "1")) {
					$nouvelles_données_utilisateur=array(
						"id_utilisateur" => $_POST['utilisateur'][$enieme_utilisateur_liste]['id_utilisateur'],
						"nom_utilisateur" => $infos_utilisateur_liste['utilisateur'],
						"etat_utilisateur" => $_POST['utilisateur'][$enieme_utilisateur_liste]['etat_utilisateur'],
						"nom_complet_utilisateur" => $_POST['utilisateur'][$enieme_utilisateur_liste]['nom_complet_utilisateur'],
						"prefixe_utilisateur" => $_POST['utilisateur'][$enieme_utilisateur_liste]['prefixe_utilisateur'],
						"choix_privilege_utilisateur" => $_POST['utilisateur'][$enieme_utilisateur_liste]['choix_privilege_utilisateur'],
					);
					
					// Sécurité empêchant l'administrateur connecté de se désactiver lui-même
					if ($nouvelles_données_utilisateur['nom_utilisateur'] === $_SESSION['pseudo_connexion_utilisateur']) {
						$nouvelles_données_utilisateur['etat_utilisateur'] = "1";
					}
					
					modifUtilisateursBdd($pdo,$nouvelles_données_utilisateur);
					
					// Changement du mot de passe de l'utilisateur
					if (!empty($_POST['utilisateur'][$enieme_utilisateur_liste]['mot_de_passe_utilisateur']) && !empty($_POST['utilisateur'][$enieme_utilisateur_liste]['confirmation_mot_de_passe_utilisateur']) && $_POST['utilisateur'][$enieme_utilisateur_liste]['mot_de_passe_utilisateur'] === $_POST['utilisateur'][$enieme_utilisateur_liste]['confirmation_mot_de_passe_utilisateur']) {
						changeMotDePasseUtilisateurBdd($pdo,$nouvelles_données_utilisateur['nom_utilisateur'],$_POST['utilisateur'][$enieme_utilisateur_liste]['mot_de_passe_utilisateur'],$_POST['utilisateur'][$enieme_utilisateur_liste]['confirmation_mot_de_passe_utilisateur']);
					}
				}
			}
			// Si aucun changement sur l'utilisateur parcouru, ne rien faire et passer au suivant
		}
	}
}

header ("Location: /pages/gestion/administration.php?page=utilisateurs&succes=22");
die();

?>