diff --git a/__cms__/chemin/chemin.php b/__cms__/chemin/chemin.php
index ac27e8f..b5bf959 100644
--- a/__cms__/chemin/chemin.php
+++ b/__cms__/chemin/chemin.php
@@ -53,11 +53,11 @@ class Chemin {
}
public function get_fs_stockage() {
- return Path::combine($config_chemin_base_stockage, $this->get());
+ return Path::combine(Config::get('chemin_base_stockage'), $this->get());
}
public function get_fs_public() {
- return Path::combine($config_chemin_base_public, $this->get());
+ return Path::combine(Config::get('chemin_base_public'), $this->get());
}
public function enfant($nom) {
diff --git a/__cms__/cms.php b/__cms__/cms.php
index 54e8b19..88cb8d3 100644
--- a/__cms__/cms.php
+++ b/__cms__/cms.php
@@ -1,6 +1,13 @@
\ No newline at end of file
diff --git a/__cms__/config.php b/__cms__/config.php
index 7b548ea..d060b37 100644
--- a/__cms__/config.php
+++ b/__cms__/config.php
@@ -1,26 +1,29 @@
\ No newline at end of file
diff --git a/__cms__/modules/admin/couleurs.php b/__cms__/modules/admin/couleurs.php
index 0a98c36..c3547bd 100644
--- a/__cms__/modules/admin/couleurs.php
+++ b/__cms__/modules/admin/couleurs.php
@@ -5,18 +5,18 @@ class AdminCouleurs {
if ($action == "anuler") {
return redirect($chemin);
} else {
- if (is_set($paramètres["Couleur_A"])) {
+ if (isset($paramètres["Couleur_A"])) {
// Stocker couleur A
}
- if (is_set($paramètres["Couleur_B"])) {
+ if (isset($paramètres["Couleur_B"])) {
// Stocker couleur B
}
- if (is_set($paramètres["Couleur_C"])) {
+ if (isset($paramètres["Couleur_C"])) {
// Stocker couleur C
}
// ...
- if (is_set($paramètres["vue"])) {
+ if (isset($paramètres["vue"])) {
self::vue($chemin, $paramètres["vue"]);
} else {
self::vue($chemin);
@@ -45,6 +45,6 @@ class AdminCouleurs {
}
}
-enregister_module("AdminCouleurs", "admin-couleurs");
+Modules::enregister_module("AdminCouleurs", "admin-couleurs");
?>
\ No newline at end of file
diff --git a/__cms__/modules/admin/permissions.php b/__cms__/modules/admin/permissions.php
index 9a67bbf..2844252 100644
--- a/__cms__/modules/admin/permissions.php
+++ b/__cms__/modules/admin/permissions.php
@@ -6,11 +6,11 @@ class AdminPermissions {
if ($action == "anuler") {
return redirect($chemin);
} else {
- if (is_set($paramètres["regles"])) {
+ if (isset($paramètres["regles"])) {
Stockage::set_prop($singleton, "regles", $paramètres["regles"]);
}
- if (is_set($paramètres["vue"])) {
+ if (isset($paramètres["vue"])) {
self::vue($chemin, $paramètres["vue"]);
} else {
self::vue($chemin);
@@ -34,6 +34,6 @@ class AdminPermissions {
}
}
-enregister_module("AdminPermissions", "admin-permissions");
+Modules::enregister_module("AdminPermissions", "admin-permissions");
?>
\ No newline at end of file
diff --git a/__cms__/modules/admin/utilisateurs.php b/__cms__/modules/admin/utilisateurs.php
index 2432705..bef090c 100644
--- a/__cms__/modules/admin/utilisateurs.php
+++ b/__cms__/modules/admin/utilisateurs.php
@@ -18,36 +18,36 @@ class AdminUtilisateurs {
// Solution B :
} else {
- if (is_set($paramètres["nouveau_nom"]) && ($action == "nouvelle_page")) {
+ if (isset($paramètres["nouveau_nom"]) && ($action == "nouvelle_page")) {
// TODO : SECURITE : Si l'utilisateur existe déjà, laisser tomber et ne pas faire les set_* qui suivent !
Authentification::nouvel_utilisateur($paramètres["nouveau_nom"]);
$paramètres["nom"] = $paramètres["nouveau_nom"];
// TODO : message de confirmation quelque part ?
}
- if (is_set($paramètres["nom"]) && is_set($paramètres["nouveau_nom"]) && ($action != "nouvelle_page")) {
+ if (isset($paramètres["nom"]) && isset($paramètres["nouveau_nom"]) && ($action != "nouvelle_page")) {
Authentification::renomer_utilisateur($paramètres["nom"], $paramètres["nouveau_nom"]);
$paramètres["nom"] = $paramètres["nouveau_nom"];
}
- if (is_set($paramètres["nom"]) && is_set($paramètres["mot_de_passe"])) {
+ if (isset($paramètres["nom"]) && isset($paramètres["mot_de_passe"])) {
Authentification::set_mot_de_passe($paramètres["nom"], $paramètres["mot_de_passe"]);
}
- if (is_set($paramètres["nom"]) && is_set($paramètres["groupe"])) {
+ if (isset($paramètres["nom"]) && isset($paramètres["groupe"])) {
Authentification::set_groupe($paramètres["nom"], $paramètres["groupe"]);
}
- if (is_set($paramètres["nom"]) && is_set($paramètres["peut_se_connecter"])) {
+ if (isset($paramètres["nom"]) && isset($paramètres["peut_se_connecter"])) {
Authentification::set_peut_se_connecter($paramètres["nom"], ($paramètres["peut_se_connecter"] == "true"));
}
- if (is_set($paramètres["nom"]) && ($action == "supprimer")) {
+ if (isset($paramètres["nom"]) && ($action == "supprimer")) {
Authentification::supprimer_utilisateur($paramètres["nom"]);
// TODO : message de confirmation quelque part ?
}
- if (is_set($paramètres["vue"])) {
+ if (isset($paramètres["vue"])) {
self::vue($chemin, $paramètres["vue"]);
} else {
self::vue($chemin);
@@ -87,6 +87,6 @@ class AdminUtilisateurs {
}
}
-enregister_module("AdminUtilisateurs", "admin-utilisateurs");
+Modules::enregister_module("AdminUtilisateurs", "admin-utilisateurs");
?>
\ No newline at end of file
diff --git a/__cms__/modules/forum/forum-index.php b/__cms__/modules/forum/forum-index.php
index a508d86..9962c14 100644
--- a/__cms__/modules/forum/forum-index.php
+++ b/__cms__/modules/forum/forum-index.php
@@ -11,7 +11,7 @@ class ForumIndex {
Stockage::set_prop($np, "proprietaire", get_utilisateur());
return redirect($np);
} else {
- if (is_set($paramètres["vue"])) {
+ if (isset($paramètres["vue"])) {
self::vue($chemin, $paramètres["vue"]);
} else {
self::vue($chemin);
@@ -36,6 +36,6 @@ class ForumIndex {
}
}
-enregister_module("ForumIndex", "forum-index");
+Modules::enregister_module("ForumIndex", "forum-index");
?>
\ No newline at end of file
diff --git a/__cms__/modules/forum/forum-message.php b/__cms__/modules/forum/forum-message.php
index 36c2d59..e7e7428 100644
--- a/__cms__/modules/forum/forum-message.php
+++ b/__cms__/modules/forum/forum-message.php
@@ -7,12 +7,12 @@ function action($chemin, $action, $paramètres) {
Stockage::supprimer($chemin);
return redirect($chemin->parent());
} else {
- if (is_set($paramètres["message"])) {
+ if (isset($paramètres["message"])) {
Stockage::set_prop($chemin, "message", $paramètres["message"]);
}
// TODO ... Quelles sont les interactions entre l'utilisateur et le message, dans quel ordre, ...
- if (is_set($paramètres["vue"])) {
+ if (isset($paramètres["vue"])) {
Modules::vue($chemin->parent(), $paramètres["vue"]);
} else {
Modules::vue($chemin->parent());
@@ -36,6 +36,6 @@ function vue($chemin, $vue = "normal") {
}
}
-enregister_module("ForumMessage", "forum-message");
+Modules::enregister_module("ForumMessage", "forum-message");
?>
\ No newline at end of file
diff --git a/__cms__/modules/forum/forum-sujet.php b/__cms__/modules/forum/forum-sujet.php
index 1849e14..575d98d 100644
--- a/__cms__/modules/forum/forum-sujet.php
+++ b/__cms__/modules/forum/forum-sujet.php
@@ -16,13 +16,13 @@ class ForumSujet {
Stockage::supprimer($chemin);
return redirect($chemin->parent());
} else {
- if (is_set($paramètres["titre"])) {
+ if (isset($paramètres["titre"])) {
Stockage::renomer($chemin, $paramètres["titre"]);
$chemin = $chemin->renomer($paramètres["titre"]);
// TODO : peut-être redirect($chemin) ?
}
- if (is_set($paramètres["vue"])) {
+ if (isset($paramètres["vue"])) {
self::vue($chemin, $paramètres["vue"]);
} else {
self::vue($chemin);
@@ -65,6 +65,6 @@ class ForumSujet {
}
}
-enregister_module("ForumSujet", "forum-sujet");
+Modules::enregister_module("ForumSujet", "forum-sujet");
?>
\ No newline at end of file
diff --git a/__cms__/modules/galerie/galerie-evenement.php b/__cms__/modules/galerie/galerie-evenement.php
index f595f4b..dcabae1 100644
--- a/__cms__/modules/galerie/galerie-evenement.php
+++ b/__cms__/modules/galerie/galerie-evenement.php
@@ -12,16 +12,16 @@ class GalerieÉvènement {
Stockage::supprimer($chemin);
return redirect($chemin->parent());
} else {
- if (is_set($paramètres["titre"])) {
+ if (isset($paramètres["titre"])) {
Stockage::renomer($chemin, $paramètres["titre"]);
$chemin = $chemin->renomer($paramètres["titre"]);
// TODO : peut-être redirect($chemin) ?
}
- if (is_set($paramètres["description"])) {
+ if (isset($paramètres["description"])) {
Stockage::set_prop($chemin, "description", $paramètres["description"]);
}
- if (is_set($paramètres["vue"])) {
+ if (isset($paramètres["vue"])) {
self::vue($chemin, $paramètres["vue"]);
} else {
self::vue($chemin);
@@ -59,12 +59,12 @@ class GalerieÉvènement {
return $ret;
} else if ($vue == "miniature") {
$enfants = Stockage::liste_enfants($chemin);
- if (is_set($enfants[0])) return Modules::vue($enfants[0], 'miniature');
+ if (isset($enfants[0])) return Modules::vue($enfants[0], 'miniature');
else return "Aucune
photo";
}
}
}
-enregister_module("GalerieÉvènement", "galerie-evenement");
+Modules::enregister_module("GalerieÉvènement", "galerie-evenement");
?>
\ No newline at end of file
diff --git a/__cms__/modules/galerie/galerie-index.php b/__cms__/modules/galerie/galerie-index.php
index 42ea7eb..8bf4682 100644
--- a/__cms__/modules/galerie/galerie-index.php
+++ b/__cms__/modules/galerie/galerie-index.php
@@ -12,16 +12,16 @@ class GalerieIndex {
Stockage::supprimer($chemin);
return redirect($chemin->parent());
} else {
- if (is_set($paramètres["titre"])) {
+ if (isset($paramètres["titre"])) {
Stockage::renomer($chemin, $paramètres["titre"]);
$chemin = $chemin->renomer($paramètres["titre"]);
// TODO : peut-être redirect($chemin) ?
}
- if (is_set($paramètres["description"])) {
+ if (isset($paramètres["description"])) {
Stockage::set_prop($chemin, "description", $paramètres["description"]);
}
- if (is_set($paramètres["vue"])) {
+ if (isset($paramètres["vue"])) {
self::vue($chemin, $paramètres["vue"]);
} else {
self::vue($chemin);
@@ -59,12 +59,12 @@ class GalerieIndex {
return $ret;
} else if ($vue == "miniature") {
$enfants = Stockage::liste_enfants($chemin);
- if (is_set($enfants[0])) return Modules::vue($enfants[0], 'miniature');
+ if (isset($enfants[0])) return Modules::vue($enfants[0], 'miniature');
else return "Aucune
photo";
}
}
}
-enregister_module("GalerieIndex", "galerie-index");
+Modules::enregister_module("GalerieIndex", "galerie-index");
?>
\ No newline at end of file
diff --git a/__cms__/modules/galerie/galerie-periode.php b/__cms__/modules/galerie/galerie-periode.php
index d68d13d..0f027ce 100644
--- a/__cms__/modules/galerie/galerie-periode.php
+++ b/__cms__/modules/galerie/galerie-periode.php
@@ -12,16 +12,16 @@ class GaleriePériode {
Stockage::supprimer($chemin);
return redirect($chemin->parent());
} else {
- if (is_set($paramètres["titre"])) {
+ if (isset($paramètres["titre"])) {
Stockage::renomer($chemin, $paramètres["titre"]);
$chemin = $chemin->renomer($paramètres["titre"]);
// TODO : peut-être redirect($chemin) ?
}
- if (is_set($paramètres["description"])) {
+ if (isset($paramètres["description"])) {
Stockage::set_prop($chemin, "description", $paramètres["description"]);
}
- if (is_set($paramètres["vue"])) {
+ if (isset($paramètres["vue"])) {
self::vue($chemin, $paramètres["vue"]);
} else {
self::vue($chemin);
@@ -59,12 +59,12 @@ class GaleriePériode {
return $ret;
} else if ($vue == "miniature") {
$enfants = Stockage::liste_enfants($chemin);
- if (is_set($enfants[0])) return Modules::vue($enfants[0], 'miniature');
+ if (isset($enfants[0])) return Modules::vue($enfants[0], 'miniature');
else return "Aucune
photo";
}
}
}
-enregister_module("GaleriePériode", "galerie-periode");
+Modules::enregister_module("GaleriePériode", "galerie-periode");
?>
\ No newline at end of file
diff --git a/__cms__/modules/galerie/galerie-photo.php b/__cms__/modules/galerie/galerie-photo.php
index 0fd6c27..fa4c458 100644
--- a/__cms__/modules/galerie/galerie-photo.php
+++ b/__cms__/modules/galerie/galerie-photo.php
@@ -8,23 +8,23 @@ class GaleriePhoto {
Stockage::supprimer($chemin);
return redirect($chemin->parent());
} else {
- if (is_set($paramètres["fichier_image"])) {
+ if (isset($paramètres["fichier_image"])) {
// redimensionner l'image avec gd, stocker la miniature dans
// prop_image_mini (set_prop_fichier()).
// Pb : Où est-ce qu'on met temporairement la miniature
// avant de la déplacer ???
// stocker le fichier reçu dans prop_image (set_prop_fichier_reçu()).
}
- /* if (is_set($paramètres["titre"])) {
+ /* if (isset($paramètres["titre"])) {
Stockage::renomer($chemin, $paramètres["titre"]);
$chemin = $chemin->renomer($paramètres["titre"]);
// TODO : peut-être redirect($chemin) ?
}*/
- if (is_set($paramètres["description"])) {
+ if (isset($paramètres["description"])) {
Stockage::set_prop($chemin, "description", $paramètres["description"]);
}
- if (is_set($paramètres["vue"])) {
+ if (isset($paramètres["vue"])) {
self::vue($chemin, $paramètres["vue"]);
} else {
self::vue($chemin);
@@ -56,6 +56,6 @@ class GaleriePhoto {
}
}
-enregister_module("GaleriePhoto", "galerie-photo");
+Modules::enregister_module("GaleriePhoto", "galerie-photo");
?>
\ No newline at end of file
diff --git a/__cms__/modules/include.php b/__cms__/modules/include.php
index a8cdace..a6cd774 100644
--- a/__cms__/modules/include.php
+++ b/__cms__/modules/include.php
@@ -1,5 +1,7 @@
\ No newline at end of file
diff --git a/__cms__/securite/authentification.php b/__cms__/securite/authentification.php
index 38697ff..b78d96d 100644
--- a/__cms__/securite/authentification.php
+++ b/__cms__/securite/authentification.php
@@ -6,8 +6,9 @@ class Authentification {
}
public function connexion($nom_utilisateur, $mdp) {
- $mdp_réel = Stockage::get_prop(self::singleton()->enfant($nom_utilisateur), "mot_de_passe");
- $peut_se_connecter = Stockage::get_prop(self::singleton()->enfant($nom_utilisateur), "peut_se_connecter");
+ $ch_utilisateur = self::singleton()->enfant($nom_utilisateur);
+ $mdp_réel = self::get_mot_de_passe($nom_utilisateur, true); // true => forcer permissions.
+ $peut_se_connecter = self::get_peut_se_connecter($nom_utilisateur, true); // true => forcer permissions.
if ($mdp == $mdp_réel && $peut_se_connecter === "true") { // Triple égale. Pas d'entourloupe avec des casts miteux !
// TODO : Vérifier si c'est sécurisé => stocké _uniquement_ sur le serveur.
Session::put("utilisateur", $nom_utilisateur);
@@ -57,8 +58,8 @@ class Authentification {
Stockage::set_pop(self::singleton()->enfant($nom_utilisateur), "groupe", $groupe);
}
- public function get_groupe($nom_utilisateur) {
- return Stockage::get_prop(self::singleton()->enfant($nom_utilisateur), "groupe");
+ public function get_groupe($nom_utilisateur, $forcer_permissions = false) {
+ return Stockage::get_prop(self::singleton()->enfant($nom_utilisateur), "groupe", $forcer_permissions);
}
public function set_mot_de_passe($nom_utilisateur, $mot_de_passe) {
@@ -69,16 +70,17 @@ class Authentification {
self::set_mot_de_passe($utilisateur, substr(md5($utilisateur . rand() . microtime()) , 0, 8));
}
- public function get_mot_de_passe($nom_utilisateur) {
- return Stockage::get_prop(self::singleton()->enfant($nom_utilisateur), "mot_de_passe");
+ public function get_mot_de_passe($nom_utilisateur, $forcer_permissions = false) {
+ return Stockage::get_prop(self::singleton()->enfant($nom_utilisateur), "mot_de_passe", $forcer_permissions);
}
public function set_peut_se_connecter($nom_utilisateur, $valeur) {
Stockage::set_pop(self::singleton()->enfant($nom_utilisateur), "peut_se_connecter", $valeur ? "true" : "false");
}
- public function get_peut_se_connecter($nom_utilisateur) {
- return (Stockage::get_pop(self::singleton()->enfant($nom_utilisateur), "peut_se_connecter") == "true") ? true : false;
+ public function get_peut_se_connecter($nom_utilisateur, $forcer_permissions = false) {
+ $peut_se_connecter = Stockage::get_pop(self::singleton()->enfant($nom_utilisateur), "peut_se_connecter", $forcer_permissions);
+ return ($peut_se_connecter == "true") ? true : false;
}
}
diff --git a/__cms__/securite/erreur.php b/__cms__/securite/erreur.php
new file mode 100644
index 0000000..2f50a73
--- /dev/null
+++ b/__cms__/securite/erreur.php
@@ -0,0 +1,27 @@
+
+
+
+
Désolé, une erreur est survenue. Contactez le créateur du site SVP : + ' + . htmlspecialchars(Config::get('courriel_admin')) + . '. Indiquez l\'erreur ci-dessous dans votre courriel.
+' . htmlspecialchars($message) . '
+ +'; + + exit; + } +} + +?> \ No newline at end of file diff --git a/__cms__/securite/include.php b/__cms__/securite/include.php index 6738cb2..6184990 100644 --- a/__cms__/securite/include.php +++ b/__cms__/securite/include.php @@ -1,5 +1,6 @@ forcer permissions. // Parcourt la liste les règles de sécurité (get_regles()), et // sélectionne la première pour laquelle $chemin correspond au motif @@ -50,15 +50,17 @@ class Permissions { $str_regles .= "\n"; // TODO vérifier que la séquence d'échappement est bien comprise. } - return Stockage::get_prop(self::singleton(), "regles", $str_regles); + return Stockage::set_prop(self::singleton(), "regles", $str_regles); } public function get_regles() { // Renvoie un tableau de quadruplets // (chemin, action, groupe, autorisation). // ou false si erreur. - $str_regles = Stockage::get_prop(self::singleton(), "regles"); - // TODO erreur si la propriété n'existe pas. + + $str_regles = Stockage::get_prop(self::singleton(), "regles", true); // true => forcer permissions. + if (!$str_regles) Erreur::fatale("Impossible de lire les règles de sécurité."); + $str_regles = preg_replace('/\r\n|\r/', "\n", $str_regles); $regles = array(); // TODO : ignorer les lignes vides ! diff --git a/__cms__/site/include.php b/__cms__/site/include.php index 5b6f28c..d97fe7d 100644 --- a/__cms__/site/include.php +++ b/__cms__/site/include.php @@ -1,6 +1,5 @@ \ No newline at end of file diff --git a/__cms__/stockage/session.php b/__cms__/stockage/session.php index 587cd97..cbd604f 100644 --- a/__cms__/stockage/session.php +++ b/__cms__/stockage/session.php @@ -2,7 +2,7 @@ class Session { public function démarrer() { - return session_id !== "" || session_start(); + return (session_id() !== "") || session_start(); } public function put($k, $v) { @@ -12,7 +12,7 @@ class Session { public function get($k) { self::démarrer(); - return is_set($_SESSION[$k]) ? $_SESSION[$k] : false; + return isset($_SESSION[$k]) ? $_SESSION[$k] : false; } public function effacer($k) { @@ -21,4 +21,4 @@ class Session { } } -?> \ No newline at end of file +?> diff --git a/__cms__/stockage/stockage.php b/__cms__/stockage/stockage.php index ed7ee74..9b2f2e0 100644 --- a/__cms__/stockage/stockage.php +++ b/__cms__/stockage/stockage.php @@ -63,10 +63,10 @@ class Stockage { // $forcer_permissions permet à vérifier_permission() et ses // dépendances get_regles() et get_groupe() de faire des get_prop // même si l'utilisateur courant n'en a pas le droit. - if ($forcer_permissions || vérifier_permission($chemin, "get_prop")) { - return SystemeFichiers::lire(Path::combine($chemin->get_fs_stockage(), $prop)); + if ($forcer_permissions || Permissions::vérifier_permission($chemin, "get_prop")) { + return SystèmeFichiers::lire(Path::combine($chemin->get_fs_stockage(), $prop)); } else { - return "[Accès interdit]"; + return false; } } diff --git a/__cms__/stockage/systeme-fichiers.php b/__cms__/stockage/systeme-fichiers.php index 07051bc..1f078c5 100644 --- a/__cms__/stockage/systeme-fichiers.php +++ b/__cms__/stockage/systeme-fichiers.php @@ -25,15 +25,15 @@ class SystèmeFichiers { } public function lire($chemin_fs) { - file_get_contents($chermin_fs); + return file_exists($chemin_fs) && file_get_contents($chemin_fs); } public function écrire($chemin_fs, $données) { - file_put_contents($chemin_fs, $données); + return is_dir(dirname($chemin_fs)) && file_put_contents($chemin_fs, $données); } public function liste_fichiers($chemin_fs) { - return scandir($chemin_fs); + return is_dir($chemin_fs) && scandir($chemin_fs); } public function déplacer($chemin_fs_de, $chemin_fs_vers) {