commit b2bc2f4232b595f6314a9c28262f86de4a4b18aa
parent ceca66abe6edf074e05175439b7f972ba5e99902
Author: Georges Dupéron <jahvascriptmaniac+github@free.fr>
Date: Sat, 31 Jul 2010 18:05:55 +0200
Remplissage des fonctions du module "admin".
Quelques TODO restent encore à faire.
Diffstat:
2 files changed, 44 insertions(+), 11 deletions(-)
diff --git a/__cms__/modules/admin/permissions.php b/__cms__/modules/admin/permissions.php
@@ -1,12 +1,12 @@
<?php
function action($chemin, $action, $paramètres) {
+ $singleton = new Chemin("/admin/permissions/");
if ($action == "anuler") {
return redirect($chemin);
} else {
if (is_set($paramètres["regles"])) {
- // Stocker les regles dans regles, peut-être faire une
- // sauvegarde des règles actuelles ?
+ Stockage::set_prop($singleton, "regles", $paramètres["regles"]);
}
if (is_set($paramètres["vue"])) {
@@ -18,14 +18,17 @@ function action($chemin, $action, $paramètres) {
}
function vue($chemin, $vue = "normal") {
+ $singleton = new Chemin("/admin/permissions/");
if ($vue == "normal") {
- // Si l'utilisateur a l'autorisation de modifier les propriétés,
- // on affiche la version modifiable plutôt que la "vue".
$ret = "";
$ret .= "<h1>Règles de sécurité</h1>";
$ret .= "<p>La première règle correspondant à une action de l'utilisateur est appliquée. Bla-bla blabla sur le fonctionnement.</p>";
- $ret .= "<textarea ... Règles />";
- return "Vue normale de la page.";
+ if (vérifier_permission($singleton, "set_prop", get_utilisateur())) {
+ $ret .= "<textarea ...>" . Stockage::get_prop($singleton, "regles") . "</textarea>"; // TODO : html escape chars etc.
+ } else {
+ $ret .= "<pre><code>" . Stockage::get_prop($singleton, "regles") . "</code></pre>"; // TODO : html escape chars etc.
+ }
+ return $ret;
}
}
diff --git a/__cms__/modules/admin/utilisateurs.php b/__cms__/modules/admin/utilisateurs.php
@@ -1,13 +1,42 @@
<?php
function action($chemin, $action, $paramètres) {
+ $singleton = new Chemin("/admin/utilisateurs/");
if ($action == "anuler") {
return redirect($chemin);
- } else if ($action == "nouvelle_page") {
- // Créer le nouvel utilisateur avec comme nom "Nouvel utilisateur".
- // return Redirect vers la page actuelle, à l'ancre correspondant
- // à cet utilisateur (#Nouvel_utilisateur).
+
+ // 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 (is_set($paramètres["nouveau_nom"]) && ($action == "nouvelle_page")) {
+ // TODO : SECURITE : Si la page existe déjà, laisser tomber !
+ Stockage::nouvelle_page($singleton, $paramètres["nouveau_nom"]);
+ $paramètres["nom"] = $paramètres["nouveau_nom"];
+ // TODO : message de confirmation quelque part ?
+ }
+
+ if (is_set($paramètres["nouveau_nom"]) && is_set($paramètres["nom"])) {
+ // renomer la page $paramètres["nom"]
+ $paramètres["nom"] = $paramètres["nouveau_nom"];
+ }
+
+ if (is_set($paramètres["mot_de_passe"]) && is_set($paramètres["nom"])) {
+ Stockage::set_pop($singleton->enfant($paramètres["nom"]), "mot_de_passe", $paramètres["mot_de_passe"]);
+ }
+
+ if (is_set($paramètres["peut_se_connecter"]) && is_set($paramètres["nom"])) {
+ Stockage::set_pop($singleton->enfant($paramètres["nom"]), "peut_se_connecter", $paramètres["peut_se_connecter"]);
+ }
+
if (is_set($paramètres["vue"])) {
self::vue($chemin, $paramètres["vue"]);
} else {
@@ -17,6 +46,7 @@ function action($chemin, $action, $paramètres) {
}
function vue($chemin, $vue = "normal") {
+ $singleton = new Chemin("/admin/utilisateurs/");
if ($vue == "normal") {
$ret = '';
$ret .= "<h1>Utilisateurs</h1>";
@@ -25,7 +55,7 @@ function vue($chemin, $vue = "normal") {
}
$ret .= '<table class="utilisateurs index"><thead><th>Nom</th><th>Prénom</th><th>Groupe</th><th>Mot de passe</th></thead><tbody>';
$listegroupes = // Construire la liste des groupes sous forme de menu drop-down.
- foreach (stockage::liste_enfants($chemin) as $k) {
+ foreach (stockage::liste_enfants($chemin) as $k) { // TODO : trier par ordre alphabétique du nom ?
$ret .= '<tr>' . modules::vue($k) . '</tr>'; // ??? TODO
// Le champ mot de passe doit être un lien / bouton "nouveau
// mot de passe automatique" qui redirige vers