Page .../galerie/ fonctionne (plus ou moins) + Bugs.
Je sais pas trop ce que je commit... Très fatigué.
This commit is contained in:
parent
c8b2df3fc1
commit
4ffa811cf0
|
@ -7,9 +7,9 @@ define('CHEMIN_JOKER_SEGMENT', '*');
|
|||
|
||||
class Chemin {
|
||||
// Si $chemin est un tableau, chaque segment doit vérifier les invariants de nettoyer_segment.
|
||||
public function __construct($chemin) {
|
||||
public function __construct($chemin, $est_un_motif = false) {
|
||||
if (! is_array($chemin)) {
|
||||
$this->segments = self::nettoyer_chemin($chemin);
|
||||
$this->segments = self::nettoyer_chemin($chemin, $est_un_motif);
|
||||
} else {
|
||||
$this->segments = $chemin;
|
||||
}
|
||||
|
@ -86,7 +86,7 @@ class Chemin {
|
|||
}
|
||||
|
||||
|
||||
public static function nettoyer_chemin($chemin) {
|
||||
public static function nettoyer_chemin($chemin, $est_un_motif = false) {
|
||||
// SÉCURITÉ : $chemin nettoyé
|
||||
// * Ne contient pas '\0'
|
||||
// * Ne contient pas '../'
|
||||
|
@ -102,24 +102,33 @@ class Chemin {
|
|||
$chemin = preg_replace("/\\/*$/", '', $chemin);
|
||||
|
||||
$segments = explode('/', $chemin);
|
||||
$segments = array_map(array("self", "nettoyer_segment"), $segments);
|
||||
if ($est_un_motif) {
|
||||
$segments = array_map(array("self", "nettoyer_segment_motif"), $segments);
|
||||
} else {
|
||||
$segments = array_map(array("self", "nettoyer_segment"), $segments);
|
||||
}
|
||||
|
||||
return $segments;
|
||||
}
|
||||
|
||||
public static function nettoyer_segment($segment) {
|
||||
public static function nettoyer_segment($segment, $est_un_motif = false) {
|
||||
// SÉCURITÉ : $segment nettoyé :
|
||||
// * /!\ Peut être vide /!\
|
||||
// * Ne doit pas contenir '\0' (octet NULL).
|
||||
// * Ne doit pas contenir '/' non plus, remplacer par '-'.
|
||||
// * Ne doit pas contenir '*' non plus, remplacer par '-'.
|
||||
// * Ne contient pas "__prop__", remplacer par "___prop___".
|
||||
|
||||
$segment = preg_replace("/\\0/", '', $segment); // TODO : vérifier si c'est bien ça ! (supprime _toutes_ les occurences ???)
|
||||
$segment = preg_replace("/\\//", '', $segment); // TODO : vérifier si c'est bien ça ! (supprime _toutes_ les occurences ???)
|
||||
$segment = preg_replace("/\\*/", '', $segment); // TODO : vérifier si c'est bien ça ! (supprime _toutes_ les occurences ???)
|
||||
$segment = preg_replace("/\\//", '-', $segment); // TODO : vérifier si c'est bien ça ! (supprime _toutes_ les occurences ???)
|
||||
if (!$est_un_motif) $segment = preg_replace("/\\*/", '-', $segment); // TODO : vérifier ...
|
||||
$segment = preg_replace("/__prop__/", '___prop___', $segment); // TODO : vérifier si c'est bien ça ! (supprime _toutes_ les occurences ???)
|
||||
return $segment;
|
||||
}
|
||||
|
||||
public static function nettoyer_segment_motif($segment) {
|
||||
return self::nettoyer_segment($segment, true);
|
||||
}
|
||||
}
|
||||
|
||||
?>
|
|
@ -15,7 +15,7 @@ class Modules {
|
|||
|
||||
public static function get_module($chemin) {
|
||||
$type = Stockage::get_prop($chemin, "type");
|
||||
if ($type === false) return false;
|
||||
if ($type === false || !isset(self::$liste_modules[$type])) return false;
|
||||
return self::$liste_modules[$type];
|
||||
}
|
||||
|
||||
|
|
|
@ -87,7 +87,7 @@ class Permissions {
|
|||
return false;
|
||||
}
|
||||
$regles[] = array(
|
||||
"chemin" => new Chemin(self::unescape_element_regle($r[0])),
|
||||
"chemin" => new Chemin(self::unescape_element_regle($r[0]), true),
|
||||
"action" => self::unescape_element_regle($r[1]),
|
||||
"groupe" => self::unescape_element_regle($r[2]),
|
||||
"autorisation" => ($r[3] == "oui"),
|
||||
|
|
|
@ -4,6 +4,4 @@
|
|||
/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.
|
1
__cms__/donnees/galerie/__prop__titre
Normal file
1
__cms__/donnees/galerie/__prop__titre
Normal file
|
@ -0,0 +1 @@
|
|||
Galerie
|
|
@ -1 +1 @@
|
|||
Galerie
|
||||
galerie-index
|
|
@ -1,7 +1,7 @@
|
|||
<?php
|
||||
|
||||
require_once("../__cms__/cms.php");
|
||||
require_once("/home/js/github/2010-moteur-site-simple/__cms__/cms.php");
|
||||
|
||||
CMS::affiche("/galerie", $_GET);
|
||||
CMS::page("/galerie/");
|
||||
|
||||
?>
|
Loading…
Reference in New Issue
Block a user