95 lines
2.6 KiB
PHP
Executable File
95 lines
2.6 KiB
PHP
Executable File
<?php define('__ROOT__', dirname(__FILE__) );
|
|
|
|
require_once __ROOT__.'/manager/autoloader.php';
|
|
|
|
use \router\Router;
|
|
|
|
use \manager\ModuleRequest;
|
|
use \manager\ModuleResponse;
|
|
use \manager\ManagerError;
|
|
use \manager\Authentification;
|
|
|
|
|
|
/*******************************************/
|
|
/* DEBUGGER */
|
|
/*******************************************/
|
|
debug();
|
|
/*******************************************/
|
|
/* DEBUGGER */
|
|
/*******************************************/
|
|
|
|
|
|
|
|
|
|
|
|
/* [1] Gestion des authentifications et des droits
|
|
=========================================================*/
|
|
/* (1) On met à jour l'authentification et les permissions */
|
|
Authentification::check();
|
|
$auth = Authentification::auth();
|
|
|
|
/* (2) On définit la page d'accueil */
|
|
if( $auth == 2 ) $root_page = 'dashboard'; // Connecté -> Accès
|
|
elseif( $auth == 1 ) $root_page = 'admin'; // Pas identifié -> Identification
|
|
else $root_page = 'warehouse'; // Pas localisé -> Localisation
|
|
|
|
|
|
|
|
|
|
|
|
/* [2] Gestion du routage
|
|
=========================================================*/
|
|
|
|
/* (1) On initialise le routeur
|
|
---------------------------------------------------------*/
|
|
$R = new Router( $_GET['url'] );
|
|
|
|
|
|
/* (3) On cree les regles de routage QUAND ON EST CONNECTE
|
|
---------------------------------------------------------*/
|
|
/* (1) Racine -> page d'accueil */
|
|
$R->get('/?', function(){ header("Location: /$root_page/"); });
|
|
|
|
|
|
/* (2) Si on est connecté */
|
|
if( $auth == 2 ){
|
|
|
|
// Liste des pages du site
|
|
$page_list = [ 'dashboard', 'profile', 'machines', 'users', 'groups', 'analytics', 'settings' ];
|
|
|
|
// nomPage/arg1/arg2 -> inclusion de la page
|
|
$R->get('(?:'.implode('|', $page_list).')(?:/[\w-]+)*/?', function(){ include __ROOT__.'/view/view.php'; });
|
|
|
|
|
|
/* (3) Si on est pas identifié */
|
|
}else if( $auth == 1 )
|
|
$R->get('.+', function(){ include __ROOT__.'/view/admin.php'; });
|
|
else
|
|
$R->get('.+', function(){ include __ROOT__.'/view/warehouse.php'; });
|
|
|
|
|
|
|
|
|
|
/* (4) api/module/method -> Api */
|
|
$R->post('api(?:/(.*))?', function($url){
|
|
$request = ModuleRequest::fromPost($url, $_POST);
|
|
$answer = $request->dispatch();
|
|
|
|
// Si c'est une réponse (et non un download)
|
|
if( $answer instanceof ModuleResponse )
|
|
echo $answer->serialize();
|
|
});
|
|
|
|
|
|
/* (5) N'importe -> page d'accueil */
|
|
$R->get('.+', function(){ header("Location: /$root_page/"); });
|
|
$R->post('.+', function(){ header("Location: /$root_page/"); });
|
|
|
|
|
|
|
|
/* (3) On lance le routeur
|
|
---------------------------------------------------------*/
|
|
$R->run();
|
|
|
|
?>
|