From 24a6f1024e4ef9026ea7f0baa47575e906a81509 Mon Sep 17 00:00:00 2001 From: xdrm-brackets Date: Sun, 10 Jul 2016 15:23:53 +0200 Subject: [PATCH] Correction redirection et URL pour \warehouse\ et \admin\ ainsi que pour les pages normales --- index.php | 50 ++++++++++++++++++++----------- manager/module/machineDefault.php | 17 +---------- manager/module/userDefault.php | 19 +----------- manager/repo/cluster.php | 2 +- view/admin.php | 2 +- 5 files changed, 36 insertions(+), 54 deletions(-) diff --git a/index.php b/index.php index 1ca5615..4ed8cfe 100755 --- a/index.php +++ b/index.php @@ -28,11 +28,11 @@ 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) On définit la page d'accueil */ + if( $auth == 2 ) define('__REDIRECT__', 'Location: /dashboard/'); // Connecté -> Accès + elseif( $auth == 1 ) define('__REDIRECT__', 'Location: /admin/'); // Pas identifié -> Identification + else define('__REDIRECT__', 'Location: /warehouse/'); // Pas localisé -> Localisation @@ -47,25 +47,39 @@ /* (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'; }); + $R->get('(.*)', function($m){ + // Liste des pages du site + $page_list = [ 'dashboard', 'profile', 'machines', 'users', 'groups', 'analytics', 'settings' ]; + + + if( !preg_match('#^(?:'.implode('|', $page_list).')(?:/[\w-]+)*/?$#i', $m[0]) ) + header(__REDIRECT__); + else + 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'; }); + /* (3) Si on est pas authentifié */ + }else if( $auth == 1 ){ + + $R->get('(.*)', function($m){ + if( !preg_match('#^admin/$#', $m[0]) ) header(__REDIRECT__); + else include __ROOT__.'/view/admin.php'; + }); + + }else{ + $R->get('(.*)', function($m){ + if( !preg_match('#^warehouse/$#', $m[0]) ) header(__REDIRECT__); + else include __ROOT__.'/view/warehouse.php'; + }); + + } @@ -82,8 +96,8 @@ /* (5) N'importe -> page d'accueil */ - $R->get('.+', function(){ header("Location: /$root_page/"); }); - $R->post('.+', function(){ header("Location: /$root_page/"); }); + $R->get('.+', function(){ header(__REDIRECT__); }); + $R->post('.+', function(){ header(__REDIRECT__); }); diff --git a/manager/module/machineDefault.php b/manager/module/machineDefault.php index edf162c..3db4a44 100755 --- a/manager/module/machineDefault.php +++ b/manager/module/machineDefault.php @@ -48,25 +48,10 @@ if( $id_group === false ) return ['ModuleError' => ManagerError::ModuleError]; - /* [3] Association au groupe - =========================================================*/ - // $assoc_goup = new Repo('cluster/link', [ - // $_SESSION['WAREHOUSE']['id'], - // $id_group, - // $id_machine, - // clusterRepo::MACHINE_CLASS - // ]); - // $id_assoc = $assoc_goup->answer(); - // - // // Si une erreur est retournee, on retourne une erreur - // if( $id_assoc === false ) - // return ['ModuleError' => ManagerError::ModuleError]; - - /* [4] Gestion du retour + /* [3] Gestion du retour =========================================================*/ return [ - 'ModuleError' => ManagerError::Success, 'id_machine' => $id_machine, 'id_cluster' => $id_group ]; diff --git a/manager/module/userDefault.php b/manager/module/userDefault.php index b70d03e..0d30cd4 100755 --- a/manager/module/userDefault.php +++ b/manager/module/userDefault.php @@ -66,24 +66,7 @@ - - /* [4] Association au groupe - =========================================================*/ - // $assoc_goup = new Repo('cluster/link', [ - // $_SESSION['WAREHOUSE']['id'], - // $id_cluster, - // $id_user, - // clusterRepo::USER_CLASS - // ]); - // $assoc_err = $assoc_goup->answer(); - // - // // Si une erreur est retournee, on retourne une erreur - // if( $assoc_err != ManagerError::Success ) - // return ['ModuleError' => $assoc_err]; - - - - /* [5] Gestion du retour + /* [4] Gestion du retour =========================================================*/ return [ 'id_user' => $id_user, diff --git a/manager/repo/cluster.php b/manager/repo/cluster.php index dda429b..d7d4df2 100755 --- a/manager/repo/cluster.php +++ b/manager/repo/cluster.php @@ -247,7 +247,7 @@ */ public static function getAll($id_warehouse){ // On ecrit la requete - $request = Database::getPDO()->prepare("SELECT * + $request = Database::getPDO()->prepare("SELECT c.id_cluster, c.name, c.class FROM cluster as c WHERE c.id_warehouse = :id_warehouse AND c.personal is null diff --git a/view/admin.php b/view/admin.php index 0379d8f..4892b0a 100644 --- a/view/admin.php +++ b/view/admin.php @@ -155,7 +155,7 @@ // Si correct, on recharge la page }else - document.location = ''; + document.location = '/'; }); }