50 $pdo = Bd::getInstance()->getConnexion();
52 $utilisateurs = $utilisateurDAO->findAll();
54 $successMessage =
null;
55 if (isset($_GET[
'success'])) {
56 if ($_GET[
'success'] == 1) $successMessage =
"L'utilisateur a été créé avec succès !";
57 if ($_GET[
'success'] == 2) $successMessage =
"L'utilisateur a été modifié avec succès !";
60 $template = $this->
getTwig()->load(
'admin_dashboard.html.twig');
61 echo $template->render([
62 'page' => [
'title' =>
"Admin Dashboard",
'name' =>
"admin"],
63 'session' => $_SESSION,
64 'utilisateurs' => $utilisateurs,
65 'success' => $successMessage
83 if (isset($_GET[
'id'])) {
84 $pdo = Bd::getInstance()->getConnexion();
88 if (isset($_SESSION[
'user_email']) && $_GET[
'id'] == $_SESSION[
'user_email']) {
94 $utilisateurDAO->delete($_GET[
'id']);
115 if (!isset($_GET[
'id'])) {
120 $pdo = Bd::getInstance()->getConnexion();
123 $user = $utilisateurDAO->find($_GET[
'id']);
130 $template = $this->
getTwig()->load(
'admin_utilisateur_consulter.html.twig');
131 echo $template->render([
132 'page' => [
'title' =>
"Consulter Utilisateur - " . $user->getPseudoUtilisateur(),
'name' =>
"admin"],
133 'session' => $_SESSION,
164 $emailTarget = $_GET[
'id'] ?? $_POST[
'original_email'] ??
null;
172 $user = $utilisateurDAO->find($emailTarget);
179 if ($_SERVER[
'REQUEST_METHOD'] ===
'POST') {
180 $pseudo = trim($_POST[
'pseudo'] ??
'');
181 $roleType = $_POST[
'role'] ??
'auditeur';
182 $newPassword = $_POST[
'mdp'] ??
'';
185 if ($pseudo !== $user->getPseudoUtilisateur() && $utilisateurDAO->existsByPseudo($pseudo)) {
186 $error =
"Ce pseudo est déjà utilisé par un autre membre.";
190 $user->setPseudoUtilisateur($pseudo);
191 $user->setNomUtilisateur($pseudo);
194 $newRole = $roleDao->findByType($roleType);
196 $user->setRoleUtilisateur($newRole);
200 if (!empty($newPassword)) {
201 $user->setMotDePasseUtilisateur(password_hash($newPassword, PASSWORD_ARGON2ID));
205 if ($utilisateurDAO->update($user)) {
207 $this->
redirectTo(
'admin',
'afficher', [
'success' => 2]);
210 $error =
"Erreur lors de la mise à jour.";
212 }
catch (Exception $e) {
213 $error =
"Erreur système : " . $e->getMessage();
219 $template = $this->
getTwig()->load(
'utilisateur_modifier.html.twig');
220 echo $template->render([
221 'page' => [
'title' =>
'Modifier Utilisateur'],
222 'session' => $_SESSION,
Contrôleur dédié à la gestion de l'administration.
afficher()
Affiche le tableau de bord de l'administrateur.
consulter()
Consulte les détails d'un utilisateur.
supprimer()
Supprime un utilisateur spécifique.
modifier()
Modifie un utilisateur existant.
__construct(\Twig\Environment $twig, \Twig\Loader\FilesystemLoader $loader)
Constructeur du contrôleur admin.
Classe de base pour tous les contrôleurs de l'application.
requireRole($requiredRole)
Exige que l'utilisateur ait un rôle spécifique.
redirectTo(string $controller, string $method, array $params=[])
Redirige vers un contrôleur et une méthode donnés.
Twig Loader FilesystemLoader $loader
getPDO()
Récupère la connexion PDO.
getTwig()
Récupère l'environnement Twig.