www

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

commit 472511e0a7e1c7d2a2afb42afe3096a2c7e38591
parent 963f8230d04c49298c524e49b58c6c36f605b8ce
Author: Georges Dupéron <jahvascriptmaniac+github@free.fr>
Date:   Mon,  2 Aug 2010 23:44:40 +0200

Champ commentaire pour les règles.

Diffstat:
M__cms__/TODO | 1-
M__cms__/modele/admin/permissions/__prop__regles | 19++++++++++---------
M__cms__/securite/permissions.php | 10++++++----
3 files changed, 16 insertions(+), 14 deletions(-)

diff --git a/__cms__/TODO b/__cms__/TODO @@ -1,4 +1,3 @@ -Possibilité d'avoir un commentaire à la fin de chaque ligne des règles. Sécurité : les noms de propriétés passés à stockage ne doivent pas contenir de '/' (doivent valider "nettoyer_segment()". Renomer SystèmeFichiers : seuls les modules ont deux bosses dans leur CamelCase diff --git a/__cms__/modele/admin/permissions/__prop__regles b/__cms__/modele/admin/permissions/__prop__regles @@ -1,8 +1,9 @@ -/**|*|Administrateurs|oui -/admin/**|*|Administrateurs|oui -/admin/**|*|*|non -/forum/|nouvelle_page|Utilisateurs|oui -/forum/*|nouvelle_page|Utilisateurs|oui -/galerie/**|*|Utilisateurs|oui -/galerie/**|*|Anonymes|non -/**|get_prop|Anonymes|oui -\ No newline at end of file +/**|*|Administrateurs|oui|Les administrateurs ont tous les droits +/admin/**|*|Administrateurs|oui|Les administrateurs peuvent administer (redondant avec la règle ci-dessus). +/admin/**|*|*|non|Les non-administrateur n'ont pas accès à la section "admin". +/forum/|nouvelle_page|Utilisateurs|oui|Les utilisateurs peuvent créer de nouveaux sujets de discussion dans le forum. +/forum/*|nouvelle_page|Utilisateurs|oui|Les utilisateurs peuvent créer des messages dans les sujets de discussion. +/forum/*/*|set_prop|Propriétaire|oui|L'auteur d'un message peut en définir le contenu (pas les autres, ce n'est pas un wiki). +/galerie/**|get_prop|Utilisateurs|oui|Les utilisateurs peuvent consulter la galerie. +/galerie/**|*|Anonymes|non|Mais le reste du monde ne peut pas voir la galerie (photos privées par ex.) +/**|get_prop|Anonymes|oui|Le reste du monde peut consulter le site. +\ No newline at end of file diff --git a/__cms__/securite/permissions.php b/__cms__/securite/permissions.php @@ -63,6 +63,7 @@ class Permissions { $str_regles .= '|' . self::escape_element_regle($r["action"]); $str_regles .= '|' . self::escape_element_regle($r["groupe"]); $str_regles .= '|' . ($r["autorisation"] ? "oui" : "non"); + $str_regles .= '|' . self::escape_element_regle($r["commentaire"]); $str_regles .= "\n"; // TODO vérifier que la séquence d'échappement est bien comprise. } @@ -70,8 +71,8 @@ class Permissions { } public function get_regles() { - // Renvoie un tableau de quadruplets - // (chemin, action, groupe, autorisation). + // Renvoie un tableau de quintuplets + // (chemin, action, groupe, autorisation, commentaire). // ou false si erreur. $str_regles = Stockage::get_prop(self::singleton(), "regles", true); // true => forcer permissions. @@ -82,14 +83,15 @@ class Permissions { // TODO : ignorer les lignes vides ! foreach (explode("\n", $str_regles) as $k => $v) { $r = explode('|',$v); - if (count($r) != 4) { + if (count($r) != 5) { return false; } $regles[] = array( "chemin" => new Chemin(self::unescape_element_regle($r[0])), "action" => self::unescape_element_regle($r[1]), "groupe" => self::unescape_element_regle($r[2]), - "autorisation" => ($r[3] == "oui") + "autorisation" => ($r[3] == "oui"), + "commentaire" => self::unescape_element_regle($r[4]); ); } return $regles;