www

Unnamed repository; edit this file 'description' to name the repository.
Log | Files | Refs | README

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 ?>