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:
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;