public static function action($chemin, $action, $paramètres) { $singleton = new Chemin("/admin/utilisateurs/"); if ($action == "anuler") { return new Page($chemin, '', "redirect"); // TODO ... // Solution A (propre) : // Il faut que le bouton "nouvel utilisateur" crée une nouvelle page et redirect vers la page utilisateur_S_ (la page en cours) // Puis sur la page utilisateur_S_ on modifie les champs de l'utilisateur X, on clique sur appliquer, // ça POST vers la page de X, qui fait les modifs et redirect vers utiliseur_S_. // Solution B : // [nom] [mdp] [peut_se_connecter] [[nouvel utilisateur]] -> crée nouvelle page "nom", définit le mot de passe et peut_se_connecter. // Puis redirect vers utilisateur_S_ // [nom] [mdp] [peut_se_connecter] [[Appliquer]] -> renome la page, définit le mdp et peut_se_connecter. // Solution B : } else { if (isset($paramètres["nouveau_nom"]) && $action == "nouvelle_page") { // TODO : SECURITE : Si l'utilisateur existe déjà, laisser tomber et ne pas faire les set_* qui suivent ! Authentification::nouvel_utilisateur($paramètres["nouveau_nom"]); $paramètres["nom"] = $paramètres["nouveau_nom"]; // TODO : message de confirmation quelque part ? } if (isset($paramètres["nom"]) && isset($paramètres["nouveau_nom"]) && $action != "nouvelle_page") { Authentification::renomer_utilisateur($paramètres["nom"], $paramètres["nouveau_nom"]); $paramètres["nom"] = $paramètres["nouveau_nom"]; } if (isset($paramètres["nom"]) && isset($paramètres["mot_de_passe"])) { Authentification::set_mot_de_passe($paramètres["nom"], $paramètres["mot_de_passe"]); } if (isset($paramètres["nom"]) && isset($paramètres["groupe"])) { Authentification::set_groupe($paramètres["nom"], $paramètres["groupe"]); } if (isset($paramètres["nom"]) && isset($paramètres["peut_se_connecter"])) { Authentification::set_peut_se_connecter($paramètres["nom"], $paramètres["peut_se_connecter"] == "true"); } if (isset($paramètres["nom"]) && $action == "supprimer") { Authentification::supprimer_utilisateur($paramètres["nom"]); // TODO : message de confirmation quelque part ? } if (isset($paramètres["vue"])) { return self::vue($chemin, $paramètres["vue"]); } else { return self::vue($chemin); } } }