Champ commentaire pour les règles.

This commit is contained in:
Georges Dupéron 2010-08-02 23:44:40 +02:00
parent 963f8230d0
commit 472511e0a7
3 changed files with 15 additions and 13 deletions

View File

@ -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 Sécurité : les noms de propriétés passés à stockage ne doivent pas
contenir de '/' (doivent valider "nettoyer_segment()". contenir de '/' (doivent valider "nettoyer_segment()".
Renomer SystèmeFichiers : seuls les modules ont deux bosses dans leur CamelCase Renomer SystèmeFichiers : seuls les modules ont deux bosses dans leur CamelCase

View File

@ -1,8 +1,9 @@
/**|*|Administrateurs|oui /**|*|Administrateurs|oui|Les administrateurs ont tous les droits
/admin/**|*|Administrateurs|oui /admin/**|*|Administrateurs|oui|Les administrateurs peuvent administer (redondant avec la règle ci-dessus).
/admin/**|*|*|non /admin/**|*|*|non|Les non-administrateur n'ont pas accès à la section "admin".
/forum/|nouvelle_page|Utilisateurs|oui /forum/|nouvelle_page|Utilisateurs|oui|Les utilisateurs peuvent créer de nouveaux sujets de discussion dans le forum.
/forum/*|nouvelle_page|Utilisateurs|oui /forum/*|nouvelle_page|Utilisateurs|oui|Les utilisateurs peuvent créer des messages dans les sujets de discussion.
/galerie/**|*|Utilisateurs|oui /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/**|*|Anonymes|non /galerie/**|get_prop|Utilisateurs|oui|Les utilisateurs peuvent consulter la galerie.
/**|get_prop|Anonymes|oui /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.

View File

@ -63,6 +63,7 @@ class Permissions {
$str_regles .= '|' . self::escape_element_regle($r["action"]); $str_regles .= '|' . self::escape_element_regle($r["action"]);
$str_regles .= '|' . self::escape_element_regle($r["groupe"]); $str_regles .= '|' . self::escape_element_regle($r["groupe"]);
$str_regles .= '|' . ($r["autorisation"] ? "oui" : "non"); $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. $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() { public function get_regles() {
// Renvoie un tableau de quadruplets // Renvoie un tableau de quintuplets
// (chemin, action, groupe, autorisation). // (chemin, action, groupe, autorisation, commentaire).
// ou false si erreur. // ou false si erreur.
$str_regles = Stockage::get_prop(self::singleton(), "regles", true); // true => forcer permissions. $str_regles = Stockage::get_prop(self::singleton(), "regles", true); // true => forcer permissions.
@ -82,14 +83,15 @@ class Permissions {
// TODO : ignorer les lignes vides ! // TODO : ignorer les lignes vides !
foreach (explode("\n", $str_regles) as $k => $v) { foreach (explode("\n", $str_regles) as $k => $v) {
$r = explode('|',$v); $r = explode('|',$v);
if (count($r) != 4) { if (count($r) != 5) {
return false; return false;
} }
$regles[] = array( $regles[] = array(
"chemin" => new Chemin(self::unescape_element_regle($r[0])), "chemin" => new Chemin(self::unescape_element_regle($r[0])),
"action" => self::unescape_element_regle($r[1]), "action" => self::unescape_element_regle($r[1]),
"groupe" => self::unescape_element_regle($r[2]), "groupe" => self::unescape_element_regle($r[2]),
"autorisation" => ($r[3] == "oui") "autorisation" => ($r[3] == "oui"),
"commentaire" => self::unescape_element_regle($r[4]);
); );
} }
return $regles; return $regles;