Commit 1608a843 authored by Thomas Citharel's avatar Thomas Citharel 🏃🏻

Detect non-existing websites

- Load data in the beforeroute hook rather than in the main class
constructor, allowing us to return 404 if not found
- Disable Falsum being always on /o\
Signed-off-by: Thomas Citharel's avatarThomas Citharel <tcit@tcit.fr>
parent cbb29f1d
......@@ -6,6 +6,10 @@
*/
class AdminController extends Controller {
function beforeroute() {
parent::beforeroute();
}
// affichage de la page login
function login() {
$this->checkFirstConnexion();
......
......@@ -10,22 +10,15 @@ class Controller
// TODO : c'est cette variable qu'il faudra rendre dynamique pour switcher d'un site a l'autre
//! HTTP route pre-processor
//! HTTP route post-processor
function afterroute()
public function beforeroute()
{
}
//! Instantiate class
function __construct()
{
//on recuper la base du framework
$this->f3 = Base::instance();
$this->siteName = $this->siteName = isset($_SERVER['X-FRAMA-SITE']) || strstr($_SERVER['SERVER_NAME'], ".frama.site") ? $_SERVER['SERVER_NAME'] : "framasite";
//on viens récuperer les info a partir du info.json
$siteConfigPath = $this->f3->get('SitesFolder') . $this->siteName . '/config.json';
if (!file_exists($siteConfigPath)) {
$this->f3->error(404);
}
$siteConfig = json_decode(
file_get_contents($this->f3->get('SitesFolder') . $this->siteName . '/config.json'),
file_get_contents($siteConfigPath),
true
);
//on recuper le fichier config spécifique au site regardé
......@@ -40,6 +33,19 @@ class Controller
// on finit par connecter a la base de donnée du site de manière dynamique
$this->db = new \DB\Jig ($this->f3->get('SitesFolder') . $this->siteName . '/data/',
$format = \DB\Jig::FORMAT_JSON);
}
//! HTTP route post-processor
function afterroute()
{
}
//! Instantiate class
function __construct()
{
//on recuper la base du framework
$this->f3 = Base::instance();
$this->siteName = $this->siteName = isset($_SERVER['X-FRAMA-SITE']) || strstr($_SERVER['SERVER_NAME'], ".frama.site") ? $_SERVER['SERVER_NAME'] : "framasite";
}
......
......@@ -8,6 +8,7 @@ class EditController extends Controller {
// on fait en sorte que toutes les methodes ne soient accecssibles que si l'utilisateur est admin,
//sinon, on le renvoie vers la page de login
function beforeroute() {
parent::beforereoute();
if (!$this->isAdmin()) {
//on rajoute un petit message d'erreur qui sera affiché sur la page de login
$this->f3->set(
......
......@@ -5,6 +5,7 @@ class ShowCaseController extends Controller
{
function beforeroute()
{
parent::beforeroute();
if ($this->isAdmin()) {
$CSRFToken = bin2hex(random_bytes(16));
$CSRFTokenCreatetedAt = time();
......
......@@ -4,7 +4,6 @@ require_once("vendor/autoload.php");
$f3 = Base::instance();
//debugger
Falsum\Run::handler();
Falsum\Run::handler(true);
// Load configuration
$f3->config('app/config/config.ini');
// Define routes
......
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment