admin-utilisateurs.php (4190B)
1 <?php 2 3 class AdminUtilisateurs { 4 public static function action($chemin, $action, $paramètres) { 5 $singleton = new Chemin("/admin/utilisateurs/"); 6 if ($action == "anuler") { 7 return new Page($chemin, '', "redirect"); 8 9 // TODO ... 10 // Solution A (propre) : 11 // Il faut que le bouton "nouvel utilisateur" crée une nouvelle page et redirect vers la page utilisateur_S_ (la page en cours) 12 // Puis sur la page utilisateur_S_ on modifie les champs de l'utilisateur X, on clique sur appliquer, 13 // ça POST vers la page de X, qui fait les modifs et redirect vers utiliseur_S_. 14 // Solution B : 15 // [nom] [mdp] [peut_se_connecter] [[nouvel utilisateur]] -> crée nouvelle page "nom", définit le mot de passe et peut_se_connecter. 16 // Puis redirect vers utilisateur_S_ 17 // [nom] [mdp] [peut_se_connecter] [[Appliquer]] -> renome la page, définit le mdp et peut_se_connecter. 18 19 // Solution B : 20 } else { 21 if (isset($paramètres["nouveau_nom"]) && ($action == "nouvelle_page")) { 22 // TODO : SECURITE : Si l'utilisateur existe déjà, laisser tomber et ne pas faire les set_* qui suivent ! 23 Authentification::nouvel_utilisateur($paramètres["nouveau_nom"]); 24 $paramètres["nom"] = $paramètres["nouveau_nom"]; 25 // TODO : message de confirmation quelque part ? 26 } 27 28 if (isset($paramètres["nom"]) && isset($paramètres["nouveau_nom"]) && ($action != "nouvelle_page")) { 29 Authentification::renomer_utilisateur($paramètres["nom"], $paramètres["nouveau_nom"]); 30 $paramètres["nom"] = $paramètres["nouveau_nom"]; 31 } 32 33 if (isset($paramètres["nom"]) && isset($paramètres["mot_de_passe"])) { 34 Authentification::set_mot_de_passe($paramètres["nom"], $paramètres["mot_de_passe"]); 35 } 36 37 if (isset($paramètres["nom"]) && isset($paramètres["groupe"])) { 38 Authentification::set_groupe($paramètres["nom"], $paramètres["groupe"]); 39 } 40 41 if (isset($paramètres["nom"]) && isset($paramètres["peut_se_connecter"])) { 42 Authentification::set_peut_se_connecter($paramètres["nom"], ($paramètres["peut_se_connecter"] == "true")); 43 } 44 45 if (isset($paramètres["nom"]) && ($action == "supprimer")) { 46 Authentification::supprimer_utilisateur($paramètres["nom"]); 47 // TODO : message de confirmation quelque part ? 48 } 49 50 if (isset($paramètres["vue"])) { 51 return self::vue($chemin, $paramètres["vue"]); 52 } else { 53 return self::vue($chemin); 54 } 55 } 56 } 57 58 public static function vue($chemin, $vue = "normal") { 59 $singleton = new Chemin("/admin/utilisateurs/"); 60 if ($vue == "normal") { 61 $ret = ''; 62 $ret .= "<h2>Utilisateurs</h2>"; 63 if (Permissions::vérifier_permission($chemin, "nouvelle_page", Authentification::get_utilisateur())) { 64 // afficher le lien "Nouvel utilisateur" 65 } 66 $ret .= '<table class="utilisateurs index"><thead><th>Nom</th><th>Prénom</th><th>Groupe</th><th>Mot de passe</th><th>Peut se connecter</th><th colspan="2"></th></thead><tbody>'; 67 $listegroupes = ""; // Construire la liste des groupes sous forme de menu drop-down. 68 foreach (Authentification::liste_utilisateurs() as $u) { 69 $ret .= '<tr>' 70 . '<form action="' . $chemin->get_url() . '">' 71 . '<td>' . $u . '</td>' // TODO : Nom 72 . '<td>' . $u . '</td>' // TODO : Prénom 73 . '<td>' . Authentification::get_groupe($u) . '</td>' 74 . '<td>' . Authentification::get_mot_de_passe($u) . '<input type="submit" value="Générer un nouveau mot de passe"/></td>' 75 . '<td>' . (Authentification::get_peut_se_connecter($u) ? "oui" : "non") . '</td>' 76 . '<td><input type="submit" value="appliquer"/></td>' 77 . '<td><input type="submit" value="supprimer"/></td>' // TODO 78 . '</form>' 79 . '</tr>'; 80 // Le champ mot de passe doit être un lien / bouton "nouveau 81 // mot de passe automatique" qui redirige vers 82 // $chemin->enfant("$utilisateur") ?action=gen_mdp . 83 } 84 $ret .= '</tbody></table>'; 85 return new Page($ret, "Utilisateurs"); 86 } 87 } 88 } 89 90 Modules::enregister_module("AdminUtilisateurs", "admin-utilisateurs", "vue", "nouveau_nom nom mot_de_passe groupe peut_se_connecter"); 91 92 ?>